From 6c645f9e313a8d8cf4aee680e6ffa3bbd78109e1 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 18 May 2015 12:13:23 +0100 Subject: [PATCH 001/269] Locally modified gitignore --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 5120d93f3f4..17414edb5ea 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,10 @@ Makefile contrib/autotools/bin contrib/autotools/include contrib/autotools/share +.cproject +.project +.settings/ +Debug/ +go.sh +log_make.txt +log_make_install.txt From cb77911fbbe6d06d37c02961b1cbc28a17e2ef0a Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 18 May 2015 19:06:43 +0100 Subject: [PATCH 002/269] Added module SU2_FSI --- .gitignore | 1 + Makefile.am | 8 +- Makefile.in | 21 +- SU2_FSI/include/SU2_FSI.hpp | 52 + SU2_FSI/obj/Makefile.am | 148 +++ SU2_FSI/obj/Makefile.in | 1924 +++++++++++++++++++++++++++++++++++ SU2_FSI/src/SU2_FSI.cpp | 543 ++++++++++ configure | 244 ++--- configure.ac | 10 +- 9 files changed, 2826 insertions(+), 125 deletions(-) create mode 100644 SU2_FSI/include/SU2_FSI.hpp create mode 100644 SU2_FSI/obj/Makefile.am create mode 100644 SU2_FSI/obj/Makefile.in create mode 100644 SU2_FSI/src/SU2_FSI.cpp diff --git a/.gitignore b/.gitignore index 17414edb5ea..ea9f7318202 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ Debug/ go.sh log_make.txt log_make_install.txt +SU2_FSI/bin/* diff --git a/Makefile.am b/Makefile.am index c70bb263ea3..9a1c0ff6690 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,13 +26,15 @@ # License along with SU2. If not, see . # # Created: 10/26/12 -# Last updated: 03/24/14 +# Last updated: 05/18/15 # # Created by: M. Colonno # Updated by: T. Economon +# Last updated by: R. Sanchez # # Major Changes/Contributions: # METIS & TECIO integration added by Ben Kirk, 3/24/2014 +# SU2_FSI integration added by Ruben Sanchez, 5/18/2015 # ###################################################################################### @@ -50,6 +52,10 @@ if BUILD_CFD SUBDIRS +=SU2_CFD/obj endif +if BUILD_FSI +SUBDIRS +=SU2_FSI/obj +endif + if BUILD_DOT SUBDIRS +=SU2_DOT/obj endif diff --git a/Makefile.in b/Makefile.in index d1ae22b460a..35ad720418e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -42,13 +42,15 @@ # License along with SU2. If not, see . # # Created: 10/26/12 -# Last updated: 03/24/14 +# Last updated: 05/18/15 # # Created by: M. Colonno # Updated by: T. Economon +# Last updated by: R. Sanchez # # Major Changes/Contributions: # METIS & TECIO integration added by Ben Kirk, 3/24/2014 +# SU2_FSI integration added by Ruben Sanchez, 5/18/2015 # ###################################################################################### VPATH = @srcdir@ @@ -89,11 +91,12 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ @BUILD_CFD_TRUE@am__append_1 = SU2_CFD/obj -@BUILD_DOT_TRUE@am__append_2 = SU2_DOT/obj -@BUILD_MSH_TRUE@am__append_3 = SU2_MSH/obj -@BUILD_DEF_TRUE@am__append_4 = SU2_DEF/obj -@BUILD_SOL_TRUE@am__append_5 = SU2_SOL/obj -@BUILD_GEO_TRUE@am__append_6 = SU2_GEO/obj +@BUILD_FSI_TRUE@am__append_2 = SU2_FSI/obj +@BUILD_DOT_TRUE@am__append_3 = SU2_DOT/obj +@BUILD_MSH_TRUE@am__append_4 = SU2_MSH/obj +@BUILD_DEF_TRUE@am__append_5 = SU2_DEF/obj +@BUILD_SOL_TRUE@am__append_6 = SU2_SOL/obj +@BUILD_GEO_TRUE@am__append_7 = SU2_GEO/obj subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ @@ -144,8 +147,8 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ ETAGS = etags CTAGS = ctags CSCOPE = cscope -DIST_SUBDIRS = externals Common/lib SU2_PY SU2_CFD/obj SU2_DOT/obj \ - SU2_MSH/obj SU2_DEF/obj SU2_SOL/obj SU2_GEO/obj +DIST_SUBDIRS = externals Common/lib SU2_PY SU2_CFD/obj SU2_FSI/obj \ + SU2_DOT/obj SU2_MSH/obj SU2_DEF/obj SU2_SOL/obj SU2_GEO/obj DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -317,7 +320,7 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 # build third-party optional dependencies first SUBDIRS = externals Common/lib SU2_PY $(am__append_1) $(am__append_2) \ $(am__append_3) $(am__append_4) $(am__append_5) \ - $(am__append_6) + $(am__append_6) $(am__append_7) all: all-recursive .SUFFIXES: diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp new file mode 100644 index 00000000000..dc88df436d6 --- /dev/null +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -0,0 +1,52 @@ +/*! + * \file SU2_FSI.hpp + * \brief Headers of the main subroutines of the code SU2_FSI. + * The subroutines and functions are in the SU2_FSI.cpp file. + * \author R. Sanchez, F. Palacios, T. Economon + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#ifdef HAVE_MPI + #include "mpi.h" +#endif +#include +#include +#include +#include + +#include "../../SU2_CFD/include/solver_structure.hpp" +#include "../../SU2_CFD/include/output_structure.hpp" +#include "../../SU2_CFD/include/integration_structure.hpp" +#include "../../SU2_CFD/include/numerics_structure.hpp" +#include "../../SU2_CFD/include/definition_structure.hpp" +#include "../../SU2_CFD/include/iteration_structure.hpp" + +#include "../../Common/include/geometry_structure.hpp" +#include "../../Common/include/config_structure.hpp" +#include "../../Common/include/grid_movement_structure.hpp" + +using namespace std; diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am new file mode 100644 index 00000000000..06f11217065 --- /dev/null +++ b/SU2_FSI/obj/Makefile.am @@ -0,0 +1,148 @@ +# SU2 Makefile.am for SU2_FSI +# SU2 v3.2.9 "eagle" +# +# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). +# Dr. Thomas D. Economon (economon@stanford.edu). +# +# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. +# Prof. Piero Colonna's group at Delft University of Technology. +# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +# Prof. Alberto Guardone's group at Polytechnic University of Milan. +# Prof. Rafael Palacios' group at Imperial College London. +# +# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . +# +# Created: 05/18/15 +# Last updated: 05/18/15 +# +# Created by: R. Sanchez +# Updated by: R. Sanchez +# +###################################################################################### + +# AUTOMAKE_OPTIONS = subdir-objects +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} + +bin_PROGRAMS = ../bin/SU2_FSI + +___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ + ../src/SU2_FSI.cpp \ + ../../SU2_CFD/include/fluid_model.hpp \ + ../../SU2_CFD/include/fluid_model.inl \ + ../../SU2_CFD/include/integration_structure.hpp \ + ../../SU2_CFD/include/integration_structure.inl \ + ../../SU2_CFD/include/iteration_structure.hpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/include/numerics_machine_learning.hpp \ + ../../SU2_CFD/include/numerics_machine_learning.inl \ + ../../SU2_CFD/include/numerics_machine_learning_turbulent.hpp \ + ../../SU2_CFD/include/numerics_structure.inl \ + ../../SU2_CFD/include/output_structure.hpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/include/solver_structure.inl \ + ../../SU2_CFD/include/SU2_CFD.hpp \ + ../../SU2_CFD/include/transport_model.hpp \ + ../../SU2_CFD/include/transport_model.inl \ + ../../SU2_CFD/include/variable_structure.hpp \ + ../../SU2_CFD/include/variable_structure.inl \ + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/src/fluid_model.cpp \ + ../../SU2_CFD/src/fluid_model_pig.cpp \ + ../../SU2_CFD/src/fluid_model_pvdw.cpp \ + ../../SU2_CFD/src/fluid_model_ppr.cpp \ + ../../SU2_CFD/src/integration_structure.cpp \ + ../../SU2_CFD/src/integration_time.cpp \ + ../../SU2_CFD/src/iteration_structure.cpp \ + ../../SU2_CFD/src/numerics_adjoint_levelset.cpp \ + ../../SU2_CFD/src/numerics_adjoint_mean.cpp \ + ../../SU2_CFD/src/numerics_adjoint_tne2.cpp \ + ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp \ + ../../SU2_CFD/src/numerics_direct_poisson.cpp \ + ../../SU2_CFD/src/numerics_direct_elasticity.cpp \ + ../../SU2_CFD/src/numerics_direct_heat.cpp \ + ../../SU2_CFD/src/numerics_direct_mean.cpp \ + ../../SU2_CFD/src/numerics_direct_tne2.cpp \ + ../../SU2_CFD/src/numerics_direct_transition.cpp \ + ../../SU2_CFD/src/numerics_direct_turbulent.cpp \ + ../../SU2_CFD/src/numerics_direct_wave.cpp \ + ../../SU2_CFD/src/numerics_machine_learning.cpp \ + ../../SU2_CFD/src/numerics_linearized_mean.cpp \ + ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ + ../../SU2_CFD/src/numerics_structure.cpp \ + ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ + ../../SU2_CFD/src/numerics_template.cpp \ + ../../SU2_CFD/src/output_cgns.cpp \ + ../../SU2_CFD/src/output_structure.cpp \ + ../../SU2_CFD/src/output_tecplot.cpp \ + ../../SU2_CFD/src/output_fieldview.cpp \ + ../../SU2_CFD/src/output_su2.cpp \ + ../../SU2_CFD/src/output_paraview.cpp \ + ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ + ../../SU2_CFD/src/solver_adjoint_mean.cpp \ + ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ + ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ + ../../SU2_CFD/src/solver_direct_poisson.cpp \ + ../../SU2_CFD/src/solver_direct_elasticity.cpp \ + ../../SU2_CFD/src/solver_direct_heat.cpp \ + ../../SU2_CFD/src/solver_direct_mean.cpp \ + ../../SU2_CFD/src/solver_direct_tne2.cpp \ + ../../SU2_CFD/src/solver_direct_transition.cpp \ + ../../SU2_CFD/src/solver_direct_turbulent.cpp \ + ../../SU2_CFD/src/solver_direct_wave.cpp \ + ../../SU2_CFD/src/solver_linearized_mean.cpp \ + ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ + ../../SU2_CFD/src/solver_structure.cpp \ + ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/SU2_CFD.cpp \ + ../../SU2_CFD/src/transport_model.cpp \ + ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ + ../../SU2_CFD/src/variable_adjoint_mean.cpp \ + ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ + ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ + ../../SU2_CFD/src/variable_direct_poisson.cpp \ + ../../SU2_CFD/src/variable_direct_elasticity.cpp \ + ../../SU2_CFD/src/variable_direct_heat.cpp \ + ../../SU2_CFD/src/variable_direct_mean.cpp \ + ../../SU2_CFD/src/variable_direct_tne2.cpp \ + ../../SU2_CFD/src/variable_direct_transition.cpp \ + ../../SU2_CFD/src/variable_direct_turbulent.cpp \ + ../../SU2_CFD/src/variable_direct_wave.cpp \ + ../../SU2_CFD/src/variable_linearized_mean.cpp \ + ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ + ../../SU2_CFD/src/variable_structure.cpp \ + ../../SU2_CFD/src/variable_template.cpp + +___bin_SU2_FSI_CXXFLAGS = +___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a + +# always link to built dependencies from ./externals +___bin_SU2_FSI_CXXFLAGS += @su2_externals_INCLUDES@ +___bin_SU2_FSI_LDADD += @su2_externals_LIBS@ + +# if BUILD_CGNS +___bin_SU2_FSI_CXXFLAGS += @CGNS_CXX@ +___bin_SU2_FSI_LDADD += @CGNS_LD@ +# endif + +# if BUILD_MUTATIONPP +___bin_SU2_FSI_CXXFLAGS += @MUTATIONPP_CXX@ +___bin_SU2_FSI_LDADD += @MUTATIONPP_LD@ +# endif + +# if BUILD_JSONCPP +___bin_SU2_FSI_CXXFLAGS += @JSONCPP_CXX@ +___bin_SU2_FSI_LDADD += @JSONCPP_LD@ +# endif diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in new file mode 100644 index 00000000000..e20e4f2bc06 --- /dev/null +++ b/SU2_FSI/obj/Makefile.in @@ -0,0 +1,1924 @@ +# Makefile.in generated by automake 1.12.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# SU2 Makefile.am for SU2_FSI +# SU2 v3.2.7 "eagle" +# +# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). +# Dr. Thomas D. Economon (economon@stanford.edu). +# +# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. +# Prof. Piero Colonna's group at Delft University of Technology. +# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +# Prof. Alberto Guardone's group at Polytechnic University of Milan. +# Prof. Rafael Palacios' group at Imperial College London. +# +# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . +# +# Created: 05/18/15 +# Last updated: 05/18/15 +# +# Created by: R. Sanchez +# Updated by: R. Sanchez +# +###################################################################################### + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) +subdir = SU2_FSI/obj +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am__dirstamp = $(am__leading_dot)dirstamp +am____bin_SU2_FSI_OBJECTS = \ + ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.$(OBJEXT) +___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) +___bin_SU2_FSI_DEPENDENCIES = ../../Common/lib/libSU2.a +___bin_SU2_FSI_LINK = $(CXXLD) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(___bin_SU2_FSI_SOURCES) +DIST_SOURCES = $(___bin_SU2_FSI_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CGNS_CXX = @CGNS_CXX@ +CGNS_LD = @CGNS_LD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JSONCPP_CXX = @JSONCPP_CXX@ +JSONCPP_LD = @JSONCPP_LD@ +LAPACK_CXX = @LAPACK_CXX@ +LAPACK_LD = @LAPACK_LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +METIS_INCLUDE = @METIS_INCLUDE@ +METIS_LIB = @METIS_LIB@ +MKDIR_P = @MKDIR_P@ +MUTATIONPP_CXX = @MUTATIONPP_CXX@ +MUTATIONPP_LD = @MUTATIONPP_LD@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ +PARMETIS_LIB = @PARMETIS_LIB@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ +SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ +TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ +TECIO_INCLUDE = @TECIO_INCLUDE@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +su2_externals_INCLUDES = @su2_externals_INCLUDES@ +su2_externals_LIBS = @su2_externals_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# AUTOMAKE_OPTIONS = subdir-objects +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} +___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ + ../src/SU2_FSI.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/include/fluid_model.hpp \ + ../../SU2_CFD/include/fluid_model.inl \ + ../../SU2_CFD/include/integration_structure.hpp \ + ../../SU2_CFD/include/integration_structure.inl \ + ../../SU2_CFD/include/iteration_structure.hpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/include/numerics_machine_learning.hpp \ + ../../SU2_CFD/include/numerics_machine_learning.inl \ + ../../SU2_CFD/include/numerics_machine_learning_turbulent.hpp \ + ../../SU2_CFD/include/numerics_structure.inl \ + ../../SU2_CFD/include/output_structure.hpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/include/solver_structure.inl \ + ../../SU2_CFD/include/SU2_CFD.hpp \ + ../../SU2_CFD/include/transport_model.hpp \ + ../../SU2_CFD/include/transport_model.inl \ + ../../SU2_CFD/include/variable_structure.hpp \ + ../../SU2_CFD/include/variable_structure.inl \ + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/src/fluid_model.cpp \ + ../../SU2_CFD/src/fluid_model_pig.cpp \ + ../../SU2_CFD/src/fluid_model_pvdw.cpp \ + ../../SU2_CFD/src/fluid_model_ppr.cpp \ + ../../SU2_CFD/src/integration_structure.cpp \ + ../../SU2_CFD/src/integration_time.cpp \ + ../../SU2_CFD/src/iteration_structure.cpp \ + ../../SU2_CFD/src/numerics_adjoint_levelset.cpp \ + ../../SU2_CFD/src/numerics_adjoint_mean.cpp \ + ../../SU2_CFD/src/numerics_adjoint_tne2.cpp \ + ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp \ + ../../SU2_CFD/src/numerics_direct_poisson.cpp \ + ../../SU2_CFD/src/numerics_direct_elasticity.cpp \ + ../../SU2_CFD/src/numerics_direct_heat.cpp \ + ../../SU2_CFD/src/numerics_direct_mean.cpp \ + ../../SU2_CFD/src/numerics_direct_tne2.cpp \ + ../../SU2_CFD/src/numerics_direct_transition.cpp \ + ../../SU2_CFD/src/numerics_direct_turbulent.cpp \ + ../../SU2_CFD/src/numerics_direct_wave.cpp \ + ../../SU2_CFD/src/numerics_machine_learning.cpp \ + ../../SU2_CFD/src/numerics_linearized_mean.cpp \ + ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ + ../../SU2_CFD/src/numerics_structure.cpp \ + ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ + ../../SU2_CFD/src/numerics_template.cpp \ + ../../SU2_CFD/src/output_cgns.cpp \ + ../../SU2_CFD/src/output_structure.cpp \ + ../../SU2_CFD/src/output_tecplot.cpp \ + ../../SU2_CFD/src/output_fieldview.cpp \ + ../../SU2_CFD/src/output_su2.cpp \ + ../../SU2_CFD/src/output_paraview.cpp \ + ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ + ../../SU2_CFD/src/solver_adjoint_mean.cpp \ + ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ + ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ + ../../SU2_CFD/src/solver_direct_poisson.cpp \ + ../../SU2_CFD/src/solver_direct_elasticity.cpp \ + ../../SU2_CFD/src/solver_direct_heat.cpp \ + ../../SU2_CFD/src/solver_direct_mean.cpp \ + ../../SU2_CFD/src/solver_direct_tne2.cpp \ + ../../SU2_CFD/src/solver_direct_transition.cpp \ + ../../SU2_CFD/src/solver_direct_turbulent.cpp \ + ../../SU2_CFD/src/solver_direct_wave.cpp \ + ../../SU2_CFD/src/solver_linearized_mean.cpp \ + ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ + ../../SU2_CFD/src/solver_structure.cpp \ + ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transport_model.cpp \ + ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ + ../../SU2_CFD/src/variable_adjoint_mean.cpp \ + ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ + ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ + ../../SU2_CFD/src/variable_direct_poisson.cpp \ + ../../SU2_CFD/src/variable_direct_elasticity.cpp \ + ../../SU2_CFD/src/variable_direct_heat.cpp \ + ../../SU2_CFD/src/variable_direct_mean.cpp \ + ../../SU2_CFD/src/variable_direct_tne2.cpp \ + ../../SU2_CFD/src/variable_direct_transition.cpp \ + ../../SU2_CFD/src/variable_direct_turbulent.cpp \ + ../../SU2_CFD/src/variable_direct_wave.cpp \ + ../../SU2_CFD/src/variable_linearized_mean.cpp \ + ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ + ../../SU2_CFD/src/variable_structure.cpp \ + ../../SU2_CFD/src/variable_template.cpp + + +# always link to built dependencies from ./externals + +# if BUILD_CGNS +# endif + +# if BUILD_MUTATIONPP +# endif + +# if BUILD_JSONCPP +___bin_SU2_FSI_CXXFLAGS = @su2_externals_INCLUDES@ @CGNS_CXX@ \ + @MUTATIONPP_CXX@ @JSONCPP_CXX@ $(am__empty) +___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a @su2_externals_LIBS@ \ + @CGNS_LD@ @MUTATIONPP_LD@ @JSONCPP_LD@ $(am__empty) +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +../src/$(am__dirstamp): + @$(MKDIR_P) ../src + @: > ../src/$(am__dirstamp) +../src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../src/$(DEPDIR) + @: > ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/$(am__dirstamp): + @$(MKDIR_P) ../../SU2_CFD/src + @: > ../../SU2_CFD/src/$(am__dirstamp) +../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) + @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.$(OBJEXT): ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-integration_time.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.$(OBJEXT): ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-output_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-output_su2.$(OBJEXT): ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-solver_template.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-transport_model.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_CFD-variable_template.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../bin/$(am__dirstamp): + @$(MKDIR_P) ../bin + @: > ../bin/$(am__dirstamp) +../bin/SU2_FSI$(EXEEXT): $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_DEPENDENCIES) $(EXTRA____bin_SU2_FSI_DEPENDENCIES) ../bin/$(am__dirstamp) + @rm -f ../bin/SU2_FSI$(EXEEXT) + $(AM_V_CXXLD)$(___bin_SU2_FSI_LINK) $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f ../../SU2_CFD/src/*.$(OBJEXT) + -rm -f ../src/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +../src/___bin_SU2_FSI-SU2_FSI.o: ../src/SU2_FSI.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp + +../src/___bin_SU2_FSI-SU2_FSI.obj: ../src/SU2_FSI.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o: ../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj: ../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o: ../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj: ../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o: ../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj: ../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o: ../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj: ../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o: ../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj: ../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o: ../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj: ../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o: ../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj: ../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o: ../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj: ../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o: ../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj: ../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o: ../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj: ../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o: ../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj: ../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o: ../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj: ../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o: ../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj: ../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o: ../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj: ../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o: ../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj: ../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o: ../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj: ../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o: ../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj: ../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o: ../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj: ../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o: ../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj: ../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o: ../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj: ../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o: ../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj: ../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o: ../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj: ../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o: ../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj: ../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o: ../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj: ../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o: ../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj: ../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o: ../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj: ../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o: ../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj: ../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o: ../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj: ../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o: ../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj: ../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o: ../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj: ../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o: ../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj: ../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o: ../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj: ../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o: ../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj: ../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o: ../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj: ../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o: ../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj: ../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o: ../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj: ../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o: ../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj: ../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o: ../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj: ../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj: ../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o: ../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj: ../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o: ../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj: ../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o: ../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj: ../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o: ../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj: ../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o: ../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj: ../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o: ../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj: ../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o: ../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj: ../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o: ../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj: ../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o: ../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj: ../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o: ../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj: ../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o: ../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj: ../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o: ../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj: ../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o: ../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj: ../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o: ../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj: ../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o: ../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj: ../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj: ../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o: ../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp + +../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj: ../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) + -rm -f ../../SU2_CFD/src/$(am__dirstamp) + -rm -f ../bin/$(am__dirstamp) + -rm -f ../src/$(DEPDIR)/$(am__dirstamp) + -rm -f ../src/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-am + -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS + +# endif + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp new file mode 100644 index 00000000000..0cc4917c4c5 --- /dev/null +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -0,0 +1,543 @@ +/*! + * \file SU2_FSI.cpp + * \brief Main file of the Fluid Structure Interaction code + * \author R. Sanchez, F. Palacios, T. Economon + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/SU2_FSI.hpp" + +using namespace std; + +int main(int argc, char *argv[]) { + + cout << endl <<"------------------------- Start running SU2_FSI -------------------------" << endl; + + bool StopCalc = false; + double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + unsigned long ExtIter = 0; + unsigned short iMesh, iZone, iSol, nZone, nDim; + char config_file_name[MAX_STRING_SIZE]; + char runtime_file_name[MAX_STRING_SIZE]; + ofstream ConvHist_file; + int rank = MASTER_NODE; + int size = SINGLE_NODE; + + /*--- MPI initialization, and buffer setting ---*/ + + #ifdef HAVE_MPI + int *bptr, bl; + MPI_Init(&argc, &argv); + MPI_Buffer_attach( malloc(BUFSIZE), BUFSIZE ); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + #endif + + /*--- Create pointers to all of the classes that may be used throughout + the SU2_FSI code. In general, the pointers are instantiated down a + heirarchy over all zones, multigrid levels, equation sets, and equation + terms as described in the comments below. ---*/ + + COutput *output = NULL; + CIntegration ***integration_container = NULL; + CGeometry ***geometry_container = NULL; + CSolver ****solver_container = NULL; + CNumerics *****numerics_container = NULL; + CConfig **config_container = NULL; + CSurfaceMovement **surface_movement = NULL; + CVolumetricMovement **grid_movement = NULL; + CFreeFormDefBox*** FFDBox = NULL; + + /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config + file is specified, default.cfg is used) ---*/ + + if (argc == 2) { strcpy(config_file_name, argv[1]); } + else { strcpy(config_file_name, "default.cfg"); } + + /*--- Read the name and format of the input mesh file to get from the mesh + file the number of zones and dimensions from the numerical grid (required + for variables allocation) ---*/ + + CConfig *config = NULL; + config = new CConfig(config_file_name, SU2_CFD); + + nZone = GetnZone(config->GetMesh_FileName(), config->GetMesh_FileFormat(), config); + nDim = GetnDim(config->GetMesh_FileName(), config->GetMesh_FileFormat()); + + /*--- Definition and of the containers for all possible zones. ---*/ + + solver_container = new CSolver***[nZone]; + integration_container = new CIntegration**[nZone]; + numerics_container = new CNumerics****[nZone]; + config_container = new CConfig*[nZone]; + geometry_container = new CGeometry**[nZone]; + surface_movement = new CSurfaceMovement*[nZone]; + grid_movement = new CVolumetricMovement*[nZone]; + FFDBox = new CFreeFormDefBox**[nZone]; + + for (iZone = 0; iZone < nZone; iZone++) { + solver_container[iZone] = NULL; + integration_container[iZone] = NULL; + numerics_container[iZone] = NULL; + config_container[iZone] = NULL; + geometry_container[iZone] = NULL; + surface_movement[iZone] = NULL; + grid_movement[iZone] = NULL; + FFDBox[iZone] = NULL; + } + + /*--- Loop over all zones to initialize the various classes. In most + cases, nZone is equal to one. This represents the solution of a partial + differential equation on a single block, unstructured mesh. ---*/ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Definition of the configuration option class for all zones. In this + constructor, the input configuration file is parsed and all options are + read and stored. ---*/ + + config_container[iZone] = new CConfig(config_file_name, SU2_CFD, iZone, nZone, nDim, VERB_HIGH); + + + /*--- Definition of the geometry class to store the primal grid in the + partitioning process. ---*/ + + CGeometry *geometry_aux = NULL; + + /*--- All ranks process the grid and call ParMETIS for partitioning ---*/ + + geometry_aux = new CPhysicalGeometry(config_container[iZone], iZone, nZone); + + /*--- Color the initial grid and set the send-receive domains (ParMETIS) ---*/ + + geometry_aux->SetColorGrid_Parallel(config_container[iZone]); + + /*--- Allocate the memory of the current domain, and divide the grid + between the ranks. ---*/ + + geometry_container[iZone] = new CGeometry *[config_container[iZone]->GetnMGLevels()+1]; + geometry_container[iZone][MESH_0] = new CPhysicalGeometry(geometry_aux, config_container[iZone], 1); + + /*--- Deallocate the memory of geometry_aux ---*/ + + delete geometry_aux; + + /*--- Add the Send/Receive boundaries ---*/ + + geometry_container[iZone][MESH_0]->SetSendReceive(config_container[iZone]); + + /*--- Add the Send/Receive boundaries ---*/ + + geometry_container[iZone][MESH_0]->SetBoundaries(config_container[iZone]); + + } + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Geometry Preprocessing ------------------------" << endl; + + /*--- Preprocessing of the geometry for all zones. In this routine, the edge- + based data structure is constructed, i.e. node and cell neighbors are + identified and linked, face areas and volumes of the dual mesh cells are + computed, and the multigrid levels are created using an agglomeration procedure. ---*/ + + Geometrical_Preprocessing(geometry_container, config_container, nZone); + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Solver Preprocessing --------------------------" << endl; + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Computation of wall distances for turbulence modeling ---*/ + + if ( (config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == ADJ_RANS) ) + geometry_container[iZone][MESH_0]->ComputeWall_Distance(config_container[iZone]); + + /*--- Computation of positive surface area in the z-plane which is used for + the calculation of force coefficient (non-dimensionalization). ---*/ + + geometry_container[iZone][MESH_0]->SetPositive_ZArea(config_container[iZone]); + + /*--- Set the near-field, interface and actuator disk boundary conditions, if necessary. ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + geometry_container[iZone][iMesh]->MatchNearField(config_container[iZone]); + geometry_container[iZone][iMesh]->MatchInterface(config_container[iZone]); + geometry_container[iZone][iMesh]->MatchActuator_Disk(config_container[iZone]); + } + + /*--- Definition of the solver class: solver_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS]. + The solver classes are specific to a particular set of governing equations, + and they contain the subroutines with instructions for computing each spatial + term of the PDE, i.e. loops over the edges to compute convective and viscous + fluxes, loops over the nodes to compute source terms, and routines for + imposing various boundary condition type for the PDE. ---*/ + + solver_container[iZone] = new CSolver** [config_container[iZone]->GetnMGLevels()+1]; + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) + solver_container[iZone][iMesh] = NULL; + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + solver_container[iZone][iMesh] = new CSolver* [MAX_SOLS]; + for (iSol = 0; iSol < MAX_SOLS; iSol++) + solver_container[iZone][iMesh][iSol] = NULL; + } + Solver_Preprocessing(solver_container[iZone], geometry_container[iZone], + config_container[iZone], iZone); + + if (rank == MASTER_NODE) + cout << endl <<"----------------- Integration and Numerics Preprocessing ----------------" << endl; + + /*--- Definition of the integration class: integration_container[#ZONES][#EQ_SYSTEMS]. + The integration class orchestrates the execution of the spatial integration + subroutines contained in the solver class (including multigrid) for computing + the residual at each node, R(U) and then integrates the equations to a + steady state or time-accurately. ---*/ + + integration_container[iZone] = new CIntegration*[MAX_SOLS]; + Integration_Preprocessing(integration_container[iZone], geometry_container[iZone], + config_container[iZone], iZone); + + if (rank == MASTER_NODE) cout << "Integration Preprocessing." << endl; + + /*--- Definition of the numerical method class: + numerics_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS][#EQ_TERMS]. + The numerics class contains the implementation of the numerical methods for + evaluating convective or viscous fluxes between any two nodes in the edge-based + data structure (centered, upwind, galerkin), as well as any source terms + (piecewise constant reconstruction) evaluated in each dual mesh volume. ---*/ + + numerics_container[iZone] = new CNumerics***[config_container[iZone]->GetnMGLevels()+1]; + Numerics_Preprocessing(numerics_container[iZone], solver_container[iZone], + geometry_container[iZone], config_container[iZone], iZone); + + if (rank == MASTER_NODE) cout << "Numerics Preprocessing." << endl; + + /*--- Instantiate the geometry movement classes for the solution of unsteady + flows on dynamic meshes, including rigid mesh transformations, dynamically + deforming meshes, and time-spectral preprocessing. ---*/ + + if (config_container[iZone]->GetGrid_Movement()) { + if (rank == MASTER_NODE) + cout << "Setting dynamic mesh structure." << endl; + grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0]); + FFDBox[iZone] = new CFreeFormDefBox*[MAX_NUMBER_FFD]; + surface_movement[iZone] = new CSurfaceMovement(); + surface_movement[iZone]->CopyBoundary(geometry_container[iZone][MESH_0], config_container[iZone]); + if (config_container[iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL) + SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], + FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, 0, 0); + } + + } + + /*--- For the time-spectral solver, set the grid node velocities. ---*/ + + if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) + SetTimeSpectral_Velocities(geometry_container, config_container, nZone); + + /*--- Coupling between zones (limited to two zones at the moment) ---*/ + + if (nZone == 2) { + if (rank == MASTER_NODE) + cout << endl <<"--------------------- Setting Coupling Between Zones --------------------" << endl; + geometry_container[ZONE_0][MESH_0]->MatchZone(config_container[ZONE_0], geometry_container[ZONE_1][MESH_0], + config_container[ZONE_1], ZONE_0, nZone); + geometry_container[ZONE_1][MESH_0]->MatchZone(config_container[ZONE_1], geometry_container[ZONE_0][MESH_0], + config_container[ZONE_0], ZONE_1, nZone); + } + + /*--- Definition of the output class (one for all zones). The output class + manages the writing of all restart, volume solution, surface solution, + surface comma-separated value, and convergence history files (both in serial + and in parallel). ---*/ + + output = new COutput(); + + /*--- Open the convergence history file ---*/ + + if (rank == MASTER_NODE) + output->SetConvHistory_Header(&ConvHist_file, config_container[ZONE_0]); + + /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) + ExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); + + /*--- Main external loop of the solver. Within this loop, each iteration ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------------------ Begin Solver -----------------------------" << endl; + + /*--- Set up a timer for performance benchmarking (preprocessing time is not included) ---*/ + + #ifndef HAVE_MPI + StartTime = double(clock())/double(CLOCKS_PER_SEC); + #else + StartTime = MPI_Wtime(); + #endif + + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); + + unsigned short iFluidIt, nFluidIt; + + iFluidIt=0; + nFluidIt=config_container[ZONE_0]->GetnIterFSI(); + + /*--- This is temporal and just to check. It will have to be added to the regular history file ---*/ + + ofstream historyFile_FSI; + bool writeHistFSI = config_container[ZONE_0]->GetWrite_Conv_FSI(); + if (writeHistFSI){ + char cstrFSI[200]; + string filenameHistFSI = config_container[ZONE_0]->GetConv_FileName_FSI(); + strcpy (cstrFSI, filenameHistFSI.data()); + historyFile_FSI.open (cstrFSI); + historyFile_FSI << "Time,Iteration,Aitken,URes,logResidual,orderMagnResidual" << endl; + historyFile_FSI.close(); + } + + while (ExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Set the value of the external iteration. ---*/ + + config_container[ZONE_0]->SetExtIter(ExtIter); + + /*--- Read the target pressure ---*/ + + if (config_container[ZONE_0]->GetInvDesign_Cp() == YES) + output->SetCp_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + + /*--- Read the target heat flux ---*/ + + if (config_container[ZONE_0]->GetInvDesign_HeatFlux() == YES) + output->SetHeat_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + + /*--- Perform a single iteration of the chosen PDE solver. ---*/ + + if (fsi){ + config_container[ZONE_1]->SetExtIter(ExtIter); + FluidStructureIteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, + iFluidIt, nFluidIt); + } + + else { + + switch (config_container[ZONE_0]->GetKind_Solver()) { + + case LINEAR_ELASTICITY: + FEAIteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + break; + + } + } + + + /*--- Synchronization point after a single solver iteration. Compute the + wall clock time required. ---*/ + + #ifndef HAVE_MPI + StopTime = double(clock())/double(CLOCKS_PER_SEC); + #else + StopTime = MPI_Wtime(); + #endif + + UsedTime = (StopTime - StartTime); + + /*--- For specific applications, evaluate and plot the equivalent area. ---*/ + + if (config_container[ZONE_0]->GetEquivArea() == YES) { + output->SetEquivalentArea(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + } + + /*--- Check if there is any change in the runtime parameters ---*/ + + CConfig *runtime = NULL; + strcpy(runtime_file_name, "runtime.dat"); + runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); + + /*--- Update the convergence history file (serial and parallel computations). ---*/ + + output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, + config_container, integration_container, false, UsedTime, ZONE_0); + + /*--- Evaluate the new CFL number (adaptive). ---*/ + + if (config_container[ZONE_0]->GetCFL_Adapt() == YES) { + output->SetCFL_Number(solver_container, config_container, ZONE_0); + } + + /*--- Check whether the current simulation has reached the specified + convergence criteria, and set StopCalc to true, if so. ---*/ + + switch (config_container[ZONE_0]->GetKind_Solver()) { + case EULER: case NAVIER_STOKES: case RANS: + StopCalc = integration_container[ZONE_0][FLOW_SOL]->GetConvergence(); break; + case TNE2_EULER: case TNE2_NAVIER_STOKES: + StopCalc = integration_container[ZONE_0][TNE2_SOL]->GetConvergence(); break; + case WAVE_EQUATION: + StopCalc = integration_container[ZONE_0][WAVE_SOL]->GetConvergence(); break; + case HEAT_EQUATION: + StopCalc = integration_container[ZONE_0][HEAT_SOL]->GetConvergence(); break; + case LINEAR_ELASTICITY: + // This is a temporal fix, while we code the non-linear solver + // StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; + StopCalc = false; break; + case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: + StopCalc = integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence(); break; + case ADJ_TNE2_EULER: case ADJ_TNE2_NAVIER_STOKES: + StopCalc = integration_container[ZONE_0][ADJTNE2_SOL]->GetConvergence(); break; + } + + /*--- Solution output. Determine whether a solution needs to be written + after the current iteration, and if so, execute the output file writing + routines. ---*/ + + if ((ExtIter+1 >= config_container[ZONE_0]->GetnExtIter()) || + + ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (ExtIter != 0) && + !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || + + (StopCalc) || + + ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) && + ((ExtIter == 0) || (ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))) || + + ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (!fsi) && + ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0) || + ((ExtIter-1) % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) || + + ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (fsi) && + ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))))) { + + /*--- Low-fidelity simulations (using a coarser multigrid level + approximation to the solution) require an interpolation back to the + finest grid. ---*/ + + if (config_container[ZONE_0]->GetLowFidelitySim()) { + integration_container[ZONE_0][FLOW_SOL]->SetProlongated_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][MESH_1][FLOW_SOL], geometry_container[ZONE_0][MESH_0], geometry_container[ZONE_0][MESH_1], config_container[ZONE_0]); + integration_container[ZONE_0][FLOW_SOL]->Smooth_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], geometry_container[ZONE_0][MESH_0], 3, 1.25, config_container[ZONE_0]); + solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Set_MPI_Solution(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0]); + solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Preprocessing(geometry_container[ZONE_0][MESH_0], solver_container[ZONE_0][MESH_0], config_container[ZONE_0], MESH_0, 0, RUNTIME_FLOW_SYS, false); + } + + if (rank == MASTER_NODE) cout << endl << "-------------------------- File Output Summary --------------------------"; + + /*--- Execute the routine for writing restart, volume solution, + surface solution, and surface comma-separated value files. ---*/ + + output->SetResult_Files(solver_container, geometry_container, config_container, ExtIter, nZone); + + /*--- Output a file with the forces breakdown. ---*/ + + output->SetForces_Breakdown(geometry_container, solver_container, + config_container, integration_container, ZONE_0); + + /*--- Compute the forces at different sections. ---*/ + + if (config_container[ZONE_0]->GetPlot_Section_Forces()) { + output->SetForceSections(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + } + + if (rank == MASTER_NODE) cout << "-------------------------------------------------------------------------" << endl << endl; + + } + + /*--- If the convergence criteria has been met, terminate the simulation. ---*/ + + if (StopCalc) break; + + ExtIter++; + + } + + /*--- Output some information to the console. ---*/ + + if (rank == MASTER_NODE) { + + /*--- Print out the number of non-physical points and reconstructions ---*/ + + if (config_container[ZONE_0]->GetNonphysical_Points() > 0) + cout << "Warning: there are " << config_container[ZONE_0]->GetNonphysical_Points() << " non-physical points in the solution." << endl; + if (config_container[ZONE_0]->GetNonphysical_Reconstr() > 0) + cout << "Warning: " << config_container[ZONE_0]->GetNonphysical_Reconstr() << " reconstructed states for upwinding are non-physical." << endl; + + /*--- Close the convergence history file. ---*/ + + ConvHist_file.close(); + cout << "History file, closed." << endl; + } + + // /*--- Deallocate config container ---*/ + // + // for (iZone = 0; iZone < nZone; iZone++) { + // if (config_container[iZone] != NULL) { + // delete config_container[iZone]; + // } + // } + // if (config_container != NULL) delete[] config_container; + + + /*--- Synchronization point after a single solver iteration. Compute the + wall clock time required. ---*/ + + #ifndef HAVE_MPI + StopTime = double(clock())/double(CLOCKS_PER_SEC); + #else + StopTime = MPI_Wtime(); + #endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + UsedTime = StopTime-StartTime; + if (rank == MASTER_NODE) { + cout << "\nCompleted in " << fixed << UsedTime << " seconds on "<< size; + if (size == 1) cout << " core." << endl; else cout << " cores." << endl; + } + + /*--- Exit the solver cleanly ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Exit Success (SU2_FSI) ------------------------" << endl << endl; + + #ifdef HAVE_MPI + /*--- Finalize MPI parallelization ---*/ + MPI_Buffer_detach(&bptr, &bl); + MPI_Finalize(); + #endif + + return EXIT_SUCCESS; + +} diff --git a/configure b/configure index 37ea62371bd..bd90a070184 100755 --- a/configure +++ b/configure @@ -1,11 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for SU2 3.2.9. +# Generated by GNU Autoconf 2.68 for SU2 3.2.9. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,31 +136,6 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -192,8 +169,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" +test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -238,25 +214,21 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -359,14 +331,6 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -488,10 +452,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -526,16 +486,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -547,8 +507,28 @@ else as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -635,6 +615,8 @@ BUILD_MSH_FALSE BUILD_MSH_TRUE BUILD_DOT_FALSE BUILD_DOT_TRUE +BUILD_FSI_FALSE +BUILD_FSI_TRUE BUILD_CFD_FALSE BUILD_CFD_TRUE LAPACK_LD @@ -790,6 +772,7 @@ with_Jsoncpp_include with_LAPACK_lib with_LAPACK_include enable_CFD +enable_FSI enable_DOT enable_MSH enable_DEF @@ -1269,6 +1252,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1441,6 +1426,7 @@ Optional Features: --disable-dependency-tracking speeds up one-time build --disable-CFD build the SU2_CFD executable (default = yes) + --disable-FSI build the SU2_FSI executable (default = yes) --disable-DOT build the SU2_DOT executable (default = yes) --disable-MSH build the SU2_MSH executable (default = yes) --disable-DEF build the SU2_DEF executable (default = yes) @@ -1557,9 +1543,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF SU2 configure 3.2.9 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.68 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1705,8 +1691,7 @@ int main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1722,8 +1707,7 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1749,8 +1733,7 @@ int main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1766,8 +1749,7 @@ int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1801,8 +1783,7 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2034,7 +2015,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by SU2 $as_me 3.2.9, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2561,7 +2542,7 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2745,7 +2726,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2785,7 +2766,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2836,7 +2817,7 @@ do test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -2883,7 +2864,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3190,7 +3171,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3234,7 +3215,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3842,7 +3823,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3886,7 +3867,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4080,7 +4061,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -struct stat; +#include +#include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4438,7 +4420,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4478,7 +4460,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4673,7 +4655,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4739,7 +4721,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5220,6 +5202,13 @@ else build_CFD="yes" fi +# Check whether --enable-FSI was given. +if test "${enable_FSI+set}" = set; then : + enableval=$enable_FSI; build_FSI=$enableval +else + build_FSI="yes" +fi + # Check whether --enable-DOT was given. if test "${enable_DOT+set}" = set; then : enableval=$enable_DOT; build_DOT=$enableval @@ -6008,6 +5997,14 @@ else BUILD_CFD_FALSE= fi + if test $build_FSI != "no"; then + BUILD_FSI_TRUE= + BUILD_FSI_FALSE='#' +else + BUILD_FSI_TRUE='#' + BUILD_FSI_FALSE= +fi + if test $build_DOT != "no"; then BUILD_DOT_TRUE= BUILD_DOT_FALSE='#' @@ -6051,7 +6048,7 @@ fi ########################### -ac_config_files="$ac_config_files Makefile externals/Makefile Common/lib/Makefile SU2_CFD/obj/Makefile SU2_DOT/obj/Makefile SU2_MSH/obj/Makefile SU2_DEF/obj/Makefile SU2_SOL/obj/Makefile SU2_GEO/obj/Makefile SU2_PY/Makefile" +ac_config_files="$ac_config_files Makefile externals/Makefile Common/lib/Makefile SU2_CFD/obj/Makefile SU2_FSI/obj/Makefile SU2_DOT/obj/Makefile SU2_MSH/obj/Makefile SU2_DEF/obj/Makefile SU2_SOL/obj/Makefile SU2_GEO/obj/Makefile SU2_PY/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -6274,6 +6271,10 @@ if test -z "${BUILD_CFD_TRUE}" && test -z "${BUILD_CFD_FALSE}"; then as_fn_error $? "conditional \"BUILD_CFD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_FSI_TRUE}" && test -z "${BUILD_FSI_FALSE}"; then + as_fn_error $? "conditional \"BUILD_FSI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${BUILD_DOT_TRUE}" && test -z "${BUILD_DOT_FALSE}"; then as_fn_error $? "conditional \"BUILD_DOT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -6592,16 +6593,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -6661,16 +6662,28 @@ else as_mkdir_p=false fi - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -6692,7 +6705,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by SU2 $as_me 3.2.9, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -6750,10 +6763,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ SU2 config.status 3.2.9 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -6833,7 +6846,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -6875,6 +6888,7 @@ do "externals/Makefile") CONFIG_FILES="$CONFIG_FILES externals/Makefile" ;; "Common/lib/Makefile") CONFIG_FILES="$CONFIG_FILES Common/lib/Makefile" ;; "SU2_CFD/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_CFD/obj/Makefile" ;; + "SU2_FSI/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_FSI/obj/Makefile" ;; "SU2_DOT/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_DOT/obj/Makefile" ;; "SU2_MSH/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_MSH/obj/Makefile" ;; "SU2_DEF/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_DEF/obj/Makefile" ;; @@ -7455,7 +7469,7 @@ abs_prefix=$prefix #`(cd $prefix && pwd)` | |___/\\___//___| Suite | | | ------------------------------------------------------------------------- -| SU2 Lead Dev.: Dr. Francisco Palacios (francisco.palacios@boeing.com).| +| SU2 Lead Dev.: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com).| | Dr. Thomas D. Economon (economon@stanford.edu). | ------------------------------------------------------------------------- | SU2 Developers: | @@ -7504,6 +7518,7 @@ Build Configuration Summary: External libs: $su2_externals_LIBS Build SU2_CFD: $build_CFD + Build SU2_FSI: $build_FSI Build SU2_DOT: $build_DOT Build SU2_MSH: $build_MSH Build SU2_DEF: $build_DEF @@ -7530,7 +7545,7 @@ $as_echo " | |___/\\___//___| Suite | | | ------------------------------------------------------------------------- -| SU2 Lead Dev.: Dr. Francisco Palacios (francisco.palacios@boeing.com).| +| SU2 Lead Dev.: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com).| | Dr. Thomas D. Economon (economon@stanford.edu). | ------------------------------------------------------------------------- | SU2 Developers: | @@ -7579,6 +7594,7 @@ Build Configuration Summary: External libs: $su2_externals_LIBS Build SU2_CFD: $build_CFD + Build SU2_FSI: $build_FSI Build SU2_DOT: $build_DOT Build SU2_MSH: $build_MSH Build SU2_DEF: $build_DEF diff --git a/configure.ac b/configure.ac index 1353fc58b7b..739264460ab 100644 --- a/configure.ac +++ b/configure.ac @@ -26,15 +26,17 @@ # License along with SU2. If not, see . # # Created: 10/26/12 -# Last updated: 03/24/14 +# Last updated: 05/18/15 # # Created by: M. Colonno 10/26/12 # Updated by: T. Economon 3/24/14 +# Last updated by: R. Sanchez 05/18/15 # # Major Changes/Contributions: # METIS & TECIO integration added by Ben Kirk, 3/24/2014 # LAPACK connection added by Teus van der Stelt, 11/13/2014 # ParMETIS integration added by Ben Kirk & Thomas D. Economon, 2/3/2015 +# SU2_FSI integration added by Ruben Sanchez, 5/18/2015 ########################## AC_INIT([SU2], [3.2.9], [su2code-dev@lists.stanford.edu], @@ -90,6 +92,9 @@ AC_ARG_WITH(LAPACK-include, AC_ARG_ENABLE(CFD, AS_HELP_STRING([--disable-CFD], [build the SU2_CFD executable (default = yes)]), [build_CFD=$enableval], [build_CFD="yes"]) +AC_ARG_ENABLE(FSI, + AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), + [build_FSI=$enableval], [build_FSI="yes"]) AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) @@ -337,6 +342,7 @@ AC_SUBST([LAPACK_LD]) ########################### AM_CONDITIONAL([BUILD_CFD],[test $build_CFD != "no"]) +AM_CONDITIONAL([BUILD_FSI],[test $build_FSI != "no"]) AM_CONDITIONAL([BUILD_DOT],[test $build_DOT != "no"]) AM_CONDITIONAL([BUILD_MSH],[test $build_MSH != "no"]) AM_CONDITIONAL([BUILD_DEF],[test $build_DEF != "no"]) @@ -349,6 +355,7 @@ AC_OUTPUT(Makefile \ externals/Makefile \ Common/lib/Makefile \ SU2_CFD/obj/Makefile \ + SU2_FSI/obj/Makefile \ SU2_DOT/obj/Makefile \ SU2_MSH/obj/Makefile \ SU2_DEF/obj/Makefile \ @@ -418,6 +425,7 @@ Build Configuration Summary: External libs: $su2_externals_LIBS Build SU2_CFD: $build_CFD + Build SU2_FSI: $build_FSI Build SU2_DOT: $build_DOT Build SU2_MSH: $build_MSH Build SU2_DEF: $build_DEF From 05219df2c55a14b9540d91a476a3d504c8630894 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 19 May 2015 17:05:14 +0100 Subject: [PATCH 003/269] SU2_FSI updates, added iteration structure --- .gitignore | 2 +- SU2_FSI/include/SU2_FSI.hpp | 2 + SU2_FSI/include/iteration_structure_fsi.hpp | 145 ++ SU2_FSI/obj/Makefile.am | 6 +- SU2_FSI/obj/Makefile.in | 2080 ++++++++++--------- SU2_FSI/src/SU2_FSI.cpp | 2 +- SU2_FSI/src/iteration_structure_fsi.cpp | 407 ++++ configure.ac | 6 +- 8 files changed, 1645 insertions(+), 1005 deletions(-) create mode 100644 SU2_FSI/include/iteration_structure_fsi.hpp create mode 100644 SU2_FSI/src/iteration_structure_fsi.cpp diff --git a/.gitignore b/.gitignore index ea9f7318202..ae9ac9ac98c 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,4 @@ Debug/ go.sh log_make.txt log_make_install.txt -SU2_FSI/bin/* +SU2_FSI/bin/SU2_FSI diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp index dc88df436d6..e8d6a09e2b1 100644 --- a/SU2_FSI/include/SU2_FSI.hpp +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -49,4 +49,6 @@ #include "../../Common/include/config_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" +#include "../include/iteration_structure_fsi.hpp" + using namespace std; diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp new file mode 100644 index 00000000000..352a5dceeae --- /dev/null +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -0,0 +1,145 @@ +/*! + * \file iteration_structure_fsi.hpp + * \brief Headers of the main subroutines used by SU2_CFD. + * The subroutines and functions are in the definition_structure.cpp file. + * \author R. Sanchez + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#ifdef HAVE_MPI + #include "mpi.h" +#endif +#include + +#include "../../SU2_CFD/include/solver_structure.hpp" +#include "../../SU2_CFD/include/integration_structure.hpp" +#include "../../SU2_CFD/include/output_structure.hpp" +#include "../../SU2_CFD/include/numerics_structure.hpp" +#include "../../Common/include/geometry_structure.hpp" +#include "../../Common/include/grid_movement_structure.hpp" +#include "../../Common/include/config_structure.hpp" + +using namespace std; + +/*! + * \brief Block Gauss-Seidel Iteration function for Fluid-Structure Interaction applications. + * \author R. Sanchez, F. Palacios. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + * \param[in] nFluidIt - Number of fluid iterations within a fixed time step. + */ +void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long iFluidIt, unsigned long nFluidIt); + +/*! + * \brief CFD Subiteration function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief CFD update function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter); + + +/*! + * \brief FEA Subiteration function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief FEA update function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter); + + +/*! + * \brief Relaxation step for displacements. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] iFSIIter - Current FSI iteration number. + */ +void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned long iFSIIter); diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 06f11217065..799ad98be96 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -26,7 +26,7 @@ # License along with SU2. If not, see . # # Created: 05/18/15 -# Last updated: 05/18/15 +# Last updated: 05/19/15 # # Created by: R. Sanchez # Updated by: R. Sanchez @@ -40,6 +40,8 @@ bin_PROGRAMS = ../bin/SU2_FSI ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp \ + ../include/iteration_structure_fsi.hpp \ + ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/fluid_model.hpp \ ../../SU2_CFD/include/fluid_model.inl \ ../../SU2_CFD/include/integration_structure.hpp \ @@ -53,7 +55,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/output_structure.hpp \ ../../SU2_CFD/include/solver_structure.hpp \ ../../SU2_CFD/include/solver_structure.inl \ - ../../SU2_CFD/include/SU2_CFD.hpp \ ../../SU2_CFD/include/transport_model.hpp \ ../../SU2_CFD/include/transport_model.inl \ ../../SU2_CFD/include/variable_structure.hpp \ @@ -106,7 +107,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ - ../../SU2_CFD/src/SU2_CFD.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ ../../SU2_CFD/src/variable_adjoint_mean.cpp \ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index e20e4f2bc06..04eb2802df9 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,7 +16,7 @@ @SET_MAKE@ # SU2 Makefile.am for SU2_FSI -# SU2 v3.2.7 "eagle" +# SU2 v3.2.9 "eagle" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -42,7 +43,7 @@ # License along with SU2. If not, see . # # Created: 05/18/15 -# Last updated: 05/18/15 +# Last updated: 05/19/15 # # Created by: R. Sanchez # Updated by: R. Sanchez @@ -50,23 +51,6 @@ ###################################################################################### VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -88,13 +72,9 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) subdir = SU2_FSI/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -103,89 +83,77 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp -am____bin_SU2_FSI_OBJECTS = \ - ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.$(OBJEXT) +am____bin_SU2_FSI_OBJECTS = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ + ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.$(OBJEXT) ___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) ___bin_SU2_FSI_DEPENDENCIES = ../../Common/lib/libSU2.a ___bin_SU2_FSI_LINK = $(CXXLD) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -193,39 +161,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_FSI_SOURCES) DIST_SOURCES = $(___bin_SU2_FSI_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -269,8 +233,6 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -METIS_INCLUDE = @METIS_INCLUDE@ -METIS_LIB = @METIS_LIB@ MKDIR_P = @MKDIR_P@ MUTATIONPP_CXX = @MUTATIONPP_CXX@ MUTATIONPP_LD = @MUTATIONPP_LD@ @@ -282,17 +244,11 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ -PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ -SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ -TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ -TECIO_INCLUDE = @TECIO_INCLUDE@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -356,7 +312,8 @@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ + ../include/iteration_structure_fsi.hpp \ + ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/fluid_model.hpp \ ../../SU2_CFD/include/fluid_model.inl \ ../../SU2_CFD/include/integration_structure.hpp \ @@ -370,7 +327,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/output_structure.hpp \ ../../SU2_CFD/include/solver_structure.hpp \ ../../SU2_CFD/include/solver_structure.inl \ - ../../SU2_CFD/include/SU2_CFD.hpp \ ../../SU2_CFD/include/transport_model.hpp \ ../../SU2_CFD/include/transport_model.inl \ ../../SU2_CFD/include/variable_structure.hpp \ @@ -491,11 +447,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -537,142 +490,209 @@ clean-binPROGRAMS: @: > ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/$(am__dirstamp): @$(MKDIR_P) ../../SU2_CFD/src @: > ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.$(OBJEXT): ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-integration_time.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.$(OBJEXT): ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-output_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-output_su2.$(OBJEXT): ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-solver_template.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-transport_model.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_CFD-variable_template.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-output_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-output_su2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_template.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) @@ -682,78 +702,144 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) + -rm -f ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -785,915 +871,929 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_FSI-iteration_structure_fsi.o: ../src/iteration_structure_fsi.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp + +../src/___bin_SU2_FSI-iteration_structure_fsi.obj: ../src/iteration_structure_fsi.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o: ../../SU2_CFD/src/fluid_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o: ../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj: ../../SU2_CFD/src/fluid_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj: ../../SU2_CFD/src/fluid_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o: ../../SU2_CFD/src/fluid_model_pig.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o: ../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj: ../../SU2_CFD/src/fluid_model_pig.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj: ../../SU2_CFD/src/fluid_model_pig.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o: ../../SU2_CFD/src/fluid_model_pvdw.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o: ../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj: ../../SU2_CFD/src/fluid_model_pvdw.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj: ../../SU2_CFD/src/fluid_model_pvdw.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o: ../../SU2_CFD/src/fluid_model_ppr.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o: ../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp -../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj: ../../SU2_CFD/src/fluid_model_ppr.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj: ../../SU2_CFD/src/fluid_model_ppr.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o: ../../SU2_CFD/src/integration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o: ../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj: ../../SU2_CFD/src/integration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj: ../../SU2_CFD/src/integration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o: ../../SU2_CFD/src/integration_time.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o: ../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp -../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj: ../../SU2_CFD/src/integration_time.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj: ../../SU2_CFD/src/integration_time.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o: ../../SU2_CFD/src/numerics_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o: ../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj: ../../SU2_CFD/src/numerics_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj: ../../SU2_CFD/src/numerics_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o: ../../SU2_CFD/src/numerics_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o: ../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj: ../../SU2_CFD/src/numerics_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj: ../../SU2_CFD/src/numerics_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o: ../../SU2_CFD/src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o: ../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj: ../../SU2_CFD/src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj: ../../SU2_CFD/src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o: ../../SU2_CFD/src/numerics_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o: ../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj: ../../SU2_CFD/src/numerics_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj: ../../SU2_CFD/src/numerics_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o: ../../SU2_CFD/src/numerics_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o: ../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj: ../../SU2_CFD/src/numerics_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj: ../../SU2_CFD/src/numerics_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o: ../../SU2_CFD/src/numerics_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o: ../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj: ../../SU2_CFD/src/numerics_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj: ../../SU2_CFD/src/numerics_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o: ../../SU2_CFD/src/numerics_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o: ../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj: ../../SU2_CFD/src/numerics_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj: ../../SU2_CFD/src/numerics_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o: ../../SU2_CFD/src/numerics_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o: ../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj: ../../SU2_CFD/src/numerics_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj: ../../SU2_CFD/src/numerics_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o: ../../SU2_CFD/src/numerics_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o: ../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj: ../../SU2_CFD/src/numerics_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj: ../../SU2_CFD/src/numerics_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o: ../../SU2_CFD/src/numerics_machine_learning.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o: ../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj: ../../SU2_CFD/src/numerics_machine_learning.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj: ../../SU2_CFD/src/numerics_machine_learning.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o: ../../SU2_CFD/src/numerics_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o: ../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj: ../../SU2_CFD/src/numerics_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj: ../../SU2_CFD/src/numerics_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o: ../../SU2_CFD/src/numerics_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o: ../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj: ../../SU2_CFD/src/numerics_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj: ../../SU2_CFD/src/numerics_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o: ../../SU2_CFD/src/numerics_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o: ../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp -../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj: ../../SU2_CFD/src/numerics_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj: ../../SU2_CFD/src/numerics_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o: ../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp -../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj: ../../SU2_CFD/src/output_cgns.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o: ../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj: ../../SU2_CFD/src/output_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o: ../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp -../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj: ../../SU2_CFD/src/output_tecplot.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o: ../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp -../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj: ../../SU2_CFD/src/output_fieldview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o: ../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj: ../../SU2_CFD/src/output_su2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o: ../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp -../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj: ../../SU2_CFD/src/output_paraview.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o: ../../SU2_CFD/src/solver_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o: ../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj: ../../SU2_CFD/src/solver_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj: ../../SU2_CFD/src/solver_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o: ../../SU2_CFD/src/solver_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o: ../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj: ../../SU2_CFD/src/solver_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj: ../../SU2_CFD/src/solver_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o: ../../SU2_CFD/src/solver_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o: ../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj: ../../SU2_CFD/src/solver_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj: ../../SU2_CFD/src/solver_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o: ../../SU2_CFD/src/solver_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o: ../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj: ../../SU2_CFD/src/solver_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj: ../../SU2_CFD/src/solver_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o: ../../SU2_CFD/src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o: ../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj: ../../SU2_CFD/src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj: ../../SU2_CFD/src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o: ../../SU2_CFD/src/solver_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o: ../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj: ../../SU2_CFD/src/solver_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj: ../../SU2_CFD/src/solver_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o: ../../SU2_CFD/src/solver_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o: ../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj: ../../SU2_CFD/src/solver_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj: ../../SU2_CFD/src/solver_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o: ../../SU2_CFD/src/solver_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o: ../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj: ../../SU2_CFD/src/solver_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj: ../../SU2_CFD/src/solver_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o: ../../SU2_CFD/src/solver_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o: ../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj: ../../SU2_CFD/src/solver_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj: ../../SU2_CFD/src/solver_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o: ../../SU2_CFD/src/solver_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o: ../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj: ../../SU2_CFD/src/solver_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj: ../../SU2_CFD/src/solver_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o: ../../SU2_CFD/src/solver_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o: ../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj: ../../SU2_CFD/src/solver_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj: ../../SU2_CFD/src/solver_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o: ../../SU2_CFD/src/solver_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o: ../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj: ../../SU2_CFD/src/solver_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj: ../../SU2_CFD/src/solver_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o: ../../SU2_CFD/src/solver_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o: ../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj: ../../SU2_CFD/src/solver_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj: ../../SU2_CFD/src/solver_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj: ../../SU2_CFD/src/solver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o: ../../SU2_CFD/src/solver_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o: ../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp -../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj: ../../SU2_CFD/src/solver_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj: ../../SU2_CFD/src/solver_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o: ../../SU2_CFD/src/transport_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o: ../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp -../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj: ../../SU2_CFD/src/transport_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj: ../../SU2_CFD/src/transport_model.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o: ../../SU2_CFD/src/variable_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o: ../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj: ../../SU2_CFD/src/variable_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj: ../../SU2_CFD/src/variable_adjoint_levelset.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o: ../../SU2_CFD/src/variable_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o: ../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj: ../../SU2_CFD/src/variable_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj: ../../SU2_CFD/src/variable_adjoint_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o: ../../SU2_CFD/src/variable_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o: ../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj: ../../SU2_CFD/src/variable_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj: ../../SU2_CFD/src/variable_adjoint_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o: ../../SU2_CFD/src/variable_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o: ../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj: ../../SU2_CFD/src/variable_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj: ../../SU2_CFD/src/variable_direct_poisson.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o: ../../SU2_CFD/src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o: ../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj: ../../SU2_CFD/src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj: ../../SU2_CFD/src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o: ../../SU2_CFD/src/variable_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o: ../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj: ../../SU2_CFD/src/variable_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj: ../../SU2_CFD/src/variable_direct_heat.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o: ../../SU2_CFD/src/variable_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o: ../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj: ../../SU2_CFD/src/variable_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj: ../../SU2_CFD/src/variable_direct_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o: ../../SU2_CFD/src/variable_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o: ../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj: ../../SU2_CFD/src/variable_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj: ../../SU2_CFD/src/variable_direct_tne2.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o: ../../SU2_CFD/src/variable_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o: ../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj: ../../SU2_CFD/src/variable_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj: ../../SU2_CFD/src/variable_direct_transition.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o: ../../SU2_CFD/src/variable_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o: ../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj: ../../SU2_CFD/src/variable_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj: ../../SU2_CFD/src/variable_direct_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o: ../../SU2_CFD/src/variable_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o: ../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj: ../../SU2_CFD/src/variable_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj: ../../SU2_CFD/src/variable_direct_wave.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o: ../../SU2_CFD/src/variable_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o: ../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj: ../../SU2_CFD/src/variable_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj: ../../SU2_CFD/src/variable_linearized_mean.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o: ../../SU2_CFD/src/variable_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o: ../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj: ../../SU2_CFD/src/variable_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj: ../../SU2_CFD/src/variable_linearized_turbulent.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj: ../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o: ../../SU2_CFD/src/variable_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o: ../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp -../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj: ../../SU2_CFD/src/variable_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj' libtool=no @AMDEPBACKSLASH@ +../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj: ../../SU2_CFD/src/variable_template.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -1744,20 +1844,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1905,7 +1991,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 0cc4917c4c5..ebc5231e107 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -342,7 +342,7 @@ int main(int argc, char *argv[]) { if (fsi){ config_container[ZONE_1]->SetExtIter(ExtIter); - FluidStructureIteration(output, integration_container, geometry_container, + FSI_BGS_Iteration(output, integration_container, geometry_container, solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, iFluidIt, nFluidIt); diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp new file mode 100644 index 00000000000..919ea2ad3ea --- /dev/null +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -0,0 +1,407 @@ +/*! + * \file iteration_structure_fsi.cpp + * \brief Main subroutines used by SU2_FSI for iteration + * \author R. Sanchez + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/iteration_structure_fsi.hpp" + +void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long iFluidIt, unsigned long nFluidIt) { + + double Physical_dt, Physical_t; + unsigned short iMesh; + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); + unsigned long iFSIIter = 0; + unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); + + /*-----------------------------------------------------------------*/ + /*---------------- Predict structural displacements ---------------*/ + /*-----------------------------------------------------------------*/ + + solver_container[ZONE_1][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[ZONE_1], config_container[ZONE_1], + solver_container[ZONE_1]); + + while (iFSIIterSetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + + /*-----------------------------------------------------------------*/ + /*-------------------- Fluid subiteration -------------------------*/ + /*-----------------------------------------------------------------*/ + + Flow_Subiteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + + /*-----------------------------------------------------------------*/ + /*------------------- Set FEA loads from fluid --------------------*/ + /*-----------------------------------------------------------------*/ + + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + + /*-----------------------------------------------------------------*/ + /*------------------ Structural subiteration ----------------------*/ + /*-----------------------------------------------------------------*/ + + FEA_Subiteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + + + /*-----------------------------------------------------------------*/ + /*----------------- Displacements relaxation ----------------------*/ + /*-----------------------------------------------------------------*/ + + FSI_Disp_Relaxation(output, geometry_container, solver_container, config_container, iFSIIter); + + /*-----------------------------------------------------------------*/ + /*-------------------- Check convergence --------------------------*/ + /*-----------------------------------------------------------------*/ + + integration_container[ZONE_1][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_1][MESH_0], config_container[ZONE_1], + solver_container[ZONE_1][MESH_0][FEA_SOL], iFSIIter); + + if (integration_container[ZONE_1][FEA_SOL]->GetConvergence_FSI()) break; + + /*-----------------------------------------------------------------*/ + /*--------------------- Update iFSIIter ---------------------------*/ + /*-----------------------------------------------------------------*/ + + iFSIIter++; + + } + + /*-----------------------------------------------------------------*/ + /*-------------------- Update fluid solver ------------------------*/ + /*-----------------------------------------------------------------*/ + + Flow_Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ExtIter); + + /*-----------------------------------------------------------------*/ + /*----------------- Update structural solver ----------------------*/ + /*-----------------------------------------------------------------*/ + + FEA_Update(output, integration_container, geometry_container, + solver_container, config_container, ExtIter); + + + /*-----------------------------------------------------------------*/ + /*--------------- Update convergence parameter --------------------*/ + /*-----------------------------------------------------------------*/ + + integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); + + +} + +void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + unsigned short iMesh, iZone; + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1; + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- Set the initial condition ---*/ + for (iZone = 0; iZone < nFluidZone; iZone++) + solver_container[iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- Apply a Wind Gust ---*/ + /*--- Initial set up for unsteady problems with gusts - Not enabled yet. ---*/ + +// for (iZone = 0; iZone < nFluidZone; iZone++) { +// if (config_container[ZONE_0]->GetWind_Gust()){ +// SetWind_GustField(config_container[iZone],geometry_container[iZone],solver_container[iZone]); +// } +// } + + for (iZone = 0; iZone < nFluidZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Update global parameters ---*/ + + if (config_container[iZone]->GetKind_Solver() == EULER){ + config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); + } + if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES){ + config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + } + if (config_container[iZone]->GetKind_Solver() == RANS){ + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); + } + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, IntIter, iZone); + + if (config_container[iZone]->GetKind_Solver() == RANS) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + + } + + } + + /*--- Dual time stepping strategy ---*/ + + if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + for(IntIter = 1; IntIter < config_container[ZONE_0]->GetUnst_nIntIter(); IntIter++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*--- Set the value of the internal iteration ---*/ + + config_container[ZONE_0]->SetIntIter(IntIter); + + for (iZone = 0; iZone < nFluidZone; iZone++) { + + /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ + + if (config_container[iZone]->GetKind_Solver() == EULER) + config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) + config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == RANS) + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, IntIter, iZone); + + /*--- Pseudo-timestepping the turbulence model ---*/ + + if (config_container[iZone]->GetKind_Solver() == RANS) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + } + } + if (integration_container[ZONE_0][FLOW_SOL]->GetConvergence()) break; + } + } +} + + +void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter) { + + double Physical_dt, Physical_t; + unsigned short iMesh, iZone; + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1; + + for (iZone = 0; iZone < nFluidZone; iZone++) { + + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + /*--- Update dual time solver on all mesh levels ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + integration_container[iZone][FLOW_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][FLOW_SOL], config_container[iZone], iMesh); + integration_container[iZone][FLOW_SOL]->SetConvergence(false); + } + + /*--- Update dual time solver for the turbulence model ---*/ + + if (config_container[iZone]->GetKind_Solver() == RANS) { + integration_container[iZone][TURB_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TURB_SOL], config_container[iZone], MESH_0); + integration_container[iZone][TURB_SOL]->SetConvergence(false); + } + + /*--- Update dual time solver for the transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + integration_container[iZone][TRANS_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TRANS_SOL], config_container[iZone], MESH_0); + integration_container[iZone][TRANS_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[iZone]->GetDelta_UnstTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) + integration_container[iZone][FLOW_SOL]->SetConvergence(true); + + } + + } + + +} + + +void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CConfig **config_container, + unsigned long ExtIter) { + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*----------------- Update structural solver ----------------------*/ + + integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], + solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + + } + + +} + + +void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + double Physical_dt, Physical_t; + unsigned short iMesh, iZone; + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the initial condition at the first iteration ---*/ + + // solver_container[ZONE_1][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[ZONE_1], solver_container[ZONE_1], config_container[ZONE_1], ExtIter); + + /*--- Set the value of the internal iteration ---*/ + + IntIter_Struct = ExtIter; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter_Struct, iZone); + + } + +} + +void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned long iFSIIter) { + + /*-------------------- Aitken's relaxation ------------------------*/ + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*------------------- Compute the coefficient ---------------------*/ + + solver_container[iZone][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[iZone], config_container[iZone], + solver_container[iZone], iFSIIter); + + /*----------------- Set the relaxation parameter ------------------*/ + + solver_container[iZone][MESH_0][FEA_SOL]->SetAitken_Relaxation(geometry_container[iZone], config_container[iZone], + solver_container[iZone]); + + } + +} diff --git a/configure.ac b/configure.ac index 739264460ab..990bbc04b97 100644 --- a/configure.ac +++ b/configure.ac @@ -30,13 +30,13 @@ # # Created by: M. Colonno 10/26/12 # Updated by: T. Economon 3/24/14 -# Last updated by: R. Sanchez 05/18/15 +# Last updated by: R. Sanchez 05/19/15 # # Major Changes/Contributions: # METIS & TECIO integration added by Ben Kirk, 3/24/2014 # LAPACK connection added by Teus van der Stelt, 11/13/2014 # ParMETIS integration added by Ben Kirk & Thomas D. Economon, 2/3/2015 -# SU2_FSI integration added by Ruben Sanchez, 5/18/2015 +# SU2_FSI integration added by Ruben Sanchez, 5/19/2015 ########################## AC_INIT([SU2], [3.2.9], [su2code-dev@lists.stanford.edu], @@ -355,7 +355,7 @@ AC_OUTPUT(Makefile \ externals/Makefile \ Common/lib/Makefile \ SU2_CFD/obj/Makefile \ - SU2_FSI/obj/Makefile \ + SU2_FSI/obj/Makefile \ SU2_DOT/obj/Makefile \ SU2_MSH/obj/Makefile \ SU2_DEF/obj/Makefile \ From 33e19fa366b5914f0c21648b9a7a9482bb718147 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 21 May 2015 13:17:00 +0100 Subject: [PATCH 004/269] Further improvements on SU2_FSI structure --- SU2_FSI/include/iteration_structure_fsi.hpp | 90 ++++++++++++++++++++- SU2_FSI/src/iteration_structure_fsi.cpp | 79 +++++++++++++++--- 2 files changed, 159 insertions(+), 10 deletions(-) diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp index 352a5dceeae..c8ae78966cc 100644 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -119,6 +119,44 @@ void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CG CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); +/*! + * \brief Displacement transfer function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief Load transfer function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter); + + /*! * \brief FEA update function for Fluid-Structure Interaction applications. * \param[in] output - Pointer to the COutput class. @@ -133,7 +171,7 @@ void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometr /*! - * \brief Relaxation step for displacements. + * \brief Relaxation step for displacement transfer. * \author R. Sanchez. * \param[in] output - Pointer to the COutput class. * \param[in] geometry_container - Geometrical definition of the problem. @@ -143,3 +181,53 @@ void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometr */ void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, CConfig **config_container, unsigned long iFSIIter); + +/*! + * \brief Relaxation step for load transfer. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] iFSIIter - Current FSI iteration number. + */ +void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief Displacement predictor function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief Load predictor function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter); diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 919ea2ad3ea..5181a8f109e 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -44,14 +44,13 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); - /*-----------------------------------------------------------------*/ /*---------------- Predict structural displacements ---------------*/ /*-----------------------------------------------------------------*/ - solver_container[ZONE_1][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[ZONE_1], config_container[ZONE_1], - solver_container[ZONE_1]); + FSI_Disp_Predictor(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); while (iFSIIterSetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); + FSI_Disp_Transfer(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); /*-----------------------------------------------------------------*/ /*-------------------- Fluid subiteration -------------------------*/ @@ -75,8 +74,10 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C /*------------------- Set FEA loads from fluid --------------------*/ /*-----------------------------------------------------------------*/ - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + FSI_Load_Transfer(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ExtIter); + /*-----------------------------------------------------------------*/ /*------------------ Structural subiteration ----------------------*/ @@ -379,6 +380,41 @@ void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CG } + +void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + + /*--- Displacement transfer -- This will have to be modified for non-matching meshes ---*/ + + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + + +} + + +void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter){ + + /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ + + unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); + + /*--- FEA equations -- Necessary as the SetFEA_Load routine is as of now contained in the structural solver ---*/ + + config_container[ZONE_1]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + + +} + + void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, CConfig **config_container, unsigned long iFSIIter) { @@ -405,3 +441,28 @@ void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolv } } + +void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + + +} + + +void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + + solver_container[ZONE_1][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[ZONE_1], config_container[ZONE_1], + solver_container[ZONE_1]); + +} + +void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter){ + + +} From f33680ca56512afb35c367c092a7ceb4c70239f7 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 21 May 2015 12:44:52 -0700 Subject: [PATCH 005/269] skeleton of interpolation added, changed private to protected in CSysMatrix to allow inheritance --- Common/include/interpolation_structure.hpp | 90 ++++++++++++++++++++ Common/include/matrix_structure.hpp | 33 +++++++- Common/src/interpolation_structure.cpp | 72 ++++++++++++++++ Common/src/matrix_structure.cpp | 96 ++++++++++++++++++++++ 4 files changed, 290 insertions(+), 1 deletion(-) create mode 100644 Common/include/interpolation_structure.hpp create mode 100644 Common/src/interpolation_structure.cpp diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp new file mode 100644 index 00000000000..4c591f40da8 --- /dev/null +++ b/Common/include/interpolation_structure.hpp @@ -0,0 +1,90 @@ +/*! + * \file interpolation_structure.hpp + * \brief Headers of the main subroutines used by SU2_FSI. + * The subroutines and functions are in the interpolation_structure.cpp file. + * \author H. Kline + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#ifdef HAVE_MPI + #include "mpi.h" +#endif +#include + +#include "./geometry_structure.hpp" +#include "./config_structure.hpp" + +using namespace std; + + + +/*! + * \class CInterpolator + * \brief Main class for defining the interpolator, it requires + * a child class for each particular interpolation method + * \author H. Kline + * \version 3.2.9 "eagle" + */ +class CInterpolator { +protected: + unsigned short nZone; +public: + CGeometry** Geometry; /*! \brief Vector which stores n zones of geometry. */ + CSysMatrix* TransferMatrix; /*! \brief Sparse matrix structure defining transfer from one mesh to another. */ + + /*! + * \brief Constructor of the class. + */ + CInterpolator(void); + + /*! + * \brief Constructor of the class. + */ + CInterpolator(CGeometry **geometry_container, CConfig **config, unsigned short nZone); + + /*! + * \brief Destructor of the class. + */ + virtual ~CInterpolator(void); + + /*! + * \brief interpolate forces from one mesh to another + */ + void Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1); + + /*! + * \brief interpolate deformations from one mesh to another + */ + void Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1); + + /*! + * \brief Set up transfer matrix defining relation between two meshes + */ + void Set_TransferMatrix(unsigned short nZone_source, unsigned short nZone_dest); + + +}; diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 62fa1b0d305..7de909fbed8 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -53,7 +53,7 @@ using namespace std; * \version 3.2.9 "eagle" */ class CSysMatrix { -private: +protected: unsigned long nPoint, /*!< \brief Number of points in the grid. */ nPointDomain, /*!< \brief Number of points in the grid. */ nVar, /*!< \brief Number of variables. */ @@ -567,4 +567,35 @@ class CLineletPreconditioner : public CPreconditioner { void operator()(const CSysVector & u, CSysVector & v) const; }; +/*! + * \class CSysTransferMatrix + * \brief Specialization of CSysMatrix to handle transfer coefficients between dissimilar meshes + */ +class CSysTransferMatrix : public CSysMatrix { +private: + unsigned long nPoint_Zone1, nElem_Zone1; /*\brief number of nodes, elements in ZONE_1 */ +public: + + /*! + * \brief constructor of the class + */ + CSysTransferMatrix(); + + /*! + * \brief destructor of the class + */ + ~CSysTransferMatrix(){}; + + /*! + * \brief Initializes space matrix system. + * \param[in] nVar - Number of variables. + * \param[in] nEqn - Number of equations. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Initialize(unsigned long nPoint, unsigned long nPointDomain, unsigned short nVar, unsigned short nEqn, + bool EdgeConnect, CGeometry **geometry, CConfig **config); + +}; + #include "matrix_structure.inl" diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp new file mode 100644 index 00000000000..526dc4d373f --- /dev/null +++ b/Common/src/interpolation_structure.cpp @@ -0,0 +1,72 @@ +/*! + * \file interpolation_structure.cpp + * \brief Main subroutines used by SU2_FSI + * \author H. Kline + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/interpolation_structure.hpp" + +CInterpolator::CInterpolator(void){ + +} + +CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, unsigned short val_nZone){ + /* Store pointers*/ + Geometry = geometry_container; + nZone = val_nZone; + /*Create Transfer Matrix*/ + Set_TransferMatrix(ZONE_0, ZONE_1); + +} + + +CInterpolator::Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1){ + + /* + geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]) + */ +} + +CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short iZone_1){ + + /* + geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]) + */ +} + +CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1){ + +} + +CInterpolator::~CInterpolator(void){ + +} diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index f5a3e7a0861..7b1c4ce9213 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -1397,3 +1397,99 @@ void CSysMatrix::ComputeResidual(const CSysVector & sol, const CSysVector & f, C } } + + +void CSysTransferMatrix::Initialize(unsigned long nPoint, unsigned long nPointDomain, + unsigned short nVar, unsigned short nEqn, + bool EdgeConnect, CGeometry **geometry, CConfig **config) { + + + // initialize to length of Zone_0 points + unsigned long iPoint, *row_ptr, *col_ind, index, nnz, Elem; + unsigned short iNeigh, iElem, iNode, *nNeigh; + vector::iterator it; + vector vneighs; + + nPoint = geometry[ZONE_0]->GetnPoint(); + nPoint_Zone1 = geometry[ZONE_1]->GetnPoint(); + nElem_Zone1 = geometry[ZONE_1]->GetnElem(); + /*--- Don't delete *row_ptr, *col_ind because they are + asigned to the Jacobian structure. ---*/ + + /*--- Compute the number of neighbors ---*/ + + nNeigh = new unsigned short [nPoint]; + for (iPoint = 0; iPoint < nPoint; iPoint++) { + + if (EdgeConnect) { + nNeigh[iPoint] = (geometry->node[iPoint]->GetnPoint()+1); // +1 -> to include diagonal element + } + else { + vneighs.clear(); + for (iElem = 0; iElem < geometry->node[iPoint]->GetnElem(); iElem++) { + Elem = geometry->node[iPoint]->GetElem(iElem); + for (iNode = 0; iNode < geometry->elem[Elem]->GetnNodes(); iNode++) + vneighs.push_back(geometry->elem[Elem]->GetNode(iNode)); + } + vneighs.push_back(iPoint); + + sort(vneighs.begin(), vneighs.end()); + it = unique(vneighs.begin(), vneighs.end()); + vneighs.resize(it - vneighs.begin()); + nNeigh[iPoint] = vneighs.size(); + } + + } + + /*--- Create row_ptr structure, using the number of neighbors ---*/ + + row_ptr = new unsigned long [nPoint+1]; + row_ptr[0] = 0; + for (iPoint = 0; iPoint < nPoint; iPoint++) + row_ptr[iPoint+1] = row_ptr[iPoint] + nNeigh[iPoint]; + nnz = row_ptr[nPoint]; + + /*--- Create col_ind structure ---*/ + + col_ind = new unsigned long [nnz]; + for (iPoint = 0; iPoint < nPoint; iPoint++) { + + vneighs.clear(); + + if (EdgeConnect) { + for (iNeigh = 0; iNeigh < geometry->node[iPoint]->GetnPoint(); iNeigh++) + vneighs.push_back(geometry->node[iPoint]->GetPoint(iNeigh)); + vneighs.push_back(iPoint); + } + else { + for (iElem = 0; iElem < geometry->node[iPoint]->GetnElem(); iElem++) { + Elem = geometry->node[iPoint]->GetElem(iElem); + for (iNode = 0; iNode < geometry->elem[Elem]->GetnNodes(); iNode++) + vneighs.push_back(geometry->elem[Elem]->GetNode(iNode)); + } + vneighs.push_back(iPoint); + } + + sort(vneighs.begin(), vneighs.end()); + it = unique(vneighs.begin(), vneighs.end()); + vneighs.resize( it - vneighs.begin() ); + + index = row_ptr[iPoint]; + for (iNeigh = 0; iNeigh < vneighs.size(); iNeigh++) { + col_ind[index] = vneighs[iNeigh]; + index++; + } + + } + + /*--- Set the indices in the in the sparce matrix structure, and memory allocation ---*/ + + SetIndexes(nPoint, nPointDomain, nVar, nEqn, row_ptr, col_ind, nnz, config); + + /*--- Initialization matrix to zero ---*/ + + SetValZero(); + + delete [] nNeigh; + +} From 048adaacbe2d21c9d0154dbf90b2f166a7d0787b Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 22 May 2015 14:32:33 +0100 Subject: [PATCH 006/269] Removed unused variables. --- SU2_CFD/src/solver_direct_elasticity.cpp | 84 +++++++----------------- 1 file changed, 25 insertions(+), 59 deletions(-) diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 2b56749d924..86efeb0a0cd 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -35,9 +35,8 @@ CFEASolver::CFEASolver(void) : CSolver() { } CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { - unsigned long iPoint, iElement; - unsigned short iVar, jVar, NodesElement = 0, nLineLets; - unsigned short iMarker, iDim, iElem, iForce; + unsigned long iPoint; + unsigned short iVar, jVar, iDim, NodesElement = 0, nLineLets; unsigned long nMarker, nElem; double dull_val; @@ -157,8 +156,6 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { a_dt[iVar]=0.0; } - - /*--- DESTRUCT THIS! ---*/ /*--- Element aux dead load vector definition ---*/ @@ -304,7 +301,7 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { CFEASolver::~CFEASolver(void) { - unsigned short iVar, iDim, iMarker, NodesElement = 0; + unsigned short iVar, iDim, NodesElement = 0; if (nDim == 2) NodesElement = 4; if (nDim == 3) NodesElement = 8; @@ -348,14 +345,11 @@ CFEASolver::~CFEASolver(void) { delete [] cvector[iVar]; delete [] cvector; - } void CFEASolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { - unsigned long iPoint; - GetSurface_Pressure(geometry, config); @@ -454,7 +448,6 @@ void CFEASolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_c } - } void CFEASolver::Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -478,10 +471,8 @@ void CFEASolver::Compute_IntegrationConstants(CGeometry *geometry, CSolver **sol void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; - unsigned long iElem, PointCorners[8], iPoint, total_index; + unsigned long iElem, PointCorners[8]; double CoordCorners[8][3]; - bool deadLoad=false; - double matDensity; form2d=config->GetElas2D_Formulation(); @@ -537,10 +528,8 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; - unsigned long iElem, PointCorners[8], iPoint, total_index; + unsigned long iElem, PointCorners[8]; double CoordCorners[8][3]; - bool deadLoad=false; - double matDensity; form2d=config->GetElas2D_Formulation(); @@ -658,7 +647,7 @@ void CFEASolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_containe void CFEASolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - unsigned long iPoint, iVertex, total_index; + unsigned long iPoint, iVertex; unsigned short iVar, jVar; bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); @@ -786,8 +775,7 @@ void CFEASolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNu void CFEASolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - unsigned long iPoint, iVertex, total_index; - unsigned short iVar, jVar; + unsigned long iPoint, iVertex; double **mIdentity, **mZeros; // Variables to delete blocks in the jacobian @@ -840,7 +828,7 @@ void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_co unsigned short val_marker) { unsigned long iPoint, iVertex, total_index; unsigned short iVar, iDim; - double *Normal, Area, UnitaryNormal[3]; + double *Normal, Area, UnitaryNormal[3]; double TotalDispl = config->GetDispl_Value(config->GetMarker_All_TagBound(val_marker)); @@ -967,7 +955,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; - unsigned short iDim, nNodes=0; + unsigned short iDim; double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); @@ -1112,7 +1100,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; - unsigned short iDim, nNodes=0; + unsigned short iDim; double LoadAmplitude = config->GetLoad_Sine_Amplitude(config->GetMarker_All_TagBound(val_marker)); double LoadFrequency = config->GetLoad_Sine_Frequency(config->GetMarker_All_TagBound(val_marker)); @@ -1122,8 +1110,6 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C double TotalLoad; - double *PointTimeRes; - TotalLoad=LoadAmplitude*sin(2*PI_NUMBER*LoadFrequency*CurrentTime); /*--- Compute the norm of the vector that was passed in the config file ---*/ @@ -1248,19 +1234,15 @@ void CFEASolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, C void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics_container, unsigned short iMesh) { + unsigned long iPoint, iElem; double **Stress, VonMises_Stress, MaxVonMises_Stress = 0.0; double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; - unsigned long nGaussPoints=0, PointCorners[8]; - unsigned short iVar, jVar, nNodes=0, iNodes, iDim, jDim, form2d; + unsigned long PointCorners[8]; + unsigned short nNodes=0, iNodes, iDim, jDim, form2d; double CoordCorners[8][3], CoordGauss[8][3]; - double E = config->GetElasticyMod(); - double Nu = config->GetPoissonRatio(); - double Mu = E / (2.0*(1.0 + Nu)); - double Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); // For plane strain and 3-D - /*--- Container of the shape functions ---*/ CNumerics *numerics; numerics=numerics_container[VISC_TERM]; @@ -1325,7 +1307,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, if (nDim == 2) { - double StressVector[8][3], StressNodal[8][3], DispElement[8]; + double StressNodal[8][3], DispElement[8]; /*--- Set the element displacements vector, from the global solution ---*/ @@ -1400,7 +1382,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, /* --- Variable to store the number of elements connected to each node ---*/ - double nElPerNode=0; + unsigned short nElPerNode=0; /* --- For the number of nodes in the mesh ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { @@ -1488,7 +1470,6 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver unsigned short iVar; unsigned long iPoint, total_index, IterLinSol; - double TimeCurrent; bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); @@ -1496,9 +1477,9 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver double *PointTimeRes = NULL; - unsigned short check=0; + bool check = true; - if ((dynamic) && (ExtIter == 0) && (check==0)){ + if ((dynamic) && (ExtIter == 0) && check){ /*--- Build implicit system ---*/ @@ -1933,20 +1914,18 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, unsigned short nVertexFEA, nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; - unsigned short markFEA, markFlow, iPoint, iMarker, iMarkerFSIint; + unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; unsigned long *nodeVertex, *donorVertex; double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; - double **tractionPrev; - double Pdiff, maxPdiff=0.0; - double FSDensity, *FSVelocity, FSVelocity2, factorForces; + double factorForces; double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); - bool freesurface = (flow_config->GetKind_Regime() == FREESURFACE); +// bool freesurface = (flow_config->GetKind_Regime() == FREESURFACE); bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || (flow_config->GetKind_Solver() == RANS) ); @@ -2055,22 +2034,14 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, normalsVertex_Unit[iVertex] = new double[nDim]; } - double a[3], b[3]; - unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, **Grad_PrimVar; - double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + double **Grad_PrimVar; double Viscosity = 0.0, Density = 0.0; - double TauElem_0[3], Tau[3][3], TauElem_1[3], Tau_1[3][3]; - - double Force_0, Force_1, Force_0_comp, Force_1_comp, div_vel, Delta; + double Tau[3][3]; + double div_vel, Delta; double Area; - - double CoordCorners[4][3], Fnodal[12], FnodalRelax[12]; + double Pn; /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ - - double Pn, Pnm1, check1, check2; - /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ for (iVertex=0; iVertex < nVertexFlow; iVertex++){ @@ -2168,8 +2139,6 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, Residual[iDim]=tn_f[iVertex][iDim]; } - - LinSysRes.AddBlock(donorVertex[iVertex], Residual); } @@ -2270,7 +2239,7 @@ void CFEASolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fe double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; double delta_deltaU[3] = {0.0, 0.0, 0.0}; - double numAitk, denAitk, cocAitk, WAitken; + double numAitk, denAitk, WAitken; double CurrentTime=fea_config->GetCurrent_DynTime(); double Static_Time=fea_config->GetStatic_Time(); double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; @@ -2375,7 +2344,6 @@ void CFEASolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fe void CFEASolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - double Delta_t= fea_config->GetDelta_DynTime(); unsigned long iPoint, iDim; unsigned long nPoint, nDim; unsigned short RelaxMethod_FSI; @@ -2440,8 +2408,6 @@ void CFEASolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_con void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - unsigned short predOrder=fea_config->GetPredictorOrder(); - double Delta_t= fea_config->GetDelta_DynTime(); unsigned long iPoint, iDim; unsigned long nPoint, nDim; double *valSolutionPred, *valSolution; From 1123ee795c5598ee3d60cfd16d566a941fc641c7 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 22 May 2015 18:34:54 -0700 Subject: [PATCH 007/269] matrix structure for transfer matrix, compiles --- Common/include/matrix_structure.hpp | 23 ++++- Common/include/matrix_structure.inl | 5 ++ Common/src/interpolation_structure.cpp | 2 + Common/src/matrix_structure.cpp | 113 ++++++++++++++----------- 4 files changed, 88 insertions(+), 55 deletions(-) diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 7de909fbed8..9c49fdeba0b 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -574,17 +574,19 @@ class CLineletPreconditioner : public CPreconditioner { class CSysTransferMatrix : public CSysMatrix { private: unsigned long nPoint_Zone1, nElem_Zone1; /*\brief number of nodes, elements in ZONE_1 */ + unsigned short nDim; + unsigned long *row_ptr, *col_ind; public: /*! * \brief constructor of the class */ - CSysTransferMatrix(); + CSysTransferMatrix(void); /*! * \brief destructor of the class */ - ~CSysTransferMatrix(){}; + ~CSysTransferMatrix(void); /*! * \brief Initializes space matrix system. @@ -593,8 +595,21 @@ class CSysTransferMatrix : public CSysMatrix { * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. */ - void Initialize(unsigned long nPoint, unsigned long nPointDomain, unsigned short nVar, unsigned short nEqn, - bool EdgeConnect, CGeometry **geometry, CConfig **config); + void Initialize(CGeometry **geometry, CConfig **config); + + + /*! + * \brief Assings values to the sparse-matrix structure. + * \param[in] val_nnz - Number of possible nonzero entries in the matrix. + * \param[in] config - Definition of the particular problem. + */ + void SetIndexes( unsigned long val_nnz, CConfig *config); + + /*! + * \brief Sets to zero all the entries of the sparse matrix. + */ + void SetValZero(void); + }; diff --git a/Common/include/matrix_structure.inl b/Common/include/matrix_structure.inl index 581d19b4fcc..0c7b0e66c54 100644 --- a/Common/include/matrix_structure.inl +++ b/Common/include/matrix_structure.inl @@ -110,3 +110,8 @@ inline void CLineletPreconditioner::operator()(const CSysVector & u, CSysVector } sparse_matrix->ComputeLineletPreconditioner(u, v, geometry, config); } + +inline void CSysTransferMatrix::SetValZero(void) { + for (unsigned long index = 0; index < nnz*nDim; index++) + matrix[index] = 0.0; +} diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 526dc4d373f..ca7d9ca9c81 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -52,6 +52,8 @@ CInterpolator::Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1) config_container[ZONE_0], config_container[ZONE_1], geometry_container[ZONE_1], solver_container[ZONE_1]) */ + + } CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short iZone_1){ diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 7b1c4ce9213..f2d402a6915 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -1399,46 +1399,56 @@ void CSysMatrix::ComputeResidual(const CSysVector & sol, const CSysVector & f, C } -void CSysTransferMatrix::Initialize(unsigned long nPoint, unsigned long nPointDomain, - unsigned short nVar, unsigned short nEqn, - bool EdgeConnect, CGeometry **geometry, CConfig **config) { +CSysTransferMatrix::CSysTransferMatrix(void): CSysMatrix() { + nVar = 1; + nEqn=1; + row_ptr = NULL; + col_ind = NULL; + +} + + +CSysTransferMatrix::~CSysTransferMatrix(void) { + if (row_ptr != NULL) delete [] row_ptr; + if (col_ind != NULL) delete [] col_ind; - // initialize to length of Zone_0 points - unsigned long iPoint, *row_ptr, *col_ind, index, nnz, Elem; +} + +void CSysTransferMatrix::Initialize(CGeometry **geometry, CConfig **config) { + + unsigned long iPoint, index, nnz; + double *Coord_Point, distance, last_distance; + unsigned short iDim; unsigned short iNeigh, iElem, iNode, *nNeigh; - vector::iterator it; - vector vneighs; + unsigned long *Neigh; + nPoint = geometry[ZONE_0]->GetnPoint(); nPoint_Zone1 = geometry[ZONE_1]->GetnPoint(); nElem_Zone1 = geometry[ZONE_1]->GetnElem(); + nDim = geometry[ZONE_0]->GetnDim(); /*--- Don't delete *row_ptr, *col_ind because they are asigned to the Jacobian structure. ---*/ - /*--- Compute the number of neighbors ---*/ + /*--- Compute the number of neighbors = nodes of the nearest element ---*/ - nNeigh = new unsigned short [nPoint]; + nNeigh = new unsigned short [nPoint]; /* number of nodes assc w/ nearest neighbor element*/ + Neigh = new unsigned long [nPoint]; /*Nearest neighbor element*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { - - if (EdgeConnect) { - nNeigh[iPoint] = (geometry->node[iPoint]->GetnPoint()+1); // +1 -> to include diagonal element - } - else { - vneighs.clear(); - for (iElem = 0; iElem < geometry->node[iPoint]->GetnElem(); iElem++) { - Elem = geometry->node[iPoint]->GetElem(iElem); - for (iNode = 0; iNode < geometry->elem[Elem]->GetnNodes(); iNode++) - vneighs.push_back(geometry->elem[Elem]->GetNode(iNode)); - } - vneighs.push_back(iPoint); - - sort(vneighs.begin(), vneighs.end()); - it = unique(vneighs.begin(), vneighs.end()); - vneighs.resize(it - vneighs.begin()); - nNeigh[iPoint] = vneighs.size(); - } - + Coord_Point = geometry[ZONE_0]->node[iPoint]->GetCoord(); + last_distance=-1.0; /* Negative value */ + /*--- Loop over elements of ZONE_1 (Assumed to be structures), find the one nearest ---*/ + /*--- Brute force nearest neighbor - should be improved ---*/ + for (iElem = 0; iElem < nElem_Zone1; iElem++){ + distance = 0.0; + for (iDim=0; iDimelem[iElem]->GetCG(iDim)-Coord_Point[iDim],2.0); + if (distanceelem[Neigh[iPoint]]->GetnNodes(); } /*--- Create row_ptr structure, using the number of neighbors ---*/ @@ -1454,29 +1464,9 @@ void CSysTransferMatrix::Initialize(unsigned long nPoint, unsigned long nPointDo col_ind = new unsigned long [nnz]; for (iPoint = 0; iPoint < nPoint; iPoint++) { - vneighs.clear(); - - if (EdgeConnect) { - for (iNeigh = 0; iNeigh < geometry->node[iPoint]->GetnPoint(); iNeigh++) - vneighs.push_back(geometry->node[iPoint]->GetPoint(iNeigh)); - vneighs.push_back(iPoint); - } - else { - for (iElem = 0; iElem < geometry->node[iPoint]->GetnElem(); iElem++) { - Elem = geometry->node[iPoint]->GetElem(iElem); - for (iNode = 0; iNode < geometry->elem[Elem]->GetnNodes(); iNode++) - vneighs.push_back(geometry->elem[Elem]->GetNode(iNode)); - } - vneighs.push_back(iPoint); - } - - sort(vneighs.begin(), vneighs.end()); - it = unique(vneighs.begin(), vneighs.end()); - vneighs.resize( it - vneighs.begin() ); - index = row_ptr[iPoint]; - for (iNeigh = 0; iNeigh < vneighs.size(); iNeigh++) { - col_ind[index] = vneighs[iNeigh]; + for (iNeigh = 0; iNeigh < nNeigh[iPoint]; iNeigh++) { + col_ind[index] = geometry[ZONE_1]->elem[Neigh[iPoint]]->GetNode(iNode); //vneighs[iNeigh]; index++; } @@ -1484,7 +1474,7 @@ void CSysTransferMatrix::Initialize(unsigned long nPoint, unsigned long nPointDo /*--- Set the indices in the in the sparce matrix structure, and memory allocation ---*/ - SetIndexes(nPoint, nPointDomain, nVar, nEqn, row_ptr, col_ind, nnz, config); + SetIndexes( nnz, config[ZONE_0]); /*--- Initialization matrix to zero ---*/ @@ -1492,4 +1482,25 @@ void CSysTransferMatrix::Initialize(unsigned long nPoint, unsigned long nPointDo delete [] nNeigh; + +} + +void CSysTransferMatrix::SetIndexes( unsigned long val_nnz, CConfig *config) { + + unsigned long iVar; + unsigned short iDim; + + nnz = val_nnz; // Assign number of possible non zero blocks + + matrix = new double [nnz*nDim]; // Reserve memory for the values of the matrix + aux_vector = new double [nDim]; + sum_vector = new double [nDim]; + + /*--- Memory initialization ---*/ + + for (iVar = 0; iVar < nnz*nDim; iVar++) matrix[iVar] = 0.0; + for (iVar = 0; iDim < nDim; iVar++) aux_vector[iDim] = 0.0; + for (iVar = 0; iDim < nDim; iVar++) sum_vector[iDim] = 0.0; + + } From a99a4e695e99e52c7f09217261fb75624dba31c9 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 24 May 2015 21:46:37 -0700 Subject: [PATCH 008/269] further edits, added interpolation_structure to makefile --- Common/include/interpolation_structure.hpp | 18 ++- Common/include/matrix_structure.hpp | 13 +- Common/lib/Makefile.am | 1 + Common/src/interpolation_structure.cpp | 70 +++++++++-- Common/src/matrix_structure.cpp | 135 +++++++++++++-------- 5 files changed, 174 insertions(+), 63 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 4c591f40da8..9c15566d2ed 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -35,8 +35,8 @@ #endif #include -#include "./geometry_structure.hpp" -#include "./config_structure.hpp" +#include "geometry_structure.hpp" +#include "config_structure.hpp" using namespace std; @@ -54,7 +54,7 @@ class CInterpolator { unsigned short nZone; public: CGeometry** Geometry; /*! \brief Vector which stores n zones of geometry. */ - CSysMatrix* TransferMatrix; /*! \brief Sparse matrix structure defining transfer from one mesh to another. */ + CSysTransferMatrix* TransferMatrix; /*! \brief Sparse matrix structure defining transfer from one mesh to another. */ /*! * \brief Constructor of the class. @@ -84,7 +84,17 @@ class CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferMatrix(unsigned short nZone_source, unsigned short nZone_dest); + void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1); }; + + +class CNearestNeighbor : public CInterpolator { +public: + /*! + * \brief Set up transfer matrix defining relation between two meshes + */ + void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1); + +}; diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 9c49fdeba0b..184e4853b92 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -514,7 +514,7 @@ class CLU_SGSPreconditioner : public CPreconditioner { CSysMatrix* sparse_matrix; /*!< \brief pointer to matrix that defines the preconditioner. */ CGeometry* geometry; /*!< \brief pointer to matrix that defines the geometry. */ CConfig* config; /*!< \brief pointer to matrix that defines the config. */ - + public: /*! @@ -573,9 +573,16 @@ class CLineletPreconditioner : public CPreconditioner { */ class CSysTransferMatrix : public CSysMatrix { private: - unsigned long nPoint_Zone1, nElem_Zone1; /*\brief number of nodes, elements in ZONE_1 */ + unsigned long nPoint_1, nElem_1; /*\brief number of nodes, elements in ZONE_1 */ unsigned short nDim; - unsigned long *row_ptr, *col_ind; + unsigned long *row_ptr, + *col_ind, + *row_vertex, /*\brief index to retrieve vertex[iMarker][iVertex] assc with the transfer matrix */ + *col_vertex, + *row_marker, /*\brief index to retrieve vertex[iMarker][iVertex] assc with the transfer matrix */ + *col_marker; + unsigned long nVertex_flow, + nVertex_fea; public: /*! diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index e341b8f79ee..a696db57b29 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -59,6 +59,7 @@ libSU2_a_SOURCES = \ ../include/matrix_structure.hpp \ ../include/matrix_structure.inl \ ../include/su2mpi.hpp \ + ../include/interpolation_structure.hpp \ ../src/config_structure.cpp \ ../src/dual_grid_structure.cpp \ ../src/geometry_structure.cpp \ diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index ca7d9ca9c81..0d22a8d0f69 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -39,7 +39,9 @@ CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, u /* Store pointers*/ Geometry = geometry_container; nZone = val_nZone; - /*Create Transfer Matrix*/ + /*Create Transfer Matrix, find nearest neighbors, initialize memory*/ + TransferMatrix->Initialize(Geometry,config); + /*Set the values of the transfer matrix*/ Set_TransferMatrix(ZONE_0, ZONE_1); } @@ -52,23 +54,75 @@ CInterpolator::Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1) config_container[ZONE_0], config_container[ZONE_1], geometry_container[ZONE_1], solver_container[ZONE_1]) */ - + unsigned long iPoint, jPoint; + double weight=0.0; + /*Loop by i then by j to more efficiently call memory*/ + for (iPoint=0; iPointGetnPoint(); iPoint++){ + for (jPoint=0; jPointGetnPoint(); jPoint++){ + /*find the weight stored in the transfer matrix (returns NULL if not connected*/ + weight = TransferMatrix->GetBlock(iPoint,jPoint); + if (weight!=NULL){ + /* TODO: implement AddForce to increment the force value, and SetForceZero, within geometry class? Add force to the Vertex type? Otherwise need solver container*/ + force_1+=force_0*weight; + } + } + } } -CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short iZone_1){ +CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ + + unsigned long GlobalIndex, iPoint, i2Point, jPoint, j2Point, iVertex; + unsigned short iMarker, iDim, nDim; + double *NewCoord = {0.0,0.0,0.0}; + double weight; + nDim = Geometry[iZone_0]->GetnDim(); + //GetMarker_All_FSIinterface(iMarker) + /*--- Loop over points---*/ + for (iPoint=0; iPointGetnPoint(); iPoint++){ + /*--- Set NewCoord to 0 ---*/ + for (iDim=0; iDimGetnPoint(); jPoint++){ + weight = TransferMatrix->GetBlock(iPoint,jPoint); + for (iDim=0; iDimnode[jPoint]->GetDiscplacement(iDim)*weight; + /*---TODO: also add rotation (cross product of rotation and distance) + *pointlist_a[i].t[0] += w*(dz*pointlist_s[j].r[1] -dy*pointlist_s[j].r[2]) + pointlist_a[i].t[1] += w*(-dz*pointlist_s[j].r[0] +dx*pointlist_s[j].r[2]) + pointlist_a[i].t[2] += w*(dy*pointlist_s[j].r[0] -dx*pointlist_s[j].r[1]) + * ---*/ + } + /*---Set VarCoord of the vertex type ---*/ + for (iMarker = 0; iMarker < config[iZone_0]->GetMarker_n_FSIinterface(); iMarker++) { + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES) { + for (iVertex = 0; iVertex < Geometry[iZone_0]->nVertex[iMarker]; iVertex++) { + i2Point = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); + GlobalIndex = Geometry[iZone_0]->node[i2Point]->GetGlobalIndex(); + if (GlobalIndex == iPoint) { + Geometry[iZone_0]->vertex[iMarker][iVertex]->SetVarCoord(NewCoord); + break; + } + } + } + } + } + // must be called later: + //flow_grid_movement->SetVolume_Deformation(Geometry[ZONE_0][MESH_0], config[ZONE_0], true); - /* - geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]) - */ } CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1){ + cout<<"base class set transfer matrix"<GetnMarker_All()]; /* number of nodes assc w/ nearest neighbor element*/ + Neigh = new unsigned long* [config[ZONE_1]->GetnMarker_All()]; /*Nearest neighbor element*/ + + /*--- Initialize the number of vertices that will be transferring information from the FLOW solution (assumes ZONE_0)---*/ + for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++) + if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + nVertex_flow += geometry[ZONE_0]->GetnVertex(iMarker); + nNeigh[iMarker] = new unsigned short [geometry[ZONE_0]->GetnVertex(iMarker)]; + Neigh[iMarker] = new unsigned long [geometry[ZONE_0]->GetnVertex(iMarker)]; + } + /*--- Initialize the number of vertices that will be transferring information from the FEA solution (assumes ZONE_1)---*/ + for (iMarker = 0; iMarker < config[ZONE_1]->GetnMarker_All(); iMarker++) + if (config[ZONE_1]->GetMarker_All_FSIinterface(iMarker) == YES) + nVertex_fea += geometry[ZONE_0]->GetnVertex(iMarker); - nPoint = geometry[ZONE_0]->GetnPoint(); - nPoint_Zone1 = geometry[ZONE_1]->GetnPoint(); - nElem_Zone1 = geometry[ZONE_1]->GetnElem(); + nPoint_1 = geometry[ZONE_1]->GetnPoint(); + nElem_1 = geometry[ZONE_1]->GetnElem(); nDim = geometry[ZONE_0]->GetnDim(); - /*--- Don't delete *row_ptr, *col_ind because they are - asigned to the Jacobian structure. ---*/ - /*--- Compute the number of neighbors = nodes of the nearest element ---*/ - - nNeigh = new unsigned short [nPoint]; /* number of nodes assc w/ nearest neighbor element*/ - Neigh = new unsigned long [nPoint]; /*Nearest neighbor element*/ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - Coord_Point = geometry[ZONE_0]->node[iPoint]->GetCoord(); - last_distance=-1.0; /* Negative value */ - /*--- Loop over elements of ZONE_1 (Assumed to be structures), find the one nearest ---*/ - /*--- Brute force nearest neighbor - should be improved ---*/ - for (iElem = 0; iElem < nElem_Zone1; iElem++){ - distance = 0.0; - for (iDim=0; iDimelem[iElem]->GetCG(iDim)-Coord_Point[iDim],2.0); - if (distanceelem[Neigh[iPoint]]->GetnNodes(); + for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ + if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =geometry[ZONE_0]->vertex[iMarker][iVertex]->GetNode(); + Coord_Point = geometry[ZONE_0]->node[iPoint]->GetCoord(); + /*--- Loop over elements of ZONE_1 (Assumed to be structures), find the one nearest ---*/ + /*--- Brute force nearest neighbor by CG -> + * TODO: replace with nearest neigh by projected point on element + * ( a point near the edge of an element may be closer to the CG of a smaller element nearby) + * TODO: replace brute force search + * TODO: general for other types of interpolation (nearest NODE for example -> base on config option?) + * */ + distance = 0.0; last_distance=-1.0; // distance will always be positive, so negative value provides flag for first point + for (jMarker=0; jMarkerGetnMarker_All(); jMarker++){ + if (config[ZONE_1]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (jVertex = 0; jVertexGetnVertex(iMarker); jVertex++) { + iElem = geometry[ZONE_1]->vertex[jMarker][jVertex]->GetDonorElem(); + for (iDim=0; iDimelem[iElem]->GetCG(iDim)-Coord_Point[iDim],2.0); + if ((last_distance==-1.0) or (distanceelem[iElem]->GetnNodes(); + last_distance = distance; + } + } + } + } + } + } } /*--- Create row_ptr structure, using the number of neighbors ---*/ - - row_ptr = new unsigned long [nPoint+1]; + row_ptr = new unsigned long [nVertex_flow+1]; + row_marker = new unsigned long [nVertex_flow]; + row_vertex = new unsigned long [nVertex_flow]; row_ptr[0] = 0; - for (iPoint = 0; iPoint < nPoint; iPoint++) - row_ptr[iPoint+1] = row_ptr[iPoint] + nNeigh[iPoint]; - nnz = row_ptr[nPoint]; + jVertex = 0; + for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ + if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + row_ptr[jVertex+1] = row_ptr[jVertex] + nNeigh[iMarker][iVertex]; + row_marker[jVertex]=iMarker; + row_vertex[jVertex]=iVertex; + jVertex++; + } + } + } + nnz = row_ptr[nVertex_flow]; /*--- Create col_ind structure ---*/ col_ind = new unsigned long [nnz]; - for (iPoint = 0; iPoint < nPoint; iPoint++) { - - index = row_ptr[iPoint]; - for (iNeigh = 0; iNeigh < nNeigh[iPoint]; iNeigh++) { - col_ind[index] = geometry[ZONE_1]->elem[Neigh[iPoint]]->GetNode(iNode); //vneighs[iNeigh]; - index++; + col_vertex = new unsigned long [nnz]; + col_marker = new unsigned long [nnz]; + jVertex=0; + for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ + if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + index = row_ptr[jVertex]; + for (iNeigh = 0; iNeigh < nNeigh[iMarker][iVertex]; iNeigh++) { + col_ind[index] = geometry[ZONE_1]->elem[Neigh[iMarker][iVertex]]->GetNode(iNode); //vneighs[iNeigh]; + col_vertex[index]=iVertex; + col_marker[index]=iMarker; + index++; + } + jVertex++; + } } - } - /*--- Set the indices in the in the sparce matrix structure, and memory allocation ---*/ + /*--- Set the indices in the in the sparse matrix structure, and memory allocation ---*/ SetIndexes( nnz, config[ZONE_0]); @@ -1481,7 +1525,7 @@ void CSysTransferMatrix::Initialize(CGeometry **geometry, CConfig **config) { SetValZero(); delete [] nNeigh; - + delete [] Neigh; } @@ -1492,15 +1536,10 @@ void CSysTransferMatrix::SetIndexes( unsigned long val_nnz, CConfig *config) { nnz = val_nnz; // Assign number of possible non zero blocks - matrix = new double [nnz*nDim]; // Reserve memory for the values of the matrix - aux_vector = new double [nDim]; - sum_vector = new double [nDim]; + matrix = new double [nnz]; // Reserve memory for the values of the matrix /*--- Memory initialization ---*/ - for (iVar = 0; iVar < nnz*nDim; iVar++) matrix[iVar] = 0.0; - for (iVar = 0; iDim < nDim; iVar++) aux_vector[iDim] = 0.0; - for (iVar = 0; iDim < nDim; iVar++) sum_vector[iDim] = 0.0; - + for (iVar = 0; iVar < nnz; iVar++) matrix[iVar] = 0.0; } From 5ddfdf3d229deaaf63ac16f0e934f99544745ed7 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 24 May 2015 21:55:45 -0700 Subject: [PATCH 009/269] modification to massflow output s.t. outputs correct value when marker_monitoring and marker_out1d are different --- SU2_CFD/src/output_structure.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 0cc29e4bb59..10235044406 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -4093,7 +4093,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, break; } } - if (output_massflow) { + if (output_massflow and !output_1d) { switch (config[val_iZone]->GetKind_Solver()) { case EULER: case NAVIER_STOKES: case RANS: case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: @@ -6722,14 +6722,15 @@ void COutput::SetMassFlowRate(CSolver *solver_container, CGeometry *geometry, CC for (iMarker = 0; iMarker< config->GetnMarker_Monitoring(); iMarker++) { iMarker_monitor = config->GetMarker_All_Monitoring(iMarker); + if (iMarker_monitor){ + for (iVertex = 0; iVertex < geometry->nVertex[ iMarker ]; iVertex++) { + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - for (iVertex = 0; iVertex < geometry->nVertex[ iMarker_monitor ]; iVertex++) { - iPoint = geometry->vertex[iMarker_monitor][iVertex]->GetNode(); + if (geometry->node[iPoint]->GetDomain()) { + geometry->vertex[iMarker][iVertex]->GetNormal(Vector); - if (geometry->node[iPoint]->GetDomain()) { - geometry->vertex[iMarker_monitor][iVertex]->GetNormal(Vector); - for (iDim = 0; iDim < nDim; iDim++) { - Total_Mdot += Vector[iDim]*(solver_container->node[iPoint]->GetSolution(iDim+1)); + for (iDim = 0; iDim < nDim; iDim++) + Total_Mdot -= Vector[iDim]*(solver_container->node[iPoint]->GetSolution(iDim+1)); } } } From 605bdf241a6367e6ad6682f4f6a7f86b54549450 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 1 Jun 2015 15:09:55 -0700 Subject: [PATCH 010/269] switched to loops over vertices, assuming rotations of structure are stored in AuxVar --- Common/include/interpolation_structure.hpp | 20 ++- Common/include/matrix_structure.hpp | 8 +- Common/src/interpolation_structure.cpp | 164 ++++++++++++++------- Common/src/matrix_structure.cpp | 122 ++++++--------- 4 files changed, 178 insertions(+), 136 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 9c15566d2ed..45ee3418475 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -52,6 +52,7 @@ using namespace std; class CInterpolator { protected: unsigned short nZone; + double ***Force; public: CGeometry** Geometry; /*! \brief Vector which stores n zones of geometry. */ CSysTransferMatrix* TransferMatrix; /*! \brief Sparse matrix structure defining transfer from one mesh to another. */ @@ -74,17 +75,17 @@ class CInterpolator { /*! * \brief interpolate forces from one mesh to another */ - void Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1); + void Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); /*! * \brief interpolate deformations from one mesh to another */ - void Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1); + void Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1); + virtual void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); }; @@ -92,9 +93,20 @@ class CInterpolator { class CNearestNeighbor : public CInterpolator { public: + + /*! + * \brief Constructor of the class. + */ + CNearestNeighbor(CGeometry **geometry_container, CConfig **config, unsigned short nZone); + + /*! + * \brief Destructor of the class. + */ + ~CNearestNeighbor(void); + /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1); + void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); }; diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 184e4853b92..e179f849465 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -576,13 +576,7 @@ class CSysTransferMatrix : public CSysMatrix { unsigned long nPoint_1, nElem_1; /*\brief number of nodes, elements in ZONE_1 */ unsigned short nDim; unsigned long *row_ptr, - *col_ind, - *row_vertex, /*\brief index to retrieve vertex[iMarker][iVertex] assc with the transfer matrix */ - *col_vertex, - *row_marker, /*\brief index to retrieve vertex[iMarker][iVertex] assc with the transfer matrix */ - *col_marker; - unsigned long nVertex_flow, - nVertex_fea; + *col_ind; public: /*! diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 0d22a8d0f69..c815c5f1fce 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -36,34 +36,53 @@ CInterpolator::CInterpolator(void){ } CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, unsigned short val_nZone){ - /* Store pointers*/ + unsigned short nDim = geometry_container[ZONE_0]->GetnDim(); + /* Store pointers*/ Geometry = geometry_container; nZone = val_nZone; - /*Create Transfer Matrix, find nearest neighbors, initialize memory*/ + + /*--- Set matching between zones ---*/ + /*---Create Transfer Matrix, find nearest neighbors, initialize memory---*/ TransferMatrix->Initialize(Geometry,config); - /*Set the values of the transfer matrix*/ - Set_TransferMatrix(ZONE_0, ZONE_1); + /*---Set the values of the transfer matrix---*/ + Set_TransferMatrix(ZONE_0, ZONE_1,config); + Force = new double**[val_nZone]; + Force[ZONE_0] = new double*[Geometry[ZONE_0]->GetnPoint()]; + Force[ZONE_1] = new double*[Geometry[ZONE_1]->GetnPoint()]; + + for (unsigned long iPoint =0; iPoint< Geometry[ZONE_0]->GetnPoint(); iPoint++){ + Force[ZONE_0][iPoint] = new double[nDim]; + for (unsigned short iDim=0; iDimGetnPoint(); iPoint++){ + Force[ZONE_1][iPoint] = new double[nDim]; + for (unsigned short iDim=0; iDimGetnDim(); double weight=0.0; /*Loop by i then by j to more efficiently call memory*/ - for (iPoint=0; iPointGetnPoint(); iPoint++){ - for (jPoint=0; jPointGetnPoint(); jPoint++){ - /*find the weight stored in the transfer matrix (returns NULL if not connected*/ + for (iPoint=0; iPointGetnPoint(); iPoint++){ + for (jPoint=0; jPointGetnPoint(); jPoint++){ + /*find the weight stored in the transfer matrix (returns NULL if zero entry)*/ weight = TransferMatrix->GetBlock(iPoint,jPoint); if (weight!=NULL){ - /* TODO: implement AddForce to increment the force value, and SetForceZero, within geometry class? Add force to the Vertex type? Otherwise need solver container*/ - force_1+=force_0*weight; + for (unsigned short iDim=0; iDimGetnDim(); - //GetMarker_All_FSIinterface(iMarker) - /*--- Loop over points---*/ - for (iPoint=0; iPointGetnPoint(); iPoint++){ - /*--- Set NewCoord to 0 ---*/ - for (iDim=0; iDimGetnPoint(); jPoint++){ - weight = TransferMatrix->GetBlock(iPoint,jPoint); - for (iDim=0; iDimnode[jPoint]->GetDiscplacement(iDim)*weight; - /*---TODO: also add rotation (cross product of rotation and distance) - *pointlist_a[i].t[0] += w*(dz*pointlist_s[j].r[1] -dy*pointlist_s[j].r[2]) - pointlist_a[i].t[1] += w*(-dz*pointlist_s[j].r[0] +dx*pointlist_s[j].r[2]) - pointlist_a[i].t[2] += w*(dy*pointlist_s[j].r[0] -dx*pointlist_s[j].r[1]) - * ---*/ - } - /*---Set VarCoord of the vertex type ---*/ - for (iMarker = 0; iMarker < config[iZone_0]->GetMarker_n_FSIinterface(); iMarker++) { - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES) { - for (iVertex = 0; iVertex < Geometry[iZone_0]->nVertex[iMarker]; iVertex++) { - i2Point = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); - GlobalIndex = Geometry[iZone_0]->node[i2Point]->GetGlobalIndex(); - if (GlobalIndex == iPoint) { - Geometry[iZone_0]->vertex[iMarker][iVertex]->SetVarCoord(NewCoord); - break; + unsigned short nDim = Geometry[iZone_0]->GetnDim(); + /*--- Loop over vertices in the interface marker (zone 0) ---*/ + for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); + /*--- Set NewCoord to 0 ---*/ + for (iDim=0; iDimGetnMarker_All(); jMarker++){ + if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ + for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { + jPoint =Geometry[iZone_1]->vertex[jMarker][jVertex]->GetNode(); + /*--- Add to the NewCoord value ---*/ + weight = TransferMatrix->GetBlock(iPoint,jPoint); + VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); + VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + distance = {0.0,0.0,0.0}; + for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim); + } + /*--- Add contribution of rotation ---*/ + if (nDim==2){ + VarCoord[0]+=weight*(-distance[1]*VarRot[2]); + VarCoord[1]+=weight*(distance[0]*VarRot[2]); + } + if (nDim==3){ + VarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); + VarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); + VarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); + } + } + } } + Geometry[iZone_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } } - } } + // must be called later: //flow_grid_movement->SetVolume_Deformation(Geometry[ZONE_0][MESH_0], config[ZONE_0], true); } -CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1){ - cout<<"base class set transfer matrix"<GetnDim(); + double distance = 0.0, last_distance=-1.0; + double *val = {1.0}; -CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1){ /*Loop through vertices in FSIinterface, set nearest neighbor value to 1.0, all others to 0.0*/ - cout<<"Nearest neighbor set transfer matrix"<GetnMarker_All(); iMarker++){ + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); + last_distance=-1.0; + /*--- Loop over vertices in the interface marker (zone 1) --*/ + for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ + if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ + for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { + jPoint =Geometry[iZone_1]->vertex[jMarker][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distanceSetBlock(iPoint,nn,val); + } + } + } + } diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 1bb0b04e557..21a8b063919 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -1412,108 +1412,77 @@ CSysTransferMatrix::~CSysTransferMatrix(void) { if (row_ptr != NULL) delete [] row_ptr; if (col_ind != NULL) delete [] col_ind; - if (row_marker != NULL) delete [] row_marker; - if (row_vertex != NULL) delete [] row_vertex; - if (col_marker != NULL) delete [] col_marker; - if (col_vertex != NULL) delete [] col_vertex; } void CSysTransferMatrix::Initialize(CGeometry **geometry, CConfig **config) { - unsigned long iPoint, index, nnz, iVertex,jVertex; + unsigned long iPoint, jPoint, index, nnz, iVertex, jVertex; double *Coord_Point, distance, last_distance; - unsigned short iDim; - unsigned short iNeigh, iElem, iNode, **nNeigh, iMarker,jMarker; - unsigned long **Neigh; - nVertex_flow=0; nVertex_fea=0; + unsigned short iDim, iMarker, jMarker; + unsigned short iNeigh, jElem, iNode, *nNeigh; + unsigned long *Neigh; - nNeigh = new unsigned short* [config[ZONE_0]->GetnMarker_All()]; /* number of nodes assc w/ nearest neighbor element*/ - Neigh = new unsigned long* [config[ZONE_1]->GetnMarker_All()]; /*Nearest neighbor element*/ - - /*--- Initialize the number of vertices that will be transferring information from the FLOW solution (assumes ZONE_0)---*/ - for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++) - if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - nVertex_flow += geometry[ZONE_0]->GetnVertex(iMarker); - nNeigh[iMarker] = new unsigned short [geometry[ZONE_0]->GetnVertex(iMarker)]; - Neigh[iMarker] = new unsigned long [geometry[ZONE_0]->GetnVertex(iMarker)]; - } - /*--- Initialize the number of vertices that will be transferring information from the FEA solution (assumes ZONE_1)---*/ - for (iMarker = 0; iMarker < config[ZONE_1]->GetnMarker_All(); iMarker++) - if (config[ZONE_1]->GetMarker_All_FSIinterface(iMarker) == YES) - nVertex_fea += geometry[ZONE_0]->GetnVertex(iMarker); + nPoint = geometry[ZONE_0]->GetnPoint(); nPoint_1 = geometry[ZONE_1]->GetnPoint(); nElem_1 = geometry[ZONE_1]->GetnElem(); nDim = geometry[ZONE_0]->GetnDim(); + + nNeigh = new unsigned short [nPoint]; /* number of nodes assc w/ nearest neighbor element*/ + Neigh = new unsigned long [nPoint]; /*Nearest neighbor element*/ + /*--- Compute the number of neighbors = nodes of the nearest element ---*/ + /*---Loop through vertices in the FSIInterface markers from the flow solution side (Zone 0 ) ---*/ for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { iPoint =geometry[ZONE_0]->vertex[iMarker][iVertex]->GetNode(); Coord_Point = geometry[ZONE_0]->node[iPoint]->GetCoord(); - /*--- Loop over elements of ZONE_1 (Assumed to be structures), find the one nearest ---*/ - /*--- Brute force nearest neighbor by CG -> - * TODO: replace with nearest neigh by projected point on element - * ( a point near the edge of an element may be closer to the CG of a smaller element nearby) - * TODO: replace brute force search - * TODO: general for other types of interpolation (nearest NODE for example -> base on config option?) - * */ - distance = 0.0; last_distance=-1.0; // distance will always be positive, so negative value provides flag for first point - for (jMarker=0; jMarkerGetnMarker_All(); jMarker++){ - if (config[ZONE_1]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (jVertex = 0; jVertexGetnVertex(iMarker); jVertex++) { - iElem = geometry[ZONE_1]->vertex[jMarker][jVertex]->GetDonorElem(); - for (iDim=0; iDimelem[iElem]->GetCG(iDim)-Coord_Point[iDim],2.0); - if ((last_distance==-1.0) or (distanceelem[iElem]->GetnNodes(); - last_distance = distance; - } + last_distance=-1.0; /*--- initialize to -1 as a flag---*/ + /*--- Loop through elements in the structural mesh that touch FSIinterface --*/ + for (jMarker = 0; iMarker < config[ZONE_1]->GetnMarker_All(); jMarker++){ + if (config[ZONE_1]->GetMarker_All_FSIinterface(jMarker) == YES){ + for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { + jPoint = geometry[ZONE_1]->vertex[jMarker][jVertex]->GetNode(); + for (unsigned int kElem = 0; kElemnode[jPoint]->GetnElem(); kElem++ ){ + jElem = geometry[ZONE_1]->node[jPoint]->GetElem(kElem); + distance = 0.0; + for (iDim=0; iDimelem[jElem]->GetCG(iDim)-Coord_Point[iDim],2.0); + /*-- This element is stored as the nearest if it is the first one checked (last_distance=-1.0) or if the distance is smaller.---*/ + if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorElem(jElem); + } + } } } } + nNeigh[iPoint] = geometry[ZONE_1]->elem[Neigh[iPoint]]->GetnNodes(); } } } /*--- Create row_ptr structure, using the number of neighbors ---*/ - row_ptr = new unsigned long [nVertex_flow+1]; - row_marker = new unsigned long [nVertex_flow]; - row_vertex = new unsigned long [nVertex_flow]; + + row_ptr = new unsigned long [nPoint+1]; row_ptr[0] = 0; - jVertex = 0; - for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ - if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - row_ptr[jVertex+1] = row_ptr[jVertex] + nNeigh[iMarker][iVertex]; - row_marker[jVertex]=iMarker; - row_vertex[jVertex]=iVertex; - jVertex++; - } - } - } - nnz = row_ptr[nVertex_flow]; + for (iPoint = 0; iPoint < nPoint; iPoint++) + row_ptr[iPoint+1] = row_ptr[iPoint] + nNeigh[iPoint]; + nnz = row_ptr[nPoint]; /*--- Create col_ind structure ---*/ col_ind = new unsigned long [nnz]; - col_vertex = new unsigned long [nnz]; - col_marker = new unsigned long [nnz]; - jVertex=0; - for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ - if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - index = row_ptr[jVertex]; - for (iNeigh = 0; iNeigh < nNeigh[iMarker][iVertex]; iNeigh++) { - col_ind[index] = geometry[ZONE_1]->elem[Neigh[iMarker][iVertex]]->GetNode(iNode); //vneighs[iNeigh]; - col_vertex[index]=iVertex; - col_marker[index]=iMarker; - index++; - } - jVertex++; - } + for (iPoint = 0; iPoint < nPoint; iPoint++) { + + index = row_ptr[iPoint]; + for (iNeigh = 0; iNeigh < nNeigh[iPoint]; iNeigh++) { + col_ind[index] = geometry[ZONE_1]->elem[Neigh[iPoint]]->GetNode(iNode); //vneighs[iNeigh]; + index++; } + } /*--- Set the indices in the in the sparse matrix structure, and memory allocation ---*/ @@ -1525,7 +1494,7 @@ void CSysTransferMatrix::Initialize(CGeometry **geometry, CConfig **config) { SetValZero(); delete [] nNeigh; - delete [] Neigh; + } @@ -1536,10 +1505,15 @@ void CSysTransferMatrix::SetIndexes( unsigned long val_nnz, CConfig *config) { nnz = val_nnz; // Assign number of possible non zero blocks - matrix = new double [nnz]; // Reserve memory for the values of the matrix + matrix = new double [nnz*nDim]; // Reserve memory for the values of the matrix + aux_vector = new double [nDim]; + sum_vector = new double [nDim]; /*--- Memory initialization ---*/ - for (iVar = 0; iVar < nnz; iVar++) matrix[iVar] = 0.0; + for (iVar = 0; iVar < nnz*nDim; iVar++) matrix[iVar] = 0.0; + for (iVar = 0; iDim < nDim; iVar++) aux_vector[iDim] = 0.0; + for (iVar = 0; iDim < nDim; iVar++) sum_vector[iDim] = 0.0; + } From 35912bec481064f1598d8486b0c6a82d0d577a16 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 2 Jun 2015 13:24:43 -0700 Subject: [PATCH 011/269] some corrections --- Common/include/interpolation_structure.hpp | 31 +++++++++++-- Common/lib/Makefile.am | 3 +- Common/src/interpolation_structure.cpp | 54 +++++++++++++++++----- SU2_FSI/include/SU2_FSI.hpp | 1 + 4 files changed, 72 insertions(+), 17 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 45ee3418475..0c413c150e3 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -33,15 +33,20 @@ #ifdef HAVE_MPI #include "mpi.h" #endif -#include -#include "geometry_structure.hpp" +#include +#include +#include + #include "config_structure.hpp" +#include "geometry_structure.hpp" +#include "vector_structure.hpp" using namespace std; + /*! * \class CInterpolator * \brief Main class for defining the interpolator, it requires @@ -70,12 +75,12 @@ class CInterpolator { /*! * \brief Destructor of the class. */ - virtual ~CInterpolator(void); + ~CInterpolator(void); /*! * \brief interpolate forces from one mesh to another */ - void Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1); /*! * \brief interpolate deformations from one mesh to another @@ -85,7 +90,23 @@ class CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes */ - virtual void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + + + /*! + * \brief Return the value of the force at the specified zone, point, and dimension. + */ + double GetForce(unsigned short iZone, unsigned long iPoint, unsigned short iDim); + + /*! + * \brief Return the value of the force vector at the specified zone and point. + */ + double* GetForce(unsigned short iZone, unsigned long iPoint); + + /*! + * \brief Set the value of the force at the specified zone, point, and dimension. + */ + void SetForce(unsigned short iZone, unsigned long iPoint, unsigned short iDim, double val); }; diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index a696db57b29..4206beebdf1 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -69,7 +69,8 @@ libSU2_a_SOURCES = \ ../src/primal_grid_structure.cpp \ ../src/vector_structure.cpp \ ../src/matrix_structure.cpp \ - ../src/su2mpi.cpp + ../src/su2mpi.cpp\ + ../src/interpolation_structure.cpp libSU2_a_CXXFLAGS = libSU2_a_LIBADD = diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index c815c5f1fce..ba7533a061b 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -32,9 +32,14 @@ #include "../include/interpolation_structure.hpp" CInterpolator::CInterpolator(void){ + Force = NULL; + TransferMatrix = NULL; } +CInterpolator::~CInterpolator(void){} + + CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, unsigned short val_nZone){ unsigned short nDim = geometry_container[ZONE_0]->GetnDim(); /* Store pointers*/ @@ -42,10 +47,13 @@ CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, u nZone = val_nZone; /*--- Set matching between zones ---*/ + TransferMatrix = new CSysTransferMatrix(); /*---Create Transfer Matrix, find nearest neighbors, initialize memory---*/ TransferMatrix->Initialize(Geometry,config); /*---Set the values of the transfer matrix---*/ Set_TransferMatrix(ZONE_0, ZONE_1,config); + + /*--- Initialize force vectors to 0 ---*/ Force = new double**[val_nZone]; Force[ZONE_0] = new double*[Geometry[ZONE_0]->GetnPoint()]; Force[ZONE_1] = new double*[Geometry[ZONE_1]->GetnPoint()]; @@ -70,10 +78,13 @@ CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, u } -CInterpolator::Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1){ +void CInterpolator::Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1){ unsigned long iPoint, jPoint; unsigned short nDim = Geometry[ZONE_0]->GetnDim(); double weight=0.0; + + /*--- Loop through points, increment force by the weight in the transfer matrix ---*/ + /*Loop by i then by j to more efficiently call memory*/ for (iPoint=0; iPointGetnPoint(); iPoint++){ for (jPoint=0; jPointGetnPoint(); jPoint++){ @@ -89,7 +100,7 @@ CInterpolator::Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1) } -CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ +void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ unsigned long GlobalIndex, iPoint, i2Point, jPoint, j2Point, iVertex, jVertex; unsigned short iMarker, jMarker, iDim; @@ -115,21 +126,22 @@ CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short i distance = {0.0,0.0,0.0}; for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim); + distance[iDim] = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1]->vertex[jMarker][jVertex]->GetCoord(iDim); } /*--- Add contribution of rotation ---*/ if (nDim==2){ - VarCoord[0]+=weight*(-distance[1]*VarRot[2]); - VarCoord[1]+=weight*(distance[0]*VarRot[2]); + NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); + NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); } if (nDim==3){ - VarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); - VarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); - VarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); + NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); + NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); + NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); } } } } + // Or introduce deformation vector that stores this. Geometry[iZone_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } } @@ -140,11 +152,31 @@ CInterpolator::Interpolate_Displacement(unsigned short iZone_0, unsigned short i } -CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ +void CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ cout<<"base class set transfer matrix: all zeros, no interpolation will be done."<GetnDim(); diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp index e8d6a09e2b1..5e001110b43 100644 --- a/SU2_FSI/include/SU2_FSI.hpp +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -48,6 +48,7 @@ #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/config_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" +#include "../../Common/include/interpolation_structure.hpp" #include "../include/iteration_structure_fsi.hpp" From 08c464c274d2815dc83bb11475e45a6502e0b158 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 6 Jun 2015 17:38:34 -0700 Subject: [PATCH 012/269] changed structure to store transfer coeff on vertices rather than in a matrix structure; added interp of solution container to base interpolator class --- Common/include/dual_grid_structure.hpp | 55 ++++++ Common/include/dual_grid_structure.inl | 12 ++ Common/include/interpolation_structure.hpp | 29 ++- Common/include/matrix_structure.hpp | 46 ----- Common/include/matrix_structure.inl | 5 - Common/src/dual_grid_structure.cpp | 22 ++- Common/src/interpolation_structure.cpp | 208 ++++++++++++++------- Common/src/matrix_structure.cpp | 119 ------------ 8 files changed, 248 insertions(+), 248 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index ea8db47f50b..bb47be38cad 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -880,6 +880,9 @@ class CVertex : public CDualGrid { unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */ double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ + unsigned long **Donor_Info; /*!\brief Store a list of donor points (by global index) for interpolation across zones: zone,point,marker,vertex */ + double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ + unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points;*/ public: @@ -1084,6 +1087,58 @@ class CVertex : public CDualGrid { */ unsigned long GetNormal_Neighbor(void); + /*! + * \brief Increment the number of donor points by 1. + */ + void IncrementnDonor(void); + + /*! + * \brief Set the value of nDonor_Points + * \param[in] nDonor - the number of donor points + */ + void SetnDonorPoints(unsigned short nDonor); + + /*! + * \brief Return the value of nDonor_Points + * \return nDonor - the number of donor points + */ + unsigned short GetnDonorPoints(void); + + /*! + * \brief Set the values of a donor point. + * \param[in] iDonor - Index of the donor point. + * \param[in] val - Pointer to the array of values to be set for the donor point. (zone, global point id, marker id, vertex within that marker) + */ + void SetDonorInfo(unsigned short iDonor, unsigned long*val); + + /*! + * \brief Return the values of a donor point. + * \param[in] iDonor - Index of the donor point. + * \param[in] it - Index of the information to be returned.(zone, global point id, marker id, vertex within that marker) + * \return - the value stored at Donor_Info[iDonor][it]. + */ + unsigned long GetDonorInfo(unsigned short iDonor, unsigned short it); + + + /*! + * \brief Set the coefficient value of a donor point. + * \param[in] iDonor - Index of the donor point. + * \param[in] val - Value of the coefficent for point iDonor. + */ + void SetDonorCoeff(unsigned short iDonor, double val); + + /*! + * \brief Get the coefficient value of a donor point. + * \param[in] iDonor - Index of the donor point. + * \return - Value of the coefficent for point iDonor. + */ + double GetDonorCoeff(unsigned short iDonor); + + /*! + * \brief Allocate memory based on how many donor points need to be stored. + * Uses nDonor_Points + */ + void Allocate_DonorInfo(void); }; #include "dual_grid_structure.inl" diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index b6f49919fd4..71b6d8e0b61 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -336,4 +336,16 @@ inline unsigned long CVertex::GetNormal_Neighbor(void) { return Normal_Neighbor; inline void CVertex::SetNormal_Neighbor(unsigned long val_Normal_Neighbor) { Normal_Neighbor = val_Normal_Neighbor; } +inline void CVertex::IncrementnDonor(void){nDonor_Points++;} +inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long*val){ for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; } + +inline void CVertex::SetDonorCoeff(unsigned short iDonor, double val){ Donor_Coeff[iDonor] = val; } + +inline unsigned long CVertex::GetDonorInfo(unsigned short iDonor, unsigned short it){ return Donor_Info[iDonor][it];} + +inline double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} + +inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} + +inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 0c413c150e3..52d245426c9 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -57,10 +57,9 @@ using namespace std; class CInterpolator { protected: unsigned short nZone; - double ***Force; + double ***Data; /*!\brief container for some data to be interpolated */ public: CGeometry** Geometry; /*! \brief Vector which stores n zones of geometry. */ - CSysTransferMatrix* TransferMatrix; /*! \brief Sparse matrix structure defining transfer from one mesh to another. */ /*! * \brief Constructor of the class. @@ -78,15 +77,25 @@ class CInterpolator { ~CInterpolator(void); /*! - * \brief interpolate forces from one mesh to another + * \brief interpolate Data from one mesh to another */ - void Interpolate_Force(unsigned short iZone_0, unsigned short iZone_1); + void Interpolate_Data(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); /*! * \brief interpolate deformations from one mesh to another */ void Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + /*! + * \brief interpolate data stored in the solution containers of two zones. + * Assumes that the data are of the format, aka two CFD solutions with the same nondimensionalization. + * Data in the solution container of the nodes in the interface of iZone_dest will be overwritten. + * \param[in] iZone_dest - The zone which will be receiving the interpolated solution + * \param[in] config - configuration information container + * \param[in] solver_container - solution container. + */ + void Interpolate_Solution(unsigned short iZone_dest, CConfig **config, CSolver **solver_container); + /*! * \brief Set up transfer matrix defining relation between two meshes */ @@ -94,19 +103,19 @@ class CInterpolator { /*! - * \brief Return the value of the force at the specified zone, point, and dimension. + * \brief Return the value of the Data at the specified zone, point, and dimension. */ - double GetForce(unsigned short iZone, unsigned long iPoint, unsigned short iDim); + double GetData(unsigned short iZone, unsigned long iPoint, unsigned short iDim); /*! - * \brief Return the value of the force vector at the specified zone and point. + * \brief Return the value of the Data vector at the specified zone and point. */ - double* GetForce(unsigned short iZone, unsigned long iPoint); + double* GetData(unsigned short iZone, unsigned long iPoint); /*! - * \brief Set the value of the force at the specified zone, point, and dimension. + * \brief Set the value of the Data at the specified zone, point, and dimension. */ - void SetForce(unsigned short iZone, unsigned long iPoint, unsigned short iDim, double val); + void SetData(unsigned short iZone, unsigned long iPoint, unsigned short iDim, double val); }; diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index e179f849465..a8b1a8dbf88 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -567,51 +567,5 @@ class CLineletPreconditioner : public CPreconditioner { void operator()(const CSysVector & u, CSysVector & v) const; }; -/*! - * \class CSysTransferMatrix - * \brief Specialization of CSysMatrix to handle transfer coefficients between dissimilar meshes - */ -class CSysTransferMatrix : public CSysMatrix { -private: - unsigned long nPoint_1, nElem_1; /*\brief number of nodes, elements in ZONE_1 */ - unsigned short nDim; - unsigned long *row_ptr, - *col_ind; -public: - - /*! - * \brief constructor of the class - */ - CSysTransferMatrix(void); - - /*! - * \brief destructor of the class - */ - ~CSysTransferMatrix(void); - - /*! - * \brief Initializes space matrix system. - * \param[in] nVar - Number of variables. - * \param[in] nEqn - Number of equations. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void Initialize(CGeometry **geometry, CConfig **config); - - - /*! - * \brief Assings values to the sparse-matrix structure. - * \param[in] val_nnz - Number of possible nonzero entries in the matrix. - * \param[in] config - Definition of the particular problem. - */ - void SetIndexes( unsigned long val_nnz, CConfig *config); - - /*! - * \brief Sets to zero all the entries of the sparse matrix. - */ - void SetValZero(void); - - -}; #include "matrix_structure.inl" diff --git a/Common/include/matrix_structure.inl b/Common/include/matrix_structure.inl index 0c7b0e66c54..581d19b4fcc 100644 --- a/Common/include/matrix_structure.inl +++ b/Common/include/matrix_structure.inl @@ -110,8 +110,3 @@ inline void CLineletPreconditioner::operator()(const CSysVector & u, CSysVector } sparse_matrix->ComputeLineletPreconditioner(u, v, geometry, config); } - -inline void CSysTransferMatrix::SetValZero(void) { - for (unsigned long index = 0; index < nnz*nDim; index++) - matrix[index] = 0.0; -} diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 56cf47c4eed..70b5220dbb3 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -452,13 +452,24 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v /*--- Set to zero the variation of the coordinates ---*/ VarCoord[0] = 0.0; VarCoord[1] = 0.0; VarCoord[2] = 0.0; + /*--- Set to NULL donor arrays for interpolation ---*/ + Donor_Info = NULL; + Donor_Coeff = NULL; + nDonor_Points = 0; } CVertex::~CVertex() { if (Normal != NULL) delete[] Normal; if (Nodes != NULL) delete[] Nodes; - + + /*--- donor arrays for interpolation ---*/ + if (Donor_Info != NULL) + for (unsigned long iDonor=0; iDonorInitialize(Geometry,config); + //TransferMatrix->Initialize(Geometry,config); + /*---Set the values of the transfer matrix---*/ Set_TransferMatrix(ZONE_0, ZONE_1,config); - /*--- Initialize force vectors to 0 ---*/ - Force = new double**[val_nZone]; - Force[ZONE_0] = new double*[Geometry[ZONE_0]->GetnPoint()]; - Force[ZONE_1] = new double*[Geometry[ZONE_1]->GetnPoint()]; + /*--- Initialize Data vectors to 0 ---*/ + Data = new double**[val_nZone]; + Data[ZONE_0] = new double*[Geometry[ZONE_0]->GetnPoint()]; + Data[ZONE_1] = new double*[Geometry[ZONE_1]->GetnPoint()]; for (unsigned long iPoint =0; iPoint< Geometry[ZONE_0]->GetnPoint(); iPoint++){ - Force[ZONE_0][iPoint] = new double[nDim]; + Data[ZONE_0][iPoint] = new double[nDim]; for (unsigned short iDim=0; iDimGetnPoint(); iPoint++){ - Force[ZONE_1][iPoint] = new double[nDim]; + Data[ZONE_1][iPoint] = new double[nDim]; for (unsigned short iDim=0; iDimGetnDim(); +void CInterpolator::Interpolate_Data(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ + unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; + unsigned short nDim = Geometry[ZONE_0]->GetnDim(), jMarker; double weight=0.0; - /*--- Loop through points, increment force by the weight in the transfer matrix ---*/ + /*--- Loop through points, increment Data by the weight in the transfer matrix ---*/ /*Loop by i then by j to more efficiently call memory*/ - for (iPoint=0; iPointGetnPoint(); iPoint++){ - for (jPoint=0; jPointGetnPoint(); jPoint++){ - /*find the weight stored in the transfer matrix (returns NULL if zero entry)*/ - weight = TransferMatrix->GetBlock(iPoint,jPoint); - if (weight!=NULL){ - for (unsigned short iDim=0; iDimGetnMarker_All(); iMarker++){ + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0]->vertex[iMarker][iVertex]->GetnDonor(); jDonor++){ + /* Unpack info */ + iZone_1 = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + for (unsigned short iDim=0; iDimGetnMarker_All(); jMarker++){ - if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ - for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { - jPoint =Geometry[iZone_1]->vertex[jMarker][jVertex]->GetNode(); - /*--- Add to the NewCoord value ---*/ - weight = TransferMatrix->GetBlock(iPoint,jPoint); - VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); - VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. - distance = {0.0,0.0,0.0}; - for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1]->vertex[jMarker][jVertex]->GetCoord(iDim); - } - /*--- Add contribution of rotation ---*/ - if (nDim==2){ - NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); - NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); - } - if (nDim==3){ - NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); - NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); - NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); - } - } - } + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0]->vertex[iMarker][iVertex]->GetnDonor(); jDonor++){ + iZone_1 = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + /* Get translation and rotation from the solution */ + VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); + VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + distance = {0.0,0.0,0.0}; + for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1]->node[jPoint]->GetCoord(iDim); + } + /*--- Add contribution of rotation ---*/ + if (nDim==2){ + NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); + NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); + } + if (nDim==3){ + NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); + NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); + NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); + } } // Or introduce deformation vector that stores this. Geometry[iZone_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); @@ -152,27 +158,59 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho } +void CInterpolator::Interpolate_Solution( unsigned short iZone_dest, CConfig **config, CSolver **solver_container){ + unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; + unsigned short jMarker, iZone_source, nVar = solver_container[iZone_dest]->GetnVar(); + double weight=0.0, dest_val=0.0, src_val=0.0; + /*--- Loop through the interface vertices in the destination zone ---*/ + for (iMarker = 0; iMarker < config[iZone_dest]->GetnMarker_All(); iMarker++){ + if (config[iZone_dest]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + /*--- Set the values at the interface point to 0 initially ---*/ + iPoint =Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetNode(); + for (unsigned short iVar=0; iVarnode[iPoint]->SetSolution(iVar,0.0); + /*--- Loop through donor points ---*/ + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + /*--- unpack Donor Point info ---*/ + iZone_source = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + weight = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + for (unsigned short iVar=0; iVarnode[iPoint]->GetSolution(iVar); + dest_val+=solver_container[iZone_source]->node[jPoint]->GetSolution(iVar)*weight; + /*--- Set the value in the solution container ---*/ + solver_container[iZone_dest]->node[iPoint]->SetSolution(iVar,dest_val); + } + } + } + } + } +} + + void CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ cout<<"base class set transfer matrix: all zeros, no interpolation will be done."<GetnDim(); + unsigned short nDim = Geometry[iZone_0]->GetnDim(), iDonor, jDonor; double distance = 0.0, last_distance=-1.0; - double *val = {1.0}; - - /*Loop through vertices in FSIinterface, set nearest neighbor value to 1.0, all others to 0.0*/ - cout<<"Nearest neighbor set transfer matrix"<GetnMarker_All(); iMarker++){ if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); last_distance=-1.0; + /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ + Geometry[iZone_0]->vertex[iMarker][iVertex]->SetnDonorPoints(1); + Geometry[iZone_0]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); /*--- Loop over vertices in the interface marker (zone 1) --*/ for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ @@ -208,12 +250,44 @@ void CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short distance+=pow(Geometry[iZone_1]->vertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); + } + } + } + /*--- Do the same for the next zone ---*/ + for (iMarker = 0; iMarker < config[iZone_1]->GetnMarker_All(); iMarker++){ + if (config[iZone_1]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_1]->vertex[iMarker][iVertex]->GetNode(); + last_distance=-1.0; + /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ + Geometry[iZone_1]->vertex[iMarker][iVertex]->SetnDonorPoints(1); + Geometry[iZone_1]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); + /*--- Loop over vertices in the interface marker (zone 1) --*/ + for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ + if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ + for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { + jPoint =Geometry[iZone_1]->vertex[jMarker][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_1]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distanceSetBlock(iPoint,nn,val); + /*--- Set the information of the nearest neighbor ---*/ + Geometry[iZone_1]->vertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_1]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); } } } diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 21a8b063919..67da1747838 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -1398,122 +1398,3 @@ void CSysMatrix::ComputeResidual(const CSysVector & sol, const CSysVector & f, C } - -CSysTransferMatrix::CSysTransferMatrix(void): CSysMatrix() { - nVar = 1; - nEqn=1; - row_ptr = NULL; - col_ind = NULL; - -} - - -CSysTransferMatrix::~CSysTransferMatrix(void) { - - if (row_ptr != NULL) delete [] row_ptr; - if (col_ind != NULL) delete [] col_ind; - -} - -void CSysTransferMatrix::Initialize(CGeometry **geometry, CConfig **config) { - - unsigned long iPoint, jPoint, index, nnz, iVertex, jVertex; - double *Coord_Point, distance, last_distance; - unsigned short iDim, iMarker, jMarker; - unsigned short iNeigh, jElem, iNode, *nNeigh; - unsigned long *Neigh; - - - nPoint = geometry[ZONE_0]->GetnPoint(); - nPoint_1 = geometry[ZONE_1]->GetnPoint(); - nElem_1 = geometry[ZONE_1]->GetnElem(); - nDim = geometry[ZONE_0]->GetnDim(); - - nNeigh = new unsigned short [nPoint]; /* number of nodes assc w/ nearest neighbor element*/ - Neigh = new unsigned long [nPoint]; /*Nearest neighbor element*/ - - /*--- Compute the number of neighbors = nodes of the nearest element ---*/ - /*---Loop through vertices in the FSIInterface markers from the flow solution side (Zone 0 ) ---*/ - for (iMarker = 0; iMarker < config[ZONE_0]->GetnMarker_All(); iMarker++){ - if (config[ZONE_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =geometry[ZONE_0]->vertex[iMarker][iVertex]->GetNode(); - Coord_Point = geometry[ZONE_0]->node[iPoint]->GetCoord(); - last_distance=-1.0; /*--- initialize to -1 as a flag---*/ - /*--- Loop through elements in the structural mesh that touch FSIinterface --*/ - for (jMarker = 0; iMarker < config[ZONE_1]->GetnMarker_All(); jMarker++){ - if (config[ZONE_1]->GetMarker_All_FSIinterface(jMarker) == YES){ - for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { - jPoint = geometry[ZONE_1]->vertex[jMarker][jVertex]->GetNode(); - for (unsigned int kElem = 0; kElemnode[jPoint]->GetnElem(); kElem++ ){ - jElem = geometry[ZONE_1]->node[jPoint]->GetElem(kElem); - distance = 0.0; - for (iDim=0; iDimelem[jElem]->GetCG(iDim)-Coord_Point[iDim],2.0); - /*-- This element is stored as the nearest if it is the first one checked (last_distance=-1.0) or if the distance is smaller.---*/ - if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorElem(jElem); - } - } - } - } - } - nNeigh[iPoint] = geometry[ZONE_1]->elem[Neigh[iPoint]]->GetnNodes(); - } - } - } - - /*--- Create row_ptr structure, using the number of neighbors ---*/ - - row_ptr = new unsigned long [nPoint+1]; - row_ptr[0] = 0; - for (iPoint = 0; iPoint < nPoint; iPoint++) - row_ptr[iPoint+1] = row_ptr[iPoint] + nNeigh[iPoint]; - nnz = row_ptr[nPoint]; - - /*--- Create col_ind structure ---*/ - - col_ind = new unsigned long [nnz]; - for (iPoint = 0; iPoint < nPoint; iPoint++) { - - index = row_ptr[iPoint]; - for (iNeigh = 0; iNeigh < nNeigh[iPoint]; iNeigh++) { - col_ind[index] = geometry[ZONE_1]->elem[Neigh[iPoint]]->GetNode(iNode); //vneighs[iNeigh]; - index++; - } - - } - - /*--- Set the indices in the in the sparse matrix structure, and memory allocation ---*/ - - SetIndexes( nnz, config[ZONE_0]); - - /*--- Initialization matrix to zero ---*/ - - SetValZero(); - - delete [] nNeigh; - - -} - -void CSysTransferMatrix::SetIndexes( unsigned long val_nnz, CConfig *config) { - - unsigned long iVar; - unsigned short iDim; - - nnz = val_nnz; // Assign number of possible non zero blocks - - matrix = new double [nnz*nDim]; // Reserve memory for the values of the matrix - aux_vector = new double [nDim]; - sum_vector = new double [nDim]; - - /*--- Memory initialization ---*/ - - for (iVar = 0; iVar < nnz*nDim; iVar++) matrix[iVar] = 0.0; - for (iVar = 0; iDim < nDim; iVar++) aux_vector[iDim] = 0.0; - for (iVar = 0; iDim < nDim; iVar++) sum_vector[iDim] = 0.0; - - -} From 22437d5812d986bb096c2afdb81cdaa46604c854 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 15 Jun 2015 11:12:57 +0100 Subject: [PATCH 013/269] Temporal fixes in interpolation procedures. --- Common/include/interpolation_structure.hpp | 2 +- Common/lib/Makefile.in | 132 +++---- Common/src/interpolation_structure.cpp | 91 ++--- Makefile.in | 198 +++++------ configure | 389 +++++++++++++++++++++ configure.ac | 1 + 6 files changed, 587 insertions(+), 226 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 52d245426c9..75f2ec0707a 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -94,7 +94,7 @@ class CInterpolator { * \param[in] config - configuration information container * \param[in] solver_container - solution container. */ - void Interpolate_Solution(unsigned short iZone_dest, CConfig **config, CSolver **solver_container); +// void Interpolate_Solution(unsigned short iZone_dest, CConfig **config, CSolver **solver_container); /*! * \brief Set up transfer matrix defining relation between two meshes diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 5fb68b4f144..f718a720eab 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -50,23 +51,6 @@ ###################################################################################### VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -87,8 +71,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = Common/lib -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ @@ -104,8 +87,10 @@ AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ libSU2_a_AR = $(AR) $(ARFLAGS) libSU2_a_DEPENDENCIES = am__dirstamp = $(am__leading_dot)dirstamp @@ -118,20 +103,9 @@ am_libSU2_a_OBJECTS = ../src/libSU2_a-config_structure.$(OBJEXT) \ ../src/libSU2_a-primal_grid_structure.$(OBJEXT) \ ../src/libSU2_a-vector_structure.$(OBJEXT) \ ../src/libSU2_a-matrix_structure.$(OBJEXT) \ - ../src/libSU2_a-su2mpi.$(OBJEXT) + ../src/libSU2_a-su2mpi.$(OBJEXT) \ + ../src/libSU2_a-interpolation_structure.$(OBJEXT) libSU2_a_OBJECTS = $(am_libSU2_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -139,39 +113,32 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libSU2_a_SOURCES) DIST_SOURCES = $(libSU2_a_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -322,6 +289,7 @@ libSU2_a_SOURCES = \ ../include/matrix_structure.hpp \ ../include/matrix_structure.inl \ ../include/su2mpi.hpp \ + ../include/interpolation_structure.hpp \ ../src/config_structure.cpp \ ../src/dual_grid_structure.cpp \ ../src/geometry_structure.cpp \ @@ -331,7 +299,8 @@ libSU2_a_SOURCES = \ ../src/primal_grid_structure.cpp \ ../src/vector_structure.cpp \ ../src/matrix_structure.cpp \ - ../src/su2mpi.cpp + ../src/su2mpi.cpp\ + ../src/interpolation_structure.cpp # always link to built dependencies from ./externals @@ -410,6 +379,8 @@ clean-noinstLIBRARIES: ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-su2mpi.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_a-interpolation_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2.a $(AM_V_AR)$(libSU2_a_AR) libSU2.a $(libSU2_a_OBJECTS) $(libSU2_a_LIBADD) @@ -417,7 +388,17 @@ libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDEN mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/libSU2_a-config_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-dual_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-geometry_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-grid_adaptation_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-grid_movement_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-interpolation_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-linear_solvers_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-matrix_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-primal_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-su2mpi.$(OBJEXT) + -rm -f ../src/libSU2_a-vector_structure.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -427,6 +408,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-geometry_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-grid_adaptation_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-grid_movement_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-linear_solvers_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-matrix_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-primal_grid_structure.Po@am__quote@ @@ -589,6 +571,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-su2mpi.obj `if test -f '../src/su2mpi.cpp'; then $(CYGPATH_W) '../src/su2mpi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/su2mpi.cpp'; fi` +../src/libSU2_a-interpolation_structure.o: ../src/interpolation_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo -c -o ../src/libSU2_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/interpolation_structure.cpp' object='../src/libSU2_a-interpolation_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp + +../src/libSU2_a-interpolation_structure.obj: ../src/interpolation_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-interpolation_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo -c -o ../src/libSU2_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/interpolation_structure.cpp' object='../src/libSU2_a-interpolation_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -638,20 +634,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -793,14 +775,14 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 86c97605bc2..0f92c903a16 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -90,7 +90,7 @@ void CInterpolator::Interpolate_Data(unsigned short iZone_0, unsigned short iZon if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); - for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0]->vertex[iMarker][iVertex]->GetnDonor(); jDonor++){ + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ /* Unpack info */ iZone_1 = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); jPoint = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); @@ -111,7 +111,7 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho unsigned long GlobalIndex, iPoint, i2Point, jPoint, j2Point, iVertex, jVertex; unsigned short iMarker, jMarker, iDim; - double *NewVarCoord = {0.0,0.0,0.0}, *VarCoord, *VarRot, *distance={0.0,0.0,0.0}; + double *NewVarCoord = NULL, *VarCoord, *VarRot, *distance = NULL; double weight; unsigned short nDim = Geometry[iZone_0]->GetnDim(); /*--- Loop over vertices in the interface marker (zone 0) ---*/ @@ -122,7 +122,7 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho /*--- Set NewCoord to 0 ---*/ for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonor(); jDonor++){ + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ iZone_1 = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); jPoint = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); jMarker = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); @@ -130,8 +130,13 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho weight = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); /* Get translation and rotation from the solution */ VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); - VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. - distance = {0.0,0.0,0.0}; + // This is a fix so it compiles... But it still needs to be developed. + VarRot[0] = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + VarRot[1] = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + VarRot[2] = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + distance[0] = 0.0; + distance[1] = 0.0; + distance[2] = 0.0; for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1]->node[jPoint]->GetCoord(iDim); @@ -158,36 +163,36 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho } -void CInterpolator::Interpolate_Solution( unsigned short iZone_dest, CConfig **config, CSolver **solver_container){ - unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; - unsigned short jMarker, iZone_source, nVar = solver_container[iZone_dest]->GetnVar(); - double weight=0.0, dest_val=0.0, src_val=0.0; - /*--- Loop through the interface vertices in the destination zone ---*/ - for (iMarker = 0; iMarker < config[iZone_dest]->GetnMarker_All(); iMarker++){ - if (config[iZone_dest]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - /*--- Set the values at the interface point to 0 initially ---*/ - iPoint =Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetNode(); - for (unsigned short iVar=0; iVarnode[iPoint]->SetSolution(iVar,0.0); - /*--- Loop through donor points ---*/ - for (unsigned short jDonor = 0; jDonor< Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - /*--- unpack Donor Point info ---*/ - iZone_source = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - weight = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); - for (unsigned short iVar=0; iVarnode[iPoint]->GetSolution(iVar); - dest_val+=solver_container[iZone_source]->node[jPoint]->GetSolution(iVar)*weight; - /*--- Set the value in the solution container ---*/ - solver_container[iZone_dest]->node[iPoint]->SetSolution(iVar,dest_val); - } - } - } - } - } -} +//void CInterpolator::Interpolate_Solution( unsigned short iZone_dest, CConfig **config, CSolver **solver_container){ +// unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; +// unsigned short jMarker, iZone_source, nVar = solver_container[iZone_dest]->GetnVar(); +// double weight=0.0, dest_val=0.0, src_val=0.0; +// /*--- Loop through the interface vertices in the destination zone ---*/ +// for (iMarker = 0; iMarker < config[iZone_dest]->GetnMarker_All(); iMarker++){ +// if (config[iZone_dest]->GetMarker_All_FSIinterface(iMarker) == YES){ +// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { +// /*--- Set the values at the interface point to 0 initially ---*/ +// iPoint =Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetNode(); +// for (unsigned short iVar=0; iVarnode[iPoint]->SetSolution(iVar,0.0); +// /*--- Loop through donor points ---*/ +// for (unsigned short jDonor = 0; jDonor< Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ +// /*--- unpack Donor Point info ---*/ +// iZone_source = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); +// jPoint = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); +// weight = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); +// for (unsigned short iVar=0; iVarnode[iPoint]->GetSolution(iVar); +// dest_val+=solver_container[iZone_source]->node[jPoint]->GetSolution(iVar)*weight; +// /*--- Set the value in the solution container ---*/ +// solver_container[iZone_dest]->node[iPoint]->SetSolution(iVar,dest_val); +// } +// } +// } +// } +// } +//} void CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ @@ -198,7 +203,7 @@ double CInterpolator::GetData(unsigned short iZone, unsigned long iPoint, unsign if (Data !=NULL) return Data[iZone][iPoint][iDim]; else - return NULL; + return 0.0; // Check this. } double* CInterpolator::GetData(unsigned short iZone, unsigned long iPoint){ @@ -227,7 +232,7 @@ void CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short unsigned short iMarker, iDim, jMarker; unsigned short nDim = Geometry[iZone_0]->GetnDim(), iDonor, jDonor; double distance = 0.0, last_distance=-1.0; - double *val = 1.0; +// double *val = 1.0; unsigned short int donorindex = 0; /*--- Loop through the vertices in Interface of both zones * for Nearest Neighbor each vertex has only one donor point, but for other types of @@ -250,7 +255,11 @@ void CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short distance+=pow(Geometry[iZone_1]->vertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancevertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_1]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distance/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -113,18 +97,12 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -134,19 +112,13 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - cscope distdir dist dist-all distcheck + distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags -CSCOPE = cscope DIST_SUBDIRS = externals Common/lib SU2_PY SU2_CFD/obj SU2_FSI/obj \ SU2_DOT/obj SU2_MSH/obj SU2_DEF/obj SU2_SOL/obj SU2_GEO/obj DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -158,7 +130,6 @@ am__remove_distdir = \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi -am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -186,7 +157,6 @@ am__relativize = \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best -DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -320,7 +290,7 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 # build third-party optional dependencies first SUBDIRS = externals Common/lib SU2_PY $(am__append_1) $(am__append_2) \ $(am__append_3) $(am__append_4) $(am__append_5) \ - $(am__append_6) $(am__append_7) + $(am__append_6) $(am__append_7) all: all-recursive .SUFFIXES: @@ -360,12 +330,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -375,11 +345,7 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ + list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -393,6 +359,37 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ @@ -401,10 +398,6 @@ ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done -cscopelist-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ - done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -468,32 +461,8 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) - -clean-cscope: - -rm -f cscope.files - -cscope.files: clean-cscope cscopelist-recursive cscopelist - -cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -529,10 +498,13 @@ distdir: $(DISTFILES) done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -561,36 +533,40 @@ distdir: $(DISTFILES) || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__post_remove_distdir) + $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) + $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) + $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) + $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__post_remove_distdir) + $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) + $(am__remove_distdir) -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -601,6 +577,8 @@ distcheck: dist GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -612,9 +590,9 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ @@ -646,7 +624,7 @@ distcheck: dist && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__post_remove_distdir) + $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' @@ -780,25 +758,23 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ - cscopelist-recursive ctags-recursive install-am install-strip \ - tags-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-cscope \ - clean-generic cscope cscopelist cscopelist-recursive ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzip \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-generic distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-recursive uninstall uninstall-am + all all-am am--refresh check check-am clean clean-generic \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/configure b/configure index bd90a070184..eb867ade1db 100755 --- a/configure +++ b/configure @@ -4496,6 +4496,391 @@ else fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + # -------------------------------------------------------------- # Check for important type sizes @@ -6223,6 +6608,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${BUILD_TECIO_TRUE}" && test -z "${BUILD_TECIO_FALSE}"; then as_fn_error $? "conditional \"BUILD_TECIO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/configure.ac b/configure.ac index 990bbc04b97..3c029ed2753 100644 --- a/configure.ac +++ b/configure.ac @@ -52,6 +52,7 @@ SU2_SET_COMPILERS AM_PROG_CC_C_O AC_PROG_RANLIB AC_PROG_MKDIR_P +AC_PROG_CXX # -------------------------------------------------------------- # Check for important type sizes From 8e400af9bc73fbd30f7533ee772328eeec1836e7 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 15 Jun 2015 19:03:26 +0100 Subject: [PATCH 014/269] Some initial modifications in the NN interpolation. --- Common/include/config_structure.hpp | 10 +- Common/include/config_structure.inl | 2 + Common/include/dual_grid_structure.hpp | 2 +- Common/include/interpolation_structure.hpp | 6 +- Common/src/config_structure.cpp | 4 + Common/src/dual_grid_structure.cpp | 2 +- Common/src/interpolation_structure.cpp | 291 ++++++++++++++------- SU2_FSI/src/SU2_FSI.cpp | 5 + SU2_FSI/src/iteration_structure_fsi.cpp | 26 +- 9 files changed, 244 insertions(+), 104 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 8a4a6342f24..c6b374827c5 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -726,7 +726,8 @@ class CConfig { Gust_Begin_Loc; /*!< \brief Location at which the gust begins. */ long Visualize_CV; /*!< \brief Node number for the CV to be visualized */ bool ExtraOutput; - bool DeadLoad; /*!< Application of dead loads to the FE analysis */ + bool DeadLoad; /*!< Application of dead loads to the FE analysis */ + bool MatchingMesh; /*!< Matching mesh (while implementing interpolation procedures). */ double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ bool Gradual_Load, /*!< \brief Apply the load gradually. */ @@ -5412,6 +5413,13 @@ class CConfig { bool GetDeadLoad(void); + /*! + * \brief Identifies if the mesh is matching or not (temporary, while implementing interpolation procedures). + * \return TRUE if the mesh is matching, FALSE otherwise. + */ + + bool GetMatchingMesh(void); + /*! * \brief Provides information about the time integration of the structural analysis, and change the write in the output * files information about the iteration. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index c59a7dbb7af..187808a6402 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1195,6 +1195,8 @@ inline double CConfig::GetAitkenDynMaxInit(void) { return AitkenDynMaxInit; } inline bool CConfig::GetDeadLoad(void) { return DeadLoad; } +inline bool CConfig::GetMatchingMesh(void) { return MatchingMesh; } + inline unsigned short CConfig::GetDynamic_Analysis(void) { return Dynamic_Analysis; } inline double CConfig::GetDelta_DynTime(void) { return Delta_DynTime; } diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index bb47be38cad..7a327b2413d 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -1138,7 +1138,7 @@ class CVertex : public CDualGrid { * \brief Allocate memory based on how many donor points need to be stored. * Uses nDonor_Points */ - void Allocate_DonorInfo(void); + void Allocate_DonorInfo(void); }; #include "dual_grid_structure.inl" diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 75f2ec0707a..6f5cf80ae9f 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -59,7 +59,7 @@ class CInterpolator { unsigned short nZone; double ***Data; /*!\brief container for some data to be interpolated */ public: - CGeometry** Geometry; /*! \brief Vector which stores n zones of geometry. */ + CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ /*! * \brief Constructor of the class. @@ -69,7 +69,7 @@ class CInterpolator { /*! * \brief Constructor of the class. */ - CInterpolator(CGeometry **geometry_container, CConfig **config, unsigned short nZone); + CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short nZone); /*! * \brief Destructor of the class. @@ -127,7 +127,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry **geometry_container, CConfig **config, unsigned short nZone); + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short nZone); /*! * \brief Destructor of the class. diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 918f54bee75..09a2130292b 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1205,6 +1205,10 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Maximum number of iterations of the linear solver for the implicit formulation */ addUnsignedLongOption("FSI_LINEAR_SOLVER_ITER_STRUC", Linear_Solver_Iter_FSI_Struc, 500); + /* DESCRIPTION: Apply dead loads + * Options: NO, YES \ingroup Config */ + addBoolOption("MATCHING_MESH", MatchingMesh, true); + /* CONFIG_CATEGORY: FSI solver */ /*--- Options related to the FSI solver ---*/ diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 70b5220dbb3..a1f7ac6ac17 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -509,7 +509,7 @@ void CVertex::AddNormal(double *val_face_normal) { if (nDim == 3) Normal[2] += val_face_normal[2]; } -inline void CVertex::Allocate_DonorInfo(void){ +void CVertex::Allocate_DonorInfo(void){ Donor_Info = new unsigned long*[nDonor_Points]; Donor_Coeff = new double[nDonor_Points]; for (unsigned short iDonor=0; iDonorGetnDim(); +CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short val_nZone){ + unsigned short nDim = geometry_container[ZONE_0][MESH_0]->GetnDim(); /* Store pointers*/ Geometry = geometry_container; nZone = val_nZone; @@ -51,21 +51,21 @@ CInterpolator::CInterpolator(CGeometry **geometry_container, CConfig **config, u //TransferMatrix->Initialize(Geometry,config); /*---Set the values of the transfer matrix---*/ - Set_TransferMatrix(ZONE_0, ZONE_1,config); +// Set_TransferMatrix(ZONE_0, ZONE_1,config); /*--- Initialize Data vectors to 0 ---*/ Data = new double**[val_nZone]; - Data[ZONE_0] = new double*[Geometry[ZONE_0]->GetnPoint()]; - Data[ZONE_1] = new double*[Geometry[ZONE_1]->GetnPoint()]; + Data[ZONE_0] = new double*[Geometry[ZONE_0][MESH_0]->GetnPoint()]; + Data[ZONE_1] = new double*[Geometry[ZONE_1][MESH_0]->GetnPoint()]; - for (unsigned long iPoint =0; iPoint< Geometry[ZONE_0]->GetnPoint(); iPoint++){ + for (unsigned long iPoint =0; iPoint< Geometry[ZONE_0][MESH_0]->GetnPoint(); iPoint++){ Data[ZONE_0][iPoint] = new double[nDim]; for (unsigned short iDim=0; iDimGetnPoint(); iPoint++){ + for (unsigned long iPoint =0; iPoint< Geometry[ZONE_1][MESH_0]->GetnPoint(); iPoint++){ Data[ZONE_1][iPoint] = new double[nDim]; for (unsigned short iDim=0; iDimGetnDim(), jMarker; + unsigned short nDim = Geometry[ZONE_0][MESH_0]->GetnDim(), jMarker; double weight=0.0; /*--- Loop through points, increment Data by the weight in the transfer matrix ---*/ @@ -88,15 +88,15 @@ void CInterpolator::Interpolate_Data(unsigned short iZone_0, unsigned short iZon /*Loop by i then by j to more efficiently call memory*/ for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); - for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ /* Unpack info */ - iZone_1 = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); for (unsigned short iDim=0; iDimGetnDim(); + unsigned short nDim = Geometry[iZone_0][MESH_0]->GetnDim(); /*--- Loop over vertices in the interface marker (zone 0) ---*/ for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); /*--- Set NewCoord to 0 ---*/ for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - iZone_1 = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); /* Get translation and rotation from the solution */ - VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); + VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); // This is a fix so it compiles... But it still needs to be developed. - VarRot[0] = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. - VarRot[1] = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. - VarRot[2] = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + VarRot[0] = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + VarRot[1] = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + VarRot[2] = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. distance[0] = 0.0; distance[1] = 0.0; distance[2] = 0.0; for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1]->node[jPoint]->GetCoord(iDim); + distance[iDim] = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); } /*--- Add contribution of rotation ---*/ if (nDim==2){ @@ -153,7 +153,7 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho } } // Or introduce deformation vector that stores this. - Geometry[iZone_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); + Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } } } @@ -222,88 +222,193 @@ void CInterpolator::SetData(unsigned short iZone, unsigned long iPoint, unsigned /* Nearest Neighbor Interpolator */ -CNearestNeighbor::CNearestNeighbor(CGeometry **geometry_container, CConfig **config, unsigned short nZone) : - CInterpolator(geometry_container, config, nZone){} +CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short nZone) : + CInterpolator(geometry_container, config, nZone){ + + Set_TransferMatrix(ZONE_0, ZONE_1,config); + +} CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex,*nn; unsigned short iMarker, iDim, jMarker; - unsigned short nDim = Geometry[iZone_0]->GetnDim(), iDonor, jDonor; + unsigned short nDim = Geometry[iZone_0][MESH_0]->GetnDim(), iDonor, jDonor; double distance = 0.0, last_distance=-1.0; // double *val = 1.0; unsigned short int donorindex = 0; + unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; + unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; + unsigned short markFEA, markFlow; + + nn = new unsigned long[4]; /*--- Loop through the vertices in Interface of both zones * for Nearest Neighbor each vertex has only one donor point, but for other types of * interpolation the number of donor points must be determined first. ---*/ - for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0]->vertex[iMarker][iVertex]->GetNode(); + + /*--- Number of markers on the FSI interface ---*/ + nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; + + /*--- For the number of markers on the interface... ---*/ + for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + + nMarkerFEA = config[iZone_1]->GetnMarker_All(); + nMarkerFlow = config[iZone_0]->GetnMarker_All(); + + /*--- ... the marker markFEA ... ---*/ + for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ + markFEA=iMarkerFEA; + } + } + /*--- ... corresponds to the marker markFlow. ---*/ + for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ + markFlow=iMarkerFlow; + } + } + + /*--- For the markers on the fluid side ---*/ + /*--- Loop over the vertices on the marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); last_distance=-1.0; /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_0]->vertex[iMarker][iVertex]->SetnDonorPoints(1); - Geometry[iZone_0]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); - /*--- Loop over vertices in the interface marker (zone 1) --*/ - for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ - if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ - for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { - jPoint =Geometry[iZone_1]->vertex[jMarker][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetnDonorPoints(1); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); + /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ + + for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { + jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); + /*--- Enable this to check that we are doing it fine ---*/ +// cout << "The distance from the vertex " << iVertex << " in the Flow marker " << markFlow << " to the vertex " << nn[3] << " in the FEA marker " << markFEA << " is " << last_distance << endl; + /*--- Check what donorindex has to be... Vertex? Node? ---*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); } - } - } - /*--- Do the same for the next zone ---*/ - for (iMarker = 0; iMarker < config[iZone_1]->GetnMarker_All(); iMarker++){ - if (config[iZone_1]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_1]->vertex[iMarker][iVertex]->GetNode(); + + /*--- For the marker on the FEA side ---*/ + /*--- Loop over the vertices on the marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { + iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); last_distance=-1.0; /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_1]->vertex[iMarker][iVertex]->SetnDonorPoints(1); - Geometry[iZone_1]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); - /*--- Loop over vertices in the interface marker (zone 1) --*/ - for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ - if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ - for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { - jPoint =Geometry[iZone_1]->vertex[jMarker][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_1]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[markFEA][iVertex]->SetnDonorPoints(1); + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); + + /*--- Loop over vertices in the interface marker (zone 0) --*/ + + for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { + jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_1]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); + /*--- Enable this to check that we are doing it fine ---*/ +// cout << "The distance from the vertex " << iVertex << " in the FEA marker " << markFEA << " to the vertex " << nn[3] << " in the Flow marker " << markFlow << " is " << last_distance << endl; + /*--- Check what donorindex has to be... Vertex? Node? ---*/ +// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); } - } - } + + } + +// for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ +// if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ +// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { +// iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); +// last_distance=-1.0; +// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ +// Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetnDonorPoints(1); +// Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); +// /*--- Loop over vertices in the interface marker (zone 1) --*/ +// for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ +// if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ +// for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { +// jPoint =Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetNode(); +// distance = 0.0; +// for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); +// if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); +// } +// } +// } +// /*--- Do the same for the next zone ---*/ +// for (iMarker = 0; iMarker < config[iZone_1]->GetnMarker_All(); iMarker++){ +// if (config[iZone_1]->GetMarker_All_FSIinterface(iMarker) == YES){ +// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { +// iPoint =Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->GetNode(); +// last_distance=-1.0; +// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ +// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetnDonorPoints(1); +// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); +// /*--- Loop over vertices in the interface marker (zone 1) --*/ +// for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ +// if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ +// for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { +// jPoint =Geometry[iZone_0][MESH_0]->vertex[jMarker][jVertex]->GetNode(); +// distance = 0.0; +// for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); +// if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); +// } +// } +// } } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index ebc5231e107..b9c377800c8 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -71,6 +71,7 @@ int main(int argc, char *argv[]) { CSurfaceMovement **surface_movement = NULL; CVolumetricMovement **grid_movement = NULL; CFreeFormDefBox*** FFDBox = NULL; + CInterpolator **interpolator_container= NULL; /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config file is specified, default.cfg is used) ---*/ @@ -98,6 +99,7 @@ int main(int argc, char *argv[]) { surface_movement = new CSurfaceMovement*[nZone]; grid_movement = new CVolumetricMovement*[nZone]; FFDBox = new CFreeFormDefBox**[nZone]; + interpolator_container= new CInterpolator*[nZone]; for (iZone = 0; iZone < nZone; iZone++) { solver_container[iZone] = NULL; @@ -108,6 +110,7 @@ int main(int argc, char *argv[]) { surface_movement[iZone] = NULL; grid_movement[iZone] = NULL; FFDBox[iZone] = NULL; + interpolator_container[iZone] = NULL; } /*--- Loop over all zones to initialize the various classes. In most @@ -255,6 +258,8 @@ int main(int argc, char *argv[]) { } + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,iZone); + /*--- For the time-spectral solver, set the grid node velocities. ---*/ if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 5181a8f109e..a65433722b9 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -385,11 +385,18 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); + /*--- Displacement transfer -- This will have to be modified for non-matching meshes ---*/ - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); + if (MatchingMesh){ + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + } + else{ + cout << "NonMatchingMesh" << endl; + } } @@ -400,6 +407,8 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned long ExtIter){ + bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); + /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); @@ -408,8 +417,15 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C config_container[ZONE_1]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + if (MatchingMesh){ + + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + + } + else{ + cout << "NonMatchingMesh" << endl; + } } From 921816bd1bb4bcb420a5bf4df3fc7a4f60220e20 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 15 Jun 2015 11:29:15 -0700 Subject: [PATCH 015/269] small fixes to interpolation --- Common/include/dual_grid_structure.hpp | 8 ++++++++ Common/include/dual_grid_structure.inl | 2 ++ Common/lib/Makefile.am | 10 +++++----- Common/src/interpolation_structure.cpp | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index bb47be38cad..54010bc0e96 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -875,6 +875,7 @@ class CVertex : public CDualGrid { double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */ double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */ double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */ + double VarRot[3]; /*!< \brief Used for storing the rotation variation due to a surface modification. */ long PeriodicPoint[2]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ @@ -1139,6 +1140,13 @@ class CVertex : public CDualGrid { * Uses nDonor_Points */ void Allocate_DonorInfo(void); + + /*! + * \brief Get the rotation variation + * \return - pointer to the vector defining the rotation + */ + double* getVarRot(void); + }; #include "dual_grid_structure.inl" diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 71b6d8e0b61..17bcca48398 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -349,3 +349,5 @@ inline double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[ inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} + +inline double* CVertex::getVarRot(void) {return VarRot;} diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index 4206beebdf1..df006a819b2 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -39,7 +39,7 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} noinst_LIBRARIES = libSU2.a libSU2_a_SOURCES = \ - ../include/config_structure.hpp \ + ../include/config_structure.hpp \ ../include/config_structure.inl \ ../include/dual_grid_structure.hpp \ ../include/dual_grid_structure.inl \ @@ -56,9 +56,9 @@ libSU2_a_SOURCES = \ ../include/primal_grid_structure.inl \ ../include/vector_structure.hpp \ ../include/vector_structure.inl \ - ../include/matrix_structure.hpp \ - ../include/matrix_structure.inl \ - ../include/su2mpi.hpp \ + ../include/matrix_structure.hpp \ + ../include/matrix_structure.inl \ + ../include/su2mpi.hpp \ ../include/interpolation_structure.hpp \ ../src/config_structure.cpp \ ../src/dual_grid_structure.cpp \ @@ -67,7 +67,7 @@ libSU2_a_SOURCES = \ ../src/grid_movement_structure.cpp \ ../src/linear_solvers_structure.cpp \ ../src/primal_grid_structure.cpp \ - ../src/vector_structure.cpp \ + ../src/vector_structure.cpp \ ../src/matrix_structure.cpp \ ../src/su2mpi.cpp\ ../src/interpolation_structure.cpp diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 86c97605bc2..fedc7e97b4d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -130,7 +130,7 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho weight = Geometry[iZone_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); /* Get translation and rotation from the solution */ VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); - VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetAuxVar(); // Use Aux var to store rotation vector. + VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarRot(); distance = {0.0,0.0,0.0}; for (iDim=0; iDim Date: Mon, 15 Jun 2015 14:52:56 -0700 Subject: [PATCH 016/269] removed interpolate_soln (use interpolate_data instead), changed name of Set_TransferMatrix to Set_TransferCoeff, added VarRot container to vertex --- Common/include/dual_grid_structure.hpp | 9 +- Common/include/dual_grid_structure.inl | 7 +- Common/include/interpolation_structure.hpp | 14 +- Common/src/dual_grid_structure.cpp | 6 + Common/src/interpolation_structure.cpp | 231 +++++---------------- 5 files changed, 77 insertions(+), 190 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index e0b64bb3987..62eadaa1f95 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -875,7 +875,7 @@ class CVertex : public CDualGrid { double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */ double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */ double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */ - double VarRot[3]; /*!< \brief Used for storing the rotation variation due to a surface modification. */ + double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */ long PeriodicPoint[2]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ @@ -1145,8 +1145,13 @@ class CVertex : public CDualGrid { * \brief Get the rotation variation * \return - pointer to the vector defining the rotation */ - double* getVarRot(void); + double *GetVarRot(void); + /*! + * \brief Set the rotation variation + * \return - pointer to the vector defining the rotation + */ + void SetVarRot(double* val); }; diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 17bcca48398..a18778c546c 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -350,4 +350,9 @@ inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} -inline double* CVertex::getVarRot(void) {return VarRot;} +inline double *CVertex::GetVarRot(void) {return VarRot;} + +inline void CVertex::SetVarRot(double* val) { + for (unsigned short iDim = 0; iDim < nDim; iDim++) + VarRot[iDim] = val[iDim]; +} diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 6f5cf80ae9f..e20ec16b0f3 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -86,20 +86,10 @@ class CInterpolator { */ void Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); - /*! - * \brief interpolate data stored in the solution containers of two zones. - * Assumes that the data are of the format, aka two CFD solutions with the same nondimensionalization. - * Data in the solution container of the nodes in the interface of iZone_dest will be overwritten. - * \param[in] iZone_dest - The zone which will be receiving the interpolated solution - * \param[in] config - configuration information container - * \param[in] solver_container - solution container. - */ -// void Interpolate_Solution(unsigned short iZone_dest, CConfig **config, CSolver **solver_container); - /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Set_TransferCoeff(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); /*! @@ -137,6 +127,6 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Set_TransferCoeff(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); }; diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index a1f7ac6ac17..4f304caf79f 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -452,6 +452,9 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v /*--- Set to zero the variation of the coordinates ---*/ VarCoord[0] = 0.0; VarCoord[1] = 0.0; VarCoord[2] = 0.0; + /*--- Set to NULL variation of the rotation ---*/ + VarRot = NULL; + /*--- Set to NULL donor arrays for interpolation ---*/ Donor_Info = NULL; Donor_Coeff = NULL; @@ -469,6 +472,9 @@ CVertex::~CVertex() { delete[] Donor_Info[iDonor]; if (Donor_Coeff != NULL) delete[] Donor_Coeff; + if (VarRot!=NULL) + delete[] VarRot; + } diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index d33ee7136f7..38aef2c2326 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -44,15 +44,6 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, Geometry = geometry_container; nZone = val_nZone; - - /*--- Set matching between zones ---*/ - //TransferMatrix = new CSysTransferMatrix(); - /*---Create Transfer Matrix, find nearest neighbors, initialize memory---*/ - //TransferMatrix->Initialize(Geometry,config); - - /*---Set the values of the transfer matrix---*/ -// Set_TransferMatrix(ZONE_0, ZONE_1,config); - /*--- Initialize Data vectors to 0 ---*/ Data = new double**[val_nZone]; Data[ZONE_0] = new double*[Geometry[ZONE_0][MESH_0]->GetnPoint()]; @@ -71,10 +62,6 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, Data[ZONE_1][iPoint][iDim]=0.0; } } - - - - } @@ -129,8 +116,8 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); /* Get translation and rotation from the solution */ - VarCoord = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarCoord(); - VarRot = Geometry[iZone_1]->vertex[jMarker][jVertex]->GetVarRot(); + VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); + VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); } - /*--- Add contribution of rotation ---*/ + /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ if (nDim==2){ NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); @@ -160,39 +147,7 @@ void CInterpolator::Interpolate_Deformation(unsigned short iZone_0, unsigned sho } -//void CInterpolator::Interpolate_Solution( unsigned short iZone_dest, CConfig **config, CSolver **solver_container){ -// unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; -// unsigned short jMarker, iZone_source, nVar = solver_container[iZone_dest]->GetnVar(); -// double weight=0.0, dest_val=0.0, src_val=0.0; -// /*--- Loop through the interface vertices in the destination zone ---*/ -// for (iMarker = 0; iMarker < config[iZone_dest]->GetnMarker_All(); iMarker++){ -// if (config[iZone_dest]->GetMarker_All_FSIinterface(iMarker) == YES){ -// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { -// /*--- Set the values at the interface point to 0 initially ---*/ -// iPoint =Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetNode(); -// for (unsigned short iVar=0; iVarnode[iPoint]->SetSolution(iVar,0.0); -// /*--- Loop through donor points ---*/ -// for (unsigned short jDonor = 0; jDonor< Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ -// /*--- unpack Donor Point info ---*/ -// iZone_source = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); -// jPoint = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); -// weight = Geometry[iZone_dest]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); -// for (unsigned short iVar=0; iVarnode[iPoint]->GetSolution(iVar); -// dest_val+=solver_container[iZone_source]->node[jPoint]->GetSolution(iVar)*weight; -// /*--- Set the value in the solution container ---*/ -// solver_container[iZone_dest]->node[iPoint]->SetSolution(iVar,dest_val); -// } -// } -// } -// } -// } -//} - - -void CInterpolator::Set_TransferMatrix(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ +void CInterpolator::Set_TransferCoeff(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ cout<<"base class set transfer matrix: all zeros, no interpolation will be done."<GetnDim(), iDonor, jDonor; double distance = 0.0, last_distance=-1.0; -// double *val = 1.0; + unsigned short int donorindex = 0; unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; @@ -268,144 +223,70 @@ void CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short /*--- For the markers on the fluid side ---*/ /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); - last_distance=-1.0; - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(1); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); - /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ + for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); + last_distance=-1.0; + /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(1); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); + /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { - jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[markFEA][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); - } + cout << "The distance from the vertex " << iVertex << " in the Flow marker " << markFlow << " to the vertex " << nn[3] << " in the FEA marker " << markFEA << " is " << last_distance << endl; - /*--- For the marker on the FEA side ---*/ - /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { - iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); - last_distance=-1.0; - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetnDonorPoints(1); - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); + } + + /*--- For the marker on the FEA side ---*/ + /*--- Loop over the vertices on the marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { + iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); + last_distance=-1.0; + /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetnDonorPoints(1); + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); - /*--- Loop over vertices in the interface marker (zone 0) --*/ + /*--- Loop over vertices in the interface marker (zone 0) --*/ for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { - jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[markFlow][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); - } + cout << "The distance from the vertex " << iVertex << " in the FEA marker " << markFEA << " to the vertex " << nn[3] << " in the Flow marker " << markFlow << " is " << last_distance << endl; + Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); + } } -// for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ -// if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ -// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { -// iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); -// last_distance=-1.0; -// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ -// Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetnDonorPoints(1); -// Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); -// /*--- Loop over vertices in the interface marker (zone 1) --*/ -// for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ -// if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ -// for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { -// jPoint =Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetNode(); -// distance = 0.0; -// for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); -// if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); -// } -// } -// } -// /*--- Do the same for the next zone ---*/ -// for (iMarker = 0; iMarker < config[iZone_1]->GetnMarker_All(); iMarker++){ -// if (config[iZone_1]->GetMarker_All_FSIinterface(iMarker) == YES){ -// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { -// iPoint =Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->GetNode(); -// last_distance=-1.0; -// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ -// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetnDonorPoints(1); -// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->Allocate_DonorInfo(); -// /*--- Loop over vertices in the interface marker (zone 1) --*/ -// for (jMarker = 0; jMarker < config[iZone_1]->GetnMarker_All(); jMarker++){ -// if (config[iZone_1]->GetMarker_All_FSIinterface(jMarker) == YES){ -// for (jVertex = 0; jVertexGetnVertex(jMarker); jVertex++) { -// jPoint =Geometry[iZone_0][MESH_0]->vertex[jMarker][jVertex]->GetNode(); -// distance = 0.0; -// for (iDim=0; iDimvertex[jMarker][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim),2.0); -// if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); -// } -// } -// } } From e9883c87387df1e4d315a8c3b09f3fef9cc79de4 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 15 Jun 2015 15:06:34 -0700 Subject: [PATCH 017/269] alterations to base CInterpolator class: zone order not hardcoded, transfer coefficients initialized --- Common/include/interpolation_structure.hpp | 4 +- Common/src/interpolation_structure.cpp | 126 +++++++++++---------- SU2_FSI/src/SU2_FSI.cpp | 2 +- 3 files changed, 67 insertions(+), 65 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index e20ec16b0f3..a79d55ca217 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -69,7 +69,7 @@ class CInterpolator { /*! * \brief Constructor of the class. */ - CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short nZone); + CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1, unsigned short nZone); /*! * \brief Destructor of the class. @@ -117,7 +117,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short nZone); + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1,unsigned short nZone); /*! * \brief Destructor of the class. diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 38aef2c2326..485ed6a63e8 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -38,58 +38,63 @@ CInterpolator::CInterpolator(void){ CInterpolator::~CInterpolator(void){} -CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short val_nZone){ - unsigned short nDim = geometry_container[ZONE_0][MESH_0]->GetnDim(); +CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1, unsigned short val_nZone){ + unsigned short nDim = geometry_container[zone0][MESH_0]->GetnDim(); /* Store pointers*/ Geometry = geometry_container; nZone = val_nZone; + /*--- Initialize transfer coefficients between the zones ---*/ + Set_TransferCoeff(zone0,zone1,config); + + /*--- Initialize Data vectors to 0 ---*/ Data = new double**[val_nZone]; - Data[ZONE_0] = new double*[Geometry[ZONE_0][MESH_0]->GetnPoint()]; - Data[ZONE_1] = new double*[Geometry[ZONE_1][MESH_0]->GetnPoint()]; + Data[zone0] = new double*[Geometry[zone0][MESH_0]->GetnPoint()]; + Data[zone1] = new double*[Geometry[zone1][MESH_0]->GetnPoint()]; - for (unsigned long iPoint =0; iPoint< Geometry[ZONE_0][MESH_0]->GetnPoint(); iPoint++){ - Data[ZONE_0][iPoint] = new double[nDim]; + for (unsigned long iPoint =0; iPoint< Geometry[zone0][MESH_0]->GetnPoint(); iPoint++){ + Data[zone0][iPoint] = new double[nDim]; for (unsigned short iDim=0; iDimGetnPoint(); iPoint++){ - Data[ZONE_1][iPoint] = new double[nDim]; + for (unsigned long iPoint =0; iPoint< Geometry[zone1][MESH_0]->GetnPoint(); iPoint++){ + Data[zone1][iPoint] = new double[nDim]; for (unsigned short iDim=0; iDimGetnDim(), jMarker; + unsigned short nDim = Geometry[iZone_0][MESH_0]->GetnDim(), jMarker; double weight=0.0; /*--- Loop through points, increment Data by the weight in the transfer matrix ---*/ /*Loop by i then by j to more efficiently call memory*/ for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); - for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - /* Unpack info */ - iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); - for (unsigned short iDim=0; iDimGetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); + for (unsigned short jDonor = 0; jDonor< Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + /* Unpack info */ + iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + for (unsigned short iDim=0; iDimGetnDim(); /*--- Loop over vertices in the interface marker (zone 0) ---*/ for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); - /*--- Set NewCoord to 0 ---*/ - for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); - /* Get translation and rotation from the solution */ - VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); - VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); - - for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); - } - /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ - if (nDim==2){ - NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); - NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); - } - if (nDim==3){ - NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); - NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); - NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); - } + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); + /*--- Set NewCoord to 0 ---*/ + for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + /* Get translation and rotation from the solution */ + VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); + VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); + + for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); + } + /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ + if (nDim==2){ + NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); + NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); + } + if (nDim==3){ + NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); + NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); + NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); } - // Or introduce deformation vector that stores this. - Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } + // Or introduce deformation vector that stores this. + Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } + } } // must be called later: @@ -174,10 +179,7 @@ void CInterpolator::SetData(unsigned short iZone, unsigned long iPoint, unsigned /* Nearest Neighbor Interpolator */ -CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short nZone) : - CInterpolator(geometry_container, config, nZone){ - - Set_TransferCoeff(ZONE_0, ZONE_1,config); +CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1,unsigned short nZone) : CInterpolator(geometry_container, config, zone0,zone1,nZone){ } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index b9c377800c8..64ebb32fa2d 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -258,7 +258,7 @@ int main(int argc, char *argv[]) { } - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,iZone); + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,ZONE_0,ZONE_1,nZone); /*--- For the time-spectral solver, set the grid node velocities. ---*/ From c3f8f676d3bba0687a39a92abd5503cabc216618 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 15 Jun 2015 16:17:43 -0700 Subject: [PATCH 018/269] shifting data container initialization outside base interpolator constructor, changed some variable names --- Common/include/interpolation_structure.hpp | 11 ++++- Common/src/interpolation_structure.cpp | 56 ++++++++++++++-------- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index a79d55ca217..2afec1c43ee 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -69,13 +69,18 @@ class CInterpolator { /*! * \brief Constructor of the class. */ - CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1, unsigned short nZone); + CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short iZone_0,unsigned short iZone_1, unsigned short nZone); /*! * \brief Destructor of the class. */ ~CInterpolator(void); + /*! + * \brief initialize the Data structure to the appropriate size. + */ + void InitializeData(unsigned short iZone_0, unsigned short iZone_1, unsigned short nVar); + /*! * \brief interpolate Data from one mesh to another */ @@ -108,6 +113,8 @@ class CInterpolator { void SetData(unsigned short iZone, unsigned long iPoint, unsigned short iDim, double val); + + }; @@ -117,7 +124,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1,unsigned short nZone); + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short iZone_0,unsigned short iZone_1,unsigned short nZone); /*! * \brief Destructor of the class. diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 485ed6a63e8..bb586290e9e 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -38,33 +38,44 @@ CInterpolator::CInterpolator(void){ CInterpolator::~CInterpolator(void){} -CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short zone0,unsigned short zone1, unsigned short val_nZone){ - unsigned short nDim = geometry_container[zone0][MESH_0]->GetnDim(); +CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short iZone_0,unsigned short iZone_1, unsigned short val_nZone){ + /* Store pointers*/ Geometry = geometry_container; nZone = val_nZone; - /*--- Initialize transfer coefficients between the zones ---*/ - Set_TransferCoeff(zone0,zone1,config); + /*--- Initialize transfer coefficients between the zones ---*/ + /* For all child classes, run Set_TransferCoeff within the constructor */ + // Set_TransferCoeff(iZone_0,iZone_1,config); + /*--- Initialize Data vectors to 0, by default with length = nDim ---*/ + //InitializeData(iZone_0,iZone_1,nDim); + Data = NULL; - /*--- Initialize Data vectors to 0 ---*/ - Data = new double**[val_nZone]; - Data[zone0] = new double*[Geometry[zone0][MESH_0]->GetnPoint()]; - Data[zone1] = new double*[Geometry[zone1][MESH_0]->GetnPoint()]; +} - for (unsigned long iPoint =0; iPoint< Geometry[zone0][MESH_0]->GetnPoint(); iPoint++){ - Data[zone0][iPoint] = new double[nDim]; - for (unsigned short iDim=0; iDim0){ + /*--- Initialize Data vectors to 0 ---*/ + Data = new double**[nZone]; + Data[iZone_0] = new double*[Geometry[iZone_0][MESH_0]->GetnPoint()]; + Data[iZone_1] = new double*[Geometry[iZone_1][MESH_0]->GetnPoint()]; + + for (unsigned long iPoint =0; iPoint< Geometry[iZone_0][MESH_0]->GetnPoint(); iPoint++){ + Data[iZone_0][iPoint] = new double[nVar]; + for (unsigned short iVar=0; iVarGetnPoint(); iPoint++){ - Data[zone1][iPoint] = new double[nDim]; - for (unsigned short iDim=0; iDimGetnPoint(); iPoint++){ + Data[iZone_1][iPoint] = new double[nVar]; + for (unsigned short iVar=0; iVarGetnDim(); + /*--- Initialize transfer coefficients between the zones ---*/ + Set_TransferCoeff(iZone_0,iZone_1,config); + /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ + InitializeData(iZone_0,iZone_1,nDim); } CNearestNeighbor::~CNearestNeighbor(){} @@ -236,7 +252,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned short iZone_0, unsigned short for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); distance = 0.0; - for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distance Date: Tue, 16 Jun 2015 09:21:17 -0700 Subject: [PATCH 019/269] zones as inputs to interpolator rather than assumed ZONE_0, ZONE_1, corrections to transfer coeff in nearest neighbor --- Common/include/dual_grid_structure.inl | 4 ++- Common/src/interpolation_structure.cpp | 36 +++++++++++--------------- SU2_FSI/src/SU2_FSI.cpp | 3 ++- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index a18778c546c..6d8e8b9e0d0 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -338,7 +338,9 @@ inline void CVertex::SetNormal_Neighbor(unsigned long val_Normal_Neighbor) { Nor inline void CVertex::IncrementnDonor(void){nDonor_Points++;} -inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long*val){ for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; } +inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long *val){ + for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; +} inline void CVertex::SetDonorCoeff(unsigned short iDonor, double val){ Donor_Coeff[iDonor] = val; } diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index bb586290e9e..239be0c4987 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -256,10 +256,10 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned short iZone_0, unsigned short distance+=pow(Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancevertex[markFEA][iVertex]->SetnDonorPoints(1); Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); - /*--- Loop over vertices in the interface marker (zone 0) --*/ - + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); distance = 0.0; - for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); + /*--- Set the information of the nearest neighbor ---*/ + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); } - } - - } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 64ebb32fa2d..50c20fe1412 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -258,7 +258,8 @@ int main(int argc, char *argv[]) { } - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,ZONE_0,ZONE_1,nZone); + if (!config_container[ZONE_0]->GetMatchingMesh()) + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,ZONE_0,ZONE_1,nZone); /*--- For the time-spectral solver, set the grid node velocities. ---*/ From f633feebd83df76917a6d2b67628b4b7b09ba179 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 16 Jun 2015 09:55:03 -0700 Subject: [PATCH 020/269] removed check print statements --- Common/src/interpolation_structure.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 239be0c4987..79523b8342e 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -265,7 +265,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned short iZone_0, unsigned short /*--- Set the information of the nearest neighbor (donorindex = 0) ---*/ /*--- Enable this to check that we are doing it fine ---*/ - cout << "The distance from the vertex " << iVertex << " in the Flow marker " << markFlow << " to the vertex " << nn[3] << " in the FEA marker " << markFEA << " is " << last_distance << endl; + //cout << "The distance from the vertex " << iVertex << " in the Flow marker " << markFlow << " to the vertex " << nn[3] << " in the FEA marker " << markFEA << " is " << last_distance << endl; Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); @@ -294,7 +294,8 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned short iZone_0, unsigned short nn[3] = jVertex; /* vertex index within marker of the donor point */ } } - cout << "The distance from the vertex " << iVertex << " in the FEA marker " << markFEA << " to the vertex " << nn[3] << " in the Flow marker " << markFlow << " is " << last_distance << endl; + /*--- Enable this to check that we are doing it fine ---*/ + //cout << "The distance from the vertex " << iVertex << " in the FEA marker " << markFEA << " to the vertex " << nn[3] << " in the Flow marker " << markFlow << " is " << last_distance << endl; /*--- Set the information of the nearest neighbor ---*/ Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); From 18b3bd4dac7ad9cb2306ca96e2c567bcc1062a04 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 17 Jun 2015 11:22:07 +0100 Subject: [PATCH 021/269] Updates for load transfer in non-matching FSI. --- Common/src/interpolation_structure.cpp | 4 +- SU2_CFD/include/solver_structure.hpp | 22 ++- SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/src/solver_direct_elasticity.cpp | 238 +++++++++++++++++++++++ SU2_FSI/src/iteration_structure_fsi.cpp | 4 +- 5 files changed, 265 insertions(+), 5 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index ab946107532..864590a4b08 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -332,8 +332,8 @@ void CNearestNeighbor::Set_TransferMatrix(unsigned short iZone_0, unsigned short /*--- Enable this to check that we are doing it fine ---*/ // cout << "The distance from the vertex " << iVertex << " in the FEA marker " << markFEA << " to the vertex " << nn[3] << " in the Flow marker " << markFlow << " is " << last_distance << endl; /*--- Check what donorindex has to be... Vertex? Node? ---*/ -// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[iZone_1][MESH_0]->vertex[iMarker][iVertex]->SetDonorCoeff(donorindex,1.0); + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); + Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); } } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 93b53809dcc..dfa5bba455e 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2086,6 +2086,16 @@ class CSolver { virtual void SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); + + /*! + * \brief A virtual member. + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] flow_solution - Container vector with all the solutions. + * \param[in] fea_config - Definition of the particular problem. + */ + virtual void SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, + CGeometry **flow_geometry, CConfig *fea_config, + CConfig *flow_config, CNumerics *fea_numerics); /*! * \brief A virtual member. @@ -6280,13 +6290,21 @@ class CFEASolver : public CSolver { void GetSurface_Pressure(CGeometry *geometry, CConfig *config); /*! - * \brief Set the the pressure load in the FEA solver. + * \brief Set the the tractions in the in the FEA solver (matching mesh). * \param[in] fea_geometry - Geometrical definition of the problem. * \param[in] flow_solution - Container vector with all the solutions. * \param[in] fea_config - Definition of the particular problem. */ void SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); - + + /*! + * \brief Set the the tractions in the in the FEA solver (non-matching mesh). + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] flow_solution - Container vector with all the solutions. + * \param[in] fea_config - Definition of the particular problem. + */ + void SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); + /*! * \brief Set the initial condition for the FEA Equations. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 6ac5185cdea..7463d441892 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -64,6 +64,8 @@ inline void CSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *confi inline void CSolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { } +inline void CSolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { } + inline void CSolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { } inline void CSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { } diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 86efeb0a0cd..b4e69c5506e 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2147,6 +2147,244 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, } +void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, + CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { + + + unsigned short nVertexFEA, nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; + unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; + unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; + unsigned long *nodeVertex, *donorVertex; + double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; + double factorForces; + double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; + + double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; + + bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); +// bool freesurface = (flow_config->GetKind_Regime() == FREESURFACE); + + bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || + (flow_config->GetKind_Solver() == RANS) ); + + double Pinf; + + + double ModAmpl; + double CurrentTime=fea_config->GetCurrent_DynTime(); + double Static_Time=fea_config->GetStatic_Time(); + + bool Ramp_Load = fea_config->GetRamp_Load(); + double Ramp_Time = fea_config->GetRamp_Time(); + + if (CurrentTime <= Static_Time){ + ModAmpl=0.0; + } + else if((CurrentTime > Static_Time) && + (CurrentTime <= (Static_Time + Ramp_Time)) && + (Ramp_Load)){ + ModAmpl=(CurrentTime-Static_Time)/Ramp_Time; + ModAmpl=max(ModAmpl,0.0); + ModAmpl=min(ModAmpl,1.0); + } + else{ + ModAmpl=1.0; + } + + /*--- Number of markers in the FSI interface ---*/ + nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; + + /*--- Initialization of vectors of residuals ---*/ + /*--- WATCH OUT! This Shouldn't be here I think... For the dead load */ + + for (iPoint = 0; iPoint < fea_geometry[MESH_0]->GetnPoint(); iPoint ++) { + LinSysRes.SetBlock_Zero(iPoint); + } + + /*--- Redimensionalize the pressure ---*/ + + Velocity_Real = flow_config->GetVelocity_FreeStream(); + Density_Real = flow_config->GetDensity_FreeStream(); + + Velocity_ND = flow_config->GetVelocity_FreeStreamND(); + Density_ND = flow_config->GetDensity_FreeStreamND(); + + + Velocity2_Real = 0.0; + Velocity2_ND = 0.0; + for (iDim = 0; iDim < nDim; iDim++){ + Velocity2_Real += Velocity_Real[iDim]*Velocity_Real[iDim]; + Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; + } + + Velocity_Ref = flow_config->GetVelocity_Ref(); + Viscosity_Ref = flow_config->GetViscosity_Ref(); + Density_Ref = flow_solution[MESH_0][FLOW_SOL]->GetDensity_Inf(); + Pressure_Ref = flow_config->GetPressure_Ref(); + + factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); + + /*--- Loop over all the markers on the interface ---*/ + + for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + + nMarkerFEA=fea_geometry[MESH_0]->GetnMarker(); + nMarkerFlow=flow_geometry[MESH_0]->GetnMarker(); + + /*--- Identification of the markers ---*/ + + for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ + markFEA=iMarkerFEA; + } + } + + for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ + markFlow=iMarkerFlow; + } + } + + + nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); + nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); + + nodeVertex = new unsigned long [nVertexFlow]; + donorVertex = new unsigned long [nVertexFlow]; + + tn_e = new double [nVar*nDim]; + + tn_f = new double* [nVertexFlow]; + for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { + tn_f[iVertex] = new double[nDim]; + } + + normalsVertex = new double* [nVertexFlow]; + for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { + normalsVertex[iVertex] = new double[nDim]; + } + + normalsVertex_Unit = new double* [nVertexFlow]; + for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { + normalsVertex_Unit[iVertex] = new double[nDim]; + } + + double **Grad_PrimVar; + double Viscosity = 0.0, Density = 0.0; + double Tau[3][3]; + double div_vel, Delta; + double Area; + double Pn; + + /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ + /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ + for (iVertex=0; iVertex < nVertexFlow; iVertex++){ + + // Node from the flow mesh + nodeVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); + + // Normals at the vertex: these normals go inside the fluid domain. + normalsVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); + + // Unit normals + Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) { + Area += normalsVertex[iVertex][iDim]*normalsVertex[iVertex][iDim]; + } + Area = sqrt(Area); + + for (iDim = 0; iDim < nDim; iDim++) { + normalsVertex_Unit[iVertex][iDim] = normalsVertex[iVertex][iDim]/Area; + } + + // Corresponding node on the structural mesh + // donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); + donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorInfo(0,1); // If point + //donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorInfo(0,3); // If vertex + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressureInc(); + Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosityInc(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetDensityInc(); + + } + } + else if (compressible){ + + Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressure(); + Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosity(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetDensity(); + + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iVertex][iDim] = -(Pn-Pinf)*normalsVertex[iVertex][iDim]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Delta = 0.0; if (iDim == jDim) Delta = 1.0; + + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Delta; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iVertex][iDim] += Tau[iDim][jDim]*normalsVertex[iVertex][jDim]; + } + } + } + + // Rescale tn to SI units + + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iVertex][iDim] = tn_f[iVertex][iDim]*factorForces; + } + + // Apply time-dependent coefficient (static structure, ramp load, full load) + + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iVertex][iDim] = tn_f[iVertex][iDim]*ModAmpl; + } + + // This works only for matching meshes + + for (iDim=0; iDim < nDim; iDim++){ + Residual[iDim]=tn_f[iVertex][iDim]; + } + + LinSysRes.AddBlock(donorVertex[iVertex], Residual); + + } + + } + +} + void CFEASolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index a65433722b9..680c3385b44 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -424,7 +424,9 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C } else{ - cout << "NonMatchingMesh" << endl; + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } From 23da9f917a2177220fecbdf9b9302aa060c1c989 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 23 Jun 2015 10:11:24 +0100 Subject: [PATCH 022/269] Some changes for running FSI with NN interpolation. --- SU2_CFD/include/solver_structure.hpp | 23 +++++++++++++ SU2_CFD/include/solver_structure.inl | 2 ++ SU2_CFD/src/solver_direct_mean.cpp | 44 +++++++++++++++++++++++++ SU2_FSI/src/iteration_structure_fsi.cpp | 5 ++- 4 files changed, 73 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index dfa5bba455e..e372d542489 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2135,6 +2135,19 @@ class CSolver { CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution); + + /*! + * \brief A virtual member. + * \param[in] flow_geometry - Geometrical definition of the problem. + * \param[in] flow_grid_movement - Geometrical definition of the problem. + * \param[in] flow_config - Geometrical definition of the problem. + * \param[in] fea_geometry - Definition of the particular problem. + */ + virtual void SetFlow_Displacement_Int(CGeometry **flow_geometry, + CVolumetricMovement *flow_grid_movement, + CConfig *flow_config, CConfig *fea_config, + CGeometry **fea_geometry, + CSolver ***fea_solution); /*! * \brief A virtual member. @@ -3706,6 +3719,16 @@ class CEulerSolver : public CSolver { */ void SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution); + + /*! + * \brief A virtual member. + * \param[in] flow_geometry - Geometrical definition of the problem. + * \param[in] flow_grid_movement - Geometrical definition of the problem. + * \param[in] flow_config - Geometrical definition of the problem. + * \param[in] fea_geometry - Definition of the particular problem. + */ + void SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, + CGeometry **fea_geometry, CSolver ***fea_solution); /*! * \brief Load a solution from a restart file. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 7463d441892..9e12768f5e0 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -73,6 +73,8 @@ inline void CSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver inline void CSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter) { } inline void CSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { } + +inline void CSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { } inline void CSolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index a91b3a672fc..a55b8bf6d2d 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -10027,6 +10027,50 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo // } +void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, + CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { + unsigned short iMarker, iDim; + unsigned long iVertex, iPoint; + double *Coord, VarCoord[3]; + + unsigned long iPoint_Donor; + double *CoordDonor, *DisplacementDonor, *DisplacementDonor_Prev; + + for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { + + if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { + + for(iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + + iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + + iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(0,1); + +// Coord = flow_geometry[MESH_0]->node[iPoint]->GetCoord(); + +// CoordDonor = fea_geometry[MESH_0]->node[iPoint_Donor]->GetCoord(); + + /*--- The displacements come from the predicted solution ---*/ + DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); + + DisplacementDonor_Prev = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred_Old(); + + for (iDim = 0; iDim < nDim; iDim++) + + VarCoord[iDim] = DisplacementDonor[iDim] - DisplacementDonor_Prev[iDim]; + +//TODO Double check this to make sure the coordinates are updated as they should be + + //VarCoord[iDim] = (CoordDonor[iDim]+DisplacementDonor[iDim])-Coord[iDim]; + + flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); + } + } + } + flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); + +} + void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter) { /*--- Restart the solution from file information ---*/ diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 680c3385b44..774cc09dddf 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -395,7 +395,10 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C geometry_container[ZONE_1], solver_container[ZONE_1]); } else{ - cout << "NonMatchingMesh" << endl; + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + } From 4836264a0461c693121100c0717697779fbb2824 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 26 Jun 2015 15:24:10 +0100 Subject: [PATCH 023/269] Modified ignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ae9ac9ac98c..372f1b7a504 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ go.sh log_make.txt log_make_install.txt SU2_FSI/bin/SU2_FSI +SU2_FEM From 619ab19f33ebac08602042c707900f96afe25df5 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 30 Jun 2015 08:51:29 -0400 Subject: [PATCH 024/269] type agreement for unsigned int iZone, correction to update Data[zone-0] instead of Data[zone-1] --- Common/include/interpolation_structure.hpp | 25 +++++++++------- Common/src/interpolation_structure.cpp | 34 +++++++++++++--------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 2afec1c43ee..7610e25f470 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -56,7 +56,8 @@ using namespace std; */ class CInterpolator { protected: - unsigned short nZone; + unsigned int nZone; + unsigned short nVar; double ***Data; /*!\brief container for some data to be interpolated */ public: CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ @@ -69,7 +70,7 @@ class CInterpolator { /*! * \brief Constructor of the class. */ - CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short iZone_0,unsigned short iZone_1, unsigned short nZone); + CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone_0,unsigned int iZone_1, unsigned int nZone); /*! * \brief Destructor of the class. @@ -79,38 +80,40 @@ class CInterpolator { /*! * \brief initialize the Data structure to the appropriate size. */ - void InitializeData(unsigned short iZone_0, unsigned short iZone_1, unsigned short nVar); + void InitializeData(unsigned int iZone_0, unsigned int iZone_1, unsigned short val_nVar); /*! * \brief interpolate Data from one mesh to another + * \param[in] iZone_0: zone to recieve interpolated data + * \param[in] config */ - void Interpolate_Data(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Interpolate_Data(unsigned int iZone_0, CConfig **config); /*! * \brief interpolate deformations from one mesh to another */ - void Interpolate_Deformation(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Interpolate_Deformation(unsigned int iZone_0, unsigned int iZone_1, CConfig **config); /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferCoeff(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config); /*! * \brief Return the value of the Data at the specified zone, point, and dimension. */ - double GetData(unsigned short iZone, unsigned long iPoint, unsigned short iDim); + double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iDim); /*! * \brief Return the value of the Data vector at the specified zone and point. */ - double* GetData(unsigned short iZone, unsigned long iPoint); + double* GetData(unsigned int iZone, unsigned long iPoint); /*! * \brief Set the value of the Data at the specified zone, point, and dimension. */ - void SetData(unsigned short iZone, unsigned long iPoint, unsigned short iDim, double val); + void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iDim, double val); @@ -124,7 +127,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned short iZone_0,unsigned short iZone_1,unsigned short nZone); + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone_0,unsigned int iZone_1,unsigned int nZone); /*! * \brief Destructor of the class. @@ -134,6 +137,6 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferCoeff(unsigned short iZone_0, unsigned short iZone_1, CConfig **config); + void Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config); }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 79523b8342e..c0f01c27418 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -38,7 +38,7 @@ CInterpolator::CInterpolator(void){ CInterpolator::~CInterpolator(void){} -CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned short iZone_0,unsigned short iZone_1, unsigned short val_nZone){ +CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone_0,unsigned int iZone_1, unsigned int val_nZone){ /* Store pointers*/ Geometry = geometry_container; @@ -54,7 +54,8 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, } -void CInterpolator::InitializeData(unsigned short iZone_0, unsigned short iZone_1, unsigned short nVar){ +void CInterpolator::InitializeData(unsigned int iZone_0, unsigned int iZone_1, unsigned short val_nVar){ + nVar=val_nVar; if (nVar>0){ /*--- Initialize Data vectors to 0 ---*/ Data = new double**[nZone]; @@ -81,18 +82,23 @@ void CInterpolator::InitializeData(unsigned short iZone_0, unsigned short iZone_ } -void CInterpolator::Interpolate_Data(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ +void CInterpolator::Interpolate_Data(unsigned int iZone_0, CConfig **config){ unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; - unsigned short nDim = Geometry[iZone_0][MESH_0]->GetnDim(), jMarker; + unsigned short jMarker; double weight=0.0; - /*--- Loop through points, increment Data by the weight in the transfer matrix ---*/ + /*--- Loop through points, increment Data in the input zone by the weight in the transfer matrix ---*/ /*Loop by i then by j to more efficiently call memory*/ for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); + /*--- Set Data to 0 before interpolation ---*/ + for (unsigned short iVar=0; iVarvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ /* Unpack info */ iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); @@ -100,8 +106,8 @@ void CInterpolator::Interpolate_Data(unsigned short iZone_0, unsigned short iZon jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); - for (unsigned short iDim=0; iDimGetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(iZone_0,iZone_1,config); @@ -201,7 +207,7 @@ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **co CNearestNeighbor::~CNearestNeighbor(){} -void CNearestNeighbor::Set_TransferCoeff(unsigned short iZone_0, unsigned short iZone_1, CConfig **config){ +void CNearestNeighbor::Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex,*nn; unsigned short iMarker, iDim, jMarker; unsigned short nDim = Geometry[iZone_0][MESH_0]->GetnDim(), iDonor, jDonor; From f3829cc5e40611332397b137190eeb273fa507df Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 30 Jun 2015 16:57:09 -0400 Subject: [PATCH 025/269] set_transfercoeff -> virtual, made parent class compatible with any number of zones (child class CNearestNeighbor still assumes 2 zones) --- Common/include/interpolation_structure.hpp | 39 ++++--- Common/src/interpolation_structure.cpp | 122 +++++++++++---------- SU2_FSI/src/SU2_FSI.cpp | 9 +- 3 files changed, 93 insertions(+), 77 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 7610e25f470..44f07957bc2 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -70,50 +70,59 @@ class CInterpolator { /*! * \brief Constructor of the class. */ - CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone_0,unsigned int iZone_1, unsigned int nZone); + CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int nZone); /*! * \brief Destructor of the class. */ - ~CInterpolator(void); + virtual ~CInterpolator(void); /*! * \brief initialize the Data structure to the appropriate size. */ - void InitializeData(unsigned int iZone_0, unsigned int iZone_1, unsigned short val_nVar); + void InitializeData(unsigned int* Zones, unsigned short val_nVar); /*! - * \brief interpolate Data from one mesh to another - * \param[in] iZone_0: zone to recieve interpolated data + * \brief interpolate Data from one mesh to another. + * The data for zone 0 will be overwritten. transfer coefficients must be defined with Set_TransferCoeff. + * \param[in] iZone_0 - zone to recieve interpolated data * \param[in] config */ - void Interpolate_Data(unsigned int iZone_0, CConfig **config); + void Interpolate_Data(unsigned int iZone, CConfig **config); /*! - * \brief interpolate deformations from one mesh to another + * \brief interpolate deformations from one mesh to another. + * Uses information stored by the geometry class, updates values in VarCoord of iZone_0. Set_TransferCoeff must be run first. + * \param[in] iZone_0 - zone to recieve interpolated data. + * \param[in] config */ - void Interpolate_Deformation(unsigned int iZone_0, unsigned int iZone_1, CConfig **config); + void Interpolate_Deformation(unsigned int iZone, CConfig **config); /*! * \brief Set up transfer matrix defining relation between two meshes + * \param[in] Zones - list of zones to set up interpolation for. This method must be overwritten in the child classes. + * \param[in] config */ - void Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config); + virtual void Set_TransferCoeff(unsigned int* Zones, CConfig **config)=0; /*! * \brief Return the value of the Data at the specified zone, point, and dimension. + * \param[in] iZone - zone index + * \param[in] iPoint - point index + * \param[in[ iDim - index of the data */ - double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iDim); + double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); /*! - * \brief Return the value of the Data vector at the specified zone and point. + * \brief Return the pointer to the Data vector at the specified zone and point. */ double* GetData(unsigned int iZone, unsigned long iPoint); /*! - * \brief Set the value of the Data at the specified zone, point, and dimension. + * \brief Set the value of the Data at the specified zone, point, and index. */ - void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iDim, double val); + void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, double val); @@ -127,7 +136,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone_0,unsigned int iZone_1,unsigned int nZone); + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); /*! * \brief Destructor of the class. @@ -137,6 +146,6 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config); + void Set_TransferCoeff(unsigned int* Zones, CConfig **config); }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index c0f01c27418..f6fea234c5f 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -38,41 +38,38 @@ CInterpolator::CInterpolator(void){ CInterpolator::~CInterpolator(void){} -CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone_0,unsigned int iZone_1, unsigned int val_nZone){ +CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int val_nZone){ /* Store pointers*/ Geometry = geometry_container; nZone = val_nZone; /*--- Initialize transfer coefficients between the zones ---*/ - /* For all child classes, run Set_TransferCoeff within the constructor */ - // Set_TransferCoeff(iZone_0,iZone_1,config); + /* Since this is a virtual function, call it in the child class constructor */ + //Set_TransferCoeff(iZone_0,iZone_1,config); /*--- Initialize Data vectors to 0, by default with length = nDim ---*/ + /* This should be done in the child class ---*/ //InitializeData(iZone_0,iZone_1,nDim); Data = NULL; } -void CInterpolator::InitializeData(unsigned int iZone_0, unsigned int iZone_1, unsigned short val_nVar){ +void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar){ nVar=val_nVar; + unsigned int iZone; + unsigned short it; if (nVar>0){ /*--- Initialize Data vectors to 0 ---*/ Data = new double**[nZone]; - Data[iZone_0] = new double*[Geometry[iZone_0][MESH_0]->GetnPoint()]; - Data[iZone_1] = new double*[Geometry[iZone_1][MESH_0]->GetnPoint()]; - - for (unsigned long iPoint =0; iPoint< Geometry[iZone_0][MESH_0]->GetnPoint(); iPoint++){ - Data[iZone_0][iPoint] = new double[nVar]; - for (unsigned short iVar=0; iVarGetnPoint(); iPoint++){ - Data[iZone_1][iPoint] = new double[nVar]; - for (unsigned short iVar=0; iVarGetnPoint()]; + for (unsigned long iPoint =0; iPoint< Geometry[iZone][MESH_0]->GetnPoint(); iPoint++){ + Data[iZone][iPoint] = new double[nVar]; + for (unsigned short iVar=0; iVarGetnMarker_All(); iMarker++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); + for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ + if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); /*--- Set Data to 0 before interpolation ---*/ for (unsigned short iVar=0; iVarvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - /* Unpack info */ - iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + for (unsigned short jDonor = 0; jDonor< Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + /* Unpack info about the donor point */ + iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + /*--- Increment the value of the data ---*/ for (unsigned short iVar=0; iVarGetnDim(); + unsigned short nDim = Geometry[iZone][MESH_0]->GetnDim(); /*--- Loop over vertices in the interface marker (zone 0) ---*/ - for (iMarker = 0; iMarker < config[iZone_0]->GetnMarker_All(); iMarker++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetNode(); + for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ + if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ + for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { + iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); /*--- Set NewCoord to 0 ---*/ for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - iZone_1 = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); + for (unsigned short jDonor = 0; jDonor< Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ + iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); + jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); + jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); + jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); + weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); /* Get translation and rotation from the solution */ VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); @@ -145,7 +145,7 @@ void CInterpolator::Interpolate_Deformation(unsigned int iZone_0, unsigned int i for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); + distance[iDim] = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); } /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ if (nDim==2){ @@ -159,7 +159,7 @@ void CInterpolator::Interpolate_Deformation(unsigned int iZone_0, unsigned int i } } // Or introduce deformation vector that stores this. - Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); + Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } } } @@ -169,13 +169,9 @@ void CInterpolator::Interpolate_Deformation(unsigned int iZone_0, unsigned int i } -void CInterpolator::Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config){ - cout<<"base class set transfer matrix: all zeros, no interpolation will be done."<GetnDim(); +CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ + unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ - Set_TransferCoeff(iZone_0,iZone_1,config); + Set_TransferCoeff(Zones,config); /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ - InitializeData(iZone_0,iZone_1,nDim); + InitializeData(Zones,nDim); + } CNearestNeighbor::~CNearestNeighbor(){} -void CNearestNeighbor::Set_TransferCoeff(unsigned int iZone_0, unsigned int iZone_1, CConfig **config){ +void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex,*nn; unsigned short iMarker, iDim, jMarker; - unsigned short nDim = Geometry[iZone_0][MESH_0]->GetnDim(), iDonor, jDonor; + unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; double distance = 0.0, last_distance=-1.0; unsigned short int donorindex = 0; @@ -218,7 +215,12 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int iZone_0, unsigned int iZon unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; unsigned short markFEA, markFlow; + /*--- Restricted to 2-zone fluid-structure for now ---*/ + unsigned int iZone_0 = Zones[0]; + unsigned int iZone_1 = Zones[1]; + nn = new unsigned long[4]; + /*--- Loop through the vertices in Interface of both zones * for Nearest Neighbor each vertex has only one donor point, but for other types of * interpolation the number of donor points must be determined first. ---*/ diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 50c20fe1412..b37b5705df3 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -258,8 +258,13 @@ int main(int argc, char *argv[]) { } - if (!config_container[ZONE_0]->GetMatchingMesh()) - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,ZONE_0,ZONE_1,nZone); + if (!config_container[ZONE_0]->GetMatchingMesh()){ + unsigned int Zones[2]; + unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure + Zones[0]=ZONE_0; + Zones[1]=ZONE_1; + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); + } /*--- For the time-spectral solver, set the grid node velocities. ---*/ From 43fa7ccc6b7095940285cf7d534c674eec930391 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 30 Jun 2015 22:36:52 -0400 Subject: [PATCH 026/269] skeleton/1st draft for consistent and conservative added - mising coefficient calc --- Common/include/interpolation_structure.hpp | 27 +++- Common/src/interpolation_structure.cpp | 140 ++++++++++++++++++++- 2 files changed, 163 insertions(+), 4 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 44f07957bc2..7e701a1960f 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -129,7 +129,9 @@ class CInterpolator { }; - +/*! + * \brief Nearest Neighbor interpolation + */ class CNearestNeighbor : public CInterpolator { public: @@ -149,3 +151,26 @@ class CNearestNeighbor : public CInterpolator { void Set_TransferCoeff(unsigned int* Zones, CConfig **config); }; + +/*! + * \brief Consistent and Conservative interpolation + */ +class CConsistConserve : public CInterpolator { +public: + + /*! + * \brief Constructor of the class. + */ + CConsistConserve(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); + + /*! + * \brief Destructor of the class. + */ + ~CConsistConserve(void); + + /*! + * \brief Set up transfer matrix defining relation between two meshes + */ + void Set_TransferCoeff(unsigned int* Zones, CConfig **config); + +}; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index f6fea234c5f..e34b2ad6286 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -227,13 +227,12 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Number of markers on the FSI interface ---*/ nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; + nMarkerFEA = config[iZone_1]->GetnMarker_All(); + nMarkerFlow = config[iZone_0]->GetnMarker_All(); /*--- For the number of markers on the interface... ---*/ for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - nMarkerFEA = config[iZone_1]->GetnMarker_All(); - nMarkerFlow = config[iZone_0]->GetnMarker_All(); - /*--- ... the marker markFEA ... ---*/ for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ @@ -311,3 +310,138 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } + +CConsistConserve::CConsistConserve(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ + unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); + /*--- Initialize transfer coefficients between the zones ---*/ + Set_TransferCoeff(Zones,config); + + /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ + //InitializeData(Zones,nDim); + +} + +CConsistConserve::~CConsistConserve(){} + +void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ + unsigned long iPoint, jPoint, iVertex, jVertex,*nn, inode, ivtx; + unsigned short iMarker, iDim, jMarker; + unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; + double distance = 0.0, last_distance=-1.0; + + unsigned short int donorindex = 0; + unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; + unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; + unsigned short markFEA, markFlow; + + /*--- Restricted to 2-zone fluid-structure for now ---*/ + unsigned int iZone_0 = Zones[0]; + unsigned int iZone_1 = Zones[1]; + unsigned int nDonor=0; + + nn = new unsigned long[4]; + + /*--- Number of markers on the FSI interface ---*/ + nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; + nMarkerFEA = config[iZone_1]->GetnMarker_All(); + nMarkerFlow = config[iZone_0]->GetnMarker_All(); + + /*--- For the number of markers on the interface... ---*/ + for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + + /*--- Procedure: + * -Loop through vertices of the aero grid + * -Find nearest element and allocate enough space in the aero grid donor point info + * -set the transfer coefficient values + * -increment nDonor for each of the element vertices + * -Loop through vertices of the structure grid + * -Allocate enough space for the donor info + * -Loop through the aero vertices and set the donor info at the structure vertices + */ + + + /*--- ... the marker markFEA ... ---*/ + for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ + markFEA=iMarkerFEA; + } + } + /*--- ... corresponds to the marker markFlow. ---*/ + for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ + markFlow=iMarkerFlow; + } + } + + /*--- For the markers on the fluid side ---*/ + /*--- Loop over the vertices on the marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { + iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); + last_distance=-1.0; + nDonor = 0; + + /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ + + for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { + jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); + distance = 0.0; + for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); + if ((last_distance==-1.0) or (distancenode[nn[1]]->GetnElem(); jElem++){ + long temp_donor = Geometry[iZone_1][MESH_0]->node[nn[1]]->GetElem(jElem); + /*--- Find nearest normal point to this element (may be a vertex) ---*/ + /*--- check the distance to that point against previous distances ---*/ + /*--- if jElem=0 or if closer than previous closest point, store as donor_elem ---*/ + + } + /*--- if we get to the end and no normal distance is closer than the distance to the vertex, set as nearest neighbor ---*/ + /*--- otherwise, loop over the vertices on the donor elem ---*/ + /*--- Set the appropriate amount of memory ---*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetnNodes()); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); + /*--- Loop over vertices of the element ---*/ + for (int it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + /*--- add coordinate info to an array for later calc of transfer coeff ---*/ + } + /*--- calc transfer coeff here ---*/ + /*--- loop through donor points again ---*/ + for (int it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); + //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); + //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,1.0); + } + } + /*--- Now that all the transfer coefficients have been calculated, loop through the structure vertices + * and set the same transfer coefficients + */ + for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { + ivtx=0; + Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->Allocate_DonorInfo(); + for (iVertex=0; iVertexGetnVertex(markFlow); iVertex++){ + for (inode=0; inodevertex[markFlow][iVertex]->GetnDonorPoints(); inode++){ + /*if donor point == jVertex*/ + //double coeff = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorCoeff(inode); + //Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorInfo(ivtx,nn); + //Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorCoeff(ivtx,coeff); + } + } + } + } + +} + + From d6bf4edb4c9f8b861860afb694b4965f6bc7f9b6 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 19 Jul 2015 13:22:19 -0400 Subject: [PATCH 027/269] Consistent/conservative interpolation implemented, runs. (Not yet checked for accuracy). Includes implementation of isoparametric coeffiicnets w/ QR solve --- Common/include/interpolation_structure.hpp | 16 ++ Common/src/interpolation_structure.cpp | 307 ++++++++++++++++++--- 2 files changed, 279 insertions(+), 44 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 7e701a1960f..f469afac382 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -170,7 +170,23 @@ class CConsistConserve : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes + * \param[in] Zones - list of zones to use for interpolation + * \param[in] config - */ void Set_TransferCoeff(unsigned int* Zones, CConfig **config); + /*! + * \brief Calculate the isoparametric representation of point iVertex in marker iZone_0 by nodes of element donor_elem in marker jMarker of zone iZone_1. + * \param[out] isoparams - isoparametric coefficients. Must be allocated to size nNodes ahead of time. + * \param[in] iZone_0 - zone index of the point being interpolated + * \param[in] iMarker - marker index of the point being interpolated + * \param[in] iVertex - vertex index of the point being interpolated. + * \param[in] nDim - the dimension of the coordinates. + * \param[in] iZone_1 - zone index of the element to use for interpolation + * \param[in] jMarker - marker index of the element to use for interpolation + * \param[in] donor_elem - element index of the element to use for interpolation + * \param[in[ nDonorPoints - number of donor points in the element. + */ + void Isoparametric(double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2); + }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index e34b2ad6286..9cce57f9136 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -112,7 +112,6 @@ void CInterpolator::Interpolate_Data(unsigned int iZone, CConfig **config){ } } } - } void CInterpolator::Interpolate_Deformation(unsigned int iZone, CConfig **config){ @@ -158,7 +157,7 @@ void CInterpolator::Interpolate_Deformation(unsigned int iZone, CConfig **config NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); } } - // Or introduce deformation vector that stores this. + /*--- Set the varcoord information ---*/ Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); } } @@ -312,67 +311,75 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ CConsistConserve::CConsistConserve(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ + cout <<"CC"<GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(Zones,config); /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ - //InitializeData(Zones,nDim); - + InitializeData(Zones,nDim); + cout <<"CC initialized"<GetnDim(), iDonor, jDonor; - double distance = 0.0, last_distance=-1.0; + cout <<"set_TC"<GetnDim(); + unsigned short iDonor, jDonor; + double distance = 0.0, last_distance=-1.0, *Coord; + double* myCoeff; + double* myCoefftemp; + double* donorCoord; + double coeff; + long donor_elem=0, temp_donor; unsigned short int donorindex = 0; unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; unsigned short markFEA, markFlow; - + unsigned short index = 3; // index of the vertex info in the donorinfo array + unsigned int nNodes; /*--- Restricted to 2-zone fluid-structure for now ---*/ unsigned int iZone_0 = Zones[0]; unsigned int iZone_1 = Zones[1]; unsigned int nDonor=0; nn = new unsigned long[4]; - /*--- Number of markers on the FSI interface ---*/ nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; nMarkerFEA = config[iZone_1]->GetnMarker_All(); nMarkerFlow = config[iZone_0]->GetnMarker_All(); - /*--- For the number of markers on the interface... ---*/ for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - /*--- Procedure: * -Loop through vertices of the aero grid * -Find nearest element and allocate enough space in the aero grid donor point info * -set the transfer coefficient values * -increment nDonor for each of the element vertices * -Loop through vertices of the structure grid - * -Allocate enough space for the donor info - * -Loop through the aero vertices and set the donor info at the structure vertices + * -Allocate enough space for the donor info + * -Loop through the aero vertices and set the donor info at the structure vertices */ - /*--- ... the marker markFEA ... ---*/ for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ markFEA=iMarkerFEA; } } + /*--- ... corresponds to the marker markFlow. ---*/ for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ markFlow=iMarkerFlow; } } - + /*--Same for all points: -*/ + nn[0] = iZone_1; /* Zone of the donor point */ + nn[2] = markFEA; /* marker of the donor point */ /*--- For the markers on the fluid side ---*/ /*--- Loop over the vertices on the marker ---*/ for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { @@ -389,59 +396,271 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ distance+=pow(Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancenode[nn[1]]->GetnElem(); jElem++){ - long temp_donor = Geometry[iZone_1][MESH_0]->node[nn[1]]->GetElem(jElem); - /*--- Find nearest normal point to this element (may be a vertex) ---*/ - /*--- check the distance to that point against previous distances ---*/ - /*--- if jElem=0 or if closer than previous closest point, store as donor_elem ---*/ + for (jElem=0; jElemnode[nn[1]]->GetnElem(); jElem++){ + temp_donor = Geometry[iZone_1][MESH_0]->node[nn[1]]->GetElem(jElem); + nNodes = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnNodes(); + /*--- Determine nodes that are on a surface ---*/ + int temp[nNodes]; + it=0; + for (inode=0; inodenode[inode]->GetVertex(markFEA) != -1 ){ + temp[it]=inode; + it++; + } + } + nNodes=it; + int temp2[nNodes]; + for (inode=0; inodevertex[markFlow][iVertex]->GetCoord(); + for (it=0; it< nNodes; it++){ + inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(temp2[it]); + donorCoord = Geometry[iZone_1][MESH_0]->node[inode]->GetCoord(); + for (iDim=0; iDimvertex[markFlow][iVertex]->SetDonorElem(temp_donor); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); + } } - /*--- if we get to the end and no normal distance is closer than the distance to the vertex, set as nearest neighbor ---*/ - /*--- otherwise, loop over the vertices on the donor elem ---*/ + + //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorElem(donor_elem); /*--- Set the appropriate amount of memory ---*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetnNodes()); + //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetnNodes()); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); /*--- Loop over vertices of the element ---*/ - for (int it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - /*--- add coordinate info to an array for later calc of transfer coeff ---*/ - } - /*--- calc transfer coeff here ---*/ - /*--- loop through donor points again ---*/ - for (int it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + /*--- Set the information on the matching vertices for markFEA ---*/ inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); - //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); - //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,1.0); + if ( Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA)!= -1 ){ + ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); + //nn[0] = iZone_1; /* Zone of the donor point */ + nn[1] = inode; /* global index of the donor point */ + //nn[2] = markFEA; /* marker of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,myCoeff[it]); + } } } /*--- Now that all the transfer coefficients have been calculated, loop through the structure vertices * and set the same transfer coefficients */ + index=3; for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { ivtx=0; Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->Allocate_DonorInfo(); + /*--- Loop over all aero points ---*/ for (iVertex=0; iVertexGetnVertex(markFlow); iVertex++){ + /*--- Loop over the donor vertices for iVertex (flow vertex) ---*/ for (inode=0; inodevertex[markFlow][iVertex]->GetnDonorPoints(); inode++){ - /*if donor point == jVertex*/ - //double coeff = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorCoeff(inode); - //Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorInfo(ivtx,nn); - //Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorCoeff(ivtx,coeff); + /*--- If one of the donor points is the same as the FEA vertex, add information ---*/ + if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]-> GetDonorInfo(inode,index) == jVertex){ + iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); + nn[0] = iZone_0; /* Zone of the donor point */ + nn[1] = iPoint; /* global index of the donor point */ + nn[2] = markFlow; /* marker of the donor point */ + nn[3] = iVertex; /* vertex index within marker of the donor point */ + coeff = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorCoeff(inode); + Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorInfo(ivtx,nn); + Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorCoeff(ivtx,coeff); + ivtx++; + } + if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ + break; + } } + if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ + break; + } + + } + if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ + break; } } } + /*-- Delete locally allocated memory ---*/ + + if (myCoeff!=NULL) + delete[] myCoeff; + if (myCoefftemp!=NULL) + delete[] myCoefftemp; + cout <<"end_TC"<0){ + for (i=0; ivertex[iMarker][iVertex]->GetCoord(j-1); + + for (i=0; ielem[donor_elem]->GetNode(temp2[i]); + for (j=offset; jnode[inode]->GetCoord(j-offset); + } + } + + /*--- IF meps && i=n and tmp!=0){ + for (j=0; j=0; i--){ + if (R[i*n+i]>eps) + isoparams[i]=x_tmp[i]/R[i*n+i]; + else + isoparams[i]=0; + for (j=0; j Date: Sun, 19 Jul 2015 16:08:36 -0400 Subject: [PATCH 028/269] addeed config option: KIND_INTERPOLATION which switches interpolation type --- Common/include/config_structure.hpp | 19 ++++++++++++------- Common/include/config_structure.inl | 2 ++ Common/include/option_structure.hpp | 13 +++++++++++++ Common/src/config_structure.cpp | 12 ++++++++++-- SU2_FSI/src/SU2_FSI.cpp | 5 ++++- 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 17c77fca551..bb967daa988 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -728,13 +728,14 @@ class CConfig { bool ExtraOutput; bool DeadLoad; /*!< Application of dead loads to the FE analysis */ bool MatchingMesh; /*!< Matching mesh (while implementing interpolation procedures). */ - double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ - Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ - bool Gradual_Load, /*!< \brief Apply the load gradually. */ - Ramp_Load; /*!< \brief Apply the load with linear increases. */ - double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ - double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ - unsigned short Pred_Order; /*!< \brief Order of the predictor for FSI applications. */ + double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ + Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ + bool Gradual_Load, /*!< \brief Apply the load gradually. */ + Ramp_Load; /*!< \brief Apply the load with linear increases. */ + double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ + double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ + unsigned short Pred_Order; /*!< \brief Order of the predictor for FSI applications. */ + unsigned short Kind_Interpolation; /*!\brief type of interpolation to use for FSI applications. */ unsigned long Nonphys_Points, /*!< \brief Current number of non-physical points in the solution. */ Nonphys_Reconstr; /*!< \brief Current number of non-physical reconstructions for 2nd-order upwinding. */ bool ParMETIS; /*!< \brief Boolean for activating ParMETIS mode (while testing). */ @@ -5508,6 +5509,10 @@ class CConfig { */ unsigned short GetRelaxation_Method_FSI(void); + /*! + * \brief Get the interpolation method used for matching between zones. + */ + inline unsigned short GetKindInterpolation(void); }; diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 50b7ae8bb62..62b96ab8a3f 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1223,6 +1223,8 @@ inline unsigned short CConfig::GetPredictorOrder(void) { return Pred_Order; } inline bool CConfig::GetFSI_Simulation(void) { return FSI_Problem; } +inline unsigned short CConfig::GetKindInterpolation(void) { return Kind_Interpolation; } + inline unsigned short CConfig::GetRelaxation_Method_FSI(void) { return Kind_BGS_RelaxMethod; } inline double CConfig::GetOrderMagResidualFSI(void) { return OrderMagResidualFSI; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 250c430b631..fa8de7debf0 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -254,6 +254,19 @@ static const map FSI_Struc_Solver_Map = CCreateM ("LINEAR_ELASTICITY", LINEAR_ELASTICITY_SFSI) ("NONLINEAR_ELASTICITY", NONLINEAR_ELASTICITY_SFSI); +/*! + * \brief types of interpolators + */ +enum ENUM_INTERPOLATOR { + NEAREST_NEIGHBOR = 0, /*!< \brief Nearest Neigbhor interpolation */ + CONSISTENT_AND_CONSERVATIVE = 1, /*!< \brief Consistent & Conservative interpolation (S.A. Brown 1997) */ +}; + +static const map Interpolator_Map = CCreateMap +("NEAREST_NEIGHBOR", NEAREST_NEIGHBOR) +("CONSISTENT_AND_CONSERVATIVE", CONSISTENT_AND_CONSERVATIVE); + + /*! * \brief different regime modes */ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 1aab6878596..3c3e9e8149a 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1188,11 +1188,16 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Order of the predictor */ addUnsignedShortOption("PREDICTOR_ORDER", Pred_Order, 0); + + /* CONFIG_CATEGORY: FSI solver */ + /*--- Options related to the FSI solver ---*/ + /*!\par PHYSICAL_PROBLEM_FLUID_FSI * DESCRIPTION: Physical governing equations \n * Options: NONE (default),EULER, NAVIER_STOKES, RANS, * \ingroup Config*/ addEnumOption("FSI_FLUID_PROBLEM", Kind_Solver_Fluid_FSI, FSI_Fluid_Solver_Map, NO_SOLVER_FFSI); + /*!\par PHYSICAL_PROBLEM_STRUCTURAL_FSI * DESCRIPTION: Physical governing equations \n * Options: NONE (default), LINEAR_ELASTICITY, NONLINEAR_ELASTICITY @@ -1209,9 +1214,12 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo * Options: NO, YES \ingroup Config */ addBoolOption("MATCHING_MESH", MatchingMesh, true); + /*!\par KIND_INTERPOLATION \n + * DESCRIPTION: Type of interpolation to use for multi-zone problems. \n OPTIONS: see \link Interpolator_Map \endlink + * Sets Kind_Interpolation \ingroup Config + */ + addEnumOption("KIND_INTERPOLATION", Kind_Interpolation, Interpolator_Map, NEAREST_NEIGHBOR); - /* CONFIG_CATEGORY: FSI solver */ - /*--- Options related to the FSI solver ---*/ /* DESCRIPTION: Maximum number of FSI iterations */ addUnsignedShortOption("FSI_ITER", nIterFSI, 1); /* DESCRIPTION: Aitken's static relaxation factor */ diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index b37b5705df3..e82ff830b9e 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -263,7 +263,10 @@ int main(int argc, char *argv[]) { unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure Zones[0]=ZONE_0; Zones[1]=ZONE_1; - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); + if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); + if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) + interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); } /*--- For the time-spectral solver, set the grid node velocities. ---*/ From b4be60aa16df0deaa2c8f8b835e8b4be4baf7c01 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 19 Jul 2015 16:09:47 -0400 Subject: [PATCH 029/269] removed print statements --- Common/src/interpolation_structure.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 9cce57f9136..8d1bc19298d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -311,20 +311,17 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ CConsistConserve::CConsistConserve(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ - cout <<"CC"<GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(Zones,config); /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ InitializeData(Zones,nDim); - cout <<"CC initialized"<GetnDim(); @@ -513,7 +510,6 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ delete[] myCoeff; if (myCoefftemp!=NULL) delete[] myCoefftemp; - cout <<"end_TC"< Date: Mon, 20 Jul 2015 10:24:42 +0100 Subject: [PATCH 030/269] Preliminary FEM implementation. --- .gitignore | 1 + Common/include/option_structure.hpp | 13 + Common/src/config_structure.cpp | 26 +- Makefile.in | 13 +- SU2_CFD/include/element_structure.hpp | 370 ++++ SU2_CFD/include/element_structure.inl | 56 + SU2_CFD/include/gauss_structure.hpp | 111 ++ SU2_CFD/include/gauss_structure.inl | 50 + SU2_CFD/include/numerics_structure.hpp | 177 +- SU2_CFD/include/numerics_structure.inl | 18 + SU2_CFD/include/solver_structure.hpp | 61 + SU2_CFD/include/variable_structure.hpp | 42 + SU2_CFD/include/variable_structure.inl | 4 +- SU2_CFD/obj/Makefile.am | 22 +- SU2_CFD/obj/Makefile.in | 338 +++- SU2_CFD/src/SU2_CFD.cpp | 10 + SU2_CFD/src/definition_structure.cpp | 29 +- SU2_CFD/src/element_linear.cpp | 479 +++++ SU2_CFD/src/element_structure.cpp | 111 ++ SU2_CFD/src/gauss_structure.cpp | 66 + SU2_CFD/src/integration_structure.cpp | 4 +- SU2_CFD/src/numerics_fem_elasticity.cpp | 83 + .../src/numerics_fem_linear_elasticity.cpp | 189 ++ .../src/numerics_fem_nonlinear_elasticity.cpp | 297 +++ SU2_CFD/src/output_paraview.cpp | 12 +- SU2_CFD/src/output_structure.cpp | 69 +- SU2_CFD/src/solver_direct_elasticity.cpp | 20 + SU2_CFD/src/solver_fem_elasticity.cpp | 209 +++ SU2_CFD/src/variable_fem_elasticity.cpp | 51 + SU2_FSI/obj/Makefile.am | 12 + SU2_FSI/obj/Makefile.in | 172 ++ aclocal.m4 | 380 ++-- configure | 1595 +++++------------ configure.ac | 2 +- 34 files changed, 3655 insertions(+), 1437 deletions(-) create mode 100644 SU2_CFD/include/element_structure.hpp create mode 100644 SU2_CFD/include/element_structure.inl create mode 100644 SU2_CFD/include/gauss_structure.hpp create mode 100644 SU2_CFD/include/gauss_structure.inl create mode 100644 SU2_CFD/src/element_linear.cpp create mode 100644 SU2_CFD/src/element_structure.cpp create mode 100644 SU2_CFD/src/gauss_structure.cpp create mode 100644 SU2_CFD/src/numerics_fem_elasticity.cpp create mode 100644 SU2_CFD/src/numerics_fem_linear_elasticity.cpp create mode 100644 SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp create mode 100644 SU2_CFD/src/solver_fem_elasticity.cpp create mode 100644 SU2_CFD/src/variable_fem_elasticity.cpp diff --git a/.gitignore b/.gitignore index 372f1b7a504..12a4ae6f8d4 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ log_make.txt log_make_install.txt SU2_FSI/bin/SU2_FSI SU2_FEM +discardMod.sh diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 250c430b631..4e68feb0d6b 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -191,6 +191,7 @@ enum ENUM_SOLVER { HEAT_EQUATION = 29, /*!< \brief Definition of the heat solver. */ LINEAR_ELASTICITY = 11, /*!< \brief Definition of the FEA solver. */ FLUID_STRUCTURE_INTERACTION = 12, /*!< \brief Definition of a FSI solver. */ + FEM_ELASTICITY = 13, /*!< \brief Definition of a FEM solver. */ ADJ_EULER = 18, /*!< \brief Definition of the continuous adjoint Euler's solver. */ ADJ_NAVIER_STOKES = 19, /*!< \brief Definition of the continuous adjoint Navier-Stokes' solver. */ ADJ_RANS = 20, /*!< \brief Definition of the continuous adjoint Reynolds-averaged Navier-Stokes' (RANS) solver. */ @@ -221,6 +222,7 @@ static const map Solver_Map = CCreateMap(val_extiter)*Delta_DynTime; + if (val_system == RUNTIME_FEA_SYS) { + SetKind_ConvNumScheme(NONE, NONE, NONE, NONE, NONE); + SetKind_TimeIntScheme(Kind_TimeIntScheme_FEA); + } + break; + case FEM_ELASTICITY: + + Current_DynTime = static_cast(val_extiter)*Delta_DynTime; + if (val_system == RUNTIME_FEA_SYS) { SetKind_ConvNumScheme(NONE, NONE, NONE, NONE, NONE); SetKind_TimeIntScheme(Kind_TimeIntScheme_FEA); diff --git a/Makefile.in b/Makefile.in index 21e76760e0a..85b54722379 100644 --- a/Makefile.in +++ b/Makefile.in @@ -86,10 +86,7 @@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -201,8 +198,6 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -METIS_INCLUDE = @METIS_INCLUDE@ -METIS_LIB = @METIS_LIB@ MKDIR_P = @MKDIR_P@ MUTATIONPP_CXX = @MUTATIONPP_CXX@ MUTATIONPP_LD = @MUTATIONPP_LD@ @@ -214,17 +209,11 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ -PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ -SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ -TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ -TECIO_INCLUDE = @TECIO_INCLUDE@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp new file mode 100644 index 00000000000..51f4342b714 --- /dev/null +++ b/SU2_CFD/include/element_structure.hpp @@ -0,0 +1,370 @@ +/*! + * \file element_structure.hpp + * \brief Headers of the finite element structure (elements) + * The subroutines and functions are in the element_structure.cpp file. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#ifdef HAVE_MPI + #include "mpi.h" +#endif +#include +#include +#include + +#include "../../Common/include/config_structure.hpp" +#include "../../Common/include/geometry_structure.hpp" +#include "gauss_structure.hpp" + +using namespace std; + +/*! + * \class CElement + * \brief Main class for defining the element structure. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CElement { +protected: + unsigned short nGaussPoints; /*!< \brief Number of gaussian points. */ + unsigned short nNodes; /*!< \brief Number of gaussian points. */ + static unsigned short nDim; /*!< \brief Number of dimension of the problem. */ + double **CurrentCoord, + **RefCoord, + **GaussCoord, + *GaussWeight; + CGaussVariable **GaussPoint; + double ***Kab; + +public: + /*! + * \brief Constructor of the class. + */ + CElement(void); + + /*! + * \overload + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] config - Definition of the particular problem. + */ + CElement(unsigned short val_nDim, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + virtual ~CElement(void); + + /*! + * \brief Set the value of the coordinate of the nodes in the reference configuration. + * \param[in] val_CoordRef - Value of the coordinate. + * \param[in] iNode - Number of node. + * \param[in] iDim - Dimension + */ + void SetRef_Coord(double val_CoordRef, unsigned short iNode, unsigned short iDim); + + /*! + * \brief Set the value of the coordinate of the nodes in the current configuration. + * \param[in] val_CoordRef - Value of the coordinate. + * \param[in] iNode - Number of node. + * \param[in] iDim - Dimension + */ + void SetCurr_Coord(double val_CoordCurr, unsigned short iNode, unsigned short iDim); + + /*! + * \brief Set the value of the coordinate of the nodes in the reference configuration. + * \param[in] val_CoordRef - Value of the coordinate. + * \param[in] iNode - Number of node. + * \param[in] iDim - Dimension + * \param[out] Coordinate + */ + double GetRef_Coord(unsigned short iNode, unsigned short iDim); + + /*! + * \brief Get the value of the coordinate of the nodes in the current configuration. + * \param[in] val_CoordRef - Value of the coordinate. + * \param[in] iNode - Number of node. + * \param[in] iDim - Dimension + * \param[out] Coordinate + */ + double GetCurr_Coord(unsigned short iNode, unsigned short iDim); + + /*! + * \brief Get the weight of the corresponding Gaussian Point. + * \param[in] iGauss - index of the Gaussian point. + * \param[out] Weight. + */ + double GetWeight(unsigned short iGauss); + + /*! + * \brief Get the jacobian respect to the reference configuration for the Gaussian Point iGauss. + * \param[in] iGauss - index of the Gaussian point. + * \param[out] Weight. + */ + double GetJ_X(unsigned short iGauss); + + /*! + * \brief Add the value of a submatrix K relating nodes a and b. + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[in] val_Kab - value of the matrix K. + */ + void Add_Kab(double **val_Kab, unsigned short nodeA, unsigned short nodeB); + + /*! + * \brief Add the value of a submatrix K relating nodes a and b (symmetric terms need transpose) + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[in] val_Kab - value of the matrix K. + */ + void Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short nodeB); + + /*! + * \brief Restarts the values in the element. + */ + void clearElement(void); + + /*! + * \brief Return the value of the submatrix K relating nodes a and b. + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[out] val_Kab - value of the matrix K. + */ + double *Get_Kab(unsigned short nodeA, unsigned short nodeB); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + virtual void ComputeGrad_Linear(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + */ + virtual void ComputeGrad_NonLinear(void); + + /*! + * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] iNode - Index of the node. + * \param[in] iNode - Index of the Gaussian Point. + * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss + */ + double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnNodes(void); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnGaussPoints(void); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + virtual void OutputGradN_X(CGeometry *geometry, CConfig *config); + +}; + +/*! + * \class CTRIA1 + * \brief Tria element with 1 Gauss Points + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CTRIA1 : public CElement { +protected: + +// static unsigned short nGaussPoints; /*!< \brief Number of gaussian points. */ +// static unsigned short nNodes; /*!< \brief Number of gaussian points. */ + +// static double GPi_ParentCoord[4][2]; /*!< \brief Parent coordinates of the Gaussian Points i. */ +// static double GPi_Weight[4]; /*!< \brief Weights for Gaussian integration. */ +// static double GPi_Nj[4][4]; /*!< \brief Value of N_j for Gaussian Point i */ +// static double GPi_dNj_dxik[4][4][2]; /*!< \brief Derivative of N_j respect to Xi_k for Gaussian Point i. */ + +public: + + /*! + * \brief Constructor of the class. + */ + CTRIA1(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_elID - Element ID. + * \param[in] config - Definition of the particular problem. + */ + CTRIA1(unsigned short val_nDim, unsigned long val_elID, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CTRIA1(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + void ComputeGrad_Linear(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + */ + void ComputeGrad_NonLinear(void); + + /*! + * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] iNode - Index of the node. + * \param[in] iNode - Index of the Gaussian Point. + * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss + */ + double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnNodes(void); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnGaussPoints(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + void OutputGradN_X(CGeometry *geometry, CConfig *config); + +}; + + +/*! + * \class CQUAD4 + * \brief Quadrilateral element with 4 Gauss Points + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CQUAD4 : public CElement { +protected: + +// static unsigned short nGaussPoints; /*!< \brief Number of gaussian points. */ +// static unsigned short nNodes; /*!< \brief Number of gaussian points. */ + +// static double GPi_ParentCoord[4][2]; /*!< \brief Parent coordinates of the Gaussian Points i. */ +// static double GPi_Weight[4]; /*!< \brief Weights for Gaussian integration. */ +// static double GPi_Nj[4][4]; /*!< \brief Value of N_j for Gaussian Point i */ +// static double GPi_dNj_dxik[4][4][2]; /*!< \brief Derivative of N_j respect to Xi_k for Gaussian Point i. */ + +public: + + /*! + * \brief Constructor of the class. + */ + CQUAD4(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_elID - Element ID. + * \param[in] config - Definition of the particular problem. + */ + CQUAD4(unsigned short val_nDim, unsigned long val_elID, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CQUAD4(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + void ComputeGrad_Linear(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + */ + void ComputeGrad_NonLinear(void); + + /*! + * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] iNode - Index of the node. + * \param[in] iNode - Index of the Gaussian Point. + * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss + */ + double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnNodes(void); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnGaussPoints(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + void OutputGradN_X(CGeometry *geometry, CConfig *config); + + +}; + +#include "element_structure.inl" diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl new file mode 100644 index 00000000000..b3b019af4ba --- /dev/null +++ b/SU2_CFD/include/element_structure.inl @@ -0,0 +1,56 @@ +/*! + * \file element_structure.inl + * \brief In-Line subroutines of the element_structure.hpp file. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +inline void CElement::ComputeGrad_Linear(void) { } + +inline void CElement::ComputeGrad_NonLinear(void) { } + +inline void CElement::OutputGradN_X(CGeometry *geometry, CConfig *config) { } + +inline unsigned short CElement::GetnNodes(void) { return nNodes;} + +inline unsigned short CElement::GetnGaussPoints(void) { return nGaussPoints;} + +inline void CElement::SetRef_Coord(double val_CoordRef, unsigned short iNode, unsigned short iDim) { RefCoord[iNode][iDim] = val_CoordRef;} + +inline void CElement::SetCurr_Coord(double val_CoordCurr, unsigned short iNode, unsigned short iDim) { CurrentCoord[iNode][iDim] = val_CoordCurr;} + +inline double CElement::GetRef_Coord(unsigned short iNode, unsigned short iDim) { return RefCoord[iNode][iDim];} + +inline double CElement::GetCurr_Coord(unsigned short iNode, unsigned short iDim) { return CurrentCoord[iNode][iDim];} + +inline double CElement::GetWeight(unsigned short iGauss) { return GaussWeight[iGauss];} + +inline double CElement::GetJ_X(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_X();} + +inline double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ return Kab[nodeA][nodeB];} diff --git a/SU2_CFD/include/gauss_structure.hpp b/SU2_CFD/include/gauss_structure.hpp new file mode 100644 index 00000000000..8290ce56aca --- /dev/null +++ b/SU2_CFD/include/gauss_structure.hpp @@ -0,0 +1,111 @@ +/*! + * \file gauss_structure.hpp + * \brief Headers of the finite element structure (gaussian points) + * The subroutines and functions are in the gauss_structure.cpp file. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#ifdef HAVE_MPI + #include "mpi.h" +#endif +#include +#include +#include + +#include "../../Common/include/config_structure.hpp" +#include "../../Common/include/geometry_structure.hpp" + +using namespace std; + + +/*! + * \class CGaussVariable + * \brief Main class for defining the gaussian points. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ +class CGaussVariable { +protected: + + double **GradNi_Xj, // Gradient of the shape functions N[i] respect to the reference configuration + **GradNi_xj; // Gradient of the shape functions N[i] respect to the current configuration + double J_X, // Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + J_x; // Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + unsigned short iGaussPoint; // Identifier of the Gauss point considered + +public: + + /*! + * \brief Constructor of the class. + */ + CGaussVariable(void); + + /*! + * \overload + * \param[in] val_nvar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + //CGaussVariable(unsigned short val_nvar, CConfig *config); + + /*! + * \overload + * \param[in] val_iGauss - ID of the Gaussian Point + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] config - Definition of the particular problem. + */ + CGaussVariable(unsigned short val_iGauss, unsigned short val_nDim, unsigned short val_nNodes); + + /*! + * \brief Destructor of the class. + */ + virtual ~CGaussVariable(void); + + void SetGradNi_Xj(double val_GradNi_Xj, unsigned short val_iDim, unsigned short val_Ni); + + void SetGradNi_xj(double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni); + + void SetJ_X(double valJ_X); + + void SetJ_x(double valJ_x); + + double **GetGradNi_Xj(void); + + double GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim); + + double GetJ_X(void); + + double GetJ_x(void); + + unsigned short Get_iGauss(void); + +}; + + +#include "gauss_structure.inl" diff --git a/SU2_CFD/include/gauss_structure.inl b/SU2_CFD/include/gauss_structure.inl new file mode 100644 index 00000000000..643f98a6b25 --- /dev/null +++ b/SU2_CFD/include/gauss_structure.inl @@ -0,0 +1,50 @@ +/*! + * \file gauss_structure.inl + * \brief In-Line subroutines of the gauss_structure.hpp file. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +inline void CGaussVariable::SetGradNi_Xj(double val_GradNi_Xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_Xj[val_Ni][val_iDim] = val_GradNi_Xj; } + +inline void CGaussVariable::SetGradNi_xj(double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_xj[val_Ni][val_iDim] = val_GradNi_xj; } + +inline void CGaussVariable::SetJ_X(double valJ_X) { J_X = valJ_X; } + +inline void CGaussVariable::SetJ_x(double valJ_x) { J_x = valJ_x; } + +inline unsigned short CGaussVariable::Get_iGauss(void) { return iGaussPoint; } + +inline double **CGaussVariable::GetGradNi_Xj(void) { return GradNi_Xj; } + +inline double CGaussVariable::GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_Xj[val_Ni][val_iDim]; } + +inline double CGaussVariable::GetJ_X(void) { return J_X; } + +inline double CGaussVariable::GetJ_x(void) { return J_x; } diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 4b2e6045848..6cc565ea345 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -43,6 +43,8 @@ #include #include "../../Common/include/config_structure.hpp" +#include "gauss_structure.hpp" +#include "element_structure.hpp" #include "numerics_machine_learning.hpp" #include "numerics_machine_learning_turbulent.hpp" #include "variable_structure.hpp" @@ -1646,11 +1648,29 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, */ virtual void ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]); - /*! + /*! + * \brief A virtual member to compute the tangent matrix in structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Tangent_Matrix(CElement *element_container); + + /*! + * \brief A virtual member to compute the constitutive matrix in an element for structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Constitutive_Matrix(void); + + /*! + * \brief A virtual member to compute the stress tensor in an element for structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Stress_Tensor(void); + + /*! * \brief Computes a basis of orthogonal vectors from a suppled vector * \param[in] config - Normal vector */ - void CreateBasis(double *val_Normal); + void CreateBasis(double *val_Normal); }; @@ -4359,6 +4379,159 @@ class CGalerkin_FEA : public CNumerics { }; +/*! + * \class CFEM_Elasticity + * \brief Generic class for computing the tangent matrix and the residual for structural problems + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_Elasticity : public CNumerics { + +protected: + + double E; /*!< \brief Young's modulus of elasticity. */ + double Nu; /*!< \brief Poisson's ratio. */ + double Rho_s; /*!< \brief Structural density. */ + double Mu; /*!< \brief Lame's coeficient. */ + double Lambda; /*!< \brief Lame's coeficient. */ + + double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ + **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ + double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ + double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ + double **GradNi_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_Elasticity(void); + + + virtual void Compute_Tangent_Matrix(CElement *element_container); + + virtual void Compute_Constitutive_Matrix(void); + + virtual void Compute_Stress_Tensor(void); + +}; + +/*! + * \class CFEM_LinearElasticity + * \brief Class for computing the stiffness matrix of a linear, elastic problem. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_LinearElasticity : public CFEM_Elasticity { + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_LinearElasticity(void); + + void Compute_Tangent_Matrix(CElement *element_container); + + void Compute_Constitutive_Matrix(void); + + virtual void Compute_Stress_Tensor(void); + +}; + +/*! + * \class CFEM_LinearElasticity + * \brief Class for computing the stiffness matrix of a nonlinear, elastic problem. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_NonlinearElasticity : public CFEM_Elasticity { + +protected: + + double **F_Mat; /*!< \brief Deformation gradient. */ + double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ + double **currentCoord; /*!< \brief Current coordinates. */ + double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ + + double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_NonlinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_NonlinearElasticity(void); + + void Compute_Tangent_Matrix(CElement *element_container); + + virtual void Compute_Constitutive_Matrix(void); + + virtual void Compute_Stress_Tensor(void); + + +}; + +/*! + * \class CFEM_NeoHookean + * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_NeoHookean_Comp(void); + + void Compute_Constitutive_Matrix(void); + + void Compute_Stress_Tensor(void); + +}; + + + /*! * \class CSourceNothing * \brief Dummy class. diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 2041d643008..c66e77c436d 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -55,6 +55,24 @@ inline void CNumerics::PressInt_Linear(double CoordCorners[4][3], double *tn_e, inline void CNumerics::ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]) { } +inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } + +inline void CNumerics::Compute_Constitutive_Matrix(void){ } + +inline void CFEM_Elasticity::Compute_Constitutive_Matrix(void){ } + +inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(void){ } + +inline void CNumerics::Compute_Stress_Tensor(void){ } + +inline void CFEM_Elasticity::Compute_Stress_Tensor(void){ } + +inline void CFEM_LinearElasticity::Compute_Stress_Tensor(void){ } + +inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(void){ } + inline void CNumerics::ComputeResidual(double *val_residual, CConfig *config) { } inline void CNumerics::ComputeResidual(double *val_residual_i, double *val_residual_j) { } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 978aacef125..e62e5625c97 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -45,6 +45,8 @@ #include #include "fluid_model.hpp" +#include "gauss_structure.hpp" +#include "element_structure.hpp" #include "numerics_structure.hpp" #include "variable_structure.hpp" #include "../../Common/include/geometry_structure.hpp" @@ -6493,6 +6495,65 @@ class CFEASolver : public CSolver { }; +/*! \class CFEM_ElasticitySolver + * \brief Main class for defining a FEM solver for elastic structural problems. + * \author R. Sanchez. + * \version 4.0.0 "Cardinal" + * \date July 10, 2015. + */ +class CFEM_ElasticitySolver : public CSolver { +private: + + unsigned long nElement; + unsigned short nMarker; + + double *GradN_X, + *GradN_x; + +public: + + CElement** element_container; /*!< \brief Vector which the define the finite element structure for each problem. */ + + /*! + * \brief Constructor of the class. + */ + CFEM_ElasticitySolver(void); + + /*! + * \overload + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_ElasticitySolver(void); + + /*! + * \brief Set residuals to zero. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] iRKStep - Current step of the Runge-Kutta iteration. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + */ + void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output); + + /*! + * \brief Compute the time step for solving the FEM equations. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] iMesh - Index of the mesh in multigrid computations. + * \param[in] Iteration - Index of the current iteration. + */ + void SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, + unsigned short iMesh, unsigned long Iteration); + +}; + /*! * \class CAdjLevelSetSolver * \brief Main class for defining the level set solver. diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index aab48785340..a999ba32ce8 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -2451,6 +2451,48 @@ class CFEAVariable : public CVariable { }; +/*! + * \class CFEM_LElasVariable + * \brief Main class for defining the variables of the FEM Linear Elastic structural problem. + * \ingroup Structural Finite Element Analysis Variables + * \author F. Palacios, R. Sanchez. + * \version 4.0.0 "Cardinal" + */ +class CFEM_LElasVariable : public CVariable { +protected: + + bool dynamicFEA; /*!< \brief Bool which determines if the problem is dynamic. */ + + double **Stress; /*!< \brief Stress tensor. */ + +public: + + /*! + * \brief Constructor of the class. + */ + CFEM_LElasVariable(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nvar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_LElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_LElasVariable(void); + + /*! + * \brief Get the value of the stress. + * \return Value of the stress. + */ + double **GetStress(void); + +}; /*! * \class CFEABoundVariable diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 608e028231c..0f93fc4901c 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -47,7 +47,7 @@ inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, doubl inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, double val_stress) { } -inline double **CVariable::GetStress(void) { return 0; } +inline double **CVariable::GetStress(void) { return NULL; } inline void CVariable::SetVonMises_Stress(double val_stress) { } @@ -868,6 +868,8 @@ inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } +inline double **CFEM_LElasVariable::GetStress(void) { return Stress; } + inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] = val_traction; } inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] += val_traction; } diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index 29e09915d07..5113730e318 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -41,7 +41,11 @@ bin_PROGRAMS = ../bin/SU2_CFD ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../include/fluid_model.hpp \ ../include/fluid_model.inl \ - ../include/integration_structure.hpp \ + ../include/gauss_structure.hpp \ + ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl \ + ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ ../include/numerics_structure.hpp \ @@ -58,10 +62,13 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ ../src/definition_structure.cpp \ - ../src/fluid_model.cpp \ - ../src/fluid_model_pig.cpp \ - ../src/fluid_model_pvdw.cpp \ - ../src/fluid_model_ppr.cpp \ + ../src/fluid_model.cpp \ + ../src/fluid_model_pig.cpp \ + ../src/fluid_model_pvdw.cpp \ + ../src/fluid_model_ppr.cpp \ + ../src/gauss_structure.cpp \ + ../src/element_linear.cpp \ + ../src/element_structure.cpp \ ../src/integration_structure.cpp \ ../src/integration_time.cpp \ ../src/iteration_structure.cpp \ @@ -80,6 +87,9 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../src/numerics_machine_learning.cpp \ ../src/numerics_linearized_mean.cpp \ ../src/numerics_linearized_turbulent.cpp \ + ../src/numerics_fem_nonlinear_elasticity.cpp \ + ../src/numerics_fem_linear_elasticity.cpp \ + ../src/numerics_fem_elasticity.cpp \ ../src/numerics_structure.cpp \ ../src/numerics_machine_learning_turbulent.cpp \ ../src/numerics_template.cpp \ @@ -103,6 +113,7 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../src/solver_direct_wave.cpp \ ../src/solver_linearized_mean.cpp \ ../src/solver_linearized_turbulent.cpp \ + ../src/solver_fem_elasticity.cpp \ ../src/solver_structure.cpp \ ../src/solver_template.cpp \ ../src/SU2_CFD.cpp \ @@ -121,6 +132,7 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../src/variable_direct_wave.cpp \ ../src/variable_linearized_mean.cpp \ ../src/variable_linearized_turbulent.cpp \ + ../src/variable_fem_elasticity.cpp \ ../src/variable_structure.cpp \ ../src/variable_template.cpp diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 8b216d462cb..325d58d2400 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -50,23 +51,6 @@ ###################################################################################### VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -88,13 +72,9 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_CFD$(EXEEXT) subdir = SU2_CFD/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -109,6 +89,9 @@ am____bin_SU2_CFD_OBJECTS = \ ../src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT) \ ../src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT) \ ../src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT) \ + ../src/___bin_SU2_CFD-gauss_structure.$(OBJEXT) \ + ../src/___bin_SU2_CFD-element_linear.$(OBJEXT) \ + ../src/___bin_SU2_CFD-element_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-integration_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-integration_time.$(OBJEXT) \ ../src/___bin_SU2_CFD-iteration_structure.$(OBJEXT) \ @@ -127,6 +110,9 @@ am____bin_SU2_CFD_OBJECTS = \ ../src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT) \ + ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD-numerics_fem_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_template.$(OBJEXT) \ @@ -150,6 +136,7 @@ am____bin_SU2_CFD_OBJECTS = \ ../src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT) \ + ../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_template.$(OBJEXT) \ ../src/___bin_SU2_CFD-SU2_CFD.$(OBJEXT) \ @@ -168,24 +155,13 @@ am____bin_SU2_CFD_OBJECTS = \ ../src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT) \ + ../src/___bin_SU2_CFD-variable_fem_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_template.$(OBJEXT) ___bin_SU2_CFD_OBJECTS = $(am____bin_SU2_CFD_OBJECTS) ___bin_SU2_CFD_DEPENDENCIES = ../../Common/lib/libSU2.a ___bin_SU2_CFD_LINK = $(CXXLD) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -193,39 +169,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_CFD_SOURCES) DIST_SOURCES = $(___bin_SU2_CFD_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -269,8 +241,6 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -METIS_INCLUDE = @METIS_INCLUDE@ -METIS_LIB = @METIS_LIB@ MKDIR_P = @MKDIR_P@ MUTATIONPP_CXX = @MUTATIONPP_CXX@ MUTATIONPP_LD = @MUTATIONPP_LD@ @@ -282,17 +252,11 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ -PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ -SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ -TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ -TECIO_INCLUDE = @TECIO_INCLUDE@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -357,7 +321,11 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../include/fluid_model.hpp \ ../include/fluid_model.inl \ - ../include/integration_structure.hpp \ + ../include/gauss_structure.hpp \ + ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl \ + ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ ../include/numerics_structure.hpp \ @@ -374,10 +342,13 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ ../src/definition_structure.cpp \ - ../src/fluid_model.cpp \ - ../src/fluid_model_pig.cpp \ - ../src/fluid_model_pvdw.cpp \ - ../src/fluid_model_ppr.cpp \ + ../src/fluid_model.cpp \ + ../src/fluid_model_pig.cpp \ + ../src/fluid_model_pvdw.cpp \ + ../src/fluid_model_ppr.cpp \ + ../src/gauss_structure.cpp \ + ../src/element_linear.cpp \ + ../src/element_structure.cpp \ ../src/integration_structure.cpp \ ../src/integration_time.cpp \ ../src/iteration_structure.cpp \ @@ -396,6 +367,9 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../src/numerics_machine_learning.cpp \ ../src/numerics_linearized_mean.cpp \ ../src/numerics_linearized_turbulent.cpp \ + ../src/numerics_fem_nonlinear_elasticity.cpp \ + ../src/numerics_fem_linear_elasticity.cpp \ + ../src/numerics_fem_elasticity.cpp \ ../src/numerics_structure.cpp \ ../src/numerics_machine_learning_turbulent.cpp \ ../src/numerics_template.cpp \ @@ -419,6 +393,7 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../src/solver_direct_wave.cpp \ ../src/solver_linearized_mean.cpp \ ../src/solver_linearized_turbulent.cpp \ + ../src/solver_fem_elasticity.cpp \ ../src/solver_structure.cpp \ ../src/solver_template.cpp \ ../src/SU2_CFD.cpp \ @@ -437,6 +412,7 @@ ___bin_SU2_CFD_SOURCES = ../include/definition_structure.hpp \ ../src/variable_direct_wave.cpp \ ../src/variable_linearized_mean.cpp \ ../src/variable_linearized_turbulent.cpp \ + ../src/variable_fem_elasticity.cpp \ ../src/variable_structure.cpp \ ../src/variable_template.cpp @@ -490,11 +466,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -544,6 +517,12 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-gauss_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-element_linear.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-element_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-integration_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-integration_time.$(OBJEXT): \ @@ -580,6 +559,12 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-numerics_fem_elasticity.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT): \ @@ -626,6 +611,8 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_template.$(OBJEXT): \ @@ -662,6 +649,8 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-variable_fem_elasticity.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_template.$(OBJEXT): \ @@ -675,17 +664,93 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-SU2_CFD.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-element_linear.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-element_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-gauss_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-integration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-integration_time.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-iteration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_cgns.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_fieldview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_paraview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_su2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_tecplot.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-transport_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_template.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-SU2_CFD.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po@am__quote@ @@ -701,6 +766,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_machine_learning.Po@am__quote@ @@ -725,6 +793,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po@am__quote@ @@ -742,6 +811,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po@am__quote@ @@ -833,6 +903,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-fluid_model_ppr.obj `if test -f '../src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/fluid_model_ppr.cpp'; fi` +../src/___bin_SU2_CFD-gauss_structure.o: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp + +../src/___bin_SU2_CFD-gauss_structure.obj: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` + +../src/___bin_SU2_CFD-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo -c -o ../src/___bin_SU2_CFD-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/___bin_SU2_CFD-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo -c -o ../src/___bin_SU2_CFD-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + +../src/___bin_SU2_CFD-element_structure.o: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo -c -o ../src/___bin_SU2_CFD-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD-element_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp + +../src/___bin_SU2_CFD-element_structure.obj: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo -c -o ../src/___bin_SU2_CFD-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD-element_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` + ../src/___bin_SU2_CFD-integration_structure.o: ../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-integration_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo -c -o ../src/___bin_SU2_CFD-integration_structure.o `test -f '../src/integration_structure.cpp' || echo '$(srcdir)/'`../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po @@ -1085,6 +1197,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_linearized_turbulent.obj `if test -f '../src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_linearized_turbulent.cpp'; fi` +../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o: ../src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp + +../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj: ../src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` + +../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o: ../src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp + +../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj: ../src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` + +../src/___bin_SU2_CFD-numerics_fem_elasticity.o: ../src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp + +../src/___bin_SU2_CFD-numerics_fem_elasticity.obj: ../src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` + ../src/___bin_SU2_CFD-numerics_structure.o: ../src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo -c -o ../src/___bin_SU2_CFD-numerics_structure.o `test -f '../src/numerics_structure.cpp' || echo '$(srcdir)/'`../src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po @@ -1407,6 +1561,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_linearized_turbulent.obj `if test -f '../src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_linearized_turbulent.cpp'; fi` +../src/___bin_SU2_CFD-solver_fem_elasticity.o: ../src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp + +../src/___bin_SU2_CFD-solver_fem_elasticity.obj: ../src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` + ../src/___bin_SU2_CFD-solver_structure.o: ../src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo -c -o ../src/___bin_SU2_CFD-solver_structure.o `test -f '../src/solver_structure.cpp' || echo '$(srcdir)/'`../src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po @@ -1659,6 +1827,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_linearized_turbulent.obj `if test -f '../src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_linearized_turbulent.cpp'; fi` +../src/___bin_SU2_CFD-variable_fem_elasticity.o: ../src/variable_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp + +../src/___bin_SU2_CFD-variable_fem_elasticity.obj: ../src/variable_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` + ../src/___bin_SU2_CFD-variable_structure.o: ../src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo -c -o ../src/___bin_SU2_CFD-variable_structure.o `test -f '../src/variable_structure.cpp' || echo '$(srcdir)/'`../src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po @@ -1736,20 +1918,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1895,7 +2063,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 5b4933616b3..1ef060201ef 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -387,6 +387,12 @@ int main(int argc, char *argv[]) { surface_movement, grid_movement, FFDBox); break; + case FEM_ELASTICITY: + FEAIteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + break; + case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: AdjMeanFlowIteration(output, integration_container, geometry_container, solver_container, numerics_container, config_container, @@ -451,6 +457,10 @@ int main(int argc, char *argv[]) { StopCalc = integration_container[ZONE_0][HEAT_SOL]->GetConvergence(); break; case LINEAR_ELASTICITY: // This is a temporal fix, while we code the non-linear solver +// StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; + StopCalc = false; break; + case FEM_ELASTICITY: + // This is a temporal fix, while we code the non-linear solver // StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; StopCalc = false; break; case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 67846c8ff24..24137e504df 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -332,7 +332,7 @@ void Solver_Preprocessing(CSolver ***solver_container, CGeometry **geometry, lin_euler, lin_ns, tne2_euler, tne2_ns, adj_tne2_euler, adj_tne2_ns, - poisson, wave, fea, heat, + poisson, wave, fea, heat, fem, spalart_allmaras, neg_spalart_allmaras, menter_sst, machine_learning, transition, template_solver; @@ -346,7 +346,7 @@ void Solver_Preprocessing(CSolver ***solver_container, CGeometry **geometry, spalart_allmaras = false; menter_sst = false; machine_learning = false; poisson = false; neg_spalart_allmaras = false; wave = false; - fea = false; + fea = false; fem = false; heat = false; transition = false; template_solver = false; @@ -364,6 +364,7 @@ void Solver_Preprocessing(CSolver ***solver_container, CGeometry **geometry, case WAVE_EQUATION: wave = true; break; case HEAT_EQUATION: heat = true; break; case LINEAR_ELASTICITY: fea = true; break; + case FEM_ELASTICITY: fem = true; break; case ADJ_EULER : euler = true; adj_euler = true; break; case ADJ_NAVIER_STOKES : ns = true; turbulent = (config->GetKind_Turb_Model() != NONE); adj_ns = true; break; case ADJ_RANS : ns = true; turbulent = true; adj_ns = true; adj_turb = (!config->GetFrozen_Visc()); break; @@ -445,6 +446,9 @@ void Solver_Preprocessing(CSolver ***solver_container, CGeometry **geometry, if (fea) { solver_container[iMGlevel][FEA_SOL] = new CFEASolver(geometry[iMGlevel], config); } + if (fem) { + solver_container[iMGlevel][FEA_SOL] = new CFEM_ElasticitySolver(geometry[iMGlevel], config); + } /*--- Allocate solution for adjoint problem ---*/ if (adj_euler) { @@ -485,7 +489,7 @@ void Integration_Preprocessing(CIntegration **integration_container, turbulent, adj_turb, tne2_euler, adj_tne2_euler, tne2_ns, adj_tne2_ns, - poisson, wave, fea, heat, template_solver, transition; + poisson, wave, fea, fem, heat, template_solver, transition; /*--- Initialize some useful booleans ---*/ euler = false; adj_euler = false; lin_euler = false; @@ -496,7 +500,7 @@ void Integration_Preprocessing(CIntegration **integration_container, poisson = false; wave = false; heat = false; - fea = false; + fea = false; fem = false; transition = false; template_solver = false; @@ -512,6 +516,7 @@ void Integration_Preprocessing(CIntegration **integration_container, case WAVE_EQUATION: wave = true; break; case HEAT_EQUATION: heat = true; break; case LINEAR_ELASTICITY: fea = true; break; + case FEM_ELASTICITY: fem = true; break; case ADJ_EULER : euler = true; adj_euler = true; break; case ADJ_NAVIER_STOKES : ns = true; turbulent = (config->GetKind_Turb_Model() != NONE); adj_ns = true; break; case ADJ_TNE2_EULER : tne2_euler = true; adj_tne2_euler = true; break; @@ -534,6 +539,7 @@ void Integration_Preprocessing(CIntegration **integration_container, if (wave) integration_container[WAVE_SOL] = new CSingleGridIntegration(config); if (heat) integration_container[HEAT_SOL] = new CSingleGridIntegration(config); if (fea) integration_container[FEA_SOL] = new CStructuralIntegration(config); + if (fem) integration_container[FEA_SOL] = new CStructuralIntegration(config); /*--- Allocate solution for adjoint problem ---*/ if (adj_euler) integration_container[ADJFLOW_SOL] = new CMultiGridIntegration(config); @@ -568,6 +574,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, nPrimVarGrad_Adj_TNE2 = 0, nVar_Poisson = 0, nVar_FEA = 0, + nVar_FEM = 0, nVar_Wave = 0, nVar_Heat = 0, nVar_Lin_Flow = 0; @@ -583,7 +590,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, spalart_allmaras, neg_spalart_allmaras, menter_sst, machine_learning, poisson, wave, - fea, + fea, fem, heat, transition, template_solver; @@ -598,7 +605,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, poisson = false; adj_euler = false; adj_ns = false; adj_turb = false; wave = false; heat = false; fea = false; spalart_allmaras = false; neg_spalart_allmaras = false; - tne2_euler = false; tne2_ns = false; + tne2_euler = false; tne2_ns = false; fem = false; adj_tne2_euler = false; adj_tne2_ns = false; lin_euler = false; menter_sst = false; machine_learning = false; transition = false; @@ -616,6 +623,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, case WAVE_EQUATION: wave = true; break; case HEAT_EQUATION: heat = true; break; case LINEAR_ELASTICITY: fea = true; break; + case FEM_ELASTICITY: fem = true; break; case ADJ_EULER : euler = true; adj_euler = true; break; case ADJ_NAVIER_STOKES : ns = true; turbulent = (config->GetKind_Turb_Model() != NONE); adj_ns = true; break; case ADJ_TNE2_EULER : tne2_euler = true; adj_tne2_euler = true; break; @@ -654,6 +662,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, if (wave) nVar_Wave = solver_container[MESH_0][WAVE_SOL]->GetnVar(); if (fea) nVar_FEA = solver_container[MESH_0][FEA_SOL]->GetnVar(); + if (fem) nVar_FEM = solver_container[MESH_0][FEA_SOL]->GetnVar(); if (heat) nVar_Heat = solver_container[MESH_0][HEAT_SOL]->GetnVar(); /*--- Number of variables for adjoint problem ---*/ @@ -1462,4 +1471,12 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, } + /*--- Solver definition for the FEM problem ---*/ + if (fem) { + + /*--- Definition of the viscous scheme for each equation and mesh level ---*/ + numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_LinearElasticity(nDim, nVar_FEM, config); + + } + } diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp new file mode 100644 index 00000000000..b9845d24489 --- /dev/null +++ b/SU2_CFD/src/element_linear.cpp @@ -0,0 +1,479 @@ +/*! + * \file element_linear.cpp + * \brief Definition of the linear element structure + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/element_structure.hpp" + +CTRIA1::CTRIA1(void) : CElement() { + +} + +CTRIA1::CTRIA1(unsigned short val_nDim, unsigned long val_elID, CConfig *config) +: CElement(val_nDim, config) { + + unsigned short iGaussPoint=0; + unsigned short iNode, iGauss, jNode; + unsigned short nDimSq; + + nNodes = 3; + nGaussPoints = 1; + + nDimSq = nDim*nDim; + + GaussPoint = new CGaussVariable*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++) { + GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); + } + + /*--- Initialize structure for current and reference configuration ---*/ + + CurrentCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + CurrentCoord [iNode] = new double[nDim]; + } + + RefCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + RefCoord [iNode] = new double[nDim]; + } + + GaussWeight = new double [nGaussPoints]; + + GaussCoord = new double*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + GaussCoord [iGauss] = new double[nDim]; + } + + GaussCoord[0][0] = 0.333333333333333; GaussCoord[0][1] = 0.333333333333333; GaussWeight[0] = 0.5; + + Kab = new double **[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kab [iNode] = new double*[nNodes]; + for (jNode = 0; jNode < nNodes; jNode++){ + Kab [iNode][jNode] = new double[nDimSq]; + } + } + +} + +CTRIA1::~CTRIA1(void) { + + if (GaussPoint != NULL) delete [] GaussPoint; + +} + +void CTRIA1::ComputeGrad_Linear(void){ + +} + +void CTRIA1::ComputeGrad_NonLinear(void){ + +} + + +void CTRIA1::OutputGradN_X(CGeometry *geometry, CConfig *config){ + +} + +double CTRIA1::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim){ + + + return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim); + +} + + + + + +CQUAD4::CQUAD4(void) : CElement() { + +} + +CQUAD4::CQUAD4(unsigned short val_nDim, unsigned long val_elID, CConfig *config) +: CElement(val_nDim, config) { + + unsigned short iGaussPoint=0; + unsigned short iNode, iGauss, jNode; + unsigned short nDimSq; + + nNodes = 4; + nGaussPoints = 4; + + nDimSq = nDim*nDim; + + GaussPoint = new CGaussVariable*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++) { + GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); + } + + /*--- Initialize structure for current and reference configuration ---*/ + + CurrentCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + CurrentCoord [iNode] = new double[nDim]; + } + + RefCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + RefCoord [iNode] = new double[nDim]; + } + + GaussWeight = new double [nGaussPoints]; + + GaussCoord = new double*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + GaussCoord [iGauss] = new double[nDim]; + } + + GaussCoord[0][0] = -0.577350269189626; GaussCoord[0][1] = -0.577350269189626; GaussWeight[0] = 1.0; + GaussCoord[1][0] = 0.577350269189626; GaussCoord[1][1] = -0.577350269189626; GaussWeight[1] = 1.0; + GaussCoord[2][0] = 0.577350269189626; GaussCoord[2][1] = 0.577350269189626; GaussWeight[2] = 1.0; + GaussCoord[3][0] = -0.577350269189626; GaussCoord[3][1] = 0.577350269189626; GaussWeight[3] = 1.0; + + Kab = new double **[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kab [iNode] = new double*[nNodes]; + for (jNode = 0; jNode < nNodes; jNode++){ + Kab [iNode][jNode] = new double[nDimSq]; + } + } + +} + +CQUAD4::~CQUAD4(void) { + + if (GaussPoint != NULL) delete [] GaussPoint; + +} + +//void CQUAD4::ComputeGradN_X(CGeometry *geometry, CConfig *config){ +// +// double CoordCorn[4][2]; +// unsigned long PointCorners[4]; +// double Jacobian[2][2], dNiXj[4][2]; +// double GradNi_Xj; +// double ad[3][3]; +// double detJac; +// unsigned short iNode, iDim, iGauss, i, j; +// +// unsigned short val_iGauss; +// +// /*--- Retrieve the coordinates of the corners ---*/ +// +// for (iNode = 0; iNode < nNodes; iNode++) { +// PointCorners[iNode] = geometry->elem[elementID]->GetNode(iNode); //Check what's the best way to retrieve this +// for (iDim = 0; iDim < nDim; iDim++) { +// CoordCorn[iNode][iDim] = geometry->node[PointCorners[iNode]]->GetCoord(iDim); +// } +// } +// +// /*--- Compute the Jacobian matrix for each Gauss Point ---*/ +// +// for (iGauss = 0; iGauss < nGaussPoints ; iGauss++){ +// +// switch (iGauss){ +// +// case 0: +// +// dNiXj[0][0]=-0.394337567297407; dNiXj[1][0]=0.394337567297407; dNiXj[2][0]=0.105662432702594; dNiXj[3][0]=-0.105662432702594; +// dNiXj[0][1]=-0.394337567297407; dNiXj[1][1]=-0.105662432702594; dNiXj[2][1]=0.105662432702594; dNiXj[3][1]=0.394337567297407; +// +// break; +// case 1: +// +// dNiXj[0][0]=-0.394337567297407; dNiXj[1][0]=0.394337567297407; dNiXj[2][0]=0.105662432702594; dNiXj[3][0]=-0.105662432702594; +// dNiXj[0][1]=-0.105662432702594; dNiXj[1][1]=-0.394337567297407; dNiXj[2][1]=0.394337567297407; dNiXj[3][1]=0.105662432702594; +// +// break; +// +// case 2: +// +// dNiXj[0][0]=-0.105662432702594; dNiXj[1][0]=0.105662432702594; dNiXj[2][0]=0.394337567297407; dNiXj[3][0]=-0.394337567297407; +// dNiXj[0][1]=-0.105662432702594; dNiXj[1][1]=-0.394337567297407; dNiXj[2][1]=0.394337567297407; dNiXj[3][1]=0.105662432702594; +// +// break; +// +// case 3: +// +// dNiXj[0][0]=-0.105662432702594; dNiXj[1][0]=0.105662432702594; dNiXj[2][0]=0.394337567297407; dNiXj[3][0]=-0.394337567297407; +// dNiXj[0][1]=-0.394337567297407; dNiXj[1][1]=-0.105662432702594; dNiXj[2][1]=0.105662432702594; dNiXj[3][1]=0.394337567297407; +// +// break; +// } +// +// // dXi/d(xi) +// Jacobian[0][0] = CoordCorn[0][0]*dNiXj[0][0] + CoordCorn[1][0]*dNiXj[1][0] + CoordCorn[2][0]*dNiXj[2][0] + CoordCorn[3][0]*dNiXj[3][0]; +// Jacobian[1][0] = CoordCorn[0][1]*dNiXj[0][0] + CoordCorn[1][1]*dNiXj[1][0] + CoordCorn[2][1]*dNiXj[2][0] + CoordCorn[3][1]*dNiXj[3][0]; +// +// // dXi/d(eta) +// Jacobian[0][1] = CoordCorn[0][0]*dNiXj[0][1]+ CoordCorn[1][0]*dNiXj[1][1] + CoordCorn[2][0]*dNiXj[2][1] + CoordCorn[3][0]*dNiXj[3][1]; +// Jacobian[1][1] = CoordCorn[0][1]*dNiXj[0][1]+ CoordCorn[1][1]*dNiXj[1][1] + CoordCorn[2][1]*dNiXj[2][1] + CoordCorn[3][1]*dNiXj[3][1]; +// +// cout << Jacobian[0][0] << " " << Jacobian[1][0] << " " << Jacobian[0][1] << " " << Jacobian[1][1] << endl; +// +// /*--- Adjoint to Jacobian ---*/ +// +// ad[0][0] = Jacobian[1][1]; +// ad[0][1] = -Jacobian[0][1]; +// ad[1][0] = -Jacobian[1][0]; +// ad[1][1] = Jacobian[0][0]; +// +// /*--- Determinant of Jacobian ---*/ +// +// detJac = ad[0][0]*ad[1][1]-ad[0][1]*ad[1][0]; +// +// GaussPoint[iGauss]->SetJ_X(detJac); +// +// val_iGauss = GaussPoint[iGauss]->Get_iGauss(); +// +// cout << "val_iGauss " << val_iGauss << endl; +// /*--- Jacobian inverse ---*/ +// +//// for (i = 0; i < 2; i++) { +//// for (j = 0; j < 2; j++) { +//// Jacobian[i][j] = ad[i][j]/detJac; +//// } +//// } +// +// /*--- Jacobian inverse and transpose (need to double check this) ---*/ +// +// for (i = 0; i < 2; i++) { +// for (j = 0; j < 2; j++) { +// Jacobian[i][j] = ad[j][i]/detJac; +// } +// } +// +// for (iNode = 0; iNode < nNodes; iNode++){ +// +// for (iDim = 0; iDim < 2; iDim++) { +// for (j = 0; j < 2; j++) { +// GradNi_Xj += Jacobian[iDim][j]*dNiXj[iNode][j]; // Check this +// } +// GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj, iDim, iNode); +// } +// } +// } +// +// double GradN_X; +// +// for (iNode = 0; iNode < nNodes; iNode++){ +// for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ +// cout << iNode << " " << iGauss << " " ; +// for (iDim = 0; iDim < nDim; iDim++){ +// GradN_X = GetGradNi_X(iNode, iGauss, iDim); +// cout << GradN_X << " "; +// } +// cout << endl; +// } +// } +//} + +void CQUAD4::ComputeGrad_Linear(void){ + + double Xi, Eta; + double Jacobian[2][2], dNiXj[4][2]; + double detJac, GradNi_Xj; + double ad[2][2]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = -0.25*(1.0-Eta); dNiXj[0][1] = -0.25*(1.0-Xi); + dNiXj[1][0] = 0.25*(1.0-Eta); dNiXj[1][1] = -0.25*(1.0+Xi); + dNiXj[2][0] = 0.25*(1.0+Eta); dNiXj[2][1] = 0.25*(1.0+Xi); + dNiXj[3][0] = -0.25*(1.0+Eta); dNiXj[3][1] = 0.25*(1.0-Xi); + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jacobian[iDim][jDim] = 0.0; + for (iNode = 0; iNode < 4; iNode++) { + Jacobian[iDim][jDim] = Jacobian[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad[0][0] = Jacobian[1][1]; + ad[0][1] = -Jacobian[0][1]; + ad[1][0] = -Jacobian[1][0]; + ad[1][1] = Jacobian[0][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac = ad[0][0]*ad[1][1]-ad[0][1]*ad[1][0]; + + GaussPoint[iGauss]->SetJ_X(detJac); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jacobian[iDim][jDim] = ad[iDim][jDim]/detJac; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < 4; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj += Jacobian[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj, iDim, iNode); + } + } + } + +} + +void CQUAD4::ComputeGrad_NonLinear(void){ + + double Xi, Eta; + double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[4][2]; + double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + double ad_Ref[2][2], ad_Curr[2][2]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = -0.25*(1.0-Eta); dNiXj[0][1] = -0.25*(1.0-Xi); + dNiXj[1][0] = 0.25*(1.0-Eta); dNiXj[1][1] = -0.25*(1.0+Xi); + dNiXj[2][0] = 0.25*(1.0+Eta); dNiXj[2][1] = 0.25*(1.0+Xi); + dNiXj[3][0] = -0.25*(1.0+Eta); dNiXj[3][1] = 0.25*(1.0-Xi); + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jac_Ref[iDim][jDim] = 0.0; + Jac_Curr[iDim][jDim] = 0.0; + for (iNode = 0; iNode < 4; iNode++) { + Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad_Ref[0][0] = Jac_Ref[1][1]; + ad_Ref[0][1] = -Jac_Ref[0][1]; + ad_Ref[1][0] = -Jac_Ref[1][0]; + ad_Ref[1][1] = Jac_Ref[0][0]; + + ad_Curr[0][0] = Jac_Curr[1][1]; + ad_Curr[0][1] = -Jac_Curr[0][1]; + ad_Curr[1][0] = -Jac_Curr[1][0]; + ad_Curr[1][1] = Jac_Curr[0][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac_Ref = ad_Ref[0][0]*ad_Ref[1][1]-ad_Ref[0][1]*ad_Ref[1][0]; + detJac_Curr = ad_Curr[0][0]*ad_Curr[1][1]-ad_Curr[0][1]*ad_Curr[1][0]; + + GaussPoint[iGauss]->SetJ_X(detJac_Ref); + GaussPoint[iGauss]->SetJ_x(detJac_Curr); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jac_Ref[iDim][jDim] = ad_Ref[iDim][jDim]/detJac_Ref; + Jac_Curr[iDim][jDim] = ad_Curr[iDim][jDim]/detJac_Curr; + } + } + + + cout << detJac_Ref << " " << detJac_Curr << endl; + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < 4; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj_Ref = 0.0; + GradNi_Xj_Curr = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj_Ref += Jac_Ref[iDim][jDim]*dNiXj[iNode][jDim]; + GradNi_Xj_Curr += Jac_Curr[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj_Ref, iDim, iNode); + GaussPoint[iGauss]->SetGradNi_xj(GradNi_Xj_Curr, iDim, iNode); + } + } + } + +} + +void CQUAD4::OutputGradN_X(CGeometry *geometry, CConfig *config){ + + unsigned short iNode, iDim, iGauss, i, j; + double number; + +// number = GaussPoint[0]->GetGradNi_Xj(iNode,iDim); +// +// for (iGauss = 0; iGauss < nGaussPoints ; iGauss++){ +// cout << iGauss << " "; +// for (iNode = 0; iNode < nNodes; iNode++){ +// cout << iNode << " "; +// for (iDim = 0; iDim < nDim; iDim++){ +// number = GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim); +// cout << number << " "; +// } +// cout << endl; +// } +// +// } + + + +} + + + + + + diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp new file mode 100644 index 00000000000..a3187e7df9c --- /dev/null +++ b/SU2_CFD/src/element_structure.cpp @@ -0,0 +1,111 @@ +/*! + * \file element_structure.cpp + * \brief Definition of the finite element structure (elements) + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + + +#include "../include/element_structure.hpp" + +unsigned short CElement::nDim = 0; + +CElement::CElement(void) { + + CurrentCoord = NULL; + RefCoord = NULL; + GaussWeight = NULL; + GaussCoord = NULL; + + GaussPoint = NULL; + + nNodes = 0; + nGaussPoints = 0; + +} + + +CElement::CElement(unsigned short val_nDim, CConfig *config) { + + /*--- Initializate the number of dimension and some structures we need ---*/ + nDim = val_nDim; + + CurrentCoord = NULL; + RefCoord = NULL; + GaussWeight = NULL; + GaussCoord = NULL; + +} + +CElement::~CElement(void) { + unsigned short iVar; + +} + +double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim){ + + return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim); + +} + +void CElement::Add_Kab(double **val_Kab, unsigned short nodeA, unsigned short nodeB){ + + unsigned short iDim, jDim; + + for(iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Kab[nodeA][nodeB][iDim*nDim+jDim] += val_Kab[iDim][jDim]; + } + } +} + +void CElement::Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short nodeB){ + + unsigned short iDim, jDim; + + for(iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Kab[nodeA][nodeB][iDim*nDim+jDim] += val_Kab[jDim][iDim]; + } + } +} + +void CElement::clearElement(void){ + + unsigned short iNode, jNode, iDim, nDimSq; + + nDimSq = nDim*nDim; + + for(iNode = 0; iNode < nNodes; iNode++) { + for (jNode = 0; jNode < nNodes; jNode++) { + for(iDim = 0; iDim < nDimSq; iDim++){ + Kab[iNode][jNode][iDim] = 0.0; + } + } + } +} + diff --git a/SU2_CFD/src/gauss_structure.cpp b/SU2_CFD/src/gauss_structure.cpp new file mode 100644 index 00000000000..1f8f3cdbeec --- /dev/null +++ b/SU2_CFD/src/gauss_structure.cpp @@ -0,0 +1,66 @@ +/*! + * \file gauss_structure.cpp + * \brief Definition of the gaussian points structure + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/gauss_structure.hpp" + +CGaussVariable::CGaussVariable(void) { + + GradNi_Xj = NULL; + GradNi_xj = NULL; + J_X = 0.0; + J_x = 0.0; + iGaussPoint = 0; + +} + +CGaussVariable::CGaussVariable(unsigned short val_iGauss, unsigned short val_nDim, unsigned short val_nNodes) { + + GradNi_Xj = new double* [val_nNodes]; + for (unsigned short iNode = 0; iNode < val_nNodes; iNode++) + GradNi_Xj[iNode] = new double [val_nDim]; + + GradNi_xj = new double* [val_nNodes]; + for (unsigned short iNode = 0; iNode < val_nNodes; iNode++) + GradNi_xj[iNode] = new double [val_nDim]; + + J_X = 0.0; + J_x = 0.0; + + iGaussPoint = val_iGauss; + +} + +CGaussVariable::~CGaussVariable(void) { + + if (GradNi_Xj != NULL) delete [] GradNi_Xj; + if (GradNi_xj != NULL) delete [] GradNi_xj; + +} diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 26a9c05ebed..fc3fb47c8c4 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -261,7 +261,7 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai /*--- Fluid time integration schemes ---*/ - if (KindSolver != LINEAR_ELASTICITY){ + if ((KindSolver != LINEAR_ELASTICITY) && (KindSolver != FEM_ELASTICITY)) { switch (config->GetKind_TimeIntScheme()) { case (RUNGE_KUTTA_EXPLICIT): @@ -278,7 +278,7 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai /*--- Structural time integration schemes ---*/ } - else if (KindSolver == LINEAR_ELASTICITY){ + else if ((KindSolver == LINEAR_ELASTICITY) || (KindSolver == FEM_ELASTICITY)) { switch (config->GetKind_TimeIntScheme_FEA()) { case (CD_EXPLICIT): diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp new file mode 100644 index 00000000000..a78366440c0 --- /dev/null +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -0,0 +1,83 @@ +/*! + * \file numerics_fem_linear_elasticity.cpp + * \brief This file contains the routines for setting the tangent matrix and residual of a FEM linear elastic structural problem. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/numerics_structure.hpp" +#include + +CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVar, + CConfig *config) : CNumerics(val_nDim, val_nVar, config) { + + E = config->GetElasticyMod(); + Nu = config->GetPoissonRatio(); + Rho_s = config->GetMaterialDensity(); + Mu = E / (2.0*(1.0 + Nu)); + Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); + + unsigned short i; + + KAux_ab = new double* [nDim]; + for (i = 0; i < nDim; i++) { + KAux_ab[i] = new double[nDim]; + } + + + if (nDim == 2){ + Ba_Mat = new double* [3]; + Bb_Mat = new double* [3]; + D_Mat = new double* [3]; + GradNi_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + for (i = 0; i < 3; i++) { + Ba_Mat[i] = new double[nDim]; + Bb_Mat[i] = new double[nDim]; + D_Mat[i] = new double[3]; + } + for (i = 0; i < 4; i++) { + GradNi_Mat[i] = new double[nDim]; + } + } + else if (nDim == 3){ + Ba_Mat = new double* [6]; + Bb_Mat = new double* [6]; + D_Mat = new double* [6]; + GradNi_Mat = new double* [8]; /*--- As of now, 4 is the maximum number of nodes for 3D problems ---*/ + for (i = 0; i < 6; i++) { + Ba_Mat[i] = new double[nDim]; + Bb_Mat[i] = new double[nDim]; + D_Mat[i] = new double[6]; + } + for (i = 0; i < 8; i++) { + GradNi_Mat[i] = new double[nDim]; + } + } +} + +CFEM_Elasticity::~CFEM_Elasticity(void) { + +} + diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp new file mode 100644 index 00000000000..d187cdf35b1 --- /dev/null +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -0,0 +1,189 @@ +/*! + * \file numerics_fem_elasticity.cpp + * \brief This file contains the routines for setting the FEM elastic structural problem. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/numerics_structure.hpp" +#include + +CFEM_LinearElasticity::CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, + CConfig *config) : CFEM_Elasticity(val_nDim, val_nVar, config) { + + + /*--- If it is linear elasticity, D is constant along the calculations ---*/ + + Compute_Constitutive_Matrix(); + +} + +CFEM_LinearElasticity::~CFEM_LinearElasticity(void) { + +} + +void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ + + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + unsigned short iDim; + unsigned short bDim; + + double Weight, Jac_X; + + double AuxMatrix[6][3]; + + /*--- Initialize auxiliary matrices ---*/ + + if (nDim == 2) bDim = 3; + else if (nDim == 3) bDim = 6; + + for (i = 0; i < bDim; i++){ + for (j = 0; j < nDim; j++){ + Ba_Mat[i][j] = 0.0; + Bb_Mat[i][j] = 0.0; + } + } + + for (i = 0; i < 6; i++){ + for (j = 0; j < 3; j++){ + AuxMatrix[i][j] = 0.0; + AuxMatrix[i][j] = 0.0; + } + } + + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_Linear(); + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight(iGauss); + Jac_X = element->GetJ_X(iGauss); + + /*--- Retrieve the values of the gradients of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + } + } + + for (iNode = 0; iNode < nNode; iNode++){ + + if (nDim == 2){ + Ba_Mat[0][0] = GradNi_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Mat[iNode][1]; + Ba_Mat[2][0] = GradNi_Mat[iNode][1]; + Ba_Mat[2][1] = GradNi_Mat[iNode][0]; + } + else if (nDim ==3){ + Ba_Mat[0][0] = GradNi_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Mat[iNode][1]; + Ba_Mat[2][2] = GradNi_Mat[iNode][2]; + Ba_Mat[3][0] = GradNi_Mat[iNode][1]; + Ba_Mat[3][1] = GradNi_Mat[iNode][0]; + Ba_Mat[4][0] = GradNi_Mat[iNode][2]; + Ba_Mat[4][2] = GradNi_Mat[iNode][0]; + Ba_Mat[5][1] = GradNi_Mat[iNode][2]; + Ba_Mat[5][2] = GradNi_Mat[iNode][1]; ; + } + + /*--- Compute the BT.D Matrix ---*/ + + for (i = 0; i < nDim; i++){ + for (j = 0; j < bDim; j++){ + AuxMatrix[i][j] = 0.0; + for (k = 0; k < bDim; k++){ + AuxMatrix[i][j] += Ba_Mat[k][i]*D_Mat[k][j]; + } + } + } + + /*--- Assumming symmetry ---*/ + for (jNode = iNode; jNode < nNode; jNode++){ + if (nDim == 2){ + Bb_Mat[0][0] = GradNi_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Mat[jNode][1]; + Bb_Mat[2][0] = GradNi_Mat[jNode][1]; + Bb_Mat[2][1] = GradNi_Mat[jNode][0]; + } + else if (nDim ==3){ + Bb_Mat[0][0] = GradNi_Mat[iNode][0]; + Bb_Mat[1][1] = GradNi_Mat[iNode][1]; + Bb_Mat[2][2] = GradNi_Mat[iNode][2]; + Bb_Mat[3][0] = GradNi_Mat[iNode][1]; + Bb_Mat[3][1] = GradNi_Mat[iNode][0]; + Bb_Mat[4][0] = GradNi_Mat[iNode][2]; + Bb_Mat[4][2] = GradNi_Mat[iNode][0]; + Bb_Mat[5][1] = GradNi_Mat[iNode][2]; + Bb_Mat[5][2] = GradNi_Mat[iNode][1]; + } + + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + KAux_ab[i][j] = 0.0; + for (k = 0; k < bDim; k++){ + KAux_ab[i][j] += Weight * AuxMatrix[i][k] * Bb_Mat[k][j] * Jac_X; + } + } + } + + element->Add_Kab(KAux_ab,iNode, jNode); + /*--- Symmetric terms --*/ + if (iNode != jNode){ + element->Add_Kab_T(KAux_ab, jNode, iNode); + } + + } + + } + + } +} + + +void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ + + if (nDim == 2){ + D_Mat[0][0] = E/(1-Nu*Nu); D_Mat[0][1] = (E*Nu)/(1-Nu*Nu); D_Mat[0][2] = 0.0; + D_Mat[1][0] = (E*Nu)/(1-Nu*Nu); D_Mat[1][1] = E/(1-Nu*Nu); D_Mat[1][2] = 0.0; + D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + } + else if (nDim == 3){ + /*--- Compute the D Matrix (for plane strain and 3-D)---*/ + + D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = Lambda; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; + D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = Lambda; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; + D_Mat[2][0] = Lambda; D_Mat[2][1] = Lambda; D_Mat[2][2] = Lambda + 2.0*Mu; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; + D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; + D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu; D_Mat[4][5] = 0.0; + D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu; + + } + +} diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp new file mode 100644 index 00000000000..dc577aeea6f --- /dev/null +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -0,0 +1,297 @@ +/*! + * \file numerics_fem_nonlinear_elasticity.cpp + * \brief This file contains the routines for setting the tangent matrix and residual of a FEM nonlinear elastic structural problem. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/numerics_structure.hpp" +#include + +CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsigned short val_nVar, + CConfig *config) : CFEM_Elasticity(val_nDim, val_nVar, config) { + + unsigned short i; + + F_Mat = new double *[3]; + b_Mat = new double *[3]; + Stress_Tensor = new double *[3]; + for (i = 0; i < 3; i++){ + F_Mat[i] = new double [3]; + b_Mat[i] = new double [3]; + Stress_Tensor[i] = new double [3]; + } + + if (nDim == 2){ + currentCoord = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + for (i = 0; i < 4; i++) currentCoord[i] = new double[nDim]; + } + else if (nDim == 3){ + currentCoord = new double* [8]; /*--- As of now, 4 is the maximum number of nodes for 3D problems ---*/ + for (i = 0; i < 8; i++) currentCoord[i] = new double[nDim]; + } + + J_F = 0.0; + + +} + +CFEM_NonlinearElasticity::~CFEM_NonlinearElasticity(void) { + +} + + +void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ + + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + unsigned short iDim; + unsigned short bDim; + + double Weight, Jac_X; + + double AuxMatrix[6][3]; + + /*--- Initialize auxiliary matrices ---*/ + + if (nDim == 2) bDim = 3; + else if (nDim == 3) bDim = 6; + + for (i = 0; i < bDim; i++){ + for (j = 0; j < nDim; j++){ + Ba_Mat[i][j] = 0.0; + Bb_Mat[i][j] = 0.0; + } + } + + for (i = 0; i < 6; i++){ + for (j = 0; j < 3; j++){ + AuxMatrix[i][j] = 0.0; + AuxMatrix[i][j] = 0.0; + } + } + + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_Linear(); + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight(iGauss); + Jac_X = element->GetJ_X(iGauss); + + /*--- Initialize the deformation gradient for each Gauss Point ---*/ + + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + F_Mat[i][j] = 0.0; + b_Mat[i][j] = 0.0; + } + } + + /*--- Retrieve the values of the gradients of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + + for (iNode = 0; iNode < nNode; iNode++){ + + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + currentCoord[iNode][iDim] = element->GetCurr_Coord(iNode, iDim); + } + + /*--- Compute the deformation gradient ---*/ + + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Mat[iNode][j]; + } + } + + /*--- This implies plane strain --> Consider the possible implementation for plane stress --*/ + if (nDim == 2){ + F_Mat[3][3] = 1.0; + } + + } + + /*--- Determinant of F --> Jacobian of the transformation ---*/ + + J_F = F_Mat[0][0]*F_Mat[1][1]*F_Mat[2][2]+ + F_Mat[0][1]*F_Mat[1][2]*F_Mat[2][0]+ + F_Mat[0][2]*F_Mat[1][0]*F_Mat[2][1]- + F_Mat[0][2]*F_Mat[1][1]*F_Mat[2][0]- + F_Mat[1][2]*F_Mat[2][1]*F_Mat[0][0]- + F_Mat[2][2]*F_Mat[0][1]*F_Mat[1][0]; + + /*--- Compute the left Cauchy deformation tensor ---*/ + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + for (k = 0; k < 3; k++){ + b_Mat[i][j] += F_Mat[i][k]*F_Mat[j][k]; + } + } + } + + + for (iNode = 0; iNode < nNode; iNode++){ + + if (nDim == 2){ + Ba_Mat[0][0] = GradNi_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Mat[iNode][1]; + Ba_Mat[2][0] = GradNi_Mat[iNode][1]; + Ba_Mat[2][1] = GradNi_Mat[iNode][0]; + } + else if (nDim ==3){ + Ba_Mat[0][0] = GradNi_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Mat[iNode][1]; + Ba_Mat[2][2] = GradNi_Mat[iNode][2]; + Ba_Mat[3][0] = GradNi_Mat[iNode][1]; + Ba_Mat[3][1] = GradNi_Mat[iNode][0]; + Ba_Mat[4][0] = GradNi_Mat[iNode][2]; + Ba_Mat[4][2] = GradNi_Mat[iNode][0]; + Ba_Mat[5][1] = GradNi_Mat[iNode][2]; + Ba_Mat[5][2] = GradNi_Mat[iNode][1]; ; + } + + + /*--- Compute the constitutive matrix ---*/ + + Compute_Constitutive_Matrix(); + + /*--- Compute the BT.D Matrix ---*/ + + for (i = 0; i < nDim; i++){ + for (j = 0; j < bDim; j++){ + AuxMatrix[i][j] = 0.0; + for (k = 0; k < bDim; k++){ + AuxMatrix[i][j] += Ba_Mat[k][i]*D_Mat[k][j]; + } + } + } + + /*--- Assumming symmetry ---*/ + for (jNode = iNode; jNode < nNode; jNode++){ + if (nDim == 2){ + Bb_Mat[0][0] = GradNi_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Mat[jNode][1]; + Bb_Mat[2][0] = GradNi_Mat[jNode][1]; + Bb_Mat[2][1] = GradNi_Mat[jNode][0]; + } + else if (nDim ==3){ + Bb_Mat[0][0] = GradNi_Mat[iNode][0]; + Bb_Mat[1][1] = GradNi_Mat[iNode][1]; + Bb_Mat[2][2] = GradNi_Mat[iNode][2]; + Bb_Mat[3][0] = GradNi_Mat[iNode][1]; + Bb_Mat[3][1] = GradNi_Mat[iNode][0]; + Bb_Mat[4][0] = GradNi_Mat[iNode][2]; + Bb_Mat[4][2] = GradNi_Mat[iNode][0]; + Bb_Mat[5][1] = GradNi_Mat[iNode][2]; + Bb_Mat[5][2] = GradNi_Mat[iNode][1]; + } + + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + KAux_ab[i][j] = 0.0; + for (k = 0; k < bDim; k++){ + KAux_ab[i][j] += Weight * AuxMatrix[i][k] * Bb_Mat[k][j] * Jac_X; + } + } + } + + element->Add_Kab(KAux_ab,iNode, jNode); + /*--- Symmetric terms --*/ + if (iNode != jNode){ + element->Add_Kab_T(KAux_ab, jNode, iNode); + } + + } + + } + + } + +} + +CFEM_NeoHookean_Comp::CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, + CConfig *config) : CFEM_NonlinearElasticity(val_nDim, val_nVar, config) { + + +} + +CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { + +} + +void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(void) { + + unsigned short i,j; + double Mu_p, Lambda_p; + double dij; + + /*--- This can be done in a better way ---*/ + if (J_F != 0.0){ + Mu_p = (Mu - Lambda*log(J_F))/J_F; + Lambda_p = Lambda/J_F; + } + + D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; + D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; + D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; + D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; + D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; + D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; + + + +} + +void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(void) { + + unsigned short i,j; + double Mu_J, Lambda_J; + double dij; + + /*--- This can be done in a better way ---*/ + if (J_F != 0.0){ + Mu_J = Mu/J_F; + Lambda_J = Lambda/J_F; + } + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + if (i == j) dij = 1.0; + else if (i != j) dij = 0.0; + Stress_Tensor[i][j] = Mu_J * (b_Mat[i][j] - dij) + Lambda_J * log(J_F) * dij; + } + } + + +} + + + diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index e80f42fe2b8..ec07ef51f09 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -65,7 +65,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s filename = config->GetFlow_FileName(); } - if (Kind_Solver == LINEAR_ELASTICITY){ + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { if (surf_sol) filename = config->GetSurfStructure_FileName().c_str(); else @@ -366,7 +366,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s for (iVar = 0; iVar < nVar_Consv; iVar++) { - if ( Kind_Solver == LINEAR_ELASTICITY ) + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) Paraview_File << "\nSCALARS Displacement_" << iVar+1 << " float 1\n"; else Paraview_File << "\nSCALARS Conservative_" << iVar+1 << " float 1\n"; @@ -683,7 +683,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s } - if ( Kind_Solver == LINEAR_ELASTICITY ) { + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { Paraview_File << "\nSCALARS Sxx float 1\n"; Paraview_File << "LOOKUP_TABLE default\n"; @@ -819,7 +819,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign } } - if (Kind_Solver == LINEAR_ELASTICITY){ + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)){ if (surf_sol) filename = config->GetSurfStructure_FileName().c_str(); else @@ -1124,7 +1124,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign for (iVar = 0; iVar < nVar_Consv; iVar++) { - if ( Kind_Solver == LINEAR_ELASTICITY ) + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) Paraview_File << "\nSCALARS Displacement_" << iVar+1 << " float 1\n"; else Paraview_File << "\nSCALARS Conservative_" << iVar+1 << " float 1\n"; @@ -1442,7 +1442,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign } - if ( Kind_Solver == LINEAR_ELASTICITY ) { + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { Paraview_File << "\nSCALARS Sxx float 1\n"; Paraview_File << "LOOKUP_TABLE default\n"; diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 7228cc6b109..ca57c391a99 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -1879,6 +1879,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv case WAVE_EQUATION: FirstIndex = WAVE_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case HEAT_EQUATION: FirstIndex = HEAT_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case LINEAR_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; + case FEM_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_EULER : case ADJ_NAVIER_STOKES : FirstIndex = ADJFLOW_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_TNE2_EULER : case ADJ_TNE2_NAVIER_STOKES : FirstIndex = ADJTNE2_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_RANS : FirstIndex = ADJFLOW_SOL; if (config->GetFrozen_Visc()) SecondIndex = NONE; else SecondIndex = ADJTURB_SOL; ThirdIndex = NONE; break; @@ -1965,7 +1966,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv iVar_Sens = nVar_Total; nVar_Total += 2; } - if (Kind_Solver == LINEAR_ELASTICITY) { + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { iVar_FEA_Stress = nVar_Total; nVar_Total += 3; if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} iVar_FEA_Extra = nVar_Total; nVar_Total += 2; @@ -3146,7 +3147,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Communicate the Linear elasticity stresses (2D) ---*/ - if (Kind_Solver == LINEAR_ELASTICITY) { + if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { /*--- Loop over this partition to collect the current variable ---*/ @@ -3207,7 +3208,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Communicate the Linear elasticity stresses (3D) ---*/ - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { + if (((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) && (geometry->GetnDim() == 3)) { /*--- Loop over this partition to collect the current variable ---*/ @@ -3270,7 +3271,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Communicate the Linear elasticity ---*/ - if ( Kind_Solver == LINEAR_ELASTICITY ) { + if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) { /*--- Loop over this partition to collect the current variable ---*/ jPoint = 0; @@ -3680,7 +3681,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, } for (iVar = 0; iVar < nVar_Consv; iVar++) { - if ( Kind_Solver == LINEAR_ELASTICITY ) + if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) restart_file << "\t\"Displacement_" << iVar+1<<"\""; else restart_file << "\t\"Conservative_" << iVar+1<<"\""; @@ -3756,11 +3757,11 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, restart_file << "\t\"Surface_Sensitivity\"\t\"Solution_Sensor\""; } - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 2)) { + if (((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) && (geometry->GetnDim() == 2)) { restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; } - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { + if (((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) && (geometry->GetnDim() == 3)) { restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; } @@ -4051,6 +4052,11 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { ConvHist_file[0] << begin << fea_coeff; ConvHist_file[0] << fea_resid << end; break; + + case FEM_ELASTICITY: + ConvHist_file[0] << begin << fea_coeff; + ConvHist_file[0] << fea_resid << end; + break; } @@ -4148,6 +4154,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, bool wave = (config[val_iZone]->GetKind_Solver() == WAVE_EQUATION); bool heat = (config[val_iZone]->GetKind_Solver() == HEAT_EQUATION); bool fea = (config[val_iZone]->GetKind_Solver() == LINEAR_ELASTICITY); + bool fem = (config[val_iZone]->GetKind_Solver() == FEM_ELASTICITY); bool TNE2 = ((config[val_iZone]->GetKind_Solver() == TNE2_EULER) || (config[val_iZone]->GetKind_Solver() == TNE2_NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == ADJ_TNE2_EULER) || (config[val_iZone]->GetKind_Solver() == ADJ_TNE2_NAVIER_STOKES)); bool flow = (config[val_iZone]->GetKind_Solver() == EULER) || (config[val_iZone]->GetKind_Solver() == NAVIER_STOKES) || @@ -4218,6 +4225,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (TNE2) nVar_TNE2 = config[val_iZone]->GetnSpecies()+nDim+2; if (wave) nVar_Wave = 2; if (fea) nVar_FEA = nDim; + if (fem) nVar_FEA = nDim; if (heat) nVar_Heat = 1; if (freesurface) nVar_LevelSet = 1; @@ -4529,6 +4537,20 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, break; + case FEM_ELASTICITY: + + /*--- FEA coefficients ---*/ + + Total_CFEA = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetTotal_CFEA(); + + /*--- Plasma Residuals ---*/ + + for (iVar = 0; iVar < nVar_FEA; iVar++) { + residual_fea[iVar] = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetRes_RMS(iVar); + } + + break; + } /*--- Header frequency ---*/ @@ -4771,6 +4793,13 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, break; + case FEM_ELASTICITY: + + sprintf (direct_coeff, ", %12.10f", Total_CFEA); + sprintf (fea_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), dummy, dummy, dummy, dummy ); + + break; + } } @@ -4953,6 +4982,14 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (nDim == 3) cout << " Res[Displx]" << " Res[Disply]" << " Res[Displz]" << " CFEA(Total)"<< endl; break; + case FEM_ELASTICITY : + if (!Unsteady) cout << endl << " Iter" << " Time(s)"; + else cout << endl << " IntIter" << " ExtIter"; + + if (nDim == 2) cout << " Res[Displx]" << " Res[Disply]" << " CFEM(Total)"<< endl; + if (nDim == 3) cout << " Res[Displx]" << " Res[Disply]" << " Res[Displz]" << " CFEM(Total)"<< endl; + break; + case ADJ_EULER : case ADJ_NAVIER_STOKES : /*--- Visualize the maximum residual ---*/ @@ -5257,6 +5294,24 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout << endl; break; + case FEM_ELASTICITY: + + if (!DualTime_Iteration) { + ConvHist_file[0] << begin << fea_coeff << fea_resid << end; + ConvHist_file[0].flush(); + } + + cout.precision(6); + cout.setf(ios::fixed, ios::floatfield); + cout.width(15); cout << log10(residual_fea[0]); + cout.width(15); cout << log10(residual_fea[1]); + if (nDim == 3) { cout.width(15); cout << log10(residual_fea[2]); } + cout.precision(4); + cout.setf(ios::scientific, ios::floatfield); + cout.width(14); cout << Total_CFEA; + cout << endl; + break; + case ADJ_EULER : case ADJ_NAVIER_STOKES : if (!DualTime_Iteration) { diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index c479d585faf..f25b58e7b90 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -523,6 +523,26 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta } + double checkJacobian; + unsigned short iNode, jNode; + + ofstream myfile; + myfile.open ("oldSolver.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = StiffMatrixSpace.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + } void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp new file mode 100644 index 00000000000..b08c4878f0c --- /dev/null +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -0,0 +1,209 @@ +/*! + * \file solution_template.cpp + * \brief Main subroutines for solving direct FEM elasticity problems. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/solver_structure.hpp" + +CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { + + nElement = 0; + nDim = 0; + nMarker = 0; + + nPoint = 0; + nPointDomain = 0; + + element_container = NULL; + node = NULL; + +} + +CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { + + unsigned long iPoint, iElem; + unsigned short iVar, jVar, iDim, NodesElement = 0, nKindElements; + + nElement = geometry->GetnElem(); + nDim = geometry->GetnDim(); + nMarker = geometry->GetnMarker(); + + nPoint = geometry->GetnPoint(); + nPointDomain = geometry->GetnPointDomain(); + + nKindElements = 2; + + element_container = new CElement*[nKindElements]; + node = new CVariable*[nPoint]; + + GradN_X = new double [nDim]; + GradN_x = new double [nDim]; + + nVar = nDim; + + /*--- Define some auxiliary vectors related to the residual ---*/ + + Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; + Point_Max_Coord = new double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Point_Max_Coord[iVar] = new double[nDim]; + for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; + } + + /*--- Define some auxiliary vectors related to the solution ---*/ + + Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + + bool restart = (config->GetRestart() || config->GetRestart_Flow()); + + /*--- Check for a restart, initialize from zero otherwise ---*/ + + if (!restart) { + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + node[iPoint] = new CFEM_LElasVariable(Solution, nDim, nVar, config); + } + } + else { + + /* The restart from a file needs to be implemented */ + + } + + /*--- Term ij of the Jacobian ---*/ + + Jacobian_ij = new double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_ij[iVar] = new double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_ij[iVar][jVar] = 0.0; + } + } + + Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + + /*--- Here is where we assign the kind of each element ---*/ + + for (iElem = 0; iElem < nElement; iElem++){ + + /*--- As of now, only QUAD4 elements ---*/ + element_container[iElem] = new CQUAD4(nDim, iElem, config); + + } + + if (nDim == 2){ + element_container[EL_TRIA] = new CTRIA1(nDim, iElem, config); + element_container[EL_QUAD] = new CQUAD4(nDim, iElem, config); + } + +} + +CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { } + +void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { + + unsigned long iPoint, iElem, iVar, jVar; + unsigned short iNode, iGauss, iDim; + unsigned short nNodes, nGauss; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + double val_Coord, val_Sol; + + double *Kab; + unsigned short NelNodes, jNode; + + cout << nElement << endl; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) nNodes = 8; + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[EL_QUAD]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[EL_QUAD]->SetCurr_Coord(val_Coord, iNode, iDim); + } + } + + numerics[VISC_TERM]->Compute_Tangent_Matrix(element_container[EL_QUAD]); + + NelNodes = element_container[EL_QUAD]->GetnNodes(); + for (iNode = 0; iNode < NelNodes; iNode++){ + for (jNode = 0; jNode < NelNodes; jNode++){ + Kab = element_container[EL_QUAD]->Get_Kab(iNode, jNode); + + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + } + } + + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + + } + + } + + } + + double checkJacobian; + + ofstream myfile; + myfile.open ("newSolver.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + +} + +void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp new file mode 100644 index 00000000000..3bff480a338 --- /dev/null +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -0,0 +1,51 @@ +/*! + * \file variable_fem_elasticity.cpp + * \brief Definition of the variables for FEM elastic structural problems. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/variable_structure.hpp" + +CFEM_LElasVariable::CFEM_LElasVariable(void) : CVariable() { } + +CFEM_LElasVariable::CFEM_LElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { + + unsigned short iVar, iDim, jDim; + + dynamicFEA = (config->GetDynamic_Analysis() == DYNAMIC); + + /*--- Allocate residual structures ---*/ + Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + + /*--- Allocate stress tensor ---*/ + Stress = new double* [nDim]; + for (iDim = 0; iDim < nDim; iDim++) + Stress[iDim] = new double [nDim]; +} + +CFEM_LElasVariable::~CFEM_LElasVariable(void) { } diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 799ad98be96..b803b7c270f 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -43,6 +43,10 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/fluid_model.hpp \ + ../../SU2_CFD/include/gauss_structure.hpp \ + ../../SU2_CFD/include/gauss_structure.inl \ + ../../SU2_CFD/include/element_structure.hpp \ + ../../SU2_CFD/include/element_structure.inl \ ../../SU2_CFD/include/fluid_model.inl \ ../../SU2_CFD/include/integration_structure.hpp \ ../../SU2_CFD/include/integration_structure.inl \ @@ -64,6 +68,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ ../../SU2_CFD/src/fluid_model_pvdw.cpp \ ../../SU2_CFD/src/fluid_model_ppr.cpp \ + ../../SU2_CFD/src/gauss_structure.cpp \ + ../../SU2_CFD/src/element_linear.cpp \ + ../../SU2_CFD/src/element_structure.cpp \ ../../SU2_CFD/src/integration_structure.cpp \ ../../SU2_CFD/src/integration_time.cpp \ ../../SU2_CFD/src/iteration_structure.cpp \ @@ -82,6 +89,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/numerics_machine_learning.cpp \ ../../SU2_CFD/src/numerics_linearized_mean.cpp \ ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ ../../SU2_CFD/src/numerics_structure.cpp \ ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ ../../SU2_CFD/src/numerics_template.cpp \ @@ -105,6 +115,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_direct_wave.cpp \ ../../SU2_CFD/src/solver_linearized_mean.cpp \ ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ ../../SU2_CFD/src/transport_model.cpp \ @@ -122,6 +133,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/variable_direct_wave.cpp \ ../../SU2_CFD/src/variable_linearized_mean.cpp \ ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ + ../../SU2_CFD/src/variable_fem_elasticity.cpp \ ../../SU2_CFD/src/variable_structure.cpp \ ../../SU2_CFD/src/variable_template.cpp diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 04eb2802df9..9639235e467 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -90,6 +90,9 @@ am____bin_SU2_FSI_OBJECTS = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) \ @@ -108,6 +111,9 @@ am____bin_SU2_FSI_OBJECTS = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.$(OBJEXT) \ @@ -131,6 +137,7 @@ am____bin_SU2_FSI_OBJECTS = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT) \ @@ -148,6 +155,7 @@ am____bin_SU2_FSI_OBJECTS = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.$(OBJEXT) ___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) @@ -315,6 +323,10 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/fluid_model.hpp \ + ../../SU2_CFD/include/gauss_structure.hpp \ + ../../SU2_CFD/include/gauss_structure.inl \ + ../../SU2_CFD/include/element_structure.hpp \ + ../../SU2_CFD/include/element_structure.inl \ ../../SU2_CFD/include/fluid_model.inl \ ../../SU2_CFD/include/integration_structure.hpp \ ../../SU2_CFD/include/integration_structure.inl \ @@ -336,6 +348,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ ../../SU2_CFD/src/fluid_model_pvdw.cpp \ ../../SU2_CFD/src/fluid_model_ppr.cpp \ + ../../SU2_CFD/src/gauss_structure.cpp \ + ../../SU2_CFD/src/element_linear.cpp \ + ../../SU2_CFD/src/element_structure.cpp \ ../../SU2_CFD/src/integration_structure.cpp \ ../../SU2_CFD/src/integration_time.cpp \ ../../SU2_CFD/src/iteration_structure.cpp \ @@ -354,6 +369,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/numerics_machine_learning.cpp \ ../../SU2_CFD/src/numerics_linearized_mean.cpp \ ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ ../../SU2_CFD/src/numerics_structure.cpp \ ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ ../../SU2_CFD/src/numerics_template.cpp \ @@ -377,6 +395,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_direct_wave.cpp \ ../../SU2_CFD/src/solver_linearized_mean.cpp \ ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ ../../SU2_CFD/src/transport_model.cpp \ @@ -394,6 +413,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/variable_direct_wave.cpp \ ../../SU2_CFD/src/variable_linearized_mean.cpp \ ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ + ../../SU2_CFD/src/variable_fem_elasticity.cpp \ ../../SU2_CFD/src/variable_structure.cpp \ ../../SU2_CFD/src/variable_template.cpp @@ -513,6 +533,15 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-element_linear.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-element_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) @@ -567,6 +596,15 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) @@ -636,6 +674,9 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) @@ -687,6 +728,9 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) @@ -703,10 +747,13 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) @@ -722,6 +769,9 @@ mostlyclean-compile: -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT) @@ -746,6 +796,7 @@ mostlyclean-compile: -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) @@ -763,6 +814,7 @@ mostlyclean-compile: -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT) @@ -774,10 +826,13 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po@am__quote@ @@ -793,6 +848,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po@am__quote@ @@ -817,6 +875,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po@am__quote@ @@ -834,6 +893,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po@am__quote@ @@ -955,6 +1015,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o: ../../SU2_CFD/src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o `test -f '../../SU2_CFD/src/gauss_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/gauss_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o `test -f '../../SU2_CFD/src/gauss_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/gauss_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj: ../../SU2_CFD/src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj `if test -f '../../SU2_CFD/src/gauss_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/gauss_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/gauss_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj `if test -f '../../SU2_CFD/src/gauss_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/gauss_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o: ../../SU2_CFD/src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o `test -f '../../SU2_CFD/src/element_linear.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_linear.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o `test -f '../../SU2_CFD/src/element_linear.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_linear.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj: ../../SU2_CFD/src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj `if test -f '../../SU2_CFD/src/element_linear.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_linear.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj `if test -f '../../SU2_CFD/src/element_linear.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_linear.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o: ../../SU2_CFD/src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o `test -f '../../SU2_CFD/src/element_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o `test -f '../../SU2_CFD/src/element_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj: ../../SU2_CFD/src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj `if test -f '../../SU2_CFD/src/element_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj `if test -f '../../SU2_CFD/src/element_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_structure.cpp'; fi` + ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o: ../../SU2_CFD/src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po @@ -1207,6 +1309,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o: ../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj: ../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o: ../../SU2_CFD/src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po @@ -1529,6 +1673,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o: ../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj: ../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` + ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po @@ -1767,6 +1925,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o: ../../SU2_CFD/src/variable_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o `test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o `test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj: ../../SU2_CFD/src/variable_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj `if test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj `if test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_fem_elasticity.cpp'; fi` + ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po diff --git a/aclocal.m4 b/aclocal.m4 index bf84e52ba80..bcc9c8feda6 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.12.5 -*- Autoconf -*- - -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,28 +14,31 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) +To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.12' +[am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.12.5], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,22 +54,24 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.12.5])dnl +[AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -84,7 +90,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you +# harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -110,19 +116,22 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2012 Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 9 + # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -141,14 +150,16 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 12 -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -158,7 +169,7 @@ fi])]) # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -171,13 +182,12 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -185,8 +195,8 @@ AC_CACHE_CHECK([dependency style of $depcc], # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -226,16 +236,16 @@ AC_CACHE_CHECK([dependency style of $depcc], : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -244,8 +254,8 @@ AC_CACHE_CHECK([dependency style of $depcc], test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -253,7 +263,7 @@ AC_CACHE_CHECK([dependency style of $depcc], fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -301,7 +311,7 @@ AM_CONDITIONAL([am__fastdep$1], [ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -311,13 +321,9 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -332,12 +338,14 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ @@ -356,7 +364,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but + # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -368,19 +376,21 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -398,7 +408,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will +# is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -408,12 +418,15 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 16 + # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -458,41 +471,31 @@ AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[AC_DIAGNOSE([obsolete], -[$0: two- and three-arguments forms are deprecated. For more info, see: -http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -503,35 +506,28 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -dnl Support for Objective C++ was only introduced in Autoconf 2.65, -dnl but we still cater to Autoconf 2.62. -m4_ifdef([AC_PROG_OBJCXX], -[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], @@ -559,12 +555,15 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -578,14 +577,16 @@ if test x"${install_sh}" != xset; then install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST([install_sh])]) +AC_SUBST(install_sh)]) -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -601,12 +602,14 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 4 + # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -624,7 +627,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. +# Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -649,12 +652,15 @@ AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 6 + # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. @@ -683,12 +689,15 @@ m4_define([AC_PROG_CC], # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2012 Free Software Foundation, Inc. +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 6 + # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -696,6 +705,7 @@ AC_DEFUN([AM_MISSING_PROG], $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) + # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. @@ -716,18 +726,50 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) + AC_MSG_WARN([`missing' script is too old or missing]) fi ]) +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 5 + # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -737,7 +779,7 @@ AC_DEFUN([_AM_MANGLE_OPTION], # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -753,16 +795,22 @@ AC_DEFUN([_AM_IF_OPTION], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 5 + # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -773,40 +821,32 @@ case `pwd` in esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac -# Do 'set' in a subshell so we don't clobber the current shell's +# Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + test "$[2]" = conftest.file ) then @@ -816,50 +856,31 @@ else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) +AC_MSG_RESULT(yes)]) -# Copyright (C) 2009-2012 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). +# (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl A few `make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} @@ -877,7 +898,7 @@ else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. + dnl Using `$V' instead of `$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else @@ -894,40 +915,44 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor 'install' (even GNU) is that you can't +# One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize +# always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2012 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 3 + # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -941,16 +966,18 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2012 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -973,7 +1000,7 @@ AC_MSG_CHECKING([how to create a $1 tar archive]) _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of '-'. +# Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in @@ -1034,8 +1061,3 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -m4_include([m4/ax_tls.m4]) -m4_include([m4/compiler.m4]) -m4_include([m4/metis.m4]) -m4_include([m4/parmetis.m4]) -m4_include([m4/tecio.m4]) diff --git a/configure b/configure index 2f7cfb4dc02..1de8731fbde 100755 --- a/configure +++ b/configure @@ -639,31 +639,23 @@ su2_externals_LIBS su2_externals_INCLUDES BUILD_PARMETIS_FALSE BUILD_PARMETIS_TRUE -SU2_PARMETIS_CPPFLAGS -PARMETIS_LIB -PARMETIS_INCLUDE BUILD_METIS_FALSE BUILD_METIS_TRUE -SU2_METIS_CPPFLAGS -METIS_LIB -METIS_INCLUDE BUILD_TECIO_FALSE BUILD_TECIO_TRUE -TECIO_CPPFLAGS -TECIO_INCLUDE EGREP GREP CPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX RANLIB am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE -ac_ct_CC -CFLAGS -CC -am__fastdepCXX_FALSE -am__fastdepCXX_TRUE -CXXDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE @@ -673,11 +665,11 @@ am__include DEPDIR OBJEXT EXEEXT -ac_ct_CXX +ac_ct_CC CPPFLAGS LDFLAGS -CXXFLAGS -CXX +CFLAGS +CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V @@ -759,10 +751,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules -enable_mpi -with_cxx enable_dependency_tracking -with_cc with_CGNS_lib with_CGNS_include with_Mutationpp_lib @@ -779,23 +768,18 @@ enable_DEF enable_SOL enable_GEO with_MPI -enable_tecio -enable_metis -with_metis_cppflags -enable_parmetis -with_parmetis_cppflags ' ac_precious_vars='build_alias host_alias target_alias -CXX -CXXFLAGS +CC +CFLAGS LDFLAGS LIBS CPPFLAGS +CXX +CXXFLAGS CCC -CC -CFLAGS CPP' @@ -1418,13 +1402,10 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-mpi build with MPI message passing support - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors --disable-CFD build the SU2_CFD executable (default = yes) --disable-FSI build the SU2_FSI executable (default = yes) --disable-DOT build the SU2_DOT executable (default = yes) @@ -1432,16 +1413,10 @@ Optional Features: --disable-DEF build the SU2_DEF executable (default = yes) --disable-SOL build the SU2_SOL executable (default = yes) --disable-GEO build the SU2_GEO executable (default = yes) - --enable-tecio build with Tecplot TecIO API support (from source) - --enable-metis build with Metis graph partitioning suppport - --disable-parmetis build without Parmetis parallel graph partitioning - suppport Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-cxx=CXX C++ compiler to use - --with-cc=CC C compiler to use --with-CGNS-lib=ARG CGNS library directory, ARG = path to libcgns.a --with-CGNS-include=ARG CGNS include directory, ARG = path to cgnslib.h --with-Mutationpp-lib=ARG @@ -1458,21 +1433,17 @@ Optional Packages: --with-LAPACK-include=ARG LAPACK include directory, ARG = path to lapacke.h - --with-metis-cppflags="-D_FILE_OFFSET_BITS=64 -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE" - Specific METIS C Preprocessor flags to use - --with-parmetis-cppflags="..." - Specific PARMETIS C Preprocessor flags to use Some influential environment variables: - CXX C++ compiler command - CXXFLAGS C++ compiler flags + CC C compiler command + CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory - CC C compiler command - CFLAGS C compiler flags + CXX C++ compiler command + CXXFLAGS C++ compiler flags CPP C preprocessor Use these variables to override the choices made by `configure' or to help @@ -1556,10 +1527,10 @@ fi ## Autoconf initialization. ## ## ------------------------ ## -# ac_fn_cxx_try_compile LINENO -# ---------------------------- +# ac_fn_c_try_compile LINENO +# -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () +ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext @@ -1579,7 +1550,7 @@ $as_echo "$ac_try_echo"; } >&5 fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || + test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 @@ -1592,12 +1563,12 @@ fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_cxx_try_compile +} # ac_fn_c_try_compile -# ac_fn_c_try_compile LINENO -# -------------------------- +# ac_fn_cxx_try_compile LINENO +# ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () +ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext @@ -1617,7 +1588,7 @@ $as_echo "$ac_try_echo"; } >&5 fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || + test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 @@ -1630,7 +1601,7 @@ fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_c_try_compile +} # ac_fn_cxx_try_compile # ac_fn_c_try_run LINENO # ---------------------- @@ -1919,97 +1890,6 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## --------------------------------------------- ## -## Report this to su2code-dev@lists.stanford.edu ## -## --------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -2017,7 +1897,6 @@ running configure, to aid debugging if configure makes a mistake. It was created by SU2 $as_me 4.0.0, which was generated by GNU Autoconf 2.68. Invocation command line was - $ $0 $@ _ACEOF @@ -2504,7 +2383,7 @@ test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- -am__api_version='1.12' +am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2601,6 +2480,9 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2611,40 +2493,32 @@ case `pwd` in esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac -# Do 'set' in a subshell so we don't clobber the current shell's +# Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + test "$2" = conftest.file ) then @@ -2656,16 +2530,6 @@ Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2692,8 +2556,8 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -2705,10 +2569,10 @@ if test x"${install_sh}" != xset; then esac fi -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. +# will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -2847,6 +2711,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -2979,12 +2849,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used @@ -3002,10 +2866,10 @@ if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 @@ -3038,6 +2902,7 @@ AM_BACKSLASH='\' # AC_CONFIG_HEADERS([config.h]) +SU2_SET_COMPILERS DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -3057,7 +2922,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. +# Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3101,70 +2966,21 @@ else fi - - # -------------------------------------------------------------- - # look for a decent C++ compiler or honor --with-cxx=... - CXX_TRY_LIST="g++ icpc icc pgCC c++" - - # ------------------------------------------------------------------- - # MPI -- disabled by default. Check for it now so we can be somewhat - # smart about which compilers to look for - # ------------------------------------------------------------------- - # Check whether --enable-mpi was given. -if test "${enable_mpi+set}" = set; then : - enableval=$enable_mpi; case "${enableval}" in - yes) enablempi=yes ;; - no) enablempi=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-mpi" "$LINENO" 5 ;; - esac -else - enablempi=no -fi - - - have_MPI="no" - - if (test "$enablempi" != no) ; then - have_MPI="yes" - CPPFLAGS="-DHAVE_MPI $CPPFLAGS" - CXX_TRY_LIST="mpicxx mpiCC mpicc $CXX_TRY_LIST" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: >>> MPI support disabled by default <<<" >&5 -$as_echo ">>> MPI support disabled by default <<<" >&6; } - fi - - -# Check whether --with-cxx was given. -if test "${with_cxx+set}" = set; then : - withval=$with_cxx; CXX="$withval" -fi - - - # -------------------------------------------------------------- - # Determines a C++ compiler to use. First checks if the variable CXX is - # already set. If not, then searches under g++, c++, and other names. - # -------------------------------------------------------------- - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in $CXX_TRY_LIST - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -3173,7 +2989,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -3183,32 +2999,28 @@ IFS=$as_save_IFS fi fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$CXX" && break - done fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in $CXX_TRY_LIST -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -3217,7 +3029,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" + ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -3227,21 +3039,17 @@ IFS=$as_save_IFS fi fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" + if test "x$ac_ct_CC" = x; then + CC="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -3249,55 +3057,261 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - CXX=$ac_ct_CXX + CC=$ac_ct_CC fi +else + CC="$ac_cv_prog_CC" fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } done + done +IFS=$as_save_IFS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -int -main () -{ - ; - return 0; -} + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 -$as_echo_n "checking whether the C++ compiler works... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -3367,14 +3381,14 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C++ compiler cannot create executables +as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 -$as_echo_n "checking for C++ compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext @@ -3422,520 +3436,114 @@ EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C++ compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - - # -------------------------------------------------------------- - - - - # -------------------------------------------------------------- - # look for a decent C compiler or honor --with-cc=... - CC_TRY_LIST="gcc icc pgcc cc" - if (test "$enablempi" != no) ; then - CC_TRY_LIST="mpicc $CC_TRY_LIST" - fi - -# Check whether --with-cc was given. -if test "${with_cc+set}" = set; then : - withval=$with_cc; CC="$withval" -fi - - - # -------------------------------------------------------------- - # Determine a C compiler to use. If CC is not already set, checks for - # gcc, cc, and other C compilers. Then sets the CC variable to the result. - # -------------------------------------------------------------- - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in $CC_TRY_LIST - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in $CC_TRY_LIST -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; esac - CC=$ac_ct_CC +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } +int +main () +{ -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err + (eval "$ac_compile") 2>&5 ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : @@ -4159,8 +3767,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4195,16 +3803,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4213,8 +3821,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4222,7 +3830,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4276,8 +3884,6 @@ else fi - # -------------------------------------------------------------- - if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } @@ -4765,8 +4371,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4801,16 +4407,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4819,8 +4425,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4828,7 +4434,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -5652,110 +5258,7 @@ su2_externals_INCLUDES="" su2_externals_LIBS="" # Tecplot - - # Check whether --enable-tecio was given. -if test "${enable_tecio+set}" = set; then : - enableval=$enable_tecio; case "${enableval}" in - yes) enabletecio=yes ;; - no) enabletecio=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-tecio" "$LINENO" 5 ;; - esac -else - enabletecio=yes -fi - - - - # The TECIO APU requires some header files... - if (test $enabletecio = yes); then - ac_fn_c_check_header_mongrel "$LINENO" "X11/Intrinsic.h" "ac_cv_header_X11_Intrinsic_h" "$ac_includes_default" -if test "x$ac_cv_header_X11_Intrinsic_h" = xyes; then : - -else - enabletecio=no -fi - - - fi - - # The TECIO API is distributed with libmesh, so we don't have to guess - # where it might be installed... - if (test $enabletecio = yes); then - - # tecio platform-specific compiler flags - TECIO_CPPFLAGS="" - case "${host_os}" in - *linux*) - TECIO_CPPFLAGS="-DLINUX $TECIO_CPPFLAGS" - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if ${ac_cv_sizeof_void_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (void *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_void_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -$as_echo "$ac_cv_sizeof_void_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF - - - if (test $ac_cv_sizeof_void_p = 8); then - TECIO_CPPFLAGS="-DLINUX64 $TECIO_CPPFLAGS" - fi - ;; - - *darwin*) - TECIO_CPPFLAGS="-DDARWIN -DLONGIS64 $TECIO_CPPFLAGS" - ;; - - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: >>> Unrecognized TecIO platform, see externals/tecio/Runmake for hints on how to extend <<<" >&5 -$as_echo ">>> Unrecognized TecIO platform, see externals/tecio/Runmake for hints on how to extend <<<" >&6; } - ;; - esac - - - TECIO_INCLUDE="-I\$(top_srcdir)/externals/tecio/include" - TECIO_LIB="\$(top_builddir)/externals/tecio/libtecio.a" - -$as_echo "#define HAVE_TECPLOT_API 1" >>confdefs.h - - -$as_echo "#define HAVE_TECPLOT_API_112 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: <<< Configuring library with Tecplot TecIO support >>>" >&5 -$as_echo "<<< Configuring library with Tecplot TecIO support >>>" >&6; } - have_tecio=yes - else - TECIO_INCLUDE="" - enabletecio=no - have_tecio=no - fi - - - - +CONFIGURE_TECIO if (test $enabletecio = yes); then su2_externals_INCLUDES="-DHAVE_TECIO $TECIO_INCLUDE $su2_externals_INCLUDES" su2_externals_LIBS="$TECIO_LIB $su2_externals_LIBS" @@ -5774,106 +5277,7 @@ ac_config_files="$ac_config_files externals/tecio/Makefile" # Metis - - # Check whether --enable-metis was given. -if test "${enable_metis+set}" = set; then : - enableval=$enable_metis; case "${enableval}" in - yes) enablemetis=yes ;; - no) enablemetis=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-metis" "$LINENO" 5 ;; - esac -else - enablemetis=yes -fi - - - # The METIS API is distributed with SU2, so we don't have to guess - # where it might be installed... - if (test $enablemetis = yes); then - - # look for METIS build cppflags by honoring the --with-metis-cppflags="..." flag, - # defaulting to what we know works - -# Check whether --with-metis-cppflags was given. -if test "${with_metis_cppflags+set}" = set; then : - withval=$with_metis_cppflags; SU2_METIS_CPPFLAGS="$withval" -else - SU2_METIS_CPPFLAGS="-D_FILE_OFFSET_BITS=64 -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE" -fi - - - - METIS_INCLUDE="-I\$(top_srcdir)/externals/metis/include" - METIS_LIB="\$(top_builddir)/externals/metis/libmetis.a" - -$as_echo "#define HAVE_METIS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: <<< Configuring library with Metis support >>>" >&5 -$as_echo "<<< Configuring library with Metis support >>>" >&6; } - - # look for thread-local storage - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5 -$as_echo_n "checking for thread local storage (TLS) class... " >&6; } - if ${ac_cv_tls+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ax_tls_keywords="__thread __declspec(thread) none" - for ax_tls_keyword in $ax_tls_keywords; do - case $ax_tls_keyword in - none) ac_cv_tls=none ; break ;; - *) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - static void - foo(void) { - static $ax_tls_keyword int bar; - exit(1); - } -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_tls=$ax_tls_keyword ; break -else - ac_cv_tls=none - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - esac - done - -fi - - - if test "$ac_cv_tls" != "none"; then - -cat >>confdefs.h <<_ACEOF -#define TLS $ac_cv_tls -_ACEOF - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 -$as_echo "$ac_cv_tls" >&6; } - - else - METIS_INCLUDE="" - METIS_LIB="" - SU2_METIS_CPPFLAGS="" - enablemetis=no - fi - - - - - +CONFIGURE_METIS if (test $enablemetis = yes); then su2_externals_INCLUDES="-DHAVE_METIS $METIS_INCLUDE $su2_externals_INCLUDES" su2_externals_LIBS="$METIS_LIB $su2_externals_LIBS" @@ -5892,58 +5296,7 @@ ac_config_files="$ac_config_files externals/metis/Makefile" # Parmetis - - # Check whether --enable-parmetis was given. -if test "${enable_parmetis+set}" = set; then : - enableval=$enable_parmetis; case "${enableval}" in - yes) enableparmetis=yes ;; - no) enableparmetis=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-parmetis" "$LINENO" 5 ;; - esac -else - enableparmetis=$enablemetis -fi - - - # Trump --enable-parmetis with --disable-mpi - if (test "x$enablempi" = xno); then - enableparmetis=no - fi - - - # The PARMETIS API is distributed with SU2, so we don't have to guess - # where it might be installed... - if (test $enableparmetis = yes); then - - # look for PARMETIS build cppflags by honoring the --with-parmetis-cppflags="..." flag, - # defaulting to nothing - -# Check whether --with-parmetis-cppflags was given. -if test "${with_parmetis_cppflags+set}" = set; then : - withval=$with_parmetis_cppflags; SU2_PARMETIS_CPPFLAGS="$withval" -else - SU2_PARMETIS_CPPFLAGS="" -fi - - - - PARMETIS_INCLUDE="-I\$(top_srcdir)/externals/parmetis/include" - PARMETIS_LIB="\$(top_builddir)/externals/parmetis/libparmetis.a" - -$as_echo "#define HAVE_PARMETIS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: <<< Configuring library with Parmetis support >>>" >&5 -$as_echo "<<< Configuring library with Parmetis support >>>" >&6; } - else - PARMETIS_INCLUDE="" - PARMETIS_LIB="" - enableparmetis=no - fi - - - - - +CONFIGURE_PARMETIS if (test $enableparmetis = yes); then su2_externals_INCLUDES="-DHAVE_PARMETIS $PARMETIS_INCLUDE $su2_externals_INCLUDES" su2_externals_LIBS="$PARMETIS_LIB $su2_externals_LIBS" @@ -6581,14 +5934,6 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -6601,10 +5946,6 @@ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -7094,7 +6435,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by SU2 $as_me 3.2.9, which was +This file was extended by SU2 $as_me 4.0.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7152,7 +6493,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -SU2 config.status 3.2.9 +SU2 config.status 4.0.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -7728,7 +7069,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but + # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -7762,19 +7103,21 @@ $as_echo X"$mf" | continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || diff --git a/configure.ac b/configure.ac index 49ad19c3448..edb5e48c357 100644 --- a/configure.ac +++ b/configure.ac @@ -95,7 +95,7 @@ AC_ARG_ENABLE(CFD, [build_CFD=$enableval], [build_CFD="yes"]) AC_ARG_ENABLE(FSI, AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), - [build_FSI=$enableval], [build_FSI="yes"]) + [build_FSI=$enableval], [build_FSI="yes"]) AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) From df98f3504efb0317e93ef6c2a93cfa0c7d0fd2a9 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 20 Jul 2015 20:12:56 +0100 Subject: [PATCH 031/269] Extension FEM: Ks and Kk preliminary implementation. --- Common/include/config_structure.hpp | 9 +- Common/include/config_structure.inl | 2 + Common/src/config_structure.cpp | 4 + SU2_CFD/include/element_structure.hpp | 214 ++++++++--- SU2_CFD/include/element_structure.inl | 27 ++ SU2_CFD/include/gauss_structure.hpp | 2 + SU2_CFD/include/gauss_structure.inl | 2 + SU2_CFD/include/numerics_structure.hpp | 25 +- SU2_CFD/include/numerics_structure.inl | 6 + SU2_CFD/include/solver_structure.hpp | 2 + SU2_CFD/src/element_linear.cpp | 359 ++++++++++-------- SU2_CFD/src/element_structure.cpp | 50 ++- SU2_CFD/src/numerics_fem_elasticity.cpp | 34 ++ .../src/numerics_fem_linear_elasticity.cpp | 2 + .../src/numerics_fem_nonlinear_elasticity.cpp | 183 ++++++++- SU2_CFD/src/solver_fem_elasticity.cpp | 72 +++- 16 files changed, 743 insertions(+), 250 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index bb967daa988..b329842b141 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -649,7 +649,8 @@ class CConfig { ***Omega11; /*!< \brief Collision integrals (Omega(1,1)) */ double ElasticyMod, /*!< \brief Young's modulus of elasticity. */ PoissonRatio, /*!< \brief Poisson's ratio. */ - MaterialDensity; /*!< \brief Material density. */ + MaterialDensity, /*!< \brief Material density. */ + Bulk_Modulus_Struct; /*!< \brief Bulk modulus (on the structural side). */ unsigned short Kind_2DElasForm; /*!< \brief Kind of bidimensional elasticity solver. */ unsigned short nIterFSI; /*!< \brief Number of maximum number of subiterations in a FSI problem. */ double AitkenStatRelax; /*!< \brief Aitken's relaxation factor (if set as static) */ @@ -1591,6 +1592,12 @@ class CConfig { */ double GetElasticyMod(void); + /*! + * \brief Get the value of the bulk modulus on the structural side. + * \return Value of the bulk modulus on the structural side. + */ + double GetBulk_Modulus_Struct(void); + /*! * \brief Formulation for 2D elasticity (plane stress - strain) * \return Flag to 2D elasticity model. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 62b96ab8a3f..6893bf150cd 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -121,6 +121,8 @@ inline double CConfig::GetThermalDiffusivity(void) { return Thermal_Diffusivity; inline double CConfig::GetElasticyMod(void) { return ElasticyMod; } +inline double CConfig::GetBulk_Modulus_Struct(void) { return Bulk_Modulus_Struct; } + inline unsigned short CConfig::GetElas2D_Formulation(void) { return Kind_2DElasForm; } inline double CConfig::GetPoissonRatio(void) { return PoissonRatio; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 436f8029e23..770302a8a75 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1160,6 +1160,10 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addDoubleOption("POISSON_RATIO", PoissonRatio, 0.30); /* DESCRIPTION: Material density */ addDoubleOption("MATERIAL_DENSITY", MaterialDensity, 7854); + /*!\brief BULK_MODULUS_STRUCT \n DESCRIPTION: Value of the Bulk Modulus for a structural problem \n DEFAULT 160E9 */ + /* This is a temporal definition */ + addDoubleOption("BULK_MODULUS_STRUCT", Bulk_Modulus_Struct, 160E9); + /* DESCRIPTION: Formulation for bidimensional elasticity solver */ addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRESS); /* DESCRIPTION: Apply dead loads diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index 51f4342b714..b2cc2a57368 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -55,14 +55,20 @@ using namespace std; class CElement { protected: unsigned short nGaussPoints; /*!< \brief Number of gaussian points. */ + unsigned short nGaussPointsP; /*!< \brief Number of gaussian points for the pressure term. */ unsigned short nNodes; /*!< \brief Number of gaussian points. */ static unsigned short nDim; /*!< \brief Number of dimension of the problem. */ - double **CurrentCoord, - **RefCoord, - **GaussCoord, - *GaussWeight; - CGaussVariable **GaussPoint; - double ***Kab; + double **CurrentCoord, /*!< \brief Coordinates in the current frame. */ + **RefCoord; /*!< \brief Coordinates in the reference frame. */ + double **GaussCoord, /*!< \brief Parent coordinates of the Gaussian Points. */ + *GaussWeight; /*!< \brief Weight of the Gaussian Points for the integration. */ + double **GaussCoordP, /*!< \brief Parent coordinates of the Gaussian Points for the pressure subintegration.. */ + *GaussWeightP; /*!< \brief Weight of the Gaussian Points for the pressure subintegration. */ + CGaussVariable **GaussPoint; /*!< \brief Structure for the Gaussian Points. */ + CGaussVariable **GaussPointP; /*!< \brief Structure for the Gaussian Points for the pressure subintegration. */ + double ***Kab; /*!< \brief Structure for the constitutive component of the tangent matrix. */ + double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ + double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ public: /*! @@ -82,6 +88,24 @@ class CElement { */ virtual ~CElement(void); + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nNodes - Number of nodes of the element. + */ + unsigned short GetnNodes(void); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nGaussPoints - Number of Gaussian Points of the element. + */ + unsigned short GetnGaussPoints(void); + + /*! + * \brief Retrieve the number of nodes of the element. + * \param[out] nGaussPointsP - Number of Gaussian Points for pressure underintegration. + */ + unsigned short GetnGaussPointsP(void); + /*! * \brief Set the value of the coordinate of the nodes in the reference configuration. * \param[in] val_CoordRef - Value of the coordinate. @@ -123,6 +147,13 @@ class CElement { */ double GetWeight(unsigned short iGauss); + /*! + * \brief Get the weight of the corresponding Gaussian Point for pressure subintegration. + * \param[in] iGaussP - index of the Gaussian point. + * \param[out] Weight. + */ + double GetWeight_P(unsigned short iGaussP); + /*! * \brief Get the jacobian respect to the reference configuration for the Gaussian Point iGauss. * \param[in] iGauss - index of the Gaussian point. @@ -131,7 +162,28 @@ class CElement { double GetJ_X(unsigned short iGauss); /*! - * \brief Add the value of a submatrix K relating nodes a and b. + * \brief Get the jacobian respect to the current configuration for the Gaussian Point iGauss. + * \param[in] iGauss - index of the Gaussian point. + * \param[out] Weight. + */ + double GetJ_x(unsigned short iGauss); + + /*! + * \brief Get the jacobian respect to the reference configuration for the Gaussian Point iGauss and the pressure term. + * \param[in] iGauss - index of the Gaussian point. + * \param[out] Weight. + */ + double GetJ_X_P(unsigned short iGauss); + + /*! + * \brief Get the jacobian respect to the current configuration for the Gaussian Point iGauss and the pressure term. + * \param[in] iGauss - index of the Gaussian point. + * \param[out] Weight. + */ + double GetJ_x_P(unsigned short iGauss); + + /*! + * \brief Add the value of a submatrix K relating nodes a and b, for the constitutive term. * \param[in] nodeA - index of Node a. * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. @@ -139,13 +191,30 @@ class CElement { void Add_Kab(double **val_Kab, unsigned short nodeA, unsigned short nodeB); /*! - * \brief Add the value of a submatrix K relating nodes a and b (symmetric terms need transpose) + * \brief Add the value of a submatrix K relating nodes a and b, for the constitutive term (symmetric terms need transpose) * \param[in] nodeA - index of Node a. * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. */ void Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short nodeB); + + /*! + * \brief Add the value of the diagonal term for the stress contribution to the stiffness of the system. + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[in] val_Kab - value of the term that will constitute the diagonal of the stress contribution. + */ + void Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB); + + /*! + * \brief Set the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[in] val_Kab - value of the matrix K. + */ + void Set_Kk_ab(double **val_Kk_ab, unsigned short nodeA, unsigned short nodeB); + /*! * \brief Restarts the values in the element. */ @@ -159,6 +228,22 @@ class CElement { */ double *Get_Kab(unsigned short nodeA, unsigned short nodeB); + /*! + * \brief Return the value of the diagonal term for the stress contribution, relating nodes a and b. + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[out] val_Kab - value of the matrix K. + */ + double Get_Ks_ab(unsigned short nodeA, unsigned short nodeB); + + /*! + * \brief Set the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[in] val_Kab - value of the matrix K. + */ + double *Get_Kk_ab(unsigned short nodeA, unsigned short nodeB); + /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. * \param[in] val_solution - Solution of the problem. @@ -182,16 +267,20 @@ class CElement { double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. + * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] iNode - Index of the node. + * \param[in] iNode - Index of the Gaussian Point. + * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss */ - unsigned short GetnNodes(void); + double GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim); /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. + * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] iNode - Index of the node. + * \param[in] iNode - Index of the Gaussian Point. + * \param[out] GradNi_x - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss */ - unsigned short GetnGaussPoints(void); + double GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim); /*! * \brief Retrieve the number of nodes of the element. @@ -199,6 +288,12 @@ class CElement { */ virtual void OutputGradN_X(CGeometry *geometry, CConfig *config); + /*! + * \brief Virtual member + */ + virtual void ComputeGrad_Pressure(void); + + }; /*! @@ -209,15 +304,8 @@ class CElement { */ class CTRIA1 : public CElement { -protected: - -// static unsigned short nGaussPoints; /*!< \brief Number of gaussian points. */ -// static unsigned short nNodes; /*!< \brief Number of gaussian points. */ -// static double GPi_ParentCoord[4][2]; /*!< \brief Parent coordinates of the Gaussian Points i. */ -// static double GPi_Weight[4]; /*!< \brief Weights for Gaussian integration. */ -// static double GPi_Nj[4][4]; /*!< \brief Value of N_j for Gaussian Point i */ -// static double GPi_dNj_dxik[4][4][2]; /*!< \brief Derivative of N_j respect to Xi_k for Gaussian Point i. */ +protected: public: @@ -254,26 +342,6 @@ class CTRIA1 : public CElement { */ void ComputeGrad_NonLinear(void); - /*! - * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. - * \param[in] iNode - Index of the node. - * \param[in] iNode - Index of the Gaussian Point. - * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss - */ - double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); - - /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. - */ - unsigned short GetnNodes(void); - - /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. - */ - unsigned short GetnGaussPoints(void); - /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. * \param[in] val_solution - Solution of the problem. @@ -292,15 +360,8 @@ class CTRIA1 : public CElement { */ class CQUAD4 : public CElement { -protected: -// static unsigned short nGaussPoints; /*!< \brief Number of gaussian points. */ -// static unsigned short nNodes; /*!< \brief Number of gaussian points. */ - -// static double GPi_ParentCoord[4][2]; /*!< \brief Parent coordinates of the Gaussian Points i. */ -// static double GPi_Weight[4]; /*!< \brief Weights for Gaussian integration. */ -// static double GPi_Nj[4][4]; /*!< \brief Value of N_j for Gaussian Point i */ -// static double GPi_dNj_dxik[4][4][2]; /*!< \brief Derivative of N_j respect to Xi_k for Gaussian Point i. */ +protected: public: @@ -338,31 +399,58 @@ class CQUAD4 : public CElement { void ComputeGrad_NonLinear(void); /*! - * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. - * \param[in] iNode - Index of the node. - * \param[in] iNode - Index of the Gaussian Point. - * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration */ - double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); + void OutputGradN_X(CGeometry *geometry, CConfig *config); /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. + * \brief Virtual member. */ - unsigned short GetnNodes(void); + virtual void ComputeGrad_Pressure(void); + + +}; + +/*! + * \class CQUAD4P1 + * \brief Quadrilateral element with 4 Gauss Points and 1 Gauss Point for pressure subintegration + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CQUAD4P1 : public CQUAD4 { + +protected: + +public: /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. + * \brief Constructor of the class. */ - unsigned short GetnGaussPoints(void); + CQUAD4P1(void); /*! - * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_elID - Element ID. + * \param[in] config - Definition of the particular problem. + */ + CQUAD4P1(unsigned short val_nDim, unsigned long val_elID, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CQUAD4P1(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration on 1 Gauss Point. * \param[in] val_solution - Solution of the problem. * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration */ - void OutputGradN_X(CGeometry *geometry, CConfig *config); + void ComputeGrad_Pressure(void); }; diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl index b3b019af4ba..1844173e57b 100644 --- a/SU2_CFD/include/element_structure.inl +++ b/SU2_CFD/include/element_structure.inl @@ -53,4 +53,31 @@ inline double CElement::GetWeight(unsigned short iGauss) { return GaussWeight[iG inline double CElement::GetJ_X(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_X();} +inline double CElement::GetJ_x(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_x();} + +inline double CElement::GetJ_X_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_X();} + +inline double CElement::GetJ_x_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_x();} + inline double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ return Kab[nodeA][nodeB];} + +inline double *CElement::Get_Kk_ab(unsigned short nodeA, unsigned short nodeB){ return Kk_ab[nodeA][nodeB];} + +inline void CElement::Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } + +inline double CElement::Get_Ks_ab(unsigned short nodeA, unsigned short nodeB) { return Ks_ab[nodeA][nodeB]; } + +inline double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim);} + +inline double CElement::GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_xj(iNode,iDim);} + +inline double CElement::GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim) { return GaussPointP[iGaussP]->GetGradNi_xj(iNode,iDim);} + +inline double CElement::GetWeight_P(unsigned short iGaussP) { return GaussWeightP[iGaussP];} + +inline unsigned short CElement::GetnGaussPointsP(void) { return nGaussPointsP;} + +inline void CElement::ComputeGrad_Pressure(void){ } + +inline void CQUAD4::ComputeGrad_Pressure(void){ } + diff --git a/SU2_CFD/include/gauss_structure.hpp b/SU2_CFD/include/gauss_structure.hpp index 8290ce56aca..2cfd8e29cfa 100644 --- a/SU2_CFD/include/gauss_structure.hpp +++ b/SU2_CFD/include/gauss_structure.hpp @@ -99,6 +99,8 @@ class CGaussVariable { double GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim); + double GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim); + double GetJ_X(void); double GetJ_x(void); diff --git a/SU2_CFD/include/gauss_structure.inl b/SU2_CFD/include/gauss_structure.inl index 643f98a6b25..5e02d380f46 100644 --- a/SU2_CFD/include/gauss_structure.inl +++ b/SU2_CFD/include/gauss_structure.inl @@ -45,6 +45,8 @@ inline double **CGaussVariable::GetGradNi_Xj(void) { return GradNi_Xj; } inline double CGaussVariable::GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_Xj[val_Ni][val_iDim]; } +inline double CGaussVariable::GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_xj[val_Ni][val_iDim]; } + inline double CGaussVariable::GetJ_X(void) { return J_X; } inline double CGaussVariable::GetJ_x(void) { return J_x; } diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 6cc565ea345..cd8ee71e1a5 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1650,10 +1650,16 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, /*! * \brief A virtual member to compute the tangent matrix in structural problems - * \param[in] config - Definition of the particular problem. + * \param[in] element_container - Element structure for the particular element integrated. */ virtual void Compute_Tangent_Matrix(CElement *element_container); + /*! + * \brief A virtual member to compute the pressure term in incompressible or nearly-incompressible structural problems + * \param[in] element_container - Definition of the particular problem. + */ + virtual void Compute_MeanDilatation_Term(CElement *element_container); + /*! * \brief A virtual member to compute the constitutive matrix in an element for structural problems * \param[in] config - Definition of the particular problem. @@ -4395,6 +4401,7 @@ class CFEM_Elasticity : public CNumerics { double Rho_s; /*!< \brief Structural density. */ double Mu; /*!< \brief Lame's coeficient. */ double Lambda; /*!< \brief Lame's coeficient. */ + double Kappa; /*!< \brief Compressibility constant. */ double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ @@ -4424,6 +4431,8 @@ class CFEM_Elasticity : public CNumerics { virtual void Compute_Stress_Tensor(void); + virtual void Compute_MeanDilatation_Term(CElement *element_container); + }; /*! @@ -4456,6 +4465,8 @@ class CFEM_LinearElasticity : public CFEM_Elasticity { virtual void Compute_Stress_Tensor(void); + virtual void Compute_MeanDilatation_Term(CElement *element_container); + }; /*! @@ -4469,10 +4480,12 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { protected: - double **F_Mat; /*!< \brief Deformation gradient. */ - double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ - double **currentCoord; /*!< \brief Current coordinates. */ - double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ + double **F_Mat; /*!< \brief Deformation gradient. */ + double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ + double **currentCoord; /*!< \brief Current coordinates. */ + double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ + + double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ @@ -4493,6 +4506,8 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { void Compute_Tangent_Matrix(CElement *element_container); + void Compute_MeanDilatation_Term(CElement *element_container); + virtual void Compute_Constitutive_Matrix(void); virtual void Compute_Stress_Tensor(void); diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index c66e77c436d..1931a90f31b 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -59,6 +59,12 @@ inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } +inline void CNumerics::Compute_MeanDilatation_Term(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_MeanDilatation_Term(CElement *element_container){ } + +inline void CFEM_LinearElasticity::Compute_MeanDilatation_Term(CElement *element_container){ } + inline void CNumerics::Compute_Constitutive_Matrix(void){ } inline void CFEM_Elasticity::Compute_Constitutive_Matrix(void){ } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index e62e5625c97..0523ae9b0eb 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6510,6 +6510,8 @@ class CFEM_ElasticitySolver : public CSolver { double *GradN_X, *GradN_x; + double **Jacobian_s_ij; /*!< \brief Matrix to store the stress contribution of node ij (diagonal). */ + public: CElement** element_container; /*!< \brief Vector which the define the finite element structure for each problem. */ diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index b9845d24489..bc1b0c85dce 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -81,11 +81,39 @@ CTRIA1::CTRIA1(unsigned short val_nDim, unsigned long val_elID, CConfig *config) } } + Ks_ab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Ks_ab[iNode] = new double [nNodes]; + } + } CTRIA1::~CTRIA1(void) { - if (GaussPoint != NULL) delete [] GaussPoint; + unsigned short iVar, jVar; + + for (iVar = 0; iVar < nGaussPoints; iVar++){ + delete [] GaussCoord[iVar]; + delete [] GaussPoint[iVar]; + } + + for (iVar = 0; iVar < nNodes; iVar++){ + for (jVar = 0; jVar < nNodes; jVar++){ + delete [] Kab[iVar][jVar]; + } + delete [] CurrentCoord[iVar]; + delete [] RefCoord[iVar]; + delete [] Kab[iVar]; + delete [] Ks_ab[iVar]; + } + + delete [] GaussCoord; + delete [] GaussPoint; + delete [] CurrentCoord; + delete [] RefCoord; + delete [] Kab; + delete [] Ks_ab; + delete [] GaussWeight; } @@ -102,16 +130,6 @@ void CTRIA1::OutputGradN_X(CGeometry *geometry, CConfig *config){ } -double CTRIA1::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim){ - - - return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim); - -} - - - - CQUAD4::CQUAD4(void) : CElement() { @@ -166,135 +184,42 @@ CQUAD4::CQUAD4(unsigned short val_nDim, unsigned long val_elID, CConfig *config) } } + Ks_ab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Ks_ab[iNode] = new double [nNodes]; + } + } CQUAD4::~CQUAD4(void) { - if (GaussPoint != NULL) delete [] GaussPoint; + unsigned short iVar, jVar; + + for (iVar = 0; iVar < nGaussPoints; iVar++){ + delete [] GaussCoord[iVar]; + delete [] GaussPoint[iVar]; + } + + for (iVar = 0; iVar < nNodes; iVar++){ + for (jVar = 0; jVar < nNodes; jVar++){ + delete [] Kab[iVar][jVar]; + } + delete [] CurrentCoord[iVar]; + delete [] RefCoord[iVar]; + delete [] Kab[iVar]; + delete [] Ks_ab[iVar]; + } + + delete [] GaussCoord; + delete [] GaussPoint; + delete [] CurrentCoord; + delete [] RefCoord; + delete [] Kab; + delete [] Ks_ab; + delete [] GaussWeight; } -//void CQUAD4::ComputeGradN_X(CGeometry *geometry, CConfig *config){ -// -// double CoordCorn[4][2]; -// unsigned long PointCorners[4]; -// double Jacobian[2][2], dNiXj[4][2]; -// double GradNi_Xj; -// double ad[3][3]; -// double detJac; -// unsigned short iNode, iDim, iGauss, i, j; -// -// unsigned short val_iGauss; -// -// /*--- Retrieve the coordinates of the corners ---*/ -// -// for (iNode = 0; iNode < nNodes; iNode++) { -// PointCorners[iNode] = geometry->elem[elementID]->GetNode(iNode); //Check what's the best way to retrieve this -// for (iDim = 0; iDim < nDim; iDim++) { -// CoordCorn[iNode][iDim] = geometry->node[PointCorners[iNode]]->GetCoord(iDim); -// } -// } -// -// /*--- Compute the Jacobian matrix for each Gauss Point ---*/ -// -// for (iGauss = 0; iGauss < nGaussPoints ; iGauss++){ -// -// switch (iGauss){ -// -// case 0: -// -// dNiXj[0][0]=-0.394337567297407; dNiXj[1][0]=0.394337567297407; dNiXj[2][0]=0.105662432702594; dNiXj[3][0]=-0.105662432702594; -// dNiXj[0][1]=-0.394337567297407; dNiXj[1][1]=-0.105662432702594; dNiXj[2][1]=0.105662432702594; dNiXj[3][1]=0.394337567297407; -// -// break; -// case 1: -// -// dNiXj[0][0]=-0.394337567297407; dNiXj[1][0]=0.394337567297407; dNiXj[2][0]=0.105662432702594; dNiXj[3][0]=-0.105662432702594; -// dNiXj[0][1]=-0.105662432702594; dNiXj[1][1]=-0.394337567297407; dNiXj[2][1]=0.394337567297407; dNiXj[3][1]=0.105662432702594; -// -// break; -// -// case 2: -// -// dNiXj[0][0]=-0.105662432702594; dNiXj[1][0]=0.105662432702594; dNiXj[2][0]=0.394337567297407; dNiXj[3][0]=-0.394337567297407; -// dNiXj[0][1]=-0.105662432702594; dNiXj[1][1]=-0.394337567297407; dNiXj[2][1]=0.394337567297407; dNiXj[3][1]=0.105662432702594; -// -// break; -// -// case 3: -// -// dNiXj[0][0]=-0.105662432702594; dNiXj[1][0]=0.105662432702594; dNiXj[2][0]=0.394337567297407; dNiXj[3][0]=-0.394337567297407; -// dNiXj[0][1]=-0.394337567297407; dNiXj[1][1]=-0.105662432702594; dNiXj[2][1]=0.105662432702594; dNiXj[3][1]=0.394337567297407; -// -// break; -// } -// -// // dXi/d(xi) -// Jacobian[0][0] = CoordCorn[0][0]*dNiXj[0][0] + CoordCorn[1][0]*dNiXj[1][0] + CoordCorn[2][0]*dNiXj[2][0] + CoordCorn[3][0]*dNiXj[3][0]; -// Jacobian[1][0] = CoordCorn[0][1]*dNiXj[0][0] + CoordCorn[1][1]*dNiXj[1][0] + CoordCorn[2][1]*dNiXj[2][0] + CoordCorn[3][1]*dNiXj[3][0]; -// -// // dXi/d(eta) -// Jacobian[0][1] = CoordCorn[0][0]*dNiXj[0][1]+ CoordCorn[1][0]*dNiXj[1][1] + CoordCorn[2][0]*dNiXj[2][1] + CoordCorn[3][0]*dNiXj[3][1]; -// Jacobian[1][1] = CoordCorn[0][1]*dNiXj[0][1]+ CoordCorn[1][1]*dNiXj[1][1] + CoordCorn[2][1]*dNiXj[2][1] + CoordCorn[3][1]*dNiXj[3][1]; -// -// cout << Jacobian[0][0] << " " << Jacobian[1][0] << " " << Jacobian[0][1] << " " << Jacobian[1][1] << endl; -// -// /*--- Adjoint to Jacobian ---*/ -// -// ad[0][0] = Jacobian[1][1]; -// ad[0][1] = -Jacobian[0][1]; -// ad[1][0] = -Jacobian[1][0]; -// ad[1][1] = Jacobian[0][0]; -// -// /*--- Determinant of Jacobian ---*/ -// -// detJac = ad[0][0]*ad[1][1]-ad[0][1]*ad[1][0]; -// -// GaussPoint[iGauss]->SetJ_X(detJac); -// -// val_iGauss = GaussPoint[iGauss]->Get_iGauss(); -// -// cout << "val_iGauss " << val_iGauss << endl; -// /*--- Jacobian inverse ---*/ -// -//// for (i = 0; i < 2; i++) { -//// for (j = 0; j < 2; j++) { -//// Jacobian[i][j] = ad[i][j]/detJac; -//// } -//// } -// -// /*--- Jacobian inverse and transpose (need to double check this) ---*/ -// -// for (i = 0; i < 2; i++) { -// for (j = 0; j < 2; j++) { -// Jacobian[i][j] = ad[j][i]/detJac; -// } -// } -// -// for (iNode = 0; iNode < nNodes; iNode++){ -// -// for (iDim = 0; iDim < 2; iDim++) { -// for (j = 0; j < 2; j++) { -// GradNi_Xj += Jacobian[iDim][j]*dNiXj[iNode][j]; // Check this -// } -// GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj, iDim, iNode); -// } -// } -// } -// -// double GradN_X; -// -// for (iNode = 0; iNode < nNodes; iNode++){ -// for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ -// cout << iNode << " " << iGauss << " " ; -// for (iDim = 0; iDim < nDim; iDim++){ -// GradN_X = GetGradNi_X(iNode, iGauss, iDim); -// cout << GradN_X << " "; -// } -// cout << endl; -// } -// } -//} void CQUAD4::ComputeGrad_Linear(void){ @@ -351,7 +276,7 @@ void CQUAD4::ComputeGrad_Linear(void){ /*--- Derivatives with respect to global coordinates ---*/ - for (iNode = 0; iNode < 4; iNode++) { + for (iNode = 0; iNode < nNodes; iNode++) { for (iDim = 0; iDim < nDim; iDim++){ GradNi_Xj = 0.0; for (jDim = 0; jDim < nDim; jDim++){ @@ -393,7 +318,7 @@ void CQUAD4::ComputeGrad_NonLinear(void){ Jac_Curr[iDim][jDim] = 0.0; for (iNode = 0; iNode < 4; iNode++) { Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; - Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; } } } @@ -432,7 +357,7 @@ void CQUAD4::ComputeGrad_NonLinear(void){ /*--- Derivatives with respect to global coordinates ---*/ - for (iNode = 0; iNode < 4; iNode++) { + for (iNode = 0; iNode < nNodes; iNode++) { for (iDim = 0; iDim < nDim; iDim++){ GradNi_Xj_Ref = 0.0; GradNi_Xj_Curr = 0.0; @@ -453,22 +378,156 @@ void CQUAD4::OutputGradN_X(CGeometry *geometry, CConfig *config){ unsigned short iNode, iDim, iGauss, i, j; double number; -// number = GaussPoint[0]->GetGradNi_Xj(iNode,iDim); -// -// for (iGauss = 0; iGauss < nGaussPoints ; iGauss++){ -// cout << iGauss << " "; -// for (iNode = 0; iNode < nNodes; iNode++){ -// cout << iNode << " "; -// for (iDim = 0; iDim < nDim; iDim++){ -// number = GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim); -// cout << number << " "; -// } -// cout << endl; -// } -// -// } +} + + +CQUAD4P1::CQUAD4P1(void) : CQUAD4() { + + GaussPointP = NULL; + GaussCoordP = NULL; + GaussWeightP = NULL; + Kk_ab = NULL; + nGaussPointsP = 0; + +} + +CQUAD4P1::CQUAD4P1(unsigned short val_nDim, unsigned long val_elID, CConfig *config) +: CQUAD4(val_nDim, val_elID, config) { + unsigned short iGaussPoint=0; + unsigned short iNode, iGauss, jNode; + unsigned short nDimSq; + nGaussPointsP = 1; + + nDimSq = nDim*nDim; + + GaussPointP = new CGaussVariable*[nGaussPointsP]; + for (iGauss = 0; iGauss < nGaussPointsP; iGauss++) { + GaussPointP[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); + } + GaussWeightP = new double [nGaussPointsP]; + + GaussCoordP = new double*[nGaussPointsP]; + for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ + GaussCoordP [iGauss] = new double[nDim]; + } + + GaussCoordP[0][0] = 0.0; GaussCoordP[0][1] = 0.0; GaussWeightP[0] = 4.0; + + Kk_ab = new double **[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kk_ab [iNode] = new double*[nNodes]; + for (jNode = 0; jNode < nNodes; jNode++){ + Kk_ab [iNode][jNode] = new double[nDimSq]; + } + } + +} + +CQUAD4P1::~CQUAD4P1(void) { + + unsigned short iVar, jVar; + + for (iVar = 0; iVar < nGaussPoints; iVar++){ + delete [] GaussCoordP[iVar]; + delete [] GaussPointP[iVar]; + } + + for (iVar = 0; iVar < nNodes; iVar++){ + for (jVar = 0; jVar < nNodes; jVar++){ + delete [] Kk_ab[iVar][jVar]; + } + delete [] Kk_ab[iVar]; + } + + delete [] GaussCoordP; + delete [] GaussPointP; + delete [] Kk_ab; + delete [] GaussWeightP; + +} + + + +void CQUAD4P1::ComputeGrad_Pressure(void){ + + double Xi, Eta; + double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[4][2]; + double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + double ad_Ref[2][2], ad_Curr[2][2]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ + + Xi = GaussCoordP[iGauss][0]; + Eta = GaussCoordP[iGauss][1]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = -0.25*(1.0-Eta); dNiXj[0][1] = -0.25*(1.0-Xi); + dNiXj[1][0] = 0.25*(1.0-Eta); dNiXj[1][1] = -0.25*(1.0+Xi); + dNiXj[2][0] = 0.25*(1.0+Eta); dNiXj[2][1] = 0.25*(1.0+Xi); + dNiXj[3][0] = -0.25*(1.0+Eta); dNiXj[3][1] = 0.25*(1.0-Xi); + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jac_Ref[iDim][jDim] = 0.0; + Jac_Curr[iDim][jDim] = 0.0; + for (iNode = 0; iNode < 4; iNode++) { + Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad_Ref[0][0] = Jac_Ref[1][1]; + ad_Ref[0][1] = -Jac_Ref[0][1]; + ad_Ref[1][0] = -Jac_Ref[1][0]; + ad_Ref[1][1] = Jac_Ref[0][0]; + + ad_Curr[0][0] = Jac_Curr[1][1]; + ad_Curr[0][1] = -Jac_Curr[0][1]; + ad_Curr[1][0] = -Jac_Curr[1][0]; + ad_Curr[1][1] = Jac_Curr[0][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac_Ref = ad_Ref[0][0]*ad_Ref[1][1]-ad_Ref[0][1]*ad_Ref[1][0]; + detJac_Curr = ad_Curr[0][0]*ad_Curr[1][1]-ad_Curr[0][1]*ad_Curr[1][0]; + + GaussPointP[iGauss]->SetJ_X(detJac_Ref); + GaussPointP[iGauss]->SetJ_x(detJac_Curr); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jac_Ref[iDim][jDim] = ad_Ref[iDim][jDim]/detJac_Ref; + Jac_Curr[iDim][jDim] = ad_Curr[iDim][jDim]/detJac_Curr; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj_Ref = 0.0; + GradNi_Xj_Curr = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj_Ref += Jac_Ref[iDim][jDim]*dNiXj[iNode][jDim]; + GradNi_Xj_Curr += Jac_Curr[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPointP[iGauss]->SetGradNi_Xj(GradNi_Xj_Ref, iDim, iNode); + GaussPointP[iGauss]->SetGradNi_xj(GradNi_Xj_Curr, iDim, iNode); + } + } + } } diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index a3187e7df9c..88fd35f1d2e 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -41,10 +41,19 @@ CElement::CElement(void) { GaussWeight = NULL; GaussCoord = NULL; + GaussWeightP = NULL; + GaussCoordP = NULL; + GaussPoint = NULL; + GaussPointP = NULL; nNodes = 0; nGaussPoints = 0; + nGaussPointsP = 0; + + Kab = NULL; + Ks_ab = NULL; + Kk_ab = NULL; } @@ -59,16 +68,39 @@ CElement::CElement(unsigned short val_nDim, CConfig *config) { GaussWeight = NULL; GaussCoord = NULL; + GaussWeightP = NULL; + GaussCoordP = NULL; + + GaussPoint = NULL; + GaussPointP = NULL; + + nNodes = 0; + nGaussPoints = 0; + nGaussPointsP = 0; + + Kab = NULL; + Ks_ab = NULL; + Kk_ab = NULL; + } CElement::~CElement(void) { unsigned short iVar; -} + if (CurrentCoord != NULL) delete [] CurrentCoord; + if (RefCoord != NULL) delete [] RefCoord; + if (GaussWeight != NULL) delete [] GaussWeight; + if (GaussCoord != NULL) delete [] GaussCoord; -double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim){ + if (GaussWeightP != NULL) delete [] GaussWeightP; + if (GaussCoordP != NULL) delete [] GaussCoordP; - return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim); + if (GaussPoint != NULL) delete [] GaussPoint; + if (GaussPointP != NULL) delete [] GaussPointP; + + if (Kab != NULL) delete [] Kab; + if (Ks_ab != NULL) delete [] Ks_ab; + if (Kk_ab != NULL) delete [] Kk_ab; } @@ -94,6 +126,17 @@ void CElement::Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short } } +void CElement::Set_Kk_ab(double **val_Kk_ab, unsigned short nodeA, unsigned short nodeB){ + + unsigned short iDim, jDim; + + for(iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Kk_ab[nodeA][nodeB][iDim*nDim+jDim] += val_Kk_ab[iDim][jDim]; + } + } +} + void CElement::clearElement(void){ unsigned short iNode, jNode, iDim, nDimSq; @@ -102,6 +145,7 @@ void CElement::clearElement(void){ for(iNode = 0; iNode < nNodes; iNode++) { for (jNode = 0; jNode < nNodes; jNode++) { + Ks_ab[iNode][jNode] = 0.0; for(iDim = 0; iDim < nDimSq; iDim++){ Kab[iNode][jNode][iDim] = 0.0; } diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index a78366440c0..a46d504b297 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -38,6 +38,7 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Rho_s = config->GetMaterialDensity(); Mu = E / (2.0*(1.0 + Nu)); Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); + Kappa = config->GetBulk_Modulus_Struct(); unsigned short i; @@ -79,5 +80,38 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa CFEM_Elasticity::~CFEM_Elasticity(void) { + unsigned short iVar, jVar; + + for (iVar = 0; iVar < nDim; iVar++){ + delete [] KAux_ab[iVar]; + } + + if (nDim == 2){ + for (iVar = 0; iVar < 3; iVar++){ + delete [] Ba_Mat[iVar]; + delete [] Bb_Mat[iVar]; + delete [] D_Mat[iVar]; + } + for (iVar = 0; iVar < 4; iVar++){ + delete [] GradNi_Mat[iVar]; + } + } + else if (nDim == 3){ + for (iVar = 0; iVar < 6; iVar++){ + delete [] Ba_Mat[iVar]; + delete [] Bb_Mat[iVar]; + delete [] D_Mat[iVar]; + } + for (iVar = 0; iVar < 8; iVar++){ + delete [] GradNi_Mat[iVar]; + } + } + + delete [] KAux_ab; + delete [] Ba_Mat; + delete [] Bb_Mat; + delete [] D_Mat; + delete [] GradNi_Mat; + } diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index d187cdf35b1..fda7f1ceffc 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -77,6 +77,8 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ element->ComputeGrad_Linear(); + element->ComputeGrad_Pressure(); +// TODO: The line up here doesn't belong here, it's just for coding/debugging purposes. nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index dc577aeea6f..c11ea190833 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -44,12 +44,17 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsi Stress_Tensor[i] = new double [3]; } + KAux_P_ab = new double* [nDim]; + for (i = 0; i < nDim; i++) { + KAux_P_ab[i] = new double[nDim]; + } + if (nDim == 2){ currentCoord = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ for (i = 0; i < 4; i++) currentCoord[i] = new double[nDim]; } else if (nDim == 3){ - currentCoord = new double* [8]; /*--- As of now, 4 is the maximum number of nodes for 3D problems ---*/ + currentCoord = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ for (i = 0; i < 8; i++) currentCoord[i] = new double[nDim]; } @@ -60,6 +65,35 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsi CFEM_NonlinearElasticity::~CFEM_NonlinearElasticity(void) { + unsigned short iVar, jVar; + + for (iVar = 0; iVar < 3; iVar++){ + delete [] F_Mat[iVar]; + delete [] b_Mat[iVar]; + delete [] Stress_Tensor[iVar]; + } + + for (iVar = 0; iVar < nDim; iVar++){ + delete [] KAux_P_ab[iVar]; + } + + if (nDim == 2){ + for (iVar = 0; iVar < 4; iVar++){ + delete [] currentCoord[iVar]; + } + } + else if (nDim == 3){ + for (iVar = 0; iVar < 8; iVar++){ + delete [] currentCoord[iVar]; + } + } + + delete [] F_Mat; + delete [] b_Mat; + delete [] Stress_Tensor; + delete [] KAux_P_ab; + delete [] currentCoord; + } @@ -68,12 +102,14 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ unsigned short i, j, k; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; - unsigned short iDim; - unsigned short bDim; + unsigned short iDim, bDim; + + double Ks_Aux_ab; - double Weight, Jac_X; + double Weight, Jac_X, Jac_x; - double AuxMatrix[6][3]; + double AuxMatrixKc[6][3]; + double AuxMatrixKs[3]; /*--- Initialize auxiliary matrices ---*/ @@ -89,20 +125,26 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (i = 0; i < 6; i++){ for (j = 0; j < 3; j++){ - AuxMatrix[i][j] = 0.0; - AuxMatrix[i][j] = 0.0; + AuxMatrixKc[i][j] = 0.0; } } + for (i = 0; i < 3; i++){ + AuxMatrixKs[i] = 0.0; + } + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ element->ComputeGrad_Linear(); nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); + /*--- Full integration of the constitutive and stress term ---*/ + for (iGauss = 0; iGauss < nGauss; iGauss++){ Weight = element->GetWeight(iGauss); Jac_X = element->GetJ_X(iGauss); + Jac_x = element->GetJ_x(iGauss); /*--- Initialize the deformation gradient for each Gauss Point ---*/ @@ -187,13 +229,22 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (i = 0; i < nDim; i++){ for (j = 0; j < bDim; j++){ - AuxMatrix[i][j] = 0.0; + AuxMatrixKc[i][j] = 0.0; for (k = 0; k < bDim; k++){ - AuxMatrix[i][j] += Ba_Mat[k][i]*D_Mat[k][j]; + AuxMatrixKc[i][j] += Ba_Mat[k][i]*D_Mat[k][j]; } } } + /*--- Compute the BT.D Matrix ---*/ + + for (i = 0; i < nDim; i++){ + AuxMatrixKs[i] = 0.0; + for (j = 0; j < nDim; j++){ + AuxMatrixKs[i] += GradNi_Mat[iNode][j]*Stress_Tensor[j][i]; // DOUBLE CHECK + } + } + /*--- Assumming symmetry ---*/ for (jNode = iNode; jNode < nNode; jNode++){ if (nDim == 2){ @@ -203,30 +254,40 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ Bb_Mat[2][1] = GradNi_Mat[jNode][0]; } else if (nDim ==3){ - Bb_Mat[0][0] = GradNi_Mat[iNode][0]; - Bb_Mat[1][1] = GradNi_Mat[iNode][1]; - Bb_Mat[2][2] = GradNi_Mat[iNode][2]; - Bb_Mat[3][0] = GradNi_Mat[iNode][1]; - Bb_Mat[3][1] = GradNi_Mat[iNode][0]; - Bb_Mat[4][0] = GradNi_Mat[iNode][2]; - Bb_Mat[4][2] = GradNi_Mat[iNode][0]; - Bb_Mat[5][1] = GradNi_Mat[iNode][2]; - Bb_Mat[5][2] = GradNi_Mat[iNode][1]; + Bb_Mat[0][0] = GradNi_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Mat[jNode][1]; + Bb_Mat[2][2] = GradNi_Mat[jNode][2]; + Bb_Mat[3][0] = GradNi_Mat[jNode][1]; + Bb_Mat[3][1] = GradNi_Mat[jNode][0]; + Bb_Mat[4][0] = GradNi_Mat[jNode][2]; + Bb_Mat[4][2] = GradNi_Mat[jNode][0]; + Bb_Mat[5][1] = GradNi_Mat[jNode][2]; + Bb_Mat[5][2] = GradNi_Mat[jNode][1]; } + /*--- KAux_ab is the term for the constitutive part of the tangent matrix ---*/ for (i = 0; i < nDim; i++){ for (j = 0; j < nDim; j++){ KAux_ab[i][j] = 0.0; for (k = 0; k < bDim; k++){ - KAux_ab[i][j] += Weight * AuxMatrix[i][k] * Bb_Mat[k][j] * Jac_X; + KAux_ab[i][j] += Weight * AuxMatrixKc[i][k] * Bb_Mat[k][j] * Jac_X; } } } +//TODO: Modify the Jac_X --> If we are on the current configuration, the integration is on the current volume: Jac_x + + /*--- Ks_Aux_ab is the term for the constitutive part of the tangent matrix ---*/ + Ks_Aux_ab = 0.0; + for (i = 0; i < nDim; i++){ + Ks_Aux_ab += Weight * AuxMatrixKs[i] * GradNi_Mat[jNode][i] * Jac_X; + } element->Add_Kab(KAux_ab,iNode, jNode); + element->Add_Ks_ab(Ks_Aux_ab,iNode, jNode); /*--- Symmetric terms --*/ if (iNode != jNode){ element->Add_Kab_T(KAux_ab, jNode, iNode); + element->Add_Ks_ab(Ks_Aux_ab,iNode, jNode); } } @@ -237,6 +298,90 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } +void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ + + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + double Weight, Jac_X, Jac_x; + unsigned short iDim ; + + double GradNi_Mat_Term; + double Vol_current, Vol_reference; + double Avg_kappa; + + + /*--- Under integration of the pressure term, if the calculations assume incompressibility or near incompressibility ---*/ + + /*--- nGauss is here the number of Gaussian Points for the pressure term ---*/ + nGauss = element->GetnGaussPointsP(); + nNode = element->GetnNodes(); + + /*--- Initialize the Gradient auxiliary Matrix ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Mat[iNode][iDim] = 0.0; + } + } + + Vol_current = 0.0; + Vol_reference = 0.0; + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight_P(iGauss); + Jac_X = element->GetJ_X_P(iGauss); + Jac_x = element->GetJ_x_P(iGauss); + + /*--- Retrieve the values of the gradients of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + + /*--- We compute the average gradient ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Mat_Term = element->GetGradNi_x_P(iNode,iGauss,iDim); + GradNi_Mat[iNode][iDim] += Weight * GradNi_Mat_Term * Jac_x; + } + } + + Vol_reference += Weight * Jac_X; + Vol_current += Weight * Jac_x; + + } + + if ((Vol_current != 0.0) && (Vol_reference != 0.0)) { + + /*--- It is necessary to divide over the current volume to obtain the averaged gradients ---*/ + /*--- TODO: Check this operation and add exit if the volumes are 0. ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Mat[iNode][iDim] = GradNi_Mat[iNode][iDim] / Vol_current; + } + } + + Avg_kappa = Kappa * Vol_current / Vol_reference; + + } + + for (iNode = 0; iNode < nNode; iNode++){ + + for (jNode = 0; jNode < nNode; jNode++){ + + /*--- KAux_P_ab is the term for the incompressibility part of the tangent matrix ---*/ + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + KAux_P_ab[i][j] = Avg_kappa * Vol_current * GradNi_Mat[iNode][i] * GradNi_Mat[jNode][j]; + } + } + + element->Set_Kk_ab(KAux_P_ab,iNode, jNode); + + } + + } + +} + CFEM_NeoHookean_Comp::CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CFEM_NonlinearElasticity(val_nDim, val_nVar, config) { diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index b08c4878f0c..defdc93389e 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -41,6 +41,11 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { element_container = NULL; node = NULL; + GradN_X = NULL; + GradN_x = NULL; + + Jacobian_s_ij = NULL; + } CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { @@ -107,25 +112,68 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } } - Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + /*--- Term ij of the Jacobian (stress contribution) ---*/ - /*--- Here is where we assign the kind of each element ---*/ + Jacobian_s_ij = new double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_s_ij[iVar] = new double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_s_ij[iVar][jVar] = 0.0; + } + } - for (iElem = 0; iElem < nElement; iElem++){ + Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - /*--- As of now, only QUAD4 elements ---*/ - element_container[iElem] = new CQUAD4(nDim, iElem, config); + /*--- Here is where we assign the kind of each element ---*/ - } +// for (iElem = 0; iElem < nElement; iElem++){ +// +// /*--- As of now, only QUAD4 elements ---*/ +// element_container[iElem] = new CQUAD4(nDim, iElem, config); +// +// } if (nDim == 2){ element_container[EL_TRIA] = new CTRIA1(nDim, iElem, config); - element_container[EL_QUAD] = new CQUAD4(nDim, iElem, config); + element_container[EL_QUAD] = new CQUAD4P1(nDim, iElem, config); } } -CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { } +CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { + + unsigned short iVar, nKindElements = 2; + unsigned long iPoint; + + for (iPoint = 0; iPoint < nPoint; iPoint++){ + delete [] node[iPoint]; + } + + for (iVar = 0; iVar < nKindElements; iVar++){ + delete [] element_container[iVar]; + } + + for (iVar = 0; iVar < nVar; iVar++){ + delete [] Jacobian_s_ij[iVar]; + delete [] Jacobian_ij[iVar]; + delete [] Point_Max_Coord[iVar]; + } + + delete [] element_container; + delete [] node; + delete [] Jacobian_s_ij; + delete [] Jacobian_ij; + delete [] Solution; + delete [] GradN_X; + delete [] GradN_x; + + delete [] Residual; + delete [] Residual_RMS; + delete [] Residual_Max; + delete [] Point_Max; + delete [] Point_Max_Coord; + +} void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { @@ -135,7 +183,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; double val_Coord, val_Sol; - double *Kab; + double *Kab, Ks_ab; unsigned short NelNodes, jNode; cout << nElement << endl; @@ -156,8 +204,10 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ for (iNode = 0; iNode < nNodes; iNode++) { indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); +// cout << "Elem: " << iElem << " iNode (renum):" << indexNode[iNode] << endl; for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); +// cout << "Coord[" << iDim << "]: " << val_Coord << endl; val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; element_container[EL_QUAD]->SetRef_Coord(val_Coord, iNode, iDim); element_container[EL_QUAD]->SetCurr_Coord(val_Coord, iNode, iDim); @@ -170,8 +220,10 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ for (iNode = 0; iNode < NelNodes; iNode++){ for (jNode = 0; jNode < NelNodes; jNode++){ Kab = element_container[EL_QUAD]->Get_Kab(iNode, jNode); + Ks_ab = element_container[EL_QUAD]->Get_Ks_ab(iNode,jNode); for (iVar = 0; iVar < nVar; iVar++){ + Jacobian_s_ij[iVar][iVar] = Ks_ab; for (jVar = 0; jVar < nVar; jVar++){ Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; } @@ -179,6 +231,8 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); + } } From 31a4cd4ccd60b2c5047cf88645785ff2b71a5e32 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 21 Jul 2015 19:40:12 +0100 Subject: [PATCH 032/269] Extension FEM: Ta, options, el. structure. --- Common/include/config_structure.hpp | 21 ++ Common/include/config_structure.inl | 6 + Common/include/option_structure.hpp | 38 ++- Common/src/config_structure.cpp | 17 +- SU2_CFD/include/element_structure.hpp | 186 +++++++++-- SU2_CFD/include/element_structure.inl | 8 +- SU2_CFD/include/numerics_structure.hpp | 60 +++- SU2_CFD/include/numerics_structure.inl | 10 +- SU2_CFD/include/solver_structure.hpp | 2 + SU2_CFD/src/definition_structure.cpp | 26 +- SU2_CFD/src/element_linear.cpp | 89 +++-- SU2_CFD/src/element_structure.cpp | 17 + SU2_CFD/src/numerics_fem_elasticity.cpp | 21 +- .../src/numerics_fem_linear_elasticity.cpp | 65 ++-- .../src/numerics_fem_nonlinear_elasticity.cpp | 314 +++++++++++++++--- SU2_CFD/src/solver_fem_elasticity.cpp | 121 +++++-- 16 files changed, 820 insertions(+), 181 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index b329842b141..e21df66a314 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -384,6 +384,9 @@ class CConfig { SpatialOrder_AdjTNE2, /*!< \brief Order of the spatial numerical integration.*/ SpatialOrder_AdjLevelSet; /*!< \brief Order of the spatial numerical integration.*/ bool FSI_Problem; /*!< \brief Boolean to determine whether the simulation is FSI or not. */ + unsigned short Kind_Material_Compress, /*!< \brief Determines if the material is compressible or incompressible (structural analysis). */ + Kind_Material, /*!< \brief Determines the material model to be used (structural analysis). */ + Kind_Struct_Solver; /*!< \brief Determines the geometric condition (small or large deformations) for structural analysis. */ unsigned short Kind_Turb_Model; /*!< \brief Turbulent model definition. */ string ML_Turb_Model_File; /*!< \brief File containing turbulence model. */ @@ -1616,6 +1619,24 @@ class CConfig { */ double GetMaterialDensity(void); + /*! + * \brief Compressibility/incompressibility of the solids analysed using the structural solver. + * \return Compressible or incompressible. + */ + unsigned short GetMaterialCompressibility(void); + + /*! + * \brief Compressibility/incompressibility of the solids analysed using the structural solver. + * \return Compressible or incompressible. + */ + unsigned short GetMaterialModel(void); + + /*! + * \brief Geometric conditions for the structural solver. + * \return Small or large deformation structural analysis. + */ + unsigned short GetGeometricConditions(void); + /*! * \brief Get the reference length for computing moment (the default value is 1). * \return Reference length for moment computation. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 6893bf150cd..28f8aba6c79 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -129,6 +129,12 @@ inline double CConfig::GetPoissonRatio(void) { return PoissonRatio; } inline double CConfig::GetMaterialDensity(void) { return MaterialDensity; } +inline unsigned short CConfig::GetMaterialCompressibility(void) { return Kind_Material_Compress; } + +inline unsigned short CConfig::GetMaterialModel(void) { return Kind_Material; } + +inline unsigned short CConfig::GetGeometricConditions(void) { return Kind_Struct_Solver; } + inline double CConfig::GetRefLengthMoment(void) { return RefLengthMoment; } inline double CConfig::GetRefElemLength(void) { return RefElemLength; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 0eadcc10ca8..0d1db093d0d 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -191,7 +191,7 @@ enum ENUM_SOLVER { HEAT_EQUATION = 29, /*!< \brief Definition of the heat solver. */ LINEAR_ELASTICITY = 11, /*!< \brief Definition of the FEA solver. */ FLUID_STRUCTURE_INTERACTION = 12, /*!< \brief Definition of a FSI solver. */ - FEM_ELASTICITY = 13, /*!< \brief Definition of a FEM solver. */ + FEM_ELASTICITY = 13, /*!< \brief Definition of a FEM solver. */ ADJ_EULER = 18, /*!< \brief Definition of the continuous adjoint Euler's solver. */ ADJ_NAVIER_STOKES = 19, /*!< \brief Definition of the continuous adjoint Navier-Stokes' solver. */ ADJ_RANS = 20, /*!< \brief Definition of the continuous adjoint Reynolds-averaged Navier-Stokes' (RANS) solver. */ @@ -256,6 +256,42 @@ static const map FSI_Struc_Solver_Map = CCreateM ("LINEAR_ELASTICITY", LINEAR_ELASTICITY_SFSI) ("NONLINEAR_ELASTICITY", NONLINEAR_ELASTICITY_SFSI); +/*! + * \brief Material geometric conditions + */ +enum ENUM_STRUCT_SOLVER { + SMALL_DEFORMATIONS = 0, /*!< \brief Definition of linear elastic material. */ + LARGE_DEFORMATIONS = 1, /*!< \brief Definition of Neo-Hookean material. */ +}; +static const map Struct_Map = CCreateMap +("SMALL_DEFORMATIONS", SMALL_DEFORMATIONS) +("LARGE_DEFORMATIONS", LARGE_DEFORMATIONS); + + +/*! + * \brief Material model + */ +enum ENUM_MATERIAL_MODEL { + LINEAR_ELASTIC = 0, /*!< \brief Definition of linear elastic material. */ + NEO_HOOKEAN = 1, /*!< \brief Definition of Neo-Hookean material. */ +}; +static const map Material_Map = CCreateMap +("LINEAR_ELASTIC", LINEAR_ELASTIC) +("NEO_HOOKEAN", NEO_HOOKEAN); + +/*! + * \brief Material compressibility + */ +enum ENUM_MAT_COMPRESS { + COMPRESSIBLE_MAT = 0, /*!< \brief Definition of compressible material. */ + INCOMPRESSIBLE_MAT = 1, /*!< \brief Definition of incompressible material. */ +}; +static const map MatComp_Map = CCreateMap +("COMPRESSIBLE", COMPRESSIBLE_MAT) +("INCOMPRESSIBLE", INCOMPRESSIBLE_MAT); + + + /*! * \brief types of interpolators */ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 770302a8a75..7b4320570f7 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1164,6 +1164,13 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* This is a temporal definition */ addDoubleOption("BULK_MODULUS_STRUCT", Bulk_Modulus_Struct, 160E9); + /*!\brief REGIME_TYPE \n DESCRIPTION: Geometric condition \n OPTIONS: see \link Struct_Map \endlink \ingroup Config*/ + addEnumOption("GEOMETRIC_CONDITIONS", Kind_Struct_Solver, Struct_Map, SMALL_DEFORMATIONS); + /*!\brief REGIME_TYPE \n DESCRIPTION: Material model \n OPTIONS: see \link Material_Map \endlink \ingroup Config*/ + addEnumOption("MATERIAL_MODEL", Kind_Material, Material_Map, LINEAR_ELASTIC); + /*!\brief REGIME_TYPE \n DESCRIPTION: Compressibility of the material \n OPTIONS: see \link MatComp_Map \endlink \ingroup Config*/ + addEnumOption("MATERIAL_COMPRESSIBILITY", Kind_Material_Compress, MatComp_Map, COMPRESSIBLE_MAT); + /* DESCRIPTION: Formulation for bidimensional elasticity solver */ addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRESS); /* DESCRIPTION: Apply dead loads @@ -3638,7 +3645,15 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { case WAVE_EQUATION: cout << "Wave equation." << endl; break; case HEAT_EQUATION: cout << "Heat equation." << endl; break; case LINEAR_ELASTICITY: cout << "Linear elasticity solver." << endl; break; - case FEM_ELASTICITY: cout << "Elasticity solver." << endl; break; + case FEM_ELASTICITY: + if (Kind_Struct_Solver == SMALL_DEFORMATIONS) cout << "Geometrically linear elasticity solver." << endl; + if (Kind_Struct_Solver == LARGE_DEFORMATIONS) cout << "Geometrically non-linear elasticity solver." << endl; + if (Kind_Material == LINEAR_ELASTIC) cout << "Linear elastic material." << endl; + if (Kind_Material == NEO_HOOKEAN) { + if (Kind_Material_Compress == COMPRESSIBLE_MAT) cout << "Compressible Neo-Hookean material model." << endl; + if (Kind_Material_Compress == INCOMPRESSIBLE_MAT) cout << "Incompressible Neo-Hookean material model (mean dilatation method)." << endl; + } + break; case ADJ_EULER: cout << "Continuous Euler adjoint equations." << endl; break; case ADJ_NAVIER_STOKES: if (Frozen_Visc) diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index b2cc2a57368..005d949be1b 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -69,6 +69,7 @@ class CElement { double ***Kab; /*!< \brief Structure for the constitutive component of the tangent matrix. */ double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ + double **Kt_a; /*!< \brief Structure for the nodal stress term for the residual computation. */ public: /*! @@ -203,10 +204,17 @@ class CElement { * \brief Add the value of the diagonal term for the stress contribution to the stiffness of the system. * \param[in] nodeA - index of Node a. * \param[in] nodeB - index of Node b. - * \param[in] val_Kab - value of the term that will constitute the diagonal of the stress contribution. + * \param[in] val_Ks_ab - value of the term that will constitute the diagonal of the stress contribution. */ void Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB); + /*! + * \brief Add the value of the nodal stress term for the computation of the residual. + * \param[in] nodeA - index of Node a. + * \param[in] val_Kt_a - value of the term that will constitute the diagonal of the stress contribution. + */ + void Add_Kt_a(double *val_Kt_a, unsigned short nodeA); + /*! * \brief Set the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). * \param[in] nodeA - index of Node a. @@ -237,13 +245,20 @@ class CElement { double Get_Ks_ab(unsigned short nodeA, unsigned short nodeB); /*! - * \brief Set the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). + * \brief Return the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). * \param[in] nodeA - index of Node a. * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. */ double *Get_Kk_ab(unsigned short nodeA, unsigned short nodeB); + /*! + * \brief Return the value of the nodal stress component of the residual for node a. + * \param[in] nodeA - index of Node a. + * \param[out] val_Kt_a - value of the stress term. + */ + double *Get_Kt_a(unsigned short nodeA); + /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. * \param[in] val_solution - Solution of the problem. @@ -282,12 +297,6 @@ class CElement { */ double GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim); - /*! - * \brief Retrieve the number of nodes of the element. - * \param[out] nNodes - Number of nodes of the element. - */ - virtual void OutputGradN_X(CGeometry *geometry, CConfig *config); - /*! * \brief Virtual member */ @@ -318,10 +327,9 @@ class CTRIA1 : public CElement { * \overload * \param[in] val_fea - Values of the fea solution (initialization value). * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_elID - Element ID. * \param[in] config - Definition of the particular problem. */ - CTRIA1(unsigned short val_nDim, unsigned long val_elID, CConfig *config); + CTRIA1(unsigned short val_nDim, CConfig *config); /*! * \brief Destructor of the class. @@ -342,24 +350,111 @@ class CTRIA1 : public CElement { */ void ComputeGrad_NonLinear(void); +}; + + +/*! + * \class CQUAD4 + * \brief Quadrilateral element with 4 Gauss Points + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CQUAD4 : public CElement { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CQUAD4(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] config - Definition of the particular problem. + */ + CQUAD4(unsigned short val_nDim, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CQUAD4(void); + /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. * \param[in] val_solution - Solution of the problem. * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration */ - void OutputGradN_X(CGeometry *geometry, CConfig *config); + void ComputeGrad_Linear(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + */ + void ComputeGrad_NonLinear(void); + + /*! + * \brief Virtual member. + */ + virtual void ComputeGrad_Pressure(void); + }; +/*! + * \class CQUAD4P1 + * \brief Quadrilateral element with 4 Gauss Points and 1 Gauss Point for pressure subintegration + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CQUAD4P1 : public CQUAD4 { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CQUAD4P1(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] config - Definition of the particular problem. + */ + CQUAD4P1(unsigned short val_nDim, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CQUAD4P1(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration on 1 Gauss Point. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + void ComputeGrad_Pressure(void); + + +}; /*! - * \class CQUAD4 - * \brief Quadrilateral element with 4 Gauss Points + * \class CTETRA1 + * \brief Tetrahedral element with 1 Gauss Point * \author R. Sanchez * \version 4.0.0 "Cardinal" */ -class CQUAD4 : public CElement { +class CTETRA1 : public CElement { protected: @@ -368,21 +463,20 @@ class CQUAD4 : public CElement { /*! * \brief Constructor of the class. */ - CQUAD4(void); + CTETRA1(void); /*! * \overload * \param[in] val_fea - Values of the fea solution (initialization value). * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_elID - Element ID. * \param[in] config - Definition of the particular problem. */ - CQUAD4(unsigned short val_nDim, unsigned long val_elID, CConfig *config); + CTETRA1(unsigned short val_nDim, CConfig *config); /*! * \brief Destructor of the class. */ - ~CQUAD4(void); + ~CTETRA1(void); /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. @@ -398,12 +492,52 @@ class CQUAD4 : public CElement { */ void ComputeGrad_NonLinear(void); +}; + +/*! + * \class CHEXA8 + * \brief Hexahedral element with 8 Gauss Points + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CHEXA8 : public CElement { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CHEXA8(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] config - Definition of the particular problem. + */ + CHEXA8(unsigned short val_nDim, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CHEXA8(void); + /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. * \param[in] val_solution - Solution of the problem. * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration */ - void OutputGradN_X(CGeometry *geometry, CConfig *config); + void ComputeGrad_Linear(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + */ + void ComputeGrad_NonLinear(void); /*! * \brief Virtual member. @@ -414,13 +548,13 @@ class CQUAD4 : public CElement { }; /*! - * \class CQUAD4P1 - * \brief Quadrilateral element with 4 Gauss Points and 1 Gauss Point for pressure subintegration + * \class CHEXA8P1 + * \brief Hexahedral element with 8 Gauss Points and 1 Gauss Point for pressure subintegration * \author R. Sanchez * \version 4.0.0 "Cardinal" */ -class CQUAD4P1 : public CQUAD4 { +class CHEXA8P1 : public CHEXA8 { protected: @@ -429,21 +563,19 @@ class CQUAD4P1 : public CQUAD4 { /*! * \brief Constructor of the class. */ - CQUAD4P1(void); + CHEXA8P1(void); /*! * \overload - * \param[in] val_fea - Values of the fea solution (initialization value). * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_elID - Element ID. * \param[in] config - Definition of the particular problem. */ - CQUAD4P1(unsigned short val_nDim, unsigned long val_elID, CConfig *config); + CHEXA8P1(unsigned short val_nDim, CConfig *config); /*! * \brief Destructor of the class. */ - ~CQUAD4P1(void); + ~CHEXA8P1(void); /*! * \brief Set the value of the gradient of the shape functions respect to the current configuration on 1 Gauss Point. diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl index 1844173e57b..ab0f7087bdc 100644 --- a/SU2_CFD/include/element_structure.inl +++ b/SU2_CFD/include/element_structure.inl @@ -35,8 +35,6 @@ inline void CElement::ComputeGrad_Linear(void) { } inline void CElement::ComputeGrad_NonLinear(void) { } -inline void CElement::OutputGradN_X(CGeometry *geometry, CConfig *config) { } - inline unsigned short CElement::GetnNodes(void) { return nNodes;} inline unsigned short CElement::GetnGaussPoints(void) { return nGaussPoints;} @@ -63,10 +61,12 @@ inline double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ re inline double *CElement::Get_Kk_ab(unsigned short nodeA, unsigned short nodeB){ return Kk_ab[nodeA][nodeB];} -inline void CElement::Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } +inline double *CElement::Get_Kt_a(unsigned short nodeA){ return Kt_a[nodeA];} inline double CElement::Get_Ks_ab(unsigned short nodeA, unsigned short nodeB) { return Ks_ab[nodeA][nodeB]; } +inline void CElement::Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } + inline double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim);} inline double CElement::GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_xj(iNode,iDim);} @@ -81,3 +81,5 @@ inline void CElement::ComputeGrad_Pressure(void){ } inline void CQUAD4::ComputeGrad_Pressure(void){ } +inline void CHEXA8::ComputeGrad_Pressure(void){ } + diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index cd8ee71e1a5..a1c3aa1083a 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1656,10 +1656,16 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, /*! * \brief A virtual member to compute the pressure term in incompressible or nearly-incompressible structural problems - * \param[in] element_container - Definition of the particular problem. + * \param[in] element_container - Definition of the particular element integrated. */ virtual void Compute_MeanDilatation_Term(CElement *element_container); + /*! + * \brief A virtual member to compute the nodal stress term in non-linear structural problems + * \param[in] element_container - Definition of the particular element integrated. + */ + virtual void Compute_NodalStress_Term(CElement *element_container); + /*! * \brief A virtual member to compute the constitutive matrix in an element for structural problems * \param[in] config - Definition of the particular problem. @@ -4407,7 +4413,8 @@ class CFEM_Elasticity : public CNumerics { **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ - double **GradNi_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + double **GradNi_Curr_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ public: @@ -4427,12 +4434,14 @@ class CFEM_Elasticity : public CNumerics { virtual void Compute_Tangent_Matrix(CElement *element_container); + virtual void Compute_MeanDilatation_Term(CElement *element_container); + + virtual void Compute_NodalStress_Term(CElement *element_container); + virtual void Compute_Constitutive_Matrix(void); virtual void Compute_Stress_Tensor(void); - virtual void Compute_MeanDilatation_Term(CElement *element_container); - }; /*! @@ -4463,9 +4472,11 @@ class CFEM_LinearElasticity : public CFEM_Elasticity { void Compute_Constitutive_Matrix(void); - virtual void Compute_Stress_Tensor(void); +// virtual void Compute_Stress_Tensor(void); - virtual void Compute_MeanDilatation_Term(CElement *element_container); +// virtual void Compute_MeanDilatation_Term(CElement *element_container); + +// virtual void Compute_NodalStress_Term(CElement *element_container); }; @@ -4486,6 +4497,7 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ + double *KAux_t_a; /*!< \brief Auxiliar matrix for the pressure term */ double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ @@ -4508,6 +4520,8 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { void Compute_MeanDilatation_Term(CElement *element_container); + void Compute_NodalStress_Term(CElement *element_container); + virtual void Compute_Constitutive_Matrix(void); virtual void Compute_Stress_Tensor(void); @@ -4516,8 +4530,8 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { }; /*! - * \class CFEM_NeoHookean - * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model. + * \class CFEM_NeoHookean_Comp + * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, compressible. * \ingroup FEM_Discr * \author R.Sanchez * \version 4.0.0 "Cardinal" @@ -4545,6 +4559,36 @@ class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { }; +/*! + * \class CFEM_NeoHookean_Incomp + * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, incompressible. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_NeoHookean_Incomp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_NeoHookean_Incomp(void); + + void Compute_Constitutive_Matrix(void); + + void Compute_Stress_Tensor(void); + +}; + /*! diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 1931a90f31b..b745a056b54 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -63,7 +63,13 @@ inline void CNumerics::Compute_MeanDilatation_Term(CElement *element_container){ inline void CFEM_Elasticity::Compute_MeanDilatation_Term(CElement *element_container){ } -inline void CFEM_LinearElasticity::Compute_MeanDilatation_Term(CElement *element_container){ } +//inline void CFEM_LinearElasticity::Compute_MeanDilatation_Term(CElement *element_container){ } + +inline void CNumerics::Compute_NodalStress_Term(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_NodalStress_Term(CElement *element_container){ } + +//inline void CFEM_LinearElasticity::Compute_NodalStress_Term(CElement *element_container){ } inline void CNumerics::Compute_Constitutive_Matrix(void){ } @@ -75,7 +81,7 @@ inline void CNumerics::Compute_Stress_Tensor(void){ } inline void CFEM_Elasticity::Compute_Stress_Tensor(void){ } -inline void CFEM_LinearElasticity::Compute_Stress_Tensor(void){ } +//inline void CFEM_LinearElasticity::Compute_Stress_Tensor(void){ } inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(void){ } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 0523ae9b0eb..c9d704cb483 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6511,6 +6511,8 @@ class CFEM_ElasticitySolver : public CSolver { *GradN_x; double **Jacobian_s_ij; /*!< \brief Matrix to store the stress contribution of node ij (diagonal). */ + double **Jacobian_k_ij; /*!< \brief Matrix to store the pressure contribution of node ij. */ + double *Res_Stress_i; /*!< \brief Matrix to store the nodal stress contribution of node i. */ public: diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 24137e504df..33294fdb825 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1473,9 +1473,29 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, /*--- Solver definition for the FEM problem ---*/ if (fem) { - - /*--- Definition of the viscous scheme for each equation and mesh level ---*/ - numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_LinearElasticity(nDim, nVar_FEM, config); + switch (config->GetGeometricConditions()) { + case SMALL_DEFORMATIONS : + switch (config->GetMaterialModel()) { + case LINEAR_ELASTIC: numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_LinearElasticity(nDim, nVar_FEM, config); break; + case NEO_HOOKEAN : cout << "Material model does not correspond to geometric conditions." << endl; exit(EXIT_FAILURE); break; + default: cout << "Material model not implemented." << endl; exit(EXIT_FAILURE); break; + } + break; + case LARGE_DEFORMATIONS : + switch (config->GetMaterialModel()) { + case LINEAR_ELASTIC: cout << "Material model does not correspond to geometric conditions." << endl; exit(EXIT_FAILURE); break; + case NEO_HOOKEAN : + switch (config->GetMaterialCompressibility()) { + case COMPRESSIBLE_MAT : numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_NeoHookean_Comp(nDim, nVar_FEM, config); break; + case INCOMPRESSIBLE_MAT : numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_NeoHookean_Incomp(nDim, nVar_FEM, config); break; + default: cout << "Material model not implemented." << endl; exit(EXIT_FAILURE); break; + } + break; + default: cout << "Material model not implemented." << endl; exit(EXIT_FAILURE); break; + } + break; + default: cout << " Solver not implemented." << endl; exit(EXIT_FAILURE); break; + } } diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index bc1b0c85dce..a1d723a4dc6 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -35,7 +35,7 @@ CTRIA1::CTRIA1(void) : CElement() { } -CTRIA1::CTRIA1(unsigned short val_nDim, unsigned long val_elID, CConfig *config) +CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { unsigned short iGaussPoint=0; @@ -125,17 +125,11 @@ void CTRIA1::ComputeGrad_NonLinear(void){ } - -void CTRIA1::OutputGradN_X(CGeometry *geometry, CConfig *config){ - -} - - CQUAD4::CQUAD4(void) : CElement() { } -CQUAD4::CQUAD4(unsigned short val_nDim, unsigned long val_elID, CConfig *config) +CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { unsigned short iGaussPoint=0; @@ -189,6 +183,11 @@ CQUAD4::CQUAD4(unsigned short val_nDim, unsigned long val_elID, CConfig *config) Ks_ab[iNode] = new double [nNodes]; } + Kt_a = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kt_a[iNode] = new double [nDim]; + } + } CQUAD4::~CQUAD4(void) { @@ -208,6 +207,7 @@ CQUAD4::~CQUAD4(void) { delete [] RefCoord[iVar]; delete [] Kab[iVar]; delete [] Ks_ab[iVar]; + delete [] Kt_a[iVar]; } delete [] GaussCoord; @@ -216,6 +216,7 @@ CQUAD4::~CQUAD4(void) { delete [] RefCoord; delete [] Kab; delete [] Ks_ab; + delete [] Kt_a; delete [] GaussWeight; } @@ -352,9 +353,6 @@ void CQUAD4::ComputeGrad_NonLinear(void){ } } - - cout << detJac_Ref << " " << detJac_Curr << endl; - /*--- Derivatives with respect to global coordinates ---*/ for (iNode = 0; iNode < nNodes; iNode++) { @@ -373,14 +371,6 @@ void CQUAD4::ComputeGrad_NonLinear(void){ } -void CQUAD4::OutputGradN_X(CGeometry *geometry, CConfig *config){ - - unsigned short iNode, iDim, iGauss, i, j; - double number; - -} - - CQUAD4P1::CQUAD4P1(void) : CQUAD4() { GaussPointP = NULL; @@ -391,8 +381,8 @@ CQUAD4P1::CQUAD4P1(void) : CQUAD4() { } -CQUAD4P1::CQUAD4P1(unsigned short val_nDim, unsigned long val_elID, CConfig *config) -: CQUAD4(val_nDim, val_elID, config) { +CQUAD4P1::CQUAD4P1(unsigned short val_nDim, CConfig *config) +: CQUAD4(val_nDim, config) { unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; @@ -531,8 +521,65 @@ void CQUAD4P1::ComputeGrad_Pressure(void){ } +CTETRA1::CTETRA1(void) : CElement() { +} + +CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) +: CElement(val_nDim, config) { + +} + +CTETRA1::~CTETRA1(void) { + +} + +void CTETRA1::ComputeGrad_Linear(void){ + +} + +void CTETRA1::ComputeGrad_NonLinear(void){ + +} +CHEXA8::CHEXA8(void) : CElement() { + +} + +CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) +: CElement(val_nDim, config) { + +} + +CHEXA8::~CHEXA8(void) { + +} + +void CHEXA8::ComputeGrad_Linear(void){ + +} + +void CHEXA8::ComputeGrad_NonLinear(void){ + +} + + +CHEXA8P1::CHEXA8P1(void) : CHEXA8() { + +} + +CHEXA8P1::CHEXA8P1(unsigned short val_nDim, CConfig *config) +: CHEXA8(val_nDim, config) { + +} + +CHEXA8P1::~CHEXA8P1(void) { + +} + +void CHEXA8P1::ComputeGrad_Pressure(void){ + +} diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index 88fd35f1d2e..33a1ab0123c 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -54,6 +54,7 @@ CElement::CElement(void) { Kab = NULL; Ks_ab = NULL; Kk_ab = NULL; + Kt_a = NULL; } @@ -81,6 +82,7 @@ CElement::CElement(unsigned short val_nDim, CConfig *config) { Kab = NULL; Ks_ab = NULL; Kk_ab = NULL; + Kt_a = NULL; } @@ -101,6 +103,7 @@ CElement::~CElement(void) { if (Kab != NULL) delete [] Kab; if (Ks_ab != NULL) delete [] Ks_ab; if (Kk_ab != NULL) delete [] Kk_ab; + if (Kt_a != NULL) delete [] Kt_a; } @@ -137,6 +140,17 @@ void CElement::Set_Kk_ab(double **val_Kk_ab, unsigned short nodeA, unsigned shor } } +void CElement::Add_Kt_a(double *val_Kt_a, unsigned short nodeA){ + + unsigned short iDim; + + for(iDim = 0; iDim < nDim; iDim++) { + Kt_a[nodeA][iDim] += val_Kt_a[iDim]; + } + +} + + void CElement::clearElement(void){ unsigned short iNode, jNode, iDim, nDimSq; @@ -144,6 +158,9 @@ void CElement::clearElement(void){ nDimSq = nDim*nDim; for(iNode = 0; iNode < nNodes; iNode++) { + for(iDim = 0; iDim < nDim; iDim++){ + Kt_a[iNode][iDim] = 0.0; + } for (jNode = 0; jNode < nNodes; jNode++) { Ks_ab[iNode][jNode] = 0.0; for(iDim = 0; iDim < nDimSq; iDim++){ diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index a46d504b297..b1d5b16734f 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -52,28 +52,32 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Ba_Mat = new double* [3]; Bb_Mat = new double* [3]; D_Mat = new double* [3]; - GradNi_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + GradNi_Ref_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + GradNi_Curr_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ for (i = 0; i < 3; i++) { Ba_Mat[i] = new double[nDim]; Bb_Mat[i] = new double[nDim]; D_Mat[i] = new double[3]; } for (i = 0; i < 4; i++) { - GradNi_Mat[i] = new double[nDim]; + GradNi_Ref_Mat[i] = new double[nDim]; + GradNi_Curr_Mat[i] = new double[nDim]; } } else if (nDim == 3){ Ba_Mat = new double* [6]; Bb_Mat = new double* [6]; D_Mat = new double* [6]; - GradNi_Mat = new double* [8]; /*--- As of now, 4 is the maximum number of nodes for 3D problems ---*/ + GradNi_Ref_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + GradNi_Curr_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ for (i = 0; i < 6; i++) { Ba_Mat[i] = new double[nDim]; Bb_Mat[i] = new double[nDim]; D_Mat[i] = new double[6]; } for (i = 0; i < 8; i++) { - GradNi_Mat[i] = new double[nDim]; + GradNi_Ref_Mat[i] = new double[nDim]; + GradNi_Curr_Mat[i] = new double[nDim]; } } } @@ -93,7 +97,8 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { delete [] D_Mat[iVar]; } for (iVar = 0; iVar < 4; iVar++){ - delete [] GradNi_Mat[iVar]; + delete [] GradNi_Ref_Mat[iVar]; + delete [] GradNi_Curr_Mat[iVar]; } } else if (nDim == 3){ @@ -103,7 +108,8 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { delete [] D_Mat[iVar]; } for (iVar = 0; iVar < 8; iVar++){ - delete [] GradNi_Mat[iVar]; + delete [] GradNi_Ref_Mat[iVar]; + delete [] GradNi_Curr_Mat[iVar]; } } @@ -111,7 +117,8 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { delete [] Ba_Mat; delete [] Bb_Mat; delete [] D_Mat; - delete [] GradNi_Mat; + delete [] GradNi_Ref_Mat; + delete [] GradNi_Curr_Mat; } diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index fda7f1ceffc..f5d899d35b1 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -77,8 +77,6 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ element->ComputeGrad_Linear(); - element->ComputeGrad_Pressure(); -// TODO: The line up here doesn't belong here, it's just for coding/debugging purposes. nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); @@ -91,28 +89,28 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- This avoids repeated operations ---*/ for (iNode = 0; iNode < nNode; iNode++){ for (iDim = 0; iDim < nDim; iDim++){ - GradNi_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + GradNi_Ref_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); } } for (iNode = 0; iNode < nNode; iNode++){ if (nDim == 2){ - Ba_Mat[0][0] = GradNi_Mat[iNode][0]; - Ba_Mat[1][1] = GradNi_Mat[iNode][1]; - Ba_Mat[2][0] = GradNi_Mat[iNode][1]; - Ba_Mat[2][1] = GradNi_Mat[iNode][0]; + Ba_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[2][0] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[2][1] = GradNi_Ref_Mat[iNode][0]; } else if (nDim ==3){ - Ba_Mat[0][0] = GradNi_Mat[iNode][0]; - Ba_Mat[1][1] = GradNi_Mat[iNode][1]; - Ba_Mat[2][2] = GradNi_Mat[iNode][2]; - Ba_Mat[3][0] = GradNi_Mat[iNode][1]; - Ba_Mat[3][1] = GradNi_Mat[iNode][0]; - Ba_Mat[4][0] = GradNi_Mat[iNode][2]; - Ba_Mat[4][2] = GradNi_Mat[iNode][0]; - Ba_Mat[5][1] = GradNi_Mat[iNode][2]; - Ba_Mat[5][2] = GradNi_Mat[iNode][1]; ; + Ba_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[2][2] = GradNi_Ref_Mat[iNode][2]; + Ba_Mat[3][0] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[3][1] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[4][0] = GradNi_Ref_Mat[iNode][2]; + Ba_Mat[4][2] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[5][1] = GradNi_Ref_Mat[iNode][2]; + Ba_Mat[5][2] = GradNi_Ref_Mat[iNode][1]; ; } /*--- Compute the BT.D Matrix ---*/ @@ -129,21 +127,21 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Assumming symmetry ---*/ for (jNode = iNode; jNode < nNode; jNode++){ if (nDim == 2){ - Bb_Mat[0][0] = GradNi_Mat[jNode][0]; - Bb_Mat[1][1] = GradNi_Mat[jNode][1]; - Bb_Mat[2][0] = GradNi_Mat[jNode][1]; - Bb_Mat[2][1] = GradNi_Mat[jNode][0]; + Bb_Mat[0][0] = GradNi_Ref_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Ref_Mat[jNode][1]; + Bb_Mat[2][0] = GradNi_Ref_Mat[jNode][1]; + Bb_Mat[2][1] = GradNi_Ref_Mat[jNode][0]; } else if (nDim ==3){ - Bb_Mat[0][0] = GradNi_Mat[iNode][0]; - Bb_Mat[1][1] = GradNi_Mat[iNode][1]; - Bb_Mat[2][2] = GradNi_Mat[iNode][2]; - Bb_Mat[3][0] = GradNi_Mat[iNode][1]; - Bb_Mat[3][1] = GradNi_Mat[iNode][0]; - Bb_Mat[4][0] = GradNi_Mat[iNode][2]; - Bb_Mat[4][2] = GradNi_Mat[iNode][0]; - Bb_Mat[5][1] = GradNi_Mat[iNode][2]; - Bb_Mat[5][2] = GradNi_Mat[iNode][1]; + Bb_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; + Bb_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; + Bb_Mat[2][2] = GradNi_Ref_Mat[iNode][2]; + Bb_Mat[3][0] = GradNi_Ref_Mat[iNode][1]; + Bb_Mat[3][1] = GradNi_Ref_Mat[iNode][0]; + Bb_Mat[4][0] = GradNi_Ref_Mat[iNode][2]; + Bb_Mat[4][2] = GradNi_Ref_Mat[iNode][0]; + Bb_Mat[5][1] = GradNi_Ref_Mat[iNode][2]; + Bb_Mat[5][2] = GradNi_Ref_Mat[iNode][1]; } for (i = 0; i < nDim; i++){ @@ -171,13 +169,14 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ + /*--- Assuming plane strain ---*/ + if (nDim == 2){ - D_Mat[0][0] = E/(1-Nu*Nu); D_Mat[0][1] = (E*Nu)/(1-Nu*Nu); D_Mat[0][2] = 0.0; - D_Mat[1][0] = (E*Nu)/(1-Nu*Nu); D_Mat[1][1] = E/(1-Nu*Nu); D_Mat[1][2] = 0.0; - D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = 0.0; + D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = 0.0; + D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = Mu; } else if (nDim == 3){ - /*--- Compute the D Matrix (for plane strain and 3-D)---*/ D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = Lambda; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = Lambda; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index c11ea190833..4d696e56977 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -44,6 +44,8 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsi Stress_Tensor[i] = new double [3]; } + KAux_t_a = new double [nDim]; + KAux_P_ab = new double* [nDim]; for (i = 0; i < nDim; i++) { KAux_P_ab[i] = new double[nDim]; @@ -91,6 +93,7 @@ CFEM_NonlinearElasticity::~CFEM_NonlinearElasticity(void) { delete [] F_Mat; delete [] b_Mat; delete [] Stress_Tensor; + delete [] KAux_t_a; delete [] KAux_P_ab; delete [] currentCoord; @@ -134,7 +137,8 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ - element->ComputeGrad_Linear(); + element->ComputeGrad_NonLinear(); + nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); @@ -148,8 +152,8 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Initialize the deformation gradient for each Gauss Point ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ F_Mat[i][j] = 0.0; b_Mat[i][j] = 0.0; } @@ -161,7 +165,8 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (iNode = 0; iNode < nNode; iNode++){ for (iDim = 0; iDim < nDim; iDim++){ - GradNi_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + GradNi_Ref_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + GradNi_Curr_Mat[iNode][iDim] = element->GetGradNi_x(iNode,iGauss,iDim); currentCoord[iNode][iDim] = element->GetCurr_Coord(iNode, iDim); } @@ -169,13 +174,13 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (i = 0; i < nDim; i++){ for (j = 0; j < nDim; j++){ - F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Mat[iNode][j]; + F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Ref_Mat[iNode][j]; } } /*--- This implies plane strain --> Consider the possible implementation for plane stress --*/ if (nDim == 2){ - F_Mat[3][3] = 1.0; + F_Mat[2][2] = 1.0; } } @@ -199,31 +204,50 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } } + /*--- Compute the constitutive matrix ---*/ + + Compute_Constitutive_Matrix(); + Compute_Stress_Tensor(); + for (iNode = 0; iNode < nNode; iNode++){ - if (nDim == 2){ - Ba_Mat[0][0] = GradNi_Mat[iNode][0]; - Ba_Mat[1][1] = GradNi_Mat[iNode][1]; - Ba_Mat[2][0] = GradNi_Mat[iNode][1]; - Ba_Mat[2][1] = GradNi_Mat[iNode][0]; - } - else if (nDim ==3){ - Ba_Mat[0][0] = GradNi_Mat[iNode][0]; - Ba_Mat[1][1] = GradNi_Mat[iNode][1]; - Ba_Mat[2][2] = GradNi_Mat[iNode][2]; - Ba_Mat[3][0] = GradNi_Mat[iNode][1]; - Ba_Mat[3][1] = GradNi_Mat[iNode][0]; - Ba_Mat[4][0] = GradNi_Mat[iNode][2]; - Ba_Mat[4][2] = GradNi_Mat[iNode][0]; - Ba_Mat[5][1] = GradNi_Mat[iNode][2]; - Ba_Mat[5][2] = GradNi_Mat[iNode][1]; ; + /*--------------------------------------------------------------------------------*/ + /*---------------------------- NODAL STRESS TERM ---------------------------------*/ + /*--------------------------------------------------------------------------------*/ + /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ + /*--- and add it to the element structure to be retrieved from the solver ---*/ + + for (i = 0; i < nDim; i++){ + KAux_t_a[i] = 0.0; + for (j = 0; j < nDim; j++){ + KAux_t_a[i] += Weight * Stress_Tensor[i][j] * GradNi_Curr_Mat[iNode][j] * Jac_x; + } } + element->Add_Kt_a(KAux_t_a, iNode); - /*--- Compute the constitutive matrix ---*/ + /*--------------------------------------------------------------------------------*/ + /*----------------------- CONSTITUTIVE AND STRESS TERM ---------------------------*/ + /*--------------------------------------------------------------------------------*/ - Compute_Constitutive_Matrix(); + if (nDim == 2){ + Ba_Mat[0][0] = GradNi_Curr_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Curr_Mat[iNode][1]; + Ba_Mat[2][0] = GradNi_Curr_Mat[iNode][1]; + Ba_Mat[2][1] = GradNi_Curr_Mat[iNode][0]; + } + else if (nDim ==3){ + Ba_Mat[0][0] = GradNi_Curr_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Curr_Mat[iNode][1]; + Ba_Mat[2][2] = GradNi_Curr_Mat[iNode][2]; + Ba_Mat[3][0] = GradNi_Curr_Mat[iNode][1]; + Ba_Mat[3][1] = GradNi_Curr_Mat[iNode][0]; + Ba_Mat[4][0] = GradNi_Curr_Mat[iNode][2]; + Ba_Mat[4][2] = GradNi_Curr_Mat[iNode][0]; + Ba_Mat[5][1] = GradNi_Curr_Mat[iNode][2]; + Ba_Mat[5][2] = GradNi_Curr_Mat[iNode][1]; + } /*--- Compute the BT.D Matrix ---*/ @@ -241,28 +265,28 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (i = 0; i < nDim; i++){ AuxMatrixKs[i] = 0.0; for (j = 0; j < nDim; j++){ - AuxMatrixKs[i] += GradNi_Mat[iNode][j]*Stress_Tensor[j][i]; // DOUBLE CHECK + AuxMatrixKs[i] += GradNi_Curr_Mat[iNode][j]*Stress_Tensor[j][i]; // DOUBLE CHECK } } /*--- Assumming symmetry ---*/ for (jNode = iNode; jNode < nNode; jNode++){ if (nDim == 2){ - Bb_Mat[0][0] = GradNi_Mat[jNode][0]; - Bb_Mat[1][1] = GradNi_Mat[jNode][1]; - Bb_Mat[2][0] = GradNi_Mat[jNode][1]; - Bb_Mat[2][1] = GradNi_Mat[jNode][0]; + Bb_Mat[0][0] = GradNi_Curr_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Curr_Mat[jNode][1]; + Bb_Mat[2][0] = GradNi_Curr_Mat[jNode][1]; + Bb_Mat[2][1] = GradNi_Curr_Mat[jNode][0]; } else if (nDim ==3){ - Bb_Mat[0][0] = GradNi_Mat[jNode][0]; - Bb_Mat[1][1] = GradNi_Mat[jNode][1]; - Bb_Mat[2][2] = GradNi_Mat[jNode][2]; - Bb_Mat[3][0] = GradNi_Mat[jNode][1]; - Bb_Mat[3][1] = GradNi_Mat[jNode][0]; - Bb_Mat[4][0] = GradNi_Mat[jNode][2]; - Bb_Mat[4][2] = GradNi_Mat[jNode][0]; - Bb_Mat[5][1] = GradNi_Mat[jNode][2]; - Bb_Mat[5][2] = GradNi_Mat[jNode][1]; + Bb_Mat[0][0] = GradNi_Curr_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Curr_Mat[jNode][1]; + Bb_Mat[2][2] = GradNi_Curr_Mat[jNode][2]; + Bb_Mat[3][0] = GradNi_Curr_Mat[jNode][1]; + Bb_Mat[3][1] = GradNi_Curr_Mat[jNode][0]; + Bb_Mat[4][0] = GradNi_Curr_Mat[jNode][2]; + Bb_Mat[4][2] = GradNi_Curr_Mat[jNode][0]; + Bb_Mat[5][1] = GradNi_Curr_Mat[jNode][2]; + Bb_Mat[5][2] = GradNi_Curr_Mat[jNode][1]; } /*--- KAux_ab is the term for the constitutive part of the tangent matrix ---*/ @@ -270,16 +294,15 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (j = 0; j < nDim; j++){ KAux_ab[i][j] = 0.0; for (k = 0; k < bDim; k++){ - KAux_ab[i][j] += Weight * AuxMatrixKc[i][k] * Bb_Mat[k][j] * Jac_X; + KAux_ab[i][j] += Weight * AuxMatrixKc[i][k] * Bb_Mat[k][j] * Jac_x; } } } -//TODO: Modify the Jac_X --> If we are on the current configuration, the integration is on the current volume: Jac_x /*--- Ks_Aux_ab is the term for the constitutive part of the tangent matrix ---*/ Ks_Aux_ab = 0.0; for (i = 0; i < nDim; i++){ - Ks_Aux_ab += Weight * AuxMatrixKs[i] * GradNi_Mat[jNode][i] * Jac_X; + Ks_Aux_ab += Weight * AuxMatrixKs[i] * GradNi_Curr_Mat[jNode][i] * Jac_x; } element->Add_Kab(KAux_ab,iNode, jNode); @@ -313,6 +336,8 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ /*--- Under integration of the pressure term, if the calculations assume incompressibility or near incompressibility ---*/ + element->ComputeGrad_Pressure(); // Check if we can take this out! + /*--- nGauss is here the number of Gaussian Points for the pressure term ---*/ nGauss = element->GetnGaussPointsP(); nNode = element->GetnNodes(); @@ -320,13 +345,17 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ /*--- Initialize the Gradient auxiliary Matrix ---*/ for (iNode = 0; iNode < nNode; iNode++){ for (iDim = 0; iDim < nDim; iDim++){ - GradNi_Mat[iNode][iDim] = 0.0; + GradNi_Curr_Mat[iNode][iDim] = 0.0; } } Vol_current = 0.0; Vol_reference = 0.0; + /*--------------------------------------------------------------------------------*/ + /*-------------------------- INCOMPRESSIBLE TERM ---------------------------------*/ + /*--------------------------------------------------------------------------------*/ + for (iGauss = 0; iGauss < nGauss; iGauss++){ Weight = element->GetWeight_P(iGauss); @@ -340,7 +369,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ for (iNode = 0; iNode < nNode; iNode++){ for (iDim = 0; iDim < nDim; iDim++){ GradNi_Mat_Term = element->GetGradNi_x_P(iNode,iGauss,iDim); - GradNi_Mat[iNode][iDim] += Weight * GradNi_Mat_Term * Jac_x; + GradNi_Curr_Mat[iNode][iDim] += Weight * GradNi_Mat_Term * Jac_x; } } @@ -355,7 +384,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ /*--- TODO: Check this operation and add exit if the volumes are 0. ---*/ for (iNode = 0; iNode < nNode; iNode++){ for (iDim = 0; iDim < nDim; iDim++){ - GradNi_Mat[iNode][iDim] = GradNi_Mat[iNode][iDim] / Vol_current; + GradNi_Curr_Mat[iNode][iDim] = GradNi_Curr_Mat[iNode][iDim] / Vol_current; } } @@ -370,7 +399,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ /*--- KAux_P_ab is the term for the incompressibility part of the tangent matrix ---*/ for (i = 0; i < nDim; i++){ for (j = 0; j < nDim; j++){ - KAux_P_ab[i][j] = Avg_kappa * Vol_current * GradNi_Mat[iNode][i] * GradNi_Mat[jNode][j]; + KAux_P_ab[i][j] = Avg_kappa * Vol_current * GradNi_Curr_Mat[iNode][i] * GradNi_Curr_Mat[jNode][j]; } } @@ -382,6 +411,123 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ } + +void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ + + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + unsigned short iDim, bDim; + + double Ks_Aux_ab; + + double Weight, Jac_X, Jac_x; + + double AuxMatrixKt[3]; + + /*--- Initialize auxiliary matrices ---*/ + + for (i = 0; i < 3; i++){ + AuxMatrixKt[i] = 0.0; + } + + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_NonLinear(); /*--- Check if we can take this out... so we don't have to do it twice ---*/ + + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + + /*--- Full integration of the nodal stress ---*/ + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight(iGauss); + Jac_X = element->GetJ_X(iGauss); + Jac_x = element->GetJ_x(iGauss); + + /*--- Initialize the deformation gradient for each Gauss Point ---*/ + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + F_Mat[i][j] = 0.0; + b_Mat[i][j] = 0.0; + } + } + + /*--- Retrieve the values of the gradients of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + + for (iNode = 0; iNode < nNode; iNode++){ + + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Ref_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + GradNi_Curr_Mat[iNode][iDim] = element->GetGradNi_x(iNode,iGauss,iDim); + currentCoord[iNode][iDim] = element->GetCurr_Coord(iNode, iDim); + } + + /*--- Compute the deformation gradient ---*/ + + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Ref_Mat[iNode][j]; + } + } + + /*--- This implies plane strain --> Consider the possible implementation for plane stress --*/ + if (nDim == 2){ + F_Mat[2][2] = 1.0; + } + + } + + /*--- Determinant of F --> Jacobian of the transformation ---*/ + + J_F = F_Mat[0][0]*F_Mat[1][1]*F_Mat[2][2]+ + F_Mat[0][1]*F_Mat[1][2]*F_Mat[2][0]+ + F_Mat[0][2]*F_Mat[1][0]*F_Mat[2][1]- + F_Mat[0][2]*F_Mat[1][1]*F_Mat[2][0]- + F_Mat[1][2]*F_Mat[2][1]*F_Mat[0][0]- + F_Mat[2][2]*F_Mat[0][1]*F_Mat[1][0]; + + /*--- Compute the left Cauchy deformation tensor ---*/ + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + for (k = 0; k < 3; k++){ + b_Mat[i][j] += F_Mat[i][k]*F_Mat[j][k]; + } + } + } + + /*--- Compute the stress tensor ---*/ + + Compute_Stress_Tensor(); + + + for (iNode = 0; iNode < nNode; iNode++){ + + /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ + /*--- and add it to the element structure to be retrieved from the solver ---*/ + + for (i = 0; i < nDim; i++){ + KAux_t_a[i] = 0.0; + for (j = 0; j < nDim; j++){ + KAux_t_a[i] += Weight * Stress_Tensor[i][j] * GradNi_Curr_Mat[iNode][j] * Jac_x; + } + } + + element->Add_Kt_a(KAux_t_a, iNode); + + } + + } + + + + +} + + CFEM_NeoHookean_Comp::CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CFEM_NonlinearElasticity(val_nDim, val_nVar, config) { @@ -404,14 +550,25 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(void) { Lambda_p = Lambda/J_F; } - D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; - D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; - D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; - D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; - D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; - D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; + /*--- Assuming plane strain ---*/ + if (nDim == 2){ + D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = 0.0; + D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = 0.0; + D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = Mu_p; + } + else if (nDim == 3){ + D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; + D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; + D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; + D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; + D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; + D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; + } +// cout << D_Mat[0][0] << " " << D_Mat[0][1] << " " << D_Mat[0][2] << endl; +// cout << D_Mat[1][0] << " " << D_Mat[1][1] << " " << D_Mat[1][2] << endl; +// cout << D_Mat[2][0] << " " << D_Mat[2][1] << " " << D_Mat[2][2] << endl; } @@ -435,6 +592,61 @@ void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(void) { } } +} + +CFEM_NeoHookean_Incomp::CFEM_NeoHookean_Incomp(unsigned short val_nDim, unsigned short val_nVar, + CConfig *config) : CFEM_NonlinearElasticity(val_nDim, val_nVar, config) { + + +} + +CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { + +} + +void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(void) { + + unsigned short i,j; + double Mu_p, Lambda_p; + double dij; + + /*--- This can be done in a better way ---*/ + if (J_F != 0.0){ + Mu_p = (Mu - Lambda*log(J_F))/J_F; + Lambda_p = Lambda/J_F; + } + +// D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; +// D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; +// D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; +// D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; +// D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; +// D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; + + + +} + +void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(void) { + + unsigned short i,j; + double Mu_J, Lambda_J; + double dij; + + /*--- This can be done in a better way ---*/ + if (J_F != 0.0){ + Mu_J = Mu/J_F; + Lambda_J = Lambda/J_F; + } + +// for (i = 0; i < 3; i++){ +// for (j = 0; j < 3; j++){ +// if (i == j) dij = 1.0; +// else if (i != j) dij = 0.0; +// Stress_Tensor[i][j] = Mu_J * (b_Mat[i][j] - dij) + Lambda_J * log(J_F) * dij; +// } +// } + } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index defdc93389e..0eccaa27a4b 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -45,14 +45,22 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { GradN_x = NULL; Jacobian_s_ij = NULL; + Jacobian_k_ij = NULL; + + Res_Stress_i = NULL; } CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { - unsigned long iPoint, iElem; + unsigned long iPoint, iElem = 0; unsigned short iVar, jVar, iDim, NodesElement = 0, nKindElements; + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + nElement = geometry->GetnElem(); nDim = geometry->GetnDim(); nMarker = geometry->GetnMarker(); @@ -102,6 +110,10 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } + + + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + /*--- Term ij of the Jacobian ---*/ Jacobian_ij = new double*[nVar]; @@ -122,22 +134,57 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } } + /*--- Term ij of the Jacobian (incompressibility term) ---*/ + + if (incompressible){ + Jacobian_k_ij = new double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_k_ij[iVar] = new double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_k_ij[iVar][jVar] = 0.0; + } + } + } + else { + Jacobian_k_ij = NULL; + } + + /*--- Stress contribution to the node i ---*/ + Res_Stress_i = new double[nVar]; + + + /*--- Initialization of matrix structures ---*/ + if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - /*--- Here is where we assign the kind of each element ---*/ + /*--- Initialization of linear solver structures ---*/ + LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); + LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); -// for (iElem = 0; iElem < nElement; iElem++){ -// -// /*--- As of now, only QUAD4 elements ---*/ -// element_container[iElem] = new CQUAD4(nDim, iElem, config); -// -// } + /*--- Here is where we assign the kind of each element ---*/ if (nDim == 2){ - element_container[EL_TRIA] = new CTRIA1(nDim, iElem, config); - element_container[EL_QUAD] = new CQUAD4P1(nDim, iElem, config); + if (incompressible){ + element_container[EL_TRIA] = new CTRIA1(nDim, config); + element_container[EL_QUAD] = new CQUAD4P1(nDim, config); + } + else{ + element_container[EL_TRIA] = new CTRIA1(nDim, config); + element_container[EL_QUAD] = new CQUAD4(nDim, config); + } + } + else if (nDim == 2){ + if (incompressible){ + element_container[EL_TETRA] = new CTETRA1(nDim, config); + element_container[EL_HEXA] = new CHEXA8P1(nDim, config); + } + else{ + element_container[EL_TETRA] = new CTETRA1(nDim, config); + element_container[EL_HEXA] = new CHEXA8(nDim, config); + } } + } CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { @@ -163,6 +210,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] node; delete [] Jacobian_s_ij; delete [] Jacobian_ij; + delete [] Res_Stress_i; delete [] Solution; delete [] GradN_X; delete [] GradN_x; @@ -182,23 +230,27 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ unsigned short nNodes, nGauss; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; double val_Coord, val_Sol; + int EL_KIND; - double *Kab, Ks_ab; + double Ks_ab; + double *Kab = NULL; + double *Kk_ab = NULL; + double *Ta = NULL; unsigned short NelNodes, jNode; - cout << nElement << endl; + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); /*--- Loops over all the elements ---*/ for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) nNodes = 8; + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ @@ -209,23 +261,38 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); // cout << "Coord[" << iDim << "]: " << val_Coord << endl; val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[EL_QUAD]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[EL_QUAD]->SetCurr_Coord(val_Coord, iNode, iDim); + element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[EL_KIND]->SetCurr_Coord(val_Coord, iNode, iDim); } } - numerics[VISC_TERM]->Compute_Tangent_Matrix(element_container[EL_QUAD]); + numerics[VISC_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); + + if (incompressible) numerics[VISC_TERM]->Compute_MeanDilatation_Term(element_container[EL_KIND]); + + /*--- I can do it separately, or together within Compute_Tangent_Matrix (more efficient) ---*/ + //numerics[VISC_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); + + NelNodes = element_container[EL_KIND]->GetnNodes(); - NelNodes = element_container[EL_QUAD]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ + + Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); + for (jNode = 0; jNode < NelNodes; jNode++){ - Kab = element_container[EL_QUAD]->Get_Kab(iNode, jNode); - Ks_ab = element_container[EL_QUAD]->Get_Ks_ab(iNode,jNode); + + Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); + Ks_ab = element_container[EL_KIND]->Get_Ks_ab(iNode,jNode); + if (incompressible) Kk_ab = element_container[EL_KIND]->Get_Kk_ab(iNode,jNode); for (iVar = 0; iVar < nVar; iVar++){ Jacobian_s_ij[iVar][iVar] = Ks_ab; for (jVar = 0; jVar < nVar; jVar++){ Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; } } @@ -233,12 +300,18 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); + if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); + } } } + if (Kab != NULL) delete [] Kab; + if (Kk_ab != NULL) delete [] Kk_ab; + if (Ta != NULL) delete [] Ta; + double checkJacobian; ofstream myfile; From 16f580aa5c7f873ec2dd9f03d00b151850bf0b3f Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 23 Jul 2015 20:30:06 +0100 Subject: [PATCH 033/269] Extension of FEM solver: integration structure and methods. --- Common/include/config_structure.hpp | 10 + Common/include/config_structure.inl | 2 + Common/include/option_structure.hpp | 11 + Common/src/config_structure.cpp | 3 + SU2_CFD/include/element_structure.hpp | 28 +- SU2_CFD/include/gauss_structure.hpp | 7 +- SU2_CFD/include/gauss_structure.inl | 4 + SU2_CFD/include/integration_structure.hpp | 51 ++ SU2_CFD/include/integration_structure.inl | 4 + SU2_CFD/include/iteration_structure.hpp | 19 + SU2_CFD/include/numerics_structure.hpp | 7 + SU2_CFD/include/numerics_structure.inl | 2 + SU2_CFD/include/solver_structure.hpp | 92 +- SU2_CFD/include/solver_structure.inl | 6 + SU2_CFD/src/SU2_CFD.cpp | 6 +- SU2_CFD/src/element_linear.cpp | 976 +++++++++++++++++++++- SU2_CFD/src/gauss_structure.cpp | 4 + SU2_CFD/src/integration_structure.cpp | 42 + SU2_CFD/src/integration_time.cpp | 38 + SU2_CFD/src/iteration_structure.cpp | 44 + SU2_CFD/src/numerics_fem_elasticity.cpp | 4 + SU2_CFD/src/solver_fem_elasticity.cpp | 233 +++++- 22 files changed, 1531 insertions(+), 62 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index e21df66a314..8874975a4e5 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -341,6 +341,7 @@ class CConfig { Kind_TimeIntScheme_Heat, /*!< \brief Time integration for the wave equations. */ Kind_TimeIntScheme_Poisson, /*!< \brief Time integration for the wave equations. */ Kind_TimeIntScheme_FEA, /*!< \brief Time integration for the FEA equations. */ + Kind_SpaceIteScheme_FEA, /*!< \brief Iterative scheme for nonlinear structural analysis. */ Kind_ConvNumScheme, /*!< \brief Global definition of the convective term. */ Kind_ConvNumScheme_Flow, /*!< \brief Centered or upwind scheme for the flow equations. */ Kind_ConvNumScheme_Heat, /*!< \brief Centered or upwind scheme for the flow equations. */ @@ -3158,6 +3159,15 @@ class CConfig { */ unsigned short GetKind_TimeIntScheme_Template(void); + /*! + * \brief Get the kind of integration scheme (explicit or implicit) + * for the flow equations. + * \note This value is obtained from the config file, and it is constant + * during the computation. + * \return Kind of integration scheme for the plasma equations. + */ + unsigned short GetKind_SpaceIteScheme_FEA(void); + /*! * \brief Get the kind of convective numerical scheme for the flow * equations (centered or upwind). diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 28f8aba6c79..98751d848c9 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -695,6 +695,8 @@ inline unsigned short CConfig::GetKind_TimeIntScheme_Poisson(void) { return Kind inline unsigned short CConfig::GetKind_TimeIntScheme_FEA(void) { return Kind_TimeIntScheme_FEA; } +inline unsigned short CConfig::GetKind_SpaceIteScheme_FEA(void) { return Kind_SpaceIteScheme_FEA; } + inline unsigned short CConfig::GetKind_ConvNumScheme_Flow(void) { return Kind_ConvNumScheme_Flow; } inline unsigned short CConfig::GetKind_ConvNumScheme_TNE2(void) { return Kind_ConvNumScheme_TNE2; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 0d1db093d0d..45e98e401f7 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -712,6 +712,17 @@ static const map Time_Int_Map_FEA = CCreateMap Space_Ite_Map_FEA = CCreateMap +("NEWTON_RAPHSON", NEWTON_RAPHSON) +("MODIFIED_NEWTON_RAPHSON", MODIFIED_NEWTON_RAPHSON); + /*! * \brief types of schemes to compute the flow gradient */ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 7b4320570f7..adf8a74069b 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1171,6 +1171,9 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /*!\brief REGIME_TYPE \n DESCRIPTION: Compressibility of the material \n OPTIONS: see \link MatComp_Map \endlink \ingroup Config*/ addEnumOption("MATERIAL_COMPRESSIBILITY", Kind_Material_Compress, MatComp_Map, COMPRESSIBLE_MAT); + /* DESCRIPTION: Iterative method for non-linear structural analysis */ + addEnumOption("NONLINEAR_FEM_SOLUTION_METHOD", Kind_SpaceIteScheme_FEA, Space_Ite_Map_FEA, NEWTON_RAPHSON); + /* DESCRIPTION: Formulation for bidimensional elasticity solver */ addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRESS); /* DESCRIPTION: Apply dead loads diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index 005d949be1b..6294de7512f 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -259,20 +259,6 @@ class CElement { */ double *Get_Kt_a(unsigned short nodeA); - /*! - * \brief Set the value of the gradient of the shape functions respect to the reference configuration. - * \param[in] val_solution - Solution of the problem. - * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration - */ - virtual void ComputeGrad_Linear(void); - - /*! - * \brief Set the value of the gradient of the shape functions respect to the current configuration. - * \param[in] val_solution - Solution of the problem. - * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration - */ - virtual void ComputeGrad_NonLinear(void); - /*! * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. * \param[in] iNode - Index of the node. @@ -297,6 +283,20 @@ class CElement { */ double GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim); + /*! + * \brief Set the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_X - Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + */ + virtual void ComputeGrad_Linear(void); + + /*! + * \brief Set the value of the gradient of the shape functions respect to the current configuration. + * \param[in] val_solution - Solution of the problem. + * \param[out] J_x - Jacobian of the element evaluated at the current Gauss Point respect to the current configuration + */ + virtual void ComputeGrad_NonLinear(void); + /*! * \brief Virtual member */ diff --git a/SU2_CFD/include/gauss_structure.hpp b/SU2_CFD/include/gauss_structure.hpp index 2cfd8e29cfa..2ac652a1cdb 100644 --- a/SU2_CFD/include/gauss_structure.hpp +++ b/SU2_CFD/include/gauss_structure.hpp @@ -55,7 +55,8 @@ class CGaussVariable { protected: double **GradNi_Xj, // Gradient of the shape functions N[i] respect to the reference configuration - **GradNi_xj; // Gradient of the shape functions N[i] respect to the current configuration + **GradNi_xj; // Gradient of the shape functions N[i] respect to the current configuration + double *Ni; // Shape functions N[i] at the gaussian point double J_X, // Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration J_x; // Jacobian of the element evaluated at the current Gauss Point respect to the current configuration unsigned short iGaussPoint; // Identifier of the Gauss point considered @@ -91,6 +92,8 @@ class CGaussVariable { void SetGradNi_xj(double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni); + void SetNi(double val_ShapeNi, unsigned short val_Ni); + void SetJ_X(double valJ_X); void SetJ_x(double valJ_x); @@ -101,6 +104,8 @@ class CGaussVariable { double GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim); + double GetNi(unsigned short val_Ni); + double GetJ_X(void); double GetJ_x(void); diff --git a/SU2_CFD/include/gauss_structure.inl b/SU2_CFD/include/gauss_structure.inl index 5e02d380f46..1b4141251cc 100644 --- a/SU2_CFD/include/gauss_structure.inl +++ b/SU2_CFD/include/gauss_structure.inl @@ -35,6 +35,8 @@ inline void CGaussVariable::SetGradNi_Xj(double val_GradNi_Xj, unsigned short va inline void CGaussVariable::SetGradNi_xj(double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_xj[val_Ni][val_iDim] = val_GradNi_xj; } +inline void CGaussVariable::SetNi(double val_ShapeNi, unsigned short val_Ni) { Ni[val_Ni] = val_ShapeNi; } + inline void CGaussVariable::SetJ_X(double valJ_X) { J_X = valJ_X; } inline void CGaussVariable::SetJ_x(double valJ_x) { J_x = valJ_x; } @@ -47,6 +49,8 @@ inline double CGaussVariable::GetGradNi_Xj(unsigned short val_Ni, unsigned short inline double CGaussVariable::GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_xj[val_Ni][val_iDim]; } +inline double CGaussVariable::GetNi(unsigned short val_Ni) { return Ni[val_Ni]; } + inline double CGaussVariable::GetJ_X(void) { return J_X; } inline double CGaussVariable::GetJ_x(void) { return J_x; } diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index 30f211b7be7..0f45027a3a6 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -91,6 +91,20 @@ class CIntegration { void Space_Integration(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem); + /*! + * \brief Do the space integration of the numerical system on a FEM framework. + * \author R. Sanchez + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] iMesh - Index of the mesh in multigrid computations. + * \param[in] iRKStep - Current step of the Runge-Kutta iteration. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + */ + void Space_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, + unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem); + /*! * \brief Do the time integration (explicit or implicit) of the numerical system. * \param[in] geometry - Geometrical definition of the problem. @@ -104,6 +118,19 @@ class CIntegration { unsigned short iRKStep, unsigned short RunTime_EqSystem, unsigned long Iteration); /*! + * \brief Do the time integration (explicit or implicit) of the numerical system on a FEM framework.. + * \author R. Sanchez + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] iRKStep - Current step of the Runge-Kutta iteration. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + void Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CConfig *config, + unsigned short iRKStep, unsigned short RunTime_EqSystem, unsigned long Iteration); + + /*! * \brief Initialize the adjoint solution using the primal problem. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. @@ -344,6 +371,18 @@ class CIntegration { virtual void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config - Definition of the particular problem. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + virtual void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); + /*! * \brief A virtual member. @@ -636,6 +675,18 @@ class CStructuralIntegration : public CIntegration { void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); + /*! + * \brief Do the numerical integration (implicit) of the structural solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config - Definition of the particular problem. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); + }; #include "integration_structure.inl" diff --git a/SU2_CFD/include/integration_structure.inl b/SU2_CFD/include/integration_structure.inl index bf075483d98..22f53cdf10d 100644 --- a/SU2_CFD/include/integration_structure.inl +++ b/SU2_CFD/include/integration_structure.inl @@ -80,6 +80,10 @@ inline void CIntegration::SingleGrid_Iteration(CGeometry ***geometry, CSolver ** inline void CIntegration::Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } +inline void CIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } + + inline void CIntegration::SetPotential_Solver(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iMesh, unsigned short iZone) { } diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index cafdb653d46..a3d34cace91 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -168,6 +168,25 @@ void FEAIteration(COutput *output, CIntegration ***integration_container, CGeome CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); /*! + * \brief Iteration function for structural analysis using the Finite Element Method. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + + +/*! * \brief ________________________. * \param[in] output - Pointer to the COutput class. * \param[in] integration_container - Container vector with all the integration methods. diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index a1c3aa1083a..11021363737 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1678,6 +1678,12 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, */ virtual void Compute_Stress_Tensor(void); + /*! + * \brief A virtual member to compute the mass matrix + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Mass_Matrix(CElement *element_container); + /*! * \brief Computes a basis of orthogonal vectors from a suppled vector * \param[in] config - Normal vector @@ -4431,6 +4437,7 @@ class CFEM_Elasticity : public CNumerics { */ ~CFEM_Elasticity(void); + void Compute_Mass_Matrix(CElement *element_container); virtual void Compute_Tangent_Matrix(CElement *element_container); diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index b745a056b54..ea1e45a3606 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -55,6 +55,8 @@ inline void CNumerics::PressInt_Linear(double CoordCorners[4][3], double *tn_e, inline void CNumerics::ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]) { } +inline void CNumerics::Compute_Mass_Matrix(CElement *element_container){ } + inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index c9d704cb483..a9d6abe5c22 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2302,6 +2302,34 @@ class CSolver { */ virtual void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -6259,7 +6287,7 @@ class CFEASolver : public CSolver { void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output); /*! - * \brief A virtual member. + * \brief Postprocessing. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. * \param[in] config - Definition of the particular problem. @@ -6418,7 +6446,7 @@ class CFEASolver : public CSolver { double GetFSI_ConvValue(unsigned short val_index); /*! - * \brief A virtual member. + * \brief Compute the stiffness matrix of the problem. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. * \param[in] solver - Description of the numerical method. @@ -6427,7 +6455,7 @@ class CFEASolver : public CSolver { void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); /*! - * \brief A virtual member. + * \brief Compute the stiffness and mass matrices of the problem. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. * \param[in] solver - Description of the numerical method. @@ -6512,8 +6540,11 @@ class CFEM_ElasticitySolver : public CSolver { double **Jacobian_s_ij; /*!< \brief Matrix to store the stress contribution of node ij (diagonal). */ double **Jacobian_k_ij; /*!< \brief Matrix to store the pressure contribution of node ij. */ + double **MassMatrix_ij; /*!< \brief Matrix to store the term ij of the mass matrix. */ double *Res_Stress_i; /*!< \brief Matrix to store the nodal stress contribution of node i. */ + CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix. */ + public: CElement** element_container; /*!< \brief Vector which the define the finite element structure for each problem. */ @@ -6556,6 +6587,61 @@ class CFEM_ElasticitySolver : public CSolver { void SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration); + /*! + * \brief Compute the stiffness matrix of the problem. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + /*! + * \brief Compute the stiffness matrix of the problem and the nodal stress terms at the same time (more efficient if full Newton Raphson). + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + /*! + * \brief Compute the mass matrix of the problem. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + /*! + * \brief Compute the nodal stress terms and add them to the residual. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + /*! + * \brief Clamped boundary conditions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker); + + /*! + * \brief Postprocessing. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] iMesh - Index of the mesh in multigrid computations. + */ + void Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, + unsigned short iMesh); + }; /*! diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 61012145e74..5a8585e3f8b 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -627,6 +627,12 @@ inline CFluidModel* CEulerSolver::GetFluidModel(void) { return FluidModel;} inline void CSolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + +inline void CSolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + +inline void CSolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 1ef060201ef..9216f9170e8 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -388,9 +388,9 @@ int main(int argc, char *argv[]) { break; case FEM_ELASTICITY: - FEAIteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); + FEM_StructuralIteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); break; case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index a1d723a4dc6..7ce31e66dbf 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -86,6 +86,25 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) Ks_ab[iNode] = new double [nNodes]; } + Kt_a = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kt_a[iNode] = new double [nDim]; + } + + double Xi, Eta, val_Ni; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + + val_Ni = Xi; + GaussPoint[iGauss]->SetNi(val_Ni,0); + val_Ni = Eta; + GaussPoint[iGauss]->SetNi(val_Ni,1); + val_Ni = 1-Xi-Eta; + GaussPoint[iGauss]->SetNi(val_Ni,2); + } + + } CTRIA1::~CTRIA1(void) { @@ -105,6 +124,7 @@ CTRIA1::~CTRIA1(void) { delete [] RefCoord[iVar]; delete [] Kab[iVar]; delete [] Ks_ab[iVar]; + delete [] Kt_a[iVar]; } delete [] GaussCoord; @@ -113,16 +133,157 @@ CTRIA1::~CTRIA1(void) { delete [] RefCoord; delete [] Kab; delete [] Ks_ab; + delete [] Kt_a; delete [] GaussWeight; } void CTRIA1::ComputeGrad_Linear(void){ + double Xi, Eta; + double Jacobian[2][2], dNiXj[3][2]; + double detJac, GradNi_Xj; + double ad[2][2]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; + dNiXj[1][0] = 0.0; dNiXj[1][1] = 1.0; + dNiXj[2][0] = -1.0; dNiXj[2][1] = -1.0; + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jacobian[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jacobian[iDim][jDim] = Jacobian[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad[0][0] = Jacobian[1][1]; + ad[0][1] = -Jacobian[0][1]; + ad[1][0] = -Jacobian[1][0]; + ad[1][1] = Jacobian[0][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac = ad[0][0]*ad[1][1]-ad[0][1]*ad[1][0]; + + GaussPoint[iGauss]->SetJ_X(detJac); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jacobian[iDim][jDim] = ad[iDim][jDim]/detJac; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj += Jacobian[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj, iDim, iNode); + } + } + } + } void CTRIA1::ComputeGrad_NonLinear(void){ + double Xi, Eta; + double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[3][2]; + double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + double ad_Ref[2][2], ad_Curr[2][2]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; + dNiXj[1][0] = 0.0; dNiXj[1][1] = 1.0; + dNiXj[2][0] = -1.0; dNiXj[2][1] = -1.0; + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = 0.0; + Jac_Curr[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad_Ref[0][0] = Jac_Ref[1][1]; + ad_Ref[0][1] = -Jac_Ref[0][1]; + ad_Ref[1][0] = -Jac_Ref[1][0]; + ad_Ref[1][1] = Jac_Ref[0][0]; + + ad_Curr[0][0] = Jac_Curr[1][1]; + ad_Curr[0][1] = -Jac_Curr[0][1]; + ad_Curr[1][0] = -Jac_Curr[1][0]; + ad_Curr[1][1] = Jac_Curr[0][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac_Ref = ad_Ref[0][0]*ad_Ref[1][1]-ad_Ref[0][1]*ad_Ref[1][0]; + detJac_Curr = ad_Curr[0][0]*ad_Curr[1][1]-ad_Curr[0][1]*ad_Curr[1][0]; + + GaussPoint[iGauss]->SetJ_X(detJac_Ref); + GaussPoint[iGauss]->SetJ_x(detJac_Curr); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < 2; iDim++) { + for (jDim = 0; jDim < 2; jDim++) { + Jac_Ref[iDim][jDim] = ad_Ref[iDim][jDim]/detJac_Ref; + Jac_Curr[iDim][jDim] = ad_Curr[iDim][jDim]/detJac_Curr; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj_Ref = 0.0; + GradNi_Xj_Curr = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj_Ref += Jac_Ref[iDim][jDim]*dNiXj[iNode][jDim]; + GradNi_Xj_Curr += Jac_Curr[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj_Ref, iDim, iNode); + GaussPoint[iGauss]->SetGradNi_xj(GradNi_Xj_Curr, iDim, iNode); + } + } + } + + } CQUAD4::CQUAD4(void) : CElement() { @@ -188,6 +349,19 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) Kt_a[iNode] = new double [nDim]; } + /*--- Store the shape functions (they only need to be computed once) ---*/ + double Xi, Eta, val_Ni; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + + val_Ni = 0.25*(1.0-Xi)*(1.0-Eta); GaussPoint[iGauss]->SetNi(val_Ni,0); + val_Ni = 0.25*(1.0+Xi)*(1.0-Eta); GaussPoint[iGauss]->SetNi(val_Ni,1); + val_Ni = 0.25*(1.0+Xi)*(1.0+Eta); GaussPoint[iGauss]->SetNi(val_Ni,2); + val_Ni = 0.25*(1.0-Xi)*(1.0+Eta); GaussPoint[iGauss]->SetNi(val_Ni,3); + } + + } CQUAD4::~CQUAD4(void) { @@ -221,7 +395,6 @@ CQUAD4::~CQUAD4(void) { } - void CQUAD4::ComputeGrad_Linear(void){ double Xi, Eta; @@ -245,10 +418,10 @@ void CQUAD4::ComputeGrad_Linear(void){ /*--- Jacobian transformation ---*/ /*--- This does dX/dXi transpose ---*/ - for (iDim = 0; iDim < 2; iDim++) { - for (jDim = 0; jDim < 2; jDim++) { + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { Jacobian[iDim][jDim] = 0.0; - for (iNode = 0; iNode < 4; iNode++) { + for (iNode = 0; iNode < nNodes; iNode++) { Jacobian[iDim][jDim] = Jacobian[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; } } @@ -313,11 +486,11 @@ void CQUAD4::ComputeGrad_NonLinear(void){ /*--- Jacobian transformation ---*/ /*--- This does dX/dXi transpose ---*/ - for (iDim = 0; iDim < 2; iDim++) { - for (jDim = 0; jDim < 2; jDim++) { + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { Jac_Ref[iDim][jDim] = 0.0; Jac_Curr[iDim][jDim] = 0.0; - for (iNode = 0; iNode < 4; iNode++) { + for (iNode = 0; iNode < nNodes; iNode++) { Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; } @@ -439,7 +612,6 @@ CQUAD4P1::~CQUAD4P1(void) { } - void CQUAD4P1::ComputeGrad_Pressure(void){ double Xi, Eta; @@ -528,56 +700,796 @@ CTETRA1::CTETRA1(void) : CElement() { CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { -} + unsigned short iGaussPoint=0; + unsigned short iNode, iGauss, jNode; + unsigned short nDimSq; -CTETRA1::~CTETRA1(void) { + nNodes = 4; + nGaussPoints = 1; -} + nDimSq = nDim*nDim; -void CTETRA1::ComputeGrad_Linear(void){ + GaussPoint = new CGaussVariable*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++) { + GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); + } -} + /*--- Initialize structure for current and reference configuration ---*/ -void CTETRA1::ComputeGrad_NonLinear(void){ + CurrentCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + CurrentCoord [iNode] = new double[nDim]; + } -} + RefCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + RefCoord [iNode] = new double[nDim]; + } -CHEXA8::CHEXA8(void) : CElement() { + GaussWeight = new double [nGaussPoints]; -} + GaussCoord = new double*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + GaussCoord [iGauss] = new double[nDim]; + } -CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) -: CElement(val_nDim, config) { + GaussCoord[0][0] = 0.25; GaussCoord[0][1] = 0.25; GaussCoord[0][2] = 0.25; GaussWeight[0] = 0.166666666666666; -} + Kab = new double **[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kab [iNode] = new double*[nNodes]; + for (jNode = 0; jNode < nNodes; jNode++){ + Kab [iNode][jNode] = new double[nDimSq]; + } + } -CHEXA8::~CHEXA8(void) { + Ks_ab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Ks_ab[iNode] = new double [nNodes]; + } -} + Kt_a = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kt_a[iNode] = new double [nDim]; + } -void CHEXA8::ComputeGrad_Linear(void){ + /*--- Store the shape functions (they only need to be computed once) ---*/ + double Xi, Eta, Zeta, val_Ni; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + Zeta = GaussCoord[iGauss][2]; + + val_Ni = Xi; GaussPoint[iGauss]->SetNi(val_Ni,0); + val_Ni = Eta; GaussPoint[iGauss]->SetNi(val_Ni,1); + val_Ni = 1.0 - Xi - Eta - Zeta; GaussPoint[iGauss]->SetNi(val_Ni,2); + val_Ni = Zeta; GaussPoint[iGauss]->SetNi(val_Ni,3); + } } -void CHEXA8::ComputeGrad_NonLinear(void){ +CTETRA1::~CTETRA1(void) { -} + unsigned short iVar, jVar; + for (iVar = 0; iVar < nGaussPoints; iVar++){ + delete [] GaussCoord[iVar]; + delete [] GaussPoint[iVar]; + } -CHEXA8P1::CHEXA8P1(void) : CHEXA8() { + for (iVar = 0; iVar < nNodes; iVar++){ + for (jVar = 0; jVar < nNodes; jVar++){ + delete [] Kab[iVar][jVar]; + } + delete [] CurrentCoord[iVar]; + delete [] RefCoord[iVar]; + delete [] Kab[iVar]; + delete [] Ks_ab[iVar]; + delete [] Kt_a[iVar]; + } + + delete [] GaussCoord; + delete [] GaussPoint; + delete [] CurrentCoord; + delete [] RefCoord; + delete [] Kab; + delete [] Ks_ab; + delete [] Kt_a; + delete [] GaussWeight; } -CHEXA8P1::CHEXA8P1(unsigned short val_nDim, CConfig *config) -: CHEXA8(val_nDim, config) { +void CTETRA1::ComputeGrad_Linear(void){ -} + double Xi, Eta, Zeta; + double Jacobian[3][3], dNiXj[4][3]; + double detJac, GradNi_Xj; + double ad[3][3]; + unsigned short iNode, iDim, jDim, iGauss; -CHEXA8P1::~CHEXA8P1(void) { + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ -} + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + Zeta = GaussCoord[iGauss][2]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; dNiXj[0][2] = 0.0; + dNiXj[1][0] = 0.0; dNiXj[1][1] = 1.0; dNiXj[1][2] = 0.0; + dNiXj[2][0] = -1.0; dNiXj[2][1] = -1.0; dNiXj[2][2] = -1.0; + dNiXj[3][0] = 0.0; dNiXj[3][1] = 0.0; dNiXj[3][2] = 1.0; + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jacobian[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jacobian[iDim][jDim] = Jacobian[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad[0][0] = Jacobian[1][1]*Jacobian[2][2]-Jacobian[1][2]*Jacobian[2][1]; + ad[0][1] = Jacobian[0][2]*Jacobian[2][1]-Jacobian[0][1]*Jacobian[2][2]; + ad[0][2] = Jacobian[0][1]*Jacobian[1][2]-Jacobian[0][2]*Jacobian[1][1]; + ad[1][0] = Jacobian[1][2]*Jacobian[2][0]-Jacobian[1][0]*Jacobian[2][2]; + ad[1][1] = Jacobian[0][0]*Jacobian[2][2]-Jacobian[0][2]*Jacobian[2][0]; + ad[1][2] = Jacobian[0][2]*Jacobian[1][0]-Jacobian[0][0]*Jacobian[1][2]; + ad[2][0] = Jacobian[1][0]*Jacobian[2][1]-Jacobian[1][1]*Jacobian[2][0]; + ad[2][1] = Jacobian[0][1]*Jacobian[2][0]-Jacobian[0][0]*Jacobian[2][1]; + ad[2][2] = Jacobian[0][0]*Jacobian[1][1]-Jacobian[0][1]*Jacobian[1][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac = Jacobian[0][0]*ad[0][0]+Jacobian[0][1]*ad[1][0]+Jacobian[0][2]*ad[2][0]; + + GaussPoint[iGauss]->SetJ_X(detJac); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jacobian[iDim][jDim] = ad[iDim][jDim]/detJac; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj += Jacobian[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj, iDim, iNode); + } + } + } + +} + +void CTETRA1::ComputeGrad_NonLinear(void){ + + double Xi, Eta, Zeta; + double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[4][3]; + double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + double ad_Ref[3][3], ad_Curr[3][3]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + Zeta = GaussCoord[iGauss][2]; + + /*--- dN/d xi, dN/d eta ---*/ + + dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; dNiXj[0][2] = 0.0; + dNiXj[1][0] = 0.0; dNiXj[1][1] = 1.0; dNiXj[1][2] = 0.0; + dNiXj[2][0] = -1.0; dNiXj[2][1] = -1.0; dNiXj[2][2] = -1.0; + dNiXj[3][0] = 0.0; dNiXj[3][1] = 0.0; dNiXj[3][2] = 1.0; + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = 0.0; + Jac_Curr[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad_Ref[0][0] = Jac_Ref[1][1]*Jac_Ref[2][2]-Jac_Ref[1][2]*Jac_Ref[2][1]; + ad_Ref[0][1] = Jac_Ref[0][2]*Jac_Ref[2][1]-Jac_Ref[0][1]*Jac_Ref[2][2]; + ad_Ref[0][2] = Jac_Ref[0][1]*Jac_Ref[1][2]-Jac_Ref[0][2]*Jac_Ref[1][1]; + ad_Ref[1][0] = Jac_Ref[1][2]*Jac_Ref[2][0]-Jac_Ref[1][0]*Jac_Ref[2][2]; + ad_Ref[1][1] = Jac_Ref[0][0]*Jac_Ref[2][2]-Jac_Ref[0][2]*Jac_Ref[2][0]; + ad_Ref[1][2] = Jac_Ref[0][2]*Jac_Ref[1][0]-Jac_Ref[0][0]*Jac_Ref[1][2]; + ad_Ref[2][0] = Jac_Ref[1][0]*Jac_Ref[2][1]-Jac_Ref[1][1]*Jac_Ref[2][0]; + ad_Ref[2][1] = Jac_Ref[0][1]*Jac_Ref[2][0]-Jac_Ref[0][0]*Jac_Ref[2][1]; + ad_Ref[2][2] = Jac_Ref[0][0]*Jac_Ref[1][1]-Jac_Ref[0][1]*Jac_Ref[1][0]; + + ad_Curr[0][0] = Jac_Curr[1][1]*Jac_Curr[2][2]-Jac_Curr[1][2]*Jac_Curr[2][1]; + ad_Curr[0][1] = Jac_Curr[0][2]*Jac_Curr[2][1]-Jac_Curr[0][1]*Jac_Curr[2][2]; + ad_Curr[0][2] = Jac_Curr[0][1]*Jac_Curr[1][2]-Jac_Curr[0][2]*Jac_Curr[1][1]; + ad_Curr[1][0] = Jac_Curr[1][2]*Jac_Curr[2][0]-Jac_Curr[1][0]*Jac_Curr[2][2]; + ad_Curr[1][1] = Jac_Curr[0][0]*Jac_Curr[2][2]-Jac_Curr[0][2]*Jac_Curr[2][0]; + ad_Curr[1][2] = Jac_Curr[0][2]*Jac_Curr[1][0]-Jac_Curr[0][0]*Jac_Curr[1][2]; + ad_Curr[2][0] = Jac_Curr[1][0]*Jac_Curr[2][1]-Jac_Curr[1][1]*Jac_Curr[2][0]; + ad_Curr[2][1] = Jac_Curr[0][1]*Jac_Curr[2][0]-Jac_Curr[0][0]*Jac_Curr[2][1]; + ad_Curr[2][2] = Jac_Curr[0][0]*Jac_Curr[1][1]-Jac_Curr[0][1]*Jac_Curr[1][0]; + + + /*--- Determinant of Jacobian ---*/ + + detJac_Ref = Jac_Ref[0][0]*ad_Ref[0][0]+Jac_Ref[0][1]*ad_Ref[1][0]+Jac_Ref[0][2]*ad_Ref[2][0]; + detJac_Curr = Jac_Curr[0][0]*ad_Curr[0][0]+Jac_Curr[0][1]*ad_Curr[1][0]+Jac_Curr[0][2]*ad_Curr[2][0]; + + GaussPoint[iGauss]->SetJ_X(detJac_Ref); + GaussPoint[iGauss]->SetJ_x(detJac_Curr); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = ad_Ref[iDim][jDim]/detJac_Ref; + Jac_Curr[iDim][jDim] = ad_Curr[iDim][jDim]/detJac_Curr; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj_Ref = 0.0; + GradNi_Xj_Curr = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj_Ref += Jac_Ref[iDim][jDim]*dNiXj[iNode][jDim]; + GradNi_Xj_Curr += Jac_Curr[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj_Ref, iDim, iNode); + GaussPoint[iGauss]->SetGradNi_xj(GradNi_Xj_Curr, iDim, iNode); + } + } + } + +} + +CHEXA8::CHEXA8(void) : CElement() { + +} + +CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) +: CElement(val_nDim, config) { + + unsigned short iGaussPoint=0; + unsigned short iNode, iGauss, jNode; + unsigned short nDimSq; + + nNodes = 8; + nGaussPoints = 8; + + nDimSq = nDim*nDim; + + GaussPoint = new CGaussVariable*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++) { + GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); + } + + /*--- Initialize structure for current and reference configuration ---*/ + + CurrentCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + CurrentCoord [iNode] = new double[nDim]; + } + + RefCoord = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + RefCoord [iNode] = new double[nDim]; + } + + GaussWeight = new double [nGaussPoints]; + + GaussCoord = new double*[nGaussPoints]; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + GaussCoord [iGauss] = new double[nDim]; + } + + GaussCoord[0][0] = -0.577350269189626; GaussCoord[0][1] = -0.577350269189626; GaussCoord[0][2] = -0.577350269189626; GaussWeight[0] = 1.0; + GaussCoord[1][0] = 0.577350269189626; GaussCoord[1][1] = -0.577350269189626; GaussCoord[1][2] = -0.577350269189626; GaussWeight[1] = 1.0; + GaussCoord[2][0] = 0.577350269189626; GaussCoord[2][1] = 0.577350269189626; GaussCoord[2][2] = -0.577350269189626; GaussWeight[2] = 1.0; + GaussCoord[3][0] = -0.577350269189626; GaussCoord[3][1] = 0.577350269189626; GaussCoord[3][2] = -0.577350269189626; GaussWeight[3] = 1.0; + GaussCoord[4][0] = -0.577350269189626; GaussCoord[4][1] = -0.577350269189626; GaussCoord[4][2] = 0.577350269189626; GaussWeight[0] = 1.0; + GaussCoord[5][0] = 0.577350269189626; GaussCoord[5][1] = -0.577350269189626; GaussCoord[5][2] = 0.577350269189626; GaussWeight[1] = 1.0; + GaussCoord[6][0] = 0.577350269189626; GaussCoord[6][1] = 0.577350269189626; GaussCoord[6][2] = 0.577350269189626; GaussWeight[2] = 1.0; + GaussCoord[7][0] = -0.577350269189626; GaussCoord[7][1] = 0.577350269189626; GaussCoord[7][2] = 0.577350269189626; GaussWeight[3] = 1.0; + + Kab = new double **[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kab [iNode] = new double*[nNodes]; + for (jNode = 0; jNode < nNodes; jNode++){ + Kab [iNode][jNode] = new double[nDimSq]; + } + } + + Ks_ab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Ks_ab[iNode] = new double [nNodes]; + } + + Kt_a = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kt_a[iNode] = new double [nDim]; + } + + + /*--- Store the shape functions (they only need to be computed once) ---*/ + double Xi, Eta, Zeta, val_Ni; + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + Zeta = GaussCoord[iGauss][2]; + + val_Ni = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0-Zeta); GaussPoint[iGauss]->SetNi(val_Ni,0); + val_Ni = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0-Zeta); GaussPoint[iGauss]->SetNi(val_Ni,1); + val_Ni = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0-Zeta); GaussPoint[iGauss]->SetNi(val_Ni,2); + val_Ni = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0-Zeta); GaussPoint[iGauss]->SetNi(val_Ni,3); + val_Ni = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0+Zeta); GaussPoint[iGauss]->SetNi(val_Ni,4); + val_Ni = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0+Zeta); GaussPoint[iGauss]->SetNi(val_Ni,5); + val_Ni = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0+Zeta); GaussPoint[iGauss]->SetNi(val_Ni,6); + val_Ni = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0+Zeta); GaussPoint[iGauss]->SetNi(val_Ni,7); + } + +} + +CHEXA8::~CHEXA8(void) { + + unsigned short iVar, jVar; + + for (iVar = 0; iVar < nGaussPoints; iVar++){ + delete [] GaussCoord[iVar]; + delete [] GaussPoint[iVar]; + } + + for (iVar = 0; iVar < nNodes; iVar++){ + for (jVar = 0; jVar < nNodes; jVar++){ + delete [] Kab[iVar][jVar]; + } + delete [] CurrentCoord[iVar]; + delete [] RefCoord[iVar]; + delete [] Kab[iVar]; + delete [] Ks_ab[iVar]; + delete [] Kt_a[iVar]; + } + + delete [] GaussCoord; + delete [] GaussPoint; + delete [] CurrentCoord; + delete [] RefCoord; + delete [] Kab; + delete [] Ks_ab; + delete [] Kt_a; + delete [] GaussWeight; + + +} + +void CHEXA8::ComputeGrad_Linear(void){ + + double Xi, Eta, Zeta; + double Jacobian[3][3], dNiXj[8][3]; + double detJac, GradNi_Xj; + double ad[3][3]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + Zeta = GaussCoord[iGauss][2]; + + /*--- dN/d xi ---*/ + + dNiXj[0][0] = -0.125*(1.0-Eta)*(1.0-Zeta); + dNiXj[1][0] = 0.125*(1.0-Eta)*(1.0-Zeta); + dNiXj[2][0] = 0.125*(1.0+Eta)*(1.0-Zeta); + dNiXj[3][0] = -0.125*(1.0+Eta)*(1.0-Zeta); + dNiXj[4][0] = -0.125*(1.0-Eta)*(1.0+Zeta); + dNiXj[5][0] = 0.125*(1.0-Eta)*(1.0+Zeta); + dNiXj[6][0] = 0.125*(1.0+Eta)*(1.0+Zeta); + dNiXj[7][0] = -0.125*(1.0+Eta)*(1.0+Zeta); + + /*--- dN/d eta ---*/ + + dNiXj[0][1] = -0.125*(1.0-Xi)*(1.0-Zeta); + dNiXj[1][1] = -0.125*(1.0+Xi)*(1.0-Zeta); + dNiXj[2][1] = 0.125*(1.0+Xi)*(1.0-Zeta); + dNiXj[3][1] = 0.125*(1.0-Xi)*(1.0-Zeta); + dNiXj[4][1] = -0.125*(1.0-Xi)*(1.0+Zeta); + dNiXj[5][1] = -0.125*(1.0+Xi)*(1.0+Zeta); + dNiXj[6][1] = 0.125*(1.0+Xi)*(1.0+Zeta); + dNiXj[7][1] = 0.125*(1.0-Xi)*(1.0+Zeta); + + /*--- dN/d mu ---*/ + + dNiXj[0][2] = -0.125*(1.0-Xi)*(1.0-Eta); + dNiXj[1][2] = -0.125*(1.0+Xi)*(1.0-Eta); + dNiXj[2][2] = -0.125*(1.0+Xi)*(1.0+Eta); + dNiXj[3][2] = -0.125*(1.0-Xi)*(1.0+Eta); + dNiXj[4][2] = 0.125*(1.0-Xi)*(1.0-Eta); + dNiXj[5][2] = 0.125*(1.0+Xi)*(1.0-Eta); + dNiXj[6][2] = 0.125*(1.0+Xi)*(1.0+Eta); + dNiXj[7][2] = 0.125*(1.0-Xi)*(1.0+Eta); + + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jacobian[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jacobian[iDim][jDim] = Jacobian[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad[0][0] = Jacobian[1][1]*Jacobian[2][2]-Jacobian[1][2]*Jacobian[2][1]; + ad[0][1] = Jacobian[0][2]*Jacobian[2][1]-Jacobian[0][1]*Jacobian[2][2]; + ad[0][2] = Jacobian[0][1]*Jacobian[1][2]-Jacobian[0][2]*Jacobian[1][1]; + ad[1][0] = Jacobian[1][2]*Jacobian[2][0]-Jacobian[1][0]*Jacobian[2][2]; + ad[1][1] = Jacobian[0][0]*Jacobian[2][2]-Jacobian[0][2]*Jacobian[2][0]; + ad[1][2] = Jacobian[0][2]*Jacobian[1][0]-Jacobian[0][0]*Jacobian[1][2]; + ad[2][0] = Jacobian[1][0]*Jacobian[2][1]-Jacobian[1][1]*Jacobian[2][0]; + ad[2][1] = Jacobian[0][1]*Jacobian[2][0]-Jacobian[0][0]*Jacobian[2][1]; + ad[2][2] = Jacobian[0][0]*Jacobian[1][1]-Jacobian[0][1]*Jacobian[1][0]; + + /*--- Determinant of Jacobian ---*/ + + detJac = Jacobian[0][0]*ad[0][0]+Jacobian[0][1]*ad[1][0]+Jacobian[0][2]*ad[2][0]; + + GaussPoint[iGauss]->SetJ_X(detJac); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jacobian[iDim][jDim] = ad[iDim][jDim]/detJac; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj += Jacobian[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj, iDim, iNode); + } + } + } + + +} + +void CHEXA8::ComputeGrad_NonLinear(void){ + + double Xi, Eta, Zeta; + double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[8][3]; + double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + double ad_Ref[3][3], ad_Curr[3][3]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ + + Xi = GaussCoord[iGauss][0]; + Eta = GaussCoord[iGauss][1]; + Zeta = GaussCoord[iGauss][2]; + + /*--- dN/d xi, dN/d eta ---*/ + + /*--- dN/d xi ---*/ + + dNiXj[0][0] = -0.125*(1.0-Eta)*(1.0-Zeta); + dNiXj[1][0] = 0.125*(1.0-Eta)*(1.0-Zeta); + dNiXj[2][0] = 0.125*(1.0+Eta)*(1.0-Zeta); + dNiXj[3][0] = -0.125*(1.0+Eta)*(1.0-Zeta); + dNiXj[4][0] = -0.125*(1.0-Eta)*(1.0+Zeta); + dNiXj[5][0] = 0.125*(1.0-Eta)*(1.0+Zeta); + dNiXj[6][0] = 0.125*(1.0+Eta)*(1.0+Zeta); + dNiXj[7][0] = -0.125*(1.0+Eta)*(1.0+Zeta); + + /*--- dN/d eta ---*/ + + dNiXj[0][1] = -0.125*(1.0-Xi)*(1.0-Zeta); + dNiXj[1][1] = -0.125*(1.0+Xi)*(1.0-Zeta); + dNiXj[2][1] = 0.125*(1.0+Xi)*(1.0-Zeta); + dNiXj[3][1] = 0.125*(1.0-Xi)*(1.0-Zeta); + dNiXj[4][1] = -0.125*(1.0-Xi)*(1.0+Zeta); + dNiXj[5][1] = -0.125*(1.0+Xi)*(1.0+Zeta); + dNiXj[6][1] = 0.125*(1.0+Xi)*(1.0+Zeta); + dNiXj[7][1] = 0.125*(1.0-Xi)*(1.0+Zeta); + + /*--- dN/d mu ---*/ + + dNiXj[0][2] = -0.125*(1.0-Xi)*(1.0-Eta); + dNiXj[1][2] = -0.125*(1.0+Xi)*(1.0-Eta); + dNiXj[2][2] = -0.125*(1.0+Xi)*(1.0+Eta); + dNiXj[3][2] = -0.125*(1.0-Xi)*(1.0+Eta); + dNiXj[4][2] = 0.125*(1.0-Xi)*(1.0-Eta); + dNiXj[5][2] = 0.125*(1.0+Xi)*(1.0-Eta); + dNiXj[6][2] = 0.125*(1.0+Xi)*(1.0+Eta); + dNiXj[7][2] = 0.125*(1.0-Xi)*(1.0+Eta); + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = 0.0; + Jac_Curr[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad_Ref[0][0] = Jac_Ref[1][1]*Jac_Ref[2][2]-Jac_Ref[1][2]*Jac_Ref[2][1]; + ad_Ref[0][1] = Jac_Ref[0][2]*Jac_Ref[2][1]-Jac_Ref[0][1]*Jac_Ref[2][2]; + ad_Ref[0][2] = Jac_Ref[0][1]*Jac_Ref[1][2]-Jac_Ref[0][2]*Jac_Ref[1][1]; + ad_Ref[1][0] = Jac_Ref[1][2]*Jac_Ref[2][0]-Jac_Ref[1][0]*Jac_Ref[2][2]; + ad_Ref[1][1] = Jac_Ref[0][0]*Jac_Ref[2][2]-Jac_Ref[0][2]*Jac_Ref[2][0]; + ad_Ref[1][2] = Jac_Ref[0][2]*Jac_Ref[1][0]-Jac_Ref[0][0]*Jac_Ref[1][2]; + ad_Ref[2][0] = Jac_Ref[1][0]*Jac_Ref[2][1]-Jac_Ref[1][1]*Jac_Ref[2][0]; + ad_Ref[2][1] = Jac_Ref[0][1]*Jac_Ref[2][0]-Jac_Ref[0][0]*Jac_Ref[2][1]; + ad_Ref[2][2] = Jac_Ref[0][0]*Jac_Ref[1][1]-Jac_Ref[0][1]*Jac_Ref[1][0]; + + ad_Curr[0][0] = Jac_Curr[1][1]*Jac_Curr[2][2]-Jac_Curr[1][2]*Jac_Curr[2][1]; + ad_Curr[0][1] = Jac_Curr[0][2]*Jac_Curr[2][1]-Jac_Curr[0][1]*Jac_Curr[2][2]; + ad_Curr[0][2] = Jac_Curr[0][1]*Jac_Curr[1][2]-Jac_Curr[0][2]*Jac_Curr[1][1]; + ad_Curr[1][0] = Jac_Curr[1][2]*Jac_Curr[2][0]-Jac_Curr[1][0]*Jac_Curr[2][2]; + ad_Curr[1][1] = Jac_Curr[0][0]*Jac_Curr[2][2]-Jac_Curr[0][2]*Jac_Curr[2][0]; + ad_Curr[1][2] = Jac_Curr[0][2]*Jac_Curr[1][0]-Jac_Curr[0][0]*Jac_Curr[1][2]; + ad_Curr[2][0] = Jac_Curr[1][0]*Jac_Curr[2][1]-Jac_Curr[1][1]*Jac_Curr[2][0]; + ad_Curr[2][1] = Jac_Curr[0][1]*Jac_Curr[2][0]-Jac_Curr[0][0]*Jac_Curr[2][1]; + ad_Curr[2][2] = Jac_Curr[0][0]*Jac_Curr[1][1]-Jac_Curr[0][1]*Jac_Curr[1][0]; + + + /*--- Determinant of Jacobian ---*/ + + detJac_Ref = Jac_Ref[0][0]*ad_Ref[0][0]+Jac_Ref[0][1]*ad_Ref[1][0]+Jac_Ref[0][2]*ad_Ref[2][0]; + detJac_Curr = Jac_Curr[0][0]*ad_Curr[0][0]+Jac_Curr[0][1]*ad_Curr[1][0]+Jac_Curr[0][2]*ad_Curr[2][0]; + + GaussPoint[iGauss]->SetJ_X(detJac_Ref); + GaussPoint[iGauss]->SetJ_x(detJac_Curr); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = ad_Ref[iDim][jDim]/detJac_Ref; + Jac_Curr[iDim][jDim] = ad_Curr[iDim][jDim]/detJac_Curr; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj_Ref = 0.0; + GradNi_Xj_Curr = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj_Ref += Jac_Ref[iDim][jDim]*dNiXj[iNode][jDim]; + GradNi_Xj_Curr += Jac_Curr[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPoint[iGauss]->SetGradNi_Xj(GradNi_Xj_Ref, iDim, iNode); + GaussPoint[iGauss]->SetGradNi_xj(GradNi_Xj_Curr, iDim, iNode); + } + } + } + + +} + + +CHEXA8P1::CHEXA8P1(void) : CHEXA8() { + +} + +CHEXA8P1::CHEXA8P1(unsigned short val_nDim, CConfig *config) +: CHEXA8(val_nDim, config) { + + unsigned short iGaussPoint=0; + unsigned short iNode, iGauss, jNode; + unsigned short nDimSq; + + nGaussPointsP = 1; + + nDimSq = nDim*nDim; + + GaussPointP = new CGaussVariable*[nGaussPointsP]; + for (iGauss = 0; iGauss < nGaussPointsP; iGauss++) { + GaussPointP[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); + } + GaussWeightP = new double [nGaussPointsP]; + + GaussCoordP = new double*[nGaussPointsP]; + for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ + GaussCoordP [iGauss] = new double[nDim]; + } + + GaussCoordP[0][0] = 0.0; GaussCoordP[0][1] = 0.0; GaussCoordP[0][1] = 0.0; GaussWeightP[0] = 8.0; + + Kk_ab = new double **[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Kk_ab [iNode] = new double*[nNodes]; + for (jNode = 0; jNode < nNodes; jNode++){ + Kk_ab [iNode][jNode] = new double[nDimSq]; + } + } + +} + +CHEXA8P1::~CHEXA8P1(void) { + + unsigned short iVar, jVar; + + for (iVar = 0; iVar < nGaussPoints; iVar++){ + delete [] GaussCoordP[iVar]; + delete [] GaussPointP[iVar]; + } + + for (iVar = 0; iVar < nNodes; iVar++){ + for (jVar = 0; jVar < nNodes; jVar++){ + delete [] Kk_ab[iVar][jVar]; + } + delete [] Kk_ab[iVar]; + } + + delete [] GaussCoordP; + delete [] GaussPointP; + delete [] Kk_ab; + delete [] GaussWeightP; + +} + +void CHEXA8P1::ComputeGrad_Pressure(void){ + + double Xi, Eta, Zeta; + double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[8][3]; + double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + double ad_Ref[3][3], ad_Curr[3][3]; + unsigned short iNode, iDim, jDim, iGauss; + + for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ + + Xi = GaussCoordP[iGauss][0]; + Eta = GaussCoordP[iGauss][1]; + Zeta = GaussCoordP[iGauss][2]; + + /*--- dN/d xi, dN/d eta ---*/ + + /*--- dN/d xi ---*/ + + dNiXj[0][0] = -0.125*(1.0-Eta)*(1.0-Zeta); + dNiXj[1][0] = 0.125*(1.0-Eta)*(1.0-Zeta); + dNiXj[2][0] = 0.125*(1.0+Eta)*(1.0-Zeta); + dNiXj[3][0] = -0.125*(1.0+Eta)*(1.0-Zeta); + dNiXj[4][0] = -0.125*(1.0-Eta)*(1.0+Zeta); + dNiXj[5][0] = 0.125*(1.0-Eta)*(1.0+Zeta); + dNiXj[6][0] = 0.125*(1.0+Eta)*(1.0+Zeta); + dNiXj[7][0] = -0.125*(1.0+Eta)*(1.0+Zeta); + + /*--- dN/d eta ---*/ + + dNiXj[0][1] = -0.125*(1.0-Xi)*(1.0-Zeta); + dNiXj[1][1] = -0.125*(1.0+Xi)*(1.0-Zeta); + dNiXj[2][1] = 0.125*(1.0+Xi)*(1.0-Zeta); + dNiXj[3][1] = 0.125*(1.0-Xi)*(1.0-Zeta); + dNiXj[4][1] = -0.125*(1.0-Xi)*(1.0+Zeta); + dNiXj[5][1] = -0.125*(1.0+Xi)*(1.0+Zeta); + dNiXj[6][1] = 0.125*(1.0+Xi)*(1.0+Zeta); + dNiXj[7][1] = 0.125*(1.0-Xi)*(1.0+Zeta); + + /*--- dN/d mu ---*/ + + dNiXj[0][2] = -0.125*(1.0-Xi)*(1.0-Eta); + dNiXj[1][2] = -0.125*(1.0+Xi)*(1.0-Eta); + dNiXj[2][2] = -0.125*(1.0+Xi)*(1.0+Eta); + dNiXj[3][2] = -0.125*(1.0-Xi)*(1.0+Eta); + dNiXj[4][2] = 0.125*(1.0-Xi)*(1.0-Eta); + dNiXj[5][2] = 0.125*(1.0+Xi)*(1.0-Eta); + dNiXj[6][2] = 0.125*(1.0+Xi)*(1.0+Eta); + dNiXj[7][2] = 0.125*(1.0-Xi)*(1.0+Eta); + + /*--- Jacobian transformation ---*/ + /*--- This does dX/dXi transpose ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = 0.0; + Jac_Curr[iDim][jDim] = 0.0; + for (iNode = 0; iNode < nNodes; iNode++) { + Jac_Ref[iDim][jDim] = Jac_Ref[iDim][jDim]+RefCoord[iNode][jDim]*dNiXj[iNode][iDim]; + Jac_Curr[iDim][jDim] = Jac_Curr[iDim][jDim]+CurrentCoord[iNode][jDim]*dNiXj[iNode][iDim]; + } + } + } + + /*--- Adjoint to Jacobian ---*/ + + ad_Ref[0][0] = Jac_Ref[1][1]*Jac_Ref[2][2]-Jac_Ref[1][2]*Jac_Ref[2][1]; + ad_Ref[0][1] = Jac_Ref[0][2]*Jac_Ref[2][1]-Jac_Ref[0][1]*Jac_Ref[2][2]; + ad_Ref[0][2] = Jac_Ref[0][1]*Jac_Ref[1][2]-Jac_Ref[0][2]*Jac_Ref[1][1]; + ad_Ref[1][0] = Jac_Ref[1][2]*Jac_Ref[2][0]-Jac_Ref[1][0]*Jac_Ref[2][2]; + ad_Ref[1][1] = Jac_Ref[0][0]*Jac_Ref[2][2]-Jac_Ref[0][2]*Jac_Ref[2][0]; + ad_Ref[1][2] = Jac_Ref[0][2]*Jac_Ref[1][0]-Jac_Ref[0][0]*Jac_Ref[1][2]; + ad_Ref[2][0] = Jac_Ref[1][0]*Jac_Ref[2][1]-Jac_Ref[1][1]*Jac_Ref[2][0]; + ad_Ref[2][1] = Jac_Ref[0][1]*Jac_Ref[2][0]-Jac_Ref[0][0]*Jac_Ref[2][1]; + ad_Ref[2][2] = Jac_Ref[0][0]*Jac_Ref[1][1]-Jac_Ref[0][1]*Jac_Ref[1][0]; + + ad_Curr[0][0] = Jac_Curr[1][1]*Jac_Curr[2][2]-Jac_Curr[1][2]*Jac_Curr[2][1]; + ad_Curr[0][1] = Jac_Curr[0][2]*Jac_Curr[2][1]-Jac_Curr[0][1]*Jac_Curr[2][2]; + ad_Curr[0][2] = Jac_Curr[0][1]*Jac_Curr[1][2]-Jac_Curr[0][2]*Jac_Curr[1][1]; + ad_Curr[1][0] = Jac_Curr[1][2]*Jac_Curr[2][0]-Jac_Curr[1][0]*Jac_Curr[2][2]; + ad_Curr[1][1] = Jac_Curr[0][0]*Jac_Curr[2][2]-Jac_Curr[0][2]*Jac_Curr[2][0]; + ad_Curr[1][2] = Jac_Curr[0][2]*Jac_Curr[1][0]-Jac_Curr[0][0]*Jac_Curr[1][2]; + ad_Curr[2][0] = Jac_Curr[1][0]*Jac_Curr[2][1]-Jac_Curr[1][1]*Jac_Curr[2][0]; + ad_Curr[2][1] = Jac_Curr[0][1]*Jac_Curr[2][0]-Jac_Curr[0][0]*Jac_Curr[2][1]; + ad_Curr[2][2] = Jac_Curr[0][0]*Jac_Curr[1][1]-Jac_Curr[0][1]*Jac_Curr[1][0]; + + + /*--- Determinant of Jacobian ---*/ + + detJac_Ref = Jac_Ref[0][0]*ad_Ref[0][0]+Jac_Ref[0][1]*ad_Ref[1][0]+Jac_Ref[0][2]*ad_Ref[2][0]; + detJac_Curr = Jac_Curr[0][0]*ad_Curr[0][0]+Jac_Curr[0][1]*ad_Curr[1][0]+Jac_Curr[0][2]*ad_Curr[2][0]; + + GaussPointP[iGauss]->SetJ_X(detJac_Ref); + GaussPointP[iGauss]->SetJ_x(detJac_Curr); + + /*--- Jacobian inverse (it was already computed as transpose) ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + for (jDim = 0; jDim < nDim; jDim++) { + Jac_Ref[iDim][jDim] = ad_Ref[iDim][jDim]/detJac_Ref; + Jac_Curr[iDim][jDim] = ad_Curr[iDim][jDim]/detJac_Curr; + } + } + + /*--- Derivatives with respect to global coordinates ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Xj_Ref = 0.0; + GradNi_Xj_Curr = 0.0; + for (jDim = 0; jDim < nDim; jDim++){ + GradNi_Xj_Ref += Jac_Ref[iDim][jDim]*dNiXj[iNode][jDim]; + GradNi_Xj_Curr += Jac_Curr[iDim][jDim]*dNiXj[iNode][jDim]; + } + GaussPointP[iGauss]->SetGradNi_Xj(GradNi_Xj_Ref, iDim, iNode); + GaussPointP[iGauss]->SetGradNi_xj(GradNi_Xj_Curr, iDim, iNode); + } + } + } -void CHEXA8P1::ComputeGrad_Pressure(void){ } diff --git a/SU2_CFD/src/gauss_structure.cpp b/SU2_CFD/src/gauss_structure.cpp index 1f8f3cdbeec..e625e9d3702 100644 --- a/SU2_CFD/src/gauss_structure.cpp +++ b/SU2_CFD/src/gauss_structure.cpp @@ -38,6 +38,7 @@ CGaussVariable::CGaussVariable(void) { J_X = 0.0; J_x = 0.0; iGaussPoint = 0; + Ni = NULL; } @@ -56,11 +57,14 @@ CGaussVariable::CGaussVariable(unsigned short val_iGauss, unsigned short val_nDi iGaussPoint = val_iGauss; + Ni = new double [val_nNodes]; + } CGaussVariable::~CGaussVariable(void) { if (GradNi_Xj != NULL) delete [] GradNi_Xj; if (GradNi_xj != NULL) delete [] GradNi_xj; + if (Ni != NULL) delete [] Ni; } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index fc3fb47c8c4..0c607519071 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -199,6 +199,25 @@ void CIntegration::Space_Integration(CGeometry *geometry, } + +void CIntegration::Space_Integration_FEM(CGeometry *geometry, + CSolver **solver_container, + CNumerics **numerics, + CConfig *config, unsigned short iMesh, + unsigned short iRKStep, + unsigned short RunTime_EqSystem) { + + unsigned short iMarker; + + unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); + + /*--- Compute Stiffness Matrix and Nodal Stress Term ---*/ + + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + + +} + void CIntegration::Adjoint_Setup(CGeometry ***geometry, CSolver ****solver_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { @@ -295,6 +314,29 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai } +void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, + unsigned short RunTime_EqSystem, unsigned long Iteration) { + + unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); + unsigned short KindSolver = config->GetKind_Solver(); + + /*--- Perform the time integration ---*/ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + solver_container[MainSolver]->ExplicitRK_Iteration(geometry, solver_container, config, iRKStep); + break; + case (NEWMARK_IMPLICIT): + solver_container[MainSolver]->ImplicitNewmark_Iteration(geometry, solver_container, config); + break; + case (GA_IMPLICIT): + solver_container[MainSolver]->ImplicitEuler_Iteration(geometry, solver_container, config); + break; + } + + +} + void CIntegration::Convergence_Monitoring(CGeometry *geometry, CConfig *config, unsigned long Iteration, double monitor, unsigned short iMesh) { diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 61c085631a4..c345a01cde2 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -1025,3 +1025,41 @@ void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver } + +void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, + CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { + unsigned short iMesh; + double monitor = 0.0; + + unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); + + /*--- Preprocessing ---*/ + + solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); + + + /*--- Space integration ---*/ + + Space_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], + config[iZone], MESH_0, NO_RK_ITER, RunTime_EqSystem); + + /*--- Time integration ---*/ + + Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], config[iZone], NO_RK_ITER, + RunTime_EqSystem, Iteration); + + /*--- Postprocessing ---*/ + + solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); + + /*--- Compute adimensional parameters and the convergence monitor ---*/ + + monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); + + /*--- Convergence strategy ---*/ + Convergence_Monitoring(geometry[iZone][MESH_0], config[iZone], Iteration, monitor, MESH_0); + + +} diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index ceb8f6e89fb..e6e0e83422c 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -713,6 +713,50 @@ void FEAIteration(COutput *output, CIntegration ***integration_container, CGeome } +void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + double Physical_dt, Physical_t; + unsigned short iMesh, iZone; + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + for (iZone = 0; iZone < nZone; iZone++) { + + if (config_container[iZone]->GetGrid_Movement()) + SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], + grid_movement[iZone], FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + /*--- Set the initial condition at the first iteration ---*/ + + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + /*----------------- Update structural solver ----------------------*/ + + bool dynamic = (config_container[iZone]->GetDynamic_Analysis() == DYNAMIC); + + if (dynamic){ + integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + } + + } + +} + void FluidStructureIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index b1d5b16734f..79fc337e3e5 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -122,3 +122,7 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { } +void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element_container){ + +} + diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 0eccaa27a4b..c0a391ef122 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -156,11 +156,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Initialization of matrix structures ---*/ if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); /*--- Initialization of linear solver structures ---*/ LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); + LinSysAux.Initialize(nPoint, nPointDomain, nVar, 0.0); + /*--- Here is where we assign the kind of each element ---*/ if (nDim == 2){ @@ -173,7 +176,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi element_container[EL_QUAD] = new CQUAD4(nDim, config); } } - else if (nDim == 2){ + else if (nDim == 3){ if (incompressible){ element_container[EL_TETRA] = new CTETRA1(nDim, config); element_container[EL_HEXA] = new CHEXA8P1(nDim, config); @@ -225,6 +228,117 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { +// unsigned long iPoint, iElem, iVar, jVar; +// unsigned short iNode, iGauss, iDim; +// unsigned short nNodes, nGauss; +// unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; +// double val_Coord, val_Sol; +// int EL_KIND; +// +// double Ks_ab; +// double *Kab = NULL; +// double *Kk_ab = NULL; +// double *Ta = NULL; +// unsigned short NelNodes, jNode; +// +// bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); +// +// /*--- Loops over all the elements ---*/ +// +// for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { +// +// if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} +// if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} +// +// if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} +// if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} +// if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} +// if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} +// +// /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ +// +// for (iNode = 0; iNode < nNodes; iNode++) { +// indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); +//// cout << "Elem: " << iElem << " iNode (renum):" << indexNode[iNode] << endl; +// for (iDim = 0; iDim < nDim; iDim++) { +// val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); +//// cout << "Coord[" << iDim << "]: " << val_Coord << endl; +// val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; +// element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); +// element_container[EL_KIND]->SetCurr_Coord(val_Coord, iNode, iDim); +// } +// } +// +// numerics[VISC_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); +// +// if (incompressible) numerics[VISC_TERM]->Compute_MeanDilatation_Term(element_container[EL_KIND]); +// +// /*--- I can do it separately, or together within Compute_Tangent_Matrix (more efficient) ---*/ +// //numerics[VISC_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); +// +// NelNodes = element_container[EL_KIND]->GetnNodes(); +// +// for (iNode = 0; iNode < NelNodes; iNode++){ +// +// Ta = element_container[EL_KIND]->Get_Kt_a(iNode); +// for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; +// +// LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); +// +// for (jNode = 0; jNode < NelNodes; jNode++){ +// +// Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); +// Ks_ab = element_container[EL_KIND]->Get_Ks_ab(iNode,jNode); +// if (incompressible) Kk_ab = element_container[EL_KIND]->Get_Kk_ab(iNode,jNode); +// +// for (iVar = 0; iVar < nVar; iVar++){ +// Jacobian_s_ij[iVar][iVar] = Ks_ab; +// for (jVar = 0; jVar < nVar; jVar++){ +// Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; +// if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; +// } +// } +// +// Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); +// +// Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); +// +// if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); +// +// } +// +// } +// +// } +// +// +// double checkJacobian; +// +// ofstream myfile; +// myfile.open ("newSolver.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// for (jNode = 0; jNode < nPoint; jNode++){ +// myfile << "Node " << iNode << " " << jNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// for (jVar = 0; jVar < nVar; jVar++){ +// checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); +// myfile << checkJacobian << " " ; +// } +// myfile << endl; +// } +// } +// } +// myfile.close(); + +} + +void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } + +void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + +void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + unsigned long iPoint, iElem, iVar, jVar; unsigned short iNode, iGauss, iDim; unsigned short nNodes, nGauss; @@ -266,12 +380,12 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ } } - numerics[VISC_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); + numerics->Compute_Tangent_Matrix(element_container[EL_KIND]); - if (incompressible) numerics[VISC_TERM]->Compute_MeanDilatation_Term(element_container[EL_KIND]); + if (incompressible) numerics->Compute_MeanDilatation_Term(element_container[EL_KIND]); /*--- I can do it separately, or together within Compute_Tangent_Matrix (more efficient) ---*/ - //numerics[VISC_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); +// //numerics[VISC_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); @@ -308,14 +422,108 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ } - if (Kab != NULL) delete [] Kab; - if (Kk_ab != NULL) delete [] Kk_ab; - if (Ta != NULL) delete [] Ta; + double checkJacobian; + + ofstream myfile; + myfile.open ("newSolver_HOLA.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + + +} + +void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + + unsigned long iPoint, iElem, iVar, jVar; + unsigned short iNode, iGauss, iDim; + unsigned short nNodes, nGauss; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + double val_Coord, val_Sol; + int EL_KIND; + + double Ks_ab; + double *Kab = NULL; + double *Kk_ab = NULL; + double *Ta = NULL; + unsigned short NelNodes, jNode; + + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + } + } + + numerics->Compute_Mass_Matrix(element_container[EL_KIND]); + + NelNodes = element_container[EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); + + for (jNode = 0; jNode < NelNodes; jNode++){ + + Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); + Ks_ab = element_container[EL_KIND]->Get_Ks_ab(iNode,jNode); + if (incompressible) Kk_ab = element_container[EL_KIND]->Get_Kk_ab(iNode,jNode); + + for (iVar = 0; iVar < nVar; iVar++){ + Jacobian_s_ij[iVar][iVar] = Ks_ab; + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; + } + } + + MassMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); + + if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); + + } + + } + + } double checkJacobian; ofstream myfile; - myfile.open ("newSolver.txt"); + myfile.open ("massMatrix.txt"); for (iNode = 0; iNode < nPoint; iNode++){ for (jNode = 0; jNode < nPoint; jNode++){ @@ -333,4 +541,11 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ } -void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } +void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + +void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } + +void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, + unsigned short iMesh) { } + From f9bc47afccd53753ce5c9e3f1a2b4991797e8d65 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 24 Jul 2015 19:56:23 +0100 Subject: [PATCH 034/269] Extension FEM structure: integration and solver structure. --- Common/include/config_structure.hpp | 7 + Common/include/config_structure.inl | 2 + Common/src/config_structure.cpp | 2 + SU2_CFD/include/element_structure.hpp | 25 + SU2_CFD/include/element_structure.inl | 6 + SU2_CFD/include/integration_structure.hpp | 20 +- SU2_CFD/include/numerics_structure.hpp | 1 + SU2_CFD/include/solver_structure.hpp | 110 +++- SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/src/element_linear.cpp | 37 ++ SU2_CFD/src/element_structure.cpp | 10 +- SU2_CFD/src/integration_structure.cpp | 117 ++++- SU2_CFD/src/integration_time.cpp | 8 +- SU2_CFD/src/iteration_structure.cpp | 62 ++- SU2_CFD/src/numerics_fem_elasticity.cpp | 50 +- SU2_CFD/src/solver_direct_elasticity.cpp | 21 + SU2_CFD/src/solver_fem_elasticity.cpp | 612 +++++++++++++++++----- 17 files changed, 919 insertions(+), 173 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 8874975a4e5..dca5aa8ca64 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -274,6 +274,7 @@ class CConfig { unsigned long ExtIter; /*!< \brief Current external iteration number. */ unsigned long IntIter; /*!< \brief Current internal iteration number. */ unsigned long Unst_nIntIter; /*!< \brief Number of internal iterations (Dual time Method). */ + unsigned long Dyn_nIntIter; /*!< \brief Number of internal iterations (Newton-Raphson Method for nonlinear structural analysis). */ long Unst_RestartIter; /*!< \brief Iteration number to restart an unsteady simulation (Dual time Method). */ long Unst_AdjointIter; /*!< \brief Iteration number to begin the reverse time integration in the direct solver for the unsteady adjoint. */ unsigned short nRKStep; /*!< \brief Number of steps of the explicit Runge-Kutta method. */ @@ -2198,6 +2199,12 @@ class CConfig { */ unsigned long GetUnst_nIntIter(void); + /*! + * \brief Get the number of internal iterations for the Newton-Raphson Method in nonlinear structural applications. + * \return Number of internal iterations. + */ + unsigned long GetDyn_nIntIter(void); + /*! * \brief Get the restart iteration number for unsteady simulations. * \return Restart iteration number for unsteady simulations. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 98751d848c9..88737a11112 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -77,6 +77,8 @@ inline unsigned long CConfig::GetIntIter(void) { return IntIter; } inline unsigned long CConfig::GetUnst_nIntIter(void) { return Unst_nIntIter; } +inline unsigned long CConfig::GetDyn_nIntIter(void) { return Dyn_nIntIter; } + inline long CConfig::GetUnst_RestartIter(void) { return Unst_RestartIter; } inline long CConfig::GetUnst_AdjointIter(void) { return Unst_AdjointIter; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index adf8a74069b..1e2541b859b 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1173,6 +1173,8 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Iterative method for non-linear structural analysis */ addEnumOption("NONLINEAR_FEM_SOLUTION_METHOD", Kind_SpaceIteScheme_FEA, Space_Ite_Map_FEA, NEWTON_RAPHSON); + /* DESCRIPTION: Number of internal iterations for Newton-Raphson Method in nonlinear structural applications */ + addUnsignedLongOption("NONLINEAR_FEM_INT_ITER", Dyn_nIntIter, 100); /* DESCRIPTION: Formulation for bidimensional elasticity solver */ addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRESS); diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index 6294de7512f..33093f4f58d 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -66,6 +66,7 @@ class CElement { *GaussWeightP; /*!< \brief Weight of the Gaussian Points for the pressure subintegration. */ CGaussVariable **GaussPoint; /*!< \brief Structure for the Gaussian Points. */ CGaussVariable **GaussPointP; /*!< \brief Structure for the Gaussian Points for the pressure subintegration. */ + double **Mab; /*!< \brief Structure for the nodal components of the mass matrix. */ double ***Kab; /*!< \brief Structure for the constitutive component of the tangent matrix. */ double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ @@ -183,6 +184,14 @@ class CElement { */ double GetJ_x_P(unsigned short iGauss); + /*! + * \brief Add the value of the diagonal term for the mass matrix. + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[in] val_Ks_ab - value of the term that will constitute the diagonal of the stress contribution. + */ + void Add_Mab(double val_Mab, unsigned short nodeA, unsigned short nodeB); + /*! * \brief Add the value of a submatrix K relating nodes a and b, for the constitutive term. * \param[in] nodeA - index of Node a. @@ -228,6 +237,14 @@ class CElement { */ void clearElement(void); + /*! + * \brief Return the value of the diagonal term for the mass matrix, relating nodes a and b. + * \param[in] nodeA - index of Node a. + * \param[in] nodeB - index of Node b. + * \param[out] val_Mab - value of the diagonal term of Mab. + */ + double Get_Mab(unsigned short nodeA, unsigned short nodeB); + /*! * \brief Return the value of the submatrix K relating nodes a and b. * \param[in] nodeA - index of Node a. @@ -259,6 +276,14 @@ class CElement { */ double *Get_Kt_a(unsigned short nodeA); + /*! + * \brief Retrieve the value of the shape functions. + * \param[in] iNode - Index of the node. + * \param[in] iNode - Index of the Gaussian Point. + * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss + */ + double GetNi(unsigned short iNode, unsigned short iGauss); + /*! * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. * \param[in] iNode - Index of the node. diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl index ab0f7087bdc..a868d47340f 100644 --- a/SU2_CFD/include/element_structure.inl +++ b/SU2_CFD/include/element_structure.inl @@ -57,6 +57,8 @@ inline double CElement::GetJ_X_P(unsigned short iGauss) {return GaussPointP[iGau inline double CElement::GetJ_x_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_x();} +inline double CElement::Get_Mab(unsigned short nodeA, unsigned short nodeB) { return Mab[nodeA][nodeB]; } + inline double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ return Kab[nodeA][nodeB];} inline double *CElement::Get_Kk_ab(unsigned short nodeA, unsigned short nodeB){ return Kk_ab[nodeA][nodeB];} @@ -65,8 +67,12 @@ inline double *CElement::Get_Kt_a(unsigned short nodeA){ return Kt_a[nodeA];} inline double CElement::Get_Ks_ab(unsigned short nodeA, unsigned short nodeB) { return Ks_ab[nodeA][nodeB]; } +inline void CElement::Add_Mab(double val_Mab, unsigned short nodeA, unsigned short nodeB) { Mab[nodeA][nodeB] += val_Mab; } + inline void CElement::Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } +inline double CElement::GetNi(unsigned short iNode, unsigned short iGauss) { return GaussPoint[iGauss]->GetNi(iNode);} + inline double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim);} inline double CElement::GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_xj(iNode,iDim);} diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index 0f45027a3a6..1e27be83b9a 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -98,12 +98,11 @@ class CIntegration { * \param[in] solver_container - Container vector with all the solutions. * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. - * \param[in] iMesh - Index of the mesh in multigrid computations. - * \param[in] iRKStep - Current step of the Runge-Kutta iteration. * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. */ void Space_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, - unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem); + unsigned short RunTime_EqSystem, unsigned long Iteration); /*! * \brief Do the time integration (explicit or implicit) of the numerical system. @@ -118,17 +117,16 @@ class CIntegration { unsigned short iRKStep, unsigned short RunTime_EqSystem, unsigned long Iteration); /*! - * \brief Do the time integration (explicit or implicit) of the numerical system on a FEM framework.. + * \brief Do the time integration (explicit or implicit) of the numerical system on a FEM framework. * \author R. Sanchez * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. * \param[in] config - Definition of the particular problem. - * \param[in] iRKStep - Current step of the Runge-Kutta iteration. * \param[in] RunTime_EqSystem - System of equations which is going to be solved. * \param[in] Iteration - Current iteration. */ - void Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CConfig *config, - unsigned short iRKStep, unsigned short RunTime_EqSystem, unsigned long Iteration); + void Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, + unsigned short RunTime_EqSystem, unsigned long Iteration); /*! * \brief Initialize the adjoint solution using the primal problem. @@ -220,6 +218,14 @@ class CIntegration { */ void SetStructural_Solver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh); + /*! + * \brief Save the structural solution at different time steps. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solution - Flow solution. + * \param[in] config - Definition of the particular problem. + */ + void SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 11021363737..b470e629783 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -4417,6 +4417,7 @@ class CFEM_Elasticity : public CNumerics { double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ + double *Ni_Vec; /*!< \brief Vector of shape functions - Auxiliary. */ double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index a9d6abe5c22..80c0beb27a4 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2348,6 +2348,15 @@ class CSolver { */ virtual void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -6538,10 +6547,13 @@ class CFEM_ElasticitySolver : public CSolver { double *GradN_X, *GradN_x; - double **Jacobian_s_ij; /*!< \brief Matrix to store the stress contribution of node ij (diagonal). */ - double **Jacobian_k_ij; /*!< \brief Matrix to store the pressure contribution of node ij. */ - double **MassMatrix_ij; /*!< \brief Matrix to store the term ij of the mass matrix. */ - double *Res_Stress_i; /*!< \brief Matrix to store the nodal stress contribution of node i. */ + double **Jacobian_s_ij; /*!< \brief Submatrix to store the stress contribution of node ij (diagonal). */ + double **Jacobian_k_ij; /*!< \brief Submatrix to store the pressure contribution of node ij. */ + double **MassMatrix_ij; /*!< \brief Submatrix to store the term ij of the mass matrix. */ + double *Res_Stress_i; /*!< \brief Submatrix to store the nodal stress contribution of node i. */ + + double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ + double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix. */ @@ -6623,6 +6635,15 @@ class CFEM_ElasticitySolver : public CSolver { */ void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief Initializes the matrices/residuals in the solution process (avoids adding over previous values). + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief Clamped boundary conditions. * \param[in] geometry - Geometrical definition of the problem. @@ -6632,6 +6653,79 @@ class CFEM_ElasticitySolver : public CSolver { */ void BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker); + /*! + * \brief Impose a displacement (constraint) boundary condition. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker); + + + /*! + * \brief Impose a load boundary condition normal to the boundary. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker); + + /*! + * \brief Impose a load boundary condition in cartesian coordinates. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker); + + /*! + * \brief Impose a sine-wave load boundary condition in cartesian coordinates. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker); + + + /*! + * \brief Impose a load boundary condition. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker); + + /*! + * \brief Update the solution using an implicit solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief Update the solution using an implicit Newmark solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief Postprocessing. * \param[in] geometry - Geometrical definition of the problem. @@ -6642,6 +6736,14 @@ class CFEM_ElasticitySolver : public CSolver { void Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh); + /*! + * \brief Routine to solve the Jacobian-Residual linearized system. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with the solutions. + * \param[in] config - Definition of the particular problem. + */ + void Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config); + }; /*! diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 5a8585e3f8b..ae59b97920b 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -414,6 +414,8 @@ inline double CSolver::GetOneD_FluxAvgEntalpy(void) {return 0;} inline void CSolver::SetOneD_FluxAvgEntalpy(double EnthalpyRef) { } +inline void CSolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ } + inline void CSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index 7ce31e66dbf..0232492ab44 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -73,6 +73,13 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) GaussCoord[0][0] = 0.333333333333333; GaussCoord[0][1] = 0.333333333333333; GaussWeight[0] = 0.5; + //TODO: Check if all of these structures may be moved to the common structure (avoids repetition). + //TODO: this structure should only be initialized if the problem is dynamic + Mab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Mab[iNode] = new double [nNodes]; + } + Kab = new double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Kab [iNode] = new double*[nNodes]; @@ -81,6 +88,7 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) } } + //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new double [nNodes]; @@ -122,6 +130,7 @@ CTRIA1::~CTRIA1(void) { } delete [] CurrentCoord[iVar]; delete [] RefCoord[iVar]; + delete [] Mab[iVar]; delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; @@ -131,6 +140,7 @@ CTRIA1::~CTRIA1(void) { delete [] GaussPoint; delete [] CurrentCoord; delete [] RefCoord; + delete [] Mab; delete [] Kab; delete [] Ks_ab; delete [] Kt_a; @@ -331,6 +341,12 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) GaussCoord[2][0] = 0.577350269189626; GaussCoord[2][1] = 0.577350269189626; GaussWeight[2] = 1.0; GaussCoord[3][0] = -0.577350269189626; GaussCoord[3][1] = 0.577350269189626; GaussWeight[3] = 1.0; + //TODO: this structure should only be initialized if the problem is dynamic + Mab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Mab[iNode] = new double [nNodes]; + } + Kab = new double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Kab [iNode] = new double*[nNodes]; @@ -339,6 +355,7 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) } } + //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new double [nNodes]; @@ -379,6 +396,7 @@ CQUAD4::~CQUAD4(void) { } delete [] CurrentCoord[iVar]; delete [] RefCoord[iVar]; + delete [] Mab[iVar]; delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; @@ -388,6 +406,7 @@ CQUAD4::~CQUAD4(void) { delete [] GaussPoint; delete [] CurrentCoord; delete [] RefCoord; + delete [] Mab; delete [] Kab; delete [] Ks_ab; delete [] Kt_a; @@ -735,6 +754,12 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) GaussCoord[0][0] = 0.25; GaussCoord[0][1] = 0.25; GaussCoord[0][2] = 0.25; GaussWeight[0] = 0.166666666666666; + //TODO: this structure should only be initialized if the problem is dynamic + Mab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Mab[iNode] = new double [nNodes]; + } + Kab = new double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Kab [iNode] = new double*[nNodes]; @@ -743,6 +768,7 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) } } + //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new double [nNodes]; @@ -783,6 +809,7 @@ CTETRA1::~CTETRA1(void) { } delete [] CurrentCoord[iVar]; delete [] RefCoord[iVar]; + delete [] Mab[iVar]; delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; @@ -792,6 +819,7 @@ CTETRA1::~CTETRA1(void) { delete [] GaussPoint; delete [] CurrentCoord; delete [] RefCoord; + delete [] Mab; delete [] Kab; delete [] Ks_ab; delete [] Kt_a; @@ -1015,6 +1043,12 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) GaussCoord[6][0] = 0.577350269189626; GaussCoord[6][1] = 0.577350269189626; GaussCoord[6][2] = 0.577350269189626; GaussWeight[2] = 1.0; GaussCoord[7][0] = -0.577350269189626; GaussCoord[7][1] = 0.577350269189626; GaussCoord[7][2] = 0.577350269189626; GaussWeight[3] = 1.0; + //TODO: this structure should only be initialized if the problem is dynamic + Mab = new double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + Mab[iNode] = new double [nNodes]; + } + Kab = new double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Kab [iNode] = new double*[nNodes]; @@ -1023,6 +1057,7 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) } } + //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new double [nNodes]; @@ -1068,6 +1103,7 @@ CHEXA8::~CHEXA8(void) { } delete [] CurrentCoord[iVar]; delete [] RefCoord[iVar]; + delete [] Mab[iVar]; delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; @@ -1077,6 +1113,7 @@ CHEXA8::~CHEXA8(void) { delete [] GaussPoint; delete [] CurrentCoord; delete [] RefCoord; + delete [] Mab; delete [] Kab; delete [] Ks_ab; delete [] Kt_a; diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index 33a1ab0123c..d3c0ba9d332 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -51,6 +51,7 @@ CElement::CElement(void) { nGaussPoints = 0; nGaussPointsP = 0; + Mab = NULL; Kab = NULL; Ks_ab = NULL; Kk_ab = NULL; @@ -79,6 +80,7 @@ CElement::CElement(unsigned short val_nDim, CConfig *config) { nGaussPoints = 0; nGaussPointsP = 0; + Mab = NULL; Kab = NULL; Ks_ab = NULL; Kk_ab = NULL; @@ -100,6 +102,7 @@ CElement::~CElement(void) { if (GaussPoint != NULL) delete [] GaussPoint; if (GaussPointP != NULL) delete [] GaussPointP; + if (Mab != NULL) delete [] Mab; if (Kab != NULL) delete [] Kab; if (Ks_ab != NULL) delete [] Ks_ab; if (Kk_ab != NULL) delete [] Kk_ab; @@ -159,12 +162,13 @@ void CElement::clearElement(void){ for(iNode = 0; iNode < nNodes; iNode++) { for(iDim = 0; iDim < nDim; iDim++){ - Kt_a[iNode][iDim] = 0.0; + if (Kt_a != NULL) Kt_a[iNode][iDim] = 0.0; } for (jNode = 0; jNode < nNodes; jNode++) { - Ks_ab[iNode][jNode] = 0.0; + if (Ks_ab != NULL) Ks_ab[iNode][jNode] = 0.0; + if (Mab != NULL) Mab[iNode][jNode] = 0.0; for(iDim = 0; iDim < nDimSq; iDim++){ - Kab[iNode][jNode][iDim] = 0.0; + if (Kab != NULL) Kab[iNode][jNode][iDim] = 0.0; } } } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 0c607519071..a776f06951f 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -203,17 +203,73 @@ void CIntegration::Space_Integration(CGeometry *geometry, void CIntegration::Space_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, - CConfig *config, unsigned short iMesh, - unsigned short iRKStep, - unsigned short RunTime_EqSystem) { + CConfig *config, + unsigned short RunTime_EqSystem, + unsigned long Iteration) { unsigned short iMarker; + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool first_iter = (Iteration == 0); // Checks if it is the first iteration + unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); - /*--- Compute Stiffness Matrix and Nodal Stress Term ---*/ + /*--- Compute Mass Matrix ---*/ + + if ((initial_calc) && (dynamic) && (first_iter)){ + solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); + } + + if (linear_analysis){ + /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ + solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics[VISC_TERM], config); + } + else{ + /*--- If the analysis is nonlinear, also the stress terms need to be computed ---*/ - solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + /*--- If the method is full Newton-Raphson, the stiffness matrix and the nodal term are updated every time ---*/ + /*--- It is done all together two avoid looping twice over the elements ---*/ + if (IterativeScheme == NEWTON_RAPHSON){ + /*--- TODO: The Jacobian has to be reinitialized every time... */ + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + } + + else if (IterativeScheme == MODIFIED_NEWTON_RAPHSON){ + + /*--- If the method is modified Newton-Raphson, the stiffness matrix is only computed once at the beginning of the time-step ---*/ + if (first_iter){ + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + } + + else{ + solver_container[MainSolver]->Compute_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + } + + } + + } + + /*--- Apply the NATURAL BOUNDARY CONDITIONS (loads). ---*/ + /*--- If there are FSI loads, they have to be previously applied at other level involving both zones. ---*/ + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + switch (config->GetMarker_All_KindBC(iMarker)) { + case LOAD_BOUNDARY: + solver_container[MainSolver]->BC_Normal_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + case PRESSURE_BOUNDARY: + solver_container[MainSolver]->BC_Pressure(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + case LOAD_DIR_BOUNDARY: + solver_container[MainSolver]->BC_Dir_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + case LOAD_SINE_BOUNDARY: + solver_container[MainSolver]->BC_Sine_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + } + } } @@ -314,17 +370,19 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai } -void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, +void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short RunTime_EqSystem, unsigned long Iteration) { + unsigned short iMarker; + unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); unsigned short KindSolver = config->GetKind_Solver(); - /*--- Perform the time integration ---*/ + /*--- Set the Jacobian according to the different time integration methods ---*/ switch (config->GetKind_TimeIntScheme_FEA()) { case (CD_EXPLICIT): - solver_container[MainSolver]->ExplicitRK_Iteration(geometry, solver_container, config, iRKStep); + solver_container[MainSolver]->ImplicitNewmark_Iteration(geometry, solver_container, config); break; case (NEWMARK_IMPLICIT): solver_container[MainSolver]->ImplicitNewmark_Iteration(geometry, solver_container, config); @@ -334,6 +392,22 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co break; } + /*--- Apply ESSENTIAL BOUNDARY CONDITIONS ---*/ + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { + case CLAMPED_BOUNDARY: + solver_container[MainSolver]->BC_Clamped(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + case DISPLACEMENT_BOUNDARY: + solver_container[MainSolver]->BC_Normal_Displacement(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); + break; + } + + /*--- Solver linearized system ---*/ + + solver_container[MainSolver]->Solve_System(geometry, solver_container, config); + } @@ -589,6 +663,33 @@ void CIntegration::SetStructural_Solver(CGeometry *geometry, CSolver *solver, CC } +void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh) { + + unsigned long iPoint; + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + solver->node[iPoint]->SetSolution_time_n(); + solver->node[iPoint]->SetSolution_Vel_time_n(); + solver->node[iPoint]->SetSolution_Accel_time_n(); + + } + + bool fsi = config->GetFSI_Simulation(); + + /*--- If FSI problem, save the last Aitken relaxation parameter of the previous time step ---*/ + + if (fsi){ + + double WAitk=0.0; + + WAitk = solver->GetWAitken_Dyn(); + solver->SetWAitken_Dyn_tn1(WAitk); + + } + +} + void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig *fea_config, CSolver *fea_solver, unsigned long iFSIIter) { diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index c345a01cde2..9923bd697a5 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -1028,7 +1028,6 @@ void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { - unsigned short iMesh; double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); @@ -1038,16 +1037,15 @@ void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSo solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); - /*--- Space integration ---*/ Space_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], - config[iZone], MESH_0, NO_RK_ITER, RunTime_EqSystem); + config[iZone], RunTime_EqSystem, Iteration); /*--- Time integration ---*/ - Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], config[iZone], NO_RK_ITER, - RunTime_EqSystem, Iteration); + Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], + config[iZone], RunTime_EqSystem, Iteration); /*--- Postprocessing ---*/ diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index e6e0e83422c..21ab16391f7 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -716,45 +716,81 @@ void FEAIteration(COutput *output, CIntegration ***integration_container, CGeome void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + double Physical_dt, Physical_t; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - for (iZone = 0; iZone < nZone; iZone++) { + bool dynamic = (config_container[iZone]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + bool nonlinear = (config_container[iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - if (config_container[iZone]->GetGrid_Movement()) - SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], - grid_movement[iZone], FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif - /*--- Set the value of the internal iteration ---*/ + /*--- Set the initial condition ---*/ - IntIter = ExtIter; + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - /*--- Set the initial condition at the first iteration ---*/ + for (iZone = 0; iZone < nZone; iZone++) { - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + if (dynamic) IntIter = 0; /*--- FEA equations ---*/ - config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); /*--- Run the iteration ---*/ integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); - /*----------------- Update structural solver ----------------------*/ - bool dynamic = (config_container[iZone]->GetDynamic_Analysis() == DYNAMIC); - if (dynamic){ - integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + if (nonlinear){ + for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + } } + /*----------------- Update structural solver ----------------------*/ + + if (dynamic){ + for (iZone = 0; iZone < nZone; iZone++) { + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[iZone]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) + integration_container[iZone][FLOW_SOL]->SetConvergence(true); + } + + } void FluidStructureIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 79fc337e3e5..947d9f15efe 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -52,6 +52,7 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Ba_Mat = new double* [3]; Bb_Mat = new double* [3]; D_Mat = new double* [3]; + Ni_Vec = new double [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ GradNi_Ref_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ GradNi_Curr_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ for (i = 0; i < 3; i++) { @@ -68,6 +69,7 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Ba_Mat = new double* [6]; Bb_Mat = new double* [6]; D_Mat = new double* [6]; + Ni_Vec = new double [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ GradNi_Ref_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ GradNi_Curr_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ for (i = 0; i < 6; i++) { @@ -122,7 +124,53 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { } -void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element_container){ +void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ + + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + unsigned short iDim; + unsigned short bDim; + + double Weight, Jac_X; + + double val_Mab; + + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_Linear(); /*--- Need to compute the gradients to obtain the Jacobian: TODO: this may be improved (another method only to compute J_X) ---*/ + + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight(iGauss); + Jac_X = element->GetJ_X(iGauss); /*--- The mass matrix is computed in the reference configuration ---*/ + + /*--- Retrieve the values of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + Ni_Vec[iNode] = element->GetNi(iNode,iGauss); + } + + for (iNode = 0; iNode < nNode; iNode++){ + + /*--- Assumming symmetry ---*/ + for (jNode = iNode; jNode < nNode; jNode++){ + + val_Mab = Weight * Ni_Vec[iNode] * Ni_Vec[jNode] * Jac_X * Rho_s; + + element->Add_Mab(val_Mab,iNode, jNode); + /*--- Symmetric terms --*/ + if (iNode != jNode){ + element->Add_Mab(val_Mab, jNode, iNode); + } + + } + + } + + } } diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index f25b58e7b90..5e4afa192d7 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -615,6 +615,26 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c } + double checkJacobian; + unsigned short iNode, jNode; + + ofstream myfile; + myfile.open ("oldSolver_massMatrix.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = MassMatrix.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + } void CFEASolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -672,6 +692,7 @@ void CFEASolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNu bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + // TODO: Improve this bit (memory leak) double **mIdentity, **mZeros; // Variables to delete blocks in the jacobian mIdentity = new double *[nDim]; // Number of rows, allocate memory for each diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index c0a391ef122..7ebf3b78228 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -47,6 +47,11 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { Jacobian_s_ij = NULL; Jacobian_k_ij = NULL; + MassMatrix_ij = NULL; + + mZeros_Aux = NULL; + mId_Aux = NULL; + Res_Stress_i = NULL; } @@ -54,13 +59,15 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { unsigned long iPoint, iElem = 0; - unsigned short iVar, jVar, iDim, NodesElement = 0, nKindElements; + unsigned short iVar, jVar, iDim, jDim, NodesElement = 0, nKindElements; int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif + double E = config->GetElasticyMod(); + nElement = geometry->GetnElem(); nDim = geometry->GetnDim(); nMarker = geometry->GetnMarker(); @@ -114,6 +121,16 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + /*--- Term ij of the Mass Matrix ---*/ + + MassMatrix_ij = new double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + MassMatrix_ij[iVar] = new double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + MassMatrix_ij[iVar][jVar] = 0.0; + } + } + /*--- Term ij of the Jacobian ---*/ Jacobian_ij = new double*[nVar]; @@ -152,6 +169,24 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Stress contribution to the node i ---*/ Res_Stress_i = new double[nVar]; + /*--- Matrices to impose clamped boundary conditions (TODO: Initialize them conditionally). ---*/ + + mZeros_Aux = new double *[nDim]; + for(iDim = 0; iDim < nDim; iDim++) + mZeros_Aux[iDim] = new double[nDim]; + + mId_Aux = new double *[nDim]; + for(iDim = 0; iDim < nDim; iDim++) + mId_Aux[iDim] = new double[nDim]; + + for(iDim = 0; iDim < nDim; iDim++){ + for (jDim = 0; jDim < nDim; jDim++){ + mZeros_Aux[iDim][jDim] = 0.0; + mId_Aux[iDim][jDim] = 0.0; + } + mId_Aux[iDim][iDim] = E; // TODO: This works for clamped boundary conditions... + } + /*--- Initialization of matrix structures ---*/ if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; @@ -207,6 +242,8 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] Jacobian_s_ij[iVar]; delete [] Jacobian_ij[iVar]; delete [] Point_Max_Coord[iVar]; + delete [] mZeros_Aux[iVar]; + delete [] mId_Aux[iVar]; } delete [] element_container; @@ -224,118 +261,122 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] Point_Max; delete [] Point_Max_Coord; + delete [] mZeros_Aux; + delete [] mId_Aux; + } void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { -// unsigned long iPoint, iElem, iVar, jVar; -// unsigned short iNode, iGauss, iDim; -// unsigned short nNodes, nGauss; -// unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; -// double val_Coord, val_Sol; -// int EL_KIND; -// -// double Ks_ab; -// double *Kab = NULL; -// double *Kk_ab = NULL; -// double *Ta = NULL; -// unsigned short NelNodes, jNode; -// -// bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); -// -// /*--- Loops over all the elements ---*/ -// -// for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { -// -// if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} -// if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} -// -// if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} -// if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} -// if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} -// if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} -// -// /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ -// -// for (iNode = 0; iNode < nNodes; iNode++) { -// indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); -//// cout << "Elem: " << iElem << " iNode (renum):" << indexNode[iNode] << endl; -// for (iDim = 0; iDim < nDim; iDim++) { -// val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); -//// cout << "Coord[" << iDim << "]: " << val_Coord << endl; -// val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; -// element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); -// element_container[EL_KIND]->SetCurr_Coord(val_Coord, iNode, iDim); -// } -// } -// -// numerics[VISC_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); -// -// if (incompressible) numerics[VISC_TERM]->Compute_MeanDilatation_Term(element_container[EL_KIND]); -// -// /*--- I can do it separately, or together within Compute_Tangent_Matrix (more efficient) ---*/ -// //numerics[VISC_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); -// -// NelNodes = element_container[EL_KIND]->GetnNodes(); -// -// for (iNode = 0; iNode < NelNodes; iNode++){ -// -// Ta = element_container[EL_KIND]->Get_Kt_a(iNode); -// for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; -// -// LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); -// -// for (jNode = 0; jNode < NelNodes; jNode++){ -// -// Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); -// Ks_ab = element_container[EL_KIND]->Get_Ks_ab(iNode,jNode); -// if (incompressible) Kk_ab = element_container[EL_KIND]->Get_Kk_ab(iNode,jNode); -// -// for (iVar = 0; iVar < nVar; iVar++){ -// Jacobian_s_ij[iVar][iVar] = Ks_ab; -// for (jVar = 0; jVar < nVar; jVar++){ -// Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; -// if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; -// } -// } -// -// Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); -// -// Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); -// -// if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); -// -// } -// -// } -// -// } -// -// -// double checkJacobian; -// -// ofstream myfile; -// myfile.open ("newSolver.txt"); -// -// for (iNode = 0; iNode < nPoint; iNode++){ -// for (jNode = 0; jNode < nPoint; jNode++){ -// myfile << "Node " << iNode << " " << jNode << endl; -// for (iVar = 0; iVar < nVar; iVar++){ -// for (jVar = 0; jVar < nVar; jVar++){ -// checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); -// myfile << checkJacobian << " " ; -// } -// myfile << endl; -// } -// } -// } -// myfile.close(); + + unsigned long iPoint; + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + + /*--- Set vector entries to zero ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { + LinSysAux.SetBlock_Zero(iPoint); + LinSysRes.SetBlock_Zero(iPoint); + } + + /*--- Set matrix entries to zero ---*/ + + if ((initial_calc) && (dynamic) && (first_iter)) MassMatrix.SetValZero(); + + if ((linear_analysis) || (newton_raphson) || (first_iter)) Jacobian.SetValZero(); + } void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } -void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + + unsigned long iPoint, iElem, iVar, jVar; + unsigned short iNode, iGauss, iDim; + unsigned short nNodes, nGauss; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + double val_Coord, val_Sol; + int EL_KIND; + + double Ks_ab; + double *Kab = NULL; + double *Kk_ab = NULL; + double *Ta = NULL; + unsigned short NelNodes, jNode; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + } + } + + numerics->Compute_Tangent_Matrix(element_container[EL_KIND]); + + NelNodes = element_container[EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + for (jNode = 0; jNode < NelNodes; jNode++){ + + Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); + + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + } + } + + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + + } + + } + + } + + double checkJacobian; + + ofstream myfile; + myfile.open ("newSolver_linear.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + + +} void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -425,7 +466,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet double checkJacobian; ofstream myfile; - myfile.open ("newSolver_HOLA.txt"); + myfile.open ("newSolver.txt"); for (iNode = 0; iNode < nPoint; iNode++){ for (jNode = 0; jNode < nPoint; jNode++){ @@ -453,14 +494,9 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so double val_Coord, val_Sol; int EL_KIND; - double Ks_ab; - double *Kab = NULL; - double *Kk_ab = NULL; - double *Ta = NULL; + double Mab; unsigned short NelNodes, jNode; - bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); - /*--- Loops over all the elements ---*/ for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -489,30 +525,15 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so for (iNode = 0; iNode < NelNodes; iNode++){ - Ta = element_container[EL_KIND]->Get_Kt_a(iNode); - for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; - - LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); - for (jNode = 0; jNode < NelNodes; jNode++){ - Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); - Ks_ab = element_container[EL_KIND]->Get_Ks_ab(iNode,jNode); - if (incompressible) Kk_ab = element_container[EL_KIND]->Get_Kk_ab(iNode,jNode); + Mab = element_container[EL_KIND]->Get_Mab(iNode, jNode); for (iVar = 0; iVar < nVar; iVar++){ - Jacobian_s_ij[iVar][iVar] = Ks_ab; - for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; - if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; - } + MassMatrix_ij[iVar][iVar] = Mab; } - MassMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); - - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); - - if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); + MassMatrix.AddBlock(indexNode[iNode], indexNode[jNode], MassMatrix_ij); } @@ -530,7 +551,7 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so myfile << "Node " << iNode << " " << jNode << endl; for (iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + checkJacobian = MassMatrix.GetBlock(iNode, jNode, iVar, jVar); myfile << checkJacobian << " " ; } myfile << endl; @@ -541,11 +562,338 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so } -void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + + +} + +void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + +} void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } + unsigned short val_marker) { + + unsigned long iPoint, iVertex; + unsigned short iVar, jVar; + + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + + unsigned short iNode, jNode; + double checkJacobian; + + ofstream myfile; + myfile.open ("jacobianPreClamped.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + + for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { + + /*--- Get node index ---*/ + + iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + + if (nDim == 2) { + Solution[0] = 0.0; Solution[1] = 0.0; + Residual[0] = 0.0; Residual[1] = 0.0; + } + else { + Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; + Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; + } + + node[iPoint]->SetSolution(Solution); + + if (dynamic){ + node[iPoint]->SetSolution_Vel(Solution); + node[iPoint]->SetSolution_Accel(Solution); + } + + LinSysRes.SetBlock(iPoint, Residual); + + /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ + + /*--- Delete the columns for a particular node ---*/ + + /*--- TODO: In order for the computations to be faster, it may be worthy to use a penalty factor ---*/ + /*--- in the nodal term (maybe the same value that already exists in the Jacobian) ---*/ + + for (iVar = 0; iVar < nPoint; iVar++){ + if (iVar==iPoint) { + Jacobian.SetBlock(iVar,iPoint,mId_Aux); + } + else { + Jacobian.SetBlock(iVar,iPoint,mZeros_Aux); + } + } + + /*--- Delete the rows for a particular node ---*/ + for (jVar = 0; jVar < nPoint; jVar++){ + if (iPoint!=jVar) { + Jacobian.SetBlock(jVar,iPoint,mZeros_Aux); + } + } + + /*--- If the problem is dynamic ---*/ + /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ + + if(dynamic){ + + node[iPoint]->SetSolution_time_n(Solution); + node[iPoint]->SetSolution_Vel_time_n(Solution); + node[iPoint]->SetSolution_Accel_time_n(Solution); + + } + + } + + myfile.open ("jacobianClamped.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; + } + } + } + myfile.close(); + + +} void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh) { } +void CFEM_ElasticitySolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } + +void CFEM_ElasticitySolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } + +void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { + + double a[3], b[3], AC[3], BD[3]; + unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; + double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + unsigned short iDim; + + double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); + double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); + double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); + + double TotalLoad; + + bool Gradual_Load = config->GetGradual_Load(); + double CurrentTime=config->GetCurrent_DynTime(); + double ModAmpl, NonModAmpl; + + bool Ramp_Load = config->GetRamp_Load(); + double Ramp_Time = config->GetRamp_Time(); + + if (Ramp_Load){ + ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; + NonModAmpl=LoadDirVal*LoadDirMult; + TotalLoad=min(ModAmpl,NonModAmpl); + } + else if (Gradual_Load){ + ModAmpl=2*((1/(1+exp(-1*CurrentTime)))-0.5); + TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; + } + else{ + TotalLoad=LoadDirVal*LoadDirMult; + } + + /*--- Compute the norm of the vector that was passed in the config file ---*/ + double Norm; + if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); + if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); + + for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { + + Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); + Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); + if (nDim == 3) { + + Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); + } + + } + + /*--- Compute area (3D), and length of the surfaces (2D) ---*/ + + if (nDim == 2) { + + for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; + + Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + Normal_Elem[0] = a[1]; + Normal_Elem[1] = -(a[0]); + + } + + if (nDim == 3) { + + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + for (iDim = 0; iDim < nDim; iDim++) { + a[iDim] = Coord_1[iDim]-Coord_0[iDim]; + b[iDim] = Coord_2[iDim]-Coord_0[iDim]; + } + + double Ni=0 , Nj=0, Nk=0; + + Ni=a[1]*b[2]-a[2]*b[1]; + Nj=-a[0]*b[2]+a[2]*b[0]; + Nk=a[0]*b[1]-a[1]*b[0]; + + Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); + + + //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); + + } + + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + + for (iDim = 0; iDim < nDim; iDim++) { + AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; + BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; + } + + double Ni=0 , Nj=0, Nk=0; + + Ni=AC[1]*BD[2]-AC[2]*BD[1]; + Nj=-AC[0]*BD[2]+AC[2]*BD[0]; + Nk=AC[0]*BD[1]-AC[1]*BD[0]; + + Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); + + } + } + + if (nDim == 2) { + + Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + + LinSysRes.AddBlock(Point_0, Residual); + LinSysRes.AddBlock(Point_1, Residual); + + } + + else { + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + LinSysRes.AddBlock(Point_0, Residual); + LinSysRes.AddBlock(Point_1, Residual); + LinSysRes.AddBlock(Point_2, Residual); + } + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + + Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + LinSysRes.AddBlock(Point_0, Residual); + LinSysRes.AddBlock(Point_1, Residual); + LinSysRes.AddBlock(Point_2, Residual); + LinSysRes.AddBlock(Point_3, Residual); + + } + + } + + } + +} + +void CFEM_ElasticitySolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } + +void CFEM_ElasticitySolver::BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } + +void CFEM_ElasticitySolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + +void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + +void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ + + unsigned short iVar; + unsigned long iPoint, total_index, IterLinSol; + + CSysSolve femSystem; + IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + + /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- TODO: If it's a NewtonRaphson, the result is the DELTA_U, not U itself ---*/ + + node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + + /*--- MPI solution ---*/ + + Set_MPI_Solution(geometry, config); + + /*--- Compute the residual Ax-f ---*/ + + Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); + + /*--- Set maximum residual to zero ---*/ + + for (iVar = 0; iVar < nVar; iVar++) { + SetRes_RMS(iVar, 0.0); + SetRes_Max(iVar, 0.0, 0); + } + + /*--- Compute the residual ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar+iVar; + AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); + AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); + } + } + + /*--- Compute the root mean square residual ---*/ + + SetResidual_RMS(geometry, config); + + +} From e348e60aabd126b9e7d32ce44a6117db39601527 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Sun, 26 Jul 2015 20:07:43 +0100 Subject: [PATCH 035/269] FEM: structure and variable improvements. --- SU2_CFD/include/solver_structure.hpp | 2 + SU2_CFD/include/variable_structure.hpp | 76 +++++++++- SU2_CFD/include/variable_structure.inl | 28 +++- SU2_CFD/src/integration_structure.cpp | 36 +++-- SU2_CFD/src/iteration_structure.cpp | 2 +- SU2_CFD/src/output_structure.cpp | 131 ++++++++++++++++- SU2_CFD/src/solver_fem_elasticity.cpp | 179 +++++++++++++++++++++--- SU2_CFD/src/variable_fem_elasticity.cpp | 49 +++++-- 8 files changed, 450 insertions(+), 53 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 80c0beb27a4..6403d8830af 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6552,6 +6552,8 @@ class CFEM_ElasticitySolver : public CSolver { double **MassMatrix_ij; /*!< \brief Submatrix to store the term ij of the mass matrix. */ double *Res_Stress_i; /*!< \brief Submatrix to store the nodal stress contribution of node i. */ + double *Res_Ext_Surf; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index a999ba32ce8..4c65d8fdbf8 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1380,6 +1380,12 @@ class CVariable { */ virtual double **GetStress(void); + /*! + * \brief A virtual member. + + */ + virtual double *GetStress_FEM(void); + /*! * \brief A virtual member. */ @@ -1434,6 +1440,21 @@ class CVariable { */ virtual double **GetTraction(void); + /*! + * \brief A virtual member. + */ + virtual void Add_SurfaceLoad_Res(double *val_surfForce); + + /*! + * \brief A virtual member. + */ + virtual double *Get_SurfaceLoad_Res(void); + + /*! + * \brief A virtual member. + */ + virtual void Clear_SurfaceLoad_Res(void); + /*! * \brief A virtual member. @@ -2452,25 +2473,33 @@ class CFEAVariable : public CVariable { }; /*! - * \class CFEM_LElasVariable + * \class CFEM_ElasVariable * \brief Main class for defining the variables of the FEM Linear Elastic structural problem. * \ingroup Structural Finite Element Analysis Variables * \author F. Palacios, R. Sanchez. * \version 4.0.0 "Cardinal" */ -class CFEM_LElasVariable : public CVariable { +class CFEM_ElasVariable : public CVariable { protected: bool dynamicFEA; /*!< \brief Bool which determines if the problem is dynamic. */ - double **Stress; /*!< \brief Stress tensor. */ + double *Stress; /*!< \brief Stress tensor. */ + double *FlowTraction; /*!< \brief Traction from the fluid field. */ + +// double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ + double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ + double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ + + double VonMises_Stress; /*!< \brief Von Mises stress. */ + unsigned short nConnectedElements; /*!< \brief Number of elements connected to the node. */ public: /*! * \brief Constructor of the class. */ - CFEM_LElasVariable(void); + CFEM_ElasVariable(void); /*! * \overload @@ -2479,18 +2508,51 @@ class CFEM_LElasVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CFEM_LElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. */ - ~CFEM_LElasVariable(void); + ~CFEM_ElasVariable(void); /*! * \brief Get the value of the stress. * \return Value of the stress. */ - double **GetStress(void); + double *GetStress_FEM(void); + + /*! + * \brief Initialize the value of the number of attached elements to a node. + */ + void Initialize_Connectivity(void); + + + /*! + * \brief Add a 1 to the value of the number of attached elements to a node. + */ + void Upgrade_Connectivity(void); + + + /*! + * \brief Number of attached elements to a node. + * \return Returns the value of the number of attached elements to a node. + */ + unsigned short Get_Connectivity(void); + + /*! + * \brief Add surface load to the residual term + */ + void Add_SurfaceLoad_Res(double *val_surfForce); + + /*! + * \brief Get the residual term due to surface load + */ + double *Get_SurfaceLoad_Res(void); + + /*! + * \brief Clear the surface load residual + */ + void Clear_SurfaceLoad_Res(void); }; diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 0f93fc4901c..30e85487585 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -49,6 +49,8 @@ inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, doubl inline double **CVariable::GetStress(void) { return NULL; } +inline double *CVariable::GetStress_FEM(void) { return NULL; } + inline void CVariable::SetVonMises_Stress(double val_stress) { } inline double CVariable::GetVonMises_Stress(void) { return 0; } @@ -63,6 +65,12 @@ inline void CVariable::Upgrade_Connectivity(void) { } inline unsigned short CVariable::Get_Connectivity(void) { return 0; } +inline void CVariable::Add_SurfaceLoad_Res(double *val_surfForce) { } + +inline double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} + +inline void CVariable::Clear_SurfaceLoad_Res(void) { } + inline double CVariable::GetBetaInc2(void) { return 0; } inline double CVariable::GetDiffLevelSet(void) { return 0; } @@ -868,7 +876,25 @@ inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } -inline double **CFEM_LElasVariable::GetStress(void) { return Stress; } +inline double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } + +inline void CFEM_ElasVariable::Initialize_Connectivity(void) { nConnectedElements = 0; } + +inline void CFEM_ElasVariable::Upgrade_Connectivity(void) { nConnectedElements += 1; } + +inline unsigned short CFEM_ElasVariable::Get_Connectivity(void) { return nConnectedElements; } + +inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(double *val_surfForce) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + Residual_Ext_Surf[iVar] += val_surfForce[iVar]; +} + +inline double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} + +inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + Residual_Ext_Surf[iVar] = 0.0; +} inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] = val_traction; } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index a776f06951f..b408d313d26 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -209,16 +209,16 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, unsigned short iMarker; - bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool first_iter = (Iteration == 0); // Checks if it is the first iteration + bool first_iter = (Iteration == 0); // Checks if it is the first iteration unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); /*--- Compute Mass Matrix ---*/ - if ((initial_calc) && (dynamic) && (first_iter)){ + if ((dynamic) && (initial_calc) && (first_iter)){ solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); } @@ -230,15 +230,16 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- If the analysis is nonlinear, also the stress terms need to be computed ---*/ /*--- If the method is full Newton-Raphson, the stiffness matrix and the nodal term are updated every time ---*/ - /*--- It is done all together two avoid looping twice over the elements ---*/ + /*--- They are calculated together to avoid looping twice over the elements ---*/ if (IterativeScheme == NEWTON_RAPHSON){ - /*--- TODO: The Jacobian has to be reinitialized every time... */ + /*--- The Jacobian is reinitialized every time in Preprocessing (before calling Space_Integration_FEM) */ solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); } + /*--- If the method is modified Newton-Raphson, the stiffness matrix is only computed once at the beginning of the time-step ---*/ + /*--- Nevertheless, the Nodal Stress Term has to be computed for each iteration ---*/ else if (IterativeScheme == MODIFIED_NEWTON_RAPHSON){ - /*--- If the method is modified Newton-Raphson, the stiffness matrix is only computed once at the beginning of the time-step ---*/ if (first_iter){ solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); } @@ -254,6 +255,21 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- Apply the NATURAL BOUNDARY CONDITIONS (loads). ---*/ /*--- If there are FSI loads, they have to be previously applied at other level involving both zones. ---*/ + /*--- Some external loads may be considered constant over the time step ---*/ + if (first_iter){ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + switch (config->GetMarker_All_KindBC(iMarker)) { + case LOAD_DIR_BOUNDARY: + solver_container[MainSolver]->BC_Dir_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + case LOAD_SINE_BOUNDARY: + solver_container[MainSolver]->BC_Sine_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; + } + } + } + + /*--- Others are not, because they depend on the geometry ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { switch (config->GetMarker_All_KindBC(iMarker)) { case LOAD_BOUNDARY: @@ -262,12 +278,6 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, case PRESSURE_BOUNDARY: solver_container[MainSolver]->BC_Pressure(geometry, solver_container, numerics[VISC_TERM], config, iMarker); break; - case LOAD_DIR_BOUNDARY: - solver_container[MainSolver]->BC_Dir_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); - break; - case LOAD_SINE_BOUNDARY: - solver_container[MainSolver]->BC_Sine_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); - break; } } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 21ab16391f7..3719bac97b1 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -741,7 +741,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Set the value of the internal iteration ---*/ IntIter = ExtIter; - if (dynamic) IntIter = 0; + if (nonlinear) IntIter = 0; /*--- FEA equations ---*/ diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index ca57c391a99..c69f742cfe8 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -3145,9 +3145,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - /*--- Communicate the Linear elasticity stresses (2D) ---*/ + /*--- Communicate the Linear elasticity stresses (2D) - Legacy elasticity solver ---*/ - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { + if (Kind_Solver == LINEAR_ELASTICITY) { /*--- Loop over this partition to collect the current variable ---*/ @@ -3206,9 +3206,70 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - /*--- Communicate the Linear elasticity stresses (3D) ---*/ + /*--- Communicate the Linear elasticity stresses (2D) - New elasticity solver---*/ + + if (Kind_Solver == FEM_ELASTICITY) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; double *Stress; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Stress = solver[FEA_SOL]->node[iPoint]->GetStress_FEM(); + /*--- Sigma xx ---*/ + Buffer_Send_Var[jPoint] = Stress[0]; + /*--- Sigma yy ---*/ + Buffer_Send_Res[jPoint] = Stress[1]; + /*--- Sigma xy ---*/ + Buffer_Send_Vol[jPoint] = Stress[2]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + +#ifdef HAVE_MPI + MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); +#else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; +#endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Stress; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } + + /*--- Communicate the Linear elasticity stresses (3D) - Legacy elasticity solver ---*/ - if (((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) && (geometry->GetnDim() == 3)) { + if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { /*--- Loop over this partition to collect the current variable ---*/ @@ -3268,6 +3329,68 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } + /*--- Communicate the Linear elasticity stresses (3D) - New elasticity solver---*/ + + if ((Kind_Solver == FEM_ELASTICITY) && (geometry->GetnDim() == 3)) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; double *Stress; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Stress = solver[FEA_SOL]->node[iPoint]->GetStress_FEM(); + /*--- Sigma zz ---*/ + Buffer_Send_Var[jPoint] = Stress[3]; + /*--- Sigma xz ---*/ + Buffer_Send_Res[jPoint] = Stress[4]; + /*--- Sigma yz ---*/ + Buffer_Send_Vol[jPoint] = Stress[5]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + +#ifdef HAVE_MPI + MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); +#else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; + +#endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Stress_3D; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } + /*--- Communicate the Linear elasticity ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 7ebf3b78228..dc585b23ceb 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -53,6 +53,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { mId_Aux = NULL; Res_Stress_i = NULL; + Res_Ext_Surf = NULL; } @@ -61,6 +62,13 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi unsigned long iPoint, iElem = 0; unsigned short iVar, jVar, iDim, jDim, NodesElement = 0, nKindElements; + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -108,7 +116,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi if (!restart) { for (iPoint = 0; iPoint < nPoint; iPoint++) { for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - node[iPoint] = new CFEM_LElasVariable(Solution, nDim, nVar, config); + node[iPoint] = new CFEM_ElasVariable(Solution, nDim, nVar, config); } } else { @@ -169,6 +177,9 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Stress contribution to the node i ---*/ Res_Stress_i = new double[nVar]; + /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ + Res_Ext_Surf = new double[nVar]; + /*--- Matrices to impose clamped boundary conditions (TODO: Initialize them conditionally). ---*/ mZeros_Aux = new double *[nDim]; @@ -190,8 +201,10 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Initialization of matrix structures ---*/ if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; + Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + if (dynamic) MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + if (nonlinear_analysis) StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); /*--- Initialization of linear solver structures ---*/ LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); @@ -251,6 +264,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] Jacobian_s_ij; delete [] Jacobian_ij; delete [] Res_Stress_i; + delete [] Res_Ext_Surf; delete [] Solution; delete [] GradN_X; delete [] GradN_x; @@ -274,6 +288,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method /*--- Set vector entries to zero ---*/ @@ -285,9 +300,42 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ /*--- Set matrix entries to zero ---*/ - if ((initial_calc) && (dynamic) && (first_iter)) MassMatrix.SetValZero(); + /* + * If the problem is linear, we only need one Jacobian matrix in the problem, because + * it is going to be constant along the calculations. Therefore, we only initialize + * the Jacobian matrix once, at the beginning of the simulation. + * + * We don't need first_iter, because there is only one iteration per time step in linear analysis. + */ + if ((initial_calc) && (linear_analysis)){ + Jacobian.SetValZero(); + } - if ((linear_analysis) || (newton_raphson) || (first_iter)) Jacobian.SetValZero(); + /* + * If the problem is dynamic, we need a mass matrix, which will be constant along the calculation + * both for linear and nonlinear analysis. Only initialized once, at the first time step. + * + * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. + */ + if ((dynamic) && (initial_calc) && (first_iter)) { + MassMatrix.SetValZero(); + } + + /* + * If the problem is nonlinear, we need to initialize the Jacobian and the stiffness matrix at least at the beginning + * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each + * iteration. + */ + if ((nonlinear_analysis) && ((newton_raphson) || (first_iter))) { + Jacobian.SetValZero(); + StiffMatrix.SetValZero(); + } + /* + * Some external forces may be considered constant over the time step. + */ + if (first_iter) { + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_SurfaceLoad_Res(); + } } @@ -451,11 +499,11 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } } - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); + StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); - if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); + if (incompressible) StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); } @@ -473,7 +521,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet myfile << "Node " << iNode << " " << jNode << endl; for (iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + checkJacobian = StiffMatrix.GetBlock(iNode, jNode, iVar, jVar); myfile << checkJacobian << " " ; } myfile << endl; @@ -565,6 +613,61 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + unsigned long iPoint, iElem, iVar, jVar; + unsigned short iNode, iGauss, iDim; + unsigned short nNodes, nGauss; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + double val_Coord, val_Sol; + int EL_KIND; + + double Ks_ab; + double *Kab = NULL; + double *Kk_ab = NULL; + double *Ta = NULL; + unsigned short NelNodes, jNode; + + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[EL_KIND]->SetCurr_Coord(val_Coord, iNode, iDim); + } + } + + numerics->Compute_NodalStress_Term(element_container[EL_KIND]); + + NelNodes = element_container[EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); + + } + + } + + } void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { @@ -797,8 +900,12 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); +// LinSysRes.AddBlock(Point_0, Residual); +// LinSysRes.AddBlock(Point_1, Residual); + + /*--- This will allow us to compute the boundary conditions only once ---*/ + node[Point_0]->Add_SurfaceLoad_Res(Residual); + node[Point_1]->Add_SurfaceLoad_Res(Residual); } @@ -809,9 +916,15 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); +// LinSysRes.AddBlock(Point_0, Residual); +// LinSysRes.AddBlock(Point_1, Residual); +// LinSysRes.AddBlock(Point_2, Residual); + + /*--- This will allow us to compute the boundary conditions only once ---*/ + node[Point_0]->Add_SurfaceLoad_Res(Residual); + node[Point_1]->Add_SurfaceLoad_Res(Residual); + node[Point_2]->Add_SurfaceLoad_Res(Residual); + } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ @@ -819,10 +932,17 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - LinSysRes.AddBlock(Point_3, Residual); +// LinSysRes.AddBlock(Point_0, Residual); +// LinSysRes.AddBlock(Point_1, Residual); +// LinSysRes.AddBlock(Point_2, Residual); +// LinSysRes.AddBlock(Point_3, Residual); + + /*--- This will allow us to compute the boundary conditions only once ---*/ + node[Point_0]->Add_SurfaceLoad_Res(Residual); + node[Point_1]->Add_SurfaceLoad_Res(Residual); + node[Point_2]->Add_SurfaceLoad_Res(Residual); + node[Point_3]->Add_SurfaceLoad_Res(Residual); + } @@ -840,7 +960,30 @@ void CFEM_ElasticitySolver::BC_Pressure(CGeometry *geometry, CSolver **solver_co void CFEM_ElasticitySolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } -void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } +void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned long iPoint; + + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + + + if (!dynamic){ + + for (iPoint = 0; iPoint < nPoint; iPoint++){ + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + } + + } + + + +} void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 3bff480a338..7aa7f03fcf2 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -31,21 +31,52 @@ #include "../include/variable_structure.hpp" -CFEM_LElasVariable::CFEM_LElasVariable(void) : CVariable() { } +CFEM_ElasVariable::CFEM_ElasVariable(void) : CVariable() { -CFEM_LElasVariable::CFEM_LElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { + dynamicFEA = false; + VonMises_Stress = 0.0; + + nConnectedElements = 0; + + Stress = NULL; // Nodal stress (for output purposes) + FlowTraction = NULL; // Nodal traction due to the fluid (fsi) +// Residual_Int = NULL; // Internal component of the residual + Residual_Ext_Surf = NULL; // Residual component due to external surface forces + Residual_Ext_Body = NULL; // Residual component due to body forces + +} + +CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, jDim; + bool fsi = config->GetFSI_Simulation(); + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool body_forces = false; // Bool for adding body forces in the future. + + nConnectedElements = 0; + VonMises_Stress = 0.0; dynamicFEA = (config->GetDynamic_Analysis() == DYNAMIC); - /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + if (nDim == 2) Stress = new double [3]; + else if (nDim == 3) Stress = new double [6]; + + if (fsi) FlowTraction = new double [nVar]; else FlowTraction = NULL; + +// if (nonlinear_analysis) Residual_Int = new double [nVar]; else Residual_Int = NULL; + if (body_forces) Residual_Ext_Body = new double [nVar]; else Residual_Ext_Body = NULL; + Residual_Ext_Surf = new double [nVar]; + - /*--- Allocate stress tensor ---*/ - Stress = new double* [nDim]; - for (iDim = 0; iDim < nDim; iDim++) - Stress[iDim] = new double [nDim]; } -CFEM_LElasVariable::~CFEM_LElasVariable(void) { } +CFEM_ElasVariable::~CFEM_ElasVariable(void) { + + delete [] Stress; + + if (FlowTraction != NULL) delete [] FlowTraction; +// if (Residual_Int != NULL) delete [] Residual_Int; + if (Residual_Ext_Body != NULL) delete [] Residual_Ext_Body; + if (Residual_Ext_Surf != NULL) delete [] FlowTraction; + +} From fef6ff290433fdb60d8c2e731fe0377f667b66d1 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 27 Jul 2015 19:47:48 +0100 Subject: [PATCH 036/269] FEM: fixed some bugs on the K. --- SU2_CFD/include/solver_structure.hpp | 27 ++ SU2_CFD/include/variable_structure.hpp | 14 + SU2_CFD/include/variable_structure.inl | 2 + SU2_CFD/src/integration_structure.cpp | 12 + SU2_CFD/src/iteration_structure.cpp | 2 + .../src/numerics_fem_nonlinear_elasticity.cpp | 2 +- SU2_CFD/src/solver_fem_elasticity.cpp | 379 +++++++++++++----- 7 files changed, 333 insertions(+), 105 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 6403d8830af..d910e5a6bd0 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6547,17 +6547,24 @@ class CFEM_ElasticitySolver : public CSolver { double *GradN_X, *GradN_x; + double **Jacobian_c_ij; /*!< \brief Submatrix to store the constitutive term for node ij. */ double **Jacobian_s_ij; /*!< \brief Submatrix to store the stress contribution of node ij (diagonal). */ double **Jacobian_k_ij; /*!< \brief Submatrix to store the pressure contribution of node ij. */ double **MassMatrix_ij; /*!< \brief Submatrix to store the term ij of the mass matrix. */ double *Res_Stress_i; /*!< \brief Submatrix to store the nodal stress contribution of node i. */ double *Res_Ext_Surf; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + double *Res_Time_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ + double a_dt[8]; /*!< \brief Integration constants. */ + CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix. */ + CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ + CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ + public: @@ -6646,6 +6653,15 @@ class CFEM_ElasticitySolver : public CSolver { */ void Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! * \brief Clamped boundary conditions. * \param[in] geometry - Geometrical definition of the problem. @@ -6655,6 +6671,17 @@ class CFEM_ElasticitySolver : public CSolver { */ void BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker); + /*! + * \brief Enforce the solution to be 0 in the clamped nodes - Avoids accumulation of numerical error. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] val_marker - Surface marker where the boundary condition is applied. + */ + void BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker); + /*! * \brief Impose a displacement (constraint) boundary condition. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 4c65d8fdbf8..21149cdf81a 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -127,6 +127,13 @@ class CVariable { */ void SetSolution(unsigned short val_var, double val_solution); + /*! + * \brief Add the value of the solution vector to the previous solution (incremental approach). + * \param[in] val_var - Index of the variable. + * \param[in] val_solution - Value of the solution for the index val_var. + */ + void Add_DeltaSolution(unsigned short val_var, double val_solution); + /*! * \brief Set the value of the non-physical point. * \param[in] val_value - identification of the non-physical point. @@ -2494,6 +2501,13 @@ class CFEM_ElasVariable : public CVariable { double VonMises_Stress; /*!< \brief Von Mises stress. */ unsigned short nConnectedElements; /*!< \brief Number of elements connected to the node. */ + double *Solution_Vel, /*!< \brief Velocity of the nodes. */ + *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ + + double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ + *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ + + public: /*! diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 30e85487585..57edc27e5f4 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -89,6 +89,8 @@ inline double CVariable::GetNon_Physical(void) { return double(Non_Physical); } inline void CVariable::SetSolution(unsigned short val_var, double val_solution) { Solution[val_var] = val_solution; } +inline void CVariable::Add_DeltaSolution(unsigned short val_var, double val_solution) { Solution[val_var] += val_solution; } + inline void CVariable::SetUndivided_Laplacian(unsigned short val_var, double val_undivided_laplacian) { Undivided_Laplacian[val_var] = val_undivided_laplacian; } inline void CVariable::SetAuxVar(double val_auxvar) { AuxVar = val_auxvar; } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index b408d313d26..c6327180707 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -418,6 +418,18 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co solver_container[MainSolver]->Solve_System(geometry, solver_container, config); + /*--- Reinforce ESSENTIAL BOUNDARY CONDITIONS: avoids accumulation of numerical error ---*/ + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { + case CLAMPED_BOUNDARY: + solver_container[MainSolver]->BC_Clamped_Post(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + break; +// case DISPLACEMENT_BOUNDARY: +// solver_container[MainSolver]->BC_Normal_Displacement(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); +// break; + } + } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 3719bac97b1..1b8080e6a35 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -763,6 +763,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai for (iZone = 0; iZone < nZone; iZone++) { + config_container[iZone]->SetIntIter(IntIter); + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 4d696e56977..3226ccf4486 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -310,7 +310,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Symmetric terms --*/ if (iNode != jNode){ element->Add_Kab_T(KAux_ab, jNode, iNode); - element->Add_Ks_ab(Ks_Aux_ab,iNode, jNode); + element->Add_Ks_ab(Ks_Aux_ab,jNode, iNode); } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index dc585b23ceb..7c0f53e0c24 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -44,6 +44,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { GradN_X = NULL; GradN_x = NULL; + Jacobian_c_ij = NULL; Jacobian_s_ij = NULL; Jacobian_k_ij = NULL; @@ -54,6 +55,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { Res_Stress_i = NULL; Res_Ext_Surf = NULL; + Res_Time_Cont = NULL; } @@ -63,7 +65,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi unsigned short iVar, jVar, iDim, jDim, NodesElement = 0, nKindElements; bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. @@ -149,6 +150,16 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } } + /*--- Term ij of the Jacobian (constitutive contribution) ---*/ + + Jacobian_c_ij = new double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_c_ij[iVar] = new double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_c_ij[iVar][jVar] = 0.0; + } + } + /*--- Term ij of the Jacobian (stress contribution) ---*/ Jacobian_s_ij = new double*[nVar]; @@ -180,6 +191,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ Res_Ext_Surf = new double[nVar]; + /*--- Time integration contribution to the residual ---*/ + if (dynamic) { + Res_Time_Cont = new double [nVar]; + } + else { + Res_Time_Cont = NULL; + } + /*--- Matrices to impose clamped boundary conditions (TODO: Initialize them conditionally). ---*/ mZeros_Aux = new double *[nDim]; @@ -203,8 +222,15 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - if (dynamic) MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - if (nonlinear_analysis) StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + +// if (nonlinear_analysis) StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + + if (dynamic) { + MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + TimeRes_Aux.Initialize(nPoint, nPointDomain, nVar, 0.0); + TimeRes.Initialize(nPoint, nPointDomain, nVar, 0.0); + } + /*--- Initialization of linear solver structures ---*/ LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); @@ -254,6 +280,8 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { for (iVar = 0; iVar < nVar; iVar++){ delete [] Jacobian_s_ij[iVar]; delete [] Jacobian_ij[iVar]; + delete [] Jacobian_c_ij[iVar]; + if (Jacobian_k_ij != NULL) delete[] Jacobian_k_ij[iVar]; delete [] Point_Max_Coord[iVar]; delete [] mZeros_Aux[iVar]; delete [] mId_Aux[iVar]; @@ -263,8 +291,11 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] node; delete [] Jacobian_s_ij; delete [] Jacobian_ij; + delete [] Jacobian_c_ij; + if (Jacobian_k_ij != NULL) delete[] Jacobian_k_ij; delete [] Res_Stress_i; delete [] Res_Ext_Surf; + if (Res_Time_Cont != NULL) delete[] Res_Time_Cont; delete [] Solution; delete [] GradN_X; delete [] GradN_x; @@ -285,17 +316,19 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ unsigned long iPoint; bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration + bool first_iter = (Iteration == 0); // Checks if it is the first iteration bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + /*--- Set vector entries to zero ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { LinSysAux.SetBlock_Zero(iPoint); LinSysRes.SetBlock_Zero(iPoint); + LinSysSol.SetBlock_Zero(iPoint); } /*--- Set matrix entries to zero ---*/ @@ -326,10 +359,12 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each * iteration. */ + if ((nonlinear_analysis) && ((newton_raphson) || (first_iter))) { Jacobian.SetValZero(); - StiffMatrix.SetValZero(); +// StiffMatrix.SetValZero(); } + /* * Some external forces may be considered constant over the time step. */ @@ -337,7 +372,6 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_SurfaceLoad_Res(); } - } void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } @@ -392,11 +426,11 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s for (iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + Jacobian_c_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; } } - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); } @@ -404,25 +438,6 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s } - double checkJacobian; - - ofstream myfile; - myfile.open ("newSolver_linear.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); - } @@ -442,6 +457,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet unsigned short NelNodes, jNode; bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); /*--- Loops over all the elements ---*/ @@ -459,13 +475,11 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet for (iNode = 0; iNode < nNodes; iNode++) { indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); -// cout << "Elem: " << iElem << " iNode (renum):" << indexNode[iNode] << endl; for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); -// cout << "Coord[" << iDim << "]: " << val_Coord << endl; val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[EL_KIND]->SetCurr_Coord(val_Coord, iNode, iDim); + element_container[EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); } } @@ -473,9 +487,6 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet if (incompressible) numerics->Compute_MeanDilatation_Term(element_container[EL_KIND]); - /*--- I can do it separately, or together within Compute_Tangent_Matrix (more efficient) ---*/ -// //numerics[VISC_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ @@ -494,16 +505,23 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet for (iVar = 0; iVar < nVar; iVar++){ Jacobian_s_ij[iVar][iVar] = Ks_ab; for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + Jacobian_c_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; } } - StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); - - StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); - - if (incompressible) StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); + /*--- If the problem is dynamic, the jacobian of the problem will be a combination of the ---*/ + /*--- StiffMatrix and the Mass Matrix; otherwise, the Jacobian can be computed straight away ---*/ +// if (dynamic){ +// StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); +// StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); +// if (incompressible) StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); +// } +// else{ + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); + if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); +// } } @@ -511,26 +529,6 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } - double checkJacobian; - - ofstream myfile; - myfile.open ("newSolver.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = StiffMatrix.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); - - } void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -648,7 +646,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[EL_KIND]->SetCurr_Coord(val_Coord, iNode, iDim); + element_container[EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); } } @@ -667,6 +665,27 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver } + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[0]->GetCoord(iDim); + val_Sol = node[0]->GetSolution(iDim) + val_Coord; + cout << val_Coord << " " << val_Sol << " "; + } + cout << endl; + + double checkResidual; + + ofstream myfile; + myfile.open ("residual_2.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + myfile << "Node " << iNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + checkResidual = LinSysRes.GetBlock(iNode, iVar); myfile << checkResidual << endl; + + } + } + myfile.close(); + } @@ -674,6 +693,25 @@ void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver } +void CFEM_ElasticitySolver::Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + + double Delta_t= config->GetDelta_DynTime(); + double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); + + /*--- Integration constants for Newmark scheme ---*/ + + a_dt[0]= 1 / (alpha*pow(Delta_t,2.0)); + a_dt[1]= delta / (alpha*Delta_t); + a_dt[2]= 1 / (alpha*Delta_t); + a_dt[3]= 1 /(2*alpha) - 1; + a_dt[4]= delta/alpha - 1; + a_dt[5]= (Delta_t/2) * (delta/alpha - 2); + a_dt[6]= Delta_t * (1-delta); + a_dt[7]= delta * Delta_t; + +} + + void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { @@ -730,9 +768,6 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con /*--- Delete the columns for a particular node ---*/ - /*--- TODO: In order for the computations to be faster, it may be worthy to use a penalty factor ---*/ - /*--- in the nodal term (maybe the same value that already exists in the Jacobian) ---*/ - for (iVar = 0; iVar < nPoint; iVar++){ if (iVar==iPoint) { Jacobian.SetBlock(iVar,iPoint,mId_Aux); @@ -781,8 +816,95 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con } +void CFEM_ElasticitySolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { + + unsigned long iPoint, iVertex; + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + + for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { + + /*--- Get node index ---*/ + + iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + + if (nDim == 2) { + Solution[0] = 0.0; Solution[1] = 0.0; + } + else { + Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; + } + + node[iPoint]->SetSolution(Solution); + + if (dynamic){ + node[iPoint]->SetSolution_Vel(Solution); + node[iPoint]->SetSolution_Accel(Solution); + } + + } + +} + void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, - unsigned short iMesh) { } + unsigned short iMesh) { + + unsigned short iVar; + unsigned long iPoint, total_index; + + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + + + + /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ + + if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + + /*--- MPI solution ---*/ + + Set_MPI_Solution(geometry, config); + + /*--- Compute the residual Ax-f ---*/ + + Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); + + /*--- Set maximum residual to zero ---*/ + + for (iVar = 0; iVar < nVar; iVar++) { + SetRes_RMS(iVar, 0.0); + SetRes_Max(iVar, 0.0, 0); + } + + /*--- Compute the residual ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar+iVar; + AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); + AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); + } + } + + /*--- Compute the root mean square residual ---*/ + + SetResidual_RMS(geometry, config); + +} void CFEM_ElasticitySolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } @@ -962,10 +1084,11 @@ void CFEM_ElasticitySolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - unsigned long iPoint; + unsigned long iPoint, jPoint; + unsigned short iVar, jVar; bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration + bool first_iter = (config->GetIntIter() == 0); bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. @@ -981,62 +1104,110 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } + if (dynamic) { + /*--- Add the mass matrix contribution to the Jacobian ---*/ -} - -void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ - - unsigned short iVar; - unsigned long iPoint, total_index, IterLinSol; - - CSysSolve femSystem; - IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); - - /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ + /* + * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning + * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each + * iteration. + */ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Displacements component of the solution ---*/ - - /*--- TODO: If it's a NewtonRaphson, the result is the DELTA_U, not U itself ---*/ - - node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + if ((nonlinear_analysis) && ((newton_raphson) || (first_iter))){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++){ + for (jPoint = 0; jPoint < geometry->GetnPoint(); jPoint++){ + for(iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); + } + } + } + Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); + } } + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); + /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + Res_Time_Cont = TimeRes.GetBlock(iPoint); + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + LinSysRes.AddBlock(iPoint, Res_Time_Cont); + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + } } - /*--- MPI solution ---*/ - Set_MPI_Solution(geometry, config); - /*--- Compute the residual Ax-f ---*/ +} - Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); +void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ - /*--- Set maximum residual to zero ---*/ + unsigned short iVar; + unsigned long iPoint, total_index, IterLinSol; - for (iVar = 0; iVar < nVar; iVar++) { - SetRes_RMS(iVar, 0.0); - SetRes_Max(iVar, 0.0, 0); - } + unsigned short iNode, jNode, jVar; - /*--- Compute the residual ---*/ + double checkJacobian; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); - AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); + ofstream myfile; + myfile.open ("Jacobian.txt"); + + for (iNode = 0; iNode < nPoint; iNode++){ + for (jNode = 0; jNode < nPoint; jNode++){ + myfile << "Node " << iNode << " " << jNode << endl; + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); + myfile << checkJacobian << " " ; + } + myfile << endl; } } + } + myfile.close(); - /*--- Compute the root mean square residual ---*/ - - SetResidual_RMS(geometry, config); +// myfile.open ("StiffMatrix.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// for (jNode = 0; jNode < nPoint; jNode++){ +// myfile << "Node " << iNode << " " << jNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// for (jVar = 0; jVar < nVar; jVar++){ +// checkJacobian = StiffMatrix.GetBlock(iNode, jNode, iVar, jVar); +// myfile << checkJacobian << " " ; +// } +// myfile << endl; +// } +// } +// } +// myfile.close(); + CSysSolve femSystem; + IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); } From 513881cc5c78caf3db0aa884a4336c176c6de888 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 28 Jul 2015 17:49:00 +0100 Subject: [PATCH 037/269] FEM: Fixed some bugs on integration structure. --- SU2_CFD/include/solver_structure.hpp | 12 +- SU2_CFD/include/solver_structure.inl | 2 +- SU2_CFD/include/variable_structure.hpp | 208 ++++++++++++++- SU2_CFD/include/variable_structure.inl | 81 +++++- SU2_CFD/src/element_linear.cpp | 1 + SU2_CFD/src/integration_structure.cpp | 13 +- .../src/numerics_fem_nonlinear_elasticity.cpp | 4 - SU2_CFD/src/solver_direct_elasticity.cpp | 4 +- SU2_CFD/src/solver_fem_elasticity.cpp | 237 +++++++----------- SU2_CFD/src/variable_fem_elasticity.cpp | 80 ++++-- 10 files changed, 454 insertions(+), 188 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index d910e5a6bd0..d77deb710d7 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2368,12 +2368,9 @@ class CSolver { /*! * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_IntegrationConstants(CConfig *config); /*! * \brief A virtual member. @@ -6497,7 +6494,7 @@ class CFEASolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_IntegrationConstants(CConfig *config); /*! * \brief Set the solution variables at time n to the current solution. @@ -6655,12 +6652,9 @@ class CFEM_ElasticitySolver : public CSolver { /*! * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_IntegrationConstants(CConfig *config); /*! * \brief Clamped boundary conditions. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index ae59b97920b..9a168e75e1d 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -641,7 +641,7 @@ inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver ** inline void CSolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } -inline void CSolver::Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_IntegrationConstants(CConfig *config) { } inline void CSolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 21149cdf81a..b73c3231f2c 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -2489,23 +2489,29 @@ class CFEAVariable : public CVariable { class CFEM_ElasVariable : public CVariable { protected: - bool dynamicFEA; /*!< \brief Bool which determines if the problem is dynamic. */ + bool dynamic_analysis; /*!< \brief Bool which determines if the problem is dynamic. */ + bool fsi_analysis; /*!< \brief Bool which determines if the problem is FSI. */ - double *Stress; /*!< \brief Stress tensor. */ - double *FlowTraction; /*!< \brief Traction from the fluid field. */ + double *Stress; /*!< \brief Stress tensor. */ + double *FlowTraction; /*!< \brief Traction from the fluid field. */ -// double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ - double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ - double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ +// double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ + double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ + double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ double VonMises_Stress; /*!< \brief Von Mises stress. */ unsigned short nConnectedElements; /*!< \brief Number of elements connected to the node. */ + double *Solution_time_n; /*!< \brief Displacement at the nodes at time n */ + double *Solution_Vel, /*!< \brief Velocity of the nodes. */ *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ - double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ - *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ + double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ + *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ + + double *Solution_Pred, /*!< \brief Predictor of the solution for FSI purposes */ + *Solution_Pred_Old; /*!< \brief Predictor of the solution at time n for FSI purposes */ public: @@ -2568,6 +2574,192 @@ class CFEM_ElasVariable : public CVariable { */ void Clear_SurfaceLoad_Res(void); + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_time_n(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_time_n(double *val_solution_time_n); + + + /*! + * \brief Set the value of the velocity (Structural Analysis). + * \param[in] val_solution - Solution of the problem (velocity). + */ + void SetSolution_Vel(double *val_solution_vel); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution - Value of the solution for the index val_var. + */ + void SetSolution_Vel(unsigned short val_var, double val_solution_vel); + + /*! + * \brief Set the value of the velocity (Structural Analysis) at time n. + * \param[in] val_solution - Solution of the problem (acceleration). + */ + void SetSolution_Vel_time_n(void); + + /*! + * \brief Set the value of the velocity (Structural Analysis) at time n. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Vel_time_n(double *val_solution_vel_time_n); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution_old - Value of the old solution for the index val_var. + */ + void SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n); + + /*! + * \brief Get the solution at time n. + * \param[in] val_var - Index of the variable. + * \return Value of the solution for the index val_var. + */ + double GetSolution_time_n(unsigned short val_var); + + /*! + * \brief Get the velocity (Structural Analysis). + * \param[in] val_var - Index of the variable. + * \return Value of the solution for the index val_var. + */ + double GetSolution_Vel(unsigned short val_var); + + /*! + * \brief Get the solution of the problem. + * \return Pointer to the solution vector. + */ + double *GetSolution_Vel(void); + + /*! + * \brief Get the velocity of the nodes (Structural Analysis) at time n. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + double GetSolution_Vel_time_n(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + double *GetSolution_Vel_time_n(void); + + /*! + * \brief Set the value of the acceleration (Structural Analysis). + * \param[in] val_solution - Solution of the problem (acceleration). + */ + void SetSolution_Accel(double *val_solution_accel); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution - Value of the solution for the index val_var. + */ + void SetSolution_Accel(unsigned short val_var, double val_solution_accel); + + /*! + * \brief Set the value of the acceleration (Structural Analysis) at time n. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Accel_time_n(double *val_solution_accel_time_n); + + /*! + * \brief Set the value of the acceleration (Structural Analysis) at time n. + * \param[in] val_solution - Solution of the problem (acceleration). + */ + void SetSolution_Accel_time_n(void); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution_old - Value of the old solution for the index val_var. + */ + void SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n); + + /*! + * \brief Get the acceleration (Structural Analysis). + * \param[in] val_var - Index of the variable. + * \return Value of the solution for the index val_var. + */ + double GetSolution_Accel(unsigned short val_var); + + /*! + * \brief Get the solution of the problem. + * \return Pointer to the solution vector. + */ + double *GetSolution_Accel(void); + + /*! + * \brief Get the acceleration of the nodes (Structural Analysis) at time n. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + double GetSolution_Accel_time_n(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + double *GetSolution_Accel_time_n(void); + + + /*! + * \brief Set the value of the solution predictor. + */ + void SetSolution_Pred(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Pred(double *val_solution_pred); + + /*! + * \brief Get the value of the solution predictor. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + double GetSolution_Pred(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + double *GetSolution_Pred(void); + + /*! + * \brief Set the value of the solution predictor. + */ + void SetSolution_Pred_Old(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Pred_Old(double *val_solution_pred_Old); + + /*! + * \brief Get the value of the solution predictor. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + double GetSolution_Pred_Old(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + double *GetSolution_Pred_Old(void); + + }; /*! diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 57edc27e5f4..20a60a83877 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -894,10 +894,87 @@ inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(double *val_surfForce) { inline double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Residual_Ext_Surf[iVar] = 0.0; + for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; +} + +inline void CFEM_ElasVariable::SetSolution_time_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = Solution[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_time_n(double *val_solution_time_n) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Vel(unsigned short val_var, double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } + +inline void CFEM_ElasVariable::SetSolution_Vel(double *val_solution_vel) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel[iVar] = val_solution_vel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } + +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = Solution_Vel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(double *val_solution_vel_time_n) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = val_solution_vel_time_n[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Accel(unsigned short val_var, double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } + +inline void CFEM_ElasVariable::SetSolution_Accel(double *val_solution_accel) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel[iVar] = val_solution_accel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } + +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = Solution_Accel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(double *val_solution_accel_time_n) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Pred(double *val_solution_pred){ Solution_Pred = val_solution_pred; } + +inline void CFEM_ElasVariable::SetSolution_Pred(void){ + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Pred_Old(double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } + +inline void CFEM_ElasVariable::SetSolution_Pred_Old(void){ + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred_Old[iVar] = Solution_Pred[iVar]; } +inline double CFEM_ElasVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } + +inline double *CFEM_ElasVariable::GetSolution_Vel(void) { return Solution_Vel; } + +inline double CFEM_ElasVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } + +inline double *CFEM_ElasVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } + +inline double CFEM_ElasVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } + +inline double *CFEM_ElasVariable::GetSolution_Accel(void) { return Solution_Accel; } + +inline double CFEM_ElasVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } + +inline double *CFEM_ElasVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } + +inline double CFEM_ElasVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } + +inline double *CFEM_ElasVariable::GetSolution_Pred(void){ return Solution_Pred; } + +inline double CFEM_ElasVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } + +inline double *CFEM_ElasVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } + +inline double CFEM_ElasVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } + inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] = val_traction; } inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] += val_traction; } diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index 0232492ab44..cfac875f59b 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -53,6 +53,7 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) } /*--- Initialize structure for current and reference configuration ---*/ + /*--- TODO: Initialize structures depending on the kind of problem ---*/ CurrentCoord = new double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index c6327180707..00a3268e309 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -212,21 +212,22 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool first_iter = (Iteration == 0); // Checks if it is the first iteration + bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); /*--- Compute Mass Matrix ---*/ - + /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ + /*--- problem is linear or nonlinear ---*/ if ((dynamic) && (initial_calc) && (first_iter)){ solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); } - - if (linear_analysis){ - /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ + /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ + /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ + if ((linear_analysis) && (initial_calc)){ solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics[VISC_TERM], config); } - else{ + else if (!linear_analysis){ /*--- If the analysis is nonlinear, also the stress terms need to be computed ---*/ /*--- If the method is full Newton-Raphson, the stiffness matrix and the nodal term are updated every time ---*/ diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 3226ccf4486..8095c1b99a4 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -566,10 +566,6 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(void) { D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; } -// cout << D_Mat[0][0] << " " << D_Mat[0][1] << " " << D_Mat[0][2] << endl; -// cout << D_Mat[1][0] << " " << D_Mat[1][1] << " " << D_Mat[1][2] << endl; -// cout << D_Mat[2][0] << " " << D_Mat[2][1] << " " << D_Mat[2][2] << endl; - } void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(void) { diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 5e4afa192d7..b205fd93f80 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -368,7 +368,7 @@ void CFEASolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, } else if (dynamic){ /*--- Compute the integration constants ---*/ - Compute_IntegrationConstants(geometry, solver_container, numerics[VISC_TERM], config); + Compute_IntegrationConstants(config); /*--- Compute the stiffness and mass matrices ---*/ Compute_StiffMassMatrix(geometry, solver_container, numerics[VISC_TERM], config); @@ -450,7 +450,7 @@ void CFEASolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_c } -void CFEASolver::Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEASolver::Compute_IntegrationConstants(CConfig *config) { double Delta_t= config->GetDelta_DynTime(); double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 7c0f53e0c24..e91e8bc296c 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -316,7 +316,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ unsigned long iPoint; bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (Iteration == 0); // Checks if it is the first iteration + bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. @@ -348,10 +348,13 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ * If the problem is dynamic, we need a mass matrix, which will be constant along the calculation * both for linear and nonlinear analysis. Only initialized once, at the first time step. * + * The same with the integration constants, as for now we consider the time step to be constant. + * * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. */ if ((dynamic) && (initial_calc) && (first_iter)) { MassMatrix.SetValZero(); + Compute_IntegrationConstants(config); } /* @@ -529,6 +532,26 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } +// double checkJacobian; +// +// ofstream myfile; +// myfile.open ("Jacobian_assembled.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// for (jNode = 0; jNode < nPoint; jNode++){ +// myfile << "Node " << iNode << " " << jNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// for (jVar = 0; jVar < nVar; jVar++){ +// checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); +// myfile << checkJacobian << " " ; +// } +// myfile << endl; +// } +// } +// } +// myfile.close(); + + } void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -587,24 +610,24 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so } - double checkJacobian; - - ofstream myfile; - myfile.open ("massMatrix.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = MassMatrix.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); +// double checkJacobian; +// +// ofstream myfile; +// myfile.open ("massMatrix.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// for (jNode = 0; jNode < nPoint; jNode++){ +// myfile << "Node " << iNode << " " << jNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// for (jVar = 0; jVar < nVar; jVar++){ +// checkJacobian = MassMatrix.GetBlock(iNode, jNode, iVar, jVar); +// myfile << checkJacobian << " " ; +// } +// myfile << endl; +// } +// } +// } +// myfile.close(); } @@ -668,24 +691,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[0]->GetCoord(iDim); val_Sol = node[0]->GetSolution(iDim) + val_Coord; - cout << val_Coord << " " << val_Sol << " "; - } - cout << endl; - - double checkResidual; - - ofstream myfile; - myfile.open ("residual_2.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - myfile << "Node " << iNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - checkResidual = LinSysRes.GetBlock(iNode, iVar); myfile << checkResidual << endl; - - } } - myfile.close(); - } @@ -693,7 +699,7 @@ void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver } -void CFEM_ElasticitySolver::Compute_IntegrationConstants(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_IntegrationConstants(CConfig *config) { double Delta_t= config->GetDelta_DynTime(); double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); @@ -723,23 +729,6 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con unsigned short iNode, jNode; double checkJacobian; - ofstream myfile; - myfile.open ("jacobianPreClamped.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { /*--- Get node index ---*/ @@ -786,6 +775,7 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con /*--- If the problem is dynamic ---*/ /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ + /*--- TODO: Do I really need to do this? ---*/ if(dynamic){ @@ -797,23 +787,6 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con } - myfile.open ("jacobianClamped.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); - - } void CFEM_ElasticitySolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, @@ -852,29 +825,6 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver unsigned short iVar; unsigned long iPoint, total_index; - bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems - bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - - - - /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Displacements component of the solution ---*/ - - /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ - - if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - } - - } - /*--- MPI solution ---*/ Set_MPI_Solution(geometry, config); @@ -994,9 +944,6 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ @@ -1022,10 +969,6 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; -// LinSysRes.AddBlock(Point_0, Residual); -// LinSysRes.AddBlock(Point_1, Residual); - - /*--- This will allow us to compute the boundary conditions only once ---*/ node[Point_0]->Add_SurfaceLoad_Res(Residual); node[Point_1]->Add_SurfaceLoad_Res(Residual); @@ -1038,11 +981,6 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; -// LinSysRes.AddBlock(Point_0, Residual); -// LinSysRes.AddBlock(Point_1, Residual); -// LinSysRes.AddBlock(Point_2, Residual); - - /*--- This will allow us to compute the boundary conditions only once ---*/ node[Point_0]->Add_SurfaceLoad_Res(Residual); node[Point_1]->Add_SurfaceLoad_Res(Residual); node[Point_2]->Add_SurfaceLoad_Res(Residual); @@ -1054,12 +992,6 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; -// LinSysRes.AddBlock(Point_0, Residual); -// LinSysRes.AddBlock(Point_1, Residual); -// LinSysRes.AddBlock(Point_2, Residual); -// LinSysRes.AddBlock(Point_3, Residual); - - /*--- This will allow us to compute the boundary conditions only once ---*/ node[Point_0]->Add_SurfaceLoad_Res(Residual); node[Point_1]->Add_SurfaceLoad_Res(Residual); node[Point_2]->Add_SurfaceLoad_Res(Residual); @@ -1098,6 +1030,8 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv if (!dynamic){ for (iPoint = 0; iPoint < nPoint; iPoint++){ + /*--- Add the external contribution to the residual ---*/ + /*--- (the terms that are constant over the time step) ---*/ Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); LinSysRes.AddBlock(iPoint, Res_Ext_Surf); } @@ -1110,21 +1044,25 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /* * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning - * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each - * iteration. + * of each time step. If the solution method is Newton Rapshon, we repeat this step at the beginning of each + * iteration, as the Jacobian is recomputed + * + * If the problem is linear, we add the Mass Matrix contribution to the Jacobian at the first calculation. + * From then on, the Jacobian is always the same matrix. + * */ - if ((nonlinear_analysis) && ((newton_raphson) || (first_iter))){ + if (((nonlinear_analysis) && ((newton_raphson) || (first_iter)))|| + ((linear_analysis) && (initial_calc))) { for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++){ for (jPoint = 0; jPoint < geometry->GetnPoint(); jPoint++){ for(iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); + Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); } } + Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); } - - Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); } } @@ -1154,9 +1092,11 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + /*--- Dynamic contribution ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); - Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); LinSysRes.AddBlock(iPoint, Res_Time_Cont); + /*--- External surface load contribution ---*/ + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); LinSysRes.AddBlock(iPoint, Res_Ext_Surf); } } @@ -1170,44 +1110,61 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c unsigned short iVar; unsigned long iPoint, total_index, IterLinSol; - unsigned short iNode, jNode, jVar; - - double checkJacobian; - - ofstream myfile; - myfile.open ("Jacobian.txt"); + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); + unsigned short iNode, jNode, jVar; -// myfile.open ("StiffMatrix.txt"); +// double checkJacobian; +// +// ofstream myfile; +// myfile.open ("Jacobian.txt"); // // for (iNode = 0; iNode < nPoint; iNode++){ // for (jNode = 0; jNode < nPoint; jNode++){ // myfile << "Node " << iNode << " " << jNode << endl; // for (iVar = 0; iVar < nVar; iVar++){ // for (jVar = 0; jVar < nVar; jVar++){ -// checkJacobian = StiffMatrix.GetBlock(iNode, jNode, iVar, jVar); +// checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); // myfile << checkJacobian << " " ; // } // myfile << endl; // } // } // } +// myfile.close(); +// +// myfile.open ("Residual.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// myfile << "Node " << iNode << " " << jNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// checkJacobian = LinSysRes.GetBlock(iNode, iVar); +// myfile << checkJacobian << " " ; +// myfile << endl; +// } +// } // myfile.close(); CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + /*--- Update solution ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ + + if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + } diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 7aa7f03fcf2..d2e8562fd6f 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -33,35 +33,72 @@ CFEM_ElasVariable::CFEM_ElasVariable(void) : CVariable() { - dynamicFEA = false; - VonMises_Stress = 0.0; + dynamic_analysis = false; + fsi_analysis = false; - nConnectedElements = 0; + VonMises_Stress = 0.0; + + nConnectedElements = 0; + + Stress = NULL; // Nodal stress (for output purposes) + FlowTraction = NULL; // Nodal traction due to the fluid (fsi) +// Residual_Int = NULL; // Internal component of the residual + Residual_Ext_Surf = NULL; // Residual component due to external surface forces + Residual_Ext_Body = NULL; // Residual component due to body forces + + Solution_time_n = NULL; // Solution at the node at the previous subiteration + + Solution_Vel = NULL; // Velocity at the node at time t+dt + Solution_Vel_time_n = NULL; // Velocity at the node at time t - Stress = NULL; // Nodal stress (for output purposes) - FlowTraction = NULL; // Nodal traction due to the fluid (fsi) -// Residual_Int = NULL; // Internal component of the residual - Residual_Ext_Surf = NULL; // Residual component due to external surface forces - Residual_Ext_Body = NULL; // Residual component due to body forces + Solution_Accel = NULL; // Acceleration at the node at time t+dt + Solution_Accel_time_n = NULL; // Acceleration at the node at time t + + Solution_Pred = NULL; // Predictor of the solution at the current subiteration + Solution_Pred_Old = NULL; // Predictor of the solution at the previous subiteration } CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, jDim; - bool fsi = config->GetFSI_Simulation(); bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool body_forces = false; // Bool for adding body forces in the future. nConnectedElements = 0; VonMises_Stress = 0.0; - dynamicFEA = (config->GetDynamic_Analysis() == DYNAMIC); + dynamic_analysis = (config->GetDynamic_Analysis() == DYNAMIC); + fsi_analysis = config->GetFSI_Simulation(); if (nDim == 2) Stress = new double [3]; else if (nDim == 3) Stress = new double [6]; - if (fsi) FlowTraction = new double [nVar]; else FlowTraction = NULL; + if (dynamic_analysis){ + Solution_time_n = new double [nVar]; + Solution_Vel = new double [nVar]; + Solution_Vel_time_n = new double [nVar]; + Solution_Accel = new double [nVar]; + Solution_Accel_time_n = new double [nVar]; + } + else { + Solution_time_n = NULL; + Solution_Vel = NULL; + Solution_Vel_time_n = NULL; + Solution_Accel = NULL; + Solution_Accel_time_n = NULL; + } + + if (fsi_analysis) { + FlowTraction = new double [nVar]; + Solution_Pred = new double [nVar]; + Solution_Pred_Old = new double [nVar]; + } + else { + FlowTraction = NULL; + Solution_Pred = NULL; + Solution_Pred_Old = NULL; + } // if (nonlinear_analysis) Residual_Int = new double [nVar]; else Residual_Int = NULL; if (body_forces) Residual_Ext_Body = new double [nVar]; else Residual_Ext_Body = NULL; @@ -72,11 +109,22 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u CFEM_ElasVariable::~CFEM_ElasVariable(void) { - delete [] Stress; + if (Stress != NULL) delete [] Stress; + if (FlowTraction != NULL) delete [] FlowTraction; +// if (Residual_Int != NULL) delete [] Residual_Int; + if (Residual_Ext_Surf != NULL) delete [] Residual_Ext_Surf; + if (Residual_Ext_Body != NULL) delete [] Residual_Ext_Body; + + if (Solution_time_n != NULL) delete [] Solution_time_n; + + if (Solution_Vel != NULL) delete [] Solution_Vel; + if (Solution_Vel_time_n != NULL) delete [] Solution_Vel_time_n; - if (FlowTraction != NULL) delete [] FlowTraction; -// if (Residual_Int != NULL) delete [] Residual_Int; - if (Residual_Ext_Body != NULL) delete [] Residual_Ext_Body; - if (Residual_Ext_Surf != NULL) delete [] FlowTraction; + if (Solution_Accel != NULL) delete [] Solution_Accel; + if (Solution_Accel_time_n != NULL) delete [] Solution_Accel_time_n; + + if (Solution_Pred != NULL) delete [] Solution_Pred; + if (Solution_Pred_Old != NULL) delete [] Solution_Pred_Old; } + From c45f7d1dd8fc9fd8b2c55ea91b593bbbe16c0d5f Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 29 Jul 2015 20:50:46 +0100 Subject: [PATCH 038/269] FEM: minor changes. --- SU2_CFD/include/element_structure.hpp | 26 ++++ SU2_CFD/include/element_structure.inl | 6 + SU2_CFD/include/numerics_structure.hpp | 12 ++ SU2_CFD/include/numerics_structure.inl | 4 + SU2_CFD/include/variable_structure.hpp | 19 --- SU2_CFD/include/variable_structure.inl | 6 - SU2_CFD/src/element_linear.cpp | 113 ++++++++++++++++++ .../src/numerics_fem_linear_elasticity.cpp | 4 + .../src/numerics_fem_nonlinear_elasticity.cpp | 109 +++++++++++++++++ SU2_CFD/src/solver_fem_elasticity.cpp | 8 ++ SU2_CFD/src/variable_fem_elasticity.cpp | 3 - 11 files changed, 282 insertions(+), 28 deletions(-) diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index 33093f4f58d..2f2639c74a5 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -64,6 +64,8 @@ class CElement { *GaussWeight; /*!< \brief Weight of the Gaussian Points for the integration. */ double **GaussCoordP, /*!< \brief Parent coordinates of the Gaussian Points for the pressure subintegration.. */ *GaussWeightP; /*!< \brief Weight of the Gaussian Points for the pressure subintegration. */ + double **NodalExtrap; /*!< \brief Coordinates of the nodal points for Gaussian extrapolation */ + double **NodalStress; /*!< \brief Stress at the nodes */ CGaussVariable **GaussPoint; /*!< \brief Structure for the Gaussian Points. */ CGaussVariable **GaussPointP; /*!< \brief Structure for the Gaussian Points for the pressure subintegration. */ double **Mab; /*!< \brief Structure for the nodal components of the mass matrix. */ @@ -308,6 +310,30 @@ class CElement { */ double GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim); + /*! + * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. + * \param[in] iNode - Index of the node. + * \param[in] iGauss - Index of the Gaussian Point. + * \param[out] val_Ni_Ext - Value of the shape function at the nodes for extrapolation purposes + */ + double GetNi_Extrap(unsigned short iNode, unsigned short iGauss); + + /*! + * \brief Add a value to the nodal stress for an element. + * \param[in] iNode - Index of the node. + * \param[in] iGauss - Index of the variable. + * \param[in] val_Stress - Value of the stress added. + */ + void Add_NodalStress(double val_Stress, unsigned short iNode, unsigned short iVar); + + /*! + * \brief Retrieve the value of the nodal stress for an element. + * \param[in] iNode - Index of the node. + * \param[in] iGauss - Index of the variable. + * \param[in] val_Stress - Value of the stress added. + */ + double Get_NodalStress(unsigned short iNode, unsigned short iVar); + /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. * \param[in] val_solution - Solution of the problem. diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl index a868d47340f..33c66fef770 100644 --- a/SU2_CFD/include/element_structure.inl +++ b/SU2_CFD/include/element_structure.inl @@ -71,6 +71,8 @@ inline void CElement::Add_Mab(double val_Mab, unsigned short nodeA, unsigned sho inline void CElement::Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } +inline void CElement::Add_NodalStress(double val_Stress, unsigned short iNode, unsigned short iVar) { NodalStress[iNode][iVar] += val_Stress; } + inline double CElement::GetNi(unsigned short iNode, unsigned short iGauss) { return GaussPoint[iGauss]->GetNi(iNode);} inline double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim);} @@ -79,6 +81,10 @@ inline double CElement::GetGradNi_x(unsigned short iNode, unsigned short iGauss, inline double CElement::GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim) { return GaussPointP[iGaussP]->GetGradNi_xj(iNode,iDim);} +inline double CElement::GetNi_Extrap(unsigned short iNode, unsigned short iGauss) { return NodalExtrap[iNode][iGauss]; } + +inline double CElement::Get_NodalStress(unsigned short iNode, unsigned short iVar) { return NodalStress[iNode][iVar]; } + inline double CElement::GetWeight_P(unsigned short iGaussP) { return GaussWeightP[iGaussP];} inline unsigned short CElement::GetnGaussPointsP(void) { return nGaussPointsP;} diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index b470e629783..576b69fabda 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1684,6 +1684,12 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, */ virtual void Compute_Mass_Matrix(CElement *element_container); + /*! + * \brief A virtual member to compute the averaged nodal stresses + * \param[in] element_container - Element structure for the particular element integrated. + */ + virtual void Compute_Averaged_NodalStress(CElement *element_container); + /*! * \brief Computes a basis of orthogonal vectors from a suppled vector * \param[in] config - Normal vector @@ -4446,6 +4452,8 @@ class CFEM_Elasticity : public CNumerics { virtual void Compute_NodalStress_Term(CElement *element_container); + virtual void Compute_Averaged_NodalStress(CElement *element_container); + virtual void Compute_Constitutive_Matrix(void); virtual void Compute_Stress_Tensor(void); @@ -4480,6 +4488,8 @@ class CFEM_LinearElasticity : public CFEM_Elasticity { void Compute_Constitutive_Matrix(void); + void Compute_Averaged_NodalStress(CElement *element_container); + // virtual void Compute_Stress_Tensor(void); // virtual void Compute_MeanDilatation_Term(CElement *element_container); @@ -4530,6 +4540,8 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { void Compute_NodalStress_Term(CElement *element_container); + void Compute_Averaged_NodalStress(CElement *element_container); + virtual void Compute_Constitutive_Matrix(void); virtual void Compute_Stress_Tensor(void); diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index ea1e45a3606..05ff31ca392 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -73,6 +73,10 @@ inline void CFEM_Elasticity::Compute_NodalStress_Term(CElement *element_containe //inline void CFEM_LinearElasticity::Compute_NodalStress_Term(CElement *element_container){ } +inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container){ } + inline void CNumerics::Compute_Constitutive_Matrix(void){ } inline void CFEM_Elasticity::Compute_Constitutive_Matrix(void){ } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index b73c3231f2c..d6118357611 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -2500,7 +2500,6 @@ class CFEM_ElasVariable : public CVariable { double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ double VonMises_Stress; /*!< \brief Von Mises stress. */ - unsigned short nConnectedElements; /*!< \brief Number of elements connected to the node. */ double *Solution_time_n; /*!< \brief Displacement at the nodes at time n */ @@ -2541,24 +2540,6 @@ class CFEM_ElasVariable : public CVariable { */ double *GetStress_FEM(void); - /*! - * \brief Initialize the value of the number of attached elements to a node. - */ - void Initialize_Connectivity(void); - - - /*! - * \brief Add a 1 to the value of the number of attached elements to a node. - */ - void Upgrade_Connectivity(void); - - - /*! - * \brief Number of attached elements to a node. - * \return Returns the value of the number of attached elements to a node. - */ - unsigned short Get_Connectivity(void); - /*! * \brief Add surface load to the residual term */ diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 20a60a83877..9e9e8bdafe8 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -880,12 +880,6 @@ inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedEle inline double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } -inline void CFEM_ElasVariable::Initialize_Connectivity(void) { nConnectedElements = 0; } - -inline void CFEM_ElasVariable::Upgrade_Connectivity(void) { nConnectedElements += 1; } - -inline unsigned short CFEM_ElasVariable::Get_Connectivity(void) { return nConnectedElements; } - inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(double *val_surfForce) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] += val_surfForce[iVar]; diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index cfac875f59b..be4937ddb4c 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -52,6 +52,16 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } + NodalExtrap = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalExtrap[iNode] = new double[nGaussPoints]; + } + + NodalStress = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalStress[iNode] = new double[3]; + } + /*--- Initialize structure for current and reference configuration ---*/ /*--- TODO: Initialize structures depending on the kind of problem ---*/ @@ -113,6 +123,11 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss]->SetNi(val_Ni,2); } + /*--- Shape functions evaluated at the nodes for extrapolation of the stresses at the Gaussian Points ---*/ + /*--- The stress is constant at a TRIA element ---*/ + NodalExtrap[0][0] = 1.0; + NodalExtrap[1][0] = 1.0; + NodalExtrap[2][0] = 1.0; } @@ -135,6 +150,7 @@ CTRIA1::~CTRIA1(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + delete [] NodalExtrap[iVar]; } delete [] GaussCoord; @@ -146,6 +162,7 @@ CTRIA1::~CTRIA1(void) { delete [] Ks_ab; delete [] Kt_a; delete [] GaussWeight; + delete [] NodalExtrap; } @@ -318,6 +335,16 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } + NodalExtrap = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalExtrap[iNode] = new double[nGaussPoints]; + } + + NodalStress = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalStress[iNode] = new double[3]; + } + /*--- Initialize structure for current and reference configuration ---*/ CurrentCoord = new double*[nNodes]; @@ -379,6 +406,30 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) val_Ni = 0.25*(1.0-Xi)*(1.0+Eta); GaussPoint[iGauss]->SetNi(val_Ni,3); } +// /*--- Shape functions evaluated at the nodes for extrapolation of the stresses at the Gaussian Points ---*/ +// NodalExtrap[0][0] = 1.86602540378444; NodalExtrap[0][1] = -0.500000000000000; NodalExtrap[0][2] = 0.133974596215561; NodalExtrap[0][3] = -0.500000000000000; +// NodalExtrap[1][0] = -0.500000000000000; NodalExtrap[1][1] = 1.86602540378444; NodalExtrap[1][2] = -0.500000000000000; NodalExtrap[1][3] = 0.133974596215561; +// NodalExtrap[2][0] = 0.133974596215561; NodalExtrap[2][1] = -0.500000000000000; NodalExtrap[2][2] = 1.86602540378444; NodalExtrap[2][3] = -0.500000000000000; +// NodalExtrap[3][0] = -0.500000000000000; NodalExtrap[3][1] = 0.133974596215561; NodalExtrap[3][2] = -0.500000000000000; NodalExtrap[3][3] = 1.86602540378444; + + double ExtrapCoord[4][2]; + + ExtrapCoord[0][0] = -1.732050807568877; ExtrapCoord[0][1] = -1.732050807568877; + ExtrapCoord[1][0] = 1.732050807568877; ExtrapCoord[1][1] = -1.732050807568877; + ExtrapCoord[2][0] = 1.732050807568877; ExtrapCoord[2][1] = 1.732050807568877; + ExtrapCoord[3][0] = -1.732050807568877; ExtrapCoord[3][1] = 1.732050807568877; + + /*--- Store the shape functions (they only need to be computed once) ---*/ + for (iNode = 0; iNode < nNodes; iNode++){ + Xi = ExtrapCoord[iNode][0]; + Eta = ExtrapCoord[iNode][1]; + + NodalExtrap[iNode][0] = 0.25*(1.0-Xi)*(1.0-Eta); + NodalExtrap[iNode][1] = 0.25*(1.0+Xi)*(1.0-Eta); + NodalExtrap[iNode][2] = 0.25*(1.0+Xi)*(1.0+Eta); + NodalExtrap[iNode][3] = 0.25*(1.0-Xi)*(1.0+Eta); + + } } @@ -401,6 +452,7 @@ CQUAD4::~CQUAD4(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + delete [] NodalExtrap[iVar]; } delete [] GaussCoord; @@ -412,6 +464,7 @@ CQUAD4::~CQUAD4(void) { delete [] Ks_ab; delete [] Kt_a; delete [] GaussWeight; + delete [] NodalExtrap; } @@ -734,6 +787,16 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } + NodalExtrap = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalExtrap[iNode] = new double[nGaussPoints]; + } + + NodalStress = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalStress[iNode] = new double[6]; + } + /*--- Initialize structure for current and reference configuration ---*/ CurrentCoord = new double*[nNodes]; @@ -793,6 +856,13 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) val_Ni = Zeta; GaussPoint[iGauss]->SetNi(val_Ni,3); } + /*--- Shape functions evaluated at the nodes for extrapolation of the stresses at the Gaussian Points ---*/ + /*--- The stress is constant at a TETRA element ---*/ + NodalExtrap[0][0] = 1.0; + NodalExtrap[1][0] = 1.0; + NodalExtrap[2][0] = 1.0; + NodalExtrap[3][0] = 1.0; + } CTETRA1::~CTETRA1(void) { @@ -814,6 +884,7 @@ CTETRA1::~CTETRA1(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + delete [] NodalExtrap[iVar]; } delete [] GaussCoord; @@ -825,6 +896,7 @@ CTETRA1::~CTETRA1(void) { delete [] Ks_ab; delete [] Kt_a; delete [] GaussWeight; + delete [] NodalExtrap; } @@ -1016,6 +1088,16 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } + NodalExtrap = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalExtrap[iNode] = new double[nGaussPoints]; + } + + NodalStress = new double*[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++) { + NodalStress[iNode] = new double[6]; + } + /*--- Initialize structure for current and reference configuration ---*/ CurrentCoord = new double*[nNodes]; @@ -1087,6 +1169,35 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) val_Ni = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0+Zeta); GaussPoint[iGauss]->SetNi(val_Ni,7); } + + double ExtrapCoord[8][3]; + + ExtrapCoord[0][0] = -1.732050807568877; ExtrapCoord[0][1] = -1.732050807568877; ExtrapCoord[0][2] = -1.732050807568877; + ExtrapCoord[1][0] = 1.732050807568877; ExtrapCoord[1][1] = -1.732050807568877; ExtrapCoord[1][2] = -1.732050807568877; + ExtrapCoord[2][0] = 1.732050807568877; ExtrapCoord[2][1] = 1.732050807568877; ExtrapCoord[2][2] = -1.732050807568877; + ExtrapCoord[3][0] = -1.732050807568877; ExtrapCoord[3][1] = 1.732050807568877; ExtrapCoord[3][2] = -1.732050807568877; + ExtrapCoord[4][0] = -1.732050807568877; ExtrapCoord[4][1] = -1.732050807568877; ExtrapCoord[4][2] = 1.732050807568877; + ExtrapCoord[5][0] = 1.732050807568877; ExtrapCoord[5][1] = -1.732050807568877; ExtrapCoord[5][2] = 1.732050807568877; + ExtrapCoord[6][0] = 1.732050807568877; ExtrapCoord[6][1] = 1.732050807568877; ExtrapCoord[6][2] = 1.732050807568877; + ExtrapCoord[7][0] = -1.732050807568877; ExtrapCoord[7][1] = 1.732050807568877; ExtrapCoord[7][2] = 1.732050807568877; + + + /*--- Store the shape functions (they only need to be computed once) ---*/ + for (iNode = 0; iNode < nNodes; iNode++){ + Xi = ExtrapCoord[iNode][0]; + Eta = ExtrapCoord[iNode][1]; + Zeta = ExtrapCoord[iNode][2]; + + NodalExtrap[iNode][0] = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0-Zeta); + NodalExtrap[iNode][1] = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0-Zeta); + NodalExtrap[iNode][2] = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0-Zeta); + NodalExtrap[iNode][3] = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0-Zeta); + NodalExtrap[iNode][4] = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0+Zeta); + NodalExtrap[iNode][5] = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0+Zeta); + NodalExtrap[iNode][6] = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0+Zeta); + NodalExtrap[iNode][7] = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0+Zeta); + } + } CHEXA8::~CHEXA8(void) { @@ -1108,6 +1219,7 @@ CHEXA8::~CHEXA8(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + delete [] NodalExtrap[iVar]; } delete [] GaussCoord; @@ -1119,6 +1231,7 @@ CHEXA8::~CHEXA8(void) { delete [] Ks_ab; delete [] Kt_a; delete [] GaussWeight; + delete [] NodalExtrap; } diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index f5d899d35b1..45b65e95ceb 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -188,3 +188,7 @@ void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ } } + +void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ + +} diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 8095c1b99a4..2037d7474f6 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -522,7 +522,116 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ } +} + +void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ + + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + unsigned short iDim, bDim; + + double Ks_Aux_ab; + + double Weight, Jac_X, Jac_x; + + double AuxMatrixKt[3]; + + /*--- Initialize auxiliary matrices ---*/ + + for (i = 0; i < 3; i++){ + AuxMatrixKt[i] = 0.0; + } + + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_Linear(); /*--- Check if we can take this out... so we don't have to do it twice ---*/ + + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + /*--- Full integration of the nodal stress ---*/ + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight(iGauss); + Jac_X = element->GetJ_X(iGauss); + Jac_x = element->GetJ_x(iGauss); + + /*--- Initialize the deformation gradient for each Gauss Point ---*/ + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + F_Mat[i][j] = 0.0; + b_Mat[i][j] = 0.0; + } + } + + /*--- Retrieve the values of the gradients of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + + for (iNode = 0; iNode < nNode; iNode++){ + + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Ref_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + currentCoord[iNode][iDim] = element->GetCurr_Coord(iNode, iDim); + } + + /*--- Compute the deformation gradient ---*/ + + for (i = 0; i < nDim; i++){ + for (j = 0; j < nDim; j++){ + F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Ref_Mat[iNode][j]; + } + } + + /*--- This implies plane strain --> Consider the possible implementation for plane stress --*/ + if (nDim == 2){ + F_Mat[2][2] = 1.0; + } + + } + + /*--- Determinant of F --> Jacobian of the transformation ---*/ + + J_F = F_Mat[0][0]*F_Mat[1][1]*F_Mat[2][2]+ + F_Mat[0][1]*F_Mat[1][2]*F_Mat[2][0]+ + F_Mat[0][2]*F_Mat[1][0]*F_Mat[2][1]- + F_Mat[0][2]*F_Mat[1][1]*F_Mat[2][0]- + F_Mat[1][2]*F_Mat[2][1]*F_Mat[0][0]- + F_Mat[2][2]*F_Mat[0][1]*F_Mat[1][0]; + + /*--- Compute the left Cauchy deformation tensor ---*/ + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + for (k = 0; k < 3; k++){ + b_Mat[i][j] += F_Mat[i][k]*F_Mat[j][k]; + } + } + } + + /*--- Compute the stress tensor ---*/ + + Compute_Stress_Tensor(); + + +// for (iNode = 0; iNode < nNode; iNode++){ +// +// /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ +// /*--- and add it to the element structure to be retrieved from the solver ---*/ +// +// for (i = 0; i < nDim; i++){ +// KAux_t_a[i] = 0.0; +// for (j = 0; j < nDim; j++){ +// KAux_t_a[i] += Weight * Stress_Tensor[i][j] * GradNi_Curr_Mat[iNode][j] * Jac_x; +// } +// } +// +// element->Add_Kt_a(KAux_t_a, iNode); +// +// } + + } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index e91e8bc296c..b495b50e0de 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -223,6 +223,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); +// unsigned short nElAttached; +// for (iPoint = 0; iPoint < nPoint; iPoint++){ +// nElAttached = geometry->node[iPoint]->GetnElem(); +// cout << "Node " << iPoint << " has " << nElAttached << " elements attached. " << endl; +// } + + + // if (nonlinear_analysis) StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); if (dynamic) { diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index d2e8562fd6f..41578594c4b 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -38,8 +38,6 @@ CFEM_ElasVariable::CFEM_ElasVariable(void) : CVariable() { VonMises_Stress = 0.0; - nConnectedElements = 0; - Stress = NULL; // Nodal stress (for output purposes) FlowTraction = NULL; // Nodal traction due to the fluid (fsi) // Residual_Int = NULL; // Internal component of the residual @@ -65,7 +63,6 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool body_forces = false; // Bool for adding body forces in the future. - nConnectedElements = 0; VonMises_Stress = 0.0; dynamic_analysis = (config->GetDynamic_Analysis() == DYNAMIC); From 46cfb040c4ca76ab03238a1d52754fd814362701 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 30 Jul 2015 14:17:57 +0100 Subject: [PATCH 039/269] FEM: added nonlinear stress computation. --- SU2_CFD/include/element_structure.hpp | 5 ++ SU2_CFD/include/solver_structure.hpp | 21 ++++++ SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/include/variable_structure.hpp | 32 +++++++- SU2_CFD/include/variable_structure.inl | 8 ++ SU2_CFD/src/element_structure.cpp | 15 ++++ SU2_CFD/src/iteration_structure.cpp | 5 ++ .../src/numerics_fem_nonlinear_elasticity.cpp | 33 ++++---- SU2_CFD/src/solver_fem_elasticity.cpp | 75 +++++++++++++++++++ 9 files changed, 174 insertions(+), 22 deletions(-) diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index 2f2639c74a5..a03bdaeea8d 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -239,6 +239,11 @@ class CElement { */ void clearElement(void); + /*! + * \brief Restarts the values of stress in the element. + */ + void clearStress(void); + /*! * \brief Return the value of the diagonal term for the mass matrix, relating nodes a and b. * \param[in] nodeA - index of Node a. diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index d77deb710d7..13002211447 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2330,6 +2330,16 @@ class CSolver { */ virtual void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + + virtual void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -6641,6 +6651,17 @@ class CFEM_ElasticitySolver : public CSolver { */ void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief Compute the stress at the nodes for output purposes. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + + void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + + /*! * \brief Initializes the matrices/residuals in the solution process (avoids adding over previous values). * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 9a168e75e1d..a4ce1fdda0f 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -635,6 +635,8 @@ inline void CSolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_co inline void CSolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index d6118357611..b0b92f11ce1 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1383,16 +1383,27 @@ class CVariable { /*! * \brief A virtual member. - */ - virtual double **GetStress(void); - + virtual void SetStress_FEM(unsigned short iVar, double val_stress); + + /*! + * \brief A virtual member. + */ + virtual void AddStress_FEM(unsigned short iVar, double val_stress); + /*! * \brief A virtual member. */ virtual double *GetStress_FEM(void); + /*! + * \brief A virtual member. + + */ + virtual double **GetStress(void); + + /*! * \brief A virtual member. */ @@ -2540,6 +2551,21 @@ class CFEM_ElasVariable : public CVariable { */ double *GetStress_FEM(void); + /*! + * \brief Set the value of the stress at the node + * \param[in] iVar - index of the stress term + * \param[in] val_stress - value of the stress + */ + void SetStress_FEM(unsigned short iVar, double val_stress); + + /*! + * \brief Add a certain value to the value of the stress at the node + * \param[in] iVar - index of the stress term + * \param[in] val_stress - value of the stress + */ + void AddStress_FEM(unsigned short iVar, double val_stress); + + /*! * \brief Add surface load to the residual term */ diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 9e9e8bdafe8..739594fba3a 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -49,6 +49,10 @@ inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, doubl inline double **CVariable::GetStress(void) { return NULL; } +inline void CVariable::SetStress_FEM(unsigned short iVar, double val_stress) { } + +inline void CVariable::AddStress_FEM(unsigned short iVar, double val_stress) { } + inline double *CVariable::GetStress_FEM(void) { return NULL; } inline void CVariable::SetVonMises_Stress(double val_stress) { } @@ -878,6 +882,10 @@ inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } +inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, double val_stress) { Stress[iVar] = val_stress; } + +inline void CFEM_ElasVariable::AddStress_FEM(unsigned short iVar, double val_stress) { Stress[iVar] += val_stress; } + inline double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(double *val_surfForce) { diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index d3c0ba9d332..9ac5f1a8e68 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -174,3 +174,18 @@ void CElement::clearElement(void){ } } +void CElement::clearStress(void){ + + unsigned short iNode, iStress, nStress; + + if (nDim == 2) nStress = 3; + else if (nDim == 3) nStress = 6; + + for(iNode = 0; iNode < nNodes; iNode++) { + for (iStress = 0; iStress < nStress; iStress++){ + NodalStress[iNode][iStress] = 0.0; + } + } + +} + diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 1b8080e6a35..f4c794368d5 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -776,6 +776,11 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai } + /*----------------- Compute averaged nodal stress ------------------------*/ + + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); + /*----------------- Update structural solver ----------------------*/ if (dynamic){ diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 2037d7474f6..5795042c0f4 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -543,13 +543,13 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ AuxMatrixKt[i] = 0.0; } - element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ - element->ComputeGrad_Linear(); /*--- Check if we can take this out... so we don't have to do it twice ---*/ + element->clearStress(); + element->ComputeGrad_Linear(); nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); - /*--- Full integration of the nodal stress ---*/ + /*--- Computation of the deformation gradient ---*/ for (iGauss = 0; iGauss < nGauss; iGauss++){ @@ -614,22 +614,17 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ Compute_Stress_Tensor(); - -// for (iNode = 0; iNode < nNode; iNode++){ -// -// /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ -// /*--- and add it to the element structure to be retrieved from the solver ---*/ -// -// for (i = 0; i < nDim; i++){ -// KAux_t_a[i] = 0.0; -// for (j = 0; j < nDim; j++){ -// KAux_t_a[i] += Weight * Stress_Tensor[i][j] * GradNi_Curr_Mat[iNode][j] * Jac_x; -// } -// } -// -// element->Add_Kt_a(KAux_t_a, iNode); -// -// } + double val_Stress; + for (iNode = 0; iNode < nNode; iNode++){ + element->Add_NodalStress(Stress_Tensor[0][0] * element->GetNi_Extrap(iNode, iGauss), iNode, 0); + element->Add_NodalStress(Stress_Tensor[1][1] * element->GetNi_Extrap(iNode, iGauss), iNode, 1); + element->Add_NodalStress(Stress_Tensor[0][1] * element->GetNi_Extrap(iNode, iGauss), iNode, 2); + if (nDim == 3){ + element->Add_NodalStress(Stress_Tensor[2][2] * element->GetNi_Extrap(iNode, iGauss), iNode, 3); + element->Add_NodalStress(Stress_Tensor[0][2] * element->GetNi_Extrap(iNode, iGauss), iNode, 4); + element->Add_NodalStress(Stress_Tensor[1][2] * element->GetNi_Extrap(iNode, iGauss), iNode, 5); + } + } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index b495b50e0de..2f35c1a0e48 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -703,6 +703,81 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver } +void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + + unsigned long iPoint, iElem, iVar, jVar; + unsigned short iNode, iDim, iStress; + unsigned short nNodes, nStress; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + double val_Coord, val_Sol; + int EL_KIND; + + if (nDim == 2) nStress = 3; + else if (nDim == 3) nStress = 6; + + double *StressCheck = NULL; + unsigned short NelNodes; + + /*--- Restart stress to avoid adding results from previous time steps ---*/ + +// for (iNode = 0; iNode < NelNodes; iNode++){ +// +// for (iStress = 0; iStress < nStress; iStress++){ +// node[indexNode[iNode]]->AddStress_FEM(iStress, +// (element_container[EL_KIND]->Get_NodalStress(iNode, iStress) / +// geometry->node[indexNode[iNode]]->GetnElem()) ); +// } +// +// } + + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + } + } + + numerics->Compute_Averaged_NodalStress(element_container[EL_KIND]); + + NelNodes = element_container[EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + for (iStress = 0; iStress < nStress; iStress++){ + node[indexNode[iNode]]->AddStress_FEM(iStress, + (element_container[EL_KIND]->Get_NodalStress(iNode, iStress) / + geometry->node[indexNode[iNode]]->GetnElem()) ); + } + + } + + } + +// for (iDim = 0; iDim < nDim; iDim++) { +// val_Coord = geometry->node[0]->GetCoord(iDim); +// val_Sol = node[0]->GetSolution(iDim) + val_Coord; +// } + +} + void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } From a8e6806e33afa421fe215dcbfe837e8a132f6f2c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 30 Jul 2015 18:52:55 +0100 Subject: [PATCH 040/269] FEM: Stress output computation. --- Common/src/geometry_structure.cpp | 6 +- SU2_CFD/include/numerics_structure.hpp | 2 + SU2_CFD/src/iteration_structure.cpp | 4 +- .../src/numerics_fem_linear_elasticity.cpp | 116 ++++++++++++++++++ .../src/numerics_fem_nonlinear_elasticity.cpp | 9 -- SU2_CFD/src/solver_fem_elasticity.cpp | 16 +-- 6 files changed, 129 insertions(+), 24 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 2cf56032048..32684e240b3 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -6568,9 +6568,11 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } boundary_marker_count++; } - if ((boundary_marker_count == nMarker) && (fsi)) break; + if ((boundary_marker_count == nMarker)) break; } - + } + + while (getline (mesh_file, text_line)) { /*--- Read periodic transformation info (center, rotation, translation) ---*/ position = text_line.find ("NPERIODIC=",0); diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 576b69fabda..bc83474c62a 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -4469,6 +4469,8 @@ class CFEM_Elasticity : public CNumerics { */ class CFEM_LinearElasticity : public CFEM_Elasticity { + double **nodalDisplacement; + public: /*! diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index f4c794368d5..87f672de518 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -793,8 +793,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai Physical_dt = config_container[iZone]->GetDelta_DynTime(); Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) - integration_container[iZone][FLOW_SOL]->SetConvergence(true); +// if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) +// integration_container[iZone][FEA_SOL]->SetConvergence(true); } diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index 45b65e95ceb..2a6faf49985 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -33,6 +33,17 @@ CFEM_LinearElasticity::CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CFEM_Elasticity(val_nDim, val_nVar, config) { + unsigned short i; + + if (nDim == 2){ + nodalDisplacement = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + for (i = 0; i < 4; i++) nodalDisplacement[i] = new double[nDim]; + } + else if (nDim == 3){ + nodalDisplacement = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + for (i = 0; i < 8; i++) nodalDisplacement[i] = new double[nDim]; + } + /*--- If it is linear elasticity, D is constant along the calculations ---*/ @@ -191,4 +202,109 @@ void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ + unsigned short i, j, k; + unsigned short iGauss, nGauss; + unsigned short iNode, jNode, nNode; + unsigned short iDim; + unsigned short bDim; + + double Weight, Jac_X; + + /*--- Auxiliary vector ---*/ + double Strain[6], Stress[6]; + + /*--- Initialize auxiliary matrices ---*/ + + if (nDim == 2) bDim = 3; + else if (nDim == 3) bDim = 6; + + for (i = 0; i < bDim; i++){ + for (j = 0; j < nDim; j++){ + Ba_Mat[i][j] = 0.0; + } + } + + element->clearStress(); /*--- Clears the stress in the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_Linear(); + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + /*--- Retrieve the values of the gradients of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + for (iDim = 0; iDim < nDim; iDim++){ + GradNi_Ref_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + nodalDisplacement[iNode][iDim] = element->GetCurr_Coord(iNode, iDim) - element->GetRef_Coord(iNode, iDim); + } + } + + for (i = 0; i < bDim; i++){ + Strain[i] = 0.0; + } + + for (iNode = 0; iNode < nNode; iNode++){ + + /*--- Set matrix B ---*/ + if (nDim == 2){ + Ba_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[2][0] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[2][1] = GradNi_Ref_Mat[iNode][0]; + } + else if (nDim ==3){ + Ba_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[2][2] = GradNi_Ref_Mat[iNode][2]; + Ba_Mat[3][0] = GradNi_Ref_Mat[iNode][1]; + Ba_Mat[3][1] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[4][0] = GradNi_Ref_Mat[iNode][2]; + Ba_Mat[4][2] = GradNi_Ref_Mat[iNode][0]; + Ba_Mat[5][1] = GradNi_Ref_Mat[iNode][2]; + Ba_Mat[5][2] = GradNi_Ref_Mat[iNode][1]; + } + + /*--- Compute the Strain Vector as B*u ---*/ + + for (i = 0; i < bDim; i++){ + for (j = 0; j < nDim; j++){ + Strain[i] += Ba_Mat[i][j]*nodalDisplacement[iNode][j]; + } + } + + } + + /*--- Compute the Stress Vector as D*epsilon ---*/ + + for (i = 0; i < bDim; i++){ + Stress[i] = 0.0; + for (j = 0; j < bDim; j++){ + Stress[i] += D_Mat[i][j]*Strain[j]; + } + } + + for (iNode = 0; iNode < nNode; iNode++){ + /*--- If nDim is 3 and we compute it this way, the 3rd component is the Szz, while in the ---*/ + /*--- output it is the 4th component for practical reasons ---*/ + if (nDim == 2){ + element->Add_NodalStress(Stress[0] * element->GetNi_Extrap(iNode, iGauss), iNode, 0); + element->Add_NodalStress(Stress[1] * element->GetNi_Extrap(iNode, iGauss), iNode, 1); + element->Add_NodalStress(Stress[2] * element->GetNi_Extrap(iNode, iGauss), iNode, 2); + } + else if (nDim == 3){ + element->Add_NodalStress(Stress[0] * element->GetNi_Extrap(iNode, iGauss), iNode, 0); + element->Add_NodalStress(Stress[1] * element->GetNi_Extrap(iNode, iGauss), iNode, 1); + element->Add_NodalStress(Stress[3] * element->GetNi_Extrap(iNode, iGauss), iNode, 2); + element->Add_NodalStress(Stress[2] * element->GetNi_Extrap(iNode, iGauss), iNode, 3); + element->Add_NodalStress(Stress[4] * element->GetNi_Extrap(iNode, iGauss), iNode, 4); + element->Add_NodalStress(Stress[5] * element->GetNi_Extrap(iNode, iGauss), iNode, 5); + } + } + + + + } + + } diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 5795042c0f4..ba000c81669 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -535,14 +535,6 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ double Weight, Jac_X, Jac_x; - double AuxMatrixKt[3]; - - /*--- Initialize auxiliary matrices ---*/ - - for (i = 0; i < 3; i++){ - AuxMatrixKt[i] = 0.0; - } - element->clearStress(); element->ComputeGrad_Linear(); @@ -614,7 +606,6 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ Compute_Stress_Tensor(); - double val_Stress; for (iNode = 0; iNode < nNode; iNode++){ element->Add_NodalStress(Stress_Tensor[0][0] * element->GetNi_Extrap(iNode, iGauss), iNode, 0); element->Add_NodalStress(Stress_Tensor[1][1] * element->GetNi_Extrap(iNode, iGauss), iNode, 1); diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 2f35c1a0e48..80be106394d 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -715,21 +715,15 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s if (nDim == 2) nStress = 3; else if (nDim == 3) nStress = 6; - double *StressCheck = NULL; unsigned short NelNodes; /*--- Restart stress to avoid adding results from previous time steps ---*/ -// for (iNode = 0; iNode < NelNodes; iNode++){ -// -// for (iStress = 0; iStress < nStress; iStress++){ -// node[indexNode[iNode]]->AddStress_FEM(iStress, -// (element_container[EL_KIND]->Get_NodalStress(iNode, iStress) / -// geometry->node[indexNode[iNode]]->GetnElem()) ); -// } -// -// } - + for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (iStress = 0; iStress < nStress; iStress++){ + node[iPoint]->SetStress_FEM(iStress, 0.0); + } + } /*--- Loops over all the elements ---*/ From 359a824dbb9c0c1c7219671a7028004a318b4300 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 31 Jul 2015 18:43:01 +0100 Subject: [PATCH 041/269] FEM: added convergence criteria. --- Common/include/config_structure.hpp | 21 +++ Common/include/config_structure.inl | 7 + Common/src/config_structure.cpp | 6 + SU2_CFD/include/integration_structure.hpp | 11 ++ SU2_CFD/include/solver_structure.hpp | 36 ++++- SU2_CFD/include/solver_structure.inl | 6 + SU2_CFD/src/integration_structure.cpp | 46 ++++++ SU2_CFD/src/integration_time.cpp | 3 +- SU2_CFD/src/solver_fem_elasticity.cpp | 168 +++++++++++++++++----- 9 files changed, 264 insertions(+), 40 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index dca5aa8ca64..99ca53821f8 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -65,6 +65,9 @@ class CConfig { double MinLogResidual; /*!< \brief Minimum value of the log residual. */ double OrderMagResidualFSI; /*!< \brief Order of magnitude reduction. */ double MinLogResidualFSI; /*!< \brief Minimum value of the log residual. */ + double Res_FEM_UTOL; /*!< \brief UTOL criteria for structural FEM. */ + double Res_FEM_RTOL; /*!< \brief RTOL criteria for structural FEM. */ + double Res_FEM_ETOL; /*!< \brief ETOL criteria for structural FEM. */ double EA_ScaleFactor; /*!< \brief Equivalent Area scaling factor */ double* EA_IntLimit; /*!< \brief Integration limits of the Equivalent Area computation */ double AdjointLimit; /*!< \brief Adjoint variable limit */ @@ -4613,6 +4616,24 @@ class CConfig { * \return Value of the minimum residual value (log10 scale). */ double GetMinLogResidualFSI(void); + + /*! + * \brief Value of the displacement tolerance UTOL for FEM structural analysis (log10 scale). + * \return Value of Res_FEM_UTOL (log10 scale). + */ + double GetResidual_FEM_UTOL(void); + + /*! + * \brief Value of the displacement tolerance UTOL for FEM structural analysis (log10 scale). + * \return Value of Res_FEM_UTOL (log10 scale). + */ + double GetResidual_FEM_RTOL(void); + + /*! + * \brief Value of the displacement tolerance UTOL for FEM structural analysis (log10 scale). + * \return Value of Res_FEM_UTOL (log10 scale). + */ + double GetResidual_FEM_ETOL(void); /*! * \brief Value of the damping factor for the engine inlet bc. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 88737a11112..630ff831d39 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1243,3 +1243,10 @@ inline double CConfig::GetOrderMagResidualFSI(void) { return OrderMagResidualFSI inline double CConfig::GetMinLogResidualFSI(void) { return MinLogResidualFSI; } +inline double CConfig::GetResidual_FEM_UTOL(void) { return Res_FEM_UTOL; } + +inline double CConfig::GetResidual_FEM_RTOL(void) { return Res_FEM_RTOL; } + +inline double CConfig::GetResidual_FEM_ETOL(void) { return Res_FEM_ETOL; } + + diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 1e2541b859b..e868c89306a 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -633,6 +633,12 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addDoubleOption("RESIDUAL_REDUCTION_FSI", OrderMagResidualFSI, 3.0); /* DESCRIPTION: Min value of the residual (log10 of the residual) */ addDoubleOption("RESIDUAL_MINVAL_FSI", MinLogResidualFSI, -5.0); + /* DESCRIPTION: FEM: UTOL = norm(Delta_U(k)) / norm(U(k)) */ + addDoubleOption("RESIDUAL_FEM_UTOL", Res_FEM_UTOL, -9.0); + /* DESCRIPTION: FEM: RTOL = norm(Residual(k)) / norm(Residual(0)) */ + addDoubleOption("RESIDUAL_FEM_RTOL", Res_FEM_RTOL, -9.0); + /* DESCRIPTION: FEM: ETOL = Delta_U(k) * Residual(k) / Delta_U(0) * Residual(0) */ + addDoubleOption("RESIDUAL_FEM_ETOL", Res_FEM_ETOL, -9.0); /* DESCRIPTION: Flow functional for the Residual criteria */ addEnumOption("RESIDUAL_FUNC_FLOW", Residual_Func_Flow, Residual_Map, RHO_RESIDUAL); /* DESCRIPTION: Iteration number to begin convergence monitoring */ diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index 1e27be83b9a..1efb7588448 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -150,6 +150,17 @@ class CIntegration { unsigned long Iteration, double monitor, unsigned short iMesh); /*! + * \brief Do the convergence analysis to determine if the structural FEM analysis has converged. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] solver - Solution of the problem + * \param[in] Iteration - Current iteration. + * \param[in] monitor - Objective function that is use to study its convergence. + */ + void Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *config, CSolver *solver, unsigned long iFSIIter); + + + /*! * \brief Do the convergence analysis to determine if the FSI problem has converged on the structural side. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 13002211447..0b4fb538ca4 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -321,6 +321,13 @@ class CSolver { * \return Value of the biggest residual for the variable in the position val_var. */ double GetRes_Max(unsigned short val_var); + + /*! + * \brief Get the residual for FEM structural analysis. + * \param[in] val_var - Index of the variable. + * \return Value of the residual for the variable in the position val_var. + */ + virtual double GetRes_FEM(unsigned short val_var); /*! * \brief Get the maximal residual, this is useful for the convergence history. @@ -980,6 +987,14 @@ class CSolver { * \param[in] config - Definition of the particular problem. */ virtual void ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config); /*! * \brief A virtual member. @@ -6568,6 +6583,9 @@ class CFEM_ElasticitySolver : public CSolver { double a_dt[8]; /*!< \brief Integration constants. */ + double Conv_Ref[3]; /*!< \brief Reference values for convergence check: DTOL, RTOL, ETOL */ + double Conv_Check[3]; /*!< \brief Current values for convergence check: DTOL, RTOL, ETOL */ + CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix. */ CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ @@ -6763,13 +6781,21 @@ class CFEM_ElasticitySolver : public CSolver { void ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); /*! - * \brief Update the solution using an implicit Newmark solver. + * \brief Iterate using an implicit Newmark solver. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. * \param[in] config - Definition of the particular problem. */ void ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! + * \brief Update the solution using an implicit Newmark solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief Postprocessing. * \param[in] geometry - Geometrical definition of the problem. @@ -6788,6 +6814,14 @@ class CFEM_ElasticitySolver : public CSolver { */ void Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! + * \brief Get the residual for FEM structural analysis. + * \param[in] val_var - Index of the variable. + * \return Value of the residual for the variable in the position val_var. + */ + double GetRes_FEM(unsigned short val_var); + + }; /*! diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index a4ce1fdda0f..9eefc214ae3 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -567,6 +567,8 @@ inline void CSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solv inline void CSolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } +inline void CSolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + inline void CSolver::Compute_Residual(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { } @@ -589,6 +591,8 @@ inline void CSolver::AddRes_Max(unsigned short val_var, double val_residual, uns inline double CSolver::GetRes_Max(unsigned short val_var) { return Residual_Max[val_var]; } +inline double CSolver::GetRes_FEM(unsigned short val_var) { } + inline unsigned long CSolver::GetPoint_Max(unsigned short val_var) { return Point_Max[val_var]; } inline double* CSolver::GetPoint_Max_Coord(unsigned short val_var) { return Point_Max_Coord[val_var]; } @@ -926,6 +930,8 @@ inline void CFEASolver::SetFSI_ConvValue(unsigned short val_index, double val_cr inline double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } +inline double CFEM_ElasticitySolver::GetRes_FEM(unsigned short val_var) { return Conv_Check[val_var]; } + inline double CWaveSolver::GetTotal_CWave() { return Total_CWave; } inline double CHeatSolver::GetTotal_CHeat() { return Total_CHeat; } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 00a3268e309..5c40fabdf05 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -419,6 +419,22 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co solver_container[MainSolver]->Solve_System(geometry, solver_container, config); + /*--- Update solution ---*/ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + solver_container[MainSolver]->ImplicitNewmark_Update(geometry, solver_container, config); + break; + case (NEWMARK_IMPLICIT): + solver_container[MainSolver]->ImplicitNewmark_Update(geometry, solver_container, config); + break; + case (GA_IMPLICIT): + solver_container[MainSolver]->ImplicitNewmark_Update(geometry, solver_container, config); + break; + } + + + /*--- Reinforce ESSENTIAL BOUNDARY CONDITIONS: avoids accumulation of numerical error ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) @@ -574,6 +590,7 @@ void CIntegration::Convergence_Monitoring(CGeometry *geometry, CConfig *config, } + void CIntegration::SetDualTime_Solver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh) { unsigned long iPoint; @@ -713,6 +730,35 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, } +void CIntegration::Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *config, CSolver *solver, unsigned long iFSIIter) { + + double Reference_UTOL, Reference_RTOL, Reference_ETOL; + double Residual_UTOL, Residual_RTOL, Residual_ETOL; + + bool Already_Converged = Convergence; + + Reference_UTOL = config->GetResidual_FEM_UTOL(); + Reference_RTOL = config->GetResidual_FEM_RTOL(); + Reference_ETOL = config->GetResidual_FEM_ETOL(); + + Residual_UTOL = log10(solver->GetRes_FEM(0)); + Residual_RTOL = log10(solver->GetRes_FEM(1)); + Residual_ETOL = log10(solver->GetRes_FEM(2)); + +// cout << "Reference - UTOL: " << Reference_UTOL << " ETOL: " << Reference_ETOL << " RTOL: " << Reference_RTOL << endl; +// cout << "Residual - UTOL: " << Residual_UTOL << " ETOL: " << Residual_ETOL << " RTOL: " << Residual_RTOL << endl; + + if ((Residual_UTOL <= Reference_UTOL) && + (Residual_ETOL <= Reference_ETOL) && + (Residual_RTOL <= Reference_RTOL)){ + Convergence = true; + } + + if (Already_Converged) Convergence = true; + + +} + void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig *fea_config, CSolver *fea_solver, unsigned long iFSIIter) { diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 9923bd697a5..12092312d65 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -1057,7 +1057,6 @@ void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSo monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); /*--- Convergence strategy ---*/ - Convergence_Monitoring(geometry[iZone][MESH_0], config[iZone], Iteration, monitor, MESH_0); - + Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 80be106394d..5f2c920c34a 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -902,34 +902,78 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver unsigned short iVar; unsigned long iPoint, total_index; - /*--- MPI solution ---*/ - - Set_MPI_Solution(geometry, config); + bool first_iter = (config->GetIntIter() == 0); + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - /*--- Compute the residual Ax-f ---*/ + double solNorm = 0.0, tempCheck[3]; - Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); + if (nonlinear_analysis){ - /*--- Set maximum residual to zero ---*/ + /*--- If the problem is nonlinear, we have 3 convergence criteria ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - SetRes_RMS(iVar, 0.0); - SetRes_Max(iVar, 0.0, 0); - } + /*--- UTOL = norm(Delta_U(k)) / norm(U(k)) --------------------------*/ + /*--- RTOL = norm(Residual(k)) / norm(Residual(0)) ------------------*/ + /*--- ETOL = Delta_U(k) * Residual(k) / Delta_U(0) * Residual(0) ----*/ - /*--- Compute the residual ---*/ + if (first_iter){ + Conv_Ref[0] = 1.0; // Position for the norm of the solution + Conv_Ref[1] = max(LinSysRes.norm(), EPS); // Position for the norm of the residual + Conv_Ref[2] = max(dotProd(LinSysSol, LinSysRes), EPS); // Position for the energy tolerance - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); - AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); + /*--- Make sure the computation runs at least 2 iterations ---*/ + Conv_Check[0] = 1.0; + Conv_Check[1] = 1.0; + Conv_Check[2] = 1.0; + } + else { + /*--- Compute the norm of the solution vector Uk ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (iVar = 0; iVar < nVar; iVar++){ + solNorm += node[iPoint]->GetSolution(iVar) * node[iPoint]->GetSolution(iVar); + } } + Conv_Ref[0] = max(sqrt(solNorm), EPS); // Norm of the solution vector + + Conv_Check[0] = LinSysSol.norm() / Conv_Ref[0]; // Norm of the delta-solution vector + Conv_Check[1] = LinSysRes.norm() / Conv_Ref[1]; // Norm of the residual + Conv_Check[2] = dotProd(LinSysSol, LinSysRes) / Conv_Ref[2]; // Position for the energy tolerance } - /*--- Compute the root mean square residual ---*/ + } + else{ + + /*--- If the problem is linear, the only check we do is the RMS of the displacements ---*/ + + /*--- Compute the residual Ax-f ---*/ + + Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); + + /*--- Set maximum residual to zero ---*/ + + for (iVar = 0; iVar < nVar; iVar++) { + SetRes_RMS(iVar, 0.0); + SetRes_Max(iVar, 0.0, 0); + } + + /*--- Compute the residual ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar+iVar; + AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); + AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); + } + } + + + /*--- MPI solution ---*/ - SetResidual_RMS(geometry, config); + Set_MPI_Solution(geometry, config); + + /*--- Compute the root mean square residual ---*/ + + SetResidual_RMS(geometry, config); + } } @@ -1182,16 +1226,83 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } -void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ +void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { unsigned short iVar; - unsigned long iPoint, total_index, IterLinSol; + unsigned long iPoint, total_index; bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. unsigned short iNode, jNode, jVar; + /*--- Update solution ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ + + if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + + if (dynamic){ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Acceleration component of the solution ---*/ + /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ + + + + Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - + node[iPoint]->GetSolution_time_n(iVar)) - + a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - + a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); + + } + + /*--- Set the acceleration in the node structure ---*/ + + node[iPoint]->SetSolution_Accel(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Velocity component of the solution ---*/ + /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ + + Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ + a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + + a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); + + } + + /*--- Set the velocity in the node structure ---*/ + + node[iPoint]->SetSolution_Vel(Solution); + + } + + } + + +} + +void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ + + unsigned long IterLinSol; + // double checkJacobian; // // ofstream myfile; @@ -1226,22 +1337,5 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); - /*--- Update solution ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Displacements component of the solution ---*/ - - /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ - - if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - } - - } } From 69a339534a79fad683b68ef86c187208cf0075da Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 3 Aug 2015 18:27:42 +0100 Subject: [PATCH 042/269] FEM: output and some bugs fixed. --- SU2_CFD/include/solver_structure.hpp | 15 ++ SU2_CFD/include/solver_structure.inl | 4 + SU2_CFD/include/variable_structure.hpp | 12 ++ SU2_CFD/include/variable_structure.inl | 4 + SU2_CFD/src/iteration_structure.cpp | 10 +- SU2_CFD/src/output_structure.cpp | 218 ++++++++++++++++------- SU2_CFD/src/solver_direct_elasticity.cpp | 26 +-- SU2_CFD/src/solver_fem_elasticity.cpp | 78 +++++++- 8 files changed, 281 insertions(+), 86 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 0b4fb538ca4..3bd5d048115 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6563,6 +6563,9 @@ class CFEASolver : public CSolver { class CFEM_ElasticitySolver : public CSolver { private: + double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ + /*!< We maintain the name to avoid defining a new function... */ + unsigned long nElement; unsigned short nMarker; @@ -6821,6 +6824,18 @@ class CFEM_ElasticitySolver : public CSolver { */ double GetRes_FEM(unsigned short val_var); + /*! + * \brief Provide the maximum Von Mises Stress for structural analysis. + * \return Value of the maximum Von Mises Stress. + */ + double GetTotal_CFEA(void); + + /*! + * \brief Set the value of the FEA coefficient. + * \param[in] val_cfea - Value of the FEA coefficient. + */ + void SetTotal_CFEA(double val_cfea); + }; diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 9eefc214ae3..c101323a401 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -932,6 +932,10 @@ inline double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI inline double CFEM_ElasticitySolver::GetRes_FEM(unsigned short val_var) { return Conv_Check[val_var]; } +inline double CFEM_ElasticitySolver::GetTotal_CFEA() { return Total_CFEA; } + +inline void CFEM_ElasticitySolver::SetTotal_CFEA(double cfea) { Total_CFEA = cfea; } + inline double CWaveSolver::GetTotal_CWave() { return Total_CWave; } inline double CHeatSolver::GetTotal_CHeat() { return Total_CHeat; } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index b0b92f11ce1..ab8634c68c2 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -2766,6 +2766,18 @@ class CFEM_ElasVariable : public CVariable { */ double *GetSolution_Pred_Old(void); + /*! + * \brief Set the value of the Von Mises stress. + * \param[in] val_stress - Value of the Von Mises stress. + */ + void SetVonMises_Stress(double val_stress); + + /*! + * \brief Get the value of the Von Mises stress. + * \return Value of the Von Mises stress. + */ + double GetVonMises_Stress(void); + }; diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 739594fba3a..04c4592dd86 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -977,6 +977,10 @@ inline double *CFEM_ElasVariable::GetSolution_Pred_Old(void){ return Solution_Pr inline double CFEM_ElasVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } +inline void CFEM_ElasVariable::SetVonMises_Stress(double val_stress) { VonMises_Stress = val_stress; } + +inline double CFEM_ElasVariable::GetVonMises_Stress(void) { return VonMises_Stress; } + inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] = val_traction; } inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] += val_traction; } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 87f672de518..518ccb91953 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -763,6 +763,10 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai for (iZone = 0; iZone < nZone; iZone++) { + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + config_container[iZone]->SetIntIter(IntIter); integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, @@ -791,10 +795,10 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Verify convergence criteria (based on total time) ---*/ - Physical_dt = config_container[iZone]->GetDelta_DynTime(); + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); Physical_t = (ExtIter+1)*Physical_dt; -// if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) -// integration_container[iZone][FEA_SOL]->SetConvergence(true); + if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) + integration_container[iZone][FEA_SOL]->SetConvergence(true); } diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index c69f742cfe8..79491a3016b 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -4061,6 +4061,7 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char free_surface_coeff[]= ",\"CFreeSurface\""; char wave_coeff[]= ",\"CWave\""; char fea_coeff[]= ",\"CFEA\""; + char fem_coeff[]= ",\"VM_Stress\""; char adj_coeff[]= ",\"Sens_Geo\",\"Sens_Mach\",\"Sens_AoA\",\"Sens_Press\",\"Sens_Temp\",\"Sens_AoS\""; char oneD_outputs[]= ",\"Avg_TotalPress\",\"Avg_Mach\",\"Avg_Temperature\",\"MassFlowRate\",\"FluxAvg_Pressure\",\"FluxAvg_Density\",\"FluxAvg_Velocity\",\"FluxAvg_Enthalpy\""; char Cp_inverse_design[]= ",\"Cp_Diff\""; @@ -4100,6 +4101,7 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char adj_levelset_resid[]= ",\"Res_AdjLevelSet\""; char wave_resid[]= ",\"Res_Wave[0]\",\"Res_Wave[1]\""; char fea_resid[]= ",\"Res_FEA\""; + char fem_resid[]= ",\"Res_FEM[0]\",\"Res_FEM[1]\",\"Res_FEM[2]\""; char heat_resid[]= ",\"Res_Heat\""; /*--- End of the header ---*/ @@ -4177,8 +4179,8 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { break; case FEM_ELASTICITY: - ConvHist_file[0] << begin << fea_coeff; - ConvHist_file[0] << fea_resid << end; + ConvHist_file[0] << begin << fem_coeff; + ConvHist_file[0] << fem_resid << end; break; } @@ -4244,8 +4246,8 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, char begin[1000], direct_coeff[1000], surface_coeff[1000], aeroelastic_coeff[1000], monitoring_coeff[10000], adjoint_coeff[1000], flow_resid[1000], adj_flow_resid[1000], turb_resid[1000], trans_resid[1000], adj_turb_resid[1000], resid_aux[1000], levelset_resid[1000], adj_levelset_resid[1000], wave_coeff[1000], - heat_coeff[1000], fea_coeff[1000], wave_resid[1000], heat_resid[1000], fea_resid[1000], end[1000], - oneD_outputs[1000], massflow_outputs[1000]; + heat_coeff[1000], fea_coeff[1000], fem_coeff[1000], wave_resid[1000], heat_resid[1000], fea_resid[1000], + fem_resid[1000], end[1000], oneD_outputs[1000], massflow_outputs[1000]; double dummy = 0.0, *Coord; unsigned short iVar, iMarker, iMarker_Monitoring; @@ -4277,13 +4279,16 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, bool wave = (config[val_iZone]->GetKind_Solver() == WAVE_EQUATION); bool heat = (config[val_iZone]->GetKind_Solver() == HEAT_EQUATION); bool fea = (config[val_iZone]->GetKind_Solver() == LINEAR_ELASTICITY); - bool fem = (config[val_iZone]->GetKind_Solver() == FEM_ELASTICITY); bool TNE2 = ((config[val_iZone]->GetKind_Solver() == TNE2_EULER) || (config[val_iZone]->GetKind_Solver() == TNE2_NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == ADJ_TNE2_EULER) || (config[val_iZone]->GetKind_Solver() == ADJ_TNE2_NAVIER_STOKES)); bool flow = (config[val_iZone]->GetKind_Solver() == EULER) || (config[val_iZone]->GetKind_Solver() == NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == RANS) || (config[val_iZone]->GetKind_Solver() == ADJ_EULER) || (config[val_iZone]->GetKind_Solver() == ADJ_NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == ADJ_RANS); + bool fem = (config[val_iZone]->GetKind_Solver() == FEM_ELASTICITY); // FEM structural solver. + bool linear_analysis = (config[val_iZone]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config[val_iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool output_per_surface = false; if (config[val_iZone]->GetnMarker_Monitoring() > 1) output_per_surface = true; @@ -4293,7 +4298,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, double Total_CLift = 0.0, Total_CDrag = 0.0, Total_CSideForce = 0.0, Total_CMx = 0.0, Total_CMy = 0.0, Total_CMz = 0.0, Total_CEff = 0.0, Total_CEquivArea = 0.0, Total_CNearFieldOF = 0.0, Total_CFx = 0.0, Total_CFy = 0.0, Total_CFz = 0.0, Total_CMerit = 0.0, Total_CT = 0.0, Total_CQ = 0.0, Total_CFreeSurface = 0.0, Total_CWave = 0.0, Total_CHeat = 0.0, Total_CpDiff = 0.0, Total_HeatFluxDiff = 0.0, - Total_CFEA = 0.0, Total_Heat = 0.0, Total_MaxHeat = 0.0, Total_Mdot = 0.0; + Total_CFEA = 0.0, Total_Heat = 0.0, Total_MaxHeat = 0.0, Total_Mdot = 0.0, Total_CFEM = 0.0; double OneD_AvgStagPress = 0.0, OneD_AvgMach = 0.0, OneD_AvgTemp = 0.0, OneD_MassFlowRate = 0.0, OneD_FluxAvgPress = 0.0, OneD_FluxAvgDensity = 0.0, OneD_FluxAvgVelocity = 0.0, OneD_FluxAvgEntalpy = 0.0; @@ -4313,6 +4318,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, *residual_adjlevelset = NULL; double *residual_wave = NULL; double *residual_fea = NULL; + double *residual_fem = NULL; double *residual_heat = NULL; /*--- Coefficients Monitored arrays ---*/ @@ -4332,7 +4338,8 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Initialize number of variables ---*/ unsigned short nVar_Flow = 0, nVar_LevelSet = 0, nVar_Turb = 0, nVar_Trans = 0, nVar_TNE2 = 0, nVar_Wave = 0, nVar_Heat = 0, nVar_FEA = 0, - nVar_AdjFlow = 0, nVar_AdjTNE2 = 0, nVar_AdjLevelSet = 0, nVar_AdjTurb = 0; + nVar_AdjFlow = 0, nVar_AdjTNE2 = 0, nVar_AdjLevelSet = 0, nVar_AdjTurb = 0, + nVar_FEM = 0; /*--- Direct problem variables ---*/ if (compressible) nVar_Flow = nDim+2; else nVar_Flow = nDim+1; @@ -4348,10 +4355,14 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (TNE2) nVar_TNE2 = config[val_iZone]->GetnSpecies()+nDim+2; if (wave) nVar_Wave = 2; if (fea) nVar_FEA = nDim; - if (fem) nVar_FEA = nDim; if (heat) nVar_Heat = 1; if (freesurface) nVar_LevelSet = 1; - + + if (fem) { + if (linear_analysis) nVar_FEM = nDim; + if (nonlinear_analysis) nVar_FEM = 3; + } + /*--- Adjoint problem variables ---*/ if (compressible) nVar_AdjFlow = nDim+2; else nVar_AdjFlow = nDim+1; if (turbulent) { @@ -4374,6 +4385,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, residual_wave = new double[nVar_Wave]; residual_fea = new double[nVar_FEA]; residual_heat = new double[nVar_Heat]; + residual_fem = new double[nVar_FEM]; residual_adjflow = new double[nVar_AdjFlow]; residual_adjturbulent = new double[nVar_AdjTurb]; @@ -4662,14 +4674,23 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, case FEM_ELASTICITY: - /*--- FEA coefficients ---*/ + /*--- FEM coefficients -- As of now, this is the Von Mises Stress ---*/ - Total_CFEA = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetTotal_CFEA(); + Total_CFEM = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetTotal_CFEA(); - /*--- Plasma Residuals ---*/ + /*--- Residuals: ---*/ + /*--- Linear analysis: RMS of the displacements in the nDim coordinates ---*/ + /*--- Nonlinear analysis: UTOL, RTOL and DTOL (defined in the Postprocessing function) ---*/ - for (iVar = 0; iVar < nVar_FEA; iVar++) { - residual_fea[iVar] = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetRes_RMS(iVar); + if (linear_analysis){ + for (iVar = 0; iVar < nVar_FEM; iVar++) { + residual_fem[iVar] = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetRes_RMS(iVar); + } + } + else if (nonlinear_analysis){ + for (iVar = 0; iVar < nVar_FEM; iVar++) { + residual_fem[iVar] = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetRes_FEM(iVar); + } } break; @@ -4685,13 +4706,37 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, bool In_DualTime_1 = (!DualTime_Iteration && Unsteady); bool In_DualTime_2 = (Unsteady && DualTime_Iteration && (iExtIter % config[val_iZone]->GetWrt_Con_Freq() == 0)); bool In_DualTime_3 = (Unsteady && !DualTime_Iteration && (iExtIter % config[val_iZone]->GetWrt_Con_Freq() == 0)); - + + /*--- Header frequency: analogy for dynamic structural analysis ---*/ + /*--- DualTime_Iteration is a bool we receive, which is true if it comes from FEM_StructuralIteration and false from SU2_CFD ---*/ + /*--- We maintain the name, as it is an input of the function ---*/ + /*--- TODO: The function GetWrt_Con_Freq_DualTime should be modified to be able to define different frequencies ---*/ + /*--- dynamic determines if the problem is, or not, time dependent ---*/ + bool dynamic = (config[val_iZone]->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool In_NoDynamic = (!DualTime_Iteration && (iExtIter % config[val_iZone]->GetWrt_Con_Freq() == 0)); + bool In_Dynamic_0 = (DualTime_Iteration && (iIntIter % config[val_iZone]->GetWrt_Con_Freq_DualTime() == 0)); + bool In_Dynamic_1 = (!DualTime_Iteration && nonlinear_analysis); + bool In_Dynamic_2 = (nonlinear_analysis && DualTime_Iteration && (iExtIter % config[val_iZone]->GetWrt_Con_Freq() == 0)); + bool In_Dynamic_3 = (nonlinear_analysis && !DualTime_Iteration && (iExtIter % config[val_iZone]->GetWrt_Con_Freq() == 0)); + bool write_heads; if (Unsteady) write_heads = (iIntIter == 0); else write_heads = (((iExtIter % (config[val_iZone]->GetWrt_Con_Freq()*40)) == 0)); - if ((In_NoDualTime || In_DualTime_0 || In_DualTime_1) && (In_NoDualTime || In_DualTime_2 || In_DualTime_3)) { + /*--- Analogous for dynamic problems (as of now I separate the problems, it may be worthy to do all together later on ---*/ + bool write_heads_FEM; + if (nonlinear_analysis) write_heads_FEM = (iIntIter == 0); + else write_heads_FEM = (((iExtIter % (config[val_iZone]->GetWrt_Con_Freq()*40)) == 0)); + +// cout << In_NoDynamic << " " << In_Dynamic_0 << " " << In_Dynamic_1 << " " << In_Dynamic_2 << " " << In_Dynamic_3 << endl; + + + if ( ((In_NoDualTime || In_DualTime_0 || In_DualTime_1) && (In_NoDualTime || In_DualTime_2 || In_DualTime_3)) || + (fem && ( (In_NoDynamic || In_Dynamic_0 || In_Dynamic_1) && (In_NoDynamic || In_Dynamic_2 || In_Dynamic_3))) + ){ +// cout << In_NoDynamic << " " << In_Dynamic_0 << " " << In_Dynamic_1 << " " << In_Dynamic_2 << " " << In_Dynamic_3 << endl; + /*--- Prepare the history file output, note that the dual time output don't write to the history file ---*/ if (!DualTime_Iteration) { @@ -4918,8 +4963,15 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, case FEM_ELASTICITY: - sprintf (direct_coeff, ", %12.10f", Total_CFEA); - sprintf (fea_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), dummy, dummy, dummy, dummy ); + sprintf (direct_coeff, ", %12.10f", Total_CFEM); + /*--- FEM residual ---*/ + if (nDim == 2) { + if (linear_analysis) sprintf (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), dummy, dummy, dummy); + if (nonlinear_analysis) sprintf (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), log10 (residual_fem[2]), dummy, dummy); + } + else { + sprintf (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), log10 (residual_fem[2]), dummy, dummy); + } break; @@ -4927,40 +4979,49 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, } /*--- Write the screen header---*/ - if ((write_heads) && !(!DualTime_Iteration && Unsteady)) { + if ( (!fem && ((write_heads) && !(!DualTime_Iteration && Unsteady))) || + (fem && ((write_heads_FEM) && !(!DualTime_Iteration && nonlinear_analysis))) + ){ - if (!Unsteady) { - switch (config[val_iZone]->GetKind_Solver()) { - case EULER : case NAVIER_STOKES: case RANS: - case ADJ_EULER : case ADJ_NAVIER_STOKES: case ADJ_RANS: - - cout << endl << "---------------------- Local Time Stepping Summary ----------------------" << endl; - - for (unsigned short iMesh = FinestMesh; iMesh <= config[val_iZone]->GetnMGLevels(); iMesh++) - cout << "MG level: "<< iMesh << " -> Min. DT: " << solver_container[val_iZone][iMesh][FLOW_SOL]->GetMin_Delta_Time()<< - ". Max. DT: " << solver_container[val_iZone][iMesh][FLOW_SOL]->GetMax_Delta_Time() << - ". CFL: " << config[val_iZone]->GetCFL(iMesh) << "." << endl; - - cout << "-------------------------------------------------------------------------" << endl; + if (!fem){ + if (!Unsteady) { + switch (config[val_iZone]->GetKind_Solver()) { + case EULER : case NAVIER_STOKES: case RANS: + case ADJ_EULER : case ADJ_NAVIER_STOKES: case ADJ_RANS: - break; + cout << endl << "---------------------- Local Time Stepping Summary ----------------------" << endl; - case TNE2_EULER: case TNE2_NAVIER_STOKES: - case ADJ_TNE2_EULER: case ADJ_TNE2_NAVIER_STOKES: - cout << endl << "Min Delta Time: " << solver_container[val_iZone][MESH_0][TNE2_SOL]->GetMin_Delta_Time()<< ". Max Delta Time: " << solver_container[val_iZone][MESH_0][TNE2_SOL]->GetMax_Delta_Time() << "."; - break; - } - } - else { - if (flow) { - cout << endl << "Min DT: " << solver_container[val_iZone][FinestMesh][FLOW_SOL]->GetMin_Delta_Time()<< - ".Max DT: " << solver_container[val_iZone][FinestMesh][FLOW_SOL]->GetMax_Delta_Time() << - ".Dual Time step: " << config[val_iZone]->GetDelta_UnstTimeND() << "."; - } - else { - cout << endl << "Dual Time step: " << config[val_iZone]->GetDelta_UnstTimeND() << "."; - } - } + for (unsigned short iMesh = FinestMesh; iMesh <= config[val_iZone]->GetnMGLevels(); iMesh++) + cout << "MG level: "<< iMesh << " -> Min. DT: " << solver_container[val_iZone][iMesh][FLOW_SOL]->GetMin_Delta_Time()<< + ". Max. DT: " << solver_container[val_iZone][iMesh][FLOW_SOL]->GetMax_Delta_Time() << + ". CFL: " << config[val_iZone]->GetCFL(iMesh) << "." << endl; + + cout << "-------------------------------------------------------------------------" << endl; + + break; + + case TNE2_EULER: case TNE2_NAVIER_STOKES: + case ADJ_TNE2_EULER: case ADJ_TNE2_NAVIER_STOKES: + cout << endl << "Min Delta Time: " << solver_container[val_iZone][MESH_0][TNE2_SOL]->GetMin_Delta_Time()<< ". Max Delta Time: " << solver_container[val_iZone][MESH_0][TNE2_SOL]->GetMax_Delta_Time() << "."; + break; + } + } + else { + if (flow) { + cout << endl << "Min DT: " << solver_container[val_iZone][FinestMesh][FLOW_SOL]->GetMin_Delta_Time()<< + ".Max DT: " << solver_container[val_iZone][FinestMesh][FLOW_SOL]->GetMax_Delta_Time() << + ".Dual Time step: " << config[val_iZone]->GetDelta_UnstTimeND() << "."; + } + else { + cout << endl << "Dual Time step: " << config[val_iZone]->GetDelta_UnstTimeND() << "."; + } + } + } + else if (fem){ + if (dynamic){ + cout << endl << "Simulation time: " << config[val_iZone]->GetCurrent_DynTime() << ". Time step: " << config[val_iZone]->GetDelta_DynTime() << "."; + } + } switch (config[val_iZone]->GetKind_Solver()) { case EULER : case NAVIER_STOKES: @@ -5106,12 +5167,17 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, break; case FEM_ELASTICITY : - if (!Unsteady) cout << endl << " Iter" << " Time(s)"; + if (!nonlinear_analysis) cout << endl << " Iter" << " Time(s)"; else cout << endl << " IntIter" << " ExtIter"; - if (nDim == 2) cout << " Res[Displx]" << " Res[Disply]" << " CFEM(Total)"<< endl; - if (nDim == 3) cout << " Res[Displx]" << " Res[Disply]" << " Res[Displz]" << " CFEM(Total)"<< endl; - break; + if (linear_analysis){ + if (nDim == 2) cout << " Res[Displx]" << " Res[Disply]" << " CFEM(Total)"<< endl; + if (nDim == 3) cout << " Res[Displx]" << " Res[Disply]" << " Res[Displz]" << " CFEM(Total)"<< endl; + } + else if (nonlinear_analysis){ + cout << " Res[UTOL]" << " Res[RTOL]" << " Res[ETOL]" << " CFEM(Total)"<< endl; + } + break; case ADJ_EULER : case ADJ_NAVIER_STOKES : @@ -5219,15 +5285,28 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout.precision(6); cout.setf(ios::fixed, ios::floatfield); - if (!Unsteady) { - cout.width(5); cout << iExtIter; - cout.width(11); cout << timeiter; - - } else { - cout.width(8); cout << iIntIter; - cout.width(8); cout << iExtIter; + if (!fem){ + if (!Unsteady) { + cout.width(5); cout << iExtIter; + cout.width(11); cout << timeiter; + + } else { + cout.width(8); cout << iIntIter; + cout.width(8); cout << iExtIter; + } + } + else if (fem){ + if (!nonlinear_analysis) { + cout.width(5); cout << iExtIter; + cout.width(11); cout << timeiter; + + } else { + cout.width(8); cout << iIntIter; + cout.width(8); cout << iExtIter; + } } + switch (config[val_iZone]->GetKind_Solver()) { case EULER : case NAVIER_STOKES: @@ -5420,18 +5499,26 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, case FEM_ELASTICITY: if (!DualTime_Iteration) { - ConvHist_file[0] << begin << fea_coeff << fea_resid << end; + ConvHist_file[0] << begin << fem_coeff << fem_resid << end; ConvHist_file[0].flush(); } cout.precision(6); cout.setf(ios::fixed, ios::floatfield); - cout.width(15); cout << log10(residual_fea[0]); - cout.width(15); cout << log10(residual_fea[1]); - if (nDim == 3) { cout.width(15); cout << log10(residual_fea[2]); } + if (linear_analysis){ + cout.width(15); cout << log10(residual_fem[0]); + cout.width(15); cout << log10(residual_fem[1]); + if (nDim == 3) { cout.width(15); cout << log10(residual_fem[2]); } + } + else if (nonlinear_analysis){ + cout.width(15); cout << log10(residual_fem[0]); + cout.width(15); cout << log10(residual_fem[1]); + cout.width(15); cout << log10(residual_fem[2]); + } + cout.precision(4); cout.setf(ios::scientific, ios::floatfield); - cout.width(14); cout << Total_CFEA; + cout.width(14); cout << Total_CFEM; cout << endl; break; @@ -5565,6 +5652,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, delete [] residual_levelset; delete [] residual_wave; delete [] residual_fea; + delete [] residual_fem; delete [] residual_heat; delete [] residual_adjflow; diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index b205fd93f80..763d04051bf 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2464,11 +2464,11 @@ void CFEASolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *f unsigned long nPoint, nDim; double *solDisp, *solVel, *solVel_tn, *valPred, *checkPred; - solDisp=new double [iDim]; - solVel=new double [iDim]; - solVel_tn=new double [iDim]; - valPred=new double [iDim]; - checkPred=new double [iDim]; +// solDisp=new double [iDim]; +// solVel=new double [iDim]; +// solVel_tn=new double [iDim]; +// valPred=new double [iDim]; +// checkPred=new double [iDim]; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -2528,10 +2528,10 @@ void CFEASolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fe WAitken=fea_config->GetAitkenStatRelax(); - dispPred =new double [iDim]; - dispPred_Old=new double [iDim]; - dispCalc =new double [iDim]; - dispCalc_Old=new double [iDim]; +// dispPred =new double [iDim]; +// dispPred_Old=new double [iDim]; +// dispCalc =new double [iDim]; +// dispCalc_Old=new double [iDim]; numAitk = 0.0; denAitk = 0.0; @@ -2631,8 +2631,8 @@ void CFEASolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_con double CurrentTime=fea_config->GetCurrent_DynTime(); double Static_Time=fea_config->GetStatic_Time(); - dispPred=new double [iDim]; - dispCalc=new double [iDim]; +// dispPred=new double [iDim]; +// dispCalc=new double [iDim]; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -2691,8 +2691,8 @@ void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_co unsigned long nPoint, nDim; double *valSolutionPred, *valSolution; - valSolutionPred=new double [iDim]; - valSolution=new double [iDim]; +// valSolutionPred=new double [iDim]; +// valSolution=new double [iDim]; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5f2c920c34a..ce1f5930728 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -38,6 +38,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { nPoint = 0; nPointDomain = 0; + Total_CFEA = 0.0; + element_container = NULL; node = NULL; @@ -92,6 +94,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi GradN_X = new double [nDim]; GradN_x = new double [nDim]; + Total_CFEA = 0.0; + nVar = nDim; /*--- Define some auxiliary vectors related to the residual ---*/ @@ -494,10 +498,12 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } } - numerics->Compute_Tangent_Matrix(element_container[EL_KIND]); + /*--- If incompressible, we compute the Mean Dilatation term first so the volume is already computed ---*/ if (incompressible) numerics->Compute_MeanDilatation_Term(element_container[EL_KIND]); + numerics->Compute_Tangent_Matrix(element_container[EL_KIND]); + NelNodes = element_container[EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ @@ -765,10 +771,72 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } -// for (iDim = 0; iDim < nDim; iDim++) { -// val_Coord = geometry->node[0]->GetCoord(iDim); -// val_Sol = node[0]->GetSolution(iDim) + val_Coord; -// } + /*--- Computation of Von Mises Stress ---*/ + + double *Stress; + double VonMises_Stress, MaxVonMises_Stress = 0.0; + double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; + + /* --- For the number of nodes in the mesh ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + + /* --- Get the stresses, added up from all the elements that connect to the node ---*/ + + Stress = node[iPoint]->GetStress_FEM(); + + + /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ + + if (geometry->GetnDim() == 2) { + + Sxx=Stress[0]; + Syy=Stress[1]; + Sxy=Stress[2]; + + S1=(Sxx+Syy)/2+sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); + S2=(Sxx+Syy)/2-sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); + + VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); + + } + else if (geometry->GetnDim() == 3) { + + Sxx = Stress[0]; + Syy = Stress[1]; + Szz = Stress[3]; + + Sxy = Stress[2]; + Sxz = Stress[4]; + Syz = Stress[5]; + + VonMises_Stress = sqrt(0.5*( pow(Sxx - Syy, 2.0) + + pow(Syy - Szz, 2.0) + + pow(Szz - Sxx, 2.0) + + 6.0*(Sxy*Sxy+Sxz*Sxz+Syz*Syz) + )); + + } + + node[iPoint]->SetVonMises_Stress(VonMises_Stress); + + /*--- Compute the maximum value of the Von Mises Stress ---*/ + + MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); + + } + + #ifdef HAVE_MPI + + /*--- Compute MaxVonMises_Stress using all the nodes ---*/ + + double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + MPI_Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + + #endif + + /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ + + Total_CFEA = MaxVonMises_Stress; } From 813ab3df8b48f62bd4b8bbdb2bfdb9d1461cb101 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 5 Aug 2015 11:38:23 -0400 Subject: [PATCH 043/269] runing preconf script for su2double replacement --- Common/include/dual_grid_structure.hpp | 8 ++-- Common/include/dual_grid_structure.inl | 8 ++-- Common/include/interpolation_structure.hpp | 10 ++--- Common/src/dual_grid_structure.cpp | 2 +- Common/src/interpolation_structure.cpp | 46 +++++++++++----------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 8f8215ecddb..3fba17562a1 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -1125,14 +1125,14 @@ class CVertex : public CDualGrid { * \param[in] iDonor - Index of the donor point. * \param[in] val - Value of the coefficent for point iDonor. */ - void SetDonorCoeff(unsigned short iDonor, double val); + void SetDonorCoeff(unsigned short iDonor, su2double val); /*! * \brief Get the coefficient value of a donor point. * \param[in] iDonor - Index of the donor point. * \return - Value of the coefficent for point iDonor. */ - double GetDonorCoeff(unsigned short iDonor); + su2double GetDonorCoeff(unsigned short iDonor); /*! * \brief Allocate memory based on how many donor points need to be stored. @@ -1144,13 +1144,13 @@ class CVertex : public CDualGrid { * \brief Get the rotation variation * \return - pointer to the vector defining the rotation */ - double *GetVarRot(void); + su2double *GetVarRot(void); /*! * \brief Set the rotation variation * \return - pointer to the vector defining the rotation */ - void SetVarRot(double* val); + void SetVarRot(su2double* val); }; diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 8b0adc2dc50..9464d426f37 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -342,19 +342,19 @@ inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long *val){ for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; } -inline void CVertex::SetDonorCoeff(unsigned short iDonor, double val){ Donor_Coeff[iDonor] = val; } +inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } inline unsigned long CVertex::GetDonorInfo(unsigned short iDonor, unsigned short it){ return Donor_Info[iDonor][it];} -inline double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} +inline su2double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} -inline double *CVertex::GetVarRot(void) {return VarRot;} +inline su2double *CVertex::GetVarRot(void) {return VarRot;} -inline void CVertex::SetVarRot(double* val) { +inline void CVertex::SetVarRot(su2double* val) { for (unsigned short iDim = 0; iDim < nDim; iDim++) VarRot[iDim] = val[iDim]; } diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index f469afac382..f30a99b5d1b 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -58,7 +58,7 @@ class CInterpolator { protected: unsigned int nZone; unsigned short nVar; - double ***Data; /*!\brief container for some data to be interpolated */ + su2double ***Data; /*!\brief container for some data to be interpolated */ public: CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ @@ -112,17 +112,17 @@ class CInterpolator { * \param[in] iPoint - point index * \param[in[ iDim - index of the data */ - double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); + su2double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); /*! * \brief Return the pointer to the Data vector at the specified zone and point. */ - double* GetData(unsigned int iZone, unsigned long iPoint); + su2double* GetData(unsigned int iZone, unsigned long iPoint); /*! * \brief Set the value of the Data at the specified zone, point, and index. */ - void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, double val); + void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val); @@ -187,6 +187,6 @@ class CConsistConserve : public CInterpolator { * \param[in] donor_elem - element index of the element to use for interpolation * \param[in[ nDonorPoints - number of donor points in the element. */ - void Isoparametric(double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2); + void Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2); }; diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 02b04531f42..63b9219d4f6 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -517,7 +517,7 @@ void CVertex::AddNormal(su2double *val_face_normal) { void CVertex::Allocate_DonorInfo(void){ Donor_Info = new unsigned long*[nDonor_Points]; - Donor_Coeff = new double[nDonor_Points]; + Donor_Coeff = new su2double[nDonor_Points]; for (unsigned short iDonor=0; iDonor0){ /*--- Initialize Data vectors to 0 ---*/ - Data = new double**[nZone]; + Data = new su2double**[nZone]; for (it=0; itGetnPoint()]; + Data[iZone] = new su2double*[Geometry[iZone][MESH_0]->GetnPoint()]; for (unsigned long iPoint =0; iPoint< Geometry[iZone][MESH_0]->GetnPoint(); iPoint++){ - Data[iZone][iPoint] = new double[nVar]; + Data[iZone][iPoint] = new su2double[nVar]; for (unsigned short iVar=0; iVarGetnDim(); /*--- Loop over vertices in the interface marker (zone 0) ---*/ for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ @@ -168,21 +168,21 @@ void CInterpolator::Interpolate_Deformation(unsigned int iZone, CConfig **config } -double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ +su2double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ if (Data !=NULL) return Data[iZone][iPoint][iVar]; else return 0.0; // Check this. } -double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ +su2double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ if (Data !=NULL) return Data[iZone][iPoint]; else return NULL; } -void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, double val){ +void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val){ if (Data !=NULL) Data[iZone][iPoint][iVar]=val; else @@ -207,7 +207,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex,*nn; unsigned short iMarker, iDim, jMarker; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; - double distance = 0.0, last_distance=-1.0; + su2double distance = 0.0, last_distance=-1.0; unsigned short int donorindex = 0; unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; @@ -326,11 +326,11 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned short iMarker, iDim, jMarker, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); unsigned short iDonor, jDonor; - double distance = 0.0, last_distance=-1.0, *Coord; - double* myCoeff; - double* myCoefftemp; - double* donorCoord; - double coeff; + su2double distance = 0.0, last_distance=-1.0, *Coord; + su2double* myCoeff; + su2double* myCoefftemp; + su2double* donorCoord; + su2double coeff; long donor_elem=0, temp_donor; unsigned short int donorindex = 0; @@ -422,7 +422,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- use Isoparametric rep. to find distance to projected point on the surface ---*/ //delete[] myCoefftemp; - myCoefftemp = new double[nNodes]; + myCoefftemp = new su2double[nNodes]; Isoparametric( myCoefftemp, iZone_0, markFlow, iVertex, nDim, iZone_1, markFEA, temp_donor, nNodes, temp2); /*--- If closer than last closest projected point, save. ---*/ Coord = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(); @@ -439,7 +439,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ if ((last_distance==-1) or (distancevertex[markFlow][iVertex]->SetDonorElem(temp_donor); @@ -513,21 +513,21 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -void CConsistConserve::Isoparametric(double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2){ +void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2){ int i,j,k; int n0 = nDim+1, n; - double tmp, tmp2, distance; + su2double tmp, tmp2, distance; unsigned long jVertex, inode; /*--- Number of neighbor points to interpolate between ---*/ unsigned int m0 = nDonorPoints, m; - double x[m0], x_tmp[m0]; + su2double x[m0], x_tmp[m0]; /*--- Q R matrix system ---*/ - double Q[m0*m0], R[m0*m0], A[n0*m0]; + su2double Q[m0*m0], R[m0*m0], A[n0*m0]; bool test[n0]; bool testi[n0]; - double x2[n0]; + su2double x2[n0]; int offset; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; @@ -589,7 +589,7 @@ void CConsistConserve::Isoparametric(double* isoparams, unsigned int iZone_0, un } if (!test[i]) n--; } - double A2[n*m]; + su2double A2[n*m]; j=0; From 6c4af3c689cec927e6a93974bdccf1091a7bc0bb Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 5 Aug 2015 18:24:45 +0100 Subject: [PATCH 044/269] FEM: Incompressible material model. --- SU2_CFD/include/element_structure.hpp | 13 ++ SU2_CFD/include/element_structure.inl | 4 + SU2_CFD/include/numerics_structure.hpp | 20 +- SU2_CFD/include/numerics_structure.inl | 12 +- SU2_CFD/src/element_structure.cpp | 10 + .../src/numerics_fem_nonlinear_elasticity.cpp | 171 +++++++++++++----- SU2_CFD/src/solver_fem_elasticity.cpp | 14 ++ 7 files changed, 186 insertions(+), 58 deletions(-) diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index a03bdaeea8d..f23d0bfdf91 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -73,6 +73,7 @@ class CElement { double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ double **Kt_a; /*!< \brief Structure for the nodal stress term for the residual computation. */ + double el_Pressure; /*!< \brief Pressure in the element */ public: /*! @@ -126,6 +127,12 @@ class CElement { */ void SetCurr_Coord(double val_CoordCurr, unsigned short iNode, unsigned short iDim); + /*! + * \brief Set the value of the pressure in the element for incompressible materials. + * \param[in] val_ElPressure - Value of the pressure. + */ + void SetElement_Pressure(double val_ElPressure); + /*! * \brief Set the value of the coordinate of the nodes in the reference configuration. * \param[in] val_CoordRef - Value of the coordinate. @@ -186,6 +193,12 @@ class CElement { */ double GetJ_x_P(unsigned short iGauss); + /*! + * \brief Retrieve the value of the pressure in the element for incompressible materials. + * \param[out] Value of the pressure. + */ + double GetElement_Pressure(void); + /*! * \brief Add the value of the diagonal term for the mass matrix. * \param[in] nodeA - index of Node a. diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl index 33c66fef770..8a7bae6d14e 100644 --- a/SU2_CFD/include/element_structure.inl +++ b/SU2_CFD/include/element_structure.inl @@ -43,6 +43,8 @@ inline void CElement::SetRef_Coord(double val_CoordRef, unsigned short iNode, un inline void CElement::SetCurr_Coord(double val_CoordCurr, unsigned short iNode, unsigned short iDim) { CurrentCoord[iNode][iDim] = val_CoordCurr;} +inline void CElement::SetElement_Pressure(double val_ElPressure) {el_Pressure = val_ElPressure;} + inline double CElement::GetRef_Coord(unsigned short iNode, unsigned short iDim) { return RefCoord[iNode][iDim];} inline double CElement::GetCurr_Coord(unsigned short iNode, unsigned short iDim) { return CurrentCoord[iNode][iDim];} @@ -57,6 +59,8 @@ inline double CElement::GetJ_X_P(unsigned short iGauss) {return GaussPointP[iGau inline double CElement::GetJ_x_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_x();} +inline double CElement::GetElement_Pressure(void) {return el_Pressure;} + inline double CElement::Get_Mab(unsigned short nodeA, unsigned short nodeB) { return Mab[nodeA][nodeB]; } inline double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ return Kab[nodeA][nodeB];} diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index bc83474c62a..72598287a68 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1670,13 +1670,13 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \brief A virtual member to compute the constitutive matrix in an element for structural problems * \param[in] config - Definition of the particular problem. */ - virtual void Compute_Constitutive_Matrix(void); + virtual void Compute_Constitutive_Matrix(CElement *element_container); /*! * \brief A virtual member to compute the stress tensor in an element for structural problems * \param[in] config - Definition of the particular problem. */ - virtual void Compute_Stress_Tensor(void); + virtual void Compute_Stress_Tensor(CElement *element_container); /*! * \brief A virtual member to compute the mass matrix @@ -4454,9 +4454,9 @@ class CFEM_Elasticity : public CNumerics { virtual void Compute_Averaged_NodalStress(CElement *element_container); - virtual void Compute_Constitutive_Matrix(void); + virtual void Compute_Constitutive_Matrix(CElement *element_container); - virtual void Compute_Stress_Tensor(void); + virtual void Compute_Stress_Tensor(CElement *element_container); }; @@ -4544,9 +4544,9 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { void Compute_Averaged_NodalStress(CElement *element_container); - virtual void Compute_Constitutive_Matrix(void); + virtual void Compute_Constitutive_Matrix(CElement *element_container); - virtual void Compute_Stress_Tensor(void); + virtual void Compute_Stress_Tensor(CElement *element_container); }; @@ -4575,9 +4575,9 @@ class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { */ ~CFEM_NeoHookean_Comp(void); - void Compute_Constitutive_Matrix(void); + void Compute_Constitutive_Matrix(CElement *element_container); - void Compute_Stress_Tensor(void); + void Compute_Stress_Tensor(CElement *element_container); }; @@ -4605,9 +4605,9 @@ class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { */ ~CFEM_NeoHookean_Incomp(void); - void Compute_Constitutive_Matrix(void); + void Compute_Constitutive_Matrix(CElement *element_container); - void Compute_Stress_Tensor(void); + void Compute_Stress_Tensor(CElement *element_container); }; diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 05ff31ca392..12fd92343a2 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -77,19 +77,19 @@ inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container) inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container){ } -inline void CNumerics::Compute_Constitutive_Matrix(void){ } +inline void CNumerics::Compute_Constitutive_Matrix(CElement *element_container){ } -inline void CFEM_Elasticity::Compute_Constitutive_Matrix(void){ } +inline void CFEM_Elasticity::Compute_Constitutive_Matrix(CElement *element_container){ } -inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(void){ } +inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(CElement *element_container){ } -inline void CNumerics::Compute_Stress_Tensor(void){ } +inline void CNumerics::Compute_Stress_Tensor(CElement *element_container){ } -inline void CFEM_Elasticity::Compute_Stress_Tensor(void){ } +inline void CFEM_Elasticity::Compute_Stress_Tensor(CElement *element_container){ } //inline void CFEM_LinearElasticity::Compute_Stress_Tensor(void){ } -inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(void){ } +inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(CElement *element_container){ } inline void CNumerics::ComputeResidual(double *val_residual, CConfig *config) { } diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index 9ac5f1a8e68..b85bff8b53b 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -47,10 +47,15 @@ CElement::CElement(void) { GaussPoint = NULL; GaussPointP = NULL; + NodalStress = NULL; + NodalExtrap = NULL; + nNodes = 0; nGaussPoints = 0; nGaussPointsP = 0; + el_Pressure = 0.0; + Mab = NULL; Kab = NULL; Ks_ab = NULL; @@ -76,10 +81,15 @@ CElement::CElement(unsigned short val_nDim, CConfig *config) { GaussPoint = NULL; GaussPointP = NULL; + NodalStress = NULL; + NodalExtrap = NULL; + nNodes = 0; nGaussPoints = 0; nGaussPointsP = 0; + el_Pressure = 0.0; + Mab = NULL; Kab = NULL; Ks_ab = NULL; diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index ba000c81669..95b6631dcb8 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -206,8 +206,8 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Compute the constitutive matrix ---*/ - Compute_Constitutive_Matrix(); - Compute_Stress_Tensor(); + Compute_Constitutive_Matrix(element); + Compute_Stress_Tensor(element); for (iNode = 0; iNode < nNode; iNode++){ @@ -332,6 +332,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ double GradNi_Mat_Term; double Vol_current, Vol_reference; double Avg_kappa; + double el_Pressure; /*--- Under integration of the pressure term, if the calculations assume incompressibility or near incompressibility ---*/ @@ -390,6 +391,12 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ Avg_kappa = Kappa * Vol_current / Vol_reference; + el_Pressure = Kappa * ((Vol_current / Vol_reference) - 1); + + element->SetElement_Pressure(el_Pressure); + +// cout << "ELEMENT PRESSURE: " << el_Pressure << endl; + } for (iNode = 0; iNode < nNode; iNode++){ @@ -501,7 +508,7 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Compute the stress tensor ---*/ - Compute_Stress_Tensor(); + Compute_Stress_Tensor(element); for (iNode = 0; iNode < nNode; iNode++){ @@ -604,7 +611,7 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Compute the stress tensor ---*/ - Compute_Stress_Tensor(); + Compute_Stress_Tensor(element); for (iNode = 0; iNode < nNode; iNode++){ element->Add_NodalStress(Stress_Tensor[0][0] * element->GetNi_Extrap(iNode, iGauss), iNode, 0); @@ -633,7 +640,7 @@ CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { } -void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(void) { +void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { unsigned short i,j; double Mu_p, Lambda_p; @@ -648,22 +655,22 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(void) { /*--- Assuming plane strain ---*/ if (nDim == 2){ - D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = 0.0; - D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = 0.0; - D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = Mu_p; + D_Mat[0][0] = Lambda_p + 2.0 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = 0.0; + D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2.0 * Mu_p; D_Mat[1][2] = 0.0; + D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = Mu_p; } else if (nDim == 3){ - D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; - D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; - D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; - D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; - D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; - D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; + D_Mat[0][0] = Lambda_p + 2.0 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; + D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2.0 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; + D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2.0 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; + D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; + D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; + D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; } } -void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(void) { +void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { unsigned short i,j; double Mu_J, Lambda_J; @@ -695,48 +702,128 @@ CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { } -void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(void) { +void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { unsigned short i,j; - double Mu_p, Lambda_p; - double dij; + double dij, el_P; + double Ib = 0.0, Jft; - /*--- This can be done in a better way ---*/ - if (J_F != 0.0){ - Mu_p = (Mu - Lambda*log(J_F))/J_F; - Lambda_p = Lambda/J_F; + /*--- First invariant of b -> Ib = tr(b) ---*/ + for (i = 0; i < 3; i++){ + Ib += b_Mat[i][i]; } -// D_Mat[0][0] = Lambda_p + 2 * Mu_p; D_Mat[0][1] = Lambda_p; D_Mat[0][2] = Lambda_p; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; -// D_Mat[1][0] = Lambda_p; D_Mat[1][1] = Lambda_p + 2 * Mu_p; D_Mat[1][2] = Lambda_p; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; -// D_Mat[2][0] = Lambda_p; D_Mat[2][1] = Lambda_p; D_Mat[2][2] = Lambda_p + 2 * Mu_p; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; -// D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu_p; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; -// D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu_p; D_Mat[4][5] = 0.0; -// D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu_p; + /*--- Retrieve element pressure ---*/ + + el_P = element->GetElement_Pressure(); + + /*--- J^(-5/3) ---*/ + Jft = pow(J_F, -1.666666666666667); + + if (nDim == 2){ + + /*--- Diagonal terms ---*/ + D_Mat[0][0] = 2.0 * Mu * Jft * ((4.0 / 9.0) * Ib - (2.0 / 3.0) * b_Mat[0][0]) - el_P; + D_Mat[1][1] = 2.0 * Mu * Jft * ((4.0 / 9.0) * Ib - (2.0 / 3.0) * b_Mat[1][1]) - el_P; + + D_Mat[2][2] = (1.0 / 3.0) * Mu * Jft * Ib - el_P; + + /*--- Q2 off diagonal terms (and symmetric) ---*/ + + D_Mat[0][1] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + D_Mat[1][0] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + + D_Mat[0][2] = 0.0; + D_Mat[2][0] = 0.0; + + } + else if (nDim == 3){ + + /*--- Diagonal terms ---*/ + D_Mat[0][0] = 2.0 * Mu * Jft * ((4.0 / 9.0) * Ib - (2.0 / 3.0) * b_Mat[0][0]) - el_P; + D_Mat[1][1] = 2.0 * Mu * Jft * ((4.0 / 9.0) * Ib - (2.0 / 3.0) * b_Mat[1][1]) - el_P; + D_Mat[2][2] = 2.0 * Mu * Jft * ((4.0 / 9.0) * Ib - (2.0 / 3.0) * b_Mat[2][2]) - el_P; + + D_Mat[3][3] = (1.0 / 3.0) * Mu * Jft * Ib - el_P; + D_Mat[4][4] = (1.0 / 3.0) * Mu * Jft * Ib - el_P; + D_Mat[5][5] = (1.0 / 3.0) * Mu * Jft * Ib - el_P; + + /*--- Q1 off diagonal terms (and symmetric) ---*/ + + D_Mat[0][1] = 2.0 * Mu * Jft * ((1.0 / 9.0) * Ib - (1.0 / 3.0) * b_Mat[0][0] - (1.0 / 3.0) * b_Mat[1][1]) + el_P; + D_Mat[0][2] = 2.0 * Mu * Jft * ((1.0 / 9.0) * Ib - (1.0 / 3.0) * b_Mat[0][0] - (1.0 / 3.0) * b_Mat[2][2]) + el_P; + D_Mat[1][2] = 2.0 * Mu * Jft * ((1.0 / 9.0) * Ib - (1.0 / 3.0) * b_Mat[1][1] - (1.0 / 3.0) * b_Mat[2][2]) + el_P; + + D_Mat[1][0] = 2.0 * Mu * Jft * ((1.0 / 9.0) * Ib - (1.0 / 3.0) * b_Mat[0][0] - (1.0 / 3.0) * b_Mat[1][1]) + el_P; + D_Mat[2][0] = 2.0 * Mu * Jft * ((1.0 / 9.0) * Ib - (1.0 / 3.0) * b_Mat[0][0] - (1.0 / 3.0) * b_Mat[2][2]) + el_P; + D_Mat[2][1] = 2.0 * Mu * Jft * ((1.0 / 9.0) * Ib - (1.0 / 3.0) * b_Mat[1][1] - (1.0 / 3.0) * b_Mat[2][2]) + el_P; + /*--- Q2 off diagonal terms (and symmetric) ---*/ + D_Mat[0][3] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + D_Mat[1][3] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + D_Mat[2][3] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + + D_Mat[0][4] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][2]; + D_Mat[1][4] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][2]; + D_Mat[2][4] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][2]; + + D_Mat[0][5] = (-2.0 / 3.0) * Mu * Jft * b_Mat[1][2]; + D_Mat[1][5] = (-2.0 / 3.0) * Mu * Jft * b_Mat[1][2]; + D_Mat[2][5] = (-2.0 / 3.0) * Mu * Jft * b_Mat[1][2]; + + + D_Mat[3][0] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + D_Mat[3][1] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + D_Mat[3][2] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][1]; + + D_Mat[4][0] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][2]; + D_Mat[4][1] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][2]; + D_Mat[4][2] = (-2.0 / 3.0) * Mu * Jft * b_Mat[0][2]; + + D_Mat[5][0] = (-2.0 / 3.0) * Mu * Jft * b_Mat[1][2]; + D_Mat[5][1] = (-2.0 / 3.0) * Mu * Jft * b_Mat[1][2]; + D_Mat[5][2] = (-2.0 / 3.0) * Mu * Jft * b_Mat[1][2]; + + /*--- Q3 off diagonal terms (and symmetric) are all zeros ---*/ + + D_Mat[3][4] = 0.0; + D_Mat[3][5] = 0.0; + D_Mat[4][5] = 0.0; + + D_Mat[4][3] = 0.0; + D_Mat[5][3] = 0.0; + D_Mat[5][4] = 0.0; + + } } -void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(void) { +void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element) { unsigned short i,j; - double Mu_J, Lambda_J; - double dij; + double dij, el_P; + double Ib = 0.0, Jft; - /*--- This can be done in a better way ---*/ - if (J_F != 0.0){ - Mu_J = Mu/J_F; - Lambda_J = Lambda/J_F; + /*--- First invariant of b -> Ib = tr(b) ---*/ + for (i = 0; i < 3; i++){ + Ib += b_Mat[i][i]; } -// for (i = 0; i < 3; i++){ -// for (j = 0; j < 3; j++){ -// if (i == j) dij = 1.0; -// else if (i != j) dij = 0.0; -// Stress_Tensor[i][j] = Mu_J * (b_Mat[i][j] - dij) + Lambda_J * log(J_F) * dij; -// } -// } + /*--- Retrieve element pressure ---*/ + + el_P = element->GetElement_Pressure(); + + /*--- J^(-5/3) ---*/ + Jft = pow(J_F, -1.666666666666667); + + for (i = 0; i < 3; i++){ + for (j = 0; j < 3; j++){ + if (i == j) dij = 1.0; + else if (i != j) dij = 0.0; + Stress_Tensor[i][j] = Mu * Jft * (b_Mat[i][j] - ((1.0 / 3.0) * Ib * dij )) + el_P * dij; + } + } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index ce1f5930728..aa89f107c21 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -527,6 +527,20 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } } +// cout << "Jacobian_s_ij: " << endl; +// cout << Jacobian_s_ij[0][0] << " " << Jacobian_s_ij[0][1] << endl; +// cout << Jacobian_s_ij[1][0] << " " << Jacobian_s_ij[1][1] << endl; +// +// cout << "Jacobian_c_ij: " << endl; +// cout << Jacobian_c_ij[0][0] << " " << Jacobian_c_ij[0][1] << endl; +// cout << Jacobian_c_ij[1][0] << " " << Jacobian_c_ij[1][1] << endl; +// +// if (incompressible){ +// cout << "Jacobian_k_ij: " << endl; +// cout << Jacobian_k_ij[0][0] << " " << Jacobian_k_ij[0][1] << endl; +// cout << Jacobian_k_ij[1][0] << " " << Jacobian_k_ij[1][1] << endl; +// } + /*--- If the problem is dynamic, the jacobian of the problem will be a combination of the ---*/ /*--- StiffMatrix and the Mass Matrix; otherwise, the Jacobian can be computed straight away ---*/ // if (dynamic){ From d0c023319f78f7060724d27d74af899c31887ad0 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 5 Aug 2015 13:48:51 -0400 Subject: [PATCH 045/269] adding interpolation_structure back into make files --- Common/lib/Makefile.in | 91 +++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 36 deletions(-) diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index aa4e06453ce..2e7b05a6e3c 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.3 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -49,6 +48,23 @@ ################################################################################ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -72,7 +88,8 @@ target_triplet = @target@ @BUILD_DIRECTDIFF_TRUE@am__append_2 = libSU2_DIRECTDIFF.a @BUILD_REVERSE_TRUE@am__append_3 = libSU2_REVERSE.a subdir = Common/lib -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -88,10 +105,8 @@ AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = libSU2_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = @BUILD_NORMAL_TRUE@libSU2_a_DEPENDENCIES = $(am__DEPENDENCIES_1) @@ -122,6 +137,7 @@ am__libSU2_a_SOURCES_DIST = \ ../include/primal_grid_structure.inl \ ../include/vector_structure.hpp \ ../include/vector_structure.inl \ + ../include/interpolation_structure.hpp \ ../include/matrix_structure.hpp \ ../include/matrix_structure.inl ../include/mpi_structure.hpp \ ../include/mpi_structure.inl ../include/datatype_structure.hpp \ @@ -130,6 +146,7 @@ am__libSU2_a_SOURCES_DIST = \ ../src/grid_adaptation_structure.cpp \ ../src/grid_movement_structure.cpp \ ../src/linear_solvers_structure.cpp \ + ../src/interpolation_structure.cpp \ ../src/primal_grid_structure.cpp ../src/vector_structure.cpp \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ @@ -280,22 +297,26 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) @@ -481,7 +502,6 @@ lib_sources = \ ../include/matrix_structure.inl \ ../include/mpi_structure.hpp \ ../include/mpi_structure.inl \ - ../include/interpolation_structure.hpp \ ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../src/config_structure.cpp \ @@ -494,7 +514,6 @@ lib_sources = \ ../src/vector_structure.cpp \ ../src/matrix_structure.cpp \ ../src/mpi_structure.cpp \ - ../src/interpolation_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp @@ -1143,20 +1162,6 @@ libSU2_REVERSE_a-datatype_structure.obj: ../src/datatype_structure.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_REVERSE_a_CXXFLAGS) $(CXXFLAGS) -c -o libSU2_REVERSE_a-datatype_structure.obj `if test -f '../src/datatype_structure.cpp'; then $(CYGPATH_W) '../src/datatype_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/datatype_structure.cpp'; fi` -../src/libSU2_a-interpolation_structure.o: ../src/interpolation_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo -c -o ../src/libSU2_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/interpolation_structure.cpp' object='../src/libSU2_a-interpolation_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp - -../src/libSU2_a-interpolation_structure.obj: ../src/interpolation_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-interpolation_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo -c -o ../src/libSU2_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/interpolation_structure.cpp' object='../src/libSU2_a-interpolation_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -1206,6 +1211,20 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1345,14 +1364,14 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ + clean-noinstLIBRARIES cscopelist ctags distclean \ + distclean-compile distclean-generic distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am From bcc045fa5b060e07d356b745ae6ef030d1472996 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 10 Aug 2015 10:54:17 -0400 Subject: [PATCH 046/269] version # and new mpi structure linking --- Common/include/interpolation_structure.hpp | 8 ++++---- Common/src/interpolation_structure.cpp | 18 ++++++------------ SU2_FSI/include/SU2_FSI.hpp | 9 +++++---- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index f30a99b5d1b..17a27ecaf17 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines used by SU2_FSI. * The subroutines and functions are in the interpolation_structure.cpp file. * \author H. Kline - * \version 3.2.9 "eagle" + * \version 4.0.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -14,6 +14,8 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either @@ -30,9 +32,7 @@ #pragma once -#ifdef HAVE_MPI - #include "mpi.h" -#endif +#include "../../Common/include/mpi_structure.hpp" #include #include diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 1a6b397a3b2..fa8787d954e 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -393,10 +393,8 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ distance+=pow(Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetnDonorPoints(nNodes); } } - - //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorElem(donor_elem); /*--- Set the appropriate amount of memory ---*/ - //Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetnNodes()); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); /*--- Loop over vertices of the element ---*/ for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ @@ -457,9 +450,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); if ( Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA)!= -1 ){ ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); - //nn[0] = iZone_1; /* Zone of the donor point */ nn[1] = inode; /* global index of the donor point */ - //nn[2] = markFEA; /* marker of the donor point */ nn[3] = ivtx; /* vertex index within marker of the donor point */ Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); @@ -648,7 +639,7 @@ void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, for (j=0; j=0; i--){ if (R[i*n+i]>eps) isoparams[i]=x_tmp[i]/R[i*n+i]; @@ -658,5 +649,8 @@ void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, x_tmp[j]=x_tmp[j]-R[j*n+i]*isoparams[i]; } } - + cout << ""; + for (j=0; jSU2_FSI.cpp file. * \author R. Sanchez, F. Palacios, T. Economon - * \version 3.2.9 "eagle" + * \version 4.0.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -14,6 +14,8 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either @@ -30,9 +32,8 @@ #pragma once -#ifdef HAVE_MPI - #include "mpi.h" -#endif +#include "../../Common/include/mpi_structure.hpp" + #include #include #include From c2d0300a08404691e256444b19b5f152e827ca75 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 13 Aug 2015 13:14:14 +0100 Subject: [PATCH 047/269] FEM: fixed some small bugs. --- Common/include/option_structure.hpp | 4 +- SU2_CFD/include/solver_structure.hpp | 108 ++++ SU2_CFD/include/solver_structure.inl | 12 + SU2_CFD/include/variable_structure.hpp | 30 + SU2_CFD/include/variable_structure.inl | 22 +- SU2_CFD/src/iteration_structure.cpp | 4 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 13 +- SU2_CFD/src/solver_direct_elasticity.cpp | 47 +- SU2_CFD/src/solver_fem_elasticity.cpp | 647 ++++++++++++++++---- SU2_CFD/src/variable_fem_elasticity.cpp | 7 +- SU2_FSI/include/iteration_structure_fsi.hpp | 35 +- SU2_FSI/src/iteration_structure_fsi.cpp | 147 ++++- 12 files changed, 903 insertions(+), 173 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 45e98e401f7..11a1c6c6206 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -249,12 +249,12 @@ static const map FSI_Fluid_Solver_Map = CCreateM enum ENUM_FSI_STRUC_PROBLEM { NO_SOLVER_SFSI = 0, /*!< \brief Definition of no solver. */ LINEAR_ELASTICITY_SFSI = 11, /*!< \brief Linear elasticity equations for the FSI problem */ - NONLINEAR_ELASTICITY_SFSI = 2, /*!< \brief Nonlinear elasticity equations for the FSI problem */ + FEM_ELASTICITY_SFSI = 13, /*!< \brief Nonlinear elasticity equations for the FSI problem */ }; static const map FSI_Struc_Solver_Map = CCreateMap ("NONE", NO_SOLVER_SFSI) ("LINEAR_ELASTICITY", LINEAR_ELASTICITY_SFSI) -("NONLINEAR_ELASTICITY", NONLINEAR_ELASTICITY_SFSI); +("FEM_ELASTICITY", FEM_ELASTICITY_SFSI); /*! * \brief Material geometric conditions diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 3bd5d048115..7d6844a3c29 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6580,6 +6580,14 @@ class CFEM_ElasticitySolver : public CSolver { double *Res_Ext_Surf; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ double *Res_Time_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + double *Res_FSI_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + + double *solutionPredictor; /*!< \brief Auxiliary vector to store the solution predictor */ + + double *nodeReactions; /*!< \brief Auxiliary vector to store the reactions */ + + double *normalVertex; /*!< \brief Auxiliary vector to store the normals to a certain vertex */ + double **stressTensor; /*!< \brief Auxiliary matrix to rebuild the stress tensor and compute reactions */ double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ @@ -6588,10 +6596,15 @@ class CFEM_ElasticitySolver : public CSolver { double Conv_Ref[3]; /*!< \brief Reference values for convergence check: DTOL, RTOL, ETOL */ double Conv_Check[3]; /*!< \brief Current values for convergence check: DTOL, RTOL, ETOL */ + double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ + + double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ + double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix. */ CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ + CSysVector LinSysReact; /*!< \brief Vector to store the residual before applying the BCs */ public: @@ -6836,6 +6849,101 @@ class CFEM_ElasticitySolver : public CSolver { */ void SetTotal_CFEA(double val_cfea); + /*! + * \brief Set the the tractions in the in the FEA solver (matching mesh). + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] flow_solution - Container vector with all the solutions. + * \param[in] fea_config - Definition of the particular problem. + */ + void SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); + + /*! + * \brief Set the the tractions in the in the FEA solver (non-matching mesh). + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] flow_solution - Container vector with all the solutions. + * \param[in] fea_config - Definition of the particular problem. + */ + void SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); + + /*! + * \brief Predictor for structural displacements based on previous iterations + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] fea_grid_movement - Geometrical definition of the problem. + * \param[in] fea_config - Geometrical definition of the problem. + * \param[in] flow_geometry - Definition of the particular problem. + */ + void PredictStruct_Displacement(CGeometry **fea_geometry, + CConfig *fea_config, + CSolver ***fea_solution); + + /*! + * \brief Computation of Aitken's coefficient. + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] fea_config - Geometrical definition of the problem. + * \param[in] fea_geometry - Definition of the particular problem. + */ + void ComputeAitken_Coefficient(CGeometry **fea_geometry, + CConfig *fea_config, + CSolver ***fea_solution, + unsigned long iFSIIter); + + /*! + * \brief Aitken's relaxation of the solution. + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] fea_config - Geometrical definition of the problem. + * \param[in] fea_geometry - Definition of the particular problem. + */ + void SetAitken_Relaxation(CGeometry **fea_geometry, + CConfig *fea_config, + CSolver ***fea_solution); + + /*! + * \brief Aitken's relaxation of the solution. + * \param[in] fea_geometry - Geometrical definition of the problem. + * \param[in] fea_config - Geometrical definition of the problem. + * \param[in] fea_geometry - Definition of the particular problem. + */ + void Update_StructSolution(CGeometry **fea_geometry, + CConfig *fea_config, + CSolver ***fea_solution); + + /*! + * \brief Get the value of the FSI convergence. + * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. + */ + void SetFSI_ConvValue(unsigned short val_index, double val_criteria); + + /*! + * \brief Get the value of the FSI convergence. + * \param[in] Value of interest: 0 - Initial value, 1 - Current value. + * \return Values to compare + */ + double GetFSI_ConvValue(unsigned short val_index); + + /*! + * \brief Retrieve the value of the dynamic Aitken relaxation factor. + * \return Value of the dynamic Aitken relaxation factor. + */ + double GetWAitken_Dyn(void); + + /*! + * \brief Retrieve the value of the last Aitken relaxation factor in the previous time step. + * \return Value of the last Aitken relaxation factor in the previous time step. + */ + double GetWAitken_Dyn_tn1(void); + + /*! + * \brief Set the value of the dynamic Aitken relaxation factor + * \param[in] Value of the dynamic Aitken relaxation factor + */ + void SetWAitken_Dyn(double waitk); + + /*! + * \brief Set the value of the last Aitken relaxation factor in the current time step. + * \param[in] Value of the last Aitken relaxation factor in the current time step. + */ + void SetWAitken_Dyn_tn1(double waitk_tn1); + }; diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index c101323a401..2769d6ebcd8 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -936,6 +936,18 @@ inline double CFEM_ElasticitySolver::GetTotal_CFEA() { return Total_CFEA; } inline void CFEM_ElasticitySolver::SetTotal_CFEA(double cfea) { Total_CFEA = cfea; } +inline double CFEM_ElasticitySolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } + +inline double CFEM_ElasticitySolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } + +inline void CFEM_ElasticitySolver::SetWAitken_Dyn(double waitk) { WAitken_Dyn = waitk; } + +inline void CFEM_ElasticitySolver::SetWAitken_Dyn_tn1(double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } + +inline void CFEM_ElasticitySolver::SetFSI_ConvValue(unsigned short val_index, double val_criteria) { FSI_Conv[val_index] = val_criteria; } + +inline double CFEM_ElasticitySolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } + inline double CWaveSolver::GetTotal_CWave() { return Total_CWave; } inline double CHeatSolver::GetTotal_CHeat() { return Total_CHeat; } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index ab8634c68c2..acc730fb207 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1473,6 +1473,21 @@ class CVariable { */ virtual void Clear_SurfaceLoad_Res(void); + /*! + * \brief A virtual member. + */ + virtual void Set_FlowTraction(double *val_flowTraction); + + /*! + * \brief A virtual member. + */ + virtual double *Get_FlowTraction(void); + + /*! + * \brief A virtual member. + */ + virtual void Clear_FlowTraction(void); + /*! * \brief A virtual member. @@ -2581,6 +2596,21 @@ class CFEM_ElasVariable : public CVariable { */ void Clear_SurfaceLoad_Res(void); + /*! + * \brief Set the flow traction at a node on the structural side + */ + void Set_FlowTraction(double *val_flowTraction); + + /*! + * \brief Get the residual term due to the flow traction + */ + double *Get_FlowTraction(void); + + /*! + * \brief Clear the flow traction residual + */ + void Clear_FlowTraction(void); + /*! * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 04c4592dd86..11762901317 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -75,6 +75,12 @@ inline double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} inline void CVariable::Clear_SurfaceLoad_Res(void) { } +inline void CVariable::Set_FlowTraction(double *val_flowTraction) { } + +inline double *CVariable::Get_FlowTraction(void) {return NULL;} + +inline void CVariable::Clear_FlowTraction(void) { } + inline double CVariable::GetBetaInc2(void) { return 0; } inline double CVariable::GetDiffLevelSet(void) { return 0; } @@ -899,6 +905,17 @@ inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; } +inline void CFEM_ElasVariable::Set_FlowTraction(double *val_flowTraction) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + FlowTraction[iVar] = val_flowTraction[iVar]; +} + +inline double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} + +inline void CFEM_ElasVariable::Clear_FlowTraction(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = 0.0; +} + inline void CFEM_ElasVariable::SetSolution_time_n(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = Solution[iVar]; } @@ -942,15 +959,16 @@ inline void CFEM_ElasVariable::SetSolution_Accel_time_n(double *val_solution_acc inline void CFEM_ElasVariable::SetSolution_Pred(double *val_solution_pred){ Solution_Pred = val_solution_pred; } inline void CFEM_ElasVariable::SetSolution_Pred(void){ - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; } inline void CFEM_ElasVariable::SetSolution_Pred_Old(double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } inline void CFEM_ElasVariable::SetSolution_Pred_Old(void){ - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred_Old[iVar] = Solution_Pred[iVar]; + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred_Old[iVar] = Solution_Pred[iVar]; } + inline double CFEM_ElasVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } inline double *CFEM_ElasVariable::GetSolution_Vel(void) { return Solution_Vel; } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 518ccb91953..247358285a2 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -723,8 +723,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - bool dynamic = (config_container[iZone]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems - bool nonlinear = (config_container[iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool dynamic = (config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + bool nonlinear = (config_container[ZONE_0]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems #ifdef HAVE_MPI int rank; diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index c6fdd431414..65243e0045d 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -899,12 +899,24 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double * } + if (form2d==0){ + /*--- Compute the D Matrix (for plane stress and 2-D)---*/ D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + } + else if (form2d==1){ + + /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ + + D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; + D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; + D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; + + } /*--- Compute the BT.D Matrix ---*/ for (iVar = 0; iVar < nNodes*nVar; iVar++) { @@ -937,7 +949,6 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double * } } - } } diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 763d04051bf..ba3621494df 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -523,26 +523,6 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta } - double checkJacobian; - unsigned short iNode, jNode; - - ofstream myfile; - myfile.open ("oldSolver.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = StiffMatrixSpace.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); - } void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -607,6 +587,8 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c MassMatrix_Node_Int[iDim][jDim] = a_dt[0] * MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; } } + + /*--- Modified MassMatrix ---*/ MassMatrix.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node); StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node_Int); @@ -615,26 +597,6 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c } - double checkJacobian; - unsigned short iNode, jNode; - - ofstream myfile; - myfile.open ("oldSolver_massMatrix.txt"); - - for (iNode = 0; iNode < nPoint; iNode++){ - for (jNode = 0; jNode < nPoint; jNode++){ - myfile << "Node " << iNode << " " << jNode << endl; - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - checkJacobian = MassMatrix.GetBlock(iNode, jNode, iVar, jVar); - myfile << checkJacobian << " " ; - } - myfile << endl; - } - } - } - myfile.close(); - } void CFEASolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -1631,11 +1593,6 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver } -// double *check; -// for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { -// check = LinSysRes.GetBlock(iPoint); // This avoids the problem in the corner, but... -// cout << check[0] << "\t" << check[1] << endl; -// } /*--- Solve the linear dynamic system ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index aa89f107c21..704bd4b1a45 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -39,6 +39,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { nPointDomain = 0; Total_CFEA = 0.0; + WAitken_Dyn = 0.0; + WAitken_Dyn_tn1 = 0.0; element_container = NULL; node = NULL; @@ -58,6 +60,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { Res_Stress_i = NULL; Res_Ext_Surf = NULL; Res_Time_Cont = NULL; + Res_FSI_Cont = NULL; + + nodeReactions = NULL; + + solutionPredictor = NULL; + + normalVertex = NULL; + stressTensor = NULL; } @@ -71,6 +81,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + bool fsi = config->GetFSI_Simulation(); // FSI simulation int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -94,7 +105,12 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi GradN_X = new double [nDim]; GradN_x = new double [nDim]; - Total_CFEA = 0.0; + Total_CFEA = 0.0; + WAitken_Dyn = 0.0; + WAitken_Dyn_tn1 = 0.0; + + SetFSI_ConvValue(0,0.0); + SetFSI_ConvValue(1,0.0); nVar = nDim; @@ -114,6 +130,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + nodeReactions = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; + bool restart = (config->GetRestart() || config->GetRestart_Flow()); /*--- Check for a restart, initialize from zero otherwise ---*/ @@ -195,6 +213,15 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ Res_Ext_Surf = new double[nVar]; + /*--- Contribution of the fluid tractions to the residual (auxiliary vector) ---*/ + if (fsi){ + Res_FSI_Cont = new double[nVar]; + } + else { + Res_FSI_Cont = NULL; + } + + /*--- Time integration contribution to the residual ---*/ if (dynamic) { Res_Time_Cont = new double [nVar]; @@ -227,16 +254,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); -// unsigned short nElAttached; -// for (iPoint = 0; iPoint < nPoint; iPoint++){ -// nElAttached = geometry->node[iPoint]->GetnElem(); -// cout << "Node " << iPoint << " has " << nElAttached << " elements attached. " << endl; -// } - - - -// if (nonlinear_analysis) StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - if (dynamic) { MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); TimeRes_Aux.Initialize(nPoint, nPointDomain, nVar, 0.0); @@ -250,6 +267,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi LinSysAux.Initialize(nPoint, nPointDomain, nVar, 0.0); + LinSysReact.Initialize(nPoint, nPointDomain, nVar, 0.0); + /*--- Here is where we assign the kind of each element ---*/ if (nDim == 2){ @@ -273,6 +292,18 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } } + /*--- Initialize the auxiliary vector and matrix for the computation of the nodal Reactions ---*/ + + normalVertex = new double [nDim]; + + stressTensor = new double* [nDim]; + for (iVar = 0; iVar < nVar; iVar++){ + stressTensor[iVar] = new double [nDim]; + } + + /*---- Initialize the auxiliary vector for the solution predictor ---*/ + + solutionPredictor = new double [nVar]; } @@ -297,6 +328,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] Point_Max_Coord[iVar]; delete [] mZeros_Aux[iVar]; delete [] mId_Aux[iVar]; + delete [] stressTensor[iVar]; } delete [] element_container; @@ -321,6 +353,11 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] mZeros_Aux; delete [] mId_Aux; + delete [] nodeReactions; + + delete [] normalVertex; + delete [] stressTensor; + } void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { @@ -527,32 +564,9 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } } -// cout << "Jacobian_s_ij: " << endl; -// cout << Jacobian_s_ij[0][0] << " " << Jacobian_s_ij[0][1] << endl; -// cout << Jacobian_s_ij[1][0] << " " << Jacobian_s_ij[1][1] << endl; -// -// cout << "Jacobian_c_ij: " << endl; -// cout << Jacobian_c_ij[0][0] << " " << Jacobian_c_ij[0][1] << endl; -// cout << Jacobian_c_ij[1][0] << " " << Jacobian_c_ij[1][1] << endl; -// -// if (incompressible){ -// cout << "Jacobian_k_ij: " << endl; -// cout << Jacobian_k_ij[0][0] << " " << Jacobian_k_ij[0][1] << endl; -// cout << Jacobian_k_ij[1][0] << " " << Jacobian_k_ij[1][1] << endl; -// } - - /*--- If the problem is dynamic, the jacobian of the problem will be a combination of the ---*/ - /*--- StiffMatrix and the Mass Matrix; otherwise, the Jacobian can be computed straight away ---*/ -// if (dynamic){ -// StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); -// StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); -// if (incompressible) StiffMatrix.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); -// } -// else{ Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); -// } } @@ -560,26 +574,6 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } -// double checkJacobian; -// -// ofstream myfile; -// myfile.open ("Jacobian_assembled.txt"); -// -// for (iNode = 0; iNode < nPoint; iNode++){ -// for (jNode = 0; jNode < nPoint; jNode++){ -// myfile << "Node " << iNode << " " << jNode << endl; -// for (iVar = 0; iVar < nVar; iVar++){ -// for (jVar = 0; jVar < nVar; jVar++){ -// checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); -// myfile << checkJacobian << " " ; -// } -// myfile << endl; -// } -// } -// } -// myfile.close(); - - } void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -638,25 +632,6 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so } -// double checkJacobian; -// -// ofstream myfile; -// myfile.open ("massMatrix.txt"); -// -// for (iNode = 0; iNode < nPoint; iNode++){ -// for (jNode = 0; jNode < nPoint; jNode++){ -// myfile << "Node " << iNode << " " << jNode << endl; -// for (iVar = 0; iVar < nVar; iVar++){ -// for (jVar = 0; jVar < nVar; jVar++){ -// checkJacobian = MassMatrix.GetBlock(iNode, jNode, iVar, jVar); -// myfile << checkJacobian << " " ; -// } -// myfile << endl; -// } -// } -// } -// myfile.close(); - } void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -712,6 +687,8 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); +// LinSysReact.AddBlock(indexNode[iNode], Res_Stress_i); + } } @@ -785,8 +762,6 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } - /*--- Computation of Von Mises Stress ---*/ - double *Stress; double VonMises_Stress, MaxVonMises_Stress = 0.0; double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; @@ -798,7 +773,6 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s Stress = node[iPoint]->GetStress_FEM(); - /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ if (geometry->GetnDim() == 2) { @@ -839,6 +813,46 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } + unsigned short iMarker; + unsigned long iVertex; + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { + case CLAMPED_BOUNDARY: + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + + /*--- Get node index ---*/ + + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + /*--- Get normal at point ---*/ + /*--- The direction is to the INTERIOR of the material ---*/ + normalVertex = geometry->vertex[iMarker][iVertex]->GetNormal(); + + /*--- Get stress ---*/ + + Stress = node[iPoint]->GetStress_FEM(); + + if (geometry->GetnDim() == 2) { + + stressTensor[0][0] = Stress[0]; + stressTensor[0][1] = Stress[2]; + stressTensor[1][0] = Stress[2]; + stressTensor[1][1] = Stress[1]; + + } + + for (iVar = 0; iVar < nVar; iVar++){ + nodeReactions[iVar] = 0.0; + for (jVar = 0; jVar < nVar; jVar++){ + nodeReactions[iVar] += stressTensor[iVar][jVar] * normalVertex[jVar]; + } + } + + } + break; + } + #ifdef HAVE_MPI /*--- Compute MaxVonMises_Stress using all the nodes ---*/ @@ -883,10 +897,12 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con unsigned long iPoint, iVertex; unsigned short iVar, jVar; + double tempCoord; + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); unsigned short iNode, jNode; - double checkJacobian; + for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -910,6 +926,12 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con node[iPoint]->SetSolution_Accel(Solution); } + for (iVar = 0; iVar < nVar; iVar++){ + nodeReactions[iVar] = - 1.0 * LinSysRes.GetBlock(iPoint, iVar); + } + + LinSysReact.SetBlock(iPoint,nodeReactions); + LinSysRes.SetBlock(iPoint, Residual); /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ @@ -928,7 +950,7 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con /*--- Delete the rows for a particular node ---*/ for (jVar = 0; jVar < nPoint; jVar++){ if (iPoint!=jVar) { - Jacobian.SetBlock(jVar,iPoint,mZeros_Aux); + Jacobian.SetBlock(iPoint,jVar,mZeros_Aux); } } @@ -1228,6 +1250,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + bool fsi = config->GetFSI_Simulation(); // FSI simulation. if (!dynamic){ @@ -1301,6 +1324,12 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- External surface load contribution ---*/ Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + /*--- Add FSI contribution ---*/ + if (fsi) { + /*--- It may be worthy restricting the flow traction to the boundary elements... ---*/ + Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); + LinSysRes.AddBlock(iPoint, Res_FSI_Cont); + } } } @@ -1346,8 +1375,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver /*--- Acceleration component of the solution ---*/ /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ - - Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - node[iPoint]->GetSolution_time_n(iVar)) - a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - @@ -1385,39 +1412,437 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c unsigned long IterLinSol; -// double checkJacobian; -// -// ofstream myfile; -// myfile.open ("Jacobian.txt"); -// -// for (iNode = 0; iNode < nPoint; iNode++){ -// for (jNode = 0; jNode < nPoint; jNode++){ -// myfile << "Node " << iNode << " " << jNode << endl; -// for (iVar = 0; iVar < nVar; iVar++){ -// for (jVar = 0; jVar < nVar; jVar++){ -// checkJacobian = Jacobian.GetBlock(iNode, jNode, iVar, jVar); -// myfile << checkJacobian << " " ; -// } -// myfile << endl; -// } -// } -// } -// myfile.close(); -// -// myfile.open ("Residual.txt"); -// -// for (iNode = 0; iNode < nPoint; iNode++){ -// myfile << "Node " << iNode << " " << jNode << endl; -// for (iVar = 0; iVar < nVar; iVar++){ -// checkJacobian = LinSysRes.GetBlock(iNode, iVar); -// myfile << checkJacobian << " " ; -// myfile << endl; -// } -// } -// myfile.close(); - CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); +} + + + +void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, + CGeometry **flow_geometry, CConfig *fea_config, + CConfig *flow_config, CNumerics *fea_numerics) { + + + + unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side + unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; // Variables for iteration over markers + unsigned short markFEA, markFlow; + + unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side + unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + + unsigned short iDim, jDim; + + // Check the kind of fluid problem + bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); + bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || + (flow_config->GetKind_Solver() == RANS) ); + + unsigned long nodeVertex, donorVertex; + double *normalsVertex; + + double *tn_f; + tn_f = new double [nVar]; // Fluid traction + + /*--- Redimensionalize the pressure ---*/ + + double *Velocity_ND, *Velocity_Real; + double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; + double factorForces; + + Velocity_Real = flow_config->GetVelocity_FreeStream(); + Density_Real = flow_config->GetDensity_FreeStream(); + + Velocity_ND = flow_config->GetVelocity_FreeStreamND(); + Density_ND = flow_config->GetDensity_FreeStreamND(); + + Velocity2_Real = 0.0; + Velocity2_ND = 0.0; + for (iDim = 0; iDim < nDim; iDim++){ + Velocity2_Real += Velocity_Real[iDim]*Velocity_Real[iDim]; + Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; + } + + factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); + + /*--- Apply a ramp to the transfer of the fluid loads ---*/ + + double ModAmpl; + double CurrentTime=fea_config->GetCurrent_DynTime(); + double Static_Time=fea_config->GetStatic_Time(); + + bool Ramp_Load = fea_config->GetRamp_Load(); + double Ramp_Time = fea_config->GetRamp_Time(); + + if (CurrentTime <= Static_Time){ ModAmpl=0.0; } + else if((CurrentTime > Static_Time) && + (CurrentTime <= (Static_Time + Ramp_Time)) && + (Ramp_Load)){ + ModAmpl=(CurrentTime-Static_Time)/Ramp_Time; + ModAmpl=max(ModAmpl,0.0); + ModAmpl=min(ModAmpl,1.0); + } + else{ ModAmpl=1.0; } + + // Parameters for the calculations + // Pn: Pressure + // Pinf: Pressure_infinite + // div_vel: Velocity divergence + // Dij: Dirac delta + double Pn = 0.0, Pinf = 0.0, div_vel = 0.0, Dij = 0.0; + double Viscosity = 0.0, Density = 0.0; + double **Grad_PrimVar; + double Tau[3][3]; + + /*--- Number of markers in the FSI interface ---*/ + nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; + + nMarkerFEA = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side + + /*--- Loop over all the markers on the interface ---*/ + + for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + + /*--- Identification of the markers ---*/ + + /*--- Current structural marker ---*/ + for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ + markFEA=iMarkerFEA; + } + } + + /*--- Current fluid marker ---*/ + for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ + markFlow=iMarkerFlow; + } + } + + nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker + nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker + + /*--- Loop over the nodes in the structural mesh, calculate the tf vector (unitary) ---*/ + /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ + for (iVertex=0; iVertex < nVertexFlow; iVertex++){ + + // Node from the flow mesh + nodeVertex=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); + + // Normals at the vertex: these normals go inside the fluid domain. + normalsVertex = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); + + // Corresponding node on the structural mesh + donorVertex = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetPressureInc(); + Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetLaminarViscosityInc(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetDensityInc(); + + } + } + else if (compressible){ + + Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetPressure(); + Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetLaminarViscosity(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetDensity(); + + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iDim] = -(Pn-Pinf)*normalsVertex[iDim]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Dij = 0.0; if (iDim == jDim) Dij = 1.0; + + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iDim] += Tau[iDim][jDim]*normalsVertex[jDim]; + } + } + } + + // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) + + for (iDim = 0; iDim < nDim; iDim++) { + Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; + } + + /*--- Set the Flow traction ---*/ + node[donorVertex]->Set_FlowTraction(Residual); + + } + + } + + +} + +void CFEM_ElasticitySolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, + CGeometry **flow_geometry, CConfig *fea_config, + CConfig *flow_config, CNumerics *fea_numerics){ } + +void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, + CConfig *fea_config, CSolver ***fea_solution){ + + unsigned short predOrder = fea_config->GetPredictorOrder(); + double Delta_t = fea_config->GetDelta_DynTime(); + unsigned long iPoint, iDim; + unsigned long nPoint, nDim; + double *solDisp, *solVel, *solVel_tn, *valPred; + double *DisplacementDonor, *SolutionDonor; + + nPoint = fea_geometry[MESH_0]->GetnPoint(); + nDim = fea_geometry[MESH_0]->GetnDim(); + + + for (iPoint=0; iPoint < nPoint; iPoint++){ + if (predOrder==0) fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); + else if (predOrder==1) { + + solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); + valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + + for (iDim=0; iDimnode[iPoint]->GetSolution(); + solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); + solVel_tn = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel_time_n(); + valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + + for (iDim=0; iDimnode[iPoint]->SetSolution_Pred(); + } + } + } + +void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fea_config, + CSolver ***fea_solution, unsigned long iFSIIter){ + + unsigned long iPoint, iDim; + unsigned long nPoint, nDim; + double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; + double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; + double delta_deltaU[3] = {0.0, 0.0, 0.0}; + double numAitk, denAitk, WAitken; + double CurrentTime=fea_config->GetCurrent_DynTime(); + double Static_Time=fea_config->GetStatic_Time(); + double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; + + nPoint = fea_geometry[MESH_0]->GetnPoint(); + nDim = fea_geometry[MESH_0]->GetnDim(); + + WAitken=fea_config->GetAitkenStatRelax(); + + numAitk = 0.0; + denAitk = 0.0; + + ofstream historyFile_FSI; + bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); + if (writeHistFSI){ + char cstrFSI[200]; + string filenameHistFSI = fea_config->GetConv_FileName_FSI(); + strcpy (cstrFSI, filenameHistFSI.data()); + historyFile_FSI.open (cstrFSI, std::ios_base::app); + } + + + /*--- Only when there is movement, and a dynamic coefficient is requested, it makes sense to compute the Aitken's coefficient ---*/ + + if (CurrentTime > Static_Time) { + + if (iFSIIter == 0){ + + WAitkDyn_tn1 = GetWAitken_Dyn_tn1(); + WAitkDyn_Max = fea_config->GetAitkenDynMaxInit(); + + WAitkDyn = min(WAitkDyn_tn1, WAitkDyn_Max); + + /*--- Temporal fix, only for now ---*/ + WAitkDyn = max(WAitkDyn, 0.1); + + SetWAitken_Dyn(WAitkDyn); + if (writeHistFSI){ + historyFile_FSI << " " << endl ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; + } + + } + else{ + + for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); + dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); + dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); + + for (iDim=0; iDim < nDim; iDim++){ + + /*--- Compute the deltaU and deltaU_n+1 ---*/ + deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; + deltaU_p1[iDim] = dispCalc[iDim] - dispPred[iDim]; + + /*--- Compute the difference ---*/ + delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; + + /*--- Add numerator and denominator ---*/ + numAitk += deltaU[iDim] * delta_deltaU[iDim]; + denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; + + } + + } + + WAitkDyn = GetWAitken_Dyn(); + + if (denAitk > 1E-8){ + WAitkDyn = - 1.0 * WAitkDyn * numAitk / denAitk ; + } + + WAitkDyn = max(WAitkDyn, 0.1); + WAitkDyn = min(WAitkDyn, 1.0); + + SetWAitken_Dyn(WAitkDyn); + + if (writeHistFSI){ + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn << "," ; + } + + } + + } + + if (writeHistFSI){historyFile_FSI.close();} + +} + +void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, + CConfig *fea_config, CSolver ***fea_solution){ + + unsigned long iPoint, iDim; + unsigned long nPoint, nDim; + unsigned short RelaxMethod_FSI; + double *dispPred, *dispCalc; + double WAitken; + double CurrentTime=fea_config->GetCurrent_DynTime(); + double Static_Time=fea_config->GetStatic_Time(); + + nPoint = fea_geometry[MESH_0]->GetnPoint(); + nDim = fea_geometry[MESH_0]->GetnDim(); + + RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); + + /*--- Only when there is movement it makes sense to update the solutions... ---*/ + + if (CurrentTime > Static_Time) { + + if (RelaxMethod_FSI == NO_RELAXATION){ + WAitken = 1.0; + } + else if (RelaxMethod_FSI == FIXED_PARAMETER){ + WAitken = fea_config->GetAitkenStatRelax(); + } + else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ + WAitken = GetWAitken_Dyn(); + } + else { + WAitken = 1.0; + cout << "No relaxation parameter used. " << endl; + } + + + for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); + dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + + /*--- Set predicted solution as the old predicted solution ---*/ + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred_Old(); + + /*--- Set calculated solution as the old solution (needed for dynamic Aitken relaxation) ---*/ + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Old(dispCalc); + + /*--- Apply the Aitken relaxation ---*/ + for (iDim=0; iDim < nDim; iDim++){ + dispPred[iDim] = (1.0 - WAitken)*dispPred[iDim] + WAitken*dispCalc[iDim]; + } + + } + + } + +} + +void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, + CConfig *fea_config, CSolver ***fea_solution){ + + unsigned long iPoint, iDim; + unsigned long nPoint, nDim; + double *valSolutionPred, *valSolution; + + nPoint = fea_geometry[MESH_0]->GetnPoint(); + nDim = fea_geometry[MESH_0]->GetnDim(); + + for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); + + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution(valSolutionPred); + + } + +} + diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 41578594c4b..e143763de85 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -90,6 +90,11 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u FlowTraction = new double [nVar]; Solution_Pred = new double [nVar]; Solution_Pred_Old = new double [nVar]; + for (iVar = 0; iVar < nVar; iVar++){ + FlowTraction[iVar] = val_fea[iVar]; + Solution_Pred[iVar] = val_fea[iVar]; + Solution_Pred_Old[iVar] =val_fea[iVar]; + } } else { FlowTraction = NULL; @@ -97,6 +102,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u Solution_Pred_Old = NULL; } + // if (nonlinear_analysis) Residual_Int = new double [nVar]; else Residual_Int = NULL; if (body_forces) Residual_Ext_Body = new double [nVar]; else Residual_Ext_Body = NULL; Residual_Ext_Surf = new double [nVar]; @@ -124,4 +130,3 @@ CFEM_ElasVariable::~CFEM_ElasVariable(void) { if (Solution_Pred_Old != NULL) delete [] Solution_Pred_Old; } - diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp index c8ae78966cc..98901bef286 100644 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -102,7 +102,7 @@ void Flow_Update(COutput *output, CIntegration ***integration_container, CGeomet /*! - * \brief FEA Subiteration function for Fluid-Structure Interaction applications. + * \brief FEA Subiteration function for Fluid-Structure Interaction applications (legacy). * \author R. Sanchez. * \param[in] output - Pointer to the COutput class. * \param[in] integration_container - Container vector with all the integration methods. @@ -119,6 +119,25 @@ void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CG CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); +/*! + * \brief FEM Subiteration function for Fluid-Structure Interaction applications (structural side). + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + + /*! * \brief Displacement transfer function for Fluid-Structure Interaction applications. * \author R. Sanchez. @@ -158,7 +177,7 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C /*! - * \brief FEA update function for Fluid-Structure Interaction applications. + * \brief FEA update function for Fluid-Structure Interaction applications (legacy). * \param[in] output - Pointer to the COutput class. * \param[in] integration_container - Container vector with all the integration methods. * \param[in] geometry_container - Geometrical definition of the problem. @@ -169,6 +188,18 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter); +/*! + * \brief FEM update function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, unsigned long ExtIter); + /*! * \brief Relaxation step for displacement transfer. diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 774cc09dddf..438ce0ee204 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -44,6 +44,8 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); + /*-----------------------------------------------------------------*/ /*---------------- Predict structural displacements ---------------*/ /*-----------------------------------------------------------------*/ @@ -83,10 +85,16 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C /*------------------ Structural subiteration ----------------------*/ /*-----------------------------------------------------------------*/ - FEA_Subiteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - + if (fem_solver){ + FEM_Subiteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + } + else{ + FEA_Subiteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + } /*-----------------------------------------------------------------*/ /*----------------- Displacements relaxation ----------------------*/ @@ -123,8 +131,14 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C /*----------------- Update structural solver ----------------------*/ /*-----------------------------------------------------------------*/ - FEA_Update(output, integration_container, geometry_container, - solver_container, config_container, ExtIter); + if (fem_solver){ + FEM_Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, ExtIter); + } + else{ + FEA_Update(output, integration_container, geometry_container, + solver_container, config_container, ExtIter); + } /*-----------------------------------------------------------------*/ @@ -324,7 +338,7 @@ void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometr CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter) { - /*--- Only one zone allowed for the fluid as for now ---*/ + /*--- Only one zone allowed for the structure as for now ---*/ unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; unsigned short iZone; @@ -340,6 +354,46 @@ void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometr } +} + +void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + unsigned long ExtIter) { + + /*--- Only one zone allowed for the structure as for now ---*/ + double Physical_dt, Physical_t; + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + unsigned int ZONE_STRUC = nFluidZone; + + nTotalZone = nFluidZone + nStrucZone; + + bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + + + /*----------------- Compute averaged nodal stress ------------------------*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); + + /*----------------- Update structural solver ----------------------*/ + + if (dynamic){ + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[ZONE_STRUC]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_STRUC]->GetTotal_DynTime()) + integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(true); + } + + } @@ -378,6 +432,85 @@ void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CG } +} + +void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + + nTotalZone = nFluidZone + nStrucZone; + + unsigned int ZONE_STRUC = nFluidZone; + + double Physical_dt, Physical_t; + unsigned short iMesh, iZone; + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); + + bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Set the initial condition ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + if (nonlinear) IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + if (nonlinear){ + for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } + + } + + + } From 9f4e87e1b3dd7f0a6e316f753258ee150b682a50 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 13 Aug 2015 10:27:37 -0400 Subject: [PATCH 048/269] corrected include mpi (for updated wrapper) + apparently subdirs-objected needed in makefile for compiling su2-fsi --- Makefile.am | 2 +- SU2_FSI/include/iteration_structure_fsi.hpp | 5 ++--- SU2_FSI/obj/Makefile.am | 2 ++ configure.ac | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index dc2a929fe02..b6bef7a7ddb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,7 +42,7 @@ # ###################################################################################### - +# AUTOMAKE_OPTIONS = [subdir-objects foreign] ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 # Build third-party optional dependencies first diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp index c8ae78966cc..23ebb52e802 100644 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -30,9 +30,8 @@ #pragma once -#ifdef HAVE_MPI - #include "mpi.h" -#endif +#include "../../Common/include/mpi_structure.hpp" + #include #include "../../SU2_CFD/include/solver_structure.hpp" diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 799ad98be96..4e695540465 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -92,6 +92,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/output_su2.cpp \ ../../SU2_CFD/src/output_paraview.cpp \ ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ + ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ ../../SU2_CFD/src/solver_adjoint_mean.cpp \ ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ @@ -109,6 +110,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_template.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ + ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ ../../SU2_CFD/src/variable_adjoint_mean.cpp \ ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ diff --git a/configure.ac b/configure.ac index 22333c9de11..ed9f25e59ac 100644 --- a/configure.ac +++ b/configure.ac @@ -48,7 +48,7 @@ AC_INIT([SU2], [4.0.0], [su2code-dev@lists.stanford.edu], AC_PREREQ([2.59]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE([foreign]) +AM_INIT_AUTOMAKE([subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)]) # AC_CONFIG_HEADERS([config.h]) From 9bd2ea6df72c98d44467d3cef73c4180b68fa460 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 13 Aug 2015 10:30:23 -0400 Subject: [PATCH 049/269] C&C interpolation now looping over faces instead of elements for 3D. more work required. --- Common/include/dual_grid_structure.hpp | 13 + Common/include/dual_grid_structure.inl | 4 + Common/include/interpolation_structure.hpp | 2 +- Common/src/interpolation_structure.cpp | 288 ++++++++++++--------- SU2_FSI/src/SU2_FSI.cpp | 23 +- 5 files changed, 202 insertions(+), 128 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 3fba17562a1..ee5e2ea52f0 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -879,6 +879,7 @@ class CVertex : public CDualGrid { short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */ + unsigned short Donor_Face; /*!<\brief Store the donor face (w/in donor element) for interpolation across zones */ su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ unsigned long **Donor_Info; /*!\brief Store a list of donor points (by global index) for interpolation across zones: zone,point,marker,vertex */ su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ @@ -1060,6 +1061,18 @@ class CVertex : public CDualGrid { * \return Value of the donor element of a vertex. */ long GetDonorElem(void); + + /*! + * \brief Set the donor face of a vertex for interpolation across zones. + * \param[in] val_donorface- donor face index (w/in donor elem). + */ + void SetDonorFace(unsigned short val_donorface); + + /*! + * \brief Get the donor face of a vertex for interpolation across zones. + * \return Value of the donor face index (w/in donor elem). + */ + unsigned short GetDonorFace(void); /*! * \brief Set the finite element basis functions needed for interpolation. diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 9464d426f37..817c7d0c7e5 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -317,6 +317,10 @@ inline void CVertex::SetDonorElem(long val_donorelem) { Donor_Elem = val_donorel inline long CVertex::GetDonorElem(void) { return Donor_Elem; } +inline void CVertex::SetDonorFace(unsigned short val_donorface) { Donor_Face = val_donorface; } + +inline unsigned short CVertex::GetDonorFace(void) { return Donor_Face; } + inline long CVertex::GetDonorPoint(void) { return PeriodicPoint[0]; } inline long CVertex::GetDonorProcessor(void) { return PeriodicPoint[1]; } diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 17a27ecaf17..e6be4a97b0f 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -187,6 +187,6 @@ class CConsistConserve : public CInterpolator { * \param[in] donor_elem - element index of the element to use for interpolation * \param[in[ nDonorPoints - number of donor points in the element. */ - void Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2); + void Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints); }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index fa8787d954e..5f8a0200c9d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -2,7 +2,7 @@ * \file interpolation_structure.cpp * \brief Main subroutines used by SU2_FSI * \author H. Kline - * \version 3.2.9 "eagle" + * \version 4.0.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -332,11 +332,12 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ su2double* donorCoord; su2double coeff; long donor_elem=0, temp_donor; + unsigned int donor_face; unsigned short int donorindex = 0; unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; - unsigned short markFEA, markFlow; + unsigned short markFEA, markFlow, iFace; unsigned short index = 3; // index of the vertex info in the donorinfo array unsigned int nNodes; /*--- Restricted to 2-zone fluid-structure for now ---*/ @@ -374,6 +375,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ markFlow=iMarkerFlow; } } + //cout <<"markers: " << markFEA << " " << markFlow << endl; /*--Same for all points: -*/ nn[0] = iZone_1; /* Zone of the donor point */ nn[2] = markFEA; /* marker of the donor point */ @@ -383,7 +385,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); last_distance=-1.0; nDonor = 0; - + //cout << "Vertex i: "<< iVertex << endl; /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { @@ -398,68 +400,103 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } donor_elem=0; + donor_face=0; last_distance=-1; - /*--- Now that we know the closest vertex, the closest face must be one of the ones connected to the vertex--*/ + /*--- Now that we know the closest vertex, the closest element must be one of the ones connected to the vertex--*/ for (jElem=0; jElemnode[nn[1]]->GetnElem(); jElem++){ temp_donor = Geometry[iZone_1][MESH_0]->node[nn[1]]->GetElem(jElem); - nNodes = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnNodes(); - /*--- Determine nodes that are on a surface ---*/ - int temp[nNodes]; - it=0; - for (inode=0; inodenode[inode]->GetVertex(markFEA) != -1 ){ - temp[it]=inode; - it++; + //cout <<" element j "<< temp_donor; + + unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' + if (nDim==3) + nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); + /*--- Loop over all the faces of this element to find one(s) on the interface boundary ---*/ + for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); + /*-- Check if on marker of interface---*/ + for (unsigned int iNode=0; iNodeelem[jElem]->GetFaces(iFace, iNode); + face_on_marker = (face_on_marker && (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); + } + } + else + nNodes = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnNodes(); + + /*--- face_on_marker is true iff all nodes on face iFace are in marker markFEA ---*/ + /*--- if iFace is part of markFEA, calculate the isoparametric coefficients ---*/ + if (face_on_marker){ + /*--- use Isoparametric rep. to find distance to projected point on the surface ---*/ + myCoefftemp = new su2double[nNodes]; + Isoparametric( myCoefftemp, iZone_0, markFlow, iVertex, nDim, iZone_1, markFEA, temp_donor, iFace, nNodes); + /*--- If closer than last closest projected point, save. ---*/ + Coord = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(); + for (it=0; it< nNodes; it++){ + /*--- If 3D loop over a face. if 2D loop over an element ---*/ + if (nDim==3) + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + + donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); + for (iDim=0; iDimvertex[markFlow][iVertex]->SetDonorElem(temp_donor); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorFace(iFace); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); + } } - } - nNodes=it; - int temp2[nNodes]; - for (inode=0; inodevertex[markFlow][iVertex]->GetCoord(); - for (it=0; it< nNodes; it++){ - inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(temp2[it]); - donorCoord = Geometry[iZone_1][MESH_0]->node[inode]->GetCoord(); - for (iDim=0; iDimvertex[markFlow][iVertex]->SetDonorElem(temp_donor); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); } } /*--- Set the appropriate amount of memory ---*/ Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); + iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); /*--- Loop over vertices of the element ---*/ for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ /*--- Set the information on the matching vertices for markFEA ---*/ - inode = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - if ( Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA)!= -1 ){ - ivtx = Geometry[iZone_1][MESH_0]->node[inode]->GetVertex(markFEA); - nn[1] = inode; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ + /*--- If 3D loop over a face. if 2D loop over an element ---*/ + if (nDim==3) + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 ---*/ + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + if (ivtx!=-1){ Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,myCoeff[it]); } + else { + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); + if (abs(myCoeff[it])>1e-12) + cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + } } } /*--- Now that all the transfer coefficients have been calculated, loop through the structure vertices - * and set the same transfer coefficients + * and set the same transfer coefficients at the matching points */ index=3; for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { @@ -504,59 +541,50 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2){ +void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, + unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, + unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ int i,j,k; int n0 = nDim+1, n; + unsigned int m = nDonorPoints; + unsigned long jVertex, jPoint; su2double tmp, tmp2, distance; - unsigned long jVertex, inode; - - /*--- Number of neighbor points to interpolate between ---*/ - unsigned int m0 = nDonorPoints, m; - su2double x[m0], x_tmp[m0]; - /*--- Q R matrix system ---*/ - su2double Q[m0*m0], R[m0*m0], A[n0*m0]; + su2double x[m], x_tmp[m]; + su2double Q[m*m], R[m*m], A[n0*m]; + su2double x2[n0]; bool test[n0]; bool testi[n0]; - su2double x2[n0]; - int offset; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; - /*--- m0: # of donor points. m: correcting for req'm that n<=m ---*/ - m = m0; - if (m0){ - for (i=0; ivertex[iMarker][iVertex]->GetCoord(j-1); - for (i=0; ielem[donor_elem]->GetNode(temp2[i]); - for (j=offset; jnode[inode]->GetCoord(j-offset); - } + /*--- temp2 contains node #s that are on the surface (aka, we are excluding interior points) ---*/ + for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); + // jth coordinate of the ith donor vertex + for (j=1; jnode[jPoint]->GetCoord(j-1); } - /*--- IF meps && i=n and tmp!=0){ + else if (tmp!=0){ for (j=0; j=0; i--){ - if (R[i*n+i]>eps) - isoparams[i]=x_tmp[i]/R[i*n+i]; + if (R[i*m+i]>eps) + isoparams[i]=x_tmp[i]/R[i*m+i]; else isoparams[i]=0; - for (j=0; j 1, point is ouside face, not really represented accurately ---*/ + bool inside_face = true; + for (i=0; i 1.1 ) + inside_face = false; + } + if (!inside_face){ + /*--- Revert to nearest neighbor ---*/ + tmp=-1; tmp2=0.0; k=0; + for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); + + for (j=0;jnode[jPoint]->GetCoord(j)-x[j]),2.0); + if (tmp==-1 or tmp2GetMatchingMesh()){ - unsigned int Zones[2]; - unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - Zones[0]=ZONE_0; - Zones[1]=ZONE_1; - if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) - interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); - } - /*--- For the time-spectral solver, set the grid node velocities. ---*/ if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) @@ -285,6 +274,18 @@ int main(int argc, char *argv[]) { config_container[ZONE_0], ZONE_1, nZone); } + if (!config_container[ZONE_0]->GetMatchingMesh()){ + unsigned int Zones[2]; + unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure + Zones[0]=ZONE_0; + Zones[1]=ZONE_1; + if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); + if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) + interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); + } + + /*--- Definition of the output class (one for all zones). The output class manages the writing of all restart, volume solution, surface solution, surface comma-separated value, and convergence history files (both in serial From ddfbe0c6f480f23ea7e42f0ea455e7d5c5282333 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 17 Aug 2015 13:56:44 +0100 Subject: [PATCH 050/269] FEM: fixed some bugs on FSI implementation. --- SU2_CFD/include/variable_structure.hpp | 10 + SU2_CFD/include/variable_structure.inl | 7 + SU2_CFD/src/element_linear.cpp | 8 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 2 +- SU2_CFD/src/numerics_fem_elasticity.cpp | 35 ++- .../src/numerics_fem_linear_elasticity.cpp | 93 ++++---- .../src/numerics_fem_nonlinear_elasticity.cpp | 205 +++++++++--------- SU2_CFD/src/solver_direct_elasticity.cpp | 33 +++ SU2_CFD/src/solver_fem_elasticity.cpp | 20 +- SU2_CFD/src/variable_fem_elasticity.cpp | 10 +- SU2_FSI/src/SU2_FSI.cpp | 11 +- SU2_FSI/src/iteration_structure_fsi.cpp | 67 ++++-- 12 files changed, 304 insertions(+), 197 deletions(-) diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index acc730fb207..80d59f74d19 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1478,6 +1478,11 @@ class CVariable { */ virtual void Set_FlowTraction(double *val_flowTraction); + /*! + * \brief A virtual member. + */ + virtual void Add_FlowTraction(double *val_flowTraction); + /*! * \brief A virtual member. */ @@ -2601,6 +2606,11 @@ class CFEM_ElasVariable : public CVariable { */ void Set_FlowTraction(double *val_flowTraction); + /*! + * \brief Add a value to the flow traction at a node on the structural side + */ + void Add_FlowTraction(double *val_flowTraction); + /*! * \brief Get the residual term due to the flow traction */ diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 11762901317..6e1e928b3a3 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -77,6 +77,8 @@ inline void CVariable::Clear_SurfaceLoad_Res(void) { } inline void CVariable::Set_FlowTraction(double *val_flowTraction) { } +inline void CVariable::Add_FlowTraction(double *val_flowTraction) { } + inline double *CVariable::Get_FlowTraction(void) {return NULL;} inline void CVariable::Clear_FlowTraction(void) { } @@ -910,6 +912,11 @@ inline void CFEM_ElasVariable::Set_FlowTraction(double *val_flowTraction) { FlowTraction[iVar] = val_flowTraction[iVar]; } +inline void CFEM_ElasVariable::Add_FlowTraction(double *val_flowTraction) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + FlowTraction[iVar] += val_flowTraction[iVar]; +} + inline double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} inline void CFEM_ElasVariable::Clear_FlowTraction(void) { diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index be4937ddb4c..15c7e7e5092 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -1121,10 +1121,10 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) GaussCoord[1][0] = 0.577350269189626; GaussCoord[1][1] = -0.577350269189626; GaussCoord[1][2] = -0.577350269189626; GaussWeight[1] = 1.0; GaussCoord[2][0] = 0.577350269189626; GaussCoord[2][1] = 0.577350269189626; GaussCoord[2][2] = -0.577350269189626; GaussWeight[2] = 1.0; GaussCoord[3][0] = -0.577350269189626; GaussCoord[3][1] = 0.577350269189626; GaussCoord[3][2] = -0.577350269189626; GaussWeight[3] = 1.0; - GaussCoord[4][0] = -0.577350269189626; GaussCoord[4][1] = -0.577350269189626; GaussCoord[4][2] = 0.577350269189626; GaussWeight[0] = 1.0; - GaussCoord[5][0] = 0.577350269189626; GaussCoord[5][1] = -0.577350269189626; GaussCoord[5][2] = 0.577350269189626; GaussWeight[1] = 1.0; - GaussCoord[6][0] = 0.577350269189626; GaussCoord[6][1] = 0.577350269189626; GaussCoord[6][2] = 0.577350269189626; GaussWeight[2] = 1.0; - GaussCoord[7][0] = -0.577350269189626; GaussCoord[7][1] = 0.577350269189626; GaussCoord[7][2] = 0.577350269189626; GaussWeight[3] = 1.0; + GaussCoord[4][0] = -0.577350269189626; GaussCoord[4][1] = -0.577350269189626; GaussCoord[4][2] = 0.577350269189626; GaussWeight[4] = 1.0; + GaussCoord[5][0] = 0.577350269189626; GaussCoord[5][1] = -0.577350269189626; GaussCoord[5][2] = 0.577350269189626; GaussWeight[5] = 1.0; + GaussCoord[6][0] = 0.577350269189626; GaussCoord[6][1] = 0.577350269189626; GaussCoord[6][2] = 0.577350269189626; GaussWeight[6] = 1.0; + GaussCoord[7][0] = -0.577350269189626; GaussCoord[7][1] = 0.577350269189626; GaussCoord[7][2] = 0.577350269189626; GaussWeight[7] = 1.0; //TODO: this structure should only be initialized if the problem is dynamic Mab = new double *[nNodes]; diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index 65243e0045d..43b6988e2a3 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -826,7 +826,7 @@ void CGalerkin_FEA::SetFEA_StiffMatrix3D(double **StiffMatrix_Elem, double Coord } } } - + } } diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 947d9f15efe..4008acf48cd 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -40,11 +40,11 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); Kappa = config->GetBulk_Modulus_Struct(); - unsigned short i; + unsigned short iVar; KAux_ab = new double* [nDim]; - for (i = 0; i < nDim; i++) { - KAux_ab[i] = new double[nDim]; + for (iVar = 0; iVar < nDim; iVar++) { + KAux_ab[iVar] = new double[nDim]; } @@ -55,14 +55,14 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Ni_Vec = new double [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ GradNi_Ref_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ GradNi_Curr_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - for (i = 0; i < 3; i++) { - Ba_Mat[i] = new double[nDim]; - Bb_Mat[i] = new double[nDim]; - D_Mat[i] = new double[3]; + for (iVar = 0; iVar < 3; iVar++) { + Ba_Mat[iVar] = new double[nDim]; + Bb_Mat[iVar] = new double[nDim]; + D_Mat[iVar] = new double[3]; } - for (i = 0; i < 4; i++) { - GradNi_Ref_Mat[i] = new double[nDim]; - GradNi_Curr_Mat[i] = new double[nDim]; + for (iVar = 0; iVar < 4; iVar++) { + GradNi_Ref_Mat[iVar] = new double[nDim]; + GradNi_Curr_Mat[iVar] = new double[nDim]; } } else if (nDim == 3){ @@ -72,14 +72,14 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Ni_Vec = new double [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ GradNi_Ref_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ GradNi_Curr_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - for (i = 0; i < 6; i++) { - Ba_Mat[i] = new double[nDim]; - Bb_Mat[i] = new double[nDim]; - D_Mat[i] = new double[6]; + for (iVar = 0; iVar < 6; iVar++) { + Ba_Mat[iVar] = new double[nDim]; + Bb_Mat[iVar] = new double[nDim]; + D_Mat[iVar] = new double[6]; } - for (i = 0; i < 8; i++) { - GradNi_Ref_Mat[i] = new double[nDim]; - GradNi_Curr_Mat[i] = new double[nDim]; + for (iVar = 0; iVar < 8; iVar++) { + GradNi_Ref_Mat[iVar] = new double[nDim]; + GradNi_Curr_Mat[iVar] = new double[nDim]; } } } @@ -126,7 +126,6 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ - unsigned short i, j, k; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; unsigned short iDim; diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index 2a6faf49985..cb90e82b454 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -33,15 +33,15 @@ CFEM_LinearElasticity::CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CFEM_Elasticity(val_nDim, val_nVar, config) { - unsigned short i; + unsigned short iVar; if (nDim == 2){ nodalDisplacement = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - for (i = 0; i < 4; i++) nodalDisplacement[i] = new double[nDim]; + for (iVar = 0; iVar < 4; iVar++) nodalDisplacement[iVar] = new double[nDim]; } else if (nDim == 3){ nodalDisplacement = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - for (i = 0; i < 8; i++) nodalDisplacement[i] = new double[nDim]; + for (iVar = 0; iVar < 8; iVar++) nodalDisplacement[iVar] = new double[nDim]; } @@ -57,7 +57,7 @@ CFEM_LinearElasticity::~CFEM_LinearElasticity(void) { void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ - unsigned short i, j, k; + unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; unsigned short iDim; @@ -65,24 +65,23 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ double Weight, Jac_X; - double AuxMatrix[6][3]; + double AuxMatrix[3][6]; /*--- Initialize auxiliary matrices ---*/ if (nDim == 2) bDim = 3; else if (nDim == 3) bDim = 6; - for (i = 0; i < bDim; i++){ - for (j = 0; j < nDim; j++){ - Ba_Mat[i][j] = 0.0; - Bb_Mat[i][j] = 0.0; + for (iVar = 0; iVar < bDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + Ba_Mat[iVar][jVar] = 0.0; + Bb_Mat[iVar][jVar] = 0.0; } } - for (i = 0; i < 6; i++){ - for (j = 0; j < 3; j++){ - AuxMatrix[i][j] = 0.0; - AuxMatrix[i][j] = 0.0; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 6; jVar++){ + AuxMatrix[iVar][jVar] = 0.0; } } @@ -112,7 +111,7 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ Ba_Mat[2][0] = GradNi_Ref_Mat[iNode][1]; Ba_Mat[2][1] = GradNi_Ref_Mat[iNode][0]; } - else if (nDim ==3){ + else if (nDim == 3){ Ba_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; Ba_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; Ba_Mat[2][2] = GradNi_Ref_Mat[iNode][2]; @@ -121,16 +120,16 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ Ba_Mat[4][0] = GradNi_Ref_Mat[iNode][2]; Ba_Mat[4][2] = GradNi_Ref_Mat[iNode][0]; Ba_Mat[5][1] = GradNi_Ref_Mat[iNode][2]; - Ba_Mat[5][2] = GradNi_Ref_Mat[iNode][1]; ; + Ba_Mat[5][2] = GradNi_Ref_Mat[iNode][1]; } /*--- Compute the BT.D Matrix ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < bDim; j++){ - AuxMatrix[i][j] = 0.0; - for (k = 0; k < bDim; k++){ - AuxMatrix[i][j] += Ba_Mat[k][i]*D_Mat[k][j]; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < bDim; jVar++){ + AuxMatrix[iVar][jVar] = 0.0; + for (kVar = 0; kVar < bDim; kVar++){ + AuxMatrix[iVar][jVar] += Ba_Mat[kVar][iVar]*D_Mat[kVar][jVar]; } } } @@ -144,22 +143,22 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ Bb_Mat[2][1] = GradNi_Ref_Mat[jNode][0]; } else if (nDim ==3){ - Bb_Mat[0][0] = GradNi_Ref_Mat[iNode][0]; - Bb_Mat[1][1] = GradNi_Ref_Mat[iNode][1]; - Bb_Mat[2][2] = GradNi_Ref_Mat[iNode][2]; - Bb_Mat[3][0] = GradNi_Ref_Mat[iNode][1]; - Bb_Mat[3][1] = GradNi_Ref_Mat[iNode][0]; - Bb_Mat[4][0] = GradNi_Ref_Mat[iNode][2]; - Bb_Mat[4][2] = GradNi_Ref_Mat[iNode][0]; - Bb_Mat[5][1] = GradNi_Ref_Mat[iNode][2]; - Bb_Mat[5][2] = GradNi_Ref_Mat[iNode][1]; + Bb_Mat[0][0] = GradNi_Ref_Mat[jNode][0]; + Bb_Mat[1][1] = GradNi_Ref_Mat[jNode][1]; + Bb_Mat[2][2] = GradNi_Ref_Mat[jNode][2]; + Bb_Mat[3][0] = GradNi_Ref_Mat[jNode][1]; + Bb_Mat[3][1] = GradNi_Ref_Mat[jNode][0]; + Bb_Mat[4][0] = GradNi_Ref_Mat[jNode][2]; + Bb_Mat[4][2] = GradNi_Ref_Mat[jNode][0]; + Bb_Mat[5][1] = GradNi_Ref_Mat[jNode][2]; + Bb_Mat[5][2] = GradNi_Ref_Mat[jNode][1]; } - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ - KAux_ab[i][j] = 0.0; - for (k = 0; k < bDim; k++){ - KAux_ab[i][j] += Weight * AuxMatrix[i][k] * Bb_Mat[k][j] * Jac_X; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + KAux_ab[iVar][jVar] = 0.0; + for (kVar = 0; kVar < bDim; kVar++){ + KAux_ab[iVar][jVar] += Weight * AuxMatrix[iVar][kVar] * Bb_Mat[kVar][jVar] * Jac_X; } } } @@ -202,7 +201,7 @@ void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ - unsigned short i, j, k; + unsigned short iVar, jVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; unsigned short iDim; @@ -218,9 +217,9 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ if (nDim == 2) bDim = 3; else if (nDim == 3) bDim = 6; - for (i = 0; i < bDim; i++){ - for (j = 0; j < nDim; j++){ - Ba_Mat[i][j] = 0.0; + for (iVar = 0; iVar < bDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + Ba_Mat[iVar][jVar] = 0.0; } } @@ -240,8 +239,8 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ } } - for (i = 0; i < bDim; i++){ - Strain[i] = 0.0; + for (iVar = 0; iVar < bDim; iVar++){ + Strain[iVar] = 0.0; } for (iNode = 0; iNode < nNode; iNode++){ @@ -267,9 +266,9 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Compute the Strain Vector as B*u ---*/ - for (i = 0; i < bDim; i++){ - for (j = 0; j < nDim; j++){ - Strain[i] += Ba_Mat[i][j]*nodalDisplacement[iNode][j]; + for (iVar = 0; iVar < bDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + Strain[iVar] += Ba_Mat[iVar][jVar]*nodalDisplacement[iNode][jVar]; } } @@ -277,10 +276,10 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Compute the Stress Vector as D*epsilon ---*/ - for (i = 0; i < bDim; i++){ - Stress[i] = 0.0; - for (j = 0; j < bDim; j++){ - Stress[i] += D_Mat[i][j]*Strain[j]; + for (iVar = 0; iVar < bDim; iVar++){ + Stress[iVar] = 0.0; + for (jVar = 0; jVar < bDim; jVar++){ + Stress[iVar] += D_Mat[iVar][jVar]*Strain[jVar]; } } diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 95b6631dcb8..3fe29ad0ebd 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -33,31 +33,31 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CFEM_Elasticity(val_nDim, val_nVar, config) { - unsigned short i; + unsigned short iVar; F_Mat = new double *[3]; b_Mat = new double *[3]; Stress_Tensor = new double *[3]; - for (i = 0; i < 3; i++){ - F_Mat[i] = new double [3]; - b_Mat[i] = new double [3]; - Stress_Tensor[i] = new double [3]; + for (iVar = 0; iVar < 3; iVar++){ + F_Mat[iVar] = new double [3]; + b_Mat[iVar] = new double [3]; + Stress_Tensor[iVar] = new double [3]; } KAux_t_a = new double [nDim]; KAux_P_ab = new double* [nDim]; - for (i = 0; i < nDim; i++) { - KAux_P_ab[i] = new double[nDim]; + for (iVar = 0; iVar < nDim; iVar++) { + KAux_P_ab[iVar] = new double[nDim]; } if (nDim == 2){ currentCoord = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - for (i = 0; i < 4; i++) currentCoord[i] = new double[nDim]; + for (iVar = 0; iVar < 4; iVar++) currentCoord[iVar] = new double[nDim]; } else if (nDim == 3){ currentCoord = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - for (i = 0; i < 8; i++) currentCoord[i] = new double[nDim]; + for (iVar = 0; iVar < 8; iVar++) currentCoord[iVar] = new double[nDim]; } J_F = 0.0; @@ -102,7 +102,7 @@ CFEM_NonlinearElasticity::~CFEM_NonlinearElasticity(void) { void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ - unsigned short i, j, k; + unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; unsigned short iDim, bDim; @@ -111,7 +111,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ double Weight, Jac_X, Jac_x; - double AuxMatrixKc[6][3]; + double AuxMatrixKc[3][6]; double AuxMatrixKs[3]; /*--- Initialize auxiliary matrices ---*/ @@ -119,21 +119,21 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ if (nDim == 2) bDim = 3; else if (nDim == 3) bDim = 6; - for (i = 0; i < bDim; i++){ - for (j = 0; j < nDim; j++){ - Ba_Mat[i][j] = 0.0; - Bb_Mat[i][j] = 0.0; + for (iVar = 0; iVar < bDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + Ba_Mat[iVar][jVar] = 0.0; + Bb_Mat[iVar][jVar] = 0.0; } } - for (i = 0; i < 6; i++){ - for (j = 0; j < 3; j++){ - AuxMatrixKc[i][j] = 0.0; + for (iVar = 0; iVar < 6; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + AuxMatrixKc[iVar][jVar] = 0.0; } } - for (i = 0; i < 3; i++){ - AuxMatrixKs[i] = 0.0; + for (iVar = 0; iVar < 3; iVar++){ + AuxMatrixKs[iVar] = 0.0; } element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ @@ -152,10 +152,10 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Initialize the deformation gradient for each Gauss Point ---*/ - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - F_Mat[i][j] = 0.0; - b_Mat[i][j] = 0.0; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + F_Mat[iVar][jVar] = 0.0; + b_Mat[iVar][jVar] = 0.0; } } @@ -172,9 +172,9 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Compute the deformation gradient ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ - F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Ref_Mat[iNode][j]; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + F_Mat[iVar][jVar] += currentCoord[iNode][iVar]*GradNi_Ref_Mat[iNode][jVar]; } } @@ -196,10 +196,10 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Compute the left Cauchy deformation tensor ---*/ - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - for (k = 0; k < 3; k++){ - b_Mat[i][j] += F_Mat[i][k]*F_Mat[j][k]; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + for (kVar = 0; kVar < 3; kVar++){ + b_Mat[iVar][jVar] += F_Mat[iVar][kVar]*F_Mat[jVar][kVar]; } } } @@ -218,10 +218,10 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ /*--- and add it to the element structure to be retrieved from the solver ---*/ - for (i = 0; i < nDim; i++){ - KAux_t_a[i] = 0.0; - for (j = 0; j < nDim; j++){ - KAux_t_a[i] += Weight * Stress_Tensor[i][j] * GradNi_Curr_Mat[iNode][j] * Jac_x; + for (iVar = 0; iVar < nDim; iVar++){ + KAux_t_a[iVar] = 0.0; + for (jVar = 0; jVar < nDim; jVar++){ + KAux_t_a[iVar] += Weight * Stress_Tensor[iVar][jVar] * GradNi_Curr_Mat[iNode][jVar] * Jac_x; } } @@ -251,21 +251,21 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Compute the BT.D Matrix ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < bDim; j++){ - AuxMatrixKc[i][j] = 0.0; - for (k = 0; k < bDim; k++){ - AuxMatrixKc[i][j] += Ba_Mat[k][i]*D_Mat[k][j]; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < bDim; jVar++){ + AuxMatrixKc[iVar][jVar] = 0.0; + for (kVar = 0; kVar < bDim; kVar++){ + AuxMatrixKc[iVar][jVar] += Ba_Mat[kVar][iVar]*D_Mat[kVar][jVar]; } } } /*--- Compute the BT.D Matrix ---*/ - for (i = 0; i < nDim; i++){ - AuxMatrixKs[i] = 0.0; - for (j = 0; j < nDim; j++){ - AuxMatrixKs[i] += GradNi_Curr_Mat[iNode][j]*Stress_Tensor[j][i]; // DOUBLE CHECK + for (iVar = 0; iVar < nDim; iVar++){ + AuxMatrixKs[iVar] = 0.0; + for (jVar = 0; jVar < nDim; jVar++){ + AuxMatrixKs[iVar] += GradNi_Curr_Mat[iNode][jVar]*Stress_Tensor[jVar][iVar]; // DOUBLE CHECK } } @@ -290,19 +290,19 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } /*--- KAux_ab is the term for the constitutive part of the tangent matrix ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ - KAux_ab[i][j] = 0.0; - for (k = 0; k < bDim; k++){ - KAux_ab[i][j] += Weight * AuxMatrixKc[i][k] * Bb_Mat[k][j] * Jac_x; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + KAux_ab[iVar][jVar] = 0.0; + for (kVar = 0; kVar < bDim; kVar++){ + KAux_ab[iVar][jVar] += Weight * AuxMatrixKc[iVar][kVar] * Bb_Mat[kVar][jVar] * Jac_x; } } } /*--- Ks_Aux_ab is the term for the constitutive part of the tangent matrix ---*/ Ks_Aux_ab = 0.0; - for (i = 0; i < nDim; i++){ - Ks_Aux_ab += Weight * AuxMatrixKs[i] * GradNi_Curr_Mat[jNode][i] * Jac_x; + for (iVar = 0; iVar < nDim; iVar++){ + Ks_Aux_ab += Weight * AuxMatrixKs[iVar] * GradNi_Curr_Mat[jNode][iVar] * Jac_x; } element->Add_Kab(KAux_ab,iNode, jNode); @@ -323,7 +323,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ - unsigned short i, j, k; + unsigned short iVar, jVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; double Weight, Jac_X, Jac_x; @@ -404,9 +404,9 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ for (jNode = 0; jNode < nNode; jNode++){ /*--- KAux_P_ab is the term for the incompressibility part of the tangent matrix ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ - KAux_P_ab[i][j] = Avg_kappa * Vol_current * GradNi_Curr_Mat[iNode][i] * GradNi_Curr_Mat[jNode][j]; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + KAux_P_ab[iVar][jVar] = Avg_kappa * Vol_current * GradNi_Curr_Mat[iNode][iVar] * GradNi_Curr_Mat[jNode][jVar]; } } @@ -421,7 +421,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ - unsigned short i, j, k; + unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; unsigned short iDim, bDim; @@ -434,8 +434,8 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Initialize auxiliary matrices ---*/ - for (i = 0; i < 3; i++){ - AuxMatrixKt[i] = 0.0; + for (iVar = 0; iVar < 3; iVar++){ + AuxMatrixKt[iVar] = 0.0; } element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ @@ -454,10 +454,10 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Initialize the deformation gradient for each Gauss Point ---*/ - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - F_Mat[i][j] = 0.0; - b_Mat[i][j] = 0.0; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + F_Mat[iVar][jVar] = 0.0; + b_Mat[iVar][jVar] = 0.0; } } @@ -474,9 +474,9 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Compute the deformation gradient ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ - F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Ref_Mat[iNode][j]; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + F_Mat[iVar][jVar] += currentCoord[iNode][iVar]*GradNi_Ref_Mat[iNode][jVar]; } } @@ -498,10 +498,10 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Compute the left Cauchy deformation tensor ---*/ - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - for (k = 0; k < 3; k++){ - b_Mat[i][j] += F_Mat[i][k]*F_Mat[j][k]; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + for (kVar = 0; kVar < 3; kVar++){ + b_Mat[iVar][jVar] += F_Mat[iVar][kVar]*F_Mat[jVar][kVar]; } } } @@ -516,10 +516,10 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ /*--- and add it to the element structure to be retrieved from the solver ---*/ - for (i = 0; i < nDim; i++){ - KAux_t_a[i] = 0.0; - for (j = 0; j < nDim; j++){ - KAux_t_a[i] += Weight * Stress_Tensor[i][j] * GradNi_Curr_Mat[iNode][j] * Jac_x; + for (iVar = 0; iVar < nDim; iVar++){ + KAux_t_a[iVar] = 0.0; + for (jVar = 0; jVar < nDim; jVar++){ + KAux_t_a[iVar] += Weight * Stress_Tensor[iVar][jVar] * GradNi_Curr_Mat[iNode][jVar] * Jac_x; } } @@ -533,7 +533,7 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ - unsigned short i, j, k; + unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; unsigned short iDim, bDim; @@ -558,10 +558,10 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Initialize the deformation gradient for each Gauss Point ---*/ - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - F_Mat[i][j] = 0.0; - b_Mat[i][j] = 0.0; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + F_Mat[iVar][jVar] = 0.0; + b_Mat[iVar][jVar] = 0.0; } } @@ -577,9 +577,9 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Compute the deformation gradient ---*/ - for (i = 0; i < nDim; i++){ - for (j = 0; j < nDim; j++){ - F_Mat[i][j] += currentCoord[iNode][i]*GradNi_Ref_Mat[iNode][j]; + for (iVar = 0; iVar < nDim; iVar++){ + for (jVar = 0; jVar < nDim; jVar++){ + F_Mat[iVar][jVar] += currentCoord[iNode][iVar]*GradNi_Ref_Mat[iNode][jVar]; } } @@ -601,10 +601,10 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Compute the left Cauchy deformation tensor ---*/ - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - for (k = 0; k < 3; k++){ - b_Mat[i][j] += F_Mat[i][k]*F_Mat[j][k]; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + for (kVar = 0; kVar < 3; kVar++){ + b_Mat[iVar][jVar] += F_Mat[iVar][kVar]*F_Mat[jVar][kVar]; } } } @@ -642,7 +642,6 @@ CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { - unsigned short i,j; double Mu_p, Lambda_p; double dij; @@ -672,7 +671,7 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { - unsigned short i,j; + unsigned short iVar,jVar; double Mu_J, Lambda_J; double dij; @@ -682,11 +681,11 @@ void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { Lambda_J = Lambda/J_F; } - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - if (i == j) dij = 1.0; - else if (i != j) dij = 0.0; - Stress_Tensor[i][j] = Mu_J * (b_Mat[i][j] - dij) + Lambda_J * log(J_F) * dij; + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 3; jVar++){ + if (iVar == jVar) dij = 1.0; + else if (iVar != jVar) dij = 0.0; + Stress_Tensor[iVar][jVar] = Mu_J * (b_Mat[iVar][jVar] - dij) + Lambda_J * log(J_F) * dij; } } @@ -704,13 +703,13 @@ CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { - unsigned short i,j; + unsigned short iVar; double dij, el_P; double Ib = 0.0, Jft; /*--- First invariant of b -> Ib = tr(b) ---*/ - for (i = 0; i < 3; i++){ - Ib += b_Mat[i][i]; + for (iVar = 0; iVar < 3; iVar++){ + Ib += b_Mat[iVar][iVar]; } /*--- Retrieve element pressure ---*/ @@ -801,13 +800,13 @@ void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element) { - unsigned short i,j; + unsigned short iDim,jDim; double dij, el_P; double Ib = 0.0, Jft; /*--- First invariant of b -> Ib = tr(b) ---*/ - for (i = 0; i < 3; i++){ - Ib += b_Mat[i][i]; + for (iDim = 0; iDim < 3; iDim++){ + Ib += b_Mat[iDim][iDim]; } /*--- Retrieve element pressure ---*/ @@ -817,11 +816,11 @@ void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element) { /*--- J^(-5/3) ---*/ Jft = pow(J_F, -1.666666666666667); - for (i = 0; i < 3; i++){ - for (j = 0; j < 3; j++){ - if (i == j) dij = 1.0; - else if (i != j) dij = 0.0; - Stress_Tensor[i][j] = Mu * Jft * (b_Mat[i][j] - ((1.0 / 3.0) * Ib * dij )) + el_P * dij; + for (iDim = 0; iDim < 3; iDim++){ + for (jDim = 0; jDim < 3; jDim++){ + if (iDim == jDim) dij = 1.0; + else if (iDim != jDim) dij = 0.0; + Stress_Tensor[iDim][jDim] = Mu * Jft * (b_Mat[iDim][jDim] - ((1.0 / 3.0) * Ib * dij )) + el_P * dij; } } diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index ba3621494df..af569855c14 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -1593,6 +1593,39 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver } +// double checkJacobian; +// unsigned long iNode, jNode; +// unsigned short jVar; +// +// ofstream myfile; +// myfile.open ("oldJacobian.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// for (jNode = 0; jNode < nPoint; jNode++){ +// myfile << "Node " << iNode << " " << jNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// for (jVar = 0; jVar < nVar; jVar++){ +// checkJacobian = StiffMatrixTime.GetBlock(iNode, jNode, iVar, jVar); +// myfile << checkJacobian << " " ; +// } +// myfile << endl; +// } +// } +// } +// myfile.close(); +// +// myfile.open ("oldResidual.txt"); +// +// for (iNode = 0; iNode < nPoint; iNode++){ +// myfile << "Node " << iNode << endl; +// for (iVar = 0; iVar < nVar; iVar++){ +// checkJacobian = LinSysRes.GetBlock(iNode, iVar); +// myfile << checkJacobian << " " ; +// myfile << endl; +// } +// } +// myfile.close(); + /*--- Solve the linear dynamic system ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 704bd4b1a45..3eaf0d5632d 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -443,6 +443,8 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s double *Ta = NULL; unsigned short NelNodes, jNode; + double checkJacobian, *checkCoord; + /*--- Loops over all the elements ---*/ for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -458,7 +460,9 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; @@ -1252,6 +1256,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation. + double *checkCoord; if (!dynamic){ @@ -1324,9 +1329,10 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- External surface load contribution ---*/ Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + checkCoord = geometry->node[iPoint]->GetCoord(); /*--- Add FSI contribution ---*/ if (fsi) { - /*--- It may be worthy restricting the flow traction to the boundary elements... ---*/ + /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); LinSysRes.AddBlock(iPoint, Res_FSI_Cont); } @@ -1432,6 +1438,13 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + + /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ + /*--- This may be improved ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++){ + node[iPoint]->Clear_FlowTraction(); + } + unsigned short iDim, jDim; // Check the kind of fluid problem @@ -1602,8 +1615,9 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe } /*--- Set the Flow traction ---*/ - node[donorVertex]->Set_FlowTraction(Residual); - + //node[donorVertex]->Set_FlowTraction(Residual); + /*--- Add to the Flow traction (to add values to corners...) ---*/ + node[donorVertex]->Add_FlowTraction(Residual); } } diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index e143763de85..ae1daec8f42 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -77,6 +77,13 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u Solution_Vel_time_n = new double [nVar]; Solution_Accel = new double [nVar]; Solution_Accel_time_n = new double [nVar]; + for (iVar = 0; iVar < nVar; iVar++){ + Solution_time_n[iVar] = val_fea[iVar]; + Solution_Vel[iVar] = val_fea[iVar]; + Solution_Vel_time_n[iVar] = val_fea[iVar]; + Solution_Accel[iVar] = val_fea[iVar]; + Solution_Accel_time_n[iVar] = val_fea[iVar]; + } } else { Solution_time_n = NULL; @@ -93,7 +100,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u for (iVar = 0; iVar < nVar; iVar++){ FlowTraction[iVar] = val_fea[iVar]; Solution_Pred[iVar] = val_fea[iVar]; - Solution_Pred_Old[iVar] =val_fea[iVar]; + Solution_Pred_Old[iVar] = val_fea[iVar]; } } else { @@ -107,7 +114,6 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u if (body_forces) Residual_Ext_Body = new double [nVar]; else Residual_Ext_Body = NULL; Residual_Ext_Surf = new double [nVar]; - } CFEM_ElasVariable::~CFEM_ElasVariable(void) { diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index e82ff830b9e..962f1650f24 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -401,9 +401,16 @@ int main(int argc, char *argv[]) { runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); /*--- Update the convergence history file (serial and parallel computations). ---*/ + /*--- This is temporal and for practical purposes. ---*/ + cout << "---------------------------------------------------------------------------" << endl; + for (iZone = 0; iZone < nZone; iZone++){ + if (iZone == 0) cout << "Fluid convergence: " << endl; + else if (iZone == 1) cout << "Structural convergence: " << endl; + output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, + config_container, integration_container, false, UsedTime, iZone); + } - output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, - config_container, integration_container, false, UsedTime, ZONE_0); + cout << "---------------------------------------------------------------------------" << endl; /*--- Evaluate the new CFL number (adaptive). ---*/ diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 438ce0ee204..49ca05dacfd 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -72,6 +72,11 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox); + /*--- Write the convergence history for the fluid (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*-----------------------------------------------------------------*/ /*------------------- Set FEA loads from fluid --------------------*/ /*-----------------------------------------------------------------*/ @@ -96,6 +101,10 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C surface_movement, grid_movement, FFDBox); } + /*--- Write the convergence history for the structure (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_1); + /*-----------------------------------------------------------------*/ /*----------------- Displacements relaxation ----------------------*/ /*-----------------------------------------------------------------*/ @@ -454,52 +463,75 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems + + double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); + double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); + + bool statTime = (CurrentTime <= Static_Time); #ifdef HAVE_MPI int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - /*--- Set the initial condition ---*/ + /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ + integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(false); - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + if (linear){ - /*--- Set the value of the internal iteration ---*/ + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - IntIter = ExtIter; - if (nonlinear) IntIter = 0; + /*--- Set the value of the internal iteration ---*/ - /*--- FEA equations ---*/ + IntIter = ExtIter; - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + /*--- FEA equations ---*/ - /*--- Run the iteration ---*/ + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + /*--- Run the iteration ---*/ + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + } } + /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time ---*/ + else if ((nonlinear) && (!statTime)){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - if (nonlinear){ for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { /*--- Write the convergence history (only screen output) ---*/ - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); config_container[iZone]->SetIntIter(IntIter); integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -507,6 +539,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG } + } From 8455ae6c28ea52a6469e126718dff56ab18ed371 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 17 Aug 2015 11:35:32 -0400 Subject: [PATCH 051/269] more robust C&C interpolation: reverts to NN in certain error-prone cases --- Common/src/interpolation_structure.cpp | 143 +++++++++++++++++++------ 1 file changed, 109 insertions(+), 34 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 5f8a0200c9d..88de9306156 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -322,7 +322,8 @@ CConsistConserve::CConsistConserve(CGeometry ***geometry_container, CConfig **co CConsistConserve::~CConsistConserve(){} void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long iPoint, jPoint, iVertex, jVertex,*nn, inode, ivtx, jElem; + unsigned long iPoint, jPoint, iVertex, jVertex,*nn, inode, jElem; + long ivtx; unsigned short iMarker, iDim, jMarker, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); unsigned short iDonor, jDonor; @@ -456,7 +457,6 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ donor_elem = temp_donor; // mem leak? myCoeff = new su2double[nNodes]; - //cout << "distance: " << distance << endl;; for (it=0; it< nNodes; it++){ myCoeff[it] = myCoefftemp[it]; } @@ -467,31 +467,89 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } } + + /*--- If nDonorPoints ==0, no match was found, set nearest neighbor ---*/ + if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()==0){ + nNodes=1; + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); + donor_elem = -1; + //cout <<" NN" << iVertex << endl; + myCoeff = new su2double[1]; + myCoeff[0] = 1; + } + /*--- print the eventual matched point ---*/ + /* + cout << " Final case for "<< iVertex << " : " << distance <<", " << + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace() + <<", "<vertex[markFlow][iVertex]->GetDonorElem() + <<", iso: "; + for (it=0; it< nNodes; it++){ + cout << myCoeff[it] << " "; + } + cout << endl; + */ /*--- Set the appropriate amount of memory ---*/ Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); /*--- Loop over vertices of the element ---*/ - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - /*--- Set the information on the matching vertices for markFEA ---*/ - /*--- If 3D loop over a face. if 2D loop over an element ---*/ - if (nDim==3) - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); - else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 ---*/ - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ - if (ivtx!=-1){ - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,myCoeff[it]); + if (nDim==3){ + unsigned int it2=0; + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + if (donor_elem!=-1){ + //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + } + else{ + jPoint = nn[1]; + } + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + if (ivtx!=-1){ + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); + } + else{ + /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 + and we should neglect this point (TODO: make sure this is also taken into account in isoparam) + Reduce the number of donor points --*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); + if (abs(myCoeff[it])>1e-12) + cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + it2++; + } } - else { - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); - if (abs(myCoeff[it])>1e-12) - cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + } + else{ + unsigned int it2=0; + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + if (donor_elem!=-1){ + //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + } + else{ + jPoint = nn[1]; + } + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + if (ivtx!=-1){ + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); + } + else { + /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 + and we should neglect this point (TODO: make sure this is also taken into account in isoparam) + Reduce the number of donor points --*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); + if (abs(myCoeff[it])>1e-12) + cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + it2++; + } } } } @@ -542,21 +600,21 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, - unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, - unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ + unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, + unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ int i,j,k; int n0 = nDim+1, n; - unsigned int m = nDonorPoints; + int m = nDonorPoints, m0; unsigned long jVertex, jPoint; su2double tmp, tmp2, distance; su2double x[m], x_tmp[m]; su2double Q[m*m], R[m*m], A[n0*m]; su2double x2[n0]; - bool test[n0]; - bool testi[n0]; + bool test[n0], testi[n0],on_marker[m]; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; + m0=m; /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ /*--- Right hand side is [1, \vec{x}']'---*/ @@ -571,15 +629,23 @@ void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, x[j]=Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetCoord(j-1); /*--- temp2 contains node #s that are on the surface (aka, we are excluding interior points) ---*/ - for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,k); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(k); + // Neglect donor points that are not members of the matching marker. + on_marker[k] =(Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker)!=-1); + if (on_marker[k]){ + // jth coordinate of the ith donor vertex + for (j=1; jnode[jPoint]->GetCoord(j-1); + i++; + } else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); - // jth coordinate of the ith donor vertex - for (j=1; jnode[jPoint]->GetCoord(j-1); + m--; } /*--- Eliminate degenerate rows: @@ -708,5 +774,14 @@ void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, } isoparams[k]=1; } - + /*--- Check 3: reorg for neglected points--- */ + i=m-1; + for (k=m0-1;k>=0;k--){ + if (on_marker[k]){ + isoparams[k] = isoparams[i]; + i--; + } + else + isoparams[k] = 0; + } } From aacd0c7e74c9257cf420b9b4e91d97295ca5ff40 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 17 Aug 2015 14:03:40 -0400 Subject: [PATCH 052/269] subdirs apparently needed in makefile.am - note: also need to automake --- SU2_FSI/obj/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 4e695540465..52c53805315 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -33,7 +33,7 @@ # ###################################################################################### -# AUTOMAKE_OPTIONS = subdir-objects +AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} bin_PROGRAMS = ../bin/SU2_FSI From 69f7bcf926adee112ee62b3f6b076b246b938127 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 18 Aug 2015 20:11:17 +0100 Subject: [PATCH 053/269] FEM: Preliminary reaction calculation. --- SU2_CFD/src/iteration_structure.cpp | 10 +- .../src/numerics_fem_nonlinear_elasticity.cpp | 27 ++- SU2_CFD/src/solver_fem_elasticity.cpp | 175 ++++++++++++++---- 3 files changed, 169 insertions(+), 43 deletions(-) diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 247358285a2..aa551f04252 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -780,7 +780,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai } - /*----------------- Compute averaged nodal stress ------------------------*/ + /*----------------- Compute averaged nodal stress and reactions ------------------------*/ for (iZone = 0; iZone < nZone; iZone++) solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); @@ -795,10 +795,10 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Verify convergence criteria (based on total time) ---*/ - Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) - integration_container[iZone][FEA_SOL]->SetConvergence(true); +// Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); +// Physical_t = (ExtIter+1)*Physical_dt; +// if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) +// integration_container[iZone][FEA_SOL]->SetConvergence(true); } diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 3fe29ad0ebd..fb87947c891 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -126,8 +126,8 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } } - for (iVar = 0; iVar < 6; iVar++){ - for (jVar = 0; jVar < 3; jVar++){ + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < 6; jVar++){ AuxMatrixKc[iVar][jVar] = 0.0; } } @@ -542,8 +542,9 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ double Weight, Jac_X, Jac_x; - element->clearStress(); - element->ComputeGrad_Linear(); + element->clearStress(); /*--- TODO: put these two together ---*/ + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ + element->ComputeGrad_NonLinear(); nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); @@ -572,6 +573,7 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ for (iDim = 0; iDim < nDim; iDim++){ GradNi_Ref_Mat[iNode][iDim] = element->GetGradNi_X(iNode,iGauss,iDim); + GradNi_Curr_Mat[iNode][iDim] = element->GetGradNi_x(iNode,iGauss,iDim); currentCoord[iNode][iDim] = element->GetCurr_Coord(iNode, iDim); } @@ -614,6 +616,22 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ Compute_Stress_Tensor(element); for (iNode = 0; iNode < nNode; iNode++){ + + + /*--- Compute the nodal stress term for each gaussian point and for each node, ---*/ + /*--- and add it to the element structure to be retrieved from the solver ---*/ + + for (iVar = 0; iVar < nDim; iVar++){ + KAux_t_a[iVar] = 0.0; + for (jVar = 0; jVar < nDim; jVar++){ + KAux_t_a[iVar] += Weight * Stress_Tensor[iVar][jVar] * GradNi_Curr_Mat[iNode][jVar] * Jac_x; + } + } + + element->Add_Kt_a(KAux_t_a, iNode); + + /*--- Compute the average nodal stresses for each node ---*/ + element->Add_NodalStress(Stress_Tensor[0][0] * element->GetNi_Extrap(iNode, iGauss), iNode, 0); element->Add_NodalStress(Stress_Tensor[1][1] * element->GetNi_Extrap(iNode, iGauss), iNode, 1); element->Add_NodalStress(Stress_Tensor[0][1] * element->GetNi_Extrap(iNode, iGauss), iNode, 2); @@ -622,6 +640,7 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ element->Add_NodalStress(Stress_Tensor[0][2] * element->GetNi_Extrap(iNode, iGauss), iNode, 4); element->Add_NodalStress(Stress_Tensor[1][2] * element->GetNi_Extrap(iNode, iGauss), iNode, 5); } + } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 3eaf0d5632d..23382de7e3c 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -691,8 +691,6 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); -// LinSysReact.AddBlock(indexNode[iNode], Res_Stress_i); - } } @@ -713,9 +711,13 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s double val_Coord, val_Sol; int EL_KIND; + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + if (nDim == 2) nStress = 3; else if (nDim == 3) nStress = 6; + double *Ta = NULL; + unsigned short NelNodes; /*--- Restart stress to avoid adding results from previous time steps ---*/ @@ -756,6 +758,12 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s for (iNode = 0; iNode < NelNodes; iNode++){ + /*--- This only works if the problem is nonlinear ---*/ + Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + LinSysReact.AddBlock(indexNode[iNode], Res_Stress_i); + for (iStress = 0; iStress < nStress; iStress++){ node[indexNode[iNode]]->AddStress_FEM(iStress, (element_container[EL_KIND]->Get_NodalStress(iNode, iStress) / @@ -817,45 +825,140 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } - unsigned short iMarker; - unsigned long iVertex; + double checkJacobian; + unsigned long jNode; + + ofstream myfile; + myfile.open ("Reactions.txt"); + + unsigned short iMarker; + unsigned long iVertex; + double val_Reaction; + + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + + if (!dynamic){ + /*--- Loop over all the markers ---*/ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { + + /*--- If it corresponds to a clamped boundary ---*/ + + case CLAMPED_BOUNDARY: + + myfile << "MARKER " << iMarker << ":" << endl; + + /*--- Loop over all the vertices ---*/ + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + + /*--- Get node index ---*/ + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + myfile << "Node " << iPoint << "." << " \t "; - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) - switch (config->GetMarker_All_KindBC(iMarker)) { - case CLAMPED_BOUNDARY: - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + for (iDim = 0; iDim < nDim; iDim++){ + /*--- Retrieve coordinate ---*/ + val_Coord = geometry->node[iPoint]->GetCoord(iDim); + myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + } + + for (iVar = 0; iVar < nVar; iVar++){ + /*--- Retrieve reaction ---*/ + val_Reaction = LinSysReact.GetBlock(iPoint, iVar); + myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + } - /*--- Get node index ---*/ + myfile << endl; + } + myfile << endl; + break; + } + } + else if (dynamic){ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + case (NEWMARK_IMPLICIT): + + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + /*--- Loop over all the markers ---*/ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { - /*--- Get normal at point ---*/ - /*--- The direction is to the INTERIOR of the material ---*/ - normalVertex = geometry->vertex[iMarker][iVertex]->GetNormal(); + /*--- If it corresponds to a clamped boundary ---*/ - /*--- Get stress ---*/ + case CLAMPED_BOUNDARY: - Stress = node[iPoint]->GetStress_FEM(); + myfile << "MARKER " << iMarker << ":" << endl; - if (geometry->GetnDim() == 2) { + /*--- Loop over all the vertices ---*/ + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - stressTensor[0][0] = Stress[0]; - stressTensor[0][1] = Stress[2]; - stressTensor[1][0] = Stress[2]; - stressTensor[1][1] = Stress[1]; + /*--- Get node index ---*/ + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - } + myfile << "Node " << iPoint << "." << " \t "; - for (iVar = 0; iVar < nVar; iVar++){ - nodeReactions[iVar] = 0.0; - for (jVar = 0; jVar < nVar; jVar++){ - nodeReactions[iVar] += stressTensor[iVar][jVar] * normalVertex[jVar]; - } - } + for (iDim = 0; iDim < nDim; iDim++){ + /*--- Retrieve coordinate ---*/ + val_Coord = geometry->node[iPoint]->GetCoord(iDim); + myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + } - } - break; - } + /*--- Retrieve the time contribution ---*/ + Res_Time_Cont = TimeRes.GetBlock(iPoint); + + for (iVar = 0; iVar < nVar; iVar++){ + /*--- Retrieve reaction ---*/ + val_Reaction = LinSysReact.GetBlock(iPoint, iVar) + Res_Time_Cont[iVar]; + myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + } + + myfile << endl; + } + myfile << endl; + break; + } + + + break; + case (GA_IMPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + } + + } + + + + myfile.close(); #ifdef HAVE_MPI @@ -930,11 +1033,15 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con node[iPoint]->SetSolution_Accel(Solution); } - for (iVar = 0; iVar < nVar; iVar++){ - nodeReactions[iVar] = - 1.0 * LinSysRes.GetBlock(iPoint, iVar); - } +// for (iVar = 0; iVar < nVar; iVar++){ +// nodeReactions[iVar] = - 1.0 * LinSysRes.GetBlock(iPoint, iVar); +// } +// +// LinSysReact.SetBlock(iPoint,nodeReactions); + + /*--- Initialize the reaction vector ---*/ + LinSysReact.SetBlock(iPoint, Residual); - LinSysReact.SetBlock(iPoint,nodeReactions); LinSysRes.SetBlock(iPoint, Residual); From 4afa97565c7fe0315913479764776f01c61c0b8f Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 18 Aug 2015 16:45:52 -0400 Subject: [PATCH 054/269] cleaning up cout --- Common/lib/Makefile.am | 2 - Common/lib/Makefile.in | 2 - Common/src/interpolation_structure.cpp | 96 +++-------- Makefile.am | 17 +- SU2_FSI/obj/Makefile.am | 16 +- configure.ac | 228 +------------------------ 6 files changed, 49 insertions(+), 312 deletions(-) diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index 2ccd31c58e0..5615a558788 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -79,7 +79,6 @@ lib_sources = \ ../include/matrix_structure.inl \ ../include/mpi_structure.hpp \ ../include/mpi_structure.inl \ - ../include/interpolation_structure.hpp \ ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../src/config_structure.cpp \ @@ -92,7 +91,6 @@ lib_sources = \ ../src/vector_structure.cpp \ ../src/matrix_structure.cpp \ ../src/mpi_structure.cpp \ - ../src/interpolation_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 2e7b05a6e3c..e6db421a93f 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -137,7 +137,6 @@ am__libSU2_a_SOURCES_DIST = \ ../include/primal_grid_structure.inl \ ../include/vector_structure.hpp \ ../include/vector_structure.inl \ - ../include/interpolation_structure.hpp \ ../include/matrix_structure.hpp \ ../include/matrix_structure.inl ../include/mpi_structure.hpp \ ../include/mpi_structure.inl ../include/datatype_structure.hpp \ @@ -146,7 +145,6 @@ am__libSU2_a_SOURCES_DIST = \ ../src/grid_adaptation_structure.cpp \ ../src/grid_movement_structure.cpp \ ../src/linear_solvers_structure.cpp \ - ../src/interpolation_structure.cpp \ ../src/primal_grid_structure.cpp ../src/vector_structure.cpp \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 88de9306156..00d2e15f6f0 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -268,11 +268,6 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nn[3] = jVertex; /* vertex index within marker of the donor point */ } } - - /*--- Set the information of the nearest neighbor (donorindex = 0) ---*/ - /*--- Enable this to check that we are doing it fine ---*/ - //cout << "The distance from the vertex " << iVertex << " in the Flow marker " << markFlow << " to the vertex " << nn[3] << " in the FEA marker " << markFEA << " is " << last_distance << endl; - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); } @@ -300,8 +295,6 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nn[3] = jVertex; /* vertex index within marker of the donor point */ } } - /*--- Enable this to check that we are doing it fine ---*/ - //cout << "The distance from the vertex " << iVertex << " in the FEA marker " << markFEA << " to the vertex " << nn[3] << " in the Flow marker " << markFlow << " is " << last_distance << endl; /*--- Set the information of the nearest neighbor ---*/ Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); @@ -376,7 +369,6 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ markFlow=iMarkerFlow; } } - //cout <<"markers: " << markFEA << " " << markFlow << endl; /*--Same for all points: -*/ nn[0] = iZone_1; /* Zone of the donor point */ nn[2] = markFEA; /* marker of the donor point */ @@ -386,9 +378,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); last_distance=-1.0; nDonor = 0; - //cout << "Vertex i: "<< iVertex << endl; /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ - for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); distance = 0.0; @@ -406,8 +396,6 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Now that we know the closest vertex, the closest element must be one of the ones connected to the vertex--*/ for (jElem=0; jElemnode[nn[1]]->GetnElem(); jElem++){ temp_donor = Geometry[iZone_1][MESH_0]->node[nn[1]]->GetElem(jElem); - //cout <<" element j "<< temp_donor; - unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' if (nDim==3) nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); @@ -473,7 +461,6 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nNodes=1; Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); donor_elem = -1; - //cout <<" NN" << iVertex << endl; myCoeff = new su2double[1]; myCoeff[0] = 1; } @@ -491,65 +478,36 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Set the appropriate amount of memory ---*/ Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); + unsigned int it2=0; // offset introduced to reject points not on the marker /*--- Loop over vertices of the element ---*/ - if (nDim==3){ - unsigned int it2=0; - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - if (donor_elem!=-1){ - //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + if (donor_elem!=-1){ + //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. + if (nDim==3) jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); - } - else{ - jPoint = nn[1]; - } - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); - if (ivtx!=-1){ - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); - } - else{ - /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 - and we should neglect this point (TODO: make sure this is also taken into account in isoparam) - Reduce the number of donor points --*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); - if (abs(myCoeff[it])>1e-12) - cout <<"Warning: interior pt assigned nonzero coeff."<< endl; - it2++; - } - } - } - else{ - unsigned int it2=0; - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - if (donor_elem!=-1){ - //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. + else jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - } - else{ - jPoint = nn[1]; - } - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); - if (ivtx!=-1){ - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); - } - else { - /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 - and we should neglect this point (TODO: make sure this is also taken into account in isoparam) - Reduce the number of donor points --*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); - if (abs(myCoeff[it])>1e-12) - cout <<"Warning: interior pt assigned nonzero coeff."<< endl; - it2++; - } + } + else{ + jPoint = nn[1]; + } + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + if (ivtx!=-1){ + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); + } + else{ + /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 + and we should neglect this point (TODO: make sure this is also taken into account in isoparam) + Reduce the number of donor points --*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); + if (abs(myCoeff[it])>1e-12) + cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + it2++; } } } diff --git a/Makefile.am b/Makefile.am index b6bef7a7ddb..9a1c0ff6690 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,5 @@ -################################################################################ -# -# \file Makefile.am -# \brief Global makefile for the SU2 project -# \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# SU2 global Makefile.am +# SU2 v3.2.7 "eagle" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -42,21 +38,16 @@ # ###################################################################################### -# AUTOMAKE_OPTIONS = [subdir-objects foreign] +# AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 -# Build third-party optional dependencies first +# build third-party optional dependencies first SUBDIRS = externals -# Build the SU2 C++ common library SUBDIRS += Common/lib -# Install the SU2 Python scripts to the proper location -if BUILD_NORMAL SUBDIRS += SU2_PY -endif -# Build each of the SU2 C++ modules if BUILD_CFD SUBDIRS +=SU2_CFD/obj endif diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 52c53805315..b803b7c270f 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -33,7 +33,7 @@ # ###################################################################################### -AUTOMAKE_OPTIONS = subdir-objects +# AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} bin_PROGRAMS = ../bin/SU2_FSI @@ -43,6 +43,10 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/fluid_model.hpp \ + ../../SU2_CFD/include/gauss_structure.hpp \ + ../../SU2_CFD/include/gauss_structure.inl \ + ../../SU2_CFD/include/element_structure.hpp \ + ../../SU2_CFD/include/element_structure.inl \ ../../SU2_CFD/include/fluid_model.inl \ ../../SU2_CFD/include/integration_structure.hpp \ ../../SU2_CFD/include/integration_structure.inl \ @@ -64,6 +68,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ ../../SU2_CFD/src/fluid_model_pvdw.cpp \ ../../SU2_CFD/src/fluid_model_ppr.cpp \ + ../../SU2_CFD/src/gauss_structure.cpp \ + ../../SU2_CFD/src/element_linear.cpp \ + ../../SU2_CFD/src/element_structure.cpp \ ../../SU2_CFD/src/integration_structure.cpp \ ../../SU2_CFD/src/integration_time.cpp \ ../../SU2_CFD/src/iteration_structure.cpp \ @@ -82,6 +89,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/numerics_machine_learning.cpp \ ../../SU2_CFD/src/numerics_linearized_mean.cpp \ ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ ../../SU2_CFD/src/numerics_structure.cpp \ ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ ../../SU2_CFD/src/numerics_template.cpp \ @@ -92,7 +102,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/output_su2.cpp \ ../../SU2_CFD/src/output_paraview.cpp \ ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ - ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ ../../SU2_CFD/src/solver_adjoint_mean.cpp \ ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ @@ -106,11 +115,11 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_direct_wave.cpp \ ../../SU2_CFD/src/solver_linearized_mean.cpp \ ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ - ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ ../../SU2_CFD/src/variable_adjoint_mean.cpp \ ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ @@ -124,6 +133,7 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/variable_direct_wave.cpp \ ../../SU2_CFD/src/variable_linearized_mean.cpp \ ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ + ../../SU2_CFD/src/variable_fem_elasticity.cpp \ ../../SU2_CFD/src/variable_structure.cpp \ ../../SU2_CFD/src/variable_template.cpp diff --git a/configure.ac b/configure.ac index ed9f25e59ac..edb5e48c357 100644 --- a/configure.ac +++ b/configure.ac @@ -1,9 +1,5 @@ -################################################################################ -# -# \file configure.ac -# \brief Main file for configuring the autoconf/automake build process -# \author M. Colonno, T. Economon, F. Palacios, B. Kirk -# \version 4.0.0 "Cardinal" +# SU2 autoconf file +# SU2 v3.2.9 "eagle" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -56,7 +52,7 @@ SU2_SET_COMPILERS AM_PROG_CC_C_O AC_PROG_RANLIB AC_PROG_MKDIR_P -#PKG_PROG_PKG_CONFIG +AC_PROG_CXX # -------------------------------------------------------------- # Check for important type sizes @@ -76,28 +72,6 @@ AC_ARG_WITH(CGNS-lib, AC_ARG_WITH(CGNS-include, AS_HELP_STRING([--with-CGNS-include[=ARG]], [CGNS include directory, ARG = path to cgnslib.h]), [with_CGNS_include=$withval], [with_CGNS_include="no"]) - -AC_ARG_WITH(HDF5-lib, -AS_HELP_STRING([--with-HDF5-lib[=ARG]], [HDF5 library directory, ARG = path to libhdf5.a]), -[with_HDF5_lib=$withval], [with_HDF5_lib="no"]) -AC_ARG_WITH(HDF5-include, -AS_HELP_STRING([--with-HDF5-include[=ARG]], [HDF5 include directory, ARG = path to hdf5.h]), -[with_HDF5_include=$withval], [with_HDF5_include="no"]) - -AC_ARG_WITH(SZIP-lib, -AS_HELP_STRING([--with-SZIP-lib[=ARG]], [SZIP library directory, ARG = path to libsz.a]), -[with_SZIP_lib=$withval], [with_SZIP_lib="no"]) -AC_ARG_WITH(SZIP-include, -AS_HELP_STRING([--with-SZIP-include[=ARG]], [SZIP include directory, ARG = path to szlib.h]), -[with_SZIP_include=$withval], [with_SZIP_include="no"]) - -AC_ARG_WITH(ZLIB-lib, -AS_HELP_STRING([--with-ZLIB-lib[=ARG]], [ZLIB library directory, ARG = path to libz.a]), -[with_ZLIB_lib=$withval], [with_ZLIB_lib="no"]) -AC_ARG_WITH(ZLIB-include, -AS_HELP_STRING([--with-ZLIB-include[=ARG]], [ZLIB include directory, ARG = path to zlib.h]), -[with_ZLIB_include=$withval], [with_ZLIB_include="no"]) - AC_ARG_WITH(Mutationpp-lib, AS_HELP_STRING([--with-Mutationpp-lib[=ARG]], [Mutation++ library directory, ARG = path to libmutation++.dylib]), [with_Mutationpp_lib=$withval], [with_Mutationpp_lib="no"]) @@ -121,7 +95,7 @@ AC_ARG_ENABLE(CFD, [build_CFD=$enableval], [build_CFD="yes"]) AC_ARG_ENABLE(FSI, AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), - [build_FSI=$enableval], [build_FSI="yes"]) + [build_FSI=$enableval], [build_FSI="yes"]) AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) @@ -137,12 +111,6 @@ AC_ARG_ENABLE(SOL, AC_ARG_ENABLE(GEO, AS_HELP_STRING([--disable-GEO], [build the SU2_GEO executable (default = yes)]), [build_GEO=$enableval], [build_GEO="yes"]) -AC_ARG_ENABLE(complex, - AS_HELP_STRING([--enable-complex], [build executables with complex datatype (default = no)]), - [build_COMPLEX="yes"], [build_COMPLEX="no"]) -AC_ARG_ENABLE(normal, - AS_HELP_STRING([--disable-normal], [build executables with normal datatype (default = yes)]), - [build_NORMAL=$enableval], [build_NORMAL="yes"]) # Check for the old MPI option so that we can throw an error AC_ARG_WITH(MPI, @@ -242,138 +210,6 @@ AC_SUBST([CGNS_LD]) ########################## -# check for lib -HDF5lib=libhdf5.a -HDF5header=hdf5.h -have_HDF5="no" - -if test "$with_HDF5_lib" != "no" -then -AC_CHECK_FILE([$with_HDF5_lib/$HDF5lib],[have_HDF5="yes"],[have_HDF5="no"]) -if test "$have_HDF5" == "no" -then -AC_MSG_ERROR([HDF5 requested but library file not found.]) -fi -fi - -# check for header -if test "$have_HDF5" != "no" -then -if test "$with_HDF5_include" != "no" -then -AC_CHECK_FILE([$with_HDF5_include/$HDF5header],[have_HDF5='yes'],[have_HDF5='no']) -if test "$have_HDF5" == "no" -then -AC_MSG_ERROR([HDF5 requested but header file not found.]) -fi -else -have_HDF5="no" -fi -fi - -if test "$have_HDF5" != "no" -then -AM_CONDITIONAL(BUILD_HDF5,true) -HDF5_CXX="-DHAVE_HDF5 -I"$with_HDF5_include"" -HDF5_LD="$with_HDF5_lib"/$HDF5lib -else -AM_CONDITIONAL(BUILD_HDF5,false) -HDF5_CXX= -HDF5_LD= -fi -AC_SUBST([HDF5_CXX]) -AC_SUBST([HDF5_LD]) - -########################## - -# check for lib -SZIPlib=libsz.a -SZIPheader=szlib.h -have_SZIP="no" - -if test "$with_SZIP_lib" != "no" -then -AC_CHECK_FILE([$with_SZIP_lib/$SZIPlib],[have_SZIP="yes"],[have_SZIP="no"]) -if test "$have_SZIP" == "no" -then -AC_MSG_ERROR([SZIP requested but library file not found.]) -fi -fi - -# check for header -if test "$have_SZIP" != "no" -then -if test "$with_SZIP_include" != "no" -then -AC_CHECK_FILE([$with_SZIP_include/$SZIPheader],[have_SZIP='yes'],[have_SZIP='no']) -if test "$have_SZIP" == "no" -then -AC_MSG_ERROR([SZIP requested but header file not found.]) -fi -else -have_SZIP="no" -fi -fi - -if test "$have_SZIP" != "no" -then -AM_CONDITIONAL(BUILD_SZIP,true) -SZIP_CXX="-DHAVE_SZIP -I"$with_SZIP_include"" -SZIP_LD="$with_SZIP_lib"/$SZIPlib -else -AM_CONDITIONAL(BUILD_SZIP,false) -SZIP_CXX= -SZIP_LD= -fi -AC_SUBST([SZIP_CXX]) -AC_SUBST([SZIP_LD]) - -########################## - -# check for lib -ZLIBlib=libz.a -ZLIBheader=zlib.h -have_ZLIB="no" - -if test "$with_ZLIB_lib" != "no" -then -AC_CHECK_FILE([$with_ZLIB_lib/$ZLIBlib],[have_ZLIB="yes"],[have_ZLIB="no"]) -if test "$have_ZLIB" == "no" -then -AC_MSG_ERROR([ZLIB requested but library file not found.]) -fi -fi - -# check for header -if test "$have_ZLIB" != "no" -then -if test "$with_ZLIB_include" != "no" -then -AC_CHECK_FILE([$with_ZLIB_include/$ZLIBheader],[have_ZLIB='yes'],[have_ZLIB='no']) -if test "$have_ZLIB" == "no" -then -AC_MSG_ERROR([ZLIB requested but header file not found.]) -fi -else -have_ZLIB="no" -fi -fi - -if test "$have_ZLIB" != "no" -then -AM_CONDITIONAL(BUILD_ZLIB,true) -ZLIB_CXX="-DHAVE_ZLIB -I"$with_ZLIB_include"" -ZLIB_LD="$with_ZLIB_lib"/$ZLIBlib -else -AM_CONDITIONAL(BUILD_ZLIB,false) -ZLIB_CXX= -ZLIB_LD= -fi -AC_SUBST([ZLIB_CXX]) -AC_SUBST([ZLIB_LD]) - -########################## - # check for lib Mutationpplib=libmutation++.dylib Mutationppheader=mutation++.h @@ -504,52 +340,6 @@ fi AC_SUBST([LAPACK_CXX]) AC_SUBST([LAPACK_LD]) -########################### -# Determine what versions of the code to build - -# Complex type -COMPLEX_CXX="-std=gnu++11 -DCOMPLEX_TYPE" - -# direct differentation type -build_DIRECTDIFF=no -DIRECTDIFF_CXX= -DIRECTDIFF_LIBS= -# reverse mode type -build_REVERSE=no -REVERSE_CXX= -FORWARD_CXX= -#CONFIGURE_ADOLC -CONFIGURE_CODI - -if test $build_COMPLEX != "no" -then - DIRECTDIFF_CXX=$COMPLEX_CXX - build_DIRECTDIFF=yes - build_REVERSE=no - build_NORMAL=no -fi - -AC_SUBST([DIRECTDIFF_CXX]) -AC_SUBST([DIRECTDIFF_LIBS]) -AC_SUBST([REVERSE_CXX]) -AC_SUBST([REVERSE_LIBS]) -# Set the variables -AM_CONDITIONAL([BUILD_NORMAL], [test $build_NORMAL != "no"]) -AM_CONDITIONAL([BUILD_DIRECTDIFF], [test $build_DIRECTDIFF != "no"]) -AM_CONDITIONAL([BUILD_REVERSE], [test $build_REVERSE != "no"]) -if test $build_NORMAL == "no" -then - build_DOT=no - build_MSH=no - build_DEF=no - build_SOL=no - build_GEO=no -fi - -if test $build_REVERSE == "yes" -then - build_DOT=yes -fi ########################### AM_CONDITIONAL([BUILD_CFD],[test $build_CFD != "no"]) @@ -623,22 +413,14 @@ Build Configuration Summary: Preprocessor flags: ${CPPFLAGS} Compiler flags: ${CXXFLAGS} Linker flags: ${LDFLAGS} + CGNS support: $have_CGNS MPI support: $have_MPI Metis support: $enablemetis Parmetis support: $enableparmetis TecIO support: $enabletecio - CGNS support: $have_CGNS - HDF5 support: $have_HDF5 - SZIP support: $have_SZIP - ZLIB support: $have_ZLIB Mutation++ support: $have_Mutationpp Jsoncpp support: $have_Jsoncpp LAPACK support: $have_LAPACK - Datatype support: - double $build_NORMAL - complex $build_COMPLEX - codi_reverse $build_CODI_REVERSE - codi_forward $build_CODI_FORWARD External includes: $su2_externals_INCLUDES External libs: $su2_externals_LIBS From 622579ea080cea80a097303c175b5b9be9a38b6b Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 19 Aug 2015 09:45:56 -0400 Subject: [PATCH 055/269] fixing makefiles once again; subdirs not needed but will give warnings --- Common/lib/Makefile.am | 4 +- configure.ac | 243 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 232 insertions(+), 15 deletions(-) diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index 5615a558788..dfd9b39d3e7 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -81,6 +81,7 @@ lib_sources = \ ../include/mpi_structure.inl \ ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ + ../include/interpolation_structure.hpp \ ../src/config_structure.cpp \ ../src/dual_grid_structure.cpp \ ../src/geometry_structure.cpp \ @@ -92,7 +93,8 @@ lib_sources = \ ../src/matrix_structure.cpp \ ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ - ../src/datatype_structure.cpp + ../src/datatype_structure.cpp \ + ../src/interpolation_structure.cpp lib_cxxflags = lib_ldadd = diff --git a/configure.ac b/configure.ac index edb5e48c357..88ed6415bf2 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,9 @@ -# SU2 autoconf file -# SU2 v3.2.9 "eagle" +################################################################################ +# +# \file configure.ac +# \brief Main file for configuring the autoconf/automake build process +# \author M. Colonno, T. Economon, F. Palacios, B. Kirk +# \version 4.0.0 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -25,26 +29,22 @@ # You should have received a copy of the GNU Lesser General Public # License along with SU2. If not, see . # -# Created: 10/26/12 -# Last updated: 05/18/15 -# -# Created by: M. Colonno 10/26/12 -# Updated by: T. Economon 3/24/14 -# Last updated by: R. Sanchez 05/19/15 +################################################################################ # # Major Changes/Contributions: # METIS & TECIO integration added by Ben Kirk, 3/24/2014 # LAPACK connection added by Teus van der Stelt, 11/13/2014 # ParMETIS integration added by Ben Kirk & Thomas D. Economon, 2/3/2015 # SU2_FSI integration added by Ruben Sanchez, 5/19/2015 -########################## +# +################################################################################ AC_INIT([SU2], [4.0.0], [su2code-dev@lists.stanford.edu], [SU2], [https://github.com/su2code]) AC_PREREQ([2.59]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE([subdir-objects foreign]) +AM_INIT_AUTOMAKE([foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)]) # AC_CONFIG_HEADERS([config.h]) @@ -52,7 +52,7 @@ SU2_SET_COMPILERS AM_PROG_CC_C_O AC_PROG_RANLIB AC_PROG_MKDIR_P -AC_PROG_CXX +#PKG_PROG_PKG_CONFIG # -------------------------------------------------------------- # Check for important type sizes @@ -72,6 +72,28 @@ AC_ARG_WITH(CGNS-lib, AC_ARG_WITH(CGNS-include, AS_HELP_STRING([--with-CGNS-include[=ARG]], [CGNS include directory, ARG = path to cgnslib.h]), [with_CGNS_include=$withval], [with_CGNS_include="no"]) + +AC_ARG_WITH(HDF5-lib, +AS_HELP_STRING([--with-HDF5-lib[=ARG]], [HDF5 library directory, ARG = path to libhdf5.a]), +[with_HDF5_lib=$withval], [with_HDF5_lib="no"]) +AC_ARG_WITH(HDF5-include, +AS_HELP_STRING([--with-HDF5-include[=ARG]], [HDF5 include directory, ARG = path to hdf5.h]), +[with_HDF5_include=$withval], [with_HDF5_include="no"]) + +AC_ARG_WITH(SZIP-lib, +AS_HELP_STRING([--with-SZIP-lib[=ARG]], [SZIP library directory, ARG = path to libsz.a]), +[with_SZIP_lib=$withval], [with_SZIP_lib="no"]) +AC_ARG_WITH(SZIP-include, +AS_HELP_STRING([--with-SZIP-include[=ARG]], [SZIP include directory, ARG = path to szlib.h]), +[with_SZIP_include=$withval], [with_SZIP_include="no"]) + +AC_ARG_WITH(ZLIB-lib, +AS_HELP_STRING([--with-ZLIB-lib[=ARG]], [ZLIB library directory, ARG = path to libz.a]), +[with_ZLIB_lib=$withval], [with_ZLIB_lib="no"]) +AC_ARG_WITH(ZLIB-include, +AS_HELP_STRING([--with-ZLIB-include[=ARG]], [ZLIB include directory, ARG = path to zlib.h]), +[with_ZLIB_include=$withval], [with_ZLIB_include="no"]) + AC_ARG_WITH(Mutationpp-lib, AS_HELP_STRING([--with-Mutationpp-lib[=ARG]], [Mutation++ library directory, ARG = path to libmutation++.dylib]), [with_Mutationpp_lib=$withval], [with_Mutationpp_lib="no"]) @@ -94,8 +116,9 @@ AC_ARG_ENABLE(CFD, AS_HELP_STRING([--disable-CFD], [build the SU2_CFD executable (default = yes)]), [build_CFD=$enableval], [build_CFD="yes"]) AC_ARG_ENABLE(FSI, - AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), - [build_FSI=$enableval], [build_FSI="yes"]) + AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), + [build_FSI=$enableval], [build_FSI="yes"]) + AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) @@ -111,6 +134,12 @@ AC_ARG_ENABLE(SOL, AC_ARG_ENABLE(GEO, AS_HELP_STRING([--disable-GEO], [build the SU2_GEO executable (default = yes)]), [build_GEO=$enableval], [build_GEO="yes"]) +AC_ARG_ENABLE(complex, + AS_HELP_STRING([--enable-complex], [build executables with complex datatype (default = no)]), + [build_COMPLEX="yes"], [build_COMPLEX="no"]) +AC_ARG_ENABLE(normal, + AS_HELP_STRING([--disable-normal], [build executables with normal datatype (default = yes)]), + [build_NORMAL=$enableval], [build_NORMAL="yes"]) # Check for the old MPI option so that we can throw an error AC_ARG_WITH(MPI, @@ -210,6 +239,138 @@ AC_SUBST([CGNS_LD]) ########################## +# check for lib +HDF5lib=libhdf5.a +HDF5header=hdf5.h +have_HDF5="no" + +if test "$with_HDF5_lib" != "no" +then +AC_CHECK_FILE([$with_HDF5_lib/$HDF5lib],[have_HDF5="yes"],[have_HDF5="no"]) +if test "$have_HDF5" == "no" +then +AC_MSG_ERROR([HDF5 requested but library file not found.]) +fi +fi + +# check for header +if test "$have_HDF5" != "no" +then +if test "$with_HDF5_include" != "no" +then +AC_CHECK_FILE([$with_HDF5_include/$HDF5header],[have_HDF5='yes'],[have_HDF5='no']) +if test "$have_HDF5" == "no" +then +AC_MSG_ERROR([HDF5 requested but header file not found.]) +fi +else +have_HDF5="no" +fi +fi + +if test "$have_HDF5" != "no" +then +AM_CONDITIONAL(BUILD_HDF5,true) +HDF5_CXX="-DHAVE_HDF5 -I"$with_HDF5_include"" +HDF5_LD="$with_HDF5_lib"/$HDF5lib +else +AM_CONDITIONAL(BUILD_HDF5,false) +HDF5_CXX= +HDF5_LD= +fi +AC_SUBST([HDF5_CXX]) +AC_SUBST([HDF5_LD]) + +########################## + +# check for lib +SZIPlib=libsz.a +SZIPheader=szlib.h +have_SZIP="no" + +if test "$with_SZIP_lib" != "no" +then +AC_CHECK_FILE([$with_SZIP_lib/$SZIPlib],[have_SZIP="yes"],[have_SZIP="no"]) +if test "$have_SZIP" == "no" +then +AC_MSG_ERROR([SZIP requested but library file not found.]) +fi +fi + +# check for header +if test "$have_SZIP" != "no" +then +if test "$with_SZIP_include" != "no" +then +AC_CHECK_FILE([$with_SZIP_include/$SZIPheader],[have_SZIP='yes'],[have_SZIP='no']) +if test "$have_SZIP" == "no" +then +AC_MSG_ERROR([SZIP requested but header file not found.]) +fi +else +have_SZIP="no" +fi +fi + +if test "$have_SZIP" != "no" +then +AM_CONDITIONAL(BUILD_SZIP,true) +SZIP_CXX="-DHAVE_SZIP -I"$with_SZIP_include"" +SZIP_LD="$with_SZIP_lib"/$SZIPlib +else +AM_CONDITIONAL(BUILD_SZIP,false) +SZIP_CXX= +SZIP_LD= +fi +AC_SUBST([SZIP_CXX]) +AC_SUBST([SZIP_LD]) + +########################## + +# check for lib +ZLIBlib=libz.a +ZLIBheader=zlib.h +have_ZLIB="no" + +if test "$with_ZLIB_lib" != "no" +then +AC_CHECK_FILE([$with_ZLIB_lib/$ZLIBlib],[have_ZLIB="yes"],[have_ZLIB="no"]) +if test "$have_ZLIB" == "no" +then +AC_MSG_ERROR([ZLIB requested but library file not found.]) +fi +fi + +# check for header +if test "$have_ZLIB" != "no" +then +if test "$with_ZLIB_include" != "no" +then +AC_CHECK_FILE([$with_ZLIB_include/$ZLIBheader],[have_ZLIB='yes'],[have_ZLIB='no']) +if test "$have_ZLIB" == "no" +then +AC_MSG_ERROR([ZLIB requested but header file not found.]) +fi +else +have_ZLIB="no" +fi +fi + +if test "$have_ZLIB" != "no" +then +AM_CONDITIONAL(BUILD_ZLIB,true) +ZLIB_CXX="-DHAVE_ZLIB -I"$with_ZLIB_include"" +ZLIB_LD="$with_ZLIB_lib"/$ZLIBlib +else +AM_CONDITIONAL(BUILD_ZLIB,false) +ZLIB_CXX= +ZLIB_LD= +fi +AC_SUBST([ZLIB_CXX]) +AC_SUBST([ZLIB_LD]) + +########################## + # check for lib Mutationpplib=libmutation++.dylib Mutationppheader=mutation++.h @@ -340,6 +501,52 @@ fi AC_SUBST([LAPACK_CXX]) AC_SUBST([LAPACK_LD]) +########################### +# Determine what versions of the code to build + +# Complex type +COMPLEX_CXX="-std=gnu++11 -DCOMPLEX_TYPE" + +# direct differentation type +build_DIRECTDIFF=no +DIRECTDIFF_CXX= +DIRECTDIFF_LIBS= +# reverse mode type +build_REVERSE=no +REVERSE_CXX= +FORWARD_CXX= +#CONFIGURE_ADOLC +CONFIGURE_CODI + +if test $build_COMPLEX != "no" +then + DIRECTDIFF_CXX=$COMPLEX_CXX + build_DIRECTDIFF=yes + build_REVERSE=no + build_NORMAL=no +fi + +AC_SUBST([DIRECTDIFF_CXX]) +AC_SUBST([DIRECTDIFF_LIBS]) +AC_SUBST([REVERSE_CXX]) +AC_SUBST([REVERSE_LIBS]) +# Set the variables +AM_CONDITIONAL([BUILD_NORMAL], [test $build_NORMAL != "no"]) +AM_CONDITIONAL([BUILD_DIRECTDIFF], [test $build_DIRECTDIFF != "no"]) +AM_CONDITIONAL([BUILD_REVERSE], [test $build_REVERSE != "no"]) +if test $build_NORMAL == "no" +then + build_DOT=no + build_MSH=no + build_DEF=no + build_SOL=no + build_GEO=no +fi + +if test $build_REVERSE == "yes" +then + build_DOT=yes +fi ########################### AM_CONDITIONAL([BUILD_CFD],[test $build_CFD != "no"]) @@ -413,14 +620,22 @@ Build Configuration Summary: Preprocessor flags: ${CPPFLAGS} Compiler flags: ${CXXFLAGS} Linker flags: ${LDFLAGS} - CGNS support: $have_CGNS MPI support: $have_MPI Metis support: $enablemetis Parmetis support: $enableparmetis TecIO support: $enabletecio + CGNS support: $have_CGNS + HDF5 support: $have_HDF5 + SZIP support: $have_SZIP + ZLIB support: $have_ZLIB Mutation++ support: $have_Mutationpp Jsoncpp support: $have_Jsoncpp LAPACK support: $have_LAPACK + Datatype support: + double $build_NORMAL + complex $build_COMPLEX + codi_reverse $build_CODI_REVERSE + codi_forward $build_CODI_FORWARD External includes: $su2_externals_INCLUDES External libs: $su2_externals_LIBS From 2b8030f120b3ac6c6d888ee54ba900439a150d08 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 19 Aug 2015 15:20:29 +0100 Subject: [PATCH 056/269] FEM: avoid residual output (temporary) --- SU2_CFD/src/solver_fem_elasticity.cpp | 30 ++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 23382de7e3c..4d05fd023ac 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -828,8 +828,10 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s double checkJacobian; unsigned long jNode; + bool outputReactions = false; + ofstream myfile; - myfile.open ("Reactions.txt"); + if (outputReactions) myfile.open ("Reactions.txt"); unsigned short iMarker; unsigned long iVertex; @@ -847,7 +849,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s case CLAMPED_BOUNDARY: - myfile << "MARKER " << iMarker << ":" << endl; + if (outputReactions) myfile << "MARKER " << iMarker << ":" << endl; /*--- Loop over all the vertices ---*/ for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { @@ -855,23 +857,23 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s /*--- Get node index ---*/ iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - myfile << "Node " << iPoint << "." << " \t "; + if (outputReactions) myfile << "Node " << iPoint << "." << " \t "; for (iDim = 0; iDim < nDim; iDim++){ /*--- Retrieve coordinate ---*/ val_Coord = geometry->node[iPoint]->GetCoord(iDim); - myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + if (outputReactions) myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; } for (iVar = 0; iVar < nVar; iVar++){ /*--- Retrieve reaction ---*/ val_Reaction = LinSysReact.GetBlock(iPoint, iVar); - myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + if (outputReactions) myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; } - myfile << endl; + if (outputReactions) myfile << endl; } - myfile << endl; + if (outputReactions) myfile << endl; break; } } @@ -916,7 +918,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s case CLAMPED_BOUNDARY: - myfile << "MARKER " << iMarker << ":" << endl; + if (outputReactions) myfile << "MARKER " << iMarker << ":" << endl; /*--- Loop over all the vertices ---*/ for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { @@ -924,12 +926,12 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s /*--- Get node index ---*/ iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - myfile << "Node " << iPoint << "." << " \t "; + if (outputReactions) myfile << "Node " << iPoint << "." << " \t "; for (iDim = 0; iDim < nDim; iDim++){ /*--- Retrieve coordinate ---*/ val_Coord = geometry->node[iPoint]->GetCoord(iDim); - myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + if (outputReactions) myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; } /*--- Retrieve the time contribution ---*/ @@ -938,12 +940,12 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s for (iVar = 0; iVar < nVar; iVar++){ /*--- Retrieve reaction ---*/ val_Reaction = LinSysReact.GetBlock(iPoint, iVar) + Res_Time_Cont[iVar]; - myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + if (outputReactions) myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; } - myfile << endl; + if (outputReactions) myfile << endl; } - myfile << endl; + if (outputReactions) myfile << endl; break; } @@ -958,7 +960,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s - myfile.close(); + if (outputReactions) myfile.close(); #ifdef HAVE_MPI From d2c5b1d4e8e06baa4444a9171cd861d89db41546 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 21 Aug 2015 18:43:19 +0100 Subject: [PATCH 057/269] FEM: Implement incremental load --- Common/include/config_structure.hpp | 18 ++- Common/include/config_structure.inl | 4 + Common/src/config_structure.cpp | 6 + SU2_CFD/include/solver_structure.hpp | 14 ++ SU2_CFD/include/solver_structure.inl | 4 + SU2_CFD/src/iteration_structure.cpp | 196 +++++++++++++++++++++++--- SU2_CFD/src/solver_fem_elasticity.cpp | 2 + 7 files changed, 221 insertions(+), 23 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 99ca53821f8..831bf437008 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -741,6 +741,8 @@ class CConfig { Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ bool Gradual_Load, /*!< \brief Apply the load gradually. */ Ramp_Load; /*!< \brief Apply the load with linear increases. */ + bool IncrementalLoad; /*!< \brief Apply the load in increments (for nonlinear structural analysis). */ + unsigned long IncLoad_Nincrements; /*!< \brief Number of increments. */ double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ unsigned short Pred_Order; /*!< \brief Order of the predictor for FSI applications. */ @@ -5556,7 +5558,7 @@ class CConfig { * \return Value of the max time while the load is linearly increased */ double GetStatic_Time(void); - + /*! * \brief Get the order of the predictor for FSI applications. * \return Order of predictor @@ -5567,7 +5569,19 @@ class CConfig { * \brief Check if the simulation we are running is a FSI simulation * \return Value of the physical time in an unsteady simulation. */ - bool GetFSI_Simulation(void); + bool GetFSI_Simulation(void); + + /*! + * \brief Check if we want to apply an incremental load to the nonlinear structural simulation + * \return TRUE means that the load is to be applied in increments. + */ + bool GetIncrementalLoad(void); + + /*! + * \brief Get the number of increments for an incremental load. + * \return Number of increments. + */ + unsigned long GetNumberIncrements(void); /*! * \brief Get the relaxation method chosen for the simulation diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 630ff831d39..e168839966f 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1233,6 +1233,10 @@ inline double CConfig::GetStatic_Time(void) { return Static_Time; } inline unsigned short CConfig::GetPredictorOrder(void) { return Pred_Order; } +inline bool CConfig::GetIncrementalLoad(void) { return IncrementalLoad; } + +inline unsigned long CConfig::GetNumberIncrements(void) { return IncLoad_Nincrements; } + inline bool CConfig::GetFSI_Simulation(void) { return FSI_Problem; } inline unsigned short CConfig::GetKindInterpolation(void) { return Kind_Interpolation; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index e868c89306a..e1426c72297 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1204,6 +1204,12 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Time while the load is to be increased linearly */ addDoubleOption("RAMP_TIME", Ramp_Time, 1.0); + + /* DESCRIPTION: Apply dead loads. Options: NO, YES \ingroup Config */ + addBoolOption("INCREMENTAL_LOAD", IncrementalLoad, false); + /* DESCRIPTION: Maximum number of increments of the */ + addUnsignedLongOption("NUMBER_INCREMENTS", IncLoad_Nincrements, 10); + /* DESCRIPTION: Time while the structure is static */ addDoubleOption("STATIC_TIME", Static_Time, 1.0); diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 7d6844a3c29..ef2080ff4e6 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2427,6 +2427,12 @@ class CSolver { */ virtual void SetWAitken_Dyn_tn1(double waitk_tn1); + /*! + * \brief A virtual member. + * \param[in] Value of the load increment for nonlinear structural analysis + */ + virtual void SetLoad_Increment(double val_loadIncrement); + }; @@ -6598,6 +6604,8 @@ class CFEM_ElasticitySolver : public CSolver { double Conv_Check[3]; /*!< \brief Current values for convergence check: DTOL, RTOL, ETOL */ double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ + double loadIncrement; /*!< \brief Coefficient that determines the amount of load which is applied */ + double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ @@ -6944,6 +6952,12 @@ class CFEM_ElasticitySolver : public CSolver { */ void SetWAitken_Dyn_tn1(double waitk_tn1); + /*! + * \brief Set the value of the load increment for nonlinear structural analysis + * \param[in] Value of the coefficient + */ + void SetLoad_Increment(double val_loadIncrement); + }; diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 2769d6ebcd8..dce4e429a27 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -292,6 +292,8 @@ inline void CSolver::SetWAitken_Dyn(double waitk) { } inline void CSolver::SetWAitken_Dyn_tn1(double waitk_tn1) { } +inline void CSolver::SetLoad_Increment(double val_loadIncrement) { } + inline void CSolver::SetTotal_CFreeSurface(double val_freesurface) { } inline void CSolver::SetTotal_CNearFieldOF(double val_cnearfieldpress) { } @@ -944,6 +946,8 @@ inline void CFEM_ElasticitySolver::SetWAitken_Dyn(double waitk) { WAitken_Dyn = inline void CFEM_ElasticitySolver::SetWAitken_Dyn_tn1(double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } +inline void CFEM_ElasticitySolver::SetLoad_Increment(double val_loadIncrement) { loadIncrement = val_loadIncrement; } + inline void CFEM_ElasticitySolver::SetFSI_ConvValue(unsigned short val_index, double val_criteria) { FSI_Conv[val_index] = val_criteria; } inline double CFEM_ElasticitySolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index aa551f04252..0c9130f55ec 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -718,68 +718,222 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { double Physical_dt, Physical_t; + double loadIncrement; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + unsigned long iIncrement; + unsigned long nIncrements = config_container[ZONE_0]->GetNumberIncrements(); + bool dynamic = (config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems bool nonlinear = (config_container[ZONE_0]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool incremental_load = config_container[ZONE_0]->GetIncrementalLoad(); // If an incremental load is applied + + /*--- This is to prevent problems when running a linear solver ---*/ + if (!nonlinear) incremental_load = false; + #ifdef HAVE_MPI int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - /*--- Set the initial condition ---*/ - for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - for (iZone = 0; iZone < nZone; iZone++) { + if (!incremental_load){ - /*--- Set the value of the internal iteration ---*/ + /*--- Set the initial condition ---*/ - IntIter = ExtIter; - if (nonlinear) IntIter = 0; + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - /*--- FEA equations ---*/ + for (iZone = 0; iZone < nZone; iZone++) { - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + /*--- Set the value of the internal iteration ---*/ - /*--- Run the iteration ---*/ + IntIter = ExtIter; + if (nonlinear) IntIter = 0; + + /*--- FEA equations ---*/ - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + /*--- Run the iteration ---*/ + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + if (nonlinear){ + for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + + } + + } } + /*--- The incremental load is only used in nonlinear cases ---*/ + else if (incremental_load){ - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + bool meetCriteria = false; - if (nonlinear){ - for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + cout << "INCREMENTAL LOAD, " << nIncrements << " INCREMENTS. " << endl; + + /*--- Set the initial condition ---*/ + + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the first iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); - for (iZone = 0; iZone < nZone; iZone++) { /*--- Write the convergence history (only screen output) ---*/ output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + /*--- Run the second iteration ---*/ + + IntIter = 1; + config_container[iZone]->SetIntIter(IntIter); integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); + } + + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ + if (meetCriteria){ + + for (IntIter = 2; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + } - if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + } + + /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ + + else { + + /*--- Here we have to restart the solution to the original one of the iteration ---*/ + + for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ + + loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); + + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL ---*/ + + for (iZone = 0; iZone < nZone; iZone++){ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + } + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + + } + + } } } + + /*----------------- Compute averaged nodal stress and reactions ------------------------*/ for (iZone = 0; iZone < nZone; iZone++) @@ -795,10 +949,10 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Verify convergence criteria (based on total time) ---*/ -// Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); -// Physical_t = (ExtIter+1)*Physical_dt; -// if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) -// integration_container[iZone][FEA_SOL]->SetConvergence(true); + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) + integration_container[ZONE_0][FEA_SOL]->SetConvergence(true); } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 4d05fd023ac..97adc393bd1 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -41,6 +41,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { Total_CFEA = 0.0; WAitken_Dyn = 0.0; WAitken_Dyn_tn1 = 0.0; + loadIncrement = 0.0; element_container = NULL; node = NULL; @@ -108,6 +109,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Total_CFEA = 0.0; WAitken_Dyn = 0.0; WAitken_Dyn_tn1 = 0.0; + loadIncrement = 0.0; SetFSI_ConvValue(0,0.0); SetFSI_ConvValue(1,0.0); From 369262e785c1cdffd6cd6b555adf4b4151cac3a4 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 24 Aug 2015 13:07:50 -0400 Subject: [PATCH 058/269] small fix to makefile for fsi --- SU2_FSI/obj/Makefile.am | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index b803b7c270f..d39296c63b9 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -43,10 +43,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/fluid_model.hpp \ - ../../SU2_CFD/include/gauss_structure.hpp \ - ../../SU2_CFD/include/gauss_structure.inl \ - ../../SU2_CFD/include/element_structure.hpp \ - ../../SU2_CFD/include/element_structure.inl \ ../../SU2_CFD/include/fluid_model.inl \ ../../SU2_CFD/include/integration_structure.hpp \ ../../SU2_CFD/include/integration_structure.inl \ @@ -68,9 +64,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ ../../SU2_CFD/src/fluid_model_pvdw.cpp \ ../../SU2_CFD/src/fluid_model_ppr.cpp \ - ../../SU2_CFD/src/gauss_structure.cpp \ - ../../SU2_CFD/src/element_linear.cpp \ - ../../SU2_CFD/src/element_structure.cpp \ ../../SU2_CFD/src/integration_structure.cpp \ ../../SU2_CFD/src/integration_time.cpp \ ../../SU2_CFD/src/iteration_structure.cpp \ @@ -89,9 +82,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/numerics_machine_learning.cpp \ ../../SU2_CFD/src/numerics_linearized_mean.cpp \ ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ ../../SU2_CFD/src/numerics_structure.cpp \ ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ ../../SU2_CFD/src/numerics_template.cpp \ @@ -115,7 +105,6 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_direct_wave.cpp \ ../../SU2_CFD/src/solver_linearized_mean.cpp \ ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ ../../SU2_CFD/src/transport_model.cpp \ @@ -133,8 +122,9 @@ ___bin_SU2_FSI_SOURCES = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/variable_direct_wave.cpp \ ../../SU2_CFD/src/variable_linearized_mean.cpp \ ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ - ../../SU2_CFD/src/variable_fem_elasticity.cpp \ ../../SU2_CFD/src/variable_structure.cpp \ + ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ + ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ ../../SU2_CFD/src/variable_template.cpp ___bin_SU2_FSI_CXXFLAGS = From d7d16b80e6737f6a93d1ffc13aaed2de975b3bae Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 25 Aug 2015 11:08:01 -0700 Subject: [PATCH 059/269] Add preconfigure file --- preconfigure.py | 529 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 preconfigure.py diff --git a/preconfigure.py b/preconfigure.py new file mode 100644 index 00000000000..a486a2166fb --- /dev/null +++ b/preconfigure.py @@ -0,0 +1,529 @@ +#!/usr/bin/env python2 + +## \file configure.py +# \brief An extended configuration script. +# \author T. Albring +# \version 4.0.0 "Cardinal" +# +# SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). +# Dr. Thomas D. Economon (economon@stanford.edu). +# +# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. +# Prof. Piero Colonna's group at Delft University of Technology. +# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +# Prof. Alberto Guardone's group at Polytechnic University of Milan. +# Prof. Rafael Palacios' group at Imperial College London. +# +# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . + +from optparse import OptionParser +import sys,time, os, subprocess, os.path, glob, re, shutil, fileinput +import commands +from subprocess import call +# Command Line Options + +def main(): + parser=OptionParser() + + parser.add_option("--enable-directdiff", action="store", type = "string", + help="Enable direct differentiation mode support", dest="directdiff_mode", default="") + parser.add_option("--enable-reverse", action="store", type = "string", + help="Enable reverse mode support", dest="reverse_mode", default="") + parser.add_option("--enable-mpi", action="store_true", + help="Enable mpi support", dest="mpi_enabled", default=False) + parser.add_option("--disable-normal", action="store_true", + help="Disable normal mode support", dest="normal_mode", default=False) + parser.add_option("-p", "--pass", action="store", type="string", + help="Pass arguments to the automake configure script",dest="config_options", default = "") + parser.add_option("-i","--install", type="string", + help ="Install path for SU2", dest="install_path", default=subprocess.check_output('pwd').rstrip()) + + parser.add_option("-c" , "--check", action="store_true", + help="Check the source code for potential problems", dest="check", default=False) + parser.add_option("-r" , "--replace", action="store_true", + help="Do a search and replace of necessary symbols. Does a back up source files.", dest="replace", default=False) + parser.add_option("-d" , "--delete", action="store_true", + help="Removes the back up files.", dest="remove", default=False) + parser.add_option("-v" , "--revert", action="store_true", + help="Revert files to original state.", dest="revert", default=False) + (options, args)=parser.parse_args() + + options.directdiff_mode = options.directdiff_mode.upper() + options.reverse_mode = options.reverse_mode.upper() + + conf_environ = os.environ + + made_adolc = False + made_codi = False + + header() + + modes = {'NORMAL' : not options.normal_mode == True, + 'DIRECTDIFF' : options.directdiff_mode, + 'REVERSE' : options.reverse_mode} + + if not options.check: + if any([modes["REVERSE"] == 'ADOLC', modes["DIRECTDIFF"] == 'ADOLC']): + conf_environ, made_adolc = build_adolc(modes,options.mpi_enabled) + if any([modes["REVERSE"] == 'CODI', modes["DIRECTDIFF"] == 'CODI']): + conf_environ, made_codi = build_codi(modes,options.mpi_enabled) + + configure(options.config_options, + options.install_path, + conf_environ, + options.mpi_enabled, + modes, + made_adolc, + made_codi) + + if options.check: + prepare_source(options.replace, options.remove, options.revert) + +def prepare_source(replace = False, remove = False, revert = False): + + # Directories containing the source code + print 'Preparing source code ...' + dir_list = [ "Common", + "SU2_CFD", + "SU2_DEF", + "SU2_DOT", + "SU2_GEO", + "SU2_SOL", + "SU2_MSH"] + + file_list = "" + + exclude_dic_lines = {} + exclude_dic_files = {} + + exclude_file_name = 'preconf.exclude' + + # Build the dictionaries for line and file excludes that + # are defined in the exlude file 'preconf.exclude'. + # Syntax: + # PathTo/File[:Line1,Line2,...] + if os.path.exists(exclude_file_name): + print 'Reading \'' + exclude_file_name + '\' ...' + with open(exclude_file_name, 'r') as exclude: + for line in exclude: + exclude_line = line.split(':') + exclude_file = exclude_line[0].rstrip() + if len(exclude_line) > 1: + exclude_lines = exclude_line[1].split(',') + for index,item in enumerate(exclude_lines): + exclude_lines[index] = int(item.rstrip()) + exclude_dic_lines[exclude_line[0].rstrip()] = exclude_lines + else: + exclude_dic_files[exclude_line[0].rstrip()] = [-1] + else: + print 'Exclude file \'' + exclude_file_name + '\' not found. Checking all files.' + + str_double = 'double' + + regex_double = re.compile(r'(^|[^\w])('+str_double+')([^\w]|$)') + replacement_double = r'\1su2double\3' + simple_replacements = {'MPI_Reduce' : 'SU2_MPI::Reduce', + 'MPI_Allreduce' : 'SU2_MPI::Allreduce', + 'MPI_Gather' : 'SU2_MPI::Gather', + 'MPI_Allgather' : 'SU2_MPI::Allgather', + 'MPI_Isend' : 'SU2_MPI::Isend', + 'MPI_Irecv' : 'SU2_MPI::Irecv', + 'MPI_Send' : 'SU2_MPI::Send', + 'MPI_Wait' : 'SU2_MPI::Wait', + 'MPI_Waitall' : 'SU2_MPI::Waitall', + 'MPI_Bcast' : 'SU2_MPI::Bcast', + 'MPI_Sendrecv' : 'SU2_MPI::Sendrecv', + 'MPI_Init' : 'SU2_MPI::Init', + 'MPI_Recv' : 'SU2_MPI::Recv', + 'sprintf' : 'SPRINTF'} + regex_cast_1 = re.compile(r'(^|[^\w|^\\])(int)(\s*\()') + replacement_cast_1 = r'\1SU2_TYPE::Int\3' + regex_cast_2 = re.compile(r'\(int\)\s*') + + logfile = open ('preconf.log','w') + + backup_ext = '.orig' + print 'Checking for problems...' + # Test each source file for the occurrence of missing replacements + # and print the respective lines. + for dir in dir_list: + file_list = glob.glob(dir+os.path.sep+'*[src,include]'+os.path.sep+'*[.cpp,.hpp,.inl]') + for file in file_list: + if not file in exclude_dic_files.keys(): + + if all([not replace, revert]): + # Check if back up file exists + if os.path.isfile(file + backup_ext): + os.remove(file); + shutil.copy(file + backup_ext, file) + else: + print 'Cannot find backup file ' + file + backup_ext + + # Remove backup files if requested + if all([not replace, remove]): + if os.path.isfile(file + backup_ext): + print 'Removing' + file + backup_ext + os.remove(file + backup_ext) + + if all([not remove, not revert]): + num_found = 0 + found_line = "" + ignore_line = "" + new_line = "" + for line in fileinput.input(file, inplace = 1, backup = backup_ext): + new_line = line.rstrip('\n') + if any([re.findall(regex_double, line), find_all(line, simple_replacements), re.findall(regex_cast_1, line)]): + if not fileinput.lineno() in exclude_dic_lines.get(file,[]): + if replace: + new_line = replace_all(new_line, simple_replacements) + new_line = re.sub(regex_double, replacement_double, new_line) + new_line = re.sub(regex_cast_1, replacement_cast_1, new_line) + found_line = found_line + '\tLine ' + str(fileinput.lineno()) +': ' + line.rstrip() + '\n\t\t => ' + new_line.rstrip() + '\n' + else: + found_line = found_line + '\tLine ' + str(fileinput.lineno()) +': ' + line.rstrip() + '\n' + num_found = num_found + 1 + else: + ignore_line = ignore_line + 'Ignoring line ' + str(fileinput.lineno()) + ' in ' + file + ' (' + line.rstrip() + ')\n' + print new_line + if num_found > 0: + if replace: + print 'Solved ' + str(num_found) + ' potential problem(s) in ' + file + '.' + logfile.write('Solved ' + str(num_found) + ' potential problem(s) in ' + file + ':\n') + else: + print 'Found ' + str(num_found) + ' potential problem(s) in ' + file + '.' + logfile.write('Found ' + str(num_found) + ' potential problem(s) in ' + file + ':\n') + logfile.write( found_line ) + else: + os.remove(file + backup_ext) + + if not ignore_line == "": + print ignore_line.rstrip(); + else: + print 'Ignoring file ' + file + print '\nPlease check preconf.log to get more information about potential problems.' + +def replace_all(text, dic): + for i, j in dic.iteritems(): + text = text.replace(i, j) + return text + +def find_all(text, dic): + for i,j in dic.iteritems(): + if not text.find(i) == -1: + return True + return False + +def build_codi(modes, mpi_support = False): + ampi_log = open( 'preconf_ampi.log', 'w' ) + ampi_err = open( 'preconf_ampi.err', 'w' ) + codi_log = open('preconf_codi.log', "w") + os.chdir('externals') + pkg_environ = os.environ + if not os.path.exists('CoDi'): + try: + subprocess.check_call('git clone https://github.com/scicompkl/codipack.git CoDi', shell=True) + except subprocess.CalledProcessError: + print 'Git command failed, trying wget' + subprocess.check_call('wget https://github.com/SciCompKL/CoDiPack/archive/master.zip', stdout = codi_log, shell=True) + subprocess.check_call('unzip master.zip', stdout = codi_log, shell=True) + subprocess.check_call('mv CoDiPack-master CoDi', stdout = codi_log, shell= True) + os.remove('master.zip') + pass + + if mpi_support: + if not os.path.exists('adjointmpi'): + print '\nDownloading AMPI...' + subprocess.check_call('git clone -b scicompVersion https://github.com/michel2323/AdjointMPI.git adjointmpi',stdout = ampi_log, stderr = ampi_err, shell=True) + os.chdir('adjointmpi') + if not os.path.exists('libAMPI.a'): + print '\nConfiguring and building AMPI...' + subprocess.check_call('./configure CFLAGS=-O2 --prefix=$PWD && make', stdout = ampi_log, stderr = ampi_err, shell=True) + + os.chdir(os.pardir) + + os.chdir(os.pardir) + + return pkg_environ, True + +def build_adolc(modes, mpi_support = False): + + os.chdir('externals') + + pkg_environ = os.environ + pkg_environ["PKG_CONFIG_PATH"] = pkg_environ.get("PKG_CONFIG_PATH","") + ":" + subprocess.check_output("pwd").rstrip() + "/adol-c/lib64/pkgconfig" + + configure_command = "./configure --prefix=$PWD" + + # Build adolc + if any([modes['DIRECTDIFF'], all([modes['REVERSE'], not mpi_support])]): + pkg_name = "adolc" + pkg_version = "2.5.3-trunk" + + download_and_compile_adolc(configure_command, False, pkg_name, pkg_version, pkg_environ) + + # If necessary build adolc_ampi + if all([mpi_support, modes['REVERSE']]): + print 'MPI currently not supported when using ADOLC.' + sys.exit() + #ampi_path = subprocess.check_output("pwd").rstrip() + "/AdjoinableMPI" + #pkg_name = "adolc_ampi" + #pkg_version = "2.5.3-trunk" + + #configure_command = configure_command + " --enable-ampi --with-ampi=" + ampi_path + + #download_and_compile_adolc(configure_command, True, pkg_name, pkg_version, pkg_environ) + + os.chdir(os.pardir) + return pkg_environ, True + +def download_and_compile_adolc(configure_command, ampi_needed, pkg_name, pkg_version, pkg_environ): + + ampi_clone = 'hg clone http://mercurial.mcs.anl.gov/ad/AdjoinableMPI' + adolc_clone = 'git clone git@gitlab.com:adol-c/adol-c.git' + adolc_download = 'wget https://gitlab.com/adol-c/adol-c/repository/archive.zip' + + pkg_call = "pkg-config --exists --print-errors ' " + pkg_name + " = " + pkg_version + " ' " + + check_adolc = True + # pkg-config returns an error if package was not found + try: + subprocess.check_call(pkg_call, env = pkg_environ, shell=True) + except subprocess.CalledProcessError: + check_adolc = False + + + if check_adolc: + print "Found library " + pkg_name + "-" + pkg_version + else: + print "Since library " + pkg_name + "-" + pkg_version + " was not found, it will be downloaded and compiled" + # Download and build AdjoinableMPI library if mpi support is enabled + if ampi_needed: + if not os.path.exists('AdjoinableMPI'): + try: + subprocess.check_call(ampi_clone, shell=True) + except subprocess.CalledProcessError: + print "hg clone failed" + pass + + os.chdir('AdjoinableMPI') + # Generate configure script if it does not exist + if not os.path.exists('configure'): + subprocess.call('./autogen.sh', shell=True) + # Call configure and install it + subprocess.call('./configure --prefix=$PWD',shell=True) + subprocess.call('make install',shell=True) + os.chdir(os.pardir) + + # Download and build ADOL-C + if not os.path.exists('adol-c'): + try: + subprocess.check_call(adolc_clone, shell=True) + except subprocess.CalledProcessError: + print "git clone failed, trying wget." + subprocess.check_call(adolc_download, shell=True) + subprocess.check_call('unzip archive.zip', shell=True) + subprocess.check_call('mv adol-c.git adol-c', shell=True) + os.remove('archive.zip') + pass + + os.chdir('adol-c') + + # Generate configure script if it does not exist + if not os.path.exists('configure'): + subprocess.call('autoreconf -fi',shell=True) + + # Configure and build ADOL-C + subprocess.call(configure_command ,shell=True) + subprocess.call('make install',shell=True) + + os.chdir(os.pardir) + + +def configure(config_options, + install_path, + conf_environ, + mpi_support, + modes, + made_adolc, + made_codi): + + + configure_base = '../configure --prefix=' + install_path + " " + config_options + configure_mode = '' + if mpi_support: + configure_base = configure_base + ' --enable-mpi' + + build_dirs = '' + + for key in modes: + if modes[key]: + print '\nRunning configure in folder ' + key, + if modes[key] == 'CODI': + if key == 'DIRECTDIFF': + configure_mode = '--enable-codi-forward' + if key == 'REVERSE': + configure_mode = '--enable-codi-reverse' + print 'using ' + modes[key] + elif modes[key] == 'ADOLC': + if key == 'DIRECTDIFF': + configure_mode = '--enable-adolc-forward' + if key == 'REVERSE': + configure_mode = '--enable-adolc-reverse' + print 'using ' + modes[key] + elif modes[key] == 'COMPLEX': + configure_mode = '--enable-complex' + print 'using ' + modes[key] + else: + configure_mode = '' + print '' + + print '=====================================================================' + print '\tCommand: ' + configure_base + ' ' + configure_mode + run_command(configure_base + ' ' + configure_mode , key, conf_environ) + print '\tLog file written to ' + key +'/conf_'+key+'.log.' + build_dirs += key + ' ' + + write_makefile(build_dirs) + + print '\nPre-configuration Summary:\n' \ + '=====================================================================\n'\ + '\tConfiguration sets: '+ build_dirs + '\n' + + if made_adolc: + if mpi_support: + print '\tSuccessfully built or found AdjoinableMPI\n' + print '\tSuccessfully built or found ADOL-C\n' + if made_codi: + if mpi_support: + print '\tBuilt or found AdjointMPI\n' + print '\tSuccessfully downloaded or found CODI\n' + + print '\tUse "make " to compile (and install) all configured binaries:\n' + if modes['NORMAL']: + print '\tSU2_CFD -> General solver for direct, cont. adjoint and linearized equations.\n' \ + '\tSU2_DOT -> Gradient Projection Code.\n' \ + '\tSU2_DEF -> Mesh Deformation Code.\n' \ + '\tSU2_MSH -> Mesh Adaption Code.\n' \ + '\tSU2_SOL -> Solution Export Code.\n' \ + '\tSU2_GEO -> Geometry Definition Code.\n' + if modes['REVERSE']: + print '\tSU2_CFD_REVERSE -> AD-based Discrete Adjoint Solver.' + if modes['DIRECTDIFF']: + print '\tSU2_CFD_DIRECTDIFF -> Direct Differentation Mode.' + + print '\n' + print '\tPlease be sure to add the $SU2_HOME and $SU2_RUN environment variables,\n' \ + '\tand update your $PATH (and $PYTHONPATH if applicable) with $SU2_RUN.\n' \ + '\n' \ + '\tBased on the input to this configuration, add these lines to your .bashrc file: \n' \ + '\n' \ + '\texport SU2_RUN="'+install_path+'/bin"\n' \ + '\texport SU2_HOME="'+subprocess.check_output('pwd').rstrip()+'"\n' \ + '\texport PATH=$PATH:$SU2_RUN\n' \ + '\texport PYTHONPATH=$PYTHONPATH:$SU2_RUN\n' + +def run_command(command, folder, env): + log = 'conf_'+ folder+'.log' + err = 'conf_'+ folder+'.err' + + if not os.path.exists(folder): + os.mkdir(folder) + + os.chdir(folder) + try: + logfile = open(log, 'w') + errfile = open(err, 'w') + subprocess.check_call(command, env = env, stdout = logfile, stderr = errfile, shell=True) + except subprocess.CalledProcessError: + print '\nError in command: ' + command + print 'See ' + folder +'/conf_'+folder+'.err for details.' + sys.exit(1) + + os.chdir(os.pardir) + +def write_makefile(build_dirs): + print '\nCreating Makefile ...\n' + makefile = open('Makefile', 'w') + + makefile.writelines(['# This file is auto-generated by preconfigure.py\n', + 'SUBDIRS = '+ build_dirs + '\n', + 'INSTALLDIRS = $(SUBDIRS:%=install-%)\n', + 'CLEANDIRS = $(SUBDIRS:%=clean-%)\n', + '\n', + 'subdirs: $(SUBDIRS)\n', + '\n', + '$(SUBDIRS):\n', + '\t$(MAKE) -C $@\n', + '\n', + 'install: $(INSTALLDIRS)\n', + '$(INSTALLDIRS):\n', + '\t$(MAKE) -C $(@:install-%=%) install\n', + '\n', + 'clean: $(CLEANDIRS)\n', + '$(CLEANDIRS):\n', + '\t$(MAKE) -C $(@:clean-%=%) clean\n', + '\n', + '.PHONY: subdirs $(SUBDIRS)\n', + '.PHONY: subdirs $(INSTALLDIRS)\n', + '.PHONY: subdirs $(CLEANDIRS)\n', + '.PHONY: install\n']) + + makefile.close() + +def header(): + + print '-------------------------------------------------------------------------\n'\ + '| ___ _ _ ___ | \n'\ + '| / __| | | |_ ) Release 4.0.0 \'Cardinal\' | \n'\ + '| \__ \ |_| |/ / | \n'\ + '| |___/\___//___| Pre-configuration Script | \n'\ + '| | \n'\ + '------------------------------------------------------------------------- \n'\ + '| SU2 Lead Dev.: Dr. Francisco Palacios (francisco.palacios@boeing.com).| \n'\ + '| Dr. Thomas D. Economon (economon@stanford.edu). | \n'\ + '------------------------------------------------------------------------- \n'\ + '| SU2 Developers: | \n'\ + '| - Prof. Juan J. Alonso\'s group at Stanford University. | \n'\ + '| - Prof. Piero Colonna\'s group at Delft University of Technology. | \n'\ + '| - Prof. Nicolas R. Gauger\'s group at Kaiserslautern U. of Technology. | \n'\ + '| - Prof. Alberto Guardone\'s group at Polytechnic University of Milan. | \n'\ + '| - Prof. Rafael Palacios\' group at Imperial College London. | \n'\ + '------------------------------------------------------------------------- \n'\ + '| Copyright (C) 2012-2015 SU2, the open-source CFD code. | \n'\ + '| | \n'\ + '| SU2 is free software; you can redistribute it and/or | \n'\ + '| modify it under the terms of the GNU Lesser General Public | \n'\ + '| License as published by the Free Software Foundation; either | \n'\ + '| version 2.1 of the License, or (at your option) any later version. | \n'\ + '| | \n'\ + '| SU2 is distributed in the hope that it will be useful, | \n'\ + '| but WITHOUT ANY WARRANTY; without even the implied warranty of | \n'\ + '| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | \n'\ + '| Lesser General Public License for more details. | \n'\ + '| | \n'\ + '| You should have received a copy of the GNU Lesser General Public | \n'\ + '| License along with SU2. If not, see . | \n'\ + '------------------------------------------------------------------------- \n' + + + +# ------------------------------------------------------------------- +# Run Main Program +# ------------------------------------------------------------------- + +# this is only accessed if running from command prompt +if __name__ == '__main__': + main() From f89b1ec7a535f5b2f118260b681f61cfcdc29855 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 25 Aug 2015 11:12:45 -0700 Subject: [PATCH 060/269] Adapt for su2double - step 1 --- Common/include/config_structure.hpp | 994 ++++---- Common/include/config_structure.inl | 588 ++--- Common/include/dual_grid_structure.hpp | 188 +- Common/include/dual_grid_structure.inl | 120 +- Common/include/geometry_structure.hpp | 92 +- Common/include/geometry_structure.inl | 38 +- Common/include/grid_adaptation_structure.hpp | 10 +- Common/include/grid_movement_structure.hpp | 128 +- Common/include/grid_movement_structure.inl | 42 +- Common/include/interpolation_structure.hpp | 10 +- Common/include/linear_solvers_structure.hpp | 26 +- Common/include/linear_solvers_structure.inl | 2 +- Common/include/matrix_structure.hpp | 76 +- Common/include/option_structure.hpp | 196 +- Common/include/primal_grid_structure.hpp | 10 +- Common/include/primal_grid_structure.inl | 4 +- Common/include/su2mpi.hpp | 2 +- Common/include/vector_structure.hpp | 56 +- Common/include/vector_structure.inl | 4 +- Common/src/config_structure.cpp | 350 +-- Common/src/dual_grid_structure.cpp | 106 +- Common/src/geometry_structure.cpp | 1184 +++++----- Common/src/grid_adaptation_structure.cpp | 224 +- Common/src/grid_movement_structure.cpp | 960 ++++---- Common/src/interpolation_structure.cpp | 46 +- Common/src/linear_solvers_structure.cpp | 76 +- Common/src/matrix_structure.cpp | 152 +- Common/src/primal_grid_structure.cpp | 50 +- Common/src/vector_structure.cpp | 88 +- SU2_CFD/include/element_structure.hpp | 82 +- SU2_CFD/include/element_structure.inl | 52 +- SU2_CFD/include/fluid_model.hpp | 102 +- SU2_CFD/include/fluid_model.inl | 48 +- SU2_CFD/include/gauss_structure.hpp | 28 +- SU2_CFD/include/gauss_structure.inl | 22 +- SU2_CFD/include/integration_structure.hpp | 22 +- SU2_CFD/include/integration_structure.inl | 6 +- SU2_CFD/include/iteration_structure.hpp | 6 +- SU2_CFD/include/numerics_machine_learning.hpp | 72 +- .../numerics_machine_learning_turbulent.hpp | 46 +- SU2_CFD/include/numerics_structure.hpp | 2034 ++++++++--------- SU2_CFD/include/numerics_structure.inl | 262 +-- SU2_CFD/include/output_structure.hpp | 16 +- SU2_CFD/include/solver_structure.hpp | 1002 ++++---- SU2_CFD/include/solver_structure.inl | 720 +++--- SU2_CFD/include/transport_model.hpp | 44 +- SU2_CFD/include/transport_model.inl | 20 +- SU2_CFD/include/variable_structure.hpp | 1286 +++++------ SU2_CFD/include/variable_structure.inl | 918 ++++---- SU2_CFD/src/SU2_CFD.cpp | 10 +- SU2_CFD/src/definition_structure.cpp | 2 +- SU2_CFD/src/element_linear.cpp | 276 +-- SU2_CFD/src/element_structure.cpp | 8 +- SU2_CFD/src/fluid_model_pig.cpp | 28 +- SU2_CFD/src/fluid_model_ppr.cpp | 50 +- SU2_CFD/src/fluid_model_pvdw.cpp | 32 +- SU2_CFD/src/gauss_structure.cpp | 10 +- SU2_CFD/src/integration_structure.cpp | 42 +- SU2_CFD/src/integration_time.cpp | 62 +- SU2_CFD/src/iteration_structure.cpp | 122 +- SU2_CFD/src/numerics_adjoint_levelset.cpp | 12 +- SU2_CFD/src/numerics_adjoint_mean.cpp | 444 ++-- SU2_CFD/src/numerics_adjoint_tne2.cpp | 334 +-- SU2_CFD/src/numerics_adjoint_turbulent.cpp | 162 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 126 +- SU2_CFD/src/numerics_direct_mean.cpp | 656 +++--- SU2_CFD/src/numerics_direct_poisson.cpp | 6 +- SU2_CFD/src/numerics_direct_tne2.cpp | 374 +-- SU2_CFD/src/numerics_direct_transition.cpp | 104 +- SU2_CFD/src/numerics_direct_turbulent.cpp | 352 +-- SU2_CFD/src/numerics_fem_elasticity.cpp | 52 +- .../src/numerics_fem_linear_elasticity.cpp | 16 +- .../src/numerics_fem_nonlinear_elasticity.cpp | 70 +- SU2_CFD/src/numerics_linearized_mean.cpp | 64 +- SU2_CFD/src/numerics_machine_learning.cpp | 90 +- .../numerics_machine_learning_turbulent.cpp | 56 +- SU2_CFD/src/numerics_structure.cpp | 682 +++--- SU2_CFD/src/numerics_template.cpp | 34 +- SU2_CFD/src/output_fieldview.cpp | 50 +- SU2_CFD/src/output_paraview.cpp | 76 +- SU2_CFD/src/output_structure.cpp | 1100 ++++----- SU2_CFD/src/output_su2.cpp | 2 +- SU2_CFD/src/output_tecplot.cpp | 58 +- SU2_CFD/src/solver_adjoint_levelset.cpp | 152 +- SU2_CFD/src/solver_adjoint_mean.cpp | 732 +++--- SU2_CFD/src/solver_adjoint_tne2.cpp | 476 ++-- SU2_CFD/src/solver_adjoint_turbulent.cpp | 92 +- SU2_CFD/src/solver_direct_elasticity.cpp | 328 +-- SU2_CFD/src/solver_direct_heat.cpp | 38 +- SU2_CFD/src/solver_direct_mean.cpp | 1438 ++++++------ SU2_CFD/src/solver_direct_poisson.cpp | 54 +- SU2_CFD/src/solver_direct_tne2.cpp | 780 +++---- SU2_CFD/src/solver_direct_transition.cpp | 50 +- SU2_CFD/src/solver_direct_turbulent.cpp | 326 +-- SU2_CFD/src/solver_direct_wave.cpp | 66 +- SU2_CFD/src/solver_fem_elasticity.cpp | 212 +- SU2_CFD/src/solver_linearized_mean.cpp | 138 +- SU2_CFD/src/solver_structure.cpp | 218 +- SU2_CFD/src/transport_model.cpp | 16 +- SU2_CFD/src/variable_adjoint_levelset.cpp | 10 +- SU2_CFD/src/variable_adjoint_mean.cpp | 70 +- SU2_CFD/src/variable_adjoint_tne2.cpp | 64 +- SU2_CFD/src/variable_adjoint_turbulent.cpp | 6 +- SU2_CFD/src/variable_direct_elasticity.cpp | 42 +- SU2_CFD/src/variable_direct_heat.cpp | 8 +- SU2_CFD/src/variable_direct_mean.cpp | 128 +- SU2_CFD/src/variable_direct_poisson.cpp | 8 +- SU2_CFD/src/variable_direct_tne2.cpp | 232 +- SU2_CFD/src/variable_direct_transition.cpp | 2 +- SU2_CFD/src/variable_direct_turbulent.cpp | 24 +- SU2_CFD/src/variable_direct_wave.cpp | 8 +- SU2_CFD/src/variable_fem_elasticity.cpp | 28 +- SU2_CFD/src/variable_linearized_mean.cpp | 48 +- SU2_CFD/src/variable_structure.cpp | 58 +- SU2_CFD/src/variable_template.cpp | 2 +- SU2_DEF/src/SU2_DEF.cpp | 10 +- SU2_DOT/src/SU2_DOT.cpp | 12 +- SU2_GEO/src/SU2_GEO.cpp | 38 +- SU2_MSH/src/SU2_MSH.cpp | 8 +- SU2_SOL/src/SU2_SOL.cpp | 14 +- 120 files changed, 12054 insertions(+), 12054 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 831bf437008..3bc7a7c8de1 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -61,22 +61,22 @@ class CConfig { unsigned short Kind_SU2; /*!< \brief Kind of SU2 software component.*/ unsigned short Ref_NonDim; /*!< \brief Kind of of non dimensionalization.*/ unsigned short iZone, nZone; /*!< \brief Number of zones in the mesh. */ - double OrderMagResidual; /*!< \brief Order of magnitude reduction. */ - double MinLogResidual; /*!< \brief Minimum value of the log residual. */ - double OrderMagResidualFSI; /*!< \brief Order of magnitude reduction. */ - double MinLogResidualFSI; /*!< \brief Minimum value of the log residual. */ - double Res_FEM_UTOL; /*!< \brief UTOL criteria for structural FEM. */ - double Res_FEM_RTOL; /*!< \brief RTOL criteria for structural FEM. */ - double Res_FEM_ETOL; /*!< \brief ETOL criteria for structural FEM. */ - double EA_ScaleFactor; /*!< \brief Equivalent Area scaling factor */ - double* EA_IntLimit; /*!< \brief Integration limits of the Equivalent Area computation */ - double AdjointLimit; /*!< \brief Adjoint variable limit */ + su2double OrderMagResidual; /*!< \brief Order of magnitude reduction. */ + su2double MinLogResidual; /*!< \brief Minimum value of the log residual. */ + su2double OrderMagResidualFSI; /*!< \brief Order of magnitude reduction. */ + su2double MinLogResidualFSI; /*!< \brief Minimum value of the log residual. */ + su2double Res_FEM_UTOL; /*!< \brief UTOL criteria for structural FEM. */ + su2double Res_FEM_RTOL; /*!< \brief RTOL criteria for structural FEM. */ + su2double Res_FEM_ETOL; /*!< \brief ETOL criteria for structural FEM. */ + su2double EA_ScaleFactor; /*!< \brief Equivalent Area scaling factor */ + su2double* EA_IntLimit; /*!< \brief Integration limits of the Equivalent Area computation */ + su2double AdjointLimit; /*!< \brief Adjoint variable limit */ bool MG_AdjointFlow; /*!< \brief MG with the adjoint flow problem */ - double* Subsonic_Engine_Box; /*!< \brief Coordinates of the box subsonic region */ - double* Hold_GridFixed_Coord; /*!< \brief Coordinates of the box to hold fixed the nbumerical grid */ + su2double* Subsonic_Engine_Box; /*!< \brief Coordinates of the box subsonic region */ + su2double* Hold_GridFixed_Coord; /*!< \brief Coordinates of the box to hold fixed the nbumerical grid */ unsigned short ConvCriteria; /*!< \brief Kind of convergence criteria. */ unsigned short nFFD_Iter; /*!< \brief Iteration for the point inversion problem. */ - double FFD_Tol; /*!< \brief Tolerance in the point inversion problem. */ + su2double FFD_Tol; /*!< \brief Tolerance in the point inversion problem. */ bool Viscous_Limiter_Flow, Viscous_Limiter_Turb; /*!< \brief Viscous limiters. */ bool Write_Conv_FSI; /*!< \brief Write convergence file for FSI problems. */ bool Adjoint, /*!< \brief Flag to know if the code is solving an adjoint problem. */ @@ -101,21 +101,21 @@ class CConfig { Axisymmetric, /*!< \brief Flag for axisymmetric calculations */ DebugMode, /*!< \brief Flag for debug mode */ ionization; /*!< \brief Flag for determining if free electron gas is in the mixture */ - double Damp_Engine_Inflow; /*!< \brief Damping factor for the engine inlet. */ - double Damp_Engine_Bleed; /*!< \brief Damping factor for the engine bleed. */ - double Damp_Engine_Exhaust; /*!< \brief Damping factor for the engine exhaust. */ - double Damp_Res_Restric, /*!< \brief Damping factor for the residual restriction. */ + su2double Damp_Engine_Inflow; /*!< \brief Damping factor for the engine inlet. */ + su2double Damp_Engine_Bleed; /*!< \brief Damping factor for the engine bleed. */ + su2double Damp_Engine_Exhaust; /*!< \brief Damping factor for the engine exhaust. */ + su2double Damp_Res_Restric, /*!< \brief Damping factor for the residual restriction. */ Damp_Correc_Prolong; /*!< \brief Damping factor for the correction prolongation. */ - double Position_Plane; /*!< \brief Position of the Near-Field (y coordinate 2D, and z coordinate 3D). */ - double WeightCd; /*!< \brief Weight of the drag coefficient. */ + su2double Position_Plane; /*!< \brief Position of the Near-Field (y coordinate 2D, and z coordinate 3D). */ + su2double WeightCd; /*!< \brief Weight of the drag coefficient. */ unsigned short Unsteady_Simulation; /*!< \brief Steady or unsteady (time stepping or dual time stepping) computation. */ unsigned short Dynamic_Analysis; /*!< \brief Static or dynamic structural analysis. */ unsigned short nStartUpIter; /*!< \brief Start up iterations using the fine grid. */ - double FixAzimuthalLine; /*!< \brief Fix an azimuthal line due to misalignments of the nearfield. */ - double *DV_Value; /*!< \brief Previous value of the design variable. */ - double LimiterCoeff; /*!< \brief Limiter coefficient */ + su2double FixAzimuthalLine; /*!< \brief Fix an azimuthal line due to misalignments of the nearfield. */ + su2double *DV_Value; /*!< \brief Previous value of the design variable. */ + su2double LimiterCoeff; /*!< \brief Limiter coefficient */ unsigned long LimiterIter; /*!< \brief Freeze the value of the limiter after a number of iterations */ - double SharpEdgesCoeff; /*!< \brief Coefficient to identify the limit of a sharp edge. */ + su2double SharpEdgesCoeff; /*!< \brief Coefficient to identify the limit of a sharp edge. */ unsigned short SystemMeasurements; /*!< \brief System of measurements. */ unsigned short Kind_Regime; /*!< \brief Kind of adjoint function. */ unsigned short Kind_ObjFunc; /*!< \brief Kind of objective function. */ @@ -123,7 +123,7 @@ class CConfig { unsigned short Continuous_Eqns; /*!< \brief Which equations to treat continuously (Hybrid adjoint)*/ unsigned short Discrete_Eqns; /*!< \brief Which equations to treat discretely (Hybrid adjoint). */ unsigned short *Design_Variable; /*!< \brief Kind of design variable. */ - double RatioDensity, /*!< \brief Ratio of density for a free surface problem. */ + su2double RatioDensity, /*!< \brief Ratio of density for a free surface problem. */ RatioViscosity, /*!< \brief Ratio of viscosity for a free surface problem. */ FreeSurface_Thickness, /*!< \brief Thickness of the interfase for a free surface problem. */ FreeSurface_Outlet, /*!< \brief Outlet of the interfase for a free surface problem. */ @@ -131,16 +131,16 @@ class CConfig { FreeSurface_Damping_Length; /*!< \brief Damping length of the free surface for a free surface problem. */ unsigned short Kind_Adaptation; /*!< \brief Kind of numerical grid adaptation. */ unsigned short nTimeInstances; /*!< \brief Number of periodic time instances for Time Spectral integration. */ - double TimeSpectral_Period; /*!< \brief Period of oscillation to be used with time-spectral computations. */ - double New_Elem_Adapt; /*!< \brief Elements to adapt in the numerical grid adaptation process. */ - double Delta_UnstTime, /*!< \brief Time step for unsteady computations. */ + su2double TimeSpectral_Period; /*!< \brief Period of oscillation to be used with time-spectral computations. */ + su2double New_Elem_Adapt; /*!< \brief Elements to adapt in the numerical grid adaptation process. */ + su2double Delta_UnstTime, /*!< \brief Time step for unsteady computations. */ Delta_UnstTimeND; /*!< \brief Time step for unsteady computations (non dimensional). */ - double Delta_DynTime, /*!< \brief Time step for dynamic structural computations. */ + su2double Delta_DynTime, /*!< \brief Time step for dynamic structural computations. */ Total_DynTime, /*!< \brief Total time for dynamic structural computations. */ Current_DynTime; /*!< \brief Global time of the dynamic structural computations. */ - double Total_UnstTime, /*!< \brief Total time for unsteady computations. */ + su2double Total_UnstTime, /*!< \brief Total time for unsteady computations. */ Total_UnstTimeND; /*!< \brief Total time for unsteady computations (non dimensional). */ - double Current_UnstTime, /*!< \brief Global time of the unsteady simulation. */ + su2double Current_UnstTime, /*!< \brief Global time of the unsteady simulation. */ Current_UnstTimeND; /*!< \brief Global time of the unsteady simulation. */ unsigned short nMarker_Euler, /*!< \brief Number of Euler wall markers. */ nMarker_FarField, /*!< \brief Number of far-field markers. */ @@ -218,56 +218,56 @@ class CConfig { *Marker_Neumann, /*!< \brief Neumann flow markers. */ *Marker_Neumann_Elec, /*!< \brief Neumann flow markers. */ *Marker_All_TagBound; /*!< \brief Global index for markers using grid information. */ - double *Dirichlet_Value; /*!< \brief Specified Dirichlet value at the boundaries. */ - double *Exhaust_Temperature_Target; /*!< \brief Specified total temperatures for nacelle boundaries. */ - double *Exhaust_Pressure_Target; /*!< \brief Specified total pressures for nacelle boundaries. */ - double *Inlet_Ttotal; /*!< \brief Specified total temperatures for inlet boundaries. */ - double *Riemann_Var1, *Riemann_Var2; /*!< \brief Specified values for Riemann boundary. */ - double **Riemann_FlowDir; /*!< \brief Specified flow direction vector (unit vector) for Riemann boundaries. */ - double *Inlet_Ptotal; /*!< \brief Specified total pressures for inlet boundaries. */ - double **Inlet_FlowDir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ - double *Inlet_Temperature; /*!< \brief Specified temperatures for a supersonic inlet boundaries. */ - double *Inlet_Pressure; /*!< \brief Specified static pressures for supersonic inlet boundaries. */ - double **Inlet_Velocity; /*!< \brief Specified flow velocity vectors for supersonic inlet boundaries. */ - double *Inflow_Mach_Target; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Inflow_Mach; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Inflow_Pressure; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Bleed_MassFlow_Target; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Bleed_MassFlow; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Bleed_Temperature_Target; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Bleed_Temperature; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Bleed_Pressure; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Exhaust_Pressure; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Exhaust_Temperature; /*!< \brief Specified fan face mach for nacelle boundaries. */ - double *Outlet_Pressure; /*!< \brief Specified back pressures (static) for outlet boundaries. */ - double *Isothermal_Temperature; /*!< \brief Specified isothermal wall temperatures (static). */ - double *Wall_Catalycity; /*!< \brief Specified wall species mass-fractions for catalytic boundaries. */ - double *Heat_Flux; /*!< \brief Specified wall heat fluxes. */ - double *Heat_FluxNonCatalytic; /*!< \brief Specified wall heat fluxes. */ - double *Heat_FluxCatalytic; /*!< \brief Specified wall heat fluxes. */ - double *Displ_Value; /*!< \brief Specified displacement for displacement boundaries. */ - double *Load_Value; /*!< \brief Specified force for load boundaries. */ - double *Load_Dir_Value; /*!< \brief Specified force for load boundaries defined in cartesian coordinates. */ - double *Load_Dir_Multiplier; /*!< \brief Specified multiplier for load boundaries defined in cartesian coordinates. */ - double **Load_Dir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ - double *Load_Sine_Amplitude; /*!< \brief Specified amplitude for a sine-wave load. */ - double *Load_Sine_Frequency; /*!< \brief Specified multiplier for load boundaries defined in cartesian coordinates. */ - double **Load_Sine_Dir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ - double *FlowLoad_Value; /*!< \brief Specified force for flow load boundaries. */ - double **ActDisk_Origin; - double *ActDisk_RootRadius; - double *ActDisk_TipRadius; - double *ActDisk_PressJump; - double *ActDisk_TempJump; - double *ActDisk_Omega; + su2double *Dirichlet_Value; /*!< \brief Specified Dirichlet value at the boundaries. */ + su2double *Exhaust_Temperature_Target; /*!< \brief Specified total temperatures for nacelle boundaries. */ + su2double *Exhaust_Pressure_Target; /*!< \brief Specified total pressures for nacelle boundaries. */ + su2double *Inlet_Ttotal; /*!< \brief Specified total temperatures for inlet boundaries. */ + su2double *Riemann_Var1, *Riemann_Var2; /*!< \brief Specified values for Riemann boundary. */ + su2double **Riemann_FlowDir; /*!< \brief Specified flow direction vector (unit vector) for Riemann boundaries. */ + su2double *Inlet_Ptotal; /*!< \brief Specified total pressures for inlet boundaries. */ + su2double **Inlet_FlowDir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ + su2double *Inlet_Temperature; /*!< \brief Specified temperatures for a supersonic inlet boundaries. */ + su2double *Inlet_Pressure; /*!< \brief Specified static pressures for supersonic inlet boundaries. */ + su2double **Inlet_Velocity; /*!< \brief Specified flow velocity vectors for supersonic inlet boundaries. */ + su2double *Inflow_Mach_Target; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Inflow_Mach; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Inflow_Pressure; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Bleed_MassFlow_Target; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Bleed_MassFlow; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Bleed_Temperature_Target; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Bleed_Temperature; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Bleed_Pressure; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Exhaust_Pressure; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Exhaust_Temperature; /*!< \brief Specified fan face mach for nacelle boundaries. */ + su2double *Outlet_Pressure; /*!< \brief Specified back pressures (static) for outlet boundaries. */ + su2double *Isothermal_Temperature; /*!< \brief Specified isothermal wall temperatures (static). */ + su2double *Wall_Catalycity; /*!< \brief Specified wall species mass-fractions for catalytic boundaries. */ + su2double *Heat_Flux; /*!< \brief Specified wall heat fluxes. */ + su2double *Heat_FluxNonCatalytic; /*!< \brief Specified wall heat fluxes. */ + su2double *Heat_FluxCatalytic; /*!< \brief Specified wall heat fluxes. */ + su2double *Displ_Value; /*!< \brief Specified displacement for displacement boundaries. */ + su2double *Load_Value; /*!< \brief Specified force for load boundaries. */ + su2double *Load_Dir_Value; /*!< \brief Specified force for load boundaries defined in cartesian coordinates. */ + su2double *Load_Dir_Multiplier; /*!< \brief Specified multiplier for load boundaries defined in cartesian coordinates. */ + su2double **Load_Dir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ + su2double *Load_Sine_Amplitude; /*!< \brief Specified amplitude for a sine-wave load. */ + su2double *Load_Sine_Frequency; /*!< \brief Specified multiplier for load boundaries defined in cartesian coordinates. */ + su2double **Load_Sine_Dir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ + su2double *FlowLoad_Value; /*!< \brief Specified force for flow load boundaries. */ + su2double **ActDisk_Origin; + su2double *ActDisk_RootRadius; + su2double *ActDisk_TipRadius; + su2double *ActDisk_PressJump; + su2double *ActDisk_TempJump; + su2double *ActDisk_Omega; unsigned short *ActDisk_Distribution; - double **Periodic_RotCenter; /*!< \brief Rotational center for each periodic boundary. */ - double **Periodic_RotAngles; /*!< \brief Rotation angles for each periodic boundary. */ - double **Periodic_Translation; /*!< \brief Translation vector for each periodic boundary. */ + su2double **Periodic_RotCenter; /*!< \brief Rotational center for each periodic boundary. */ + su2double **Periodic_RotAngles; /*!< \brief Rotation angles for each periodic boundary. */ + su2double **Periodic_Translation; /*!< \brief Translation vector for each periodic boundary. */ unsigned short nPeriodic_Index; /*!< \brief Number of SEND_RECEIVE periodic transformations. */ - double **Periodic_Center; /*!< \brief Rotational center for each SEND_RECEIVE boundary. */ - double **Periodic_Rotation; /*!< \brief Rotation angles for each SEND_RECEIVE boundary. */ - double **Periodic_Translate; /*!< \brief Translation vector for each SEND_RECEIVE boundary. */ + su2double **Periodic_Center; /*!< \brief Rotational center for each SEND_RECEIVE boundary. */ + su2double **Periodic_Rotation; /*!< \brief Rotation angles for each SEND_RECEIVE boundary. */ + su2double **Periodic_Translate; /*!< \brief Translation vector for each SEND_RECEIVE boundary. */ string *Marker_CfgFile_TagBound; /*!< \brief Global index for markers using config file. */ unsigned short *Marker_All_KindBC, /*!< \brief Global index for boundaries using grid information. */ *Marker_CfgFile_KindBC; /*!< \brief Global index for boundaries using config file. */ @@ -281,10 +281,10 @@ class CConfig { long Unst_RestartIter; /*!< \brief Iteration number to restart an unsteady simulation (Dual time Method). */ long Unst_AdjointIter; /*!< \brief Iteration number to begin the reverse time integration in the direct solver for the unsteady adjoint. */ unsigned short nRKStep; /*!< \brief Number of steps of the explicit Runge-Kutta method. */ - double *RK_Alpha_Step; /*!< \brief Runge-Kutta beta coefficients. */ + su2double *RK_Alpha_Step; /*!< \brief Runge-Kutta beta coefficients. */ unsigned short nMGLevels; /*!< \brief Number of multigrid levels (coarse levels). */ unsigned short nCFL; /*!< \brief Number of CFL, one for each multigrid level. */ - double + su2double CFLRedCoeff_Turb, /*!< \brief CFL reduction coefficient on the LevelSet problem. */ CFLRedCoeff_AdjFlow, /*!< \brief CFL reduction coefficient for the adjoint problem. */ CFLRedCoeff_AdjTurb, /*!< \brief CFL reduction coefficient for the adjoint problem. */ @@ -296,8 +296,8 @@ class CConfig { unsigned short nFFDBox; /*!< \brief Number of ffd boxes. */ unsigned short nGridMovement; /*!< \brief Number of grid movement types specified. */ unsigned short nParamDV; /*!< \brief Number of parameters of the design variable. */ - double **ParamDV; /*!< \brief Parameters of the design variable. */ - double **CoordFFDBox; /*!< \brief Coordinates of the FFD boxes. */ + su2double **ParamDV; /*!< \brief Parameters of the design variable. */ + su2double **CoordFFDBox; /*!< \brief Coordinates of the FFD boxes. */ unsigned short **DegreeFFDBox; /*!< \brief Degree of the FFD boxes. */ string *FFDTag; /*!< \brief Parameters of the design variable. */ string *TagFFDBox; /*!< \brief Tag of the FFD box. */ @@ -401,26 +401,26 @@ class CConfig { unsigned short Kind_Trans_Model, /*!< \brief Transition model definition. */ Kind_Inlet, *Kind_Data_Riemann; /*!< \brief Kind of inlet boundary treatment. */ - double Linear_Solver_Error; /*!< \brief Min error of the linear solver for the implicit formulation. */ + su2double Linear_Solver_Error; /*!< \brief Min error of the linear solver for the implicit formulation. */ unsigned long Linear_Solver_Iter; /*!< \brief Max iterations of the linear solver for the implicit formulation. */ unsigned long Linear_Solver_Iter_FSI_Struc; /*!< \brief Max iterations of the linear solver for FSI applications and structural solver. */ unsigned long Linear_Solver_Restart_Frequency; /*!< \brief Restart frequency of the linear solver for the implicit formulation. */ - double Roe_Kappa; /*!< \brief Relaxation of the Roe scheme. */ - double Relaxation_Factor_Flow; /*!< \brief Relaxation coefficient of the linear solver mean flow. */ - double Relaxation_Factor_Turb; /*!< \brief Relaxation coefficient of the linear solver turbulence. */ - double Relaxation_Factor_AdjFlow; /*!< \brief Relaxation coefficient of the linear solver adjoint mean flow. */ - double AdjTurb_Linear_Error; /*!< \brief Min error of the turbulent adjoint linear solver for the implicit formulation. */ - double EntropyFix_Coeff; /*!< \brief Entropy fix coefficient. */ + su2double Roe_Kappa; /*!< \brief Relaxation of the Roe scheme. */ + su2double Relaxation_Factor_Flow; /*!< \brief Relaxation coefficient of the linear solver mean flow. */ + su2double Relaxation_Factor_Turb; /*!< \brief Relaxation coefficient of the linear solver turbulence. */ + su2double Relaxation_Factor_AdjFlow; /*!< \brief Relaxation coefficient of the linear solver adjoint mean flow. */ + su2double AdjTurb_Linear_Error; /*!< \brief Min error of the turbulent adjoint linear solver for the implicit formulation. */ + su2double EntropyFix_Coeff; /*!< \brief Entropy fix coefficient. */ unsigned short AdjTurb_Linear_Iter; /*!< \brief Min error of the turbulent adjoint linear solver for the implicit formulation. */ - double *Section_Location; /*!< \brief Airfoil section limit. */ + su2double *Section_Location; /*!< \brief Airfoil section limit. */ unsigned short nSections, /*!< \brief Number of section cuts to make when calculating internal volume. */ nVolSections; /*!< \brief Number of sections. */ - double* Kappa_Flow, /*!< \brief Numerical dissipation coefficients for the flow equations. */ + su2double* Kappa_Flow, /*!< \brief Numerical dissipation coefficients for the flow equations. */ *Kappa_AdjFlow, /*!< \brief Numerical dissipation coefficients for the adjoint equations. */ *Kappa_TNE2, /*!< \brief Numerical dissipation coefficients for the TNE2 equations. */ *Kappa_AdjTNE2, /*!< \brief Numerical dissipation coefficients for the adjoint TNE2 equations. */ *Kappa_LinFlow; /*!< \brief Numerical dissipation coefficients for the linearized equations. */ - double Kappa_1st_AdjFlow, /*!< \brief JST 1st order dissipation coefficient for adjoint flow equations (coarse multigrid levels). */ + su2double Kappa_1st_AdjFlow, /*!< \brief JST 1st order dissipation coefficient for adjoint flow equations (coarse multigrid levels). */ Kappa_2nd_AdjFlow, /*!< \brief JST 2nd order dissipation coefficient for adjoint flow equations. */ Kappa_4th_AdjFlow, /*!< \brief JST 4th order dissipation coefficient for adjoint flow equations. */ Kappa_1st_LinFlow, /*!< \brief JST 1st order dissipation coefficient for linearized flow equations (coarse multigrid levels). */ @@ -435,37 +435,37 @@ class CConfig { Kappa_2nd_AdjTNE2, /*!< \brief JST 2nd order dissipation coefficient for flow equations. */ Kappa_4th_AdjTNE2; /*!< \brief JST 4th order dissipation coefficient for flow equations. */ - double Min_Beta_RoeTurkel, /*!< \brief Minimum value of Beta for the Roe-Turkel low Mach preconditioner. */ + su2double Min_Beta_RoeTurkel, /*!< \brief Minimum value of Beta for the Roe-Turkel low Mach preconditioner. */ Max_Beta_RoeTurkel; /*!< \brief Maximum value of Beta for the Roe-Turkel low Mach preconditioner. */ unsigned long GridDef_Nonlinear_Iter, /*!< \brief Number of nonlinear increments for grid deformation. */ GridDef_Linear_Iter; /*!< \brief Number of linear smoothing iterations for grid deformation. */ unsigned short Deform_Stiffness_Type; /*!< \brief Type of element stiffness imposed for FEA mesh deformation. */ bool Deform_Output; /*!< \brief Print the residuals during mesh deformation to the console. */ - double Deform_Tol_Factor; /*!< Factor to multiply smallest volume for deform tolerance (0.001 default) */ + su2double Deform_Tol_Factor; /*!< Factor to multiply smallest volume for deform tolerance (0.001 default) */ unsigned short Deform_Linear_Solver; /*!< Numerical method to deform the grid */ unsigned short FFD_Continuity; /*!< Surface continuity at the intersection with the FFD */ - double Deform_ElasticityMod, Deform_PoissonRatio; /*!< young's modulus and poisson ratio for volume deformation stiffness model */ + su2double Deform_ElasticityMod, Deform_PoissonRatio; /*!< young's modulus and poisson ratio for volume deformation stiffness model */ bool Visualize_Deformation; /*!< \brief Flag to visualize the deformation in MDC. */ - double Mach; /*!< \brief Mach number. */ - double Reynolds; /*!< \brief Reynolds number. */ - double Froude; /*!< \brief Froude number. */ - double Length_Reynolds; /*!< \brief Reynolds length (dimensional). */ - double AoA, /*!< \brief Angle of attack (just external flow). */ + su2double Mach; /*!< \brief Mach number. */ + su2double Reynolds; /*!< \brief Reynolds number. */ + su2double Froude; /*!< \brief Froude number. */ + su2double Length_Reynolds; /*!< \brief Reynolds length (dimensional). */ + su2double AoA, /*!< \brief Angle of attack (just external flow). */ AoS; /*!< \brief Angle of sideSlip (just external flow). */ bool Fixed_CL_Mode; /*!< \brief Activate fixed CL mode (external flow only). */ - double Target_CL; /*!< \brief Specify a target CL instead of AoA (external flow only). */ - double Damp_Fixed_CL; /*!< \brief Damping coefficient for fixed CL mode (external flow only). */ + su2double Target_CL; /*!< \brief Specify a target CL instead of AoA (external flow only). */ + su2double Damp_Fixed_CL; /*!< \brief Damping coefficient for fixed CL mode (external flow only). */ unsigned long Iter_Fixed_CL; /*!< \brief Iterations to re-evaluate the angle of attack (external flow only). */ bool Update_AoA; /*!< \brief Boolean flag for whether to update the AoA for fixed lift mode on a given iteration. */ - double ChargeCoeff; /*!< \brief Charge coefficient (just for poisson problems). */ - double *U_FreeStreamND; /*!< \brief Reference variables at the infinity, free stream values. */ + su2double ChargeCoeff; /*!< \brief Charge coefficient (just for poisson problems). */ + su2double *U_FreeStreamND; /*!< \brief Reference variables at the infinity, free stream values. */ unsigned short Cauchy_Func_Flow, /*!< \brief Function where to apply the convergence criteria in the flow problem. */ Cauchy_Func_AdjFlow, /*!< \brief Function where to apply the convergence criteria in the adjoint problem. */ Cauchy_Func_LinFlow, /*!< \brief Function where to apply the convergence criteria in the linearized problem. */ Cauchy_Elems; /*!< \brief Number of elements to evaluate. */ unsigned short Residual_Func_Flow; /*!< \brief Equation to apply residual convergence to. */ unsigned long StartConv_Iter; /*!< \brief Start convergence criteria at iteration. */ - double Cauchy_Eps; /*!< \brief Epsilon used for the convergence. */ + su2double Cauchy_Eps; /*!< \brief Epsilon used for the convergence. */ unsigned long Wrt_Sol_Freq, /*!< \brief Writing solution frequency. */ Wrt_Sol_Freq_DualTime, /*!< \brief Writing solution frequency for Dual Time. */ Wrt_Con_Freq, /*!< \brief Writing convergence history frequency. */ @@ -507,13 +507,13 @@ class CConfig { *Marker_CfgFile_DV, /*!< \brief Global index for design variable markers using the config information. */ *Marker_CfgFile_PerBound; /*!< \brief Global index for periodic boundaries using the config information. */ string *PlaneTag; /*!< \brief Global index for the plane adaptation (upper, lower). */ - double DualVol_Power; /*!< \brief Power for the dual volume in the grid adaptation sensor. */ + su2double DualVol_Power; /*!< \brief Power for the dual volume in the grid adaptation sensor. */ unsigned short Analytical_Surface; /*!< \brief Information about the analytical definition of the surface for grid adaptation. */ unsigned short Axis_Orientation; /*!< \brief Axis orientation. */ unsigned short Mesh_FileFormat; /*!< \brief Mesh input format. */ unsigned short Output_FileFormat; /*!< \brief Format of the output files. */ bool CFL_Adapt; /*!< \brief Adaptive CFL number. */ - double RefAreaCoeff, /*!< \brief Reference area for coefficient computation. */ + su2double RefAreaCoeff, /*!< \brief Reference area for coefficient computation. */ RefElemLength, /*!< \brief Reference element length for computing the slope limiting epsilon. */ RefSharpEdges, /*!< \brief Reference coefficient for detecting sharp edges. */ RefLengthMoment, /*!< \brief Reference length for moment computation. */ @@ -570,7 +570,7 @@ class CConfig { Plot_Section_Forces, /*!< \brief Write sectional forces for specified markers. */ Wrt_1D_Output; /*!< \brief Write average stagnation pressure specified markers. */ unsigned short Console_Output_Verb; /*!< \brief Level of verbosity for console output */ - double *ArrheniusCoefficient, /*!< \brief Arrhenius reaction coefficient */ + su2double *ArrheniusCoefficient, /*!< \brief Arrhenius reaction coefficient */ *ArrheniusEta, /*!< \brief Arrhenius reaction temperature exponent */ *ArrheniusTheta, /*!< \brief Arrhenius reaction characteristic temperature */ *CharVibTemp, /*!< \brief Characteristic vibrational temperature for e_vib */ @@ -584,7 +584,7 @@ class CConfig { unsigned short nMass, /*!< \brief No of particle masses */ nTemp; /*!< \brief No of freestream temperatures specified */ bool Inlet_Outlet_Defined; /*!< \brief that inlet and outlet conditions are defined for each species*/ - double *Particle_Mass, /*!< \brief Mass of all particles present in the plasma */ + su2double *Particle_Mass, /*!< \brief Mass of all particles present in the plasma */ *Molar_Mass, /*!< \brief Molar mass of species in the plasma [kg/kmol] */ Mixture_Molar_mass, /*!< \brief Molar mass of the multi-species fluid [kg/kmol] */ *Gas_Composition, /*!< \brief Initial mass fractions of flow [dimensionless] */ @@ -593,9 +593,9 @@ class CConfig { *Species_Ref_Temperature, /*!< \brief Reference Temperature for viscosity of all particles present in the plasma */ *Species_Ref_Viscosity; /*!< \brief Reference viscosity of all particles present in the plasma */ unsigned short *nElStates; /*!< \brief Number of electron states. */ - double **CharElTemp, /*!< \brief Characteristic temperature of electron states. */ + su2double **CharElTemp, /*!< \brief Characteristic temperature of electron states. */ **degen; /*!< \brief Degeneracy of electron states. */ - double Gamma, /*!< \brief Ratio of specific heats of the gas. */ + su2double Gamma, /*!< \brief Ratio of specific heats of the gas. */ Bulk_Modulus, /*!< \brief Value of the bulk modulus for incompressible flows. */ ArtComp_Factor, /*!< \brief Value of the artificial compresibility factor for incompressible flows. */ Gas_Constant, /*!< \brief Specific gas constant. */ @@ -653,23 +653,23 @@ class CConfig { Omega_FreeStream, /*!< \brief Specific dissipation (external flow). */ pnorm_heat; /*!< \brief pnorm for heat-flux objective functions. */ int ***Reactions; /*!< \brief Reaction map for chemically reacting, multi-species flows. */ - double ***Omega00, /*!< \brief Collision integrals (Omega(0,0)) */ + su2double ***Omega00, /*!< \brief Collision integrals (Omega(0,0)) */ ***Omega11; /*!< \brief Collision integrals (Omega(1,1)) */ - double ElasticyMod, /*!< \brief Young's modulus of elasticity. */ + su2double ElasticyMod, /*!< \brief Young's modulus of elasticity. */ PoissonRatio, /*!< \brief Poisson's ratio. */ MaterialDensity, /*!< \brief Material density. */ Bulk_Modulus_Struct; /*!< \brief Bulk modulus (on the structural side). */ unsigned short Kind_2DElasForm; /*!< \brief Kind of bidimensional elasticity solver. */ unsigned short nIterFSI; /*!< \brief Number of maximum number of subiterations in a FSI problem. */ - double AitkenStatRelax; /*!< \brief Aitken's relaxation factor (if set as static) */ - double AitkenDynMaxInit; /*!< \brief Aitken's maximum dynamic relaxation factor for the first iteration */ - double Wave_Speed; /*!< \brief Wave speed used in the wave solver. */ - double Thermal_Diffusivity; /*!< \brief Thermal diffusivity used in the heat solver. */ - double Cyclic_Pitch, /*!< \brief Cyclic pitch for rotorcraft simulations. */ + su2double AitkenStatRelax; /*!< \brief Aitken's relaxation factor (if set as static) */ + su2double AitkenDynMaxInit; /*!< \brief Aitken's maximum dynamic relaxation factor for the first iteration */ + su2double Wave_Speed; /*!< \brief Wave speed used in the wave solver. */ + su2double Thermal_Diffusivity; /*!< \brief Thermal diffusivity used in the heat solver. */ + su2double Cyclic_Pitch, /*!< \brief Cyclic pitch for rotorcraft simulations. */ Collective_Pitch; /*!< \brief Collective pitch for rotorcraft simulations. */ string Motion_Filename; /*!< \brief Arbitrary mesh motion input base filename. */ - double Mach_Motion; /*!< \brief Mach number based on mesh velocity and freestream quantities. */ - double *Motion_Origin_X, /*!< \brief X-coordinate of the mesh motion origin. */ + su2double Mach_Motion; /*!< \brief Mach number based on mesh velocity and freestream quantities. */ + su2double *Motion_Origin_X, /*!< \brief X-coordinate of the mesh motion origin. */ *Motion_Origin_Y, /*!< \brief Y-coordinate of the mesh motion origin. */ *Motion_Origin_Z, /*!< \brief Z-coordinate of the mesh motion origin. */ *Translation_Rate_X, /*!< \brief Translational velocity of the mesh in the x-direction. */ @@ -719,16 +719,16 @@ class CConfig { nPlunging_Ampl_Z, /*!< \brief Number of Plunging amplitudes in the z-direction. */ nMoveMotion_Origin, /*!< \brief Number of motion origins. */ *MoveMotion_Origin; /*!< \brief Keeps track if we should move moment origin. */ - vector > > Aeroelastic_np1, /*!< \brief Aeroelastic solution at time level n+1. */ + vector > > Aeroelastic_np1, /*!< \brief Aeroelastic solution at time level n+1. */ Aeroelastic_n, /*!< \brief Aeroelastic solution at time level n. */ Aeroelastic_n1; /*!< \brief Aeroelastic solution at time level n-1. */ - double FreqPlungeAeroelastic, /*!< \brief Plunging natural frequency for Aeroelastic. */ + su2double FreqPlungeAeroelastic, /*!< \brief Plunging natural frequency for Aeroelastic. */ FreqPitchAeroelastic; /*!< \brief Pitch natural frequency for Aeroelastic. */ - double *Aeroelastic_plunge, /*!< \brief Value of plunging coordinate at the end of an external iteration. */ + su2double *Aeroelastic_plunge, /*!< \brief Value of plunging coordinate at the end of an external iteration. */ *Aeroelastic_pitch; /*!< \brief Value of pitching coordinate at the end of an external iteration. */ unsigned short Gust_Type, /*!< \brief Type of Gust. */ Gust_Dir; /*!< \brief Direction of the gust */ - double Gust_WaveLength, /*!< \brief The gust wavelength. */ + su2double Gust_WaveLength, /*!< \brief The gust wavelength. */ Gust_Periods, /*!< \brief Number of gust periods. */ Gust_Ampl, /*!< \brief Gust amplitude. */ Gust_Begin_Time, /*!< \brief Time at which to begin the gust. */ @@ -737,14 +737,14 @@ class CConfig { bool ExtraOutput; bool DeadLoad; /*!< Application of dead loads to the FE analysis */ bool MatchingMesh; /*!< Matching mesh (while implementing interpolation procedures). */ - double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ + su2double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ bool Gradual_Load, /*!< \brief Apply the load gradually. */ Ramp_Load; /*!< \brief Apply the load with linear increases. */ bool IncrementalLoad; /*!< \brief Apply the load in increments (for nonlinear structural analysis). */ unsigned long IncLoad_Nincrements; /*!< \brief Number of increments. */ - double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ - double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ + su2double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ + su2double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ unsigned short Pred_Order; /*!< \brief Order of the predictor for FSI applications. */ unsigned short Kind_Interpolation; /*!\brief type of interpolation to use for FSI applications. */ unsigned long Nonphys_Points, /*!< \brief Current number of non-physical points in the solution. */ @@ -778,8 +778,8 @@ class CConfig { // are no elements. This allows the option to be present in a config file but left blank. /*!<\brief addDoubleOption creates a config file parser for an option with the given name whose - value can be represented by a double.*/ - void addDoubleOption(const string name, double & option_field, double default_value) { + value can be represented by a su2double.*/ + void addDoubleOption(const string name, su2double & option_field, su2double default_value) { // Check if the key is already in the map. If this fails, it is coder error // and not user error, so throw. assert(option_map.find(name) == option_map.end()); @@ -787,9 +787,9 @@ class CConfig { // Add this option to the list of all the options all_options.insert(pair(name, true)); - // Create the parser for a double option with a reference to the option_field and the desired - // default value. This will take the string in the config file, convert it to a double, and - // place that double in the memory location specified by the reference. + // Create the parser for a su2double option with a reference to the option_field and the desired + // default value. This will take the string in the config file, convert it to a su2double, and + // place that su2double in the memory location specified by the reference. COptionBase* val = new COptionDouble(name, option_field, default_value); // Create an association between the option name ("CFL") and the parser generated above. @@ -862,9 +862,9 @@ class CConfig { option_map.insert( pair(name, val) ); } - void addDoubleArrayOption(const string name, const int size, double * & option_field, double * default_value) { + void addDoubleArrayOption(const string name, const int size, su2double * & option_field, su2double * default_value) { - double * def = new double [size]; + su2double * def = new su2double [size]; for (int i = 0; i < size; i++) { def[i] = default_value[i]; } @@ -874,7 +874,7 @@ class CConfig { option_map.insert(pair(name, val)); } - void addDoubleListOption(const string name, unsigned short & size, double * & option_field) { + void addDoubleListOption(const string name, unsigned short & size, su2double * & option_field) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionDoubleList(name, size, option_field); @@ -911,7 +911,7 @@ class CConfig { option_map.insert(pair(name, val)); } - void addDVParamOption(const string name, unsigned short & nDV_field, double** & paramDV, string* & FFDTag, + void addDVParamOption(const string name, unsigned short & nDV_field, su2double** & paramDV, string* & FFDTag, unsigned short* & design_variable) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); @@ -919,7 +919,7 @@ class CConfig { option_map.insert(pair(name, val)); } - void addFFDDefOption(const string name, unsigned short & nFFD_field, double** & coordFFD, string* & FFDTag) { + void addFFDDefOption(const string name, unsigned short & nFFD_field, su2double** & coordFFD, string* & FFDTag) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionFFDDef(name, nFFD_field, coordFFD, FFDTag); @@ -934,7 +934,7 @@ class CConfig { } void addStringDoubleListOption(const string name, unsigned short & list_size, string * & string_field, - double* & double_field) { + su2double* & double_field) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionStringDoubleList(name, list_size, string_field, double_field); @@ -942,7 +942,7 @@ class CConfig { } void addInletOption(const string name, unsigned short & nMarker_Inlet, string * & Marker_Inlet, - double* & Ttotal, double* & Ptotal, double** & FlowDir) { + su2double* & Ttotal, su2double* & Ptotal, su2double** & FlowDir) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionInlet(name, nMarker_Inlet, Marker_Inlet, Ttotal, Ptotal, FlowDir); @@ -951,7 +951,7 @@ class CConfig { template void addRiemannOption(const string name, unsigned short & nMarker_Riemann, string * & Marker_Riemann, unsigned short* & option_field, const map & enum_map, - double* & var1, double* & var2, double** & FlowDir) { + su2double* & var1, su2double* & var2, su2double** & FlowDir) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionRiemann(name, nMarker_Riemann, Marker_Riemann, option_field, enum_map, var1, var2, FlowDir); @@ -959,7 +959,7 @@ class CConfig { } void addExhaustOption(const string name, unsigned short & nMarker_Exhaust, string * & Marker_Exhaust, - double* & Ttotal, double* & Ptotal) { + su2double* & Ttotal, su2double* & Ptotal) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionExhaust(name, nMarker_Exhaust, Marker_Exhaust, Ttotal, Ptotal); @@ -967,7 +967,7 @@ class CConfig { } void addBleedOption(const string name, unsigned short & nMarker_Bleed, string * & Marker_Bleed, - double* & MassFlow_Target, double* & Temp_Target) { + su2double* & MassFlow_Target, su2double* & Temp_Target) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionBleed(name, nMarker_Bleed, Marker_Bleed, MassFlow_Target, Temp_Target); @@ -976,7 +976,7 @@ class CConfig { void addPeriodicOption(const string & name, unsigned short & nMarker_PerBound, string* & Marker_PerBound, string* & Marker_PerDonor, - double** & RotCenter, double** & RotAngles, double** & Translation) { + su2double** & RotCenter, su2double** & RotAngles, su2double** & Translation) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); COptionBase* val = new COptionPeriodic(name, nMarker_PerBound, Marker_PerBound, Marker_PerDonor, RotCenter, RotAngles, Translation); @@ -985,8 +985,8 @@ class CConfig { void addActuatorDiskOption(const string & name, unsigned short & nMarker_ActDisk_Inlet, unsigned short & nMarker_ActDisk_Outlet, string* & Marker_ActDisk_Inlet, string* & Marker_ActDisk_Outlet, - double** & ActDisk_Origin, double* & ActDisk_RootRadius, double* & ActDisk_TipRadius, - double* & ActDisk_PressJump, double* & ActDisk_TempJump, double* & ActDisk_Omega, + su2double** & ActDisk_Origin, su2double* & ActDisk_RootRadius, su2double* & ActDisk_TipRadius, + su2double* & ActDisk_PressJump, su2double* & ActDisk_TempJump, su2double* & ActDisk_Omega, unsigned short* & ActDisk_Distribution) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); @@ -1045,49 +1045,49 @@ class CConfig { * \param[in] val_marker - the marker we are monitoring. * \return Reference origin (in cartesians coordinates) for moment computation. */ - double *GetRefOriginMoment(unsigned short val_marker); + su2double *GetRefOriginMoment(unsigned short val_marker); /*! * \brief Get reference origin x-coordinate for moment computation. * \param[in] val_marker - the marker we are monitoring. * \return Reference origin x-coordinate (in cartesians coordinates) for moment computation. */ - double GetRefOriginMoment_X(unsigned short val_marker); + su2double GetRefOriginMoment_X(unsigned short val_marker); /*! * \brief Get reference origin y-coordinate for moment computation. * \param[in] val_marker - the marker we are monitoring. * \return Reference origin y-coordinate (in cartesians coordinates) for moment computation. */ - double GetRefOriginMoment_Y(unsigned short val_marker); + su2double GetRefOriginMoment_Y(unsigned short val_marker); /*! * \brief Get reference origin z-coordinate for moment computation. * \param[in] val_marker - the marker we are monitoring. * \return Reference origin z-coordinate (in cartesians coordinates) for moment computation. */ - double GetRefOriginMoment_Z(unsigned short val_marker); + su2double GetRefOriginMoment_Z(unsigned short val_marker); /*! * \brief Set reference origin x-coordinate for moment computation. * \param[in] val_marker - the marker we are monitoring. * \param[in] val_origin - New x-coordinate of the mesh motion origin. */ - void SetRefOriginMoment_X(unsigned short val_marker, double val_origin); + void SetRefOriginMoment_X(unsigned short val_marker, su2double val_origin); /*! * \brief Set reference origin y-coordinate for moment computation. * \param[in] val_marker - the marker we are monitoring. * \param[in] val_origin - New y-coordinate of the mesh motion origin. */ - void SetRefOriginMoment_Y(unsigned short val_marker, double val_origin); + void SetRefOriginMoment_Y(unsigned short val_marker, su2double val_origin); /*! * \brief Set reference origin z-coordinate for moment computation. * \param[in] val_marker - the marker we are monitoring. * \param[in] val_origin - New z-coordinate of the mesh motion origin. */ - void SetRefOriginMoment_Z(unsigned short val_marker, double val_origin); + void SetRefOriginMoment_Z(unsigned short val_marker, su2double val_origin); /*! * \brief Get index of the upper and lower horizontal plane. @@ -1101,38 +1101,38 @@ class CConfig { * \param[in] index - 0 means x_min, and 1 means x_max. * \return Integration limits for the equivalent area computation. */ - double GetEA_IntLimit(unsigned short index); + su2double GetEA_IntLimit(unsigned short index); /*! * \brief Get the integration limits for the equivalent area computation. * \param[in] index - 0 means x_min, and 1 means x_max. * \return Integration limits for the equivalent area computation. */ - double GetEA_ScaleFactor(void); + su2double GetEA_ScaleFactor(void); /*! * \brief Get the limit value for the adjoint variables. * \return Limit value for the adjoint variables. */ - double GetAdjointLimit(void); + su2double GetAdjointLimit(void); /*! * \brief Get the the coordinates where of the box where the grid is going to be deformed. * \return Coordinates where of the box where the grid is going to be deformed. */ - double *GetHold_GridFixed_Coord(void); + su2double *GetHold_GridFixed_Coord(void); /*! * \brief Get the the coordinates where of the box where a subsonic region is imposed. * \return Coordinates where of the box where the grid is going to be a subsonic region. */ - double *GetSubsonic_Engine_Box(void); + su2double *GetSubsonic_Engine_Box(void); /*! * \brief Get the power of the dual volume in the grid adaptation sensor. * \return Power of the dual volume in the grid adaptation sensor. */ - double GetDualVol_Power(void); + su2double GetDualVol_Power(void); /*! * \brief Get Information about if there is an analytical definition of the surface for doing the @@ -1154,37 +1154,37 @@ class CConfig { * \brief Get the ratio of density for a free surface problem. * \return Ratio of density for a free surface problem. */ - double GetRatioDensity(void); + su2double GetRatioDensity(void); /*! * \brief Get the ratio of viscosity for a free surface problem. * \return Ratio of viscosity for a free surface problem. */ - double GetRatioViscosity(void); + su2double GetRatioViscosity(void); /*! * \brief Get the thickness of the interfase for a free surface problem. * \return Thickness of the interfase for a free surface problem. */ - double GetFreeSurface_Thickness(void); + su2double GetFreeSurface_Thickness(void); /*! * \brief Get the damping of the free surface for a free surface problem. * \return Damping of the interfase for a free surface problem. */ - double GetFreeSurface_Damping_Coeff(void); + su2double GetFreeSurface_Damping_Coeff(void); /*! * \brief Get the damping of the free surface for a free surface problem. * \return Damping of the interfase for a free surface problem. */ - double GetFreeSurface_Damping_Length(void); + su2double GetFreeSurface_Damping_Length(void); /*! * \brief Get the outlet position of the free surface for a free surface problem. * \return Outlet position of the interfase for a free surface problem. */ - double GetFreeSurface_Outlet(void); + su2double GetFreeSurface_Outlet(void); /*! * \brief Creates a tecplot file to visualize the partition made by the DDC software. @@ -1196,20 +1196,20 @@ class CConfig { * \brief Get the value of the Mach number (velocity divided by speed of sound). * \return Value of the Mach number. */ - double GetMach(void); + su2double GetMach(void); /*! * \brief Get the value of the Gamma of fluid (ratio of specific heats). * \return Value of the constant: Gamma */ - double GetGamma(void); + su2double GetGamma(void); /*! * \brief Get the value of the Gamma of fluid (ratio of specific heats) for a particular species. * \param[in] - val_Species: Index of desired species specific heat ratio. * \return Value of the constant: Species_Gamma[iSpecies] */ - double GetSpecies_Gamma(unsigned short val_Species); + su2double GetSpecies_Gamma(unsigned short val_Species); /*! * \brief Get the value of the charge number for a particular species (1 for ions, -1 for electrons, 0 for neutral). @@ -1222,7 +1222,7 @@ class CConfig { * \brief Get the values of the CFL adapation. * \return Value of CFL adapation */ - double GetCFL_AdaptParam(unsigned short val_index); + su2double GetCFL_AdaptParam(unsigned short val_index); /*! * \brief Get the values of the CFL adapation. @@ -1234,7 +1234,7 @@ class CConfig { * \brief Get the value of the limits for the sections. * \return Value of the limits for the sections. */ - double GetSection_Location(unsigned short val_var); + su2double GetSection_Location(unsigned short val_var); /*! * \brief Get the array that maps chemical consituents to each chemical reaction. @@ -1246,68 +1246,68 @@ class CConfig { * \brief Get the array containing the curve fit coefficients for the Omega(0,0) collision integrals. * \return Memory location of the triple pointer to the 3-D collision integral array. */ - double ***GetCollisionIntegral00(void); + su2double ***GetCollisionIntegral00(void); /*! * \brief Get the array containing the curve fit coefficients for the Omega(1,1) collision integrals. * \return Memory location of the triple pointer to the 3-D collision integral array. */ - double ***GetCollisionIntegral11(void); + su2double ***GetCollisionIntegral11(void); /*! * \brief Get the value of the bulk modulus. * \return Value of the bulk modulus. */ - double GetBulk_Modulus(void); + su2double GetBulk_Modulus(void); /*! * \brief Get the value of the Gamma of fluid (ratio of specific heats) for monatomic species. * \return Value of the constant: GammaMonatomic */ - double GetGammaMonatomic(void); + su2double GetGammaMonatomic(void); /*! * \brief Get the value of the Gamma of fluid (ratio of specific heats) for diatomic species. * \return Value of the constant: Gamma */ - double GetGammaDiatomic(void); + su2double GetGammaDiatomic(void); /*! * \brief Get the artificial compresibility factor. * \return Value of the artificial compresibility factor. */ - double GetArtComp_Factor(void); + su2double GetArtComp_Factor(void); /*! * \brief Get the Level set zero for free surface . * \return Value of the level set zero coordinate */ - double GetFreeSurface_Zero(void); + su2double GetFreeSurface_Zero(void); /*! * \brief Get the Level set zero for free surface . * \return Value of the level set zero coordinate */ - double GetFreeSurface_Depth(void); + su2double GetFreeSurface_Depth(void); /*! * \brief Get the value of specific gas constant. * \return Value of the constant: Gamma */ - double GetGas_Constant(void); + su2double GetGas_Constant(void); /*! * \brief Get the value of specific gas constant. * \return Value of the constant: Gamma */ - double GetGas_ConstantND(void); + su2double GetGas_ConstantND(void); /*! * \brief Get the value of specific gas constant for a particular species. * \param[in] val_Species - Index of desired species gas constant. * \return Value of the constant: R */ - double GetSpecies_Gas_Constant(unsigned short val_Species); + su2double GetSpecies_Gas_Constant(unsigned short val_Species); /*! * \brief Get the coefficients of the Blottner viscosity model @@ -1315,260 +1315,260 @@ class CConfig { * \param[in] val_Coeff - Index of the coefficient (As, Bs, Cs) * \return Value of the Blottner coefficient */ - double GetBlottnerCoeff(unsigned short val_Species, unsigned short val_Coeff); + su2double GetBlottnerCoeff(unsigned short val_Species, unsigned short val_Coeff); /*! * \brief Get the p-norm for heat-flux objective functions (adjoint problem). * \return Value of the heat flux p-norm */ - double GetPnormHeat(void); + su2double GetPnormHeat(void); /*! * \brief Get the value of wall temperature. * \return Value of the constant: Temperature */ - double GetWallTemperature(void); + su2double GetWallTemperature(void); /*! * \brief Get the reference value for the specific gas constant. * \return Reference value for the specific gas constant. */ - double GetGas_Constant_Ref(void); + su2double GetGas_Constant_Ref(void); /*! * \brief Get the value of the frestream temperature. * \return Freestream temperature. */ - double GetTemperature_FreeStream(void); + su2double GetTemperature_FreeStream(void); /*! * \brief Get the value of the frestream temperature. * \return Freestream temperature. */ - double GetEnergy_FreeStream(void); + su2double GetEnergy_FreeStream(void); /*! * \brief Get the value of the frestream temperature. * \return Freestream temperature. */ - double GetViscosity_FreeStream(void); + su2double GetViscosity_FreeStream(void); /*! * \brief Get the value of the frestream temperature. * \return Freestream temperature. */ - double GetDensity_FreeStream(void); + su2double GetDensity_FreeStream(void); /*! * \brief Get the value of the frestream temperature. * \return Freestream temperature. */ - double GetModVel_FreeStream(void); + su2double GetModVel_FreeStream(void); /*! * \brief Get the value of the frestream temperature. * \return Freestream temperature. */ - double GetModVel_FreeStreamND(void); + su2double GetModVel_FreeStreamND(void); /*! * \brief Get the value of the frestream vibrational-electronic temperature. * \return Freestream temperature. */ - double GetTemperature_ve_FreeStream(void); + su2double GetTemperature_ve_FreeStream(void); /*! * \brief Get the value of the laminar Prandtl number. * \return Laminar Prandtl number. */ - double GetPrandtl_Lam(void); + su2double GetPrandtl_Lam(void); /*! * \brief Get the value of the turbulent Prandtl number. * \return Turbulent Prandtl number. */ - double GetPrandtl_Turb(void); + su2double GetPrandtl_Turb(void); /*! * \brief Get the value of the reference length for non-dimensionalization. * This value should always be 1 internally, and is not user-specified. * \return Reference length for non-dimensionalization. */ - double GetLength_Ref(void); + su2double GetLength_Ref(void); /*! * \brief Get the value of the reference pressure for non-dimensionalization. * \return Reference pressure for non-dimensionalization. */ - double GetPressure_Ref(void); + su2double GetPressure_Ref(void); /*! * \brief Get the value of the reference pressure for non-dimensionalization. * \return Reference pressure for non-dimensionalization. */ - double GetEnergy_Ref(void); + su2double GetEnergy_Ref(void); /*! * \brief Get the value of the reference temperature for non-dimensionalization. * \return Reference temperature for non-dimensionalization. */ - double GetTemperature_Ref(void); + su2double GetTemperature_Ref(void); /*! * \brief Get the value of the reference density for non-dimensionalization. * \return Reference density for non-dimensionalization. */ - double GetDensity_Ref(void); + su2double GetDensity_Ref(void); /*! * \brief Get the value of the reference velocity for non-dimensionalization. * \return Reference velocity for non-dimensionalization. */ - double GetVelocity_Ref(void); + su2double GetVelocity_Ref(void); /*! * \brief Get the value of the reference time for non-dimensionalization. * \return Reference time for non-dimensionalization. */ - double GetTime_Ref(void); + su2double GetTime_Ref(void); /*! * \brief Get the value of the reference viscosity for non-dimensionalization. * \return Reference viscosity for non-dimensionalization. */ - double GetViscosity_Ref(void); + su2double GetViscosity_Ref(void); /*! * \brief Get the value of the reference conductivity for non-dimensionalization. * \return Reference conductivity for non-dimensionalization. */ - double GetConductivity_Ref(void); + su2double GetConductivity_Ref(void); /*! * \brief Get the value of the reference angular velocity for non-dimensionalization. * \return Reference angular velocity for non-dimensionalization. */ - double GetOmega_Ref(void); + su2double GetOmega_Ref(void); /*! * \brief Get the value of the reference force for non-dimensionalization. * \return Reference force for non-dimensionalization. */ - double GetForce_Ref(void); + su2double GetForce_Ref(void); /*! * \brief Get the value of the non-dimensionalized freestream pressure. * \return Non-dimensionalized freestream pressure. */ - double GetPressure_FreeStream(void); + su2double GetPressure_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized freestream pressure. * \return Non-dimensionalized freestream pressure. */ - double GetPressure_FreeStreamND(void); + su2double GetPressure_FreeStreamND(void); /*! * \brief Get the vector of the dimensionalized freestream velocity. * \return Dimensionalized freestream velocity vector. */ - double* GetVelocity_FreeStream(void); + su2double* GetVelocity_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized freestream temperature. * \return Non-dimensionalized freestream temperature. */ - double GetTemperature_FreeStreamND(void); + su2double GetTemperature_FreeStreamND(void); /*! * \brief Get the value of the non-dimensionalized freestream density. * \return Non-dimensionalized freestream density. */ - double GetDensity_FreeStreamND(void); + su2double GetDensity_FreeStreamND(void); /*! * \brief Get the vector of the non-dimensionalized freestream velocity. * \return Non-dimensionalized freestream velocity vector. */ - double* GetVelocity_FreeStreamND(void); + su2double* GetVelocity_FreeStreamND(void); /*! * \brief Get the value of the non-dimensionalized freestream energy. * \return Non-dimensionalized freestream energy. */ - double GetEnergy_FreeStreamND(void); + su2double GetEnergy_FreeStreamND(void); /*! * \brief Get the value of the non-dimensionalized freestream viscosity. * \return Non-dimensionalized freestream viscosity. */ - double GetViscosity_FreeStreamND(void); + su2double GetViscosity_FreeStreamND(void); /*! * \brief Get the value of the non-dimensionalized freestream viscosity. * \return Non-dimensionalized freestream viscosity. */ - double GetTke_FreeStreamND(void); + su2double GetTke_FreeStreamND(void); /*! * \brief Get the value of the non-dimensionalized freestream viscosity. * \return Non-dimensionalized freestream viscosity. */ - double GetOmega_FreeStreamND(void); + su2double GetOmega_FreeStreamND(void); /*! * \brief Get the value of the non-dimensionalized freestream viscosity. * \return Non-dimensionalized freestream viscosity. */ - double GetTke_FreeStream(void); + su2double GetTke_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized freestream viscosity. * \return Non-dimensionalized freestream viscosity. */ - double GetOmega_FreeStream(void); + su2double GetOmega_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized freestream intermittency. * \return Non-dimensionalized freestream intermittency. */ - double GetIntermittency_FreeStream(void); + su2double GetIntermittency_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized freestream turbulence intensity. * \return Non-dimensionalized freestream intensity. */ - double GetTurbulenceIntensity_FreeStream(void); + su2double GetTurbulenceIntensity_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized freestream turbulence intensity. * \return Non-dimensionalized freestream intensity. */ - double GetNuFactor_FreeStream(void); + su2double GetNuFactor_FreeStream(void); /*! * \brief Get the value of the non-dimensionalized engine turbulence intensity. * \return Non-dimensionalized engine intensity. */ - double GetNuFactor_Engine(void); + su2double GetNuFactor_Engine(void); /*! * \brief Get the value of the turbulent to laminar viscosity ratio. * \return Ratio of turbulent to laminar viscosity ratio. */ - double GetTurb2LamViscRatio_FreeStream(void); + su2double GetTurb2LamViscRatio_FreeStream(void); /*! * \brief Get the vector of free stream mass fraction values. * \return Ratio of species mass to mixture mass. */ - double* GetMassFrac_FreeStream(void); + su2double* GetMassFrac_FreeStream(void); /*! * \brief Get the value of the Reynolds length. * \return Reynolds length. */ - double GetLength_Reynolds(void); + su2double GetLength_Reynolds(void); /*! * \brief Get the start up iterations using the fine grid, this works only for multigrid problems. @@ -1582,31 +1582,31 @@ class CConfig { * the z plane (3D) or the x plane (2D). * \return Value of the reference area for coefficient computation. */ - double GetRefAreaCoeff(void); + su2double GetRefAreaCoeff(void); /*! * \brief Get the wave speed. * \return Value of the wave speed. */ - double GetWaveSpeed(void); + su2double GetWaveSpeed(void); /*! * \brief Get the wave speed. * \return Value of the wave speed. */ - double GetThermalDiffusivity(void); + su2double GetThermalDiffusivity(void); /*! * \brief Get the Young's modulus of elasticity. * \return Value of the Young's modulus of elasticity. */ - double GetElasticyMod(void); + su2double GetElasticyMod(void); /*! * \brief Get the value of the bulk modulus on the structural side. * \return Value of the bulk modulus on the structural side. */ - double GetBulk_Modulus_Struct(void); + su2double GetBulk_Modulus_Struct(void); /*! * \brief Formulation for 2D elasticity (plane stress - strain) @@ -1618,13 +1618,13 @@ class CConfig { * \brief Get the Poisson's ratio. * \return Value of the Poisson's ratio. */ - double GetPoissonRatio(void); + su2double GetPoissonRatio(void); /*! * \brief Get the Material Density. * \return Value of the Material Density. */ - double GetMaterialDensity(void); + su2double GetMaterialDensity(void); /*! * \brief Compressibility/incompressibility of the solids analysed using the structural solver. @@ -1648,40 +1648,40 @@ class CConfig { * \brief Get the reference length for computing moment (the default value is 1). * \return Reference length for moment computation. */ - double GetRefLengthMoment(void); + su2double GetRefLengthMoment(void); /*! * \brief Get the reference element length for computing the slope limiting epsilon. * \return Reference element length for slope limiting epsilon. */ - double GetRefElemLength(void); + su2double GetRefElemLength(void); /*! * \brief Get the reference coefficient for detecting sharp edges. * \return Reference coefficient for detecting sharp edges. */ - double GetRefSharpEdges(void); + su2double GetRefSharpEdges(void); /*! * \brief Get the volume of the whole domain using the fine grid, this value is common for all the grids * in the multigrid method. * \return Volume of the whole domain. */ - double GetDomainVolume(void); + su2double GetDomainVolume(void); /*! * \brief In case the RefAreaCoeff is equal to 0 then, it is necessary to compute a reference area, * with this function we set the value of the reference area. * \param[in] val_area - Value of the reference area for non dimensional coefficient computation. */ - void SetRefAreaCoeff(double val_area); + void SetRefAreaCoeff(su2double val_area); /*! * \brief Set the value of the domain volume computed on the finest grid. * \note This volume do not include the volume of the body that is being simulated. * \param[in] val_volume - Value of the domain volume computed on the finest grid. */ - void SetDomainVolume(double val_volume); + void SetDomainVolume(su2double val_volume); /*! * \brief Set the finest mesh in a multigrid strategy. @@ -1714,7 +1714,7 @@ class CConfig { * \brief Get the value of limiter coefficient. * \return Value of the limiter coefficient. */ - double GetLimiterCoeff(void); + su2double GetLimiterCoeff(void); /*! * \brief Freeze the value of the limiter after a number of iterations. @@ -1726,7 +1726,7 @@ class CConfig { * \brief Get the value of sharp edge limiter. * \return Value of the sharp edge limiter coefficient. */ - double GetSharpEdgesCoeff(void); + su2double GetSharpEdgesCoeff(void); /*! * \brief Get the Reynolds number. Dimensionless number that gives a measure of the ratio of inertial forces @@ -1734,223 +1734,223 @@ class CConfig { * for given flow condition. * \return Value of the Reynolds number. */ - double GetReynolds(void); + su2double GetReynolds(void); /*! * \brief Get the Froude number for free surface problems. * \return Value of the Froude number. */ - double GetFroude(void); + su2double GetFroude(void); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetFroude(double val_froude); + void SetFroude(su2double val_froude); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetMach(double val_mach); + void SetMach(su2double val_mach); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetReynolds(double val_reynolds); + void SetReynolds(su2double val_reynolds); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetLength_Ref(double val_length_ref); + void SetLength_Ref(su2double val_length_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetVelocity_Ref(double val_velocity_ref); + void SetVelocity_Ref(su2double val_velocity_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetPressure_Ref(double val_pressure_ref); + void SetPressure_Ref(su2double val_pressure_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetDensity_Ref(double val_density_ref); + void SetDensity_Ref(su2double val_density_ref); /*! * \brief Set the reference temperature. * \return Value of the Froude number. */ - void SetTemperature_Ref(double val_temperature_ref); + void SetTemperature_Ref(su2double val_temperature_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetTime_Ref(double val_time_ref); + void SetTime_Ref(su2double val_time_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetEnergy_Ref(double val_energy_ref); + void SetEnergy_Ref(su2double val_energy_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetOmega_Ref(double val_omega_ref); + void SetOmega_Ref(su2double val_omega_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetForce_Ref(double val_force_ref); + void SetForce_Ref(su2double val_force_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetGas_Constant_Ref(double val_gas_constant_ref); + void SetGas_Constant_Ref(su2double val_gas_constant_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetGas_Constant(double val_gas_constant); + void SetGas_Constant(su2double val_gas_constant); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetViscosity_Ref(double val_viscosity_ref); + void SetViscosity_Ref(su2double val_viscosity_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetConductivity_Ref(double val_conductivity_ref); + void SetConductivity_Ref(su2double val_conductivity_ref); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetPressure_FreeStreamND(double val_pressure_freestreamnd); + void SetPressure_FreeStreamND(su2double val_pressure_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetPressure_FreeStream(double val_pressure_freestream); + void SetPressure_FreeStream(su2double val_pressure_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetDensity_FreeStreamND(double val_density_freestreamnd); + void SetDensity_FreeStreamND(su2double val_density_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetDensity_FreeStream(double val_density_freestream); + void SetDensity_FreeStream(su2double val_density_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetViscosity_FreeStream(double val_viscosity_freestream); + void SetViscosity_FreeStream(su2double val_viscosity_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetModVel_FreeStream(double val_modvel_freestream); + void SetModVel_FreeStream(su2double val_modvel_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetModVel_FreeStreamND(double val_modvel_freestreamnd); + void SetModVel_FreeStreamND(su2double val_modvel_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetTemperature_FreeStream(double val_temperature_freestream); + void SetTemperature_FreeStream(su2double val_temperature_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetTemperature_FreeStreamND(double val_temperature_freestreamnd); + void SetTemperature_FreeStreamND(su2double val_temperature_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetGas_ConstantND(double val_gas_constantnd); + void SetGas_ConstantND(su2double val_gas_constantnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetVelocity_FreeStreamND(double val_velocity_freestreamnd, unsigned short val_dim); + void SetVelocity_FreeStreamND(su2double val_velocity_freestreamnd, unsigned short val_dim); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetViscosity_FreeStreamND(double val_viscosity_freestreamnd); + void SetViscosity_FreeStreamND(su2double val_viscosity_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetTke_FreeStreamND(double val_tke_freestreamnd); + void SetTke_FreeStreamND(su2double val_tke_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetOmega_FreeStreamND(double val_omega_freestreamnd); + void SetOmega_FreeStreamND(su2double val_omega_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetTke_FreeStream(double val_tke_freestream); + void SetTke_FreeStream(su2double val_tke_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetOmega_FreeStream(double val_omega_freestream); + void SetOmega_FreeStream(su2double val_omega_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetEnergy_FreeStreamND(double val_energy_freestreamnd); + void SetEnergy_FreeStreamND(su2double val_energy_freestreamnd); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetEnergy_FreeStream(double val_energy_freestream); + void SetEnergy_FreeStream(su2double val_energy_freestream); /*! * \brief Set the Froude number for free surface problems. * \return Value of the Froude number. */ - void SetTotal_UnstTimeND(double val_total_unsttimend); + void SetTotal_UnstTimeND(su2double val_total_unsttimend); /*! * \brief Get the angle of attack of the body. This is the angle between a reference line on a lifting body @@ -1958,32 +1958,32 @@ class CConfig { * lifting body and the fluid through which it is moving. * \return Value of the angle of attack. */ - double GetAoA(void); + su2double GetAoA(void); /*! * \brief Set the angle of attack. * \param[in] val_AoA - Value of the angle of attack. */ - void SetAoA(double val_AoA); + void SetAoA(su2double val_AoA); /*! * \brief Set the angle of attack. * \param[in] val_AoA - Value of the angle of attack. */ - void SetAoS(double val_AoS); + void SetAoS(su2double val_AoS); /*! * \brief Get the angle of sideslip of the body. It relates to the rotation of the aircraft centerline from * the relative wind. * \return Value of the angle of sideslip. */ - double GetAoS(void); + su2double GetAoS(void); /*! * \brief Get the charge coefficient that is used in the poissonal potential simulation. * \return Value of the charge coefficient. */ - double GetChargeCoeff(void); + su2double GetChargeCoeff(void); /*! * \brief Get the number of multigrid levels. @@ -2022,14 +2022,14 @@ class CConfig { * \param[in] val_mesh - Index of the mesh were the CFL is applied. * \return CFL number for each grid. */ - double GetCFL(unsigned short val_mesh); + su2double GetCFL(unsigned short val_mesh); /*! * \brief Get the Courant Friedrich Levi number for each grid. * \param[in] val_mesh - Index of the mesh were the CFL is applied. * \return CFL number for each grid. */ - void SetCFL(unsigned short val_mesh, double val_cfl); + void SetCFL(unsigned short val_mesh, su2double val_cfl); /*! * \brief Get the Courant Friedrich Levi number for each grid, for each species @@ -2037,19 +2037,19 @@ class CConfig { * \param[in] val_Species - Index of the chemical species * \return CFL number for each grid. */ - double GetCFL(unsigned short val_mesh, unsigned short val_Species); + su2double GetCFL(unsigned short val_mesh, unsigned short val_Species); /*! * \brief Get the Courant Friedrich Levi number for unsteady simulations. * \return CFL number for unsteady simulations. */ - double GetUnst_CFL(void); + su2double GetUnst_CFL(void); /*! * \brief Get the Courant Friedrich Levi number for unsteady simulations. * \return CFL number for unsteady simulations. */ - double GetMax_DeltaTime(void); + su2double GetMax_DeltaTime(void); /*! * \brief Get a parameter of the particular design variable. @@ -2057,7 +2057,7 @@ class CConfig { * \param[in] val_param - Index of the parameter that we want to read. * \return Design variable parameter. */ - double GetParamDV(unsigned short val_dv, unsigned short val_param); + su2double GetParamDV(unsigned short val_dv, unsigned short val_param); /*! * \brief Get a parameter of the particular design variable. @@ -2065,7 +2065,7 @@ class CConfig { * \param[in] val_coord - Index of the coordinate that we want to read. * \return FFD parameter. */ - double GetCoordFFDBox(unsigned short val_ffd, unsigned short val_coord); + su2double GetCoordFFDBox(unsigned short val_ffd, unsigned short val_coord); /*! * \brief Get a parameter of the particular design variable. @@ -2232,7 +2232,7 @@ class CConfig { * \brief Retrieves the period of oscillations to be used with Time Spectral. * \return: Period for Time Spectral. */ - double GetTimeSpectral_Period(void); + su2double GetTimeSpectral_Period(void); /*! * \brief Set the number of external iterations. @@ -2367,7 +2367,7 @@ class CConfig { * \param[in] val_step - Index of the step. * \return Alpha coefficient for the Runge-Kutta integration scheme. */ - double Get_Alpha_RKStep(unsigned short val_step); + su2double Get_Alpha_RKStep(unsigned short val_step); /*! * \brief Get the index of the surface defined in the geometry file. @@ -2697,19 +2697,19 @@ class CConfig { * \brief Get the value of the critical pressure. * \return Critical pressure. */ - double GetPressure_Critical(void); + su2double GetPressure_Critical(void); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - double GetTemperature_Critical(void); + su2double GetTemperature_Critical(void); /*! * \brief Get the value of the critical pressure. * \return Critical pressure. */ - double GetAcentric_Factor(void); + su2double GetAcentric_Factor(void); /*! * \brief Get the value of the critical temperature. @@ -2727,61 +2727,61 @@ class CConfig { * \brief Get the value of the critical temperature. * \return Critical temperature. */ - double GetMu_ConstantND(void); + su2double GetMu_ConstantND(void); /*! * \brief Get the value of the non-dimensional thermal conductivity. * \return Critical temperature. */ - double GetKt_ConstantND(void); + su2double GetKt_ConstantND(void); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - double GetMu_RefND(void); + su2double GetMu_RefND(void); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - double GetMu_Temperature_RefND(void); + su2double GetMu_Temperature_RefND(void); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - double GetMu_SND(void); + su2double GetMu_SND(void); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - void SetMu_ConstantND(double mu_const); + void SetMu_ConstantND(su2double mu_const); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - void SetKt_ConstantND(double kt_const); + void SetKt_ConstantND(su2double kt_const); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - void SetMu_RefND(double mu_ref); + void SetMu_RefND(su2double mu_ref); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - void SetMu_Temperature_RefND(double mu_Tref); + void SetMu_Temperature_RefND(su2double mu_Tref); /*! * \brief Get the value of the critical temperature. * \return Critical temperature. */ - void SetMu_SND(double mu_s); + void SetMu_SND(su2double mu_s); /*! * \brief Get the kind of method for computation of spatial gradients. @@ -2817,7 +2817,7 @@ class CConfig { * \brief Get min error of the linear solver for the implicit formulation. * \return Min error of the linear solver for the implicit formulation. */ - double GetLinear_Solver_Error(void); + su2double GetLinear_Solver_Error(void); /*! * \brief Get max number of iterations of the linear solver for the implicit formulation. @@ -2835,25 +2835,25 @@ class CConfig { * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. * \return relaxation coefficient of the linear solver for the implicit formulation. */ - double GetRelaxation_Factor_Flow(void); + su2double GetRelaxation_Factor_Flow(void); /*! * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. * \return relaxation coefficient of the linear solver for the implicit formulation. */ - double GetRelaxation_Factor_AdjFlow(void); + su2double GetRelaxation_Factor_AdjFlow(void); /*! * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. * \return relaxation coefficient of the linear solver for the implicit formulation. */ - double GetRelaxation_Factor_Turb(void); + su2double GetRelaxation_Factor_Turb(void); /*! * \brief Get the relaxation coefficient of the linear solver for the implicit formulation. * \return relaxation coefficient of the linear solver for the implicit formulation. */ - double GetRoe_Kappa(void); + su2double GetRoe_Kappa(void); /*! * \brief Get the kind of solver for the implicit solver. @@ -2877,13 +2877,13 @@ class CConfig { * \brief Get min error of the linear solver for the implicit formulation. * \return Min error of the linear solver for the implicit formulation. */ - double GetAdjTurb_Linear_Error(void); + su2double GetAdjTurb_Linear_Error(void); /*! * \brief Get the entropy fix. * \return Vaule of the entropy fix. */ - double GetEntropyFix_Coeff(void); + su2double GetEntropyFix_Coeff(void); /*! * \brief Get max number of iterations of the linear solver for the implicit formulation. @@ -2895,7 +2895,7 @@ class CConfig { * \brief Get CFL reduction factor for adjoint turbulence model. * \return CFL reduction factor. */ - double GetCFLRedCoeff_AdjTurb(void); + su2double GetCFLRedCoeff_AdjTurb(void); /*! * \brief Get the number of linear smoothing iterations for mesh deformation. @@ -2919,18 +2919,18 @@ class CConfig { * \brief Get factor to multiply smallest volume for deform tolerance. * \return Factor to multiply smallest volume for deform tolerance. */ - double GetDeform_Tol_Factor(void); + su2double GetDeform_Tol_Factor(void); /*! * \brief Get Young's modulus for deformation (constant stiffness deformation) */ - double GetDeform_ElasticityMod(void); + su2double GetDeform_ElasticityMod(void); /*! * \brief Get Poisson's ratio for deformation (constant stiffness deformation) * \ */ - double GetDeform_PoissonRatio(void); + su2double GetDeform_PoissonRatio(void); /*! * \brief Get the type of stiffness to impose for FEA mesh deformation. @@ -3007,7 +3007,7 @@ class CConfig { * \brief Get the number of new elements added in the adaptation process. * \return percentage of new elements that are going to be added in the adaptation. */ - double GetNew_Elem_Adapt(void); + su2double GetNew_Elem_Adapt(void); /*! * \brief Get the kind of time integration method. @@ -3350,38 +3350,38 @@ class CConfig { * \note This constant is used in coarse levels and with first order methods. * \return Calibrated constant for the Lax method. */ - double GetKappa_1st_Flow(void); + su2double GetKappa_1st_Flow(void); /*! * \brief Value of the calibrated constant for the JST method (center scheme). * \return Calibrated constant for the JST method for the flow equations. */ - double GetKappa_2nd_Flow(void); + su2double GetKappa_2nd_Flow(void); /*! * \brief Value of the calibrated constant for the JST method (center scheme). * \return Calibrated constant for the JST method for the flow equations. */ - double GetKappa_4th_Flow(void); + su2double GetKappa_4th_Flow(void); /*! * \brief Value of the calibrated constant for the Lax method (center scheme). * \note This constant is used in coarse levels and with first order methods. * \return Calibrated constant for the Lax method. */ - double GetKappa_1st_TNE2(void); + su2double GetKappa_1st_TNE2(void); /*! * \brief Value of the calibrated constant for the JST method (center scheme). * \return Calibrated constant for the JST method for the flow equations. */ - double GetKappa_2nd_TNE2(void); + su2double GetKappa_2nd_TNE2(void); /*! * \brief Value of the calibrated constant for the JST method (center scheme). * \return Calibrated constant for the JST method for the flow equations. */ - double GetKappa_4th_TNE2(void); + su2double GetKappa_4th_TNE2(void); /*! * \brief Get the kind of integration scheme (explicit or implicit) @@ -3430,37 +3430,37 @@ class CConfig { * \brief Value of the calibrated constant for the high order method (center scheme). * \return Calibrated constant for the high order center method for the adjoint flow equations. */ - double GetKappa_2nd_AdjFlow(void); + su2double GetKappa_2nd_AdjFlow(void); /*! * \brief Value of the calibrated constant for the high order method (center scheme). * \return Calibrated constant for the high order center method for the adjoint flow equations. */ - double GetKappa_4th_AdjFlow(void); + su2double GetKappa_4th_AdjFlow(void); /*! * \brief Value of the calibrated constant for the low order method (center scheme). * \return Calibrated constant for the low order center method for the adjoint flow equations. */ - double GetKappa_1st_AdjFlow(void); + su2double GetKappa_1st_AdjFlow(void); /*! * \brief Value of the calibrated constant for the high order method (center scheme). * \return Calibrated constant for the high order center method for the adjoint flow equations. */ - double GetKappa_2nd_AdjTNE2(void); + su2double GetKappa_2nd_AdjTNE2(void); /*! * \brief Value of the calibrated constant for the high order method (center scheme). * \return Calibrated constant for the high order center method for the adjoint flow equations. */ - double GetKappa_4th_AdjTNE2(void); + su2double GetKappa_4th_AdjTNE2(void); /*! * \brief Value of the calibrated constant for the low order method (center scheme). * \return Calibrated constant for the low order center method for the adjoint flow equations. */ - double GetKappa_1st_AdjTNE2(void); + su2double GetKappa_1st_AdjTNE2(void); /*! * \brief Get the kind of integration scheme (explicit or implicit) @@ -3500,13 +3500,13 @@ class CConfig { * \brief Value of the calibrated constant for the high order method (center scheme). * \return Calibrated constant for the high order center method for the linearized flow equations. */ - double GetKappa_4th_LinFlow(void); + su2double GetKappa_4th_LinFlow(void); /*! * \brief Value of the calibrated constant for the low order method (center scheme). * \return Calibrated constant for the low order center method for the linearized flow equations. */ - double GetKappa_1st_LinFlow(void); + su2double GetKappa_1st_LinFlow(void); /*! * \brief Get the kind of integration scheme (implicit) @@ -3679,73 +3679,73 @@ class CConfig { * \brief Provides the number of chemical reactions in the chemistry model * \return: The number of chemical reactions, read from input file */ - double GetArrheniusCoeff(unsigned short iReaction); + su2double GetArrheniusCoeff(unsigned short iReaction); /*! * \brief Provides the number of chemical reactions in the chemistry model * \return: The number of chemical reactions, read from input file */ - double GetArrheniusEta(unsigned short iReaction); + su2double GetArrheniusEta(unsigned short iReaction); /*! * \brief Provides the number of chemical reactions in the chemistry model * \return: The number of chemical reactions, read from input file */ - double GetArrheniusTheta(unsigned short iReaction); + su2double GetArrheniusTheta(unsigned short iReaction); /*! * \brief Provides the rate controlling temperature exponents for chemistry. * \return: Rate controlling temperature exponents. */ - double* GetRxnTcf_a(void); + su2double* GetRxnTcf_a(void); /*! * \brief Provides the rate controlling temperature exponents for chemistry. * \return: Rate controlling temperature exponents. */ - double* GetRxnTcf_b(void); + su2double* GetRxnTcf_b(void); /*! * \brief Provides the rate controlling temperature exponents for chemistry. * \return: Rate controlling temperature exponents. */ - double* GetRxnTcb_a(void); + su2double* GetRxnTcb_a(void); /*! * \brief Provides the rate controlling temperature exponents for chemistry. * \return: Rate controlling temperature exponents. */ - double* GetRxnTcb_b(void); + su2double* GetRxnTcb_b(void); /*! * \brief Dissociation potential of species. * \return: Dissociation potential. */ - double* GetDissociationPot(void); + su2double* GetDissociationPot(void); /*! * \brief Provides the number of rotational modes of energy storage * \return: Vector of rotational mode count */ - double* GetRotationModes(void); + su2double* GetRotationModes(void); /*! * \brief Provides the characteristic vibrational temperature for calculating e_vib * \return: Vector of characteristic vibrational temperatures [K] */ - double* GetCharVibTemp(void); + su2double* GetCharVibTemp(void); /*! * \brief Provides the characteristic electronic temperature for calculating e_el * \return: Vector of characteristic vibrational temperatures [K] */ - double** GetCharElTemp(void); + su2double** GetCharElTemp(void); /*! * \brief Provides the degeneracy of electron states for calculating e_el * \return: Vector of characteristic vibrational temperatures [K] */ - double** GetElDegeneracy(void); + su2double** GetElDegeneracy(void); /*! * \brief Provides number electron states for calculating e_el @@ -3758,31 +3758,31 @@ class CConfig { * \brief Provides the thermodynamic reference temperatures from the JANAF tables * \return: Vector of reference temperatures [K] */ - double* GetRefTemperature(void); + su2double* GetRefTemperature(void); /*! * \brief Provides the characteristic vibrational temperature for calculating e_vib * \return: The number of chemical reactions, read from input file */ - double GetCharVibTemp(unsigned short iSpecies); + su2double GetCharVibTemp(unsigned short iSpecies); /*! * \brief Provides a table of equilibrium constants for a particular chemical reaction for a supplied gas model. * \return: Matrix of reaction constants */ - void GetChemistryEquilConstants(double **RxnConstantTable, unsigned short iReaction); + void GetChemistryEquilConstants(su2double **RxnConstantTable, unsigned short iReaction); /*! * \brief Provides the molar mass of each species present in multi species fluid * \return: Vector of molar mass of each species in kg/kmol */ - double* GetMolar_Mass(void); + su2double* GetMolar_Mass(void); /*! * \brief Provides the molar mass of each species present in multi species fluid * \return: Mass of each species in Kg */ - double GetMolar_Mass(unsigned short iSpecies); + su2double GetMolar_Mass(unsigned short iSpecies); /*! * \brief Retrieves the number of monatomic species in the multicomponent gas. @@ -3800,25 +3800,25 @@ class CConfig { * \brief Provides the molar mass of each species present in multi species fluid * \return: Molar mass of the specified gas consituent [kg/kmol] */ - double GetInitial_Gas_Composition(unsigned short iSpecies); + su2double GetInitial_Gas_Composition(unsigned short iSpecies); /*! * \brief Retrieves the multi-species fluid mixture molar mass. * \return: Molar mass of the fluid mixture */ - double GetMixtureMolar_Mass(); + su2double GetMixtureMolar_Mass(); /*! * \brief Provides the formation enthalpy of the specified species at standard conditions * \return: Enthalpy of formation */ - double* GetEnthalpy_Formation(void); + su2double* GetEnthalpy_Formation(void); /*! * \brief Provides the formation enthalpy of the specified species at standard conditions * \return: Enthalpy of formation */ - double GetEnthalpy_Formation(unsigned short iSpecies); + su2double GetEnthalpy_Formation(unsigned short iSpecies); /*! * \brief Provides the restart information. @@ -4120,48 +4120,48 @@ class CConfig { * adjoint or linearized problem. * \return Value of the convergence criteria. */ - double GetCauchy_Eps(void); + su2double GetCauchy_Eps(void); /*! * \brief If we are prforming an unsteady simulation, there is only * one value of the time step for the complete simulation. * \return Value of the time step in an unsteady simulation (non dimensional). */ - double GetDelta_UnstTimeND(void); + su2double GetDelta_UnstTimeND(void); /*! * \brief If we are prforming an unsteady simulation, there is only * one value of the time step for the complete simulation. * \return Value of the time step in an unsteady simulation (non dimensional). */ - double GetTotal_UnstTimeND(void); + su2double GetTotal_UnstTimeND(void); /*! * \brief If we are prforming an unsteady simulation, there is only * one value of the time step for the complete simulation. * \return Value of the time step in an unsteady simulation. */ - double GetDelta_UnstTime(void); + su2double GetDelta_UnstTime(void); /*! * \brief Set the value of the unsteadty time step using the CFL number. * \param[in] val_delta_unsttimend - Value of the unsteady time step using CFL number. */ - void SetDelta_UnstTimeND(double val_delta_unsttimend); + void SetDelta_UnstTimeND(su2double val_delta_unsttimend); /*! * \brief If we are performing an unsteady simulation, this is the * value of max physical time for which we run the simulation * \return Value of the physical time in an unsteady simulation. */ - double GetTotal_UnstTime(void); + su2double GetTotal_UnstTime(void); /*! * \brief If we are performing an unsteady simulation, this is the * value of current time. * \return Value of the physical time in an unsteady simulation. */ - double GetCurrent_UnstTime(void); + su2double GetCurrent_UnstTime(void); /*! * \brief Divide the rectbles and hexahedron. @@ -4174,7 +4174,7 @@ class CConfig { * \param[in] val_dv - Number of the design variable that we want to read. * \return Design variable step. */ - double GetDV_Value(unsigned short val_dv); + su2double GetDV_Value(unsigned short val_dv); /*! * \brief Get information about the grid movement. @@ -4200,196 +4200,196 @@ class CConfig { * \brief Get the mach number based on the mesh velocity and freestream quantities. * \return Mach number based on the mesh velocity and freestream quantities. */ - double GetMach_Motion(void); + su2double GetMach_Motion(void); /*! * \brief Get x-coordinate of the mesh motion origin. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return X-coordinate of the mesh motion origin. */ - double GetMotion_Origin_X(unsigned short val_iZone); + su2double GetMotion_Origin_X(unsigned short val_iZone); /*! * \brief Get y-coordinate of the mesh motion origin * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Y-coordinate of the mesh motion origin. */ - double GetMotion_Origin_Y(unsigned short val_iZone); + su2double GetMotion_Origin_Y(unsigned short val_iZone); /*! * \brief Get z-coordinate of the mesh motion origin * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Z-coordinate of the mesh motion origin. */ - double GetMotion_Origin_Z(unsigned short val_iZone); + su2double GetMotion_Origin_Z(unsigned short val_iZone); /*! * \brief Set x-coordinate of the mesh motion origin. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \param[in] val_origin - New x-coordinate of the mesh motion origin. */ - void SetMotion_Origin_X(unsigned short val_iZone, double val_origin); + void SetMotion_Origin_X(unsigned short val_iZone, su2double val_origin); /*! * \brief Set y-coordinate of the mesh motion origin * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \param[in] val_origin - New y-coordinate of the mesh motion origin. */ - void SetMotion_Origin_Y(unsigned short val_iZone, double val_origin); + void SetMotion_Origin_Y(unsigned short val_iZone, su2double val_origin); /*! * \brief Set z-coordinate of the mesh motion origin * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \param[in] val_origin - New y-coordinate of the mesh motion origin. */ - void SetMotion_Origin_Z(unsigned short val_iZone, double val_origin); + void SetMotion_Origin_Z(unsigned short val_iZone, su2double val_origin); /*! * \brief Get the translational velocity of the mesh in the x-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Translational velocity of the mesh in the x-direction. */ - double GetTranslation_Rate_X(unsigned short val_iZone); + su2double GetTranslation_Rate_X(unsigned short val_iZone); /*! * \brief Get the translational velocity of the mesh in the y-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Translational velocity of the mesh in the y-direction. */ - double GetTranslation_Rate_Y(unsigned short val_iZone); + su2double GetTranslation_Rate_Y(unsigned short val_iZone); /*! * \brief Get the translational velocity of the mesh in the z-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Translational velocity of the mesh in the z-direction. */ - double GetTranslation_Rate_Z(unsigned short val_iZone); + su2double GetTranslation_Rate_Z(unsigned short val_iZone); /*! * \brief Get the angular velocity of the mesh about the x-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular velocity of the mesh about the x-axis. */ - double GetRotation_Rate_X(unsigned short val_iZone); + su2double GetRotation_Rate_X(unsigned short val_iZone); /*! * \brief Get the angular velocity of the mesh about the y-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular velocity of the mesh about the y-axis. */ - double GetRotation_Rate_Y(unsigned short val_iZone); + su2double GetRotation_Rate_Y(unsigned short val_iZone); /*! * \brief Get the angular velocity of the mesh about the z-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular velocity of the mesh about the z-axis. */ - double GetRotation_Rate_Z(unsigned short val_iZone); + su2double GetRotation_Rate_Z(unsigned short val_iZone); /*! * \brief Get the angular frequency of a mesh pitching about the x-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular frequency of a mesh pitching about the x-axis. */ - double GetPitching_Omega_X(unsigned short val_iZone); + su2double GetPitching_Omega_X(unsigned short val_iZone); /*! * \brief Get the angular frequency of a mesh pitching about the y-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular frequency of a mesh pitching about the y-axis. */ - double GetPitching_Omega_Y(unsigned short val_iZone); + su2double GetPitching_Omega_Y(unsigned short val_iZone); /*! * \brief Get the angular frequency of a mesh pitching about the z-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular frequency of a mesh pitching about the z-axis. */ - double GetPitching_Omega_Z(unsigned short val_iZone); + su2double GetPitching_Omega_Z(unsigned short val_iZone); /*! * \brief Get the pitching amplitude about the x-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Pitching amplitude about the x-axis. */ - double GetPitching_Ampl_X(unsigned short val_iZone); + su2double GetPitching_Ampl_X(unsigned short val_iZone); /*! * \brief Get the pitching amplitude about the y-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Pitching amplitude about the y-axis. */ - double GetPitching_Ampl_Y(unsigned short val_iZone); + su2double GetPitching_Ampl_Y(unsigned short val_iZone); /*! * \brief Get the pitching amplitude about the z-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Pitching amplitude about the z-axis. */ - double GetPitching_Ampl_Z(unsigned short val_iZone); + su2double GetPitching_Ampl_Z(unsigned short val_iZone); /*! * \brief Get the pitching phase offset about the x-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Pitching phase offset about the x-axis. */ - double GetPitching_Phase_X(unsigned short val_iZone); + su2double GetPitching_Phase_X(unsigned short val_iZone); /*! * \brief Get the pitching phase offset about the y-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Pitching phase offset about the y-axis. */ - double GetPitching_Phase_Y(unsigned short val_iZone); + su2double GetPitching_Phase_Y(unsigned short val_iZone); /*! * \brief Get the pitching phase offset about the z-axis. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Pitching phase offset about the z-axis. */ - double GetPitching_Phase_Z(unsigned short val_iZone); + su2double GetPitching_Phase_Z(unsigned short val_iZone); /*! * \brief Get the angular frequency of a mesh plunging in the x-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular frequency of a mesh plunging in the x-direction. */ - double GetPlunging_Omega_X(unsigned short val_iZone); + su2double GetPlunging_Omega_X(unsigned short val_iZone); /*! * \brief Get the angular frequency of a mesh plunging in the y-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular frequency of a mesh plunging in the y-direction. */ - double GetPlunging_Omega_Y(unsigned short val_iZone); + su2double GetPlunging_Omega_Y(unsigned short val_iZone); /*! * \brief Get the angular frequency of a mesh plunging in the z-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Angular frequency of a mesh plunging in the z-direction. */ - double GetPlunging_Omega_Z(unsigned short val_iZone); + su2double GetPlunging_Omega_Z(unsigned short val_iZone); /*! * \brief Get the plunging amplitude in the x-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Plunging amplitude in the x-direction. */ - double GetPlunging_Ampl_X(unsigned short val_iZone); + su2double GetPlunging_Ampl_X(unsigned short val_iZone); /*! * \brief Get the plunging amplitude in the y-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Plunging amplitude in the y-direction. */ - double GetPlunging_Ampl_Y(unsigned short val_iZone); + su2double GetPlunging_Ampl_Y(unsigned short val_iZone); /*! * \brief Get the plunging amplitude in the z-direction. * \param[in] val_iZone - Number for the current zone in the mesh (each zone has independent motion). * \return Plunging amplitude in the z-direction. */ - double GetPlunging_Ampl_Z(unsigned short val_iZone); + su2double GetPlunging_Ampl_Z(unsigned short val_iZone); /*! * \brief Get if we should update the motion origin. @@ -4402,13 +4402,13 @@ class CConfig { * \brief Get the minimum value of Beta for Roe-Turkel preconditioner * \return the minimum value of Beta for Roe-Turkel preconditioner */ - double GetminTurkelBeta(); + su2double GetminTurkelBeta(); /*! * \brief Get the minimum value of Beta for Roe-Turkel preconditioner * \return the minimum value of Beta for Roe-Turkel preconditioner */ - double GetmaxTurkelBeta(); + su2double GetmaxTurkelBeta(); /*! * \brief Get information about the adibatic wall condition @@ -4599,91 +4599,91 @@ class CConfig { * \brief Value of the order of magnitude reduction of the residual. * \return Value of the order of magnitude reduction of the residual. */ - double GetOrderMagResidual(void); + su2double GetOrderMagResidual(void); /*! * \brief Value of the minimum residual value (log10 scale). * \return Value of the minimum residual value (log10 scale). */ - double GetMinLogResidual(void); + su2double GetMinLogResidual(void); /*! * \brief Value of the order of magnitude reduction of the residual for FSI applications. * \return Value of the order of magnitude reduction of the residual. */ - double GetOrderMagResidualFSI(void); + su2double GetOrderMagResidualFSI(void); /*! * \brief Value of the minimum residual value for FSI applications (log10 scale). * \return Value of the minimum residual value (log10 scale). */ - double GetMinLogResidualFSI(void); + su2double GetMinLogResidualFSI(void); /*! * \brief Value of the displacement tolerance UTOL for FEM structural analysis (log10 scale). * \return Value of Res_FEM_UTOL (log10 scale). */ - double GetResidual_FEM_UTOL(void); + su2double GetResidual_FEM_UTOL(void); /*! * \brief Value of the displacement tolerance UTOL for FEM structural analysis (log10 scale). * \return Value of Res_FEM_UTOL (log10 scale). */ - double GetResidual_FEM_RTOL(void); + su2double GetResidual_FEM_RTOL(void); /*! * \brief Value of the displacement tolerance UTOL for FEM structural analysis (log10 scale). * \return Value of Res_FEM_UTOL (log10 scale). */ - double GetResidual_FEM_ETOL(void); + su2double GetResidual_FEM_ETOL(void); /*! * \brief Value of the damping factor for the engine inlet bc. * \return Value of the damping factor. */ - double GetDamp_Engine_Inflow(void); + su2double GetDamp_Engine_Inflow(void); /*! * \brief Value of the damping factor for the engine bleed inlet bc. * \return Value of the damping factor. */ - double GetDamp_Engine_Bleed(void); + su2double GetDamp_Engine_Bleed(void); /*! * \brief Value of the damping factor for the engine exhaust inlet bc. * \return Value of the damping factor. */ - double GetDamp_Engine_Exhaust(void); + su2double GetDamp_Engine_Exhaust(void); /*! * \brief Value of the damping factor for the residual restriction. * \return Value of the damping factor. */ - double GetDamp_Res_Restric(void); + su2double GetDamp_Res_Restric(void); /*! * \brief Value of the damping factor for the correction prolongation. * \return Value of the damping factor. */ - double GetDamp_Correc_Prolong(void); + su2double GetDamp_Correc_Prolong(void); /*! * \brief Value of the position of the Near Field (y coordinate for 2D, and z coordinate for 3D). * \return Value of the Near Field position. */ - double GetPosition_Plane(void); + su2double GetPosition_Plane(void); /*! * \brief Value of the weight of the drag coefficient in the Sonic Boom optimization. * \return Value of the weight of the drag coefficient in the Sonic Boom optimization. */ - double GetWeightCd(void); + su2double GetWeightCd(void); /*! * \brief Value of the azimuthal line to fix due to a misalignments of the nearfield. * \return Azimuthal line to fix due to a misalignments of the nearfield. */ - double GetFixAzimuthalLine(void); + su2double GetFixAzimuthalLine(void); /*! * \brief Set the global parameters of each simulation for each runtime system. @@ -4695,17 +4695,17 @@ class CConfig { /*! * \brief Center of rotation for a rotational periodic boundary. */ - double *GetPeriodicRotCenter(string val_marker); + su2double *GetPeriodicRotCenter(string val_marker); /*! * \brief Angles of rotation for a rotational periodic boundary. */ - double *GetPeriodicRotAngles(string val_marker); + su2double *GetPeriodicRotAngles(string val_marker); /*! * \brief Translation vector for a rotational periodic boundary. */ - double *GetPeriodicTranslation(string val_marker); + su2double *GetPeriodicTranslation(string val_marker); /*! * \brief Get the rotationally periodic donor marker for boundary val_marker. @@ -4716,32 +4716,32 @@ class CConfig { /*! * \brief Get the origin of the actuator disk. */ - double* GetActDisk_Origin(string val_marker); + su2double* GetActDisk_Origin(string val_marker); /*! * \brief Get the root radius of the actuator disk. */ - double GetActDisk_RootRadius(string val_marker); + su2double GetActDisk_RootRadius(string val_marker); /*! * \brief Get the tip radius of th actuator disk. */ - double GetActDisk_TipRadius(string val_marker); + su2double GetActDisk_TipRadius(string val_marker); /*! * \brief Get the thurst corffient of the actuator disk. */ - double GetActDisk_PressJump(string val_marker); + su2double GetActDisk_PressJump(string val_marker); /*! * \brief Get the thurst corffient of the actuator disk. */ - double GetActDisk_TempJump(string val_marker); + su2double GetActDisk_TempJump(string val_marker); /*! * \brief Get the rev / min of the actuator disk. */ - double GetActDisk_Omega(string val_marker); + su2double GetActDisk_Omega(string val_marker); /*! * \brief Get the rev / min of the actuator disk. @@ -4785,84 +4785,84 @@ class CConfig { * \param[in] val_index - Index corresponding to the periodic transformation. * \param[in] center - Pointer to a vector containing the coordinate of the center. */ - void SetPeriodicCenter(unsigned short val_index, double* center); + void SetPeriodicCenter(unsigned short val_index, su2double* center); /*! * \brief Get the rotation center for a periodic transformation. * \param[in] val_index - Index corresponding to the periodic transformation. * \return A vector containing coordinates of the center point. */ - double* GetPeriodicCenter(unsigned short val_index); + su2double* GetPeriodicCenter(unsigned short val_index); /*! * \brief Set the rotation angles for a periodic transformation. * \param[in] val_index - Index corresponding to the periodic transformation. * \param[in] rotation - Pointer to a vector containing the rotation angles. */ - void SetPeriodicRotation(unsigned short val_index, double* rotation); + void SetPeriodicRotation(unsigned short val_index, su2double* rotation); /*! * \brief Get the rotation angles for a periodic transformation. * \param[in] val_index - Index corresponding to the periodic transformation. * \return A vector containing the angles of rotation. */ - double* GetPeriodicRotation(unsigned short val_index); + su2double* GetPeriodicRotation(unsigned short val_index); /*! * \brief Set the translation vector for a periodic transformation. * \param[in] val_index - Index corresponding to the periodic transformation. * \param[in] translate - Pointer to a vector containing the coordinate of the center. */ - void SetPeriodicTranslate(unsigned short val_index, double* translate); + void SetPeriodicTranslate(unsigned short val_index, su2double* translate); /*! * \brief Get the translation vector for a periodic transformation. * \param[in] val_index - Index corresponding to the periodic transformation. * \return The translation vector. */ - double* GetPeriodicTranslate(unsigned short val_index); + su2double* GetPeriodicTranslate(unsigned short val_index); /*! * \brief Get the total temperature at a nacelle boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The total temperature. */ - double GetExhaust_Temperature_Target(string val_index); + su2double GetExhaust_Temperature_Target(string val_index); /*! * \brief Get the total temperature at an inlet boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The total temperature. */ - double GetInlet_Ttotal(string val_index); + su2double GetInlet_Ttotal(string val_index); /*! * \brief Get the temperature at a supersonic inlet boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The inlet density. */ - double GetInlet_Temperature(string val_index); + su2double GetInlet_Temperature(string val_index); /*! * \brief Get the pressure at a supersonic inlet boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The inlet pressure. */ - double GetInlet_Pressure(string val_index); + su2double GetInlet_Pressure(string val_index); /*! * \brief Get the velocity vector at a supersonic inlet boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The inlet velocity vector. */ - double* GetInlet_Velocity(string val_index); + su2double* GetInlet_Velocity(string val_index); /*! * \brief Get the fixed value at the Dirichlet boundary. * \param[in] val_index - Index corresponding to the Dirichlet boundary. * \return The total temperature. */ - double GetDirichlet_Value(string val_index); + su2double GetDirichlet_Value(string val_index); /*! * \brief Get whether this is a Dirichlet or a Neumann boundary. @@ -4876,14 +4876,14 @@ class CConfig { * \param[in] val_index - Index corresponding to the inlet boundary. * \return The total pressure. */ - double GetInlet_Ptotal(string val_index); + su2double GetInlet_Ptotal(string val_index); /*! * \brief Get the total pressure at an nacelle boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The total pressure. */ - double GetExhaust_Pressure_Target(string val_index); + su2double GetExhaust_Pressure_Target(string val_index); /*! * \brief If inlet and outlet conditions are defined for multi species @@ -4896,69 +4896,69 @@ class CConfig { * \param[in] iSpecies - Index of the species * \return The total temperature. */ - double GetInlet_Species_Temperature(unsigned short iSpecies); + su2double GetInlet_Species_Temperature(unsigned short iSpecies); /*! * \brief Get the temperature at an outlet boundary. * \param[in] iSpecies - Index of the species * \return The total temperature. */ - double GetOutlet_Species_Temperature(unsigned short iSpecies); + su2double GetOutlet_Species_Temperature(unsigned short iSpecies); /*! * \brief Get the pressure at an inlet boundary. * \param[in] iSpecies - Index of the species * \return The total temperature. */ - double GetInlet_Species_Pressure(unsigned short iSpecies); + su2double GetInlet_Species_Pressure(unsigned short iSpecies); /*! * \brief Get the pressure at an outlet boundary. * \param[in] iSpecies - Index of the species * \return The total temperature. */ - double GetOutlet_Species_Pressure(unsigned short iSpecies); + su2double GetOutlet_Species_Pressure(unsigned short iSpecies); /*! * \brief Get the velocity at an inlet boundary. * \param[in] iSpecies - Index of the species * \return The total temperature. */ - double GetInlet_Species_Velocity(unsigned short iSpecies); + su2double GetInlet_Species_Velocity(unsigned short iSpecies); /*! * \brief Get the velocity at an outlet boundary. * \param[in] iSpecies - Index of the species * \return The total temperature. */ - double GetOutlet_Species_Velocity(unsigned short iSpecies); + su2double GetOutlet_Species_Velocity(unsigned short iSpecies); /*! * \brief Value of the CFL reduction in LevelSet problems. * \return Value of the CFL reduction in LevelSet problems. */ - double GetCFLRedCoeff_Turb(void); + su2double GetCFLRedCoeff_Turb(void); /*! * \brief Get the flow direction unit vector at an inlet boundary. * \param[in] val_index - Index corresponding to the inlet boundary. * \return The flow direction vector. */ - double* GetInlet_FlowDir(string val_index); + su2double* GetInlet_FlowDir(string val_index); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetOutlet_Pressure(string val_index); + su2double GetOutlet_Pressure(string val_index); /*! * \brief Get the var 1 at Riemann boundary. * \param[in] val_marker - Index corresponding to the Riemann boundary. * \return The var1 */ - double GetRiemann_Var1(string val_marker); + su2double GetRiemann_Var1(string val_marker); /*! * \brief Get the var 2 at Riemann boundary. @@ -4966,14 +4966,14 @@ class CConfig { * \return The var2 */ - double GetRiemann_Var2(string val_marker); + su2double GetRiemann_Var2(string val_marker); /*! * \brief Get the Flowdir at Riemann boundary. * \param[in] val_marker - Index corresponding to the Riemann boundary. * \return The Flowdir */ - double* GetRiemann_FlowDir(string val_marker); + su2double* GetRiemann_FlowDir(string val_marker); /*! * \brief Get Kind Data of Riemann boundary. @@ -4987,214 +4987,214 @@ class CConfig { * \param[in] val_index - Index corresponding to the isothermal boundary. * \return The wall temperature. */ - double GetIsothermal_Temperature(string val_index); + su2double GetIsothermal_Temperature(string val_index); /*! * \brief Get the wall heat flux on a constant heat flux boundary. * \param[in] val_index - Index corresponding to the constant heat flux boundary. * \return The heat flux. */ - double GetWall_HeatFlux(string val_index); + su2double GetWall_HeatFlux(string val_index); /*! * \brief Get the wall heat flux on a constant heat flux boundary. * \return The heat flux. */ - double *GetWall_Catalycity(void); + su2double *GetWall_Catalycity(void); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetInflow_Mach_Target(string val_marker); + su2double GetInflow_Mach_Target(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetInflow_Mach(string val_marker); + su2double GetInflow_Mach(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetInflow_Mach(unsigned short val_imarker, double val_fanface_mach); + void SetInflow_Mach(unsigned short val_imarker, su2double val_fanface_mach); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetInflow_Pressure(string val_marker); + su2double GetInflow_Pressure(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetInflow_Pressure(unsigned short val_imarker, double val_fanface_pressure); + void SetInflow_Pressure(unsigned short val_imarker, su2double val_fanface_pressure); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetBleed_Temperature_Target(string val_marker); + su2double GetBleed_Temperature_Target(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetBleed_Temperature(string val_marker); + su2double GetBleed_Temperature(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetBleed_Temperature(unsigned short val_imarker, double val_bleed_temp); + void SetBleed_Temperature(unsigned short val_imarker, su2double val_bleed_temp); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetExhaust_Temperature(unsigned short val_imarker, double val_exhaust_temp); + void SetExhaust_Temperature(unsigned short val_imarker, su2double val_exhaust_temp); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetExhaust_Temperature(string val_marker); + su2double GetExhaust_Temperature(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetBleed_MassFlow_Target(string val_marker); + su2double GetBleed_MassFlow_Target(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetBleed_MassFlow(string val_marker); + su2double GetBleed_MassFlow(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetBleed_MassFlow(unsigned short val_imarker, double val_bleed_massflow); + void SetBleed_MassFlow(unsigned short val_imarker, su2double val_bleed_massflow); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetBleed_Pressure(string val_marker); + su2double GetBleed_Pressure(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - double GetExhaust_Pressure(string val_marker); + su2double GetExhaust_Pressure(string val_marker); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetBleed_Pressure(unsigned short val_imarker, double val_bleed_pressure); + void SetBleed_Pressure(unsigned short val_imarker, su2double val_bleed_pressure); /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. * \return The outlet pressure. */ - void SetExhaust_Pressure(unsigned short val_imarker, double val_exhaust_pressure); + void SetExhaust_Pressure(unsigned short val_imarker, su2double val_exhaust_pressure); /*! * \brief Get the displacement value at an displacement boundary. * \param[in] val_index - Index corresponding to the displacement boundary. * \return The displacement value. */ - double GetDispl_Value(string val_index); + su2double GetDispl_Value(string val_index); /*! * \brief Get the force value at an load boundary. * \param[in] val_index - Index corresponding to the load boundary. * \return The load value. */ - double GetLoad_Value(string val_index); + su2double GetLoad_Value(string val_index); /*! * \brief Get the force value at a load boundary defined in cartesian coordinates. * \param[in] val_index - Index corresponding to the load boundary. * \return The load value. */ - double GetLoad_Dir_Value(string val_index); + su2double GetLoad_Dir_Value(string val_index); /*! * \brief Get the force multiplier at a load boundary in cartesian coordinates. * \param[in] val_index - Index corresponding to the load boundary. * \return The load multiplier. */ - double GetLoad_Dir_Multiplier(string val_index); + su2double GetLoad_Dir_Multiplier(string val_index); /*! * \brief Get the force direction at a loaded boundary in cartesian coordinates. * \param[in] val_index - Index corresponding to the load boundary. * \return The load direction. */ - double* GetLoad_Dir(string val_index); + su2double* GetLoad_Dir(string val_index); /*! * \brief Get the amplitude of the sine-wave at a load boundary defined in cartesian coordinates. * \param[in] val_index - Index corresponding to the load boundary. * \return The load value. */ - double GetLoad_Sine_Amplitude(string val_index); + su2double GetLoad_Sine_Amplitude(string val_index); /*! * \brief Get the frequency of the sine-wave at a load boundary in cartesian coordinates. * \param[in] val_index - Index corresponding to the load boundary. * \return The load frequency. */ - double GetLoad_Sine_Frequency(string val_index); + su2double GetLoad_Sine_Frequency(string val_index); /*! * \brief Get the force direction at a sine-wave loaded boundary in cartesian coordinates. * \param[in] val_index - Index corresponding to the load boundary. * \return The load direction. */ - double* GetLoad_Sine_Dir(string val_index); + su2double* GetLoad_Sine_Dir(string val_index); /*! * \brief Get the force value at an load boundary. * \param[in] val_index - Index corresponding to the load boundary. * \return The load value. */ - double GetFlowLoad_Value(string val_index); + su2double GetFlowLoad_Value(string val_index); /*! * \brief Cyclic pitch amplitude for rotor blades. * \return The specified cyclic pitch amplitude. */ - double GetCyclic_Pitch(void); + su2double GetCyclic_Pitch(void); /*! * \brief Collective pitch setting for rotor blades. * \return The specified collective pitch setting. */ - double GetCollective_Pitch(void); + su2double GetCollective_Pitch(void); /*! * \brief Get name of the arbitrary mesh motion input file. @@ -5240,22 +5240,22 @@ class CConfig { /*! * \brief Value of Aeroelastic solution coordinate at time n+1. */ - vector > GetAeroelastic_np1(unsigned short iMarker); + vector > GetAeroelastic_np1(unsigned short iMarker); /*! * \brief Value of Aeroelastic solution coordinate at time n. */ - vector > GetAeroelastic_n(unsigned short iMarker); + vector > GetAeroelastic_n(unsigned short iMarker); /*! * \brief Value of Aeroelastic solution coordinate at time n-1. */ - vector > GetAeroelastic_n1(unsigned short iMarker); + vector > GetAeroelastic_n1(unsigned short iMarker); /*! * \brief Value of Aeroelastic solution coordinate at time n+1. */ - void SetAeroelastic_np1(unsigned short iMarker, vector > solution); + void SetAeroelastic_np1(unsigned short iMarker, vector > solution); /*! * \brief Value of Aeroelastic solution coordinate at time n from time n+1. @@ -5270,40 +5270,40 @@ class CConfig { /*! * \brief Uncoupled Aeroelastic Frequency Plunge. */ - double GetAeroelastic_Frequency_Plunge(void); + su2double GetAeroelastic_Frequency_Plunge(void); /*! * \brief Uncoupled Aeroelastic Frequency Pitch. */ - double GetAeroelastic_Frequency_Pitch(void); + su2double GetAeroelastic_Frequency_Pitch(void); /*! * \brief Value of plunging coordinate. * \param[in] val_marker - the marker we are monitoring. * \return Value of plunging coordinate. */ - double GetAeroelastic_plunge(unsigned short val_marker); + su2double GetAeroelastic_plunge(unsigned short val_marker); /*! * \brief Value of pitching coordinate. * \param[in] val_marker - the marker we are monitoring. * \return Value of pitching coordinate. */ - double GetAeroelastic_pitch(unsigned short val_marker); + su2double GetAeroelastic_pitch(unsigned short val_marker); /*! * \brief Value of plunging coordinate. * \param[in] val_marker - the marker we are monitoring. * \param[in] val - value of plunging coordinate. */ - void SetAeroelastic_plunge(unsigned short val_marker, double val); + void SetAeroelastic_plunge(unsigned short val_marker, su2double val); /*! * \brief Value of pitching coordinate. * \param[in] val_marker - the marker we are monitoring. * \param[in] val - value of pitching coordinate. */ - void SetAeroelastic_pitch(unsigned short val_marker, double val); + void SetAeroelastic_pitch(unsigned short val_marker, su2double val); /*! * \brief Get information about the aeroelastic simulation. @@ -5332,27 +5332,27 @@ class CConfig { /*! * \brief Value of the gust wavelength. */ - double GetGust_WaveLength(void); + su2double GetGust_WaveLength(void); /*! * \brief Value of the number of gust periods. */ - double GetGust_Periods(void); + su2double GetGust_Periods(void); /*! * \brief Value of the gust amplitude. */ - double GetGust_Ampl(void); + su2double GetGust_Ampl(void); /*! * \brief Value of the time at which to begin the gust. */ - double GetGust_Begin_Time(void); + su2double GetGust_Begin_Time(void); /*! * \brief Value of the location ath which the gust begins. */ - double GetGust_Begin_Loc(void); + su2double GetGust_Begin_Loc(void); /*! * \brief Value of the time at which to begin the gust. @@ -5362,7 +5362,7 @@ class CConfig { /*! * \brief Value of the location ath which the gust begins. */ - double GetFFD_Tol(void); + su2double GetFFD_Tol(void); /*! * \brief Get the node number of the CV to visualize. @@ -5380,13 +5380,13 @@ class CConfig { * \brief Get the value specified for the target CL. * \return Value of the target CL. */ - double GetTarget_CL(void); + su2double GetTarget_CL(void); /*! * \brief Get the value of the damping coefficient for fixed CL mode. * \return Damping coefficient for fixed CL mode. */ - double GetDamp_Fixed_CL(void); + su2double GetDamp_Fixed_CL(void); /*! * \brief Get the value of iterations to re-evaluate the angle of attack. @@ -5439,7 +5439,7 @@ class CConfig { condition for a natural spline, with zero second derivative on that boundary. Numerical Recipes: The Art of Scientific Computing, Third Edition in C++. */ - void SetSpline(vector &x, vector &y, unsigned long n, double yp1, double ypn, vector &y2); + void SetSpline(vector &x, vector &y, unsigned long n, su2double yp1, su2double ypn, vector &y2); /*! * \brief Given the arrays xa[1..n] and ya[1..n], which tabulate a function (with the xai’s in order), @@ -5448,7 +5448,7 @@ class CConfig { Numerical Recipes: The Art of Scientific Computing, Third Edition in C++. * \returns The interpolated value of for x. */ - double GetSpline(vector &xa, vector &ya, vector &y2a, unsigned long n, double x); + su2double GetSpline(vector &xa, vector &ya, vector &y2a, unsigned long n, su2double x); /*! * \brief Get the verbosity level of the console output. @@ -5466,13 +5466,13 @@ class CConfig { * \brief Get Aitken's relaxation parameter for static relaxation cases. * \return Aitken's relaxation parameters. */ - double GetAitkenStatRelax(void); + su2double GetAitkenStatRelax(void); /*! * \brief Get Aitken's maximum relaxation parameter for dynamic relaxation cases and first iteration. * \return Aitken's relaxation parameters. */ - double GetAitkenDynMaxInit(void); + su2double GetAitkenDynMaxInit(void); /*! @@ -5501,21 +5501,21 @@ class CConfig { * one value of the time step for the complete simulation. * \return Value of the time step in an unsteady simulation (non dimensional). */ - double GetDelta_DynTime(void); + su2double GetDelta_DynTime(void); /*! * \brief If we are prforming an unsteady simulation, there is only * one value of the time step for the complete simulation. * \return Value of the time step in an unsteady simulation (non dimensional). */ - double GetTotal_DynTime(void); + su2double GetTotal_DynTime(void); /*! * \brief If we are prforming an unsteady simulation, there is only * one value of the time step for the complete simulation. * \return Value of the time step in an unsteady simulation (non dimensional). */ - double GetCurrent_DynTime(void); + su2double GetCurrent_DynTime(void); /*! * \brief Get information about writing dynamic structural analysis headers and file extensions. @@ -5527,13 +5527,13 @@ class CConfig { * \brief Get Newmark alpha parameter. * \return Value of the Newmark alpha parameter. */ - double GetNewmark_alpha(void); + su2double GetNewmark_alpha(void); /*! * \brief Get Newmark delta parameter. * \return Value of the Newmark delta parameter. */ - double GetNewmark_delta(void); + su2double GetNewmark_delta(void); /*! * \brief Check if the user wants to apply the load gradually. @@ -5551,13 +5551,13 @@ class CConfig { * \brief Get the maximum time of the ramp. * \return Value of the max time while the load is linearly increased */ - double GetRamp_Time(void); + su2double GetRamp_Time(void); /*! * \brief Get the maximum time of the ramp. * \return Value of the max time while the load is linearly increased */ - double GetStatic_Time(void); + su2double GetStatic_Time(void); /*! * \brief Get the order of the predictor for FSI applications. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index e168839966f..65d854d9697 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -29,23 +29,23 @@ #pragma once -inline double CConfig::GetCFL_AdaptParam(unsigned short val_index) { return CFL_AdaptParam[val_index]; } +inline su2double CConfig::GetCFL_AdaptParam(unsigned short val_index) { return CFL_AdaptParam[val_index]; } inline bool CConfig::GetCFL_Adapt(void) { return CFL_Adapt; } -inline void CConfig::SetInflow_Mach(unsigned short val_imarker, double val_fanface_mach) { Inflow_Mach[val_imarker] = val_fanface_mach; } +inline void CConfig::SetInflow_Mach(unsigned short val_imarker, su2double val_fanface_mach) { Inflow_Mach[val_imarker] = val_fanface_mach; } -inline void CConfig::SetInflow_Pressure(unsigned short val_imarker, double val_fanface_pressure) { Inflow_Pressure[val_imarker] = val_fanface_pressure; } +inline void CConfig::SetInflow_Pressure(unsigned short val_imarker, su2double val_fanface_pressure) { Inflow_Pressure[val_imarker] = val_fanface_pressure; } -inline void CConfig::SetBleed_Temperature(unsigned short val_imarker, double val_bleed_temp) { Bleed_Temperature[val_imarker] = val_bleed_temp; } +inline void CConfig::SetBleed_Temperature(unsigned short val_imarker, su2double val_bleed_temp) { Bleed_Temperature[val_imarker] = val_bleed_temp; } -inline void CConfig::SetBleed_MassFlow(unsigned short val_imarker, double val_bleed_massflow) { Bleed_MassFlow[val_imarker] = val_bleed_massflow; } +inline void CConfig::SetBleed_MassFlow(unsigned short val_imarker, su2double val_bleed_massflow) { Bleed_MassFlow[val_imarker] = val_bleed_massflow; } -inline void CConfig::SetBleed_Pressure(unsigned short val_imarker, double val_bleed_pressure) { Bleed_Pressure[val_imarker] = val_bleed_pressure; } +inline void CConfig::SetBleed_Pressure(unsigned short val_imarker, su2double val_bleed_pressure) { Bleed_Pressure[val_imarker] = val_bleed_pressure; } -inline void CConfig::SetExhaust_Pressure(unsigned short val_imarker, double val_exhaust_pressure) { Exhaust_Pressure[val_imarker] = val_exhaust_pressure; } +inline void CConfig::SetExhaust_Pressure(unsigned short val_imarker, su2double val_exhaust_pressure) { Exhaust_Pressure[val_imarker] = val_exhaust_pressure; } -inline void CConfig::SetExhaust_Temperature(unsigned short val_imarker, double val_exhaust_temp) { Exhaust_Temperature[val_imarker] = val_exhaust_temp; } +inline void CConfig::SetExhaust_Temperature(unsigned short val_imarker, su2double val_exhaust_temp) { Exhaust_Temperature[val_imarker] = val_exhaust_temp; } inline unsigned short CConfig::GetnZone(void) { return nZone; } @@ -65,7 +65,7 @@ inline unsigned long CConfig::GetnExtIter(void) { return nExtIter; } inline unsigned short CConfig::GetnTimeInstances(void) { return nTimeInstances; } -inline double CConfig::GetTimeSpectral_Period(void) { return TimeSpectral_Period; } +inline su2double CConfig::GetTimeSpectral_Period(void) { return TimeSpectral_Period; } inline void CConfig::SetExtIter(unsigned long val_iter) { ExtIter = val_iter; } @@ -85,51 +85,51 @@ inline long CConfig::GetUnst_AdjointIter(void) { return Unst_AdjointIter; } inline string CConfig::GetPlaneTag(unsigned short index) { return PlaneTag[index]; } -inline double CConfig::GetEA_IntLimit(unsigned short index) { return EA_IntLimit[index]; } +inline su2double CConfig::GetEA_IntLimit(unsigned short index) { return EA_IntLimit[index]; } -inline double CConfig::GetEA_ScaleFactor(void) { return EA_ScaleFactor; } +inline su2double CConfig::GetEA_ScaleFactor(void) { return EA_ScaleFactor; } -inline double CConfig::GetAdjointLimit(void) { return AdjointLimit; } +inline su2double CConfig::GetAdjointLimit(void) { return AdjointLimit; } -inline double *CConfig::GetHold_GridFixed_Coord(void) { return Hold_GridFixed_Coord; } +inline su2double *CConfig::GetHold_GridFixed_Coord(void) { return Hold_GridFixed_Coord; } -inline double *CConfig::GetSubsonic_Engine_Box(void) { return Subsonic_Engine_Box; } +inline su2double *CConfig::GetSubsonic_Engine_Box(void) { return Subsonic_Engine_Box; } -inline double CConfig::GetRatioDensity(void) { return RatioDensity; } +inline su2double CConfig::GetRatioDensity(void) { return RatioDensity; } -inline double CConfig::GetFreeSurface_Thickness(void) { return FreeSurface_Thickness; } +inline su2double CConfig::GetFreeSurface_Thickness(void) { return FreeSurface_Thickness; } -inline double CConfig::GetFreeSurface_Damping_Coeff(void) { return FreeSurface_Damping_Coeff; } +inline su2double CConfig::GetFreeSurface_Damping_Coeff(void) { return FreeSurface_Damping_Coeff; } -inline double CConfig::GetFreeSurface_Damping_Length(void) { return FreeSurface_Damping_Length; } +inline su2double CConfig::GetFreeSurface_Damping_Length(void) { return FreeSurface_Damping_Length; } -inline double CConfig::GetFreeSurface_Outlet(void) { return FreeSurface_Outlet; } +inline su2double CConfig::GetFreeSurface_Outlet(void) { return FreeSurface_Outlet; } -inline double CConfig::GetRatioViscosity(void) { return RatioViscosity; } +inline su2double CConfig::GetRatioViscosity(void) { return RatioViscosity; } inline unsigned short CConfig::GetAnalytical_Surface(void) { return Analytical_Surface; } inline unsigned short CConfig::GetAxis_Orientation(void) { return Axis_Orientation; } -inline double CConfig::GetDualVol_Power(void) { return DualVol_Power; } +inline su2double CConfig::GetDualVol_Power(void) { return DualVol_Power; } inline bool CConfig::GetExtraOutput(void) { return ExtraOutput; } -inline double CConfig::GetRefAreaCoeff(void) { return RefAreaCoeff; } +inline su2double CConfig::GetRefAreaCoeff(void) { return RefAreaCoeff; } -inline double CConfig::GetWaveSpeed(void) { return Wave_Speed; } +inline su2double CConfig::GetWaveSpeed(void) { return Wave_Speed; } -inline double CConfig::GetThermalDiffusivity(void) { return Thermal_Diffusivity; } +inline su2double CConfig::GetThermalDiffusivity(void) { return Thermal_Diffusivity; } -inline double CConfig::GetElasticyMod(void) { return ElasticyMod; } +inline su2double CConfig::GetElasticyMod(void) { return ElasticyMod; } -inline double CConfig::GetBulk_Modulus_Struct(void) { return Bulk_Modulus_Struct; } +inline su2double CConfig::GetBulk_Modulus_Struct(void) { return Bulk_Modulus_Struct; } inline unsigned short CConfig::GetElas2D_Formulation(void) { return Kind_2DElasForm; } -inline double CConfig::GetPoissonRatio(void) { return PoissonRatio; } +inline su2double CConfig::GetPoissonRatio(void) { return PoissonRatio; } -inline double CConfig::GetMaterialDensity(void) { return MaterialDensity; } +inline su2double CConfig::GetMaterialDensity(void) { return MaterialDensity; } inline unsigned short CConfig::GetMaterialCompressibility(void) { return Kind_Material_Compress; } @@ -137,240 +137,240 @@ inline unsigned short CConfig::GetMaterialModel(void) { return Kind_Material; } inline unsigned short CConfig::GetGeometricConditions(void) { return Kind_Struct_Solver; } -inline double CConfig::GetRefLengthMoment(void) { return RefLengthMoment; } +inline su2double CConfig::GetRefLengthMoment(void) { return RefLengthMoment; } -inline double CConfig::GetRefElemLength(void) { return RefElemLength; } +inline su2double CConfig::GetRefElemLength(void) { return RefElemLength; } -inline double CConfig::GetRefSharpEdges(void) { return RefSharpEdges; } +inline su2double CConfig::GetRefSharpEdges(void) { return RefSharpEdges; } -inline double CConfig::GetDomainVolume(void) { return DomainVolume; } +inline su2double CConfig::GetDomainVolume(void) { return DomainVolume; } -inline void CConfig::SetRefAreaCoeff(double val_area) { RefAreaCoeff = val_area; } +inline void CConfig::SetRefAreaCoeff(su2double val_area) { RefAreaCoeff = val_area; } -inline void CConfig::SetDomainVolume(double val_volume) { DomainVolume = val_volume; } +inline void CConfig::SetDomainVolume(su2double val_volume) { DomainVolume = val_volume; } inline void CConfig::SetnExtIter(unsigned long val_niter) { nExtIter = val_niter; } -inline double CConfig::GetMach(void) { return Mach; } +inline su2double CConfig::GetMach(void) { return Mach; } -inline double CConfig::GetGamma(void) { return Gamma; } +inline su2double CConfig::GetGamma(void) { return Gamma; } -inline double CConfig::GetSection_Location(unsigned short val_var) { return Section_Location[val_var]; } +inline su2double CConfig::GetSection_Location(unsigned short val_var) { return Section_Location[val_var]; } inline int ***CConfig::GetReaction_Map(void) { return Reactions; } -inline double ***CConfig::GetCollisionIntegral00(void) { return Omega00; } +inline su2double ***CConfig::GetCollisionIntegral00(void) { return Omega00; } -inline double ***CConfig::GetCollisionIntegral11(void) { return Omega11; } +inline su2double ***CConfig::GetCollisionIntegral11(void) { return Omega11; } -inline double CConfig::GetBulk_Modulus(void) { return Bulk_Modulus; } +inline su2double CConfig::GetBulk_Modulus(void) { return Bulk_Modulus; } -inline double CConfig::GetArtComp_Factor(void) { return ArtComp_Factor; } +inline su2double CConfig::GetArtComp_Factor(void) { return ArtComp_Factor; } -inline double CConfig::GetGas_Constant(void) { return Gas_Constant; } +inline su2double CConfig::GetGas_Constant(void) { return Gas_Constant; } -inline double CConfig::GetGas_ConstantND(void) { return Gas_ConstantND; } +inline su2double CConfig::GetGas_ConstantND(void) { return Gas_ConstantND; } -inline double CConfig::GetBlottnerCoeff(unsigned short val_Species, unsigned short val_Coeff) { return Blottner[val_Species][val_Coeff]; } +inline su2double CConfig::GetBlottnerCoeff(unsigned short val_Species, unsigned short val_Coeff) { return Blottner[val_Species][val_Coeff]; } -inline double CConfig::GetPnormHeat(void) { return pnorm_heat; } +inline su2double CConfig::GetPnormHeat(void) { return pnorm_heat; } -inline double CConfig::GetWallTemperature(void) { return Wall_Temperature; } +inline su2double CConfig::GetWallTemperature(void) { return Wall_Temperature; } -inline double CConfig::GetFreeSurface_Zero(void) { return FreeSurface_Zero; } +inline su2double CConfig::GetFreeSurface_Zero(void) { return FreeSurface_Zero; } -inline double CConfig::GetFreeSurface_Depth(void) { return FreeSurface_Depth; } +inline su2double CConfig::GetFreeSurface_Depth(void) { return FreeSurface_Depth; } -inline double CConfig::GetGas_Constant_Ref(void) { return Gas_Constant_Ref; } +inline su2double CConfig::GetGas_Constant_Ref(void) { return Gas_Constant_Ref; } -inline double CConfig::GetTemperature_FreeStream(void) { return Temperature_FreeStream; } +inline su2double CConfig::GetTemperature_FreeStream(void) { return Temperature_FreeStream; } -inline double CConfig::GetEnergy_FreeStream(void) { return Energy_FreeStream; } +inline su2double CConfig::GetEnergy_FreeStream(void) { return Energy_FreeStream; } -inline double CConfig::GetViscosity_FreeStream(void) { return Viscosity_FreeStream; } +inline su2double CConfig::GetViscosity_FreeStream(void) { return Viscosity_FreeStream; } -inline double CConfig::GetDensity_FreeStream(void) { return Density_FreeStream; } +inline su2double CConfig::GetDensity_FreeStream(void) { return Density_FreeStream; } -inline double CConfig::GetModVel_FreeStream(void) { return ModVel_FreeStream; } +inline su2double CConfig::GetModVel_FreeStream(void) { return ModVel_FreeStream; } -inline double CConfig::GetModVel_FreeStreamND(void) { return ModVel_FreeStreamND; } +inline su2double CConfig::GetModVel_FreeStreamND(void) { return ModVel_FreeStreamND; } -inline double CConfig::GetPressure_FreeStream(void) { return Pressure_FreeStream; } +inline su2double CConfig::GetPressure_FreeStream(void) { return Pressure_FreeStream; } -inline double CConfig::GetTemperature_ve_FreeStream(void) { return Temperature_ve_FreeStream; } +inline su2double CConfig::GetTemperature_ve_FreeStream(void) { return Temperature_ve_FreeStream; } -inline double CConfig::GetPrandtl_Lam(void) { return Prandtl_Lam; } +inline su2double CConfig::GetPrandtl_Lam(void) { return Prandtl_Lam; } -inline double CConfig::GetPrandtl_Turb(void) { return Prandtl_Turb; } +inline su2double CConfig::GetPrandtl_Turb(void) { return Prandtl_Turb; } -inline double CConfig::GetLength_Ref(void) { return Length_Ref; } +inline su2double CConfig::GetLength_Ref(void) { return Length_Ref; } -inline double CConfig::GetPressure_Ref(void) { return Pressure_Ref; } +inline su2double CConfig::GetPressure_Ref(void) { return Pressure_Ref; } -inline double CConfig::GetTemperature_Ref(void) { return Temperature_Ref; } +inline su2double CConfig::GetTemperature_Ref(void) { return Temperature_Ref; } -inline double CConfig::GetDensity_Ref(void) { return Density_Ref; } +inline su2double CConfig::GetDensity_Ref(void) { return Density_Ref; } -inline double CConfig::GetVelocity_Ref(void) { return Velocity_Ref; } +inline su2double CConfig::GetVelocity_Ref(void) { return Velocity_Ref; } -inline double CConfig::GetEnergy_Ref(void) { return Energy_Ref; } +inline su2double CConfig::GetEnergy_Ref(void) { return Energy_Ref; } -inline double CConfig::GetTime_Ref(void) { return Time_Ref; } +inline su2double CConfig::GetTime_Ref(void) { return Time_Ref; } -inline double CConfig::GetViscosity_Ref(void) { return Viscosity_Ref; } +inline su2double CConfig::GetViscosity_Ref(void) { return Viscosity_Ref; } -inline double CConfig::GetConductivity_Ref(void) { return Conductivity_Ref; } +inline su2double CConfig::GetConductivity_Ref(void) { return Conductivity_Ref; } -inline double CConfig::GetOmega_Ref(void) { return Omega_Ref; } +inline su2double CConfig::GetOmega_Ref(void) { return Omega_Ref; } -inline double CConfig::GetForce_Ref(void) { return Force_Ref; } +inline su2double CConfig::GetForce_Ref(void) { return Force_Ref; } -inline double CConfig::GetPressure_FreeStreamND(void) { return Pressure_FreeStreamND; } +inline su2double CConfig::GetPressure_FreeStreamND(void) { return Pressure_FreeStreamND; } -inline double CConfig::GetTemperature_FreeStreamND(void) { return Temperature_FreeStreamND; } +inline su2double CConfig::GetTemperature_FreeStreamND(void) { return Temperature_FreeStreamND; } -inline double CConfig::GetDensity_FreeStreamND(void) { return Density_FreeStreamND; } +inline su2double CConfig::GetDensity_FreeStreamND(void) { return Density_FreeStreamND; } -inline double* CConfig::GetVelocity_FreeStreamND(void) { return Velocity_FreeStreamND; } +inline su2double* CConfig::GetVelocity_FreeStreamND(void) { return Velocity_FreeStreamND; } -inline double* CConfig::GetVelocity_FreeStream(void) { return Velocity_FreeStream; } +inline su2double* CConfig::GetVelocity_FreeStream(void) { return Velocity_FreeStream; } -inline double CConfig::GetEnergy_FreeStreamND(void) { return Energy_FreeStreamND; } +inline su2double CConfig::GetEnergy_FreeStreamND(void) { return Energy_FreeStreamND; } -inline double CConfig::GetViscosity_FreeStreamND(void) { return Viscosity_FreeStreamND; } +inline su2double CConfig::GetViscosity_FreeStreamND(void) { return Viscosity_FreeStreamND; } -inline double CConfig::GetTke_FreeStreamND(void) { return Tke_FreeStreamND; } +inline su2double CConfig::GetTke_FreeStreamND(void) { return Tke_FreeStreamND; } -inline double CConfig::GetOmega_FreeStreamND(void) { return Omega_FreeStreamND; } +inline su2double CConfig::GetOmega_FreeStreamND(void) { return Omega_FreeStreamND; } -inline double CConfig::GetTke_FreeStream(void) { return Tke_FreeStream; } +inline su2double CConfig::GetTke_FreeStream(void) { return Tke_FreeStream; } -inline double CConfig::GetOmega_FreeStream(void) { return Omega_FreeStream; } +inline su2double CConfig::GetOmega_FreeStream(void) { return Omega_FreeStream; } -inline double CConfig::GetNuFactor_FreeStream(void) { return NuFactor_FreeStream; } +inline su2double CConfig::GetNuFactor_FreeStream(void) { return NuFactor_FreeStream; } -inline double CConfig::GetNuFactor_Engine(void) { return NuFactor_Engine; } +inline su2double CConfig::GetNuFactor_Engine(void) { return NuFactor_Engine; } -inline double CConfig::GetIntermittency_FreeStream(void) { return Intermittency_FreeStream; } +inline su2double CConfig::GetIntermittency_FreeStream(void) { return Intermittency_FreeStream; } -inline double CConfig::GetTurbulenceIntensity_FreeStream(void) { return TurbulenceIntensity_FreeStream; } +inline su2double CConfig::GetTurbulenceIntensity_FreeStream(void) { return TurbulenceIntensity_FreeStream; } -inline double CConfig::GetTurb2LamViscRatio_FreeStream(void) {return Turb2LamViscRatio_FreeStream;} +inline su2double CConfig::GetTurb2LamViscRatio_FreeStream(void) {return Turb2LamViscRatio_FreeStream;} -inline double* CConfig::GetMassFrac_FreeStream(void) { return MassFrac_FreeStream; } +inline su2double* CConfig::GetMassFrac_FreeStream(void) { return MassFrac_FreeStream; } -inline double CConfig::GetLength_Reynolds(void) { return Length_Reynolds; } +inline su2double CConfig::GetLength_Reynolds(void) { return Length_Reynolds; } inline unsigned short CConfig::GetnStartUpIter(void) { return nStartUpIter; } -inline double *CConfig::GetRefOriginMoment(unsigned short val_marker) { +inline su2double *CConfig::GetRefOriginMoment(unsigned short val_marker) { RefOriginMoment[0] = RefOriginMoment_X[val_marker]; RefOriginMoment[1] = RefOriginMoment_Y[val_marker]; RefOriginMoment[2] = RefOriginMoment_Z[val_marker]; return RefOriginMoment; } -inline double CConfig::GetRefOriginMoment_X(unsigned short val_marker) { return RefOriginMoment_X[val_marker]; } +inline su2double CConfig::GetRefOriginMoment_X(unsigned short val_marker) { return RefOriginMoment_X[val_marker]; } -inline double CConfig::GetRefOriginMoment_Y(unsigned short val_marker) { return RefOriginMoment_Y[val_marker]; } +inline su2double CConfig::GetRefOriginMoment_Y(unsigned short val_marker) { return RefOriginMoment_Y[val_marker]; } -inline double CConfig::GetRefOriginMoment_Z(unsigned short val_marker) { return RefOriginMoment_Z[val_marker]; } +inline su2double CConfig::GetRefOriginMoment_Z(unsigned short val_marker) { return RefOriginMoment_Z[val_marker]; } -inline void CConfig::SetRefOriginMoment_X(unsigned short val_marker, double val_origin) { RefOriginMoment_X[val_marker] = val_origin; } +inline void CConfig::SetRefOriginMoment_X(unsigned short val_marker, su2double val_origin) { RefOriginMoment_X[val_marker] = val_origin; } -inline void CConfig::SetRefOriginMoment_Y(unsigned short val_marker, double val_origin) { RefOriginMoment_Y[val_marker] = val_origin; } +inline void CConfig::SetRefOriginMoment_Y(unsigned short val_marker, su2double val_origin) { RefOriginMoment_Y[val_marker] = val_origin; } -inline void CConfig::SetRefOriginMoment_Z(unsigned short val_marker, double val_origin) { RefOriginMoment_Z[val_marker] = val_origin; } +inline void CConfig::SetRefOriginMoment_Z(unsigned short val_marker, su2double val_origin) { RefOriginMoment_Z[val_marker] = val_origin; } -inline double CConfig::GetChargeCoeff(void) { return ChargeCoeff; } +inline su2double CConfig::GetChargeCoeff(void) { return ChargeCoeff; } -inline double CConfig::GetLimiterCoeff(void) { return LimiterCoeff; } +inline su2double CConfig::GetLimiterCoeff(void) { return LimiterCoeff; } inline unsigned long CConfig::GetLimiterIter(void) { return LimiterIter; } -inline double CConfig::GetSharpEdgesCoeff(void) { return SharpEdgesCoeff; } +inline su2double CConfig::GetSharpEdgesCoeff(void) { return SharpEdgesCoeff; } -inline double CConfig::GetReynolds(void) { return Reynolds; } +inline su2double CConfig::GetReynolds(void) { return Reynolds; } -inline double CConfig::GetFroude(void) { return Froude; } +inline su2double CConfig::GetFroude(void) { return Froude; } -inline void CConfig::SetPressure_FreeStreamND(double val_pressure_freestreamnd) { Pressure_FreeStreamND = val_pressure_freestreamnd; } +inline void CConfig::SetPressure_FreeStreamND(su2double val_pressure_freestreamnd) { Pressure_FreeStreamND = val_pressure_freestreamnd; } -inline void CConfig::SetPressure_FreeStream(double val_pressure_freestream) { Pressure_FreeStream = val_pressure_freestream; } +inline void CConfig::SetPressure_FreeStream(su2double val_pressure_freestream) { Pressure_FreeStream = val_pressure_freestream; } -inline void CConfig::SetDensity_FreeStreamND(double val_density_freestreamnd) { Density_FreeStreamND = val_density_freestreamnd; } +inline void CConfig::SetDensity_FreeStreamND(su2double val_density_freestreamnd) { Density_FreeStreamND = val_density_freestreamnd; } -inline void CConfig::SetDensity_FreeStream(double val_density_freestream) { Density_FreeStream = val_density_freestream; } +inline void CConfig::SetDensity_FreeStream(su2double val_density_freestream) { Density_FreeStream = val_density_freestream; } -inline void CConfig::SetViscosity_FreeStream(double val_viscosity_freestream) { Viscosity_FreeStream = val_viscosity_freestream; } +inline void CConfig::SetViscosity_FreeStream(su2double val_viscosity_freestream) { Viscosity_FreeStream = val_viscosity_freestream; } -inline void CConfig::SetModVel_FreeStream(double val_modvel_freestream) { ModVel_FreeStream = val_modvel_freestream; } +inline void CConfig::SetModVel_FreeStream(su2double val_modvel_freestream) { ModVel_FreeStream = val_modvel_freestream; } -inline void CConfig::SetModVel_FreeStreamND(double val_modvel_freestreamnd) { ModVel_FreeStreamND = val_modvel_freestreamnd; } +inline void CConfig::SetModVel_FreeStreamND(su2double val_modvel_freestreamnd) { ModVel_FreeStreamND = val_modvel_freestreamnd; } -inline void CConfig::SetTemperature_FreeStream(double val_temperature_freestream) { Temperature_FreeStream = val_temperature_freestream; } +inline void CConfig::SetTemperature_FreeStream(su2double val_temperature_freestream) { Temperature_FreeStream = val_temperature_freestream; } -inline void CConfig::SetTemperature_FreeStreamND(double val_temperature_freestreamnd) { Temperature_FreeStreamND = val_temperature_freestreamnd; } +inline void CConfig::SetTemperature_FreeStreamND(su2double val_temperature_freestreamnd) { Temperature_FreeStreamND = val_temperature_freestreamnd; } -inline void CConfig::SetGas_ConstantND(double val_gas_constantnd) { Gas_ConstantND = val_gas_constantnd; } +inline void CConfig::SetGas_ConstantND(su2double val_gas_constantnd) { Gas_ConstantND = val_gas_constantnd; } -inline void CConfig::SetVelocity_FreeStreamND(double val_velocity_freestreamnd, unsigned short val_dim) { Velocity_FreeStreamND[val_dim] = val_velocity_freestreamnd; } +inline void CConfig::SetVelocity_FreeStreamND(su2double val_velocity_freestreamnd, unsigned short val_dim) { Velocity_FreeStreamND[val_dim] = val_velocity_freestreamnd; } -inline void CConfig::SetViscosity_FreeStreamND(double val_viscosity_freestreamnd) { Viscosity_FreeStreamND = val_viscosity_freestreamnd; } +inline void CConfig::SetViscosity_FreeStreamND(su2double val_viscosity_freestreamnd) { Viscosity_FreeStreamND = val_viscosity_freestreamnd; } -inline void CConfig::SetTke_FreeStreamND(double val_tke_freestreamnd) { Tke_FreeStreamND = val_tke_freestreamnd; } +inline void CConfig::SetTke_FreeStreamND(su2double val_tke_freestreamnd) { Tke_FreeStreamND = val_tke_freestreamnd; } -inline void CConfig::SetOmega_FreeStreamND(double val_omega_freestreamnd) { Omega_FreeStreamND = val_omega_freestreamnd; } +inline void CConfig::SetOmega_FreeStreamND(su2double val_omega_freestreamnd) { Omega_FreeStreamND = val_omega_freestreamnd; } -inline void CConfig::SetTke_FreeStream(double val_tke_freestream) { Tke_FreeStream = val_tke_freestream; } +inline void CConfig::SetTke_FreeStream(su2double val_tke_freestream) { Tke_FreeStream = val_tke_freestream; } -inline void CConfig::SetOmega_FreeStream(double val_omega_freestream) { Omega_FreeStream = val_omega_freestream; } +inline void CConfig::SetOmega_FreeStream(su2double val_omega_freestream) { Omega_FreeStream = val_omega_freestream; } -inline void CConfig::SetEnergy_FreeStreamND(double val_energy_freestreamnd) { Energy_FreeStreamND = val_energy_freestreamnd; } +inline void CConfig::SetEnergy_FreeStreamND(su2double val_energy_freestreamnd) { Energy_FreeStreamND = val_energy_freestreamnd; } -inline void CConfig::SetEnergy_FreeStream(double val_energy_freestream) { Energy_FreeStream = val_energy_freestream; } +inline void CConfig::SetEnergy_FreeStream(su2double val_energy_freestream) { Energy_FreeStream = val_energy_freestream; } -inline void CConfig::SetTotal_UnstTimeND(double val_total_unsttimend) { Total_UnstTimeND = val_total_unsttimend; } +inline void CConfig::SetTotal_UnstTimeND(su2double val_total_unsttimend) { Total_UnstTimeND = val_total_unsttimend; } -inline void CConfig::SetFroude(double val_froude) { Froude = val_froude; } +inline void CConfig::SetFroude(su2double val_froude) { Froude = val_froude; } -inline void CConfig::SetReynolds(double val_reynolds) { Reynolds = val_reynolds; } +inline void CConfig::SetReynolds(su2double val_reynolds) { Reynolds = val_reynolds; } -inline void CConfig::SetMach(double val_mach) { Mach = val_mach; } +inline void CConfig::SetMach(su2double val_mach) { Mach = val_mach; } -inline void CConfig::SetLength_Ref(double val_length_ref) { Length_Ref = val_length_ref; } +inline void CConfig::SetLength_Ref(su2double val_length_ref) { Length_Ref = val_length_ref; } -inline void CConfig::SetVelocity_Ref(double val_velocity_ref) { Velocity_Ref = val_velocity_ref; } +inline void CConfig::SetVelocity_Ref(su2double val_velocity_ref) { Velocity_Ref = val_velocity_ref; } -inline void CConfig::SetPressure_Ref(double val_pressure_ref) { Pressure_Ref = val_pressure_ref; } +inline void CConfig::SetPressure_Ref(su2double val_pressure_ref) { Pressure_Ref = val_pressure_ref; } -inline void CConfig::SetDensity_Ref(double val_density_ref) { Density_Ref = val_density_ref; } +inline void CConfig::SetDensity_Ref(su2double val_density_ref) { Density_Ref = val_density_ref; } -inline void CConfig::SetTemperature_Ref(double val_temperature_ref) { Temperature_Ref = val_temperature_ref; } +inline void CConfig::SetTemperature_Ref(su2double val_temperature_ref) { Temperature_Ref = val_temperature_ref; } -inline void CConfig::SetTime_Ref(double val_time_ref) { Time_Ref = val_time_ref; } +inline void CConfig::SetTime_Ref(su2double val_time_ref) { Time_Ref = val_time_ref; } -inline void CConfig::SetOmega_Ref(double val_omega_ref) { Omega_Ref = val_omega_ref; } +inline void CConfig::SetOmega_Ref(su2double val_omega_ref) { Omega_Ref = val_omega_ref; } -inline void CConfig::SetForce_Ref(double val_force_ref) { Force_Ref = val_force_ref; } +inline void CConfig::SetForce_Ref(su2double val_force_ref) { Force_Ref = val_force_ref; } -inline void CConfig::SetGas_Constant_Ref(double val_gas_constant_ref) { Gas_Constant_Ref = val_gas_constant_ref; } +inline void CConfig::SetGas_Constant_Ref(su2double val_gas_constant_ref) { Gas_Constant_Ref = val_gas_constant_ref; } -inline void CConfig::SetGas_Constant(double val_gas_constant) { Gas_Constant = val_gas_constant; } +inline void CConfig::SetGas_Constant(su2double val_gas_constant) { Gas_Constant = val_gas_constant; } -inline void CConfig::SetViscosity_Ref(double val_viscosity_ref) { Viscosity_Ref = val_viscosity_ref; } +inline void CConfig::SetViscosity_Ref(su2double val_viscosity_ref) { Viscosity_Ref = val_viscosity_ref; } -inline void CConfig::SetConductivity_Ref(double val_conductivity_ref) { Conductivity_Ref = val_conductivity_ref; } +inline void CConfig::SetConductivity_Ref(su2double val_conductivity_ref) { Conductivity_Ref = val_conductivity_ref; } -inline void CConfig::SetEnergy_Ref(double val_energy_ref) { Energy_Ref = val_energy_ref; } +inline void CConfig::SetEnergy_Ref(su2double val_energy_ref) { Energy_Ref = val_energy_ref; } -inline double CConfig::GetAoA(void) { return AoA; } +inline su2double CConfig::GetAoA(void) { return AoA; } -inline void CConfig::SetAoA(double val_AoA) { AoA = val_AoA; } +inline void CConfig::SetAoA(su2double val_AoA) { AoA = val_AoA; } -inline void CConfig::SetAoS(double val_AoS) { AoS = val_AoS; } +inline void CConfig::SetAoS(su2double val_AoS) { AoS = val_AoS; } -inline double CConfig::GetAoS(void) { return AoS; } +inline su2double CConfig::GetAoS(void) { return AoS; } inline unsigned short CConfig::GetnMGLevels(void) { return nMGLevels; } @@ -390,17 +390,17 @@ inline unsigned short CConfig::GetMGCycle(void) { return MGCycle; } inline unsigned short CConfig::GetGeometryMode(void) { return GeometryMode; } -inline double CConfig::GetCFL(unsigned short val_mesh) { return CFL[val_mesh]; } +inline su2double CConfig::GetCFL(unsigned short val_mesh) { return CFL[val_mesh]; } -inline void CConfig::SetCFL(unsigned short val_mesh, double val_cfl) { CFL[val_mesh] = val_cfl; } +inline void CConfig::SetCFL(unsigned short val_mesh, su2double val_cfl) { CFL[val_mesh] = val_cfl; } -inline double CConfig::GetUnst_CFL(void) { return Unst_CFL; } +inline su2double CConfig::GetUnst_CFL(void) { return Unst_CFL; } -inline double CConfig::GetMax_DeltaTime(void) { return Max_DeltaTime; } +inline su2double CConfig::GetMax_DeltaTime(void) { return Max_DeltaTime; } -inline double CConfig::GetParamDV(unsigned short val_dv, unsigned short val_param) { return ParamDV[val_dv][val_param]; } +inline su2double CConfig::GetParamDV(unsigned short val_dv, unsigned short val_param) { return ParamDV[val_dv][val_param]; } -inline double CConfig::GetCoordFFDBox(unsigned short val_ffd, unsigned short val_coord) { return CoordFFDBox[val_ffd][val_coord]; } +inline su2double CConfig::GetCoordFFDBox(unsigned short val_ffd, unsigned short val_coord) { return CoordFFDBox[val_ffd][val_coord]; } inline unsigned short CConfig::GetDegreeFFDBox(unsigned short val_ffd, unsigned short val_degree) { return DegreeFFDBox[val_ffd][val_degree]; } @@ -416,7 +416,7 @@ inline unsigned short CConfig::GetFFD_Continuity(void) { return FFD_Continuity; inline unsigned short CConfig::GetnRKStep(void) { return nRKStep; } -inline double CConfig::Get_Alpha_RKStep(unsigned short val_step) { return RK_Alpha_Step[val_step]; } +inline su2double CConfig::Get_Alpha_RKStep(unsigned short val_step) { return RK_Alpha_Step[val_step]; } inline unsigned short CConfig::GetMG_PreSmooth(unsigned short val_mesh) { if (nMG_PreSmooth == 0) return 1; @@ -463,147 +463,147 @@ inline unsigned short CConfig::GetKind_FreeStreamOption(void) {return Kind_FreeS inline unsigned short CConfig::GetKind_InitOption(void) {return Kind_InitOption; } -inline double CConfig::GetPressure_Critical(void) { return Pressure_Critical; } +inline su2double CConfig::GetPressure_Critical(void) { return Pressure_Critical; } -inline double CConfig::GetTemperature_Critical(void) { return Temperature_Critical; } +inline su2double CConfig::GetTemperature_Critical(void) { return Temperature_Critical; } -inline double CConfig::GetAcentric_Factor(void) { return Acentric_Factor; } +inline su2double CConfig::GetAcentric_Factor(void) { return Acentric_Factor; } inline unsigned short CConfig::GetKind_ViscosityModel(void) { return Kind_ViscosityModel; } inline unsigned short CConfig::GetKind_ConductivityModel(void) { return Kind_ConductivityModel; } -inline double CConfig::GetMu_ConstantND(void) { return Mu_ConstantND; } +inline su2double CConfig::GetMu_ConstantND(void) { return Mu_ConstantND; } -inline double CConfig::GetKt_ConstantND(void) { return Kt_ConstantND; } +inline su2double CConfig::GetKt_ConstantND(void) { return Kt_ConstantND; } -inline double CConfig::GetMu_RefND(void) { return Mu_RefND; } +inline su2double CConfig::GetMu_RefND(void) { return Mu_RefND; } -inline double CConfig::GetMu_Temperature_RefND(void) { return Mu_Temperature_RefND; } +inline su2double CConfig::GetMu_Temperature_RefND(void) { return Mu_Temperature_RefND; } -inline double CConfig::GetMu_SND(void) { return Mu_SND; } +inline su2double CConfig::GetMu_SND(void) { return Mu_SND; } -inline void CConfig::SetMu_ConstantND(double mu_const) { Mu_ConstantND = mu_const; } +inline void CConfig::SetMu_ConstantND(su2double mu_const) { Mu_ConstantND = mu_const; } -inline void CConfig::SetMu_RefND(double mu_ref) { Mu_RefND = mu_ref; } +inline void CConfig::SetMu_RefND(su2double mu_ref) { Mu_RefND = mu_ref; } -inline void CConfig::SetMu_Temperature_RefND(double mu_Tref) {Mu_Temperature_RefND = mu_Tref; } +inline void CConfig::SetMu_Temperature_RefND(su2double mu_Tref) {Mu_Temperature_RefND = mu_Tref; } -inline void CConfig::SetMu_SND(double mu_s) {Mu_SND = mu_s; } +inline void CConfig::SetMu_SND(su2double mu_s) {Mu_SND = mu_s; } -inline void CConfig::SetKt_ConstantND(double kt_const) { Kt_ConstantND = kt_const; } +inline void CConfig::SetKt_ConstantND(su2double kt_const) { Kt_ConstantND = kt_const; } inline unsigned short CConfig::GetKind_GridMovement(unsigned short val_iZone) { return Kind_GridMovement[val_iZone]; } inline void CConfig::SetKind_GridMovement(unsigned short val_iZone, unsigned short motion_Type) { Kind_GridMovement[val_iZone] = motion_Type; } -inline double CConfig::GetMach_Motion(void) { return Mach_Motion; } +inline su2double CConfig::GetMach_Motion(void) { return Mach_Motion; } -inline double CConfig::GetMotion_Origin_X(unsigned short val_iZone) { return Motion_Origin_X[val_iZone]; } +inline su2double CConfig::GetMotion_Origin_X(unsigned short val_iZone) { return Motion_Origin_X[val_iZone]; } -inline double CConfig::GetMotion_Origin_Y(unsigned short val_iZone) { return Motion_Origin_Y[val_iZone]; } +inline su2double CConfig::GetMotion_Origin_Y(unsigned short val_iZone) { return Motion_Origin_Y[val_iZone]; } -inline double CConfig::GetMotion_Origin_Z(unsigned short val_iZone) { return Motion_Origin_Z[val_iZone]; } +inline su2double CConfig::GetMotion_Origin_Z(unsigned short val_iZone) { return Motion_Origin_Z[val_iZone]; } -inline void CConfig::SetMotion_Origin_X(unsigned short val_iZone, double val_origin) { Motion_Origin_X[val_iZone] = val_origin; } +inline void CConfig::SetMotion_Origin_X(unsigned short val_iZone, su2double val_origin) { Motion_Origin_X[val_iZone] = val_origin; } -inline void CConfig::SetMotion_Origin_Y(unsigned short val_iZone, double val_origin) { Motion_Origin_Y[val_iZone] = val_origin; } +inline void CConfig::SetMotion_Origin_Y(unsigned short val_iZone, su2double val_origin) { Motion_Origin_Y[val_iZone] = val_origin; } -inline void CConfig::SetMotion_Origin_Z(unsigned short val_iZone, double val_origin) { Motion_Origin_Z[val_iZone] = val_origin; } +inline void CConfig::SetMotion_Origin_Z(unsigned short val_iZone, su2double val_origin) { Motion_Origin_Z[val_iZone] = val_origin; } -inline double CConfig::GetTranslation_Rate_X(unsigned short val_iZone) { return Translation_Rate_X[val_iZone]; } +inline su2double CConfig::GetTranslation_Rate_X(unsigned short val_iZone) { return Translation_Rate_X[val_iZone]; } -inline double CConfig::GetTranslation_Rate_Y(unsigned short val_iZone) { return Translation_Rate_Y[val_iZone]; } +inline su2double CConfig::GetTranslation_Rate_Y(unsigned short val_iZone) { return Translation_Rate_Y[val_iZone]; } -inline double CConfig::GetTranslation_Rate_Z(unsigned short val_iZone) { return Translation_Rate_Z[val_iZone]; } +inline su2double CConfig::GetTranslation_Rate_Z(unsigned short val_iZone) { return Translation_Rate_Z[val_iZone]; } -inline double CConfig::GetRotation_Rate_X(unsigned short val_iZone) { return Rotation_Rate_X[val_iZone]; } +inline su2double CConfig::GetRotation_Rate_X(unsigned short val_iZone) { return Rotation_Rate_X[val_iZone]; } -inline double CConfig::GetRotation_Rate_Y(unsigned short val_iZone) { return Rotation_Rate_Y[val_iZone]; } +inline su2double CConfig::GetRotation_Rate_Y(unsigned short val_iZone) { return Rotation_Rate_Y[val_iZone]; } -inline double CConfig::GetRotation_Rate_Z(unsigned short val_iZone) { return Rotation_Rate_Z[val_iZone]; } +inline su2double CConfig::GetRotation_Rate_Z(unsigned short val_iZone) { return Rotation_Rate_Z[val_iZone]; } -inline double CConfig::GetPitching_Omega_X(unsigned short val_iZone) { return Pitching_Omega_X[val_iZone]; } +inline su2double CConfig::GetPitching_Omega_X(unsigned short val_iZone) { return Pitching_Omega_X[val_iZone]; } -inline double CConfig::GetPitching_Omega_Y(unsigned short val_iZone) { return Pitching_Omega_Y[val_iZone]; } +inline su2double CConfig::GetPitching_Omega_Y(unsigned short val_iZone) { return Pitching_Omega_Y[val_iZone]; } -inline double CConfig::GetPitching_Omega_Z(unsigned short val_iZone) { return Pitching_Omega_Z[val_iZone]; } +inline su2double CConfig::GetPitching_Omega_Z(unsigned short val_iZone) { return Pitching_Omega_Z[val_iZone]; } -inline double CConfig::GetPitching_Ampl_X(unsigned short val_iZone) { return Pitching_Ampl_X[val_iZone]; } +inline su2double CConfig::GetPitching_Ampl_X(unsigned short val_iZone) { return Pitching_Ampl_X[val_iZone]; } -inline double CConfig::GetPitching_Ampl_Y(unsigned short val_iZone) { return Pitching_Ampl_Y[val_iZone]; } +inline su2double CConfig::GetPitching_Ampl_Y(unsigned short val_iZone) { return Pitching_Ampl_Y[val_iZone]; } -inline double CConfig::GetPitching_Ampl_Z(unsigned short val_iZone) { return Pitching_Ampl_Z[val_iZone]; } +inline su2double CConfig::GetPitching_Ampl_Z(unsigned short val_iZone) { return Pitching_Ampl_Z[val_iZone]; } -inline double CConfig::GetPitching_Phase_X(unsigned short val_iZone) { return Pitching_Phase_X[val_iZone]; } +inline su2double CConfig::GetPitching_Phase_X(unsigned short val_iZone) { return Pitching_Phase_X[val_iZone]; } -inline double CConfig::GetPitching_Phase_Y(unsigned short val_iZone) { return Pitching_Phase_Y[val_iZone]; } +inline su2double CConfig::GetPitching_Phase_Y(unsigned short val_iZone) { return Pitching_Phase_Y[val_iZone]; } -inline double CConfig::GetPitching_Phase_Z(unsigned short val_iZone) { return Pitching_Phase_Z[val_iZone]; } +inline su2double CConfig::GetPitching_Phase_Z(unsigned short val_iZone) { return Pitching_Phase_Z[val_iZone]; } -inline double CConfig::GetPlunging_Omega_X(unsigned short val_iZone) { return Plunging_Omega_X[val_iZone]; } +inline su2double CConfig::GetPlunging_Omega_X(unsigned short val_iZone) { return Plunging_Omega_X[val_iZone]; } -inline double CConfig::GetPlunging_Omega_Y(unsigned short val_iZone) { return Plunging_Omega_Y[val_iZone]; } +inline su2double CConfig::GetPlunging_Omega_Y(unsigned short val_iZone) { return Plunging_Omega_Y[val_iZone]; } -inline double CConfig::GetPlunging_Omega_Z(unsigned short val_iZone) { return Plunging_Omega_Z[val_iZone]; } +inline su2double CConfig::GetPlunging_Omega_Z(unsigned short val_iZone) { return Plunging_Omega_Z[val_iZone]; } -inline double CConfig::GetPlunging_Ampl_X(unsigned short val_iZone) { return Plunging_Ampl_X[val_iZone]; } +inline su2double CConfig::GetPlunging_Ampl_X(unsigned short val_iZone) { return Plunging_Ampl_X[val_iZone]; } -inline double CConfig::GetPlunging_Ampl_Y(unsigned short val_iZone) { return Plunging_Ampl_Y[val_iZone]; } +inline su2double CConfig::GetPlunging_Ampl_Y(unsigned short val_iZone) { return Plunging_Ampl_Y[val_iZone]; } -inline double CConfig::GetPlunging_Ampl_Z(unsigned short val_iZone) { return Plunging_Ampl_Z[val_iZone]; } +inline su2double CConfig::GetPlunging_Ampl_Z(unsigned short val_iZone) { return Plunging_Ampl_Z[val_iZone]; } inline unsigned short CConfig::GetMoveMotion_Origin(unsigned short val_marker) {return MoveMotion_Origin[val_marker]; } -inline double CConfig::GetminTurkelBeta() { return Min_Beta_RoeTurkel; } +inline su2double CConfig::GetminTurkelBeta() { return Min_Beta_RoeTurkel; } -inline double CConfig::GetmaxTurkelBeta() { return Max_Beta_RoeTurkel; } +inline su2double CConfig::GetmaxTurkelBeta() { return Max_Beta_RoeTurkel; } inline unsigned short CConfig::GetnSpecies(void) { return nSpecies; } inline unsigned short CConfig::GetnReactions(void) { return nReactions; } -inline double CConfig::GetArrheniusCoeff(unsigned short iReaction) { return ArrheniusCoefficient[iReaction]; } +inline su2double CConfig::GetArrheniusCoeff(unsigned short iReaction) { return ArrheniusCoefficient[iReaction]; } -inline double CConfig::GetArrheniusEta(unsigned short iReaction) { return ArrheniusEta[iReaction]; } +inline su2double CConfig::GetArrheniusEta(unsigned short iReaction) { return ArrheniusEta[iReaction]; } -inline double CConfig::GetArrheniusTheta(unsigned short iReaction) { return ArrheniusTheta[iReaction]; } +inline su2double CConfig::GetArrheniusTheta(unsigned short iReaction) { return ArrheniusTheta[iReaction]; } -inline double* CConfig::GetRxnTcf_a(void) { return Tcf_a; } +inline su2double* CConfig::GetRxnTcf_a(void) { return Tcf_a; } -inline double* CConfig::GetRxnTcf_b(void) { return Tcf_b; } +inline su2double* CConfig::GetRxnTcf_b(void) { return Tcf_b; } -inline double* CConfig::GetRxnTcb_a(void) { return Tcb_a; } +inline su2double* CConfig::GetRxnTcb_a(void) { return Tcb_a; } -inline double* CConfig::GetRxnTcb_b(void) { return Tcb_b; } +inline su2double* CConfig::GetRxnTcb_b(void) { return Tcb_b; } -inline double* CConfig::GetDissociationPot(void) { return Diss; } +inline su2double* CConfig::GetDissociationPot(void) { return Diss; } -inline double CConfig::GetCharVibTemp(unsigned short iSpecies) {return CharVibTemp[iSpecies]; } +inline su2double CConfig::GetCharVibTemp(unsigned short iSpecies) {return CharVibTemp[iSpecies]; } -inline double* CConfig::GetCharVibTemp() {return CharVibTemp; } +inline su2double* CConfig::GetCharVibTemp() {return CharVibTemp; } -inline double** CConfig::GetCharElTemp() {return CharElTemp; } +inline su2double** CConfig::GetCharElTemp() {return CharElTemp; } inline unsigned short* CConfig::GetnElStates() {return nElStates; } -inline double** CConfig::GetElDegeneracy() {return degen; } +inline su2double** CConfig::GetElDegeneracy() {return degen; } -inline double* CConfig::GetRotationModes() { return RotationModes; } +inline su2double* CConfig::GetRotationModes() { return RotationModes; } -inline double* CConfig::GetRefTemperature() { return Ref_Temperature; } +inline su2double* CConfig::GetRefTemperature() { return Ref_Temperature; } -inline double* CConfig::GetWall_Catalycity() { return Wall_Catalycity; } +inline su2double* CConfig::GetWall_Catalycity() { return Wall_Catalycity; } -inline double* CConfig::GetMolar_Mass() { return Molar_Mass; } +inline su2double* CConfig::GetMolar_Mass() { return Molar_Mass; } -inline double CConfig::GetMolar_Mass(unsigned short iSpecies) { return Molar_Mass[iSpecies]; } +inline su2double CConfig::GetMolar_Mass(unsigned short iSpecies) { return Molar_Mass[iSpecies]; } -inline double CConfig::GetInitial_Gas_Composition(unsigned short iSpecies) { return Gas_Composition[iSpecies]; } +inline su2double CConfig::GetInitial_Gas_Composition(unsigned short iSpecies) { return Gas_Composition[iSpecies]; } -inline double* CConfig::GetEnthalpy_Formation(void) { return Enthalpy_Formation; } +inline su2double* CConfig::GetEnthalpy_Formation(void) { return Enthalpy_Formation; } -inline double CConfig::GetEnthalpy_Formation(unsigned short iSpecies) { return Enthalpy_Formation[iSpecies]; } +inline su2double CConfig::GetEnthalpy_Formation(unsigned short iSpecies) { return Enthalpy_Formation[iSpecies]; } inline unsigned short CConfig::GetKind_Gradient_Method(void) { return Kind_Gradient_Method; } @@ -615,19 +615,19 @@ inline unsigned short CConfig::GetKind_Linear_Solver_Prec(void) { return Kind_Li inline void CConfig::SetKind_Linear_Solver_Prec(unsigned short val_kind_prec) { Kind_Linear_Solver_Prec = val_kind_prec; } -inline double CConfig::GetLinear_Solver_Error(void) { return Linear_Solver_Error; } +inline su2double CConfig::GetLinear_Solver_Error(void) { return Linear_Solver_Error; } inline unsigned long CConfig::GetLinear_Solver_Iter(void) { return Linear_Solver_Iter; } inline unsigned long CConfig::GetLinear_Solver_Restart_Frequency(void) { return Linear_Solver_Restart_Frequency; } -inline double CConfig::GetRelaxation_Factor_Flow(void) { return Relaxation_Factor_Flow; } +inline su2double CConfig::GetRelaxation_Factor_Flow(void) { return Relaxation_Factor_Flow; } -inline double CConfig::GetRelaxation_Factor_AdjFlow(void) { return Relaxation_Factor_AdjFlow; } +inline su2double CConfig::GetRelaxation_Factor_AdjFlow(void) { return Relaxation_Factor_AdjFlow; } -inline double CConfig::GetRelaxation_Factor_Turb(void) { return Relaxation_Factor_Turb; } +inline su2double CConfig::GetRelaxation_Factor_Turb(void) { return Relaxation_Factor_Turb; } -inline double CConfig::GetRoe_Kappa(void) { return Roe_Kappa; } +inline su2double CConfig::GetRoe_Kappa(void) { return Roe_Kappa; } inline unsigned short CConfig::GetKind_AdjTurb_Linear_Solver(void) { return Kind_AdjTurb_Linear_Solver; } @@ -635,13 +635,13 @@ inline unsigned short CConfig::GetKind_AdjTurb_Linear_Prec(void) { return Kind_A inline void CConfig::SetKind_AdjTurb_Linear_Prec(unsigned short val_kind_prec) { Kind_AdjTurb_Linear_Prec = val_kind_prec; } -inline double CConfig::GetAdjTurb_Linear_Error(void) { return AdjTurb_Linear_Error; } +inline su2double CConfig::GetAdjTurb_Linear_Error(void) { return AdjTurb_Linear_Error; } -inline double CConfig::GetEntropyFix_Coeff(void) { return EntropyFix_Coeff; } +inline su2double CConfig::GetEntropyFix_Coeff(void) { return EntropyFix_Coeff; } inline unsigned short CConfig::GetAdjTurb_Linear_Iter(void) { return AdjTurb_Linear_Iter; } -inline double CConfig::GetCFLRedCoeff_AdjTurb(void) { return CFLRedCoeff_AdjTurb; } +inline su2double CConfig::GetCFLRedCoeff_AdjTurb(void) { return CFLRedCoeff_AdjTurb; } inline unsigned long CConfig::GetGridDef_Linear_Iter(void) { return GridDef_Linear_Iter; } @@ -649,11 +649,11 @@ inline unsigned long CConfig::GetGridDef_Nonlinear_Iter(void) { return GridDef_N inline bool CConfig::GetDeform_Output(void) { return Deform_Output; } -inline double CConfig::GetDeform_Tol_Factor(void) { return Deform_Tol_Factor; } +inline su2double CConfig::GetDeform_Tol_Factor(void) { return Deform_Tol_Factor; } -inline double CConfig::GetDeform_ElasticityMod(void) { return Deform_ElasticityMod; } +inline su2double CConfig::GetDeform_ElasticityMod(void) { return Deform_ElasticityMod; } -inline double CConfig::GetDeform_PoissonRatio(void) { return Deform_PoissonRatio; } +inline su2double CConfig::GetDeform_PoissonRatio(void) { return Deform_PoissonRatio; } inline unsigned short CConfig::GetDeform_Stiffness_Type(void) { return Deform_Stiffness_Type; } @@ -661,7 +661,7 @@ inline bool CConfig::GetVisualize_Deformation(void) { return Visualize_Deformati inline unsigned short CConfig::GetKind_Adaptation(void) { return Kind_Adaptation; } -inline double CConfig::GetNew_Elem_Adapt(void) { return New_Elem_Adapt; } +inline su2double CConfig::GetNew_Elem_Adapt(void) { return New_Elem_Adapt; } inline unsigned short CConfig::GetKind_TimeIntScheme(void) { return Kind_TimeNumScheme; } @@ -739,27 +739,27 @@ inline unsigned short CConfig::GetKind_Upwind_AdjTNE2(void) { return Kind_Upwind inline unsigned short CConfig::GetKind_Upwind_AdjLevelSet(void) { return Kind_Upwind_AdjLevelSet; } -inline double CConfig::GetKappa_1st_Flow(void) { return Kappa_1st_Flow; } +inline su2double CConfig::GetKappa_1st_Flow(void) { return Kappa_1st_Flow; } -inline double CConfig::GetKappa_2nd_Flow(void) { return Kappa_2nd_Flow; } +inline su2double CConfig::GetKappa_2nd_Flow(void) { return Kappa_2nd_Flow; } -inline double CConfig::GetKappa_4th_Flow(void) { return Kappa_4th_Flow; } +inline su2double CConfig::GetKappa_4th_Flow(void) { return Kappa_4th_Flow; } -inline double CConfig::GetKappa_1st_AdjTNE2(void) { return Kappa_1st_AdjTNE2; } +inline su2double CConfig::GetKappa_1st_AdjTNE2(void) { return Kappa_1st_AdjTNE2; } -inline double CConfig::GetKappa_2nd_AdjTNE2(void) { return Kappa_2nd_AdjTNE2; } +inline su2double CConfig::GetKappa_2nd_AdjTNE2(void) { return Kappa_2nd_AdjTNE2; } -inline double CConfig::GetKappa_4th_AdjTNE2(void) { return Kappa_4th_AdjTNE2; } +inline su2double CConfig::GetKappa_4th_AdjTNE2(void) { return Kappa_4th_AdjTNE2; } inline unsigned short CConfig::GetKind_TimeIntScheme_AdjFlow(void) { return Kind_TimeIntScheme_AdjFlow; } inline unsigned short CConfig::GetKind_ConvNumScheme_AdjFlow(void) { return Kind_ConvNumScheme_AdjFlow; } -inline double CConfig::GetKappa_1st_TNE2(void) { return Kappa_1st_TNE2; } +inline su2double CConfig::GetKappa_1st_TNE2(void) { return Kappa_1st_TNE2; } -inline double CConfig::GetKappa_2nd_TNE2(void) { return Kappa_2nd_TNE2; } +inline su2double CConfig::GetKappa_2nd_TNE2(void) { return Kappa_2nd_TNE2; } -inline double CConfig::GetKappa_4th_TNE2(void) { return Kappa_4th_TNE2; } +inline su2double CConfig::GetKappa_4th_TNE2(void) { return Kappa_4th_TNE2; } inline unsigned short CConfig::GetKind_TimeIntScheme_AdjTNE2(void) { return Kind_TimeIntScheme_AdjTNE2; } @@ -769,11 +769,11 @@ inline unsigned short CConfig::GetKind_Centered_AdjFlow(void) { return Kind_Cent inline unsigned short CConfig::GetKind_Upwind_AdjFlow(void) { return Kind_Upwind_AdjFlow; } -inline double CConfig::GetKappa_1st_AdjFlow(void) { return Kappa_1st_AdjFlow; } +inline su2double CConfig::GetKappa_1st_AdjFlow(void) { return Kappa_1st_AdjFlow; } -inline double CConfig::GetKappa_2nd_AdjFlow(void) { return Kappa_2nd_AdjFlow; } +inline su2double CConfig::GetKappa_2nd_AdjFlow(void) { return Kappa_2nd_AdjFlow; } -inline double CConfig::GetKappa_4th_AdjFlow(void) { return Kappa_4th_AdjFlow; } +inline su2double CConfig::GetKappa_4th_AdjFlow(void) { return Kappa_4th_AdjFlow; } inline unsigned short CConfig::GetKind_TimeIntScheme_LinFlow(void) { return Kind_TimeIntScheme_LinFlow; } @@ -783,9 +783,9 @@ inline unsigned short CConfig::GetKind_Centered_LinFlow(void) { return Kind_Cent inline unsigned short CConfig::GetKind_Upwind_LinFlow(void) { return Kind_Upwind_LinFlow; } -inline double CConfig::GetKappa_4th_LinFlow(void) { return Kappa_4th_LinFlow; } +inline su2double CConfig::GetKappa_4th_LinFlow(void) { return Kappa_4th_LinFlow; } -inline double CConfig::GetKappa_1st_LinFlow(void) { return Kappa_1st_LinFlow; } +inline su2double CConfig::GetKappa_1st_LinFlow(void) { return Kappa_1st_LinFlow; } inline unsigned short CConfig::GetKind_TimeIntScheme_Turb(void) { return Kind_TimeIntScheme_Turb; } @@ -999,45 +999,45 @@ inline unsigned short CConfig::GetCauchy_Elems(void) { return Cauchy_Elems; } inline unsigned long CConfig::GetStartConv_Iter(void) { return StartConv_Iter; } -inline double CConfig::GetCauchy_Eps(void) { return Cauchy_Eps; } +inline su2double CConfig::GetCauchy_Eps(void) { return Cauchy_Eps; } -inline double CConfig::GetDelta_UnstTimeND(void) { return Delta_UnstTimeND; } +inline su2double CConfig::GetDelta_UnstTimeND(void) { return Delta_UnstTimeND; } -inline double CConfig::GetTotal_UnstTimeND(void) { return Total_UnstTimeND; } +inline su2double CConfig::GetTotal_UnstTimeND(void) { return Total_UnstTimeND; } -inline double CConfig::GetDelta_UnstTime(void) { return Delta_UnstTime; } +inline su2double CConfig::GetDelta_UnstTime(void) { return Delta_UnstTime; } -inline double CConfig::GetCurrent_UnstTime(void) { return Current_UnstTime; } +inline su2double CConfig::GetCurrent_UnstTime(void) { return Current_UnstTime; } -inline void CConfig::SetDelta_UnstTimeND(double val_delta_unsttimend) { Delta_UnstTimeND = val_delta_unsttimend; } +inline void CConfig::SetDelta_UnstTimeND(su2double val_delta_unsttimend) { Delta_UnstTimeND = val_delta_unsttimend; } -inline double CConfig::GetTotal_UnstTime(void) { return Total_UnstTime; } +inline su2double CConfig::GetTotal_UnstTime(void) { return Total_UnstTime; } inline bool CConfig::GetEngine_Intake(void) { return Engine_Intake; } -inline double CConfig::GetDV_Value(unsigned short val_dv) { return DV_Value[val_dv]; } +inline su2double CConfig::GetDV_Value(unsigned short val_dv) { return DV_Value[val_dv]; } -inline double CConfig::GetOrderMagResidual(void) { return OrderMagResidual; } +inline su2double CConfig::GetOrderMagResidual(void) { return OrderMagResidual; } -inline double CConfig::GetMinLogResidual(void) { return MinLogResidual; } +inline su2double CConfig::GetMinLogResidual(void) { return MinLogResidual; } -inline double CConfig::GetDamp_Engine_Inflow(void) { return Damp_Engine_Inflow; } +inline su2double CConfig::GetDamp_Engine_Inflow(void) { return Damp_Engine_Inflow; } -inline double CConfig::GetDamp_Engine_Bleed(void) { return Damp_Engine_Bleed; } +inline su2double CConfig::GetDamp_Engine_Bleed(void) { return Damp_Engine_Bleed; } -inline double CConfig::GetDamp_Engine_Exhaust(void) { return Damp_Engine_Exhaust; } +inline su2double CConfig::GetDamp_Engine_Exhaust(void) { return Damp_Engine_Exhaust; } -inline double CConfig::GetDamp_Res_Restric(void) { return Damp_Res_Restric; } +inline su2double CConfig::GetDamp_Res_Restric(void) { return Damp_Res_Restric; } -inline double CConfig::GetDamp_Correc_Prolong(void) { return Damp_Correc_Prolong; } +inline su2double CConfig::GetDamp_Correc_Prolong(void) { return Damp_Correc_Prolong; } -inline double CConfig::GetPosition_Plane(void) { return Position_Plane; } +inline su2double CConfig::GetPosition_Plane(void) { return Position_Plane; } -inline double CConfig::GetWeightCd(void) { return WeightCd; } +inline su2double CConfig::GetWeightCd(void) { return WeightCd; } -inline double CConfig::GetFixAzimuthalLine(void) { return FixAzimuthalLine; } +inline su2double CConfig::GetFixAzimuthalLine(void) { return FixAzimuthalLine; } -inline double CConfig::GetCFLRedCoeff_Turb(void) { return CFLRedCoeff_Turb; } +inline su2double CConfig::GetCFLRedCoeff_Turb(void) { return CFLRedCoeff_Turb; } inline bool CConfig::GetGrid_Movement(void) { return Grid_Movement; } @@ -1087,21 +1087,21 @@ inline bool CConfig::GetHold_GridFixed(void) { return Hold_GridFixed; } inline unsigned short CConfig::GetnPeriodicIndex(void) { return nPeriodic_Index; } -inline double* CConfig::GetPeriodicCenter(unsigned short val_index) { return Periodic_Center[val_index]; } +inline su2double* CConfig::GetPeriodicCenter(unsigned short val_index) { return Periodic_Center[val_index]; } -inline void CConfig::SetPeriodicCenter(unsigned short val_index, double* center) { Periodic_Center[val_index] = center; } +inline void CConfig::SetPeriodicCenter(unsigned short val_index, su2double* center) { Periodic_Center[val_index] = center; } -inline double* CConfig::GetPeriodicRotation(unsigned short val_index) { return Periodic_Rotation[val_index]; } +inline su2double* CConfig::GetPeriodicRotation(unsigned short val_index) { return Periodic_Rotation[val_index]; } -inline void CConfig::SetPeriodicRotation(unsigned short val_index, double* rotation) { Periodic_Rotation[val_index] = rotation; } +inline void CConfig::SetPeriodicRotation(unsigned short val_index, su2double* rotation) { Periodic_Rotation[val_index] = rotation; } -inline double* CConfig::GetPeriodicTranslate(unsigned short val_index) { return Periodic_Translate[val_index]; } +inline su2double* CConfig::GetPeriodicTranslate(unsigned short val_index) { return Periodic_Translate[val_index]; } -inline void CConfig::SetPeriodicTranslate(unsigned short val_index, double* translate) { Periodic_Translate[val_index] = translate; } +inline void CConfig::SetPeriodicTranslate(unsigned short val_index, su2double* translate) { Periodic_Translate[val_index] = translate; } -inline double CConfig::GetCyclic_Pitch(void) { return Cyclic_Pitch; } +inline su2double CConfig::GetCyclic_Pitch(void) { return Cyclic_Pitch; } -inline double CConfig::GetCollective_Pitch(void) { return Collective_Pitch; } +inline su2double CConfig::GetCollective_Pitch(void) { return Collective_Pitch; } inline string CConfig::GetMotion_FileName(void) { return Motion_Filename; } @@ -1125,21 +1125,21 @@ inline bool CConfig::GetPlot_Section_Forces(void) { return Plot_Section_Forces; inline bool CConfig::GetWrt_1D_Output(void) { return Wrt_1D_Output; } -inline vector > CConfig::GetAeroelastic_np1(unsigned short iMarker) {return Aeroelastic_np1[iMarker]; } +inline vector > CConfig::GetAeroelastic_np1(unsigned short iMarker) {return Aeroelastic_np1[iMarker]; } -inline vector > CConfig::GetAeroelastic_n(unsigned short iMarker) {return Aeroelastic_n[iMarker]; } +inline vector > CConfig::GetAeroelastic_n(unsigned short iMarker) {return Aeroelastic_n[iMarker]; } -inline vector > CConfig::GetAeroelastic_n1(unsigned short iMarker) {return Aeroelastic_n1[iMarker]; } +inline vector > CConfig::GetAeroelastic_n1(unsigned short iMarker) {return Aeroelastic_n1[iMarker]; } -inline void CConfig::SetAeroelastic_np1(unsigned short iMarker, vector > solution) {Aeroelastic_np1[iMarker] = solution;} +inline void CConfig::SetAeroelastic_np1(unsigned short iMarker, vector > solution) {Aeroelastic_np1[iMarker] = solution;} -inline double CConfig::GetAeroelastic_plunge(unsigned short val_marker) {return Aeroelastic_plunge[val_marker]; } +inline su2double CConfig::GetAeroelastic_plunge(unsigned short val_marker) {return Aeroelastic_plunge[val_marker]; } -inline double CConfig::GetAeroelastic_pitch(unsigned short val_marker) {return Aeroelastic_pitch[val_marker]; } +inline su2double CConfig::GetAeroelastic_pitch(unsigned short val_marker) {return Aeroelastic_pitch[val_marker]; } -inline void CConfig::SetAeroelastic_plunge(unsigned short val_marker, double val) {Aeroelastic_plunge[val_marker] = val; } +inline void CConfig::SetAeroelastic_plunge(unsigned short val_marker, su2double val) {Aeroelastic_plunge[val_marker] = val; } -inline void CConfig::SetAeroelastic_pitch(unsigned short val_marker, double val) {Aeroelastic_pitch[val_marker] = val; } +inline void CConfig::SetAeroelastic_pitch(unsigned short val_marker, su2double val) {Aeroelastic_pitch[val_marker] = val; } inline void CConfig::SetAeroelastic_n1(void) { Aeroelastic_n1 = Aeroelastic_n; @@ -1149,9 +1149,9 @@ inline void CConfig::SetAeroelastic_n(void) { Aeroelastic_n = Aeroelastic_np1; } -inline double CConfig::GetAeroelastic_Frequency_Plunge(void) {return FreqPlungeAeroelastic; } +inline su2double CConfig::GetAeroelastic_Frequency_Plunge(void) {return FreqPlungeAeroelastic; } -inline double CConfig::GetAeroelastic_Frequency_Pitch(void) {return FreqPitchAeroelastic; } +inline su2double CConfig::GetAeroelastic_Frequency_Pitch(void) {return FreqPitchAeroelastic; } inline bool CConfig::GetWind_Gust(void) { return Wind_Gust; } @@ -1161,27 +1161,27 @@ inline unsigned short CConfig::GetGust_Type(void) {return Gust_Type; } inline unsigned short CConfig::GetGust_Dir(void) {return Gust_Dir; } -inline double CConfig::GetGust_WaveLength(void) {return Gust_WaveLength; } +inline su2double CConfig::GetGust_WaveLength(void) {return Gust_WaveLength; } -inline double CConfig::GetGust_Periods(void) {return Gust_Periods; } +inline su2double CConfig::GetGust_Periods(void) {return Gust_Periods; } -inline double CConfig::GetGust_Ampl(void) {return Gust_Ampl; } +inline su2double CConfig::GetGust_Ampl(void) {return Gust_Ampl; } -inline double CConfig::GetGust_Begin_Time(void) {return Gust_Begin_Time; } +inline su2double CConfig::GetGust_Begin_Time(void) {return Gust_Begin_Time; } -inline double CConfig::GetGust_Begin_Loc(void) {return Gust_Begin_Loc; } +inline su2double CConfig::GetGust_Begin_Loc(void) {return Gust_Begin_Loc; } inline unsigned short CConfig::GetnFFD_Iter(void) {return nFFD_Iter; } -inline double CConfig::GetFFD_Tol(void) {return FFD_Tol; } +inline su2double CConfig::GetFFD_Tol(void) {return FFD_Tol; } inline long CConfig::GetVisualize_CV(void) {return Visualize_CV; } inline bool CConfig::GetFixed_CL_Mode(void) { return Fixed_CL_Mode; } -inline double CConfig::GetTarget_CL(void) {return Target_CL; } +inline su2double CConfig::GetTarget_CL(void) {return Target_CL; } -inline double CConfig::GetDamp_Fixed_CL(void) {return Damp_Fixed_CL; } +inline su2double CConfig::GetDamp_Fixed_CL(void) {return Damp_Fixed_CL; } inline unsigned long CConfig::GetIter_Fixed_CL(void) {return Iter_Fixed_CL; } @@ -1201,9 +1201,9 @@ inline unsigned short CConfig::GetConsole_Output_Verb(void) { return Console_Out inline unsigned short CConfig::GetnIterFSI(void) { return nIterFSI; } -inline double CConfig::GetAitkenStatRelax(void) { return AitkenStatRelax; } +inline su2double CConfig::GetAitkenStatRelax(void) { return AitkenStatRelax; } -inline double CConfig::GetAitkenDynMaxInit(void) { return AitkenDynMaxInit; } +inline su2double CConfig::GetAitkenDynMaxInit(void) { return AitkenDynMaxInit; } inline bool CConfig::GetDeadLoad(void) { return DeadLoad; } @@ -1211,25 +1211,25 @@ inline bool CConfig::GetMatchingMesh(void) { return MatchingMesh; } inline unsigned short CConfig::GetDynamic_Analysis(void) { return Dynamic_Analysis; } -inline double CConfig::GetDelta_DynTime(void) { return Delta_DynTime; } +inline su2double CConfig::GetDelta_DynTime(void) { return Delta_DynTime; } -inline double CConfig::GetTotal_DynTime(void) { return Total_DynTime; } +inline su2double CConfig::GetTotal_DynTime(void) { return Total_DynTime; } -inline double CConfig::GetCurrent_DynTime(void) { return Current_DynTime; } +inline su2double CConfig::GetCurrent_DynTime(void) { return Current_DynTime; } inline bool CConfig::GetWrt_Dynamic(void) { return Wrt_Dynamic; } -inline double CConfig::GetNewmark_alpha(void) { return Newmark_alpha; } +inline su2double CConfig::GetNewmark_alpha(void) { return Newmark_alpha; } -inline double CConfig::GetNewmark_delta(void) { return Newmark_delta; } +inline su2double CConfig::GetNewmark_delta(void) { return Newmark_delta; } inline bool CConfig::GetGradual_Load(void) { return Gradual_Load; } inline bool CConfig::GetRamp_Load(void) { return Ramp_Load; } -inline double CConfig::GetRamp_Time(void) { return Ramp_Time; } +inline su2double CConfig::GetRamp_Time(void) { return Ramp_Time; } -inline double CConfig::GetStatic_Time(void) { return Static_Time; } +inline su2double CConfig::GetStatic_Time(void) { return Static_Time; } inline unsigned short CConfig::GetPredictorOrder(void) { return Pred_Order; } @@ -1243,14 +1243,14 @@ inline unsigned short CConfig::GetKindInterpolation(void) { return Kind_Interpol inline unsigned short CConfig::GetRelaxation_Method_FSI(void) { return Kind_BGS_RelaxMethod; } -inline double CConfig::GetOrderMagResidualFSI(void) { return OrderMagResidualFSI; } +inline su2double CConfig::GetOrderMagResidualFSI(void) { return OrderMagResidualFSI; } -inline double CConfig::GetMinLogResidualFSI(void) { return MinLogResidualFSI; } +inline su2double CConfig::GetMinLogResidualFSI(void) { return MinLogResidualFSI; } -inline double CConfig::GetResidual_FEM_UTOL(void) { return Res_FEM_UTOL; } +inline su2double CConfig::GetResidual_FEM_UTOL(void) { return Res_FEM_UTOL; } -inline double CConfig::GetResidual_FEM_RTOL(void) { return Res_FEM_RTOL; } +inline su2double CConfig::GetResidual_FEM_RTOL(void) { return Res_FEM_RTOL; } -inline double CConfig::GetResidual_FEM_ETOL(void) { return Res_FEM_ETOL; } +inline su2double CConfig::GetResidual_FEM_ETOL(void) { return Res_FEM_ETOL; } diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 06d075633a3..84410600d73 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -71,13 +71,13 @@ class CDualGrid{ /*! * \brief A pure virtual member. */ - virtual double *GetCoord(void) = 0; + virtual su2double *GetCoord(void) = 0; /*! * \brief A pure virtual member. * \param[in] val_coord - Coordinate of the point. */ - virtual void SetCoord(double *val_coord) = 0; + virtual void SetCoord(su2double *val_coord) = 0; /*! * \brief A pure virtual member. @@ -86,7 +86,7 @@ class CDualGrid{ * \param[in] val_coord_Elem_CG - Coordinates of the centre of gravity of the element. * \param[in] config - Definition of the particular problem. */ - virtual void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG) = 0; + virtual void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG) = 0; /*! * \overload @@ -94,24 +94,24 @@ class CDualGrid{ * \param[in] val_coord_Elem_CG - Coordinates of the centre of gravity of the element. * \param[in] config - Definition of the particular problem. */ - virtual void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG) = 0; + virtual void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG) = 0; /*! * \brief A pure virtual member. * \param[in] val_normal - Coordinates of the normal. */ - virtual void GetNormal(double *val_normal) = 0; + virtual void GetNormal(su2double *val_normal) = 0; /*! * \brief A pure virtual member. */ - virtual double *GetNormal(void) = 0; + virtual su2double *GetNormal(void) = 0; /*! * \brief A pure virtual member. * \param[in] val_face_normal - Coordinates of the normal. */ - virtual void SetNormal(double *val_face_normal) = 0; + virtual void SetNormal(su2double *val_face_normal) = 0; /*! * \brief A pure virtual member. @@ -127,7 +127,7 @@ class CDualGrid{ * \brief A pure virtual member. * \param[in] val_face_normal - Normal vector to be added. */ - virtual void AddNormal(double *val_face_normal) = 0; + virtual void AddNormal(su2double *val_face_normal) = 0; }; /*! @@ -143,20 +143,20 @@ class CPoint : public CDualGrid { vector Elem; /*!< \brief Elements that set up a control volume around a node. */ vector Point; /*!< \brief Points surrounding the central node of the control volume. */ vector Edge; /*!< \brief Edges that set up a control volume. */ - double *Volume; /*!< \brief Volume or Area of the control volume in 3D and 2D. */ + su2double *Volume; /*!< \brief Volume or Area of the control volume in 3D and 2D. */ bool Domain, /*!< \brief Indicates if a point must be computed or belong to another boundary */ Boundary, /*!< \brief To see if a point belong to the boundary (including MPI). */ PhysicalBoundary, /*!< \brief To see if a point belong to the physical boundary (without includin MPI). */ SolidBoundary; /*!< \brief To see if a point belong to the physical boundary (without includin MPI). */ long *vertex; /*!< \brief Index of the vertex that correspond which the control volume (we need one for each marker in the same node). */ - double *coord, /*!< \brief vector with the coordinates of the node. */ + su2double *coord, /*!< \brief vector with the coordinates of the node. */ *Coord_old, /*!< \brief Old coordinates vector for geometry smoothing. */ *Coord_sum, /*!< \brief Sum of coordinates vector for geometry smoothing. */ *Coord_n, /*!< \brief Coordinates at time n for use with dynamic meshes. */ *Coord_n1, /*!< \brief Coordinates at time n-1 for use with dynamic meshes. */ *Coord_p1; /*!< \brief Coordinates at time n+1 for use with dynamic meshes. */ - double *GridVel; /*!< \brief Velocity of the grid for dynamic mesh cases. */ - double **GridVel_Grad; /*!< \brief Gradient of the grid velocity for dynamic meshes. */ + su2double *GridVel; /*!< \brief Velocity of the grid for dynamic mesh cases. */ + su2double **GridVel_Grad; /*!< \brief Gradient of the grid velocity for dynamic meshes. */ unsigned long Parent_CV; /*!< \brief Index of the parent control volume in the agglomeration process. */ unsigned short nChildren_CV; /*!< \brief Number of children in the agglomeration process. */ vector Children_CV; /*!< \brief Index of the children control volumes in the agglomeration process. */ @@ -164,9 +164,9 @@ class CPoint : public CDualGrid { bool Agglomerate; /*!< \brief This flag indicates if the element has been agglomerated. */ bool Move; /*!< \brief This flag indicates if the point is going to be move in the grid deformation process. */ unsigned short color; /*!< \brief Color of the point in the partitioning strategy. */ - double Wall_Distance; /*!< \brief Distance to the nearest wall. */ - double SharpEdge_Distance; /*!< \brief Distance to a sharp edge. */ - double Curvature; /*!< \brief Value of the surface curvature (SU2_GEO). */ + su2double Wall_Distance; /*!< \brief Distance to the nearest wall. */ + su2double SharpEdge_Distance; /*!< \brief Distance to a sharp edge. */ + su2double Curvature; /*!< \brief Value of the surface curvature (SU2_GEO). */ unsigned long GlobalIndex; /*!< \brief Global index in the parallel simulation. */ unsigned short nNeighbor; /*!< \brief Color of the point in the partitioning strategy. */ bool Flip_Orientation; /*!< \brief Flip the orientation of the normal. */ @@ -188,7 +188,7 @@ class CPoint : public CDualGrid { * \param[in] val_globalindex Global index in the parallel simulation. * \param[in] config - Definition of the particular problem. */ - CPoint(double val_coord_0, double val_coord_1, unsigned long val_globalindex, CConfig *config); + CPoint(su2double val_coord_0, su2double val_coord_1, unsigned long val_globalindex, CConfig *config); /*! * \overload @@ -198,7 +198,7 @@ class CPoint : public CDualGrid { * \param[in] val_globalindex Global index in the parallel simulation. * \param[in] config - Definition of the particular problem. */ - CPoint(double val_coord_0, double val_coord_1, double val_coord_2, unsigned long val_globalindex, CConfig *config); + CPoint(su2double val_coord_0, su2double val_coord_1, su2double val_coord_2, unsigned long val_globalindex, CConfig *config); /*! * \brief Destructor of the class. @@ -221,37 +221,37 @@ class CPoint : public CDualGrid { * \brief Set the value of the distance to the nearest wall. * \param[in] val_distance - Value of the distance. */ - void SetWall_Distance(double val_distance); + void SetWall_Distance(su2double val_distance); /*! * \brief Set the value of the distance to a sharp edge. * \param[in] val_distance - Value of the distance. */ - void SetSharpEdge_Distance(double val_distance); + void SetSharpEdge_Distance(su2double val_distance); /*! * \brief Get the value of the distance to the nearest wall. * \return Value of the distance to the nearest wall. */ - double GetWall_Distance(void); + su2double GetWall_Distance(void); /*! * \brief Set the value of the curvature at a surface node. * \param[in] val_distance - Value of the curvature. */ - void SetCurvature(double val_curvature); + void SetCurvature(su2double val_curvature); /*! * \brief Get the value of the curvature at a surface node. * \return Value of the curvature. */ - double GetCurvature(void); + su2double GetCurvature(void); /*! * \brief Get the value of the distance to a sharp edge * \return Value of the distance to the nearest wall. */ - double GetSharpEdge_Distance(void); + su2double GetSharpEdge_Distance(void); /*! * \brief Set the number of elements that compose the control volume. @@ -270,20 +270,20 @@ class CPoint : public CDualGrid { * \param[in] val_dim - Number of dimensions of the problem. * \return Coordinate that correspond with val_dim. */ - double GetCoord(unsigned short val_dim); + su2double GetCoord(unsigned short val_dim); /*! * \brief Get the coordinates of the control volume. * \return pointer to the coordinate of the point. */ - double *GetCoord(void); + su2double *GetCoord(void); /*! * \brief Set the coordinates for the control volume. * \param[in] val_dim - Position to store the coordinate. * \param[in] val_coord - Coordinate for val_dim. */ - void SetCoord(unsigned short val_dim, double val_coord); + void SetCoord(unsigned short val_dim, su2double val_coord); /*! * \brief Get the coordinates of the control volume. @@ -303,13 +303,13 @@ class CPoint : public CDualGrid { * \param[in] val_dim - Position to store the coordinate. * \param[in] val_coord - Coordinate for val_dim. */ - void AddCoord(unsigned short val_dim, double val_coord); + void AddCoord(unsigned short val_dim, su2double val_coord); /*! * \overload * \param[in] val_coord - Coordinate of the point. */ - void SetCoord(double *val_coord); + void SetCoord(su2double *val_coord); /*! * \brief Get the number of elements that compose the control volume. @@ -391,13 +391,13 @@ class CPoint : public CDualGrid { * \brief Adds some area or volume of the CV. * \param[in] val_Volume - Local volume to be added to the total one. */ - void AddVolume(double val_Volume); + void AddVolume(su2double val_Volume); /*! * \brief Get area or volume of the control volume. * \return Area or volume of the control volume. */ - double GetVolume(void); + su2double GetVolume(void); /*! * \brief Get information about the movement of the node. @@ -494,13 +494,13 @@ class CPoint : public CDualGrid { * \brief Get the volume of the control volume at time n. * \return Volume of the control volume at time n */ - double GetVolume_n(void); + su2double GetVolume_n(void); /*! * \brief Get the volume of the control volume at time n+1. * \return Volume of the control volume at time n+1 */ - double GetVolume_nM1(void); + su2double GetVolume_nM1(void); /*! * \brief Set the volume of the control volume at time n. @@ -516,19 +516,19 @@ class CPoint : public CDualGrid { * \brief Get the coordinates of the control volume at time n. * \return Coordinates of the control volume at time n. */ - double* GetCoord_n(void); + su2double* GetCoord_n(void); /*! * \brief Get the coordinates of the control volume at time n-1. * \return Volume of the control volume at time n-1 */ - double* GetCoord_n1(void); + su2double* GetCoord_n1(void); /*! * \brief Get the coordinates of the control volume at time n+1. * \return Volume of the control volume at time n+1 */ - double* GetCoord_p1(void); + su2double* GetCoord_p1(void); /*! * \brief Set the coordinates of the control volume at time n. @@ -544,13 +544,13 @@ class CPoint : public CDualGrid { * \brief Set the coordinates of the control volume at time n+1. * \param[in] val_coord - Value of the grid coordinates at time n+1. */ - void SetCoord_p1(double *val_coord); + void SetCoord_p1(su2double *val_coord); /*! * \brief Set the volume of the control volume. * \param[in] val_Volume - Value of the volume. */ - void SetVolume(double val_Volume); + void SetVolume(su2double val_Volume); /*! * \brief Set if a element is going to be moved on the deformation process. @@ -618,31 +618,31 @@ class CPoint : public CDualGrid { * \brief Get the value of the summed coordinates for implicit smoothing. * \return Sum of coordinates at a point. */ - double *GetCoord_Sum(void); + su2double *GetCoord_Sum(void); /*! * \brief Get the value of the old coordinates for implicit smoothing. * \return Old coordinates at a point. */ - double *GetCoord_Old(void); + su2double *GetCoord_Old(void); /*! * \brief Get the value of the grid velocity at the point. * \return Grid velocity at the point. */ - double *GetGridVel(void); + su2double *GetGridVel(void); /*! * \brief Get the value of the grid velocity gradient at the point. * \return Grid velocity gradient at the point. */ - double **GetGridVel_Grad(void); + su2double **GetGridVel_Grad(void); /*! * \brief Add the value of the coordinates to the Coord_sum vector for implicit smoothing. * \param[in] val_coord_sum - Value of the coordinates to add. */ - void AddCoord_Sum(double *val_coord_sum); + void AddCoord_Sum(su2double *val_coord_sum); /*! * \brief Initialize the vector Coord_sum. @@ -653,20 +653,20 @@ class CPoint : public CDualGrid { * \brief Set the value of the vector Coord_old for implicit smoothing. * \param[in] val_coord_old - Value of the coordinates. */ - void SetCoord_Old(double *val_coord_old); + void SetCoord_Old(su2double *val_coord_old); /*! * \brief Set the value of the grid velocity at the point. * \param[in] val_dim - Index of the coordinate. * \param[in] val_gridvel - Value of the grid velocity. */ - void SetGridVel(unsigned short val_dim, double val_gridvel); + void SetGridVel(unsigned short val_dim, su2double val_gridvel); /*! * \overload * \param[in] val_gridvel - Value of the grid velocity. */ - void SetGridVel(double *val_gridvel); + void SetGridVel(su2double *val_gridvel); /*! * \brief Set the gradient of the grid velocity. @@ -674,37 +674,37 @@ class CPoint : public CDualGrid { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - void SetGridVel_Grad(unsigned short val_var, unsigned short val_dim, double val_value); + void SetGridVel_Grad(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG); + void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG); + void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - void GetNormal(double *val_normal); + void GetNormal(su2double *val_normal); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - double *GetNormal(void); + su2double *GetNormal(void); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - void SetNormal(double *val_face_normal); + void SetNormal(su2double *val_face_normal); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the @@ -722,7 +722,7 @@ class CPoint : public CDualGrid { * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - void AddNormal(double *val_face_normal); + void AddNormal(su2double *val_face_normal); }; /*! @@ -733,9 +733,9 @@ class CPoint : public CDualGrid { */ class CEdge : public CDualGrid { private: - double *Coord_CG; /*!< \brief Center-of-gravity of the element. */ + su2double *Coord_CG; /*!< \brief Center-of-gravity of the element. */ unsigned long *Nodes; /*!< \brief Vector to store the global nodes of an element. */ - double *Normal; /*!< \brief Normal al elemento y coordenadas de su centro de gravedad. */ + su2double *Normal; /*!< \brief Normal al elemento y coordenadas de su centro de gravedad. */ public: @@ -756,14 +756,14 @@ class CEdge : public CDualGrid { * \brief Set the center of gravity of the edge. * \param[in] val_coord - Coordinates of all the nodes needed for computing the centre of gravity of an edge. */ - void SetCG(double **val_coord); + void SetCG(su2double **val_coord); /*! * \brief Obtain the centre of gravity of the edge. * \param[in] val_dim - Position to read the coordinate. * \return Coordinate val_dim of the centre of gravity. */ - double GetCG(unsigned short val_dim); + su2double GetCG(unsigned short val_dim); /*! * \brief Get the nodes of the edge. @@ -787,7 +787,7 @@ class CEdge : public CDualGrid { * \param[in] val_coord_Point - Coordinates of the point that form the control volume. * \return Local volume associated to the edge. */ - double GetVolume(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG, double *val_coord_Point); + su2double GetVolume(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG, su2double *val_coord_Point); /*! * \overload @@ -796,7 +796,7 @@ class CEdge : public CDualGrid { * \param[in] val_coord_Point - Coordinates of the point that form the control volume. * \return Local volume associated to the edge. */ - double GetVolume(double *val_coord_Edge_CG, double *val_coord_Elem_CG, double *val_coord_Point); + su2double GetVolume(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG, su2double *val_coord_Point); /*! * \brief Set the face that correspond to an edge. @@ -806,7 +806,7 @@ class CEdge : public CDualGrid { * \param[in] config - Definition of the particular problem. * \return Compute the normal (dimensional) to the face that makes the control volume boundaries. */ - void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG); + void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG); /*! * \overload @@ -816,19 +816,19 @@ class CEdge : public CDualGrid { * \param[in] config - Definition of the particular problem. * \return Compute the normal (dimensional) to the face that makes the contorl volume boundaries. */ - void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG); + void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG); /*! * \brief Copy the the normal vector of a face. * \param[in] val_normal - Vector where the subroutine is goint to copy the normal (dimensional). */ - void GetNormal(double *val_normal); + void GetNormal(su2double *val_normal); /*! * \brief Get the normal to a face of the control volume asociated with an edge. * \return Dimensional normal vector, the modulus is the area of the face. */ - double *GetNormal(void); + su2double *GetNormal(void); /*! * \brief Initialize normal vector. @@ -840,25 +840,25 @@ class CEdge : public CDualGrid { * \param[in] val_face_normal - Vector to initialize the normal vector. * \return Value of the normal vector. */ - void SetNormal(double *val_face_normal); + void SetNormal(su2double *val_face_normal); /*! * \brief Add a vector to the normal vector. * \param[in] val_face_normal - Vector to add to the normal vector. */ - void AddNormal(double *val_face_normal); + void AddNormal(su2double *val_face_normal); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - double *GetCoord(void); + su2double *GetCoord(void); /*! * \brief This function does nothing (it comes from a pure virtual function, that implies the * definition of the function in all the derived classes). */ - void SetCoord(double *val_coord); + void SetCoord(su2double *val_coord); }; @@ -871,18 +871,18 @@ class CEdge : public CDualGrid { class CVertex : public CDualGrid { private: unsigned long *Nodes; /*!< \brief Vector to store the global nodes of an element. */ - double *Normal; /*!< \brief Normal coordinates of the element and its center of gravity. */ - double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */ - double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */ - double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */ - double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */ + su2double *Normal; /*!< \brief Normal coordinates of the element and its center of gravity. */ + su2double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */ + su2double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */ + su2double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */ + su2double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */ long PeriodicPoint[2]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */ - double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ + su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ unsigned long **Donor_Info; /*!\brief Store a list of donor points (by global index) for interpolation across zones: zone,point,marker,vertex */ - double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ + su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points;*/ public: @@ -918,7 +918,7 @@ class CVertex : public CDualGrid { * \param[in] val_coord_Elem_CG - Coordinates of the centre of gravity of the element. * \return Compute the normal (dimensional) to the face that makes the vertex. */ - void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG); + void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG); /*! * \overload @@ -926,19 +926,19 @@ class CVertex : public CDualGrid { * \param[in] val_coord_Elem_CG - Coordinates of the centre of gravity of the element. * \return Compute the normal (dimensional) to the face that makes the vertex. */ - void SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG); + void SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG); /*! * \brief Copy the the normal vector of a face. * \param[in] val_normal - Vector where the subroutine is goint to copy the normal (dimensional). */ - void GetNormal(double *val_normal); + void GetNormal(su2double *val_normal); /*! * \brief Get the normal to a face of the control volume asociated with a vertex. * \return Dimensional normal vector, the modulus is the area of the face. */ - double *GetNormal(void); + su2double *GetNormal(void); /*! * \brief Initialize normal vector. @@ -949,69 +949,69 @@ class CVertex : public CDualGrid { * \brief Set the value of an auxiliary variable for gradient computation. * \param[in] val_auxvar - Value of the auxiliar variable. */ - void SetAuxVar(double val_auxvar); + void SetAuxVar(su2double val_auxvar); /*! * \brief Get the value of an auxiliary variable for gradient computation. * \return Value of the auxiliar variable. */ - double GetAuxVar(void); + su2double GetAuxVar(void); /*! * \brief Add the value of an auxiliary variable for gradient computation. * \param[in] val_auxvar - Value of the auxiliar variable. */ - void AddAuxVar(double val_auxvar); + void AddAuxVar(su2double val_auxvar); /*! * \brief Set the normal vector. * \param[in] val_face_normal - Vector to initialize the normal vector. * \return Value of the normal vector. */ - void SetNormal(double *val_face_normal); + void SetNormal(su2double *val_face_normal); /*! * \brief Add a vector to the normal vector. * \param[in] val_face_normal - Vector to add to the normal vector. */ - void AddNormal(double *val_face_normal); + void AddNormal(su2double *val_face_normal); /*! * \brief Set the value of the coordinate variation due to a surface modification. * \param[in] val_varcoord - Variation of the coordinate. */ - void SetVarCoord(double *val_varcoord); + void SetVarCoord(su2double *val_varcoord); /*! * \brief Add the value of the coordinate variation due to a surface modification. * \param[in] val_varcoord - Variation of the coordinate. */ - void AddVarCoord(double *val_varcoord); + void AddVarCoord(su2double *val_varcoord); /*! * \brief Get the value of the coordinate variation due to a surface modification. * \return Variation of the coordinate. */ - double *GetVarCoord(void); + su2double *GetVarCoord(void); /*! * \brief Set the value of the cartesian coordinate for the vertex. * \param[in] val_coord - Value of the cartesian coordinate. */ - void SetCoord(double *val_coord); + void SetCoord(su2double *val_coord); /*! * \brief Get the value of the cartesian coordinate for the vertex. * \return Value of the cartesian coordinate of the vertex. */ - double *GetCoord(void); + su2double *GetCoord(void); /*! * \brief Get the value of the cartesian coordinate for the vertex. * \param[in] val_dim - Variable of the dimension. * \return Value of the cartesian coordinate of the vertex. */ - double GetCoord(unsigned short val_dim); + su2double GetCoord(unsigned short val_dim); /*! * \brief Set the type of rotation associated to the vertex. @@ -1067,14 +1067,14 @@ class CVertex : public CDualGrid { * \param[in] val_node - a node index of the owner element. * \param[in] val_basis - basis function value for the node. */ - void SetBasisFunction(unsigned short val_node, double val_basis); + void SetBasisFunction(unsigned short val_node, su2double val_basis); /*! * \brief Get the finite element basis functions needed for interpolation. * \param[in] val_node - a node index of the owner element. * \return Value of the basis function for this node. */ - double GetBasisFunction(unsigned short val_node); + su2double GetBasisFunction(unsigned short val_node); /*! * \brief Set the index of the closest neighbor to a point on the boundaries. @@ -1126,14 +1126,14 @@ class CVertex : public CDualGrid { * \param[in] iDonor - Index of the donor point. * \param[in] val - Value of the coefficent for point iDonor. */ - void SetDonorCoeff(unsigned short iDonor, double val); + void SetDonorCoeff(unsigned short iDonor, su2double val); /*! * \brief Get the coefficient value of a donor point. * \param[in] iDonor - Index of the donor point. * \return - Value of the coefficent for point iDonor. */ - double GetDonorCoeff(unsigned short iDonor); + su2double GetDonorCoeff(unsigned short iDonor); /*! * \brief Allocate memory based on how many donor points need to be stored. @@ -1145,13 +1145,13 @@ class CVertex : public CDualGrid { * \brief Get the rotation variation * \return - pointer to the vector defining the rotation */ - double *GetVarRot(void); + su2double *GetVarRot(void); /*! * \brief Set the rotation variation * \return - pointer to the vector defining the rotation */ - void SetVarRot(double* val); + void SetVarRot(su2double* val); }; diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 32f1a73b3f6..9464d426f37 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -39,19 +39,19 @@ inline void CPoint::ResetElem(void) { Elem.clear(); nElem = 0; } inline void CPoint::ResetPoint(void) { Point.clear(); Edge.clear(); nPoint = 0; } -inline double CPoint::GetCoord(unsigned short val_dim) { return coord[val_dim]; } +inline su2double CPoint::GetCoord(unsigned short val_dim) { return coord[val_dim]; } -inline double *CPoint::GetCoord(void) { return coord; } +inline su2double *CPoint::GetCoord(void) { return coord; } inline bool CPoint::GetFlip_Orientation(void) { return Flip_Orientation; } -inline void CPoint::SetCoord(unsigned short val_dim, double val_coord) { coord[val_dim] = val_coord; } +inline void CPoint::SetCoord(unsigned short val_dim, su2double val_coord) { coord[val_dim] = val_coord; } inline void CPoint::SetFlip_Orientation(void) { Flip_Orientation = true; } -inline void CPoint::AddCoord(unsigned short val_dim, double val_coord) { coord[val_dim] += val_coord; } +inline void CPoint::AddCoord(unsigned short val_dim, su2double val_coord) { coord[val_dim] += val_coord; } -inline void CPoint::SetCoord(double *val_coord) { +inline void CPoint::SetCoord(su2double *val_coord) { for (unsigned short iDim = 0; iDim < nDim; iDim++) coord[iDim]=val_coord[iDim]; } @@ -72,7 +72,7 @@ inline unsigned short CPoint::GetnPoint(void) { return nPoint; } inline unsigned long CPoint::GetPoint(unsigned short val_point) { return Point[val_point]; } -inline double CPoint::GetVolume (void) { return Volume[0]; } +inline su2double CPoint::GetVolume (void) { return Volume[0]; } inline bool CPoint::GetMove (void) { return Move; } @@ -88,21 +88,21 @@ inline void CPoint::SetSolidBoundary(bool val_boundary) { SolidBoundary = val_bo inline bool CPoint::GetSolidBoundary(void) { return SolidBoundary; } -inline void CPoint::AddVolume (double val_Volume) { Volume[0] += val_Volume; } +inline void CPoint::AddVolume (su2double val_Volume) { Volume[0] += val_Volume; } -inline void CPoint::SetVolume (double val_Volume) { Volume[0] = val_Volume; } +inline void CPoint::SetVolume (su2double val_Volume) { Volume[0] = val_Volume; } inline void CPoint::SetMove(bool val_move) { Move = val_move; } -inline double *CPoint::GetCoord_Old(void) { return Coord_old; } +inline su2double *CPoint::GetCoord_Old(void) { return Coord_old; } -inline double *CPoint::GetCoord_Sum(void) { return Coord_sum; } +inline su2double *CPoint::GetCoord_Sum(void) { return Coord_sum; } -inline double *CPoint::GetGridVel(void) { return GridVel; } +inline su2double *CPoint::GetGridVel(void) { return GridVel; } -inline double **CPoint::GetGridVel_Grad(void) { return GridVel_Grad; } +inline su2double **CPoint::GetGridVel_Grad(void) { return GridVel_Grad; } -inline void CPoint::SetCoord_Old(double *val_coord_old) { +inline void CPoint::SetCoord_Old(su2double *val_coord_old) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Coord_old[iDim] = val_coord_old[iDim]; } @@ -112,14 +112,14 @@ inline void CPoint::SetCoord_SumZero(void) { Coord_sum[iDim] = 0.0; } -inline void CPoint::AddCoord_Sum(double *val_coord_sum) { +inline void CPoint::AddCoord_Sum(su2double *val_coord_sum) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Coord_sum[iDim] += val_coord_sum[iDim]; } -inline void CPoint::SetGridVel(unsigned short val_dim, double val_gridvel) { GridVel[val_dim] = val_gridvel; } +inline void CPoint::SetGridVel(unsigned short val_dim, su2double val_gridvel) { GridVel[val_dim] = val_gridvel; } -inline void CPoint::SetGridVel_Grad(unsigned short val_var, unsigned short val_dim, double val_value) { GridVel_Grad[val_var][val_dim] = val_value; } +inline void CPoint::SetGridVel_Grad(unsigned short val_var, unsigned short val_dim, su2double val_value) { GridVel_Grad[val_var][val_dim] = val_value; } inline void CPoint::SetChildren_CV (unsigned short val_nchildren_CV, unsigned long val_children_CV) { if (Children_CV.size() <= val_nchildren_CV) Children_CV.resize(val_nchildren_CV+1); @@ -153,7 +153,7 @@ inline void CPoint::SetnChildren_CV (unsigned short val_nchildren_CV) { nChildre inline void CPoint::SetParent_CV (unsigned long val_parent_CV) { Parent_CV = val_parent_CV; Agglomerate = true; } -inline void CPoint::SetGridVel(double *val_gridvel) { +inline void CPoint::SetGridVel(su2double *val_gridvel) { for (unsigned short iDim = 0; iDim < nDim; iDim++) GridVel[iDim] = val_gridvel[iDim]; } @@ -162,9 +162,9 @@ inline void CPoint::SetVolume_n (void) { Volume[1] = Volume[0]; } inline void CPoint::SetVolume_nM1 (void) { Volume[2] = Volume[1]; } -inline double CPoint::GetVolume_n (void) { return Volume[1]; } +inline su2double CPoint::GetVolume_n (void) { return Volume[1]; } -inline double CPoint::GetVolume_nM1 (void) { return Volume[2]; } +inline su2double CPoint::GetVolume_nM1 (void) { return Volume[2]; } inline void CPoint::SetCoord_n (void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) @@ -176,16 +176,16 @@ inline void CPoint::SetCoord_n1 (void) { Coord_n1[iDim] = Coord_n[iDim]; } -inline void CPoint::SetCoord_p1(double *val_coord) { +inline void CPoint::SetCoord_p1(su2double *val_coord) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Coord_p1[iDim] = val_coord[iDim]; } -inline double *CPoint::GetCoord_n (void) { return Coord_n; } +inline su2double *CPoint::GetCoord_n (void) { return Coord_n; } -inline double *CPoint::GetCoord_n1 (void) { return Coord_n1; } +inline su2double *CPoint::GetCoord_n1 (void) { return Coord_n1; } -inline double *CPoint::GetCoord_p1 (void) { return Coord_p1; } +inline su2double *CPoint::GetCoord_p1 (void) { return Coord_p1; } inline void CPoint::SetColor(unsigned short val_color) { color = val_color; } @@ -203,51 +203,51 @@ inline void CPoint::SetDomain(bool val_domain) { Domain = val_domain; } inline bool CPoint::GetDomain(void) { return Domain; } -inline void CPoint::SetWall_Distance(double val_distance) { Wall_Distance = val_distance; } +inline void CPoint::SetWall_Distance(su2double val_distance) { Wall_Distance = val_distance; } -inline void CPoint::SetCurvature(double val_curvature) { Curvature = val_curvature; } +inline void CPoint::SetCurvature(su2double val_curvature) { Curvature = val_curvature; } -inline void CPoint::SetSharpEdge_Distance(double val_distance) { SharpEdge_Distance = val_distance; } +inline void CPoint::SetSharpEdge_Distance(su2double val_distance) { SharpEdge_Distance = val_distance; } -inline double CPoint::GetWall_Distance(void) { return Wall_Distance; } +inline su2double CPoint::GetWall_Distance(void) { return Wall_Distance; } -inline double CPoint::GetCurvature(void) { return Curvature; } +inline su2double CPoint::GetCurvature(void) { return Curvature; } -inline double CPoint::GetSharpEdge_Distance(void) { return SharpEdge_Distance; } +inline su2double CPoint::GetSharpEdge_Distance(void) { return SharpEdge_Distance; } -inline void CPoint::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG) { } +inline void CPoint::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG) { } -inline void CPoint::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG) { } +inline void CPoint::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG) { } -inline void CPoint::GetNormal(double *val_normal) { } +inline void CPoint::GetNormal(su2double *val_normal) { } -inline double *CPoint::GetNormal(void) { return 0; } +inline su2double *CPoint::GetNormal(void) { return 0; } -inline void CPoint::SetNormal(double *val_face_normal) { } +inline void CPoint::SetNormal(su2double *val_face_normal) { } inline void CPoint::SetZeroValues(void) { } -inline void CPoint::AddNormal(double *val_face_normal) { } +inline void CPoint::AddNormal(su2double *val_face_normal) { } inline unsigned short CEdge::GetnNodes() { return 2; } inline unsigned long CEdge::GetNode(unsigned short val_node) { return Nodes[val_node]; } -inline double CEdge::GetCG(unsigned short val_dim) { return Coord_CG[val_dim]; } +inline su2double CEdge::GetCG(unsigned short val_dim) { return Coord_CG[val_dim]; } -inline double *CEdge::GetNormal(void) { return Normal; } +inline su2double *CEdge::GetNormal(void) { return Normal; } -inline void CEdge::GetNormal(double *val_normal) { +inline void CEdge::GetNormal(su2double *val_normal) { for (unsigned short iDim = 0; iDim < nDim; iDim++) val_normal[iDim] = Normal[iDim]; } -inline void CEdge::SetNormal(double *val_face_normal) { +inline void CEdge::SetNormal(su2double *val_face_normal) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim]=val_face_normal[iDim]; } -inline void CEdge::AddNormal(double *val_face_normal) { +inline void CEdge::AddNormal(su2double *val_face_normal) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim] += val_face_normal[iDim]; } @@ -257,49 +257,49 @@ inline void CEdge::SetZeroValues(void) { Normal[iDim] = 0.0; } -inline double *CEdge::GetCoord(void) { return NULL; } +inline su2double *CEdge::GetCoord(void) { return NULL; } -inline void CEdge::SetCoord(double *val_coord) { } +inline void CEdge::SetCoord(su2double *val_coord) { } inline unsigned short CVertex::GetnNodes() { return 1; } inline unsigned long CVertex::GetNode() { return Nodes[0]; } -inline double *CVertex::GetNormal(void) { return Normal; } +inline su2double *CVertex::GetNormal(void) { return Normal; } -inline double *CVertex::GetVarCoord(void) { return VarCoord; } +inline su2double *CVertex::GetVarCoord(void) { return VarCoord; } -inline double *CVertex::GetCoord(void) { return CartCoord; } +inline su2double *CVertex::GetCoord(void) { return CartCoord; } -inline double CVertex::GetCoord(unsigned short val_dim) { return CartCoord[val_dim]; } +inline su2double CVertex::GetCoord(unsigned short val_dim) { return CartCoord[val_dim]; } -inline void CVertex::SetAuxVar(double val_auxvar) { Aux_Var = val_auxvar; } +inline void CVertex::SetAuxVar(su2double val_auxvar) { Aux_Var = val_auxvar; } -inline void CVertex::AddAuxVar(double val_auxvar) { Aux_Var += val_auxvar; } +inline void CVertex::AddAuxVar(su2double val_auxvar) { Aux_Var += val_auxvar; } -inline double CVertex::GetAuxVar(void) { return Aux_Var; } +inline su2double CVertex::GetAuxVar(void) { return Aux_Var; } -inline void CVertex::GetNormal(double *val_normal) { +inline void CVertex::GetNormal(su2double *val_normal) { for (unsigned short iDim = 0; iDim < nDim; iDim++) val_normal[iDim] = Normal[iDim]; } -inline void CVertex::SetNormal(double *val_face_normal) { +inline void CVertex::SetNormal(su2double *val_face_normal) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Normal[iDim]=val_face_normal[iDim]; } -inline void CVertex::SetVarCoord(double *val_varcoord) { +inline void CVertex::SetVarCoord(su2double *val_varcoord) { for (unsigned short iDim = 0; iDim < nDim; iDim++) VarCoord[iDim] = val_varcoord[iDim]; } -inline void CVertex::AddVarCoord(double *val_varcoord) { +inline void CVertex::AddVarCoord(su2double *val_varcoord) { for (unsigned short iDim = 0; iDim < nDim; iDim++) VarCoord[iDim] += val_varcoord[iDim]; } -inline void CVertex::SetCoord(double *val_coord) { +inline void CVertex::SetCoord(su2double *val_coord) { for (unsigned short iDim = 0; iDim < nDim; iDim++) CartCoord[iDim] = val_coord[iDim]; } @@ -321,9 +321,9 @@ inline long CVertex::GetDonorPoint(void) { return PeriodicPoint[0]; } inline long CVertex::GetDonorProcessor(void) { return PeriodicPoint[1]; } -inline void CVertex::SetBasisFunction(unsigned short val_node, double val_basis) { Basis_Function[val_node] = val_basis; } +inline void CVertex::SetBasisFunction(unsigned short val_node, su2double val_basis) { Basis_Function[val_node] = val_basis; } -inline double CVertex::GetBasisFunction(unsigned short val_node) { return Basis_Function[val_node]; } +inline su2double CVertex::GetBasisFunction(unsigned short val_node) { return Basis_Function[val_node]; } inline long *CVertex::GetPeriodicPointDomain(void) { return PeriodicPoint; } @@ -342,19 +342,19 @@ inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long *val){ for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; } -inline void CVertex::SetDonorCoeff(unsigned short iDonor, double val){ Donor_Coeff[iDonor] = val; } +inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } inline unsigned long CVertex::GetDonorInfo(unsigned short iDonor, unsigned short it){ return Donor_Info[iDonor][it];} -inline double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} +inline su2double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} -inline double *CVertex::GetVarRot(void) {return VarRot;} +inline su2double *CVertex::GetVarRot(void) {return VarRot;} -inline void CVertex::SetVarRot(double* val) { +inline void CVertex::SetVarRot(su2double* val) { for (unsigned short iDim = 0; iDim < nDim; iDim++) VarRot[iDim] = val[iDim]; } diff --git a/Common/include/geometry_structure.hpp b/Common/include/geometry_structure.hpp index 63bba9f7e88..4f41762b039 100644 --- a/Common/include/geometry_structure.hpp +++ b/Common/include/geometry_structure.hpp @@ -123,13 +123,13 @@ class CGeometry { short *Marker_All_SendRecv; /*--- Create vectors and distribute the values among the different planes queues ---*/ - vector > Xcoord_plane; /*!< \brief Vector containing x coordinates of new points appearing on a single plane */ - vector > Ycoord_plane; /*!< \brief Vector containing y coordinates of new points appearing on a single plane */ - vector > Zcoord_plane; /*!< \brief Vector containing z coordinates of new points appearing on a single plane */ - vector > FaceArea_plane; /*!< \brief Vector containing area/volume associated with new points appearing on a single plane */ + vector > Xcoord_plane; /*!< \brief Vector containing x coordinates of new points appearing on a single plane */ + vector > Ycoord_plane; /*!< \brief Vector containing y coordinates of new points appearing on a single plane */ + vector > Zcoord_plane; /*!< \brief Vector containing z coordinates of new points appearing on a single plane */ + vector > FaceArea_plane; /*!< \brief Vector containing area/volume associated with new points appearing on a single plane */ vector > Plane_points; /*!< \brief Vector containing points appearing on a single plane */ - vector XCoordList; /*!< \brief Vector containing points appearing on a single plane */ + vector XCoordList; /*!< \brief Vector containing points appearing on a single plane */ CPrimalGrid*** newBound; /*!< \brief Boundary vector for new periodic elements (primal grid information). */ unsigned long *nNewElem_Bound; /*!< \brief Number of new periodic elements of the boundary. */ @@ -235,7 +235,7 @@ class CGeometry { * \param[in] kCoord - Coordinates of the third point that defines the plane. * \return Signed distance. */ - double Point2Plane_Distance(double *Coord, double *iCoord, double *jCoord, double *kCoord); + su2double Point2Plane_Distance(su2double *Coord, su2double *iCoord, su2double *jCoord, su2double *kCoord); /*! * \brief Create a file for testing the geometry. @@ -508,7 +508,7 @@ class CGeometry { * \param[in] val_smooth_coeff - Relaxation factor. * \param[in] config - Definition of the particular problem. */ - virtual void SetCoord_Smoothing(unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config); + virtual void SetCoord_Smoothing(unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config); /*! * \brief A virtual member. @@ -608,29 +608,29 @@ class CGeometry { * \brief A virtual member. * \param[in] config - Definition of the particular problem. */ - void ComputeAirfoil_Section(double *Plane_P0, double *Plane_Normal, - double MinXCoord, double MaxXCoord, double *FlowVariable, - vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, - vector &Zcoord_Airfoil, vector &Variable_Airfoil, + void ComputeAirfoil_Section(su2double *Plane_P0, su2double *Plane_Normal, + su2double MinXCoord, su2double MaxXCoord, su2double *FlowVariable, + vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, + vector &Zcoord_Airfoil, vector &Variable_Airfoil, bool original_surface, CConfig *config); /*! * \brief A virtual member. * \param[in] config - Definition of the particular problem. */ - virtual double Compute_MaxThickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + virtual su2double Compute_MaxThickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief A virtual member. * \param[in] config - Definition of the particular problem. */ - virtual double Compute_AoA(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + virtual su2double Compute_AoA(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief A virtual member. * \param[in] config - Definition of the particular problem. */ - virtual double Compute_Chord(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + virtual su2double Compute_Chord(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief A virtual member. @@ -638,7 +638,7 @@ class CGeometry { * \param[in] original_surface - TRUE if this is the undeformed surface; otherwise FALSE. * \returns The minimum value of the airfoil thickness. */ - virtual double Compute_Thickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + virtual su2double Compute_Thickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, su2double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief A virtual member. @@ -646,7 +646,7 @@ class CGeometry { * \param[in] original_surface - TRUE if this is the undeformed surface; otherwise FALSE. * \returns The total volume of the airfoil. */ - virtual double Compute_Area(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + virtual su2double Compute_Area(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief A virtual member. @@ -654,7 +654,7 @@ class CGeometry { * \param[in] original_surface - TRUE if this is the undeformed surface; otherwise FALSE. * \returns The total volume of the 3D body. */ - virtual double Compute_Volume(CConfig *config, bool original_surface); + virtual su2double Compute_Volume(CConfig *config, bool original_surface); /*! * \brief A virtual member. @@ -786,22 +786,22 @@ class CGeometry { /*! * \brief Get geometrical planes in the mesh */ - virtual vector GetGeometryPlanes(); + virtual vector GetGeometryPlanes(); /*! * \brief Get x coords of geometrical planes in the mesh */ - virtual vector > GetXCoord(); + virtual vector > GetXCoord(); /*! * \brief Get y coords of geometrical planes in the mesh */ - virtual vector > GetYCoord(); + virtual vector > GetYCoord(); /*! * \brief Get z coords of geometrical planes in the mesh */ - virtual vector > GetZCoord(); + virtual vector > GetZCoord(); /*! * \brief Get all points on a geometrical plane in the mesh @@ -817,7 +817,7 @@ class CGeometry { condition for a natural spline, with zero second derivative on that boundary. Numerical Recipes: The Art of Scientific Computing, Third Edition in C++. */ - void SetSpline(vector &x, vector &y, unsigned long n, double yp1, double ypn, vector &y2); + void SetSpline(vector &x, vector &y, unsigned long n, su2double yp1, su2double ypn, vector &y2); /*! * \brief Given the arrays xa[1..n] and ya[1..n], which tabulate a function (with the xai’s in order), @@ -826,7 +826,7 @@ class CGeometry { Numerical Recipes: The Art of Scientific Computing, Third Edition in C++. * \returns The interpolated value of for x. */ - double GetSpline(vector &xa, vector &ya, vector &y2a, unsigned long n, double x); + su2double GetSpline(vector &xa, vector &ya, vector &y2a, unsigned long n, su2double x); /*! * \brief Compute the intersection between a segment and a plane. @@ -837,21 +837,21 @@ class CGeometry { * \param[in] Intersection - Definition of the particular problem. * \returns If the intersection has has been successful. */ - bool SegmentIntersectsPlane(double *Segment_P0, double *Segment_P1, double Variable_P0, double Variable_P1, - double *Plane_P0, double *Plane_Normal, double *Intersection, double &Variable_Interp); + bool SegmentIntersectsPlane(su2double *Segment_P0, su2double *Segment_P1, su2double Variable_P0, su2double Variable_P1, + su2double *Plane_P0, su2double *Plane_Normal, su2double *Intersection, su2double &Variable_Interp); /*! * \brief Ray Intersects Triangle (Moller and Trumbore algorithm) */ - bool RayIntersectsTriangle(double orig[3], double dir[3], - double vert0[3], double vert1[3], double vert2[3], - double *intersect); + bool RayIntersectsTriangle(su2double orig[3], su2double dir[3], + su2double vert0[3], su2double vert1[3], su2double vert2[3], + su2double *intersect); /*! * \brief Segment Intersects Triangle */ - bool SegmentIntersectsTriangle(double point0[3], double point1[3], - double vert0[3], double vert1[3], double vert2[3]); + bool SegmentIntersectsTriangle(su2double point0[3], su2double point1[3], + su2double vert0[3], su2double vert1[3], su2double vert2[3]); }; @@ -1167,7 +1167,7 @@ class CPhysicalGeometry : public CGeometry { * \param[in] val_smooth_coeff - Relaxation factor. * \param[in] config - Definition of the particular problem. */ - void SetCoord_Smoothing(unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config); + void SetCoord_Smoothing(unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config); /*! * \brief Write the .su2 file. @@ -1180,7 +1180,7 @@ class CPhysicalGeometry : public CGeometry { * \brief Compute some parameters about the grid quality. * \param[out] statistics - Information about the grid quality, statistics[0] = (r/R)_min, statistics[1] = (r/R)_ave. */ - void GetQualityStatistics(double *statistics); + void GetQualityStatistics(su2double *statistics); /*! * \brief Find and store all vertices on a sharp corner in the geometry. @@ -1304,22 +1304,22 @@ class CPhysicalGeometry : public CGeometry { /*! * \brief Get geometrical planes in the mesh */ - vector GetGeometryPlanes(); + vector GetGeometryPlanes(); /*! * \brief Get x coords of geometrical planes in the mesh */ - vector > GetXCoord(); + vector > GetXCoord(); /*! * \brief Get y coords of geometrical planes in the mesh */ - vector > GetYCoord(); + vector > GetYCoord(); /*! * \brief Get z coords of geometrical planes in the mesh */ - vector > GetZCoord(); + vector > GetZCoord(); /*! * \brief Get all points on a geometrical plane in the mesh @@ -1336,19 +1336,19 @@ class CPhysicalGeometry : public CGeometry { * \brief Compute the sections of a wing. * \param[in] config - Definition of the particular problem. */ - double Compute_MaxThickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + su2double Compute_MaxThickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief Compute the sections of a wing. * \param[in] config - Definition of the particular problem. */ - double Compute_AoA(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + su2double Compute_AoA(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief Compute the sections of a wing. * \param[in] config - Definition of the particular problem. */ - double Compute_Chord(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + su2double Compute_Chord(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief Find the minimum thickness of the airfoil. @@ -1356,7 +1356,7 @@ class CPhysicalGeometry : public CGeometry { * \param[in] original_surface - TRUE if this is the undeformed surface; otherwise FALSE. * \returns The minimum value of the airfoil thickness. */ - double Compute_Thickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + su2double Compute_Thickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, su2double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief Find the total volume of the airfoil. @@ -1364,7 +1364,7 @@ class CPhysicalGeometry : public CGeometry { * \param[in] original_surface - TRUE if this is the undeformed surface; otherwise FALSE. * \returns The total volume of the airfoil. */ - double Compute_Area(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); + su2double Compute_Area(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface); /*! * \brief Find the internal volume of the 3D body. @@ -1372,7 +1372,7 @@ class CPhysicalGeometry : public CGeometry { * \param[in] original_surface - TRUE if this is the undeformed surface; otherwise FALSE. * \returns The total volume of the 3D body. */ - double Compute_Volume(CConfig *config, bool original_surface); + su2double Compute_Volume(CConfig *config, bool original_surface); }; @@ -1522,22 +1522,22 @@ class CMultiGridGeometry : public CGeometry { /*! * \brief Get geometrical planes in the mesh */ - vector GetGeometryPlanes(); + vector GetGeometryPlanes(); /*! * \brief Get x coords of geometrical planes in the mesh */ - vector > GetXCoord(); + vector > GetXCoord(); /*! * \brief Get y coords of geometrical planes in the mesh */ - vector > GetYCoord(); + vector > GetYCoord(); /*! * \brief Get z coords of geometrical planes in the mesh */ - vector > GetZCoord(); + vector > GetZCoord(); /*! * \brief Get all points on a geometrical plane in the mesh diff --git a/Common/include/geometry_structure.inl b/Common/include/geometry_structure.inl index 1a50149ff1e..08b1d584e0a 100644 --- a/Common/include/geometry_structure.inl +++ b/Common/include/geometry_structure.inl @@ -105,7 +105,7 @@ inline void CGeometry::SetPoint_Connectivity(void) { } inline void CGeometry::SetRCM_Ordering(CConfig *config) { } -inline void CGeometry::SetCoord_Smoothing (unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config) { } +inline void CGeometry::SetCoord_Smoothing (unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config) { } inline void CGeometry::SetCoord(CGeometry *geometry) { } @@ -189,17 +189,17 @@ inline void CGeometry::SetBoundTecPlot(char mesh_filename[MAX_STRING_SIZE], bool inline void CGeometry::SetBoundSTL(char mesh_filename[MAX_STRING_SIZE], bool new_file, CConfig *config) { } -inline double CGeometry::Compute_MaxThickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } +inline su2double CGeometry::Compute_MaxThickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } -inline double CGeometry::Compute_AoA(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } +inline su2double CGeometry::Compute_AoA(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } -inline double CGeometry::Compute_Chord(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } +inline su2double CGeometry::Compute_Chord(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } -inline double CGeometry::Compute_Thickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } +inline su2double CGeometry::Compute_Thickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, su2double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } -inline double CGeometry::Compute_Area(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } +inline su2double CGeometry::Compute_Area(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { return 0; } -inline double CGeometry::Compute_Volume(CConfig *config, bool original_surface) { return 0; } +inline su2double CGeometry::Compute_Volume(CConfig *config, bool original_surface) { return 0; } inline void CGeometry::FindNormal_Neighbor(CConfig *config) { } @@ -249,29 +249,29 @@ inline unsigned long CPhysicalGeometry::GetnElemPyra(void) { return nelem_pyrami inline void CGeometry::SetGeometryPlanes(CConfig *config) {} -inline vector CGeometry::GetGeometryPlanes() { return XCoordList; } +inline vector CGeometry::GetGeometryPlanes() { return XCoordList; } -inline vector CPhysicalGeometry::GetGeometryPlanes() { return XCoordList; } +inline vector CPhysicalGeometry::GetGeometryPlanes() { return XCoordList; } -inline vector CMultiGridGeometry::GetGeometryPlanes() { return XCoordList; } +inline vector CMultiGridGeometry::GetGeometryPlanes() { return XCoordList; } -inline vector > CGeometry::GetXCoord() { return Xcoord_plane; } +inline vector > CGeometry::GetXCoord() { return Xcoord_plane; } -inline vector > CPhysicalGeometry::GetXCoord() { return Xcoord_plane; } +inline vector > CPhysicalGeometry::GetXCoord() { return Xcoord_plane; } -inline vector > CMultiGridGeometry::GetXCoord() { return Xcoord_plane; } +inline vector > CMultiGridGeometry::GetXCoord() { return Xcoord_plane; } -inline vector > CGeometry::GetYCoord() { return Ycoord_plane; } +inline vector > CGeometry::GetYCoord() { return Ycoord_plane; } -inline vector > CPhysicalGeometry::GetYCoord() { return Ycoord_plane; } +inline vector > CPhysicalGeometry::GetYCoord() { return Ycoord_plane; } -inline vector > CMultiGridGeometry::GetYCoord() { return Ycoord_plane; } +inline vector > CMultiGridGeometry::GetYCoord() { return Ycoord_plane; } -inline vector > CGeometry::GetZCoord() { return Zcoord_plane; } +inline vector > CGeometry::GetZCoord() { return Zcoord_plane; } -inline vector > CPhysicalGeometry::GetZCoord() { return Zcoord_plane; } +inline vector > CPhysicalGeometry::GetZCoord() { return Zcoord_plane; } -inline vector > CMultiGridGeometry::GetZCoord() { return Zcoord_plane; } +inline vector > CMultiGridGeometry::GetZCoord() { return Zcoord_plane; } inline vector > CGeometry::GetPlanarPoints() { return Plane_points; } diff --git a/Common/include/grid_adaptation_structure.hpp b/Common/include/grid_adaptation_structure.hpp index 9d8ee181ae6..47a23bf9ced 100644 --- a/Common/include/grid_adaptation_structure.hpp +++ b/Common/include/grid_adaptation_structure.hpp @@ -57,19 +57,19 @@ class CGridAdaptation { nElem_new; /*!< \brief Number of new elements. */ unsigned short nDim, /*!< \brief Number of dimensions of the problem. */ nVar; /*!< \brief Number of variables in the problem. */ - double **ConsVar_Sol, /*!< \brief Conservative variables (original solution). */ + su2double **ConsVar_Sol, /*!< \brief Conservative variables (original solution). */ **ConsVar_Res, /*!< \brief Conservative variables (residual). */ **ConsVar_Adapt; /*!< \brief Conservative variables (adapted solution). */ - double **AdjVar_Sol, /*!< \brief Adjoint variables (original solution). */ + su2double **AdjVar_Sol, /*!< \brief Adjoint variables (original solution). */ **AdjVar_Res, /*!< \brief Adjoint variables (residual). */ **AdjVar_Adapt; /*!< \brief Adjoint variables (adapted solution). */ - double **LinVar_Sol, /*!< \brief Linear variables (original solution). */ + su2double **LinVar_Sol, /*!< \brief Linear variables (original solution). */ **LinVar_Res, /*!< \brief Linear variables (residual). */ **LinVar_Adapt; /*!< \brief Linear variables (adapted solution). */ - double **Gradient, /*!< \brief Gradient value. */ + su2double **Gradient, /*!< \brief Gradient value. */ **Gradient_Flow, /*!< \brief Gradient of the flow variables. */ **Gradient_Adj; /*!< \brief Fradient of the adjoint variables. */ - double *Index; /*!< \brief Adaptation index (indicates the value of the adaptation). */ + su2double *Index; /*!< \brief Adaptation index (indicates the value of the adaptation). */ public: diff --git a/Common/include/grid_movement_structure.hpp b/Common/include/grid_movement_structure.hpp index 43157866641..e0f1a5c1bb6 100644 --- a/Common/include/grid_movement_structure.hpp +++ b/Common/include/grid_movement_structure.hpp @@ -92,7 +92,7 @@ class CFreeFormDefBox : public CGridMovement { unsigned short nDim; /*!< \brief Number of dimensions of the problem. */ unsigned short nCornerPoints, /*!< \brief Number of corner points of the FFDBox. */ nControlPoints, nControlPoints_Copy; /*!< \brief Number of control points of the FFDBox. */ - double **Coord_Corner_Points, /*!< \brief Coordinates of the corner points. */ + su2double **Coord_Corner_Points, /*!< \brief Coordinates of the corner points. */ ****Coord_Control_Points, /*!< \brief Coordinates of the control points. */ ****ParCoord_Control_Points, /*!< \brief Coordinates of the control points. */ ****Coord_Control_Points_Copy, /*!< \brief Coordinates of the control points (copy). */ @@ -103,17 +103,17 @@ class CFreeFormDefBox : public CGridMovement { unsigned short lDegree, lDegree_Copy, /*!< \brief Degree of the FFDBox in the i direction. (lOrder - 1)*/ mDegree, mDegree_Copy, /*!< \brief Degree of the FFDBox in the j direction. (mOrder - 1)*/ nDegree, nDegree_Copy; /*!< \brief Degree of the FFDBox in the k direction. (nOrder - 1)*/ - double *ParamCoord, *ParamCoord_, /*!< \brief Parametric coordinates of a point. */ + su2double *ParamCoord, *ParamCoord_, /*!< \brief Parametric coordinates of a point. */ *cart_coord, *cart_coord_; /*!< \brief Cartesian coordinates of a point. */ - double ObjFunc; /*!< \brief Objective function of the point inversion process. */ - double *Gradient; /*!< \brief Gradient of the point inversion process. */ - double **Hessian; /*!< \brief Hessian of the point inversion process. */ - double MaxCoord[3]; /*!< \brief Maximum coordinates of the FFDBox. */ - double MinCoord[3]; /*!< \brief Minimum coordinates of the FFDBox. */ + su2double ObjFunc; /*!< \brief Objective function of the point inversion process. */ + su2double *Gradient; /*!< \brief Gradient of the point inversion process. */ + su2double **Hessian; /*!< \brief Hessian of the point inversion process. */ + su2double MaxCoord[3]; /*!< \brief Maximum coordinates of the FFDBox. */ + su2double MinCoord[3]; /*!< \brief Minimum coordinates of the FFDBox. */ string Tag; /*!< \brief Tag to identify the FFDBox. */ unsigned short Level; /*!< \brief Nested level of the FFD box. */ - vector CartesianCoord[3]; /*!< \brief Vector with all the cartesian coordinates in the FFD FFDBox. */ - vector ParametricCoord[3]; /*!< \brief Vector with all the parametrics coordinates in the FFD FFDBox. */ + vector CartesianCoord[3]; /*!< \brief Vector with all the cartesian coordinates in the FFD FFDBox. */ + vector ParametricCoord[3]; /*!< \brief Vector with all the parametrics coordinates in the FFD FFDBox. */ vector MarkerIndex; /*!< \brief Vector with all markers in the FFD FFDBox. */ vector VertexIndex; /*!< \brief Vector with all vertex index in the FFD FFDBox. */ vector PointIndex; /*!< \brief Vector with all points index in the FFD FFDBox. */ @@ -220,13 +220,13 @@ class CFreeFormDefBox : public CGridMovement { * \brief Add to the vector of cartesian coordinates a new coordinate. * \param[in] val_coord - New coordinate inside the FFD box. */ - void Set_CartesianCoord(double *val_coord); + void Set_CartesianCoord(su2double *val_coord); /*! * \brief Add to the vector of parametric coordinates a new coordinate. * \param[in] val_coord - New coordinate inside the FFD box. */ - void Set_ParametricCoord(double *val_coord); + void Set_ParametricCoord(su2double *val_coord); /*! * \brief Add to the vector of parent FFDBoxes a new FFD FFDBox. @@ -245,14 +245,14 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_coord - _______________. * \param[in] val_iSurfacePoints - _______________. */ - void Set_CartesianCoord(double *val_coord, unsigned long val_iSurfacePoints); + void Set_CartesianCoord(su2double *val_coord, unsigned long val_iSurfacePoints); /*! * \brief _______________. * \param[in] val_coord - _______________. * \param[in] val_iSurfacePoints - _______________. */ - void Set_ParametricCoord(double *val_coord, unsigned long val_iSurfacePoints); + void Set_ParametricCoord(su2double *val_coord, unsigned long val_iSurfacePoints); /*! * \brief _______________. @@ -280,14 +280,14 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] Get_CartesianCoord - _______________. * \return _______________. */ - double *Get_CartesianCoord(unsigned long val_iSurfacePoints); + su2double *Get_CartesianCoord(unsigned long val_iSurfacePoints); /*! * \brief _______________. * \param[in] Get_ParametricCoord - _______________. * \return _______________. */ - double *Get_ParametricCoord(unsigned long val_iSurfacePoints); + su2double *Get_ParametricCoord(unsigned long val_iSurfacePoints); /*! * \brief _______________. @@ -371,7 +371,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_coord - Coordinates of the corner point with index val_icornerpoints. * \param[in] val_icornerpoints - Index of the corner point. */ - void SetCoordCornerPoints(double *val_coord, unsigned short val_icornerpoints); + void SetCoordCornerPoints(su2double *val_coord, unsigned short val_icornerpoints); /*! * \overload @@ -380,7 +380,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_zcoord - Z coordinate of the corner point with index val_icornerpoints. * \param[in] val_icornerpoints - Index of the corner point. */ - void SetCoordCornerPoints(double val_xcoord, double val_ycoord, double val_zcoord, unsigned short val_icornerpoints); + void SetCoordCornerPoints(su2double val_xcoord, su2double val_ycoord, su2double val_zcoord, unsigned short val_icornerpoints); /*! * \brief Set the coordinates of the control points. @@ -389,7 +389,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] jDegree - Index of the FFDBox, j direction. * \param[in] kDegree - Index of the FFDBox, k direction. */ - void SetCoordControlPoints(double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree); + void SetCoordControlPoints(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree); /*! * \brief Set the coordinates of the control points. @@ -398,7 +398,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] jDegree - Index of the FFDBox, j direction. * \param[in] kDegree - Index of the FFDBox, k direction. */ - void SetCoordControlPoints_Copy(double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree); + void SetCoordControlPoints_Copy(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree); /*! * \brief Set the coordinates of the control points. @@ -407,7 +407,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] jDegree - Index of the FFDBox, j direction. * \param[in] kDegree - Index of the FFDBox, k direction. */ - void SetParCoordControlPoints(double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree); + void SetParCoordControlPoints(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree); /*! * \brief Get the coordinates of the corner points. @@ -415,14 +415,14 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_icornerpoints - Index of the corner point. * \return Coordinate val_dim of the corner point val_icornerpoints. */ - double GetCoordCornerPoints(unsigned short val_dim, unsigned short val_icornerpoints); + su2double GetCoordCornerPoints(unsigned short val_dim, unsigned short val_icornerpoints); /*! * \brief Get the coordinates of the corner points. * \param[in] val_icornerpoints - Index of the corner point. * \return Pointer to the coordinate vector of the corner point val_icornerpoints. */ - double *GetCoordCornerPoints(unsigned short val_icornerpoints); + su2double *GetCoordCornerPoints(unsigned short val_icornerpoints); /*! * \brief Get the coordinates of the control point. @@ -431,7 +431,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_kindex - Value of the local k index of the control point. * \return Pointer to the coordinate vector of the control point with local index (i, j, k). */ - double *GetCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex); + su2double *GetCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex); /*! * \brief Get the parametric coordinates of the control point. @@ -440,7 +440,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_kindex - Value of the local k index of the control point. * \return Pointer to the coordinate vector of the control point with local index (i, j, k). */ - double *GetParCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex); + su2double *GetParCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex); /*! * \brief Set the control points in a parallelepiped (hexahedron). @@ -458,7 +458,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_index - Local index (i, j, k) of the control point. * \param[in] movement - Movement of the control point. */ - void SetControlPoints(unsigned short *val_index, double *movement); + void SetControlPoints(unsigned short *val_index, su2double *movement); /*! * \brief Set the original value of the control points. @@ -478,7 +478,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] cart_coord - Cartesian coordinates of a point. * \return Pointer to the parametric coordinates of a point. */ - double *GetParametricCoord_Analytical(double *cart_coord); + su2double *GetParametricCoord_Analytical(su2double *cart_coord); /*! * \brief Iterative strategy for computing the parametric coordinates. @@ -488,7 +488,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] it_max - Maximal number of iterations. * \return Parametric coordinates of the point. */ - double *GetParametricCoord_Iterative(unsigned long iPoint, double *xyz, double *guess, CConfig *config); + su2double *GetParametricCoord_Iterative(unsigned long iPoint, su2double *xyz, su2double *guess, CConfig *config); /*! * \brief Compute the cross product. @@ -496,7 +496,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] v2 - Second input vector. * \param[out] v3 - Output vector wuth the cross product. */ - void CrossProduct(double *v1, double *v2, double *v3); + void CrossProduct(su2double *v1, su2double *v2, su2double *v3); /*! * \brief Compute the doc product. @@ -504,7 +504,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] v2 - Sencond input vector. * \return Dot product between v1, and v2. */ - double DotProduct(double *v1, double *v2); + su2double DotProduct(su2double *v1, su2double *v2); /*! * \brief Here we take the parametric coords of a point in the box and we convert them to the @@ -512,7 +512,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] ParamCoord - Parametric coordinates of a point. * \return Pointer to the cartesian coordinates of a point. */ - double *EvalCartesianCoord(double *ParamCoord); + su2double *EvalCartesianCoord(su2double *ParamCoord); /*! * \brief Set the Bernstein polynomial, defined as B_i^n(t) = Binomial(n, i)*t^i*(1-t)^(n-i). @@ -521,7 +521,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_t - Value of the parameter where the polynomial is evaluated. * \return Value of the Bernstein polynomial. */ - double GetBernstein(short val_n, short val_i, double val_t); + su2double GetBernstein(short val_n, short val_i, su2double val_t); /*! * \brief Get the binomial coefficient n over i, defined as n!/(m!(n-m)!) @@ -594,7 +594,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_order - Order of the derivative. * \return Value of the Derivative of the Bernstein polynomial. */ - double GetBernsteinDerivative(short val_n, short val_i, double val_t, short val_order); + su2double GetBernsteinDerivative(short val_n, short val_i, su2double val_t, short val_order); /*! * \brief The routine computes the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 evaluated at (u, v, w). @@ -603,7 +603,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] analytical - Compute the analytical gradient. * \return Value of the analytical gradient. */ - double *GetFFDGradient(double *val_coord, double *xyz); + su2double *GetFFDGradient(su2double *val_coord, su2double *xyz); /*! * \brief The routine that computes the Hessian of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 evaluated at (u, v, w) @@ -613,7 +613,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] xyz - Cartesians coordinates of the target point to compose the functional. * \param[in] val_Hessian - Value of the hessian. */ - void GetFFDHessian(double *uvw, double *xyz, double **val_Hessian); + void GetFFDHessian(su2double *uvw, su2double *xyz, su2double **val_Hessian); /*! * \brief An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = @@ -627,7 +627,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] lmn - Degree of the FFD box. * \return __________. */ - double GetDerivative1(double *uvw, unsigned short val_diff, unsigned short *ijk, unsigned short *lmn); + su2double GetDerivative1(su2double *uvw, unsigned short val_diff, unsigned short *ijk, unsigned short *lmn); /*! * \brief An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = @@ -641,7 +641,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] lmn - Degree of the FFD box. * \return __________. */ - double GetDerivative2(double *uvw, unsigned short dim, double *xyz, unsigned short *lmn); + su2double GetDerivative2(su2double *uvw, unsigned short dim, su2double *xyz, unsigned short *lmn); /*! * \brief An auxiliary routine to help us compute the gradient of F(u, v, w) = ||X(u, v, w)-(x, y, z)||^2 = @@ -655,7 +655,7 @@ class CFreeFormDefBox : public CGridMovement { * which? diff_thiss will tell us ; E.G.: dim=2, diff_this=1 => we use the third coordinate of the control * points, and derivate de v-Bersntein polynomial (use m-1 when summing!!). */ - double GetDerivative3(double *uvw, unsigned short dim, unsigned short diff_this, + su2double GetDerivative3(su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short *lmn); /*! @@ -672,7 +672,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] lmn - Degree of the FFD box. * \return __________. */ - double GetDerivative4(double *uvw, unsigned short val_diff, unsigned short val_diff2, + su2double GetDerivative4(su2double *uvw, unsigned short val_diff, unsigned short val_diff2, unsigned short *ijk, unsigned short *lmn); /*! @@ -691,7 +691,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] lmn - Degree of the FFD box. * \return __________. */ - double GetDerivative5(double *uvw, unsigned short dim, unsigned short diff_this, unsigned short diff_this_also, + su2double GetDerivative5(su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short diff_this_also, unsigned short *lmn); /*! @@ -699,7 +699,7 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] a - _______. * \return __________. */ - double GetNorm(double *a); + su2double GetNorm(su2double *a); /*! * \brief Set the tag that identify a FFDBox. @@ -730,8 +730,8 @@ class CFreeFormDefBox : public CGridMovement { * \param[in] val_matrix 3 by 3 matrix. * \result Determinant of the matrix */ - double Determinant_3x3(double A00, double A01, double A02, double A10, double A11, - double A12, double A20, double A21, double A22); + su2double Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, + su2double A12, su2double A20, su2double A21, su2double A22); }; @@ -792,7 +792,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] geometry - Geometrical definition of the problem. * \return Value of the length of the smallest edge of the grid. */ - double SetFEAMethodContributions_Elem(CGeometry *geometry, CConfig *config); + su2double SetFEAMethodContributions_Elem(CGeometry *geometry, CConfig *config); /*! * \brief Build the stiffness matrix for a 3-D hexahedron element. The result will be placed in StiffMatrix_Elem. @@ -800,7 +800,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] StiffMatrix_Elem - Element stiffness matrix to be filled. * \param[in] CoordCorners - Index value for Node 1 of the current hexahedron. */ - void SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *config, double **StiffMatrix_Elem, unsigned long PointCorners[8], double CoordCorners[8][3], unsigned short nNodes, double scale); + void SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3], unsigned short nNodes, su2double scale); /*! * \brief Build the stiffness matrix for a 3-D hexahedron element. The result will be placed in StiffMatrix_Elem. @@ -808,7 +808,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] StiffMatrix_Elem - Element stiffness matrix to be filled. * \param[in] CoordCorners - Index value for Node 1 of the current hexahedron. */ - void SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *config, double **StiffMatrix_Elem, unsigned long PointCorners[8], double CoordCorners[8][3], unsigned short nNodes, double scale); + void SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3], unsigned short nNodes, su2double scale); /*! * \brief Shape functions and derivative of the shape functions @@ -818,7 +818,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - double ShapeFunc_Hexa(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -828,7 +828,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - double ShapeFunc_Tetra(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -838,7 +838,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - double ShapeFunc_Pyram(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -848,7 +848,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - double ShapeFunc_Prism(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -857,7 +857,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - double ShapeFunc_Triangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -866,43 +866,43 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - double ShapeFunc_Rectangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - double GetHexa_Volume(double CoordCorners[8][3]); + su2double GetHexa_Volume(su2double CoordCorners[8][3]); /*! * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - double GetTetra_Volume(double CoordCorners[8][3]); + su2double GetTetra_Volume(su2double CoordCorners[8][3]); /*! * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - double GetPrism_Volume(double CoordCorners[8][3]); + su2double GetPrism_Volume(su2double CoordCorners[8][3]); /*! * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - double GetPyram_Volume(double CoordCorners[8][3]); + su2double GetPyram_Volume(su2double CoordCorners[8][3]); /*! * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - double GetTriangle_Area(double CoordCorners[8][3]); + su2double GetTriangle_Area(su2double CoordCorners[8][3]); /*! * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - double GetRectangle_Area(double CoordCorners[8][3]); + su2double GetRectangle_Area(su2double CoordCorners[8][3]); /*! * \brief Add the stiffness matrix for a 2-D triangular element to the global stiffness matrix for the entire mesh (node-based). @@ -911,13 +911,13 @@ class CVolumetricMovement : public CGridMovement { * \param[in] PointCorners * \param[in] nNodes */ - void AddFEA_StiffMatrix(CGeometry *geometry, double **StiffMatrix_Elem, unsigned long PointCorners[8], unsigned short nNodes); + void AddFEA_StiffMatrix(CGeometry *geometry, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], unsigned short nNodes); /*! * \brief Check for negative volumes (all elements) after performing grid deformation. * \param[in] geometry - Geometrical definition of the problem. */ - double Check_Grid(CGeometry *geometry); + su2double Check_Grid(CGeometry *geometry); /*! * \brief Compute the minimum distance to the nearest deforming surface. @@ -998,7 +998,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] A22 * \result Determinant of the matrix */ - double Determinant_3x3(double A00, double A01, double A02, double A10, double A11, double A12, double A20, double A21, double A22); + su2double Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22); }; @@ -1014,9 +1014,9 @@ class CSurfaceMovement : public CGridMovement { unsigned short nFFDBox; /*!< \brief Number of FFD FFDBoxes. */ unsigned short nLevel; /*!< \brief Level of the FFD FFDBoxes (parent/child). */ bool FFDBoxDefinition; /*!< \brief If the FFD FFDBox has been defined in the input file. */ - vector GlobalCoordX[MAX_NUMBER_FFD]; - vector GlobalCoordY[MAX_NUMBER_FFD]; - vector GlobalCoordZ[MAX_NUMBER_FFD]; + vector GlobalCoordX[MAX_NUMBER_FFD]; + vector GlobalCoordY[MAX_NUMBER_FFD]; + vector GlobalCoordZ[MAX_NUMBER_FFD]; vector GlobalTag[MAX_NUMBER_FFD]; vector GlobalPoint[MAX_NUMBER_FFD]; @@ -1129,7 +1129,7 @@ class CSurfaceMovement : public CGridMovement { * \param[in] iMarker_Monitoring - Marker we are monitoring. * \param[in] displacements - solution of typical section wing model. */ - void AeroelasticDeform(CGeometry *geometry, CConfig *config, unsigned long ExtIter, unsigned short iMarker, unsigned short iMarker_Monitoring, double displacements[4]); + void AeroelasticDeform(CGeometry *geometry, CConfig *config, unsigned long ExtIter, unsigned short iMarker, unsigned short iMarker_Monitoring, su2double displacements[4]); /*! * \brief Deforms a 3-D flutter/pitching surface during an unsteady simulation. diff --git a/Common/include/grid_movement_structure.inl b/Common/include/grid_movement_structure.inl index 2309ecca4f8..b9966659ae3 100644 --- a/Common/include/grid_movement_structure.inl +++ b/Common/include/grid_movement_structure.inl @@ -67,19 +67,19 @@ inline void CFreeFormDefBox::Set_VertexIndex(unsigned long val_iVertex) { Vertex inline void CFreeFormDefBox::Set_PointIndex(unsigned long val_iPoint) { PointIndex.push_back(val_iPoint); } -inline void CFreeFormDefBox::Set_CartesianCoord(double *val_coord) { CartesianCoord[0].push_back(val_coord[0]); +inline void CFreeFormDefBox::Set_CartesianCoord(su2double *val_coord) { CartesianCoord[0].push_back(val_coord[0]); CartesianCoord[1].push_back(val_coord[1]); CartesianCoord[2].push_back(val_coord[2]); } -inline void CFreeFormDefBox::Set_CartesianCoord(double *val_coord, unsigned long val_iSurfacePoints) { CartesianCoord[0][val_iSurfacePoints] = val_coord[0]; +inline void CFreeFormDefBox::Set_CartesianCoord(su2double *val_coord, unsigned long val_iSurfacePoints) { CartesianCoord[0][val_iSurfacePoints] = val_coord[0]; CartesianCoord[1][val_iSurfacePoints] = val_coord[1]; CartesianCoord[2][val_iSurfacePoints] = val_coord[2]; } -inline void CFreeFormDefBox::Set_ParametricCoord(double *val_coord) { ParametricCoord[0].push_back(val_coord[0]); +inline void CFreeFormDefBox::Set_ParametricCoord(su2double *val_coord) { ParametricCoord[0].push_back(val_coord[0]); ParametricCoord[1].push_back(val_coord[1]); ParametricCoord[2].push_back(val_coord[2]); } -inline void CFreeFormDefBox::Set_ParametricCoord(double *val_coord, unsigned long val_iSurfacePoints) { ParametricCoord[0][val_iSurfacePoints] = val_coord[0]; +inline void CFreeFormDefBox::Set_ParametricCoord(su2double *val_coord, unsigned long val_iSurfacePoints) { ParametricCoord[0][val_iSurfacePoints] = val_coord[0]; ParametricCoord[1][val_iSurfacePoints] = val_coord[1]; ParametricCoord[2][val_iSurfacePoints] = val_coord[2]; } @@ -97,13 +97,13 @@ inline unsigned long CFreeFormDefBox::Get_VertexIndex(unsigned long val_iSurface inline unsigned long CFreeFormDefBox::Get_PointIndex(unsigned long val_iSurfacePoints) { return PointIndex[val_iSurfacePoints]; } -inline double *CFreeFormDefBox::Get_CartesianCoord(unsigned long val_iSurfacePoints) { +inline su2double *CFreeFormDefBox::Get_CartesianCoord(unsigned long val_iSurfacePoints) { cart_coord_[0] = CartesianCoord[0][val_iSurfacePoints]; cart_coord_[1] = CartesianCoord[1][val_iSurfacePoints]; cart_coord_[2] = CartesianCoord[2][val_iSurfacePoints]; return cart_coord_; } -inline double *CFreeFormDefBox::Get_ParametricCoord(unsigned long val_iSurfacePoints) { +inline su2double *CFreeFormDefBox::Get_ParametricCoord(unsigned long val_iSurfacePoints) { ParamCoord_[0] = ParametricCoord[0][val_iSurfacePoints]; ParamCoord_[1] = ParametricCoord[1][val_iSurfacePoints]; ParamCoord_[2] = ParametricCoord[2][val_iSurfacePoints]; @@ -121,13 +121,13 @@ inline void CFreeFormDefBox::SetnControlPoints(void) { nControlPoints = lOrder*m inline unsigned long CFreeFormDefBox::GetnSurfacePoints(void) { return 0; } -inline double *CFreeFormDefBox::GetCoordCornerPoints(unsigned short val_icornerpoints) { return Coord_Corner_Points[val_icornerpoints]; } +inline su2double *CFreeFormDefBox::GetCoordCornerPoints(unsigned short val_icornerpoints) { return Coord_Corner_Points[val_icornerpoints]; } -inline double *CFreeFormDefBox::GetCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex) { return Coord_Control_Points[val_iindex][val_jindex][val_kindex]; } +inline su2double *CFreeFormDefBox::GetCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex) { return Coord_Control_Points[val_iindex][val_jindex][val_kindex]; } -inline double *CFreeFormDefBox::GetParCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex) { return ParCoord_Control_Points[val_iindex][val_jindex][val_kindex]; } +inline su2double *CFreeFormDefBox::GetParCoordControlPoints(unsigned short val_iindex, unsigned short val_jindex, unsigned short val_kindex) { return ParCoord_Control_Points[val_iindex][val_jindex][val_kindex]; } -inline double CFreeFormDefBox::GetCoordCornerPoints(unsigned short val_dim, unsigned short val_icornerpoints) { return Coord_Corner_Points[val_icornerpoints][val_dim]; } +inline su2double CFreeFormDefBox::GetCoordCornerPoints(unsigned short val_dim, unsigned short val_icornerpoints) { return Coord_Corner_Points[val_icornerpoints][val_dim]; } inline unsigned short CFreeFormDefBox::GetlOrder(void) { return lOrder; } @@ -141,35 +141,35 @@ inline void CFreeFormDefBox::SetmOrder(unsigned short val_mOrder) { mOrder = val inline void CFreeFormDefBox::SetnOrder(unsigned short val_nOrder) { nOrder = val_nOrder; nDegree = nOrder-1;} -inline void CFreeFormDefBox::SetCoordCornerPoints(double *val_coord, unsigned short val_icornerpoints) { +inline void CFreeFormDefBox::SetCoordCornerPoints(su2double *val_coord, unsigned short val_icornerpoints) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Coord_Corner_Points[val_icornerpoints][iDim] = val_coord[iDim]; } -inline void CFreeFormDefBox::SetCoordControlPoints(double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree) { +inline void CFreeFormDefBox::SetCoordControlPoints(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree) { for (unsigned short iDim = 0; iDim < nDim; iDim++) { Coord_Control_Points[iDegree][jDegree][kDegree][iDim] = val_coord[iDim]; } } -inline void CFreeFormDefBox::SetCoordControlPoints_Copy(double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree) { +inline void CFreeFormDefBox::SetCoordControlPoints_Copy(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree) { for (unsigned short iDim = 0; iDim < nDim; iDim++) { Coord_Control_Points_Copy[iDegree][jDegree][kDegree][iDim] = val_coord[iDim]; } } -inline void CFreeFormDefBox::SetParCoordControlPoints(double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree) { +inline void CFreeFormDefBox::SetParCoordControlPoints(su2double *val_coord, unsigned short iDegree, unsigned short jDegree, unsigned short kDegree) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ParCoord_Control_Points[iDegree][jDegree][kDegree][iDim] = val_coord[iDim]; } -inline void CFreeFormDefBox::SetCoordCornerPoints(double val_xcoord, double val_ycoord, double val_zcoord, unsigned short val_icornerpoints) { +inline void CFreeFormDefBox::SetCoordCornerPoints(su2double val_xcoord, su2double val_ycoord, su2double val_zcoord, unsigned short val_icornerpoints) { Coord_Corner_Points[val_icornerpoints][0] = val_xcoord; Coord_Corner_Points[val_icornerpoints][1] = val_ycoord; Coord_Corner_Points[val_icornerpoints][2] = val_zcoord; } -inline void CFreeFormDefBox::SetControlPoints(unsigned short *val_index, double *movement) { +inline void CFreeFormDefBox::SetControlPoints(unsigned short *val_index, su2double *movement) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Coord_Control_Points[val_index[0]][val_index[1]][val_index[2]][iDim] += movement[iDim]; } @@ -186,15 +186,15 @@ inline void CFreeFormDefBox::SetOriginalControlPoints() { nControlPoints = nControlPoints_Copy; } -inline void CFreeFormDefBox::CrossProduct (double *v1, double *v2, double *v3) { +inline void CFreeFormDefBox::CrossProduct (su2double *v1, su2double *v2, su2double *v3) { v3[0] = v1[1]*v2[2]-v1[2]*v2[1]; v3[1] = v1[2]*v2[0]-v1[0]*v2[2]; v3[2] = v1[0]*v2[1]-v1[1]*v2[0]; } -inline double CFreeFormDefBox::DotProduct (double *v1, double *v2) { double scalar = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]; return scalar; } +inline su2double CFreeFormDefBox::DotProduct (su2double *v1, su2double *v2) { su2double scalar = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]; return scalar; } -inline double CFreeFormDefBox::GetNorm(double *a) { double norm = sqrt(a[0]*a[0] + a[1]*a[1]+ a[2]*a[2]); return norm; } +inline su2double CFreeFormDefBox::GetNorm(su2double *a) { su2double norm = sqrt(a[0]*a[0] + a[1]*a[1]+ a[2]*a[2]); return norm; } inline void CFreeFormDefBox::SetTag(string val_tag) { Tag = val_tag; } @@ -204,10 +204,10 @@ inline void CFreeFormDefBox::SetLevel(unsigned short val_level) { Level = val_le inline unsigned short CFreeFormDefBox::GetLevel() { return Level; } -inline double CFreeFormDefBox::Determinant_3x3(double A00, double A01, double A02, double A10, double A11, double A12, double A20, double A21, double A22) { +inline su2double CFreeFormDefBox::Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22) { return A00*(A11*A22-A12*A21) - A01*(A10*A22-A12*A20) + A02*(A10*A21-A11*A20); } -inline double CVolumetricMovement::Determinant_3x3(double A00, double A01, double A02, double A10, double A11, double A12, double A20, double A21, double A22) { +inline su2double CVolumetricMovement::Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22) { return A00*(A11*A22-A12*A21) - A01*(A10*A22-A12*A20) + A02*(A10*A21-A11*A20); } diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index f469afac382..f30a99b5d1b 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -58,7 +58,7 @@ class CInterpolator { protected: unsigned int nZone; unsigned short nVar; - double ***Data; /*!\brief container for some data to be interpolated */ + su2double ***Data; /*!\brief container for some data to be interpolated */ public: CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ @@ -112,17 +112,17 @@ class CInterpolator { * \param[in] iPoint - point index * \param[in[ iDim - index of the data */ - double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); + su2double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); /*! * \brief Return the pointer to the Data vector at the specified zone and point. */ - double* GetData(unsigned int iZone, unsigned long iPoint); + su2double* GetData(unsigned int iZone, unsigned long iPoint); /*! * \brief Set the value of the Data at the specified zone, point, and index. */ - void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, double val); + void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val); @@ -187,6 +187,6 @@ class CConsistConserve : public CInterpolator { * \param[in] donor_elem - element index of the element to use for interpolation * \param[in[ nDonorPoints - number of donor points in the element. */ - void Isoparametric(double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2); + void Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2); }; diff --git a/Common/include/linear_solvers_structure.hpp b/Common/include/linear_solvers_structure.hpp index 7ac29f5e9ac..3efcfa2aa93 100644 --- a/Common/include/linear_solvers_structure.hpp +++ b/Common/include/linear_solvers_structure.hpp @@ -74,7 +74,7 @@ class CSysSolve { * so, feel free to delete this and replace it as needed with the * appropriate global function */ - double Sign(const double & x, const double & y) const; + su2double Sign(const su2double & x, const su2double & y) const; /*! * \brief applys a Givens rotation to a 2-vector @@ -83,7 +83,7 @@ class CSysSolve { * \param[in, out] h1 - first element of 2x1 vector being transformed * \param[in, out] h2 - second element of 2x1 vector being transformed */ - void ApplyGivens(const double & s, const double & c, double & h1, double & h2); + void ApplyGivens(const su2double & s, const su2double & c, su2double & h1, su2double & h2); /*! * \brief generates the Givens rotation matrix for a given 2-vector @@ -95,7 +95,7 @@ class CSysSolve { * Based on givens() of SPARSKIT, which is based on p.202 of * "Matrix Computations" by Golub and van Loan. */ - void GenerateGivens(double & dx, double & dy, double & s, double & c); + void GenerateGivens(su2double & dx, su2double & dy, su2double & s, su2double & c); /*! * \brief finds the solution of the upper triangular system Hsbg*x = rhs @@ -108,8 +108,8 @@ class CSysSolve { * \pre the upper Hessenberg matrix has been transformed into a * triangular matrix. */ - void SolveReduced(const int & n, const vector > & Hsbg, - const vector & rhs, vector & x); + void SolveReduced(const int & n, const vector > & Hsbg, + const vector & rhs, vector & x); /*! * \brief Modified Gram-Schmidt orthogonalization @@ -129,7 +129,7 @@ class CSysSolve { * vector is kept in nrm0 and updated after operating with each vector * */ - void ModGramSchmidt(int i, vector > & Hsbg, vector & w); + void ModGramSchmidt(int i, vector > & Hsbg, vector & w); /*! * \brief writes header information for a CSysSolve residual history @@ -140,7 +140,7 @@ class CSysSolve { * * \pre the ostream object os should be open */ - void WriteHeader(const string & solver, const double & restol, const double & resinit); + void WriteHeader(const string & solver, const su2double & restol, const su2double & resinit); /*! * \brief writes residual convergence data for one iteration to a stream @@ -150,7 +150,7 @@ class CSysSolve { * * \pre the ostream object os should be open */ - void WriteHistory(const int & iter, const double & res, const double & resinit); + void WriteHistory(const int & iter, const su2double & res, const su2double & resinit); public: @@ -164,7 +164,7 @@ class CSysSolve { * \param[in] monitoring - turn on priting residuals from solver to screen. */ unsigned long CG_LinSolver(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, - CPreconditioner & precond, double tol, + CPreconditioner & precond, su2double tol, unsigned long m, bool monitoring); /*! @@ -178,8 +178,8 @@ class CSysSolve { * \param[in] monitoring - turn on priting residuals from solver to screen. */ unsigned long FGMRES_LinSolver(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, - CPreconditioner & precond, double tol, - unsigned long m, double *residual, bool monitoring); + CPreconditioner & precond, su2double tol, + unsigned long m, su2double *residual, bool monitoring); /*! * \brief Biconjugate Gradient Stabilized Method (BCGSTAB) @@ -192,8 +192,8 @@ class CSysSolve { * \param[in] monitoring - turn on priting residuals from solver to screen. */ unsigned long BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, - CPreconditioner & precond, double tol, - unsigned long m, double *residual, bool monitoring); + CPreconditioner & precond, su2double tol, + unsigned long m, su2double *residual, bool monitoring); /*! * \brief Solve the linear system using a Krylov subspace method diff --git a/Common/include/linear_solvers_structure.inl b/Common/include/linear_solvers_structure.inl index 264a7a08382..23b531ae64a 100644 --- a/Common/include/linear_solvers_structure.inl +++ b/Common/include/linear_solvers_structure.inl @@ -29,7 +29,7 @@ #pragma once -inline double CSysSolve::Sign(const double & x, const double & y) const { +inline su2double CSysSolve::Sign(const su2double & x, const su2double & y) const { if (y == 0.0) return 0.0; else { diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 91401cf4f43..6364b720df2 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -58,24 +58,24 @@ class CSysMatrix { nPointDomain, /*!< \brief Number of points in the grid. */ nVar, /*!< \brief Number of variables. */ nEqn; /*!< \brief Number of equations. */ - double *matrix; /*!< \brief Entries of the sparse matrix. */ - double *ILU_matrix; /*!< \brief Entries of the ILU sparse matrix. */ + su2double *matrix; /*!< \brief Entries of the sparse matrix. */ + su2double *ILU_matrix; /*!< \brief Entries of the ILU sparse matrix. */ unsigned long *row_ptr; /*!< \brief Pointers to the first element in each row. */ unsigned long *col_ind; /*!< \brief Column index for each of the elements in val(). */ unsigned long nnz; /*!< \brief Number of possible nonzero entries in the matrix. */ - double *block; /*!< \brief Internal array to store a subblock of the matrix. */ - double *block_inverse; /*!< \brief Internal array to store a subblock of the matrix. */ - double *block_weight; /*!< \brief Internal array to store a subblock of the matrix. */ - double *prod_block_vector; /*!< \brief Internal array to store the product of a subblock with a vector. */ - double *prod_row_vector; /*!< \brief Internal array to store the product of a matrix-by-blocks "row" with a vector. */ - double *aux_vector; /*!< \brief Auxiliary array to store intermediate results. */ - double *sum_vector; /*!< \brief Auxiliary array to store intermediate results. */ - double *invM; /*!< \brief Inverse of (Jacobi) preconditioner. */ + su2double *block; /*!< \brief Internal array to store a subblock of the matrix. */ + su2double *block_inverse; /*!< \brief Internal array to store a subblock of the matrix. */ + su2double *block_weight; /*!< \brief Internal array to store a subblock of the matrix. */ + su2double *prod_block_vector; /*!< \brief Internal array to store the product of a subblock with a vector. */ + su2double *prod_row_vector; /*!< \brief Internal array to store the product of a matrix-by-blocks "row" with a vector. */ + su2double *aux_vector; /*!< \brief Auxiliary array to store intermediate results. */ + su2double *sum_vector; /*!< \brief Auxiliary array to store intermediate results. */ + su2double *invM; /*!< \brief Inverse of (Jacobi) preconditioner. */ bool *LineletBool; /*!< \brief Identify if a point belong to a linelet. */ vector *LineletPoint; /*!< \brief Linelet structure. */ unsigned long nLinelet; /*!< \brief Number of Linelets in the system. */ - double **UBlock, **invUBlock, **LBlock, + su2double **UBlock, **invUBlock, **LBlock, **yVector, **zVector, **rVector, *LFBlock, *LyVector, *FzVector, *AuxVector; /*!< \brief Arrays of the Linelet preconditioner methodology. */ unsigned long max_nElem; @@ -124,14 +124,14 @@ class CSysMatrix { * \param[in] block_i - Indexes of the block in the matrix-by-blocks structure. * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. */ - double *GetBlock(unsigned long block_i, unsigned long block_j); + su2double *GetBlock(unsigned long block_i, unsigned long block_j); /*! * \brief Copies the block (i, j) of the matrix-by-blocks structure in the internal variable *block. * \param[in] block_i - Indexes of the block in the matrix-by-blocks structure. * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. */ - double GetBlock(unsigned long block_i, unsigned long block_j, unsigned short iVar, unsigned short jVar); + su2double GetBlock(unsigned long block_i, unsigned long block_j, unsigned short iVar, unsigned short jVar); /*! * \brief Set the value of a block in the sparse matrix. @@ -139,7 +139,7 @@ class CSysMatrix { * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. * \param[in] **val_block - Block to set to A(i, j). */ - void SetBlock(unsigned long block_i, unsigned long block_j, double **val_block); + void SetBlock(unsigned long block_i, unsigned long block_j, su2double **val_block); /*! * \brief Set the value of a block in the sparse matrix. @@ -147,7 +147,7 @@ class CSysMatrix { * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. * \param[in] **val_block - Block to set to A(i, j). */ - void SetBlock(unsigned long block_i, unsigned long block_j, double *val_block); + void SetBlock(unsigned long block_i, unsigned long block_j, su2double *val_block); /*! * \brief Adds the specified block to the sparse matrix. @@ -155,7 +155,7 @@ class CSysMatrix { * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. * \param[in] **val_block - Block to add to A(i, j). */ - void AddBlock(unsigned long block_i, unsigned long block_j, double **val_block); + void AddBlock(unsigned long block_i, unsigned long block_j, su2double **val_block); /*! * \brief Subtracts the specified block to the sparse matrix. @@ -163,14 +163,14 @@ class CSysMatrix { * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. * \param[in] **val_block - Block to subtract to A(i, j). */ - void SubtractBlock(unsigned long block_i, unsigned long block_j, double **val_block); + void SubtractBlock(unsigned long block_i, unsigned long block_j, su2double **val_block); /*! * \brief Copies the block (i, j) of the matrix-by-blocks structure in the internal variable *block. * \param[in] block_i - Indexes of the block in the matrix-by-blocks structure. * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. */ - double *GetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j); + su2double *GetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j); /*! * \brief Set the value of a block in the sparse matrix. @@ -178,7 +178,7 @@ class CSysMatrix { * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. * \param[in] **val_block - Block to set to A(i, j). */ - void SetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, double *val_block); + void SetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, su2double *val_block); /*! * \brief Subtracts the specified block to the sparse matrix. @@ -186,7 +186,7 @@ class CSysMatrix { * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. * \param[in] **val_block - Block to subtract to A(i, j). */ - void SubtractBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, double *val_block); + void SubtractBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, su2double *val_block); /*! * \brief Adds the specified value to the diagonal of the (i, i) subblock @@ -194,7 +194,7 @@ class CSysMatrix { * \param[in] block_i - Index of the block in the matrix-by-blocks structure. * \param[in] val_matrix - Value to add to the diagonal elements of A(i, i). */ - void AddVal2Diag(unsigned long block_i, double val_matrix); + void AddVal2Diag(unsigned long block_i, su2double val_matrix); /*! * \brief Sets the specified value to the diagonal of the (i, i) subblock @@ -202,7 +202,7 @@ class CSysMatrix { * \param[in] block_i - Index of the block in the matrix-by-blocks structure. * \param[in] val_matrix - Value to add to the diagonal elements of A(i, i). */ - void SetVal2Diag(unsigned long block_i, double val_matrix); + void SetVal2Diag(unsigned long block_i, su2double val_matrix); /*! * \brief Calculates the matrix-vector product @@ -210,7 +210,7 @@ class CSysMatrix { * \param[in] vector * \param[out] product */ - void MatrixVectorProduct(double *matrix, double *vector, double *product); + void MatrixVectorProduct(su2double *matrix, su2double *vector, su2double *product); /*! * \brief Calculates the matrix-matrix product @@ -218,7 +218,7 @@ class CSysMatrix { * \param[in] matrix_b * \param[out] product */ - void MatrixMatrixProduct(double *matrix_a, double *matrix_b, double *product); + void MatrixMatrixProduct(su2double *matrix_a, su2double *matrix_b, su2double *product); /*! * \brief Deletes the values of the row i of the sparse matrix. @@ -232,7 +232,7 @@ class CSysMatrix { * \param[in] rhs - Right-hand-side of the linear system. * \return Solution of the linear system (overwritten on rhs). */ - void Gauss_Elimination(unsigned long block_i, double* rhs); + void Gauss_Elimination(unsigned long block_i, su2double* rhs); /*! * \brief Performs the Gauss Elimination algorithm to solve the linear subsystem of the (i, i) subblock and rhs. @@ -240,7 +240,7 @@ class CSysMatrix { * \param[in] rhs - Right-hand-side of the linear system. * \return Solution of the linear system (overwritten on rhs). */ - void Gauss_Elimination(double* Block, double* rhs); + void Gauss_Elimination(su2double* Block, su2double* rhs); /*! * \brief Performs the Gauss Elimination algorithm to solve the linear subsystem of the (i, i) subblock and rhs. @@ -248,10 +248,10 @@ class CSysMatrix { * \param[in] rhs - Right-hand-side of the linear system. * \return Solution of the linear system (overwritten on rhs). */ - void Gauss_Elimination_ILUMatrix(unsigned long block_i, double* rhs); + void Gauss_Elimination_ILUMatrix(unsigned long block_i, su2double* rhs); /*! - * \fn void CSysMatrix::ProdBlockVector(unsigned long block_i, unsigned long block_j, double* vec); + * \fn void CSysMatrix::ProdBlockVector(unsigned long block_i, unsigned long block_j, su2double* vec); * \brief Performs the product of the block (i, j) by vector vec. * \param[in] block_i - Indexes of the block in the matrix-by-blocks structure. * \param[in] block_j - Indexes of the block in the matrix-by-blocks structure. @@ -318,43 +318,43 @@ class CSysMatrix { /*! * \brief Performs the product of two block matrices. */ - void GetMultBlockBlock(double *c, double *a, double *b); + void GetMultBlockBlock(su2double *c, su2double *a, su2double *b); /*! * \brief Performs the product of a block matrices by a vector. */ - void GetMultBlockVector(double *c, double *a, double *b); + void GetMultBlockVector(su2double *c, su2double *a, su2double *b); /*! * \brief Performs the subtraction of two matrices. */ - void GetSubsBlock(double *c, double *a, double *b); + void GetSubsBlock(su2double *c, su2double *a, su2double *b); /*! * \brief Performs the subtraction of two vectors. */ - void GetSubsVector(double *c, double *a, double *b); + void GetSubsVector(su2double *c, su2double *a, su2double *b); /*! * \brief Inverse diagonal block. * \param[in] block_i - Indexes of the block in the matrix-by-blocks structure. * \param[out] invBlock - Inverse block. */ - void InverseDiagonalBlock(unsigned long block_i, double *invBlock); + void InverseDiagonalBlock(unsigned long block_i, su2double *invBlock); /*! * \brief Inverse diagonal block. * \param[in] block_i - Indexes of the block in the matrix-by-blocks structure. * \param[out] invBlock - Inverse block. */ - void InverseDiagonalBlock_ILUMatrix(unsigned long block_i, double *invBlock); + void InverseDiagonalBlock_ILUMatrix(unsigned long block_i, su2double *invBlock); /*! * \brief Inverse a block. * \param[in] Block - block matrix. * \param[out] invBlock - Inverse block. */ - void InverseBlock(double *Block, double *invBlock); + void InverseBlock(su2double *Block, su2double *invBlock); /*! * \brief Build the Jacobi preconditioner. @@ -378,7 +378,7 @@ class CSysMatrix { * \param[in] monitoring - turn on priting residuals from solver to screen. * \param[out] x - CSysVector containing the result of the smoothing (x^k+1 = x^k + M^-1*(b - A*x^k). */ - unsigned long Jacobi_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, double tol, unsigned long m, double *residual, bool monitoring, CGeometry *geometry, CConfig *config); + unsigned long Jacobi_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, su2double tol, unsigned long m, su2double *residual, bool monitoring, CGeometry *geometry, CConfig *config); /*! * \brief Build the ILU0 preconditioner. @@ -402,7 +402,7 @@ class CSysMatrix { * \param[in] monitoring - turn on priting residuals from solver to screen. * \param[out] x - CSysVector containing the result of the smoothing (x^k+1 = x^k + M^-1*(b - A*x^k). */ - unsigned long ILU0_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, double tol, unsigned long m, double *residual, bool monitoring, CGeometry *geometry, CConfig *config); + unsigned long ILU0_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, su2double tol, unsigned long m, su2double *residual, bool monitoring, CGeometry *geometry, CConfig *config); /*! * \brief Multiply CSysVector by the preconditioner @@ -421,7 +421,7 @@ class CSysMatrix { * \param[in] monitoring - turn on priting residuals from solver to screen. * \param[out] x - CSysVector containing the result of the smoothing (x^k+1 = x^k + M^-1*(b - A*x^k). */ - unsigned long LU_SGS_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, double tol, unsigned long m, double *residual, bool monitoring, CGeometry *geometry, CConfig *config); + unsigned long LU_SGS_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, su2double tol, unsigned long m, su2double *residual, bool monitoring, CGeometry *geometry, CConfig *config); /*! * \brief Build the Linelet preconditioner. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 11a1c6c6206..c7ce8d5bf4a 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -125,23 +125,23 @@ const unsigned int MESH_1 = 1; /*!< \brief Definition of the finest grid level. const unsigned int ZONE_0 = 0; /*!< \brief Definition of the first grid domain. */ const unsigned int ZONE_1 = 1; /*!< \brief Definition of the first grid domain. */ -const double AVOGAD_CONSTANT = 6.0221415E26; /*!< \brief Avogardro's constant, number of particles in one kmole. */ -const double BOLTZMANN_CONSTANT = 1.3806503E-23; /*! \brief Boltzmann's constant [J K^-1] */ -const double UNIVERSAL_GAS_CONSTANT = 8314.462175; /*! \brief Universal gas constant [J kmol^-1 K^-1] */ -const double ELECTRON_CHARGE = 1.60217646E-19; /*!< \brief Electronic charge constant. */ -const double ELECTRON_MASS = 9.10938188E-31; /*!< \brief Mass of an electron. */ -const double FREE_PERMITTIVITY = 8.8541878176E-12; /*!< \brief Premittivity of free space. */ -const double MAGNETIC_CONSTANT = 1.25663706E-6; /*!< \brief magnetic permeability of free space. */ -const double STANDART_GRAVITY = 9.80665; /*!< \brief Acceleration due to gravity at surface of earth. */ +const su2double AVOGAD_CONSTANT = 6.0221415E26; /*!< \brief Avogardro's constant, number of particles in one kmole. */ +const su2double BOLTZMANN_CONSTANT = 1.3806503E-23; /*! \brief Boltzmann's constant [J K^-1] */ +const su2double UNIVERSAL_GAS_CONSTANT = 8314.462175; /*! \brief Universal gas constant [J kmol^-1 K^-1] */ +const su2double ELECTRON_CHARGE = 1.60217646E-19; /*!< \brief Electronic charge constant. */ +const su2double ELECTRON_MASS = 9.10938188E-31; /*!< \brief Mass of an electron. */ +const su2double FREE_PERMITTIVITY = 8.8541878176E-12; /*!< \brief Premittivity of free space. */ +const su2double MAGNETIC_CONSTANT = 1.25663706E-6; /*!< \brief magnetic permeability of free space. */ +const su2double STANDART_GRAVITY = 9.80665; /*!< \brief Acceleration due to gravity at surface of earth. */ -const double EPS = 1.0E-16; /*!< \brief Error scale. */ -const double TURB_EPS = 1.0E-16; /*!< \brief Turbulent Error scale. */ +const su2double EPS = 1.0E-16; /*!< \brief Error scale. */ +const su2double TURB_EPS = 1.0E-16; /*!< \brief Turbulent Error scale. */ -const double ONE2 = 0.5; /*!< \brief One divided by two. */ -const double TWO3 = 2.0 / 3.0; /*!< \brief Two divided by three. */ -const double FOUR3 = 4.0 / 3.0; /*!< \brief Four divided by three. */ +const su2double ONE2 = 0.5; /*!< \brief One divided by two. */ +const su2double TWO3 = 2.0 / 3.0; /*!< \brief Two divided by three. */ +const su2double FOUR3 = 4.0 / 3.0; /*!< \brief Four divided by three. */ -const double PI_NUMBER = 4.0 * atan(1.0); /*!< \brief Pi number. */ +const su2double PI_NUMBER = 4.0 * atan(1.0); /*!< \brief Pi number. */ const int MASTER_NODE = 0; /*!< \brief Master node for MPI parallelization. */ const int SINGLE_NODE = 1; /*!< \brief There is only a node in the MPI parallelization. */ @@ -1363,12 +1363,12 @@ class COptionEnum : public COptionBase{ }; class COptionDouble : public COptionBase{ - double & field; // Reference to the fieldname - double def; // Default value + su2double & field; // Reference to the fieldname + su2double def; // Default value string name; // identifier for the option public: - COptionDouble(string option_field_name, double & option_field, double default_value) : field(option_field) { + COptionDouble(string option_field_name, su2double & option_field, su2double default_value) : field(option_field) { this->def = default_value; this->name = option_field_name; } @@ -1376,17 +1376,17 @@ class COptionDouble : public COptionBase{ ~COptionDouble() {}; string SetValue(vector option_value) { // check if there is more than one value - string out = optionCheckMultipleValues(option_value, "double", this->name); + string out = optionCheckMultipleValues(option_value, "su2double", this->name); if (out.compare("") != 0) { return out; } istringstream is(option_value[0]); - double val; + su2double val; if (is >> val) { this->field = val; return ""; } - return badValue(option_value, "double", this->name); + return badValue(option_value, "su2double", this->name); } void SetDefault() { this->field = this->def; @@ -1407,7 +1407,7 @@ class COptionString : public COptionBase{ ~COptionString() {}; string SetValue(vector option_value) { // check if there is more than one value - string out = optionCheckMultipleValues(option_value, "double", this->name); + string out = optionCheckMultipleValues(option_value, "su2double", this->name); if (out.compare("") != 0) { return out; } @@ -1620,13 +1620,13 @@ class COptionEnumList : public COptionBase{ }; class COptionDoubleArray : public COptionBase{ - double * & field; // Reference to the feildname + su2double * & field; // Reference to the feildname string name; // identifier for the option const int size; - double * default_value; + su2double * default_value; public: - COptionDoubleArray(string option_field_name, const int list_size, double * & option_field, double * default_value) : field(option_field), size(list_size) { + COptionDoubleArray(string option_field_name, const int list_size, su2double * & option_field, su2double * default_value) : field(option_field), size(list_size) { this->name = option_field_name; this->default_value = default_value; } @@ -1648,13 +1648,13 @@ class COptionDoubleArray : public COptionBase{ newstring.append(" found"); return newstring; } - double * vals = new double[this->size]; + su2double * vals = new su2double[this->size]; for (int i = 0; i < this->size; i++) { istringstream is(option_value[i]); - double val; + su2double val; if (!(is >> val)) { delete [] vals; - return badValue(option_value, "double array", this->name); + return badValue(option_value, "su2double array", this->name); } vals[i] = val; } @@ -1668,12 +1668,12 @@ class COptionDoubleArray : public COptionBase{ }; class COptionDoubleList : public COptionBase{ - double * & field; // Reference to the feildname + su2double * & field; // Reference to the feildname string name; // identifier for the option unsigned short & size; public: - COptionDoubleList(string option_field_name, unsigned short & list_size, double * & option_field) : field(option_field), size(list_size) { + COptionDoubleList(string option_field_name, unsigned short & list_size, su2double * & option_field) : field(option_field), size(list_size) { this->name = option_field_name; } @@ -1690,13 +1690,13 @@ class COptionDoubleList : public COptionBase{ this->size = option_size; // Parse all of the options - double * vals = new double[option_size]; + su2double * vals = new su2double[option_size]; for (int i = 0; i < option_size; i++) { istringstream is(option_value[i]); - double val; + su2double val; if (!(is >> val)) { delete [] vals; - return badValue(option_value, "double list", this->name); + return badValue(option_value, "su2double list", this->name); } vals[i] = val; } @@ -1887,12 +1887,12 @@ class COptionMathProblem : public COptionBase{ class COptionDVParam : public COptionBase{ string name; // identifier for the option unsigned short & nDV; - double ** & paramDV; + su2double ** & paramDV; string * & FFDTag; unsigned short* & design_variable; public: - COptionDVParam(string option_field_name, unsigned short & nDV_field, double** & paramDV_field, string* & FFDTag_field, unsigned short * & design_variable_field) : nDV(nDV_field), paramDV(paramDV_field), FFDTag(FFDTag_field), design_variable(design_variable_field) { + COptionDVParam(string option_field_name, unsigned short & nDV_field, su2double** & paramDV_field, string* & FFDTag_field, unsigned short * & design_variable_field) : nDV(nDV_field), paramDV(paramDV_field), FFDTag(FFDTag_field), design_variable(design_variable_field) { this->name = option_field_name; } @@ -1940,9 +1940,9 @@ class COptionDVParam : public COptionBase{ return newstring; } - this->paramDV = new double*[this->nDV]; + this->paramDV = new su2double*[this->nDV]; for (unsigned short iDV = 0; iDV < this->nDV; iDV++) { - this->paramDV[iDV] = new double[MAX_PARAMETERS]; + this->paramDV[iDV] = new su2double[MAX_PARAMETERS]; } this->FFDTag = new string[this->nDV]; @@ -2029,11 +2029,11 @@ class COptionDVParam : public COptionBase{ class COptionFFDDef : public COptionBase{ string name; unsigned short & nFFD; - double ** & CoordFFD; + su2double ** & CoordFFD; string * & FFDTag; public: - COptionFFDDef(string option_field_name, unsigned short & nFFD_field, double** & coordFFD_field, string* & FFDTag_field) : nFFD(nFFD_field), CoordFFD(coordFFD_field), FFDTag(FFDTag_field) { + COptionFFDDef(string option_field_name, unsigned short & nFFD_field, su2double** & coordFFD_field, string* & FFDTag_field) : nFFD(nFFD_field), CoordFFD(coordFFD_field), FFDTag(FFDTag_field) { this->name = option_field_name; } @@ -2072,9 +2072,9 @@ class COptionFFDDef : public COptionBase{ // One more design variable than semicolon this->nFFD++; - this->CoordFFD = new double*[this->nFFD]; + this->CoordFFD = new su2double*[this->nFFD]; for (unsigned short iFFD = 0; iFFD < this->nFFD; iFFD++) { - this->CoordFFD[iFFD] = new double[25]; + this->CoordFFD[iFFD] = new su2double[25]; } this->FFDTag = new string[this->nFFD]; @@ -2208,16 +2208,16 @@ class COptionFFDDegree : public COptionBase{ }; -// Class where the option is represented by (String, double, string, double, ...) +// Class where the option is represented by (String, su2double, string, su2double, ...) class COptionStringDoubleList : public COptionBase{ string name; // identifier for the option unsigned short & size; // how many strings are there (same as number of doubles) string * & s_f; // Reference to the string fields - double* & d_f; // reference to the double fields + su2double* & d_f; // reference to the su2double fields public: - COptionStringDoubleList(string option_field_name, unsigned short & list_size, string * & string_field, double* & double_field) : size(list_size), s_f(string_field), d_f(double_field) { + COptionStringDoubleList(string option_field_name, unsigned short & list_size, string * & string_field, su2double* & double_field) : size(list_size), s_f(string_field), d_f(double_field) { this->name = option_field_name; } @@ -2239,14 +2239,14 @@ class COptionStringDoubleList : public COptionBase{ unsigned long nVals = totalVals / 2; this->size = nVals; this->s_f = new string[nVals]; - this->d_f = new double[nVals]; + this->d_f = new su2double[nVals]; for (int i = 0; i < nVals; i++) { - this->s_f[i].assign(option_value[2*i]); // 2 because have double and string + this->s_f[i].assign(option_value[2*i]); // 2 because have su2double and string istringstream is(option_value[2*i + 1]); - double val; + su2double val; if (!(is >> val)) { - return badValue(option_value, "string double", this->name); + return badValue(option_value, "string su2double", this->name); } this->d_f[i] = val; } @@ -2263,12 +2263,12 @@ class COptionInlet : public COptionBase{ string name; // identifier for the option unsigned short & size; string * & marker; - double * & ttotal; - double * & ptotal; - double ** & flowdir; + su2double * & ttotal; + su2double * & ptotal; + su2double ** & flowdir; public: - COptionInlet(string option_field_name, unsigned short & nMarker_Inlet, string* & Marker_Inlet, double* & Ttotal, double* & Ptotal, double** & FlowDir) : size(nMarker_Inlet), marker(Marker_Inlet), ttotal(Ttotal), ptotal(Ptotal), flowdir(FlowDir) { + COptionInlet(string option_field_name, unsigned short & nMarker_Inlet, string* & Marker_Inlet, su2double* & Ttotal, su2double* & Ptotal, su2double** & FlowDir) : size(nMarker_Inlet), marker(Marker_Inlet), ttotal(Ttotal), ptotal(Ptotal), flowdir(FlowDir) { this->name = option_field_name; } @@ -2300,11 +2300,11 @@ class COptionInlet : public COptionBase{ unsigned long nVals = totalVals / 6; this->size = nVals; this->marker = new string[nVals]; - this->ttotal = new double[nVals]; - this->ptotal = new double[nVals]; - this->flowdir = new double*[nVals]; + this->ttotal = new su2double[nVals]; + this->ptotal = new su2double[nVals]; + this->flowdir = new su2double*[nVals]; for (int i = 0; i < nVals; i++) { - this->flowdir[i] = new double[3]; + this->flowdir[i] = new su2double[3]; } for (int i = 0; i < nVals; i++) { @@ -2351,12 +2351,12 @@ class COptionRiemann : public COptionBase{ string name; // identifier for the option unsigned short & size; string * & marker; - double * & var1; - double * & var2; - double ** & flowdir; + su2double * & var1; + su2double * & var2; + su2double ** & flowdir; public: - COptionRiemann(string option_field_name, unsigned short & nMarker_Riemann, string* & Marker_Riemann, unsigned short* & option_field, const map m, double* & var1, double* & var2, double** & FlowDir) : size(nMarker_Riemann), + COptionRiemann(string option_field_name, unsigned short & nMarker_Riemann, string* & Marker_Riemann, unsigned short* & option_field, const map m, su2double* & var1, su2double* & var2, su2double** & FlowDir) : size(nMarker_Riemann), marker(Marker_Riemann), field(option_field), var1(var1), var2(var2), flowdir(FlowDir) { this->name = option_field_name; this->m = m; @@ -2392,13 +2392,13 @@ class COptionRiemann : public COptionBase{ unsigned long nVals = totalVals / 7; this->size = nVals; this->marker = new string[nVals]; - this->var1 = new double[nVals]; - this->var2 = new double[nVals]; - this->flowdir = new double*[nVals]; + this->var1 = new su2double[nVals]; + this->var2 = new su2double[nVals]; + this->flowdir = new su2double*[nVals]; this->field = new unsigned short[nVals]; for (int i = 0; i < nVals; i++) { - this->flowdir[i] = new double[3]; + this->flowdir[i] = new su2double[3]; } for (int i = 0; i < nVals; i++) { @@ -2454,11 +2454,11 @@ class COptionExhaust : public COptionBase{ string name; // identifier for the option unsigned short & size; string * & marker; - double * & ttotal; - double * & ptotal; + su2double * & ttotal; + su2double * & ptotal; public: - COptionExhaust(string option_field_name, unsigned short & nMarker_Exhaust, string* & Marker_Exhaust, double* & Ttotal, double* & Ptotal) : size(nMarker_Exhaust), marker(Marker_Exhaust), ttotal(Ttotal), ptotal(Ptotal) { + COptionExhaust(string option_field_name, unsigned short & nMarker_Exhaust, string* & Marker_Exhaust, su2double* & Ttotal, su2double* & Ptotal) : size(nMarker_Exhaust), marker(Marker_Exhaust), ttotal(Ttotal), ptotal(Ptotal) { this->name = option_field_name; } @@ -2489,8 +2489,8 @@ class COptionExhaust : public COptionBase{ unsigned long nVals = totalVals / 3; this->size = nVals; this->marker = new string[nVals]; - this->ttotal = new double[nVals]; - this->ptotal = new double[nVals]; + this->ttotal = new su2double[nVals]; + this->ptotal = new su2double[nVals]; for (int i = 0; i < nVals; i++) { this->marker[i].assign(option_value[3*i]); @@ -2519,11 +2519,11 @@ class COptionBleed : public COptionBase{ string name; // identifier for the option unsigned short & size; string * & marker; - double * & massflow_target; - double * & temp_target; + su2double * & massflow_target; + su2double * & temp_target; public: - COptionBleed(string option_field_name, unsigned short & nMarker_Bleed, string* & Marker_Bleed, double* & MassFlow_Target, double* & Temp_Target) : size(nMarker_Bleed), marker(Marker_Bleed), massflow_target(MassFlow_Target), temp_target(Temp_Target) { + COptionBleed(string option_field_name, unsigned short & nMarker_Bleed, string* & Marker_Bleed, su2double* & MassFlow_Target, su2double* & Temp_Target) : size(nMarker_Bleed), marker(Marker_Bleed), massflow_target(MassFlow_Target), temp_target(Temp_Target) { this->name = option_field_name; } @@ -2554,8 +2554,8 @@ class COptionBleed : public COptionBase{ unsigned long nVals = totalVals / 3; this->size = nVals; this->marker = new string[nVals]; - this->massflow_target = new double[nVals]; - this->temp_target = new double[nVals]; + this->massflow_target = new su2double[nVals]; + this->temp_target = new su2double[nVals]; for (int i = 0; i < nVals; i++) { this->marker[i].assign(option_value[3*i]); @@ -2584,14 +2584,14 @@ class COptionPeriodic : public COptionBase{ unsigned short & size; string * & marker_bound; string * & marker_donor; - double ** & rot_center; - double ** & rot_angles; - double ** & translation; + su2double ** & rot_center; + su2double ** & rot_angles; + su2double ** & translation; public: COptionPeriodic(const string option_field_name, unsigned short & nMarker_PerBound, string* & Marker_PerBound, string* & Marker_PerDonor, - double** & RotCenter, double** & RotAngles, double** & Translation) : size(nMarker_PerBound), marker_bound(Marker_PerBound), marker_donor(Marker_PerDonor), rot_center(RotCenter), rot_angles(RotAngles), translation(Translation) { + su2double** & RotCenter, su2double** & RotAngles, su2double** & Translation) : size(nMarker_PerBound), marker_bound(Marker_PerBound), marker_donor(Marker_PerDonor), rot_center(RotCenter), rot_angles(RotAngles), translation(Translation) { this->name = option_field_name; } @@ -2628,16 +2628,16 @@ class COptionPeriodic : public COptionBase{ this->size = nVals; this->marker_bound = new string[nVals]; this->marker_donor = new string[nVals]; - this->rot_center = new double*[nVals]; - this->rot_angles = new double*[nVals]; - this->translation = new double*[nVals]; + this->rot_center = new su2double*[nVals]; + this->rot_angles = new su2double*[nVals]; + this->translation = new su2double*[nVals]; for (int i = 0; i < nVals; i++) { - this->rot_center[i] = new double[3]; - this->rot_angles[i] = new double[3]; - this->translation[i] = new double[3]; + this->rot_center[i] = new su2double[3]; + this->rot_angles[i] = new su2double[3]; + this->translation[i] = new su2double[3]; } - double deg2rad = PI_NUMBER/180.0; + su2double deg2rad = PI_NUMBER/180.0; for (int i = 0; i < (nVals/2); i++) { this->marker_bound[i].assign(option_value[mod_num*i]); @@ -2771,16 +2771,16 @@ class COptionActuatorDisk : public COptionBase{ unsigned short & outlet_size; string * & marker_inlet; string * & marker_outlet; - double ** & origin; - double * & root_radius; - double * & tip_radius; - double * & press_jump; - double * & temp_jump; - double * & omega; + su2double ** & origin; + su2double * & root_radius; + su2double * & tip_radius; + su2double * & press_jump; + su2double * & temp_jump; + su2double * & omega; unsigned short * & distribution; public: - COptionActuatorDisk(const string name, unsigned short & nMarker_ActDisk_Inlet, unsigned short & nMarker_ActDisk_Outlet, string * & Marker_ActDisk_Inlet, string * & Marker_ActDisk_Outlet, double ** & ActDisk_Origin, double * & ActDisk_RootRadius, double * & ActDisk_TipRadius, double * & ActDisk_PressJump, double * & ActDisk_TempJump, double * & ActDisk_Omega, unsigned short * & ActDisk_Distribution) : inlet_size(nMarker_ActDisk_Inlet), outlet_size(nMarker_ActDisk_Outlet), marker_inlet(Marker_ActDisk_Inlet), marker_outlet(Marker_ActDisk_Outlet), origin(ActDisk_Origin), root_radius(ActDisk_RootRadius), tip_radius(ActDisk_TipRadius), press_jump(ActDisk_PressJump), temp_jump(ActDisk_TempJump), omega(ActDisk_Omega), distribution(ActDisk_Distribution) { + COptionActuatorDisk(const string name, unsigned short & nMarker_ActDisk_Inlet, unsigned short & nMarker_ActDisk_Outlet, string * & Marker_ActDisk_Inlet, string * & Marker_ActDisk_Outlet, su2double ** & ActDisk_Origin, su2double * & ActDisk_RootRadius, su2double * & ActDisk_TipRadius, su2double * & ActDisk_PressJump, su2double * & ActDisk_TempJump, su2double * & ActDisk_Omega, unsigned short * & ActDisk_Distribution) : inlet_size(nMarker_ActDisk_Inlet), outlet_size(nMarker_ActDisk_Outlet), marker_inlet(Marker_ActDisk_Inlet), marker_outlet(Marker_ActDisk_Outlet), origin(ActDisk_Origin), root_radius(ActDisk_RootRadius), tip_radius(ActDisk_TipRadius), press_jump(ActDisk_PressJump), temp_jump(ActDisk_TempJump), omega(ActDisk_Omega), distribution(ActDisk_Distribution) { this->name = name; } @@ -2806,16 +2806,16 @@ class COptionActuatorDisk : public COptionBase{ this->outlet_size = nVals; this->marker_inlet = new string[this->inlet_size]; this->marker_outlet = new string[this->outlet_size]; - this->root_radius = new double[this->inlet_size]; - this->tip_radius = new double[this->inlet_size]; - this->press_jump = new double[this->outlet_size]; - this->temp_jump = new double[this->outlet_size]; - this->omega = new double[this->inlet_size]; + this->root_radius = new su2double[this->inlet_size]; + this->tip_radius = new su2double[this->inlet_size]; + this->press_jump = new su2double[this->outlet_size]; + this->temp_jump = new su2double[this->outlet_size]; + this->omega = new su2double[this->inlet_size]; this->distribution = new unsigned short[this->inlet_size]; - this->origin = new double*[this->inlet_size]; + this->origin = new su2double*[this->inlet_size]; for (int i = 0; i < this->inlet_size; i++) { - this->origin[i] = new double[3]; + this->origin[i] = new su2double[3]; } string tname = "actuator disk"; diff --git a/Common/include/primal_grid_structure.hpp b/Common/include/primal_grid_structure.hpp index 731ddcafc54..74961027f89 100644 --- a/Common/include/primal_grid_structure.hpp +++ b/Common/include/primal_grid_structure.hpp @@ -54,8 +54,8 @@ class CPrimalGrid { protected: unsigned long *Nodes; /*!< \brief Vector to store the global nodes of an element. */ long *Neighbor_Elements; /*!< \brief Vector to store the elements surronding an element. */ - double *Coord_CG; /*!< \brief Coordinates of the center-of-gravity of the element. */ - double **Coord_FaceElems_CG; /*!< \brief Coordinates of the center-of-gravity of the face of the + su2double *Coord_CG; /*!< \brief Coordinates of the center-of-gravity of the element. */ + su2double **Coord_FaceElems_CG; /*!< \brief Coordinates of the center-of-gravity of the face of the elements. */ static unsigned short nDim; /*!< \brief Dimension of the element (2D or 3D) useful for triangles, rectangles and edges. */ @@ -102,14 +102,14 @@ class CPrimalGrid { * \brief Set the center of gravity of an element (including edges). * \param[in] val_coord - Coordinates of the element. */ - void SetCG(double **val_coord); + void SetCG(su2double **val_coord); /*! * \brief Get the center of gravity of an element (including edges). * \param[in] val_dim - Coordinate of the center of gravity. * \return Coordinates of the center of gravity. */ - double GetCG(unsigned short val_dim); + su2double GetCG(unsigned short val_dim); /*! * \brief Get the CG of a face of an element. @@ -117,7 +117,7 @@ class CPrimalGrid { * \param[in] val_dim - Coordinate of the center of gravity. * \return Coordinates of the center of gravity. */ - double GetFaceCG(unsigned short val_face, unsigned short val_dim); + su2double GetFaceCG(unsigned short val_face, unsigned short val_dim); /*! * \brief Get all the neighbors of an element. diff --git a/Common/include/primal_grid_structure.inl b/Common/include/primal_grid_structure.inl index 8b48ec41341..d0c7640baae 100644 --- a/Common/include/primal_grid_structure.inl +++ b/Common/include/primal_grid_structure.inl @@ -45,9 +45,9 @@ inline void CPrimalGrid::SetNeighbor_Elements(unsigned long val_elem, unsigned s inline long CPrimalGrid::GetNeighbor_Elements(unsigned short val_face) { return Neighbor_Elements[val_face]; } -inline double CPrimalGrid::GetCG(unsigned short val_dim) { return Coord_CG[val_dim]; } +inline su2double CPrimalGrid::GetCG(unsigned short val_dim) { return Coord_CG[val_dim]; } -inline double CPrimalGrid::GetFaceCG(unsigned short val_face, unsigned short val_dim) { return Coord_FaceElems_CG[val_face][val_dim]; } +inline su2double CPrimalGrid::GetFaceCG(unsigned short val_face, unsigned short val_dim) { return Coord_FaceElems_CG[val_face][val_dim]; } inline void CPrimalGrid::SetDivide (bool val_divide) { Divide = val_divide; } diff --git a/Common/include/su2mpi.hpp b/Common/include/su2mpi.hpp index 9683561e8fa..85db9b6555f 100644 --- a/Common/include/su2mpi.hpp +++ b/Common/include/su2mpi.hpp @@ -42,4 +42,4 @@ namespace SU2MPI{ void PrintAndFinalize(std::string); int Rank(); } -*/ \ No newline at end of file +*/ diff --git a/Common/include/vector_structure.hpp b/Common/include/vector_structure.hpp index efbededfaf3..8de740340d7 100644 --- a/Common/include/vector_structure.hpp +++ b/Common/include/vector_structure.hpp @@ -44,7 +44,7 @@ using namespace std; -const double eps = numeric_limits::epsilon(); /*!< \brief machine epsilon */ +const su2double eps = numeric_limits::epsilon(); /*!< \brief machine epsilon */ /*! * \class CSysVector @@ -67,7 +67,7 @@ class CSysVector { unsigned short nVar; /*!< \brief number of elements in a block */ unsigned long nBlk; /*!< \brief number of blocks (or number of blocks on this processor) */ unsigned long nBlkDomain; /*!< \brief number of blocks (or number of blocks on this processor without Ghost cells) */ - double* vec_val; /*!< \brief storage for the element values */ + su2double* vec_val; /*!< \brief storage for the element values */ public: @@ -81,7 +81,7 @@ class CSysVector { * \param[in] size - number of elements locally * \param[in] val - default value for elements */ - CSysVector(const unsigned long & size, const double & val = 0.0); + CSysVector(const unsigned long & size, const su2double & val = 0.0); /*! * \brief constructor of the class. @@ -89,7 +89,7 @@ class CSysVector { * \param[in] numVar - number of variables in each block * \param[in] val - default value for elements */ - CSysVector(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, const double & val = 0.0); + CSysVector(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, const su2double & val = 0.0); /*! * \brief copy constructor of the class. @@ -107,7 +107,7 @@ class CSysVector { * \param[in] size - number of elements locally * \param[in] u_array - vector stored as array being copied */ - explicit CSysVector(const unsigned long & size, const double* u_array); + explicit CSysVector(const unsigned long & size, const su2double* u_array); /*! * \brief constructor from array @@ -117,7 +117,7 @@ class CSysVector { * \param[in] u_array - vector stored as array being copied */ explicit CSysVector(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, - const double* u_array); + const su2double* u_array); /*! * \brief class destructor @@ -130,7 +130,7 @@ class CSysVector { * \param[in] numVar - number of variables in each block * \param[in] val - default value for elements */ - void Initialize(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, const double & val = 0.0); + void Initialize(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, const su2double & val = 0.0); /*! * \brief return the number of local elements in the CSysVector @@ -162,14 +162,14 @@ class CSysVector { * \param[in] a - scalar factor for x * \param[in] x - CSysVector that is being scaled */ - void Equals_AX(const double & a, CSysVector & x); + void Equals_AX(const su2double & a, CSysVector & x); /*! * \brief adds a scaled CSysVector to calling CSysVector * \param[in] a - scalar factor for x * \param[in] x - CSysVector that is being scaled */ - void Plus_AX(const double & a, CSysVector & x); + void Plus_AX(const su2double & a, CSysVector & x); /*! * \brief general linear combination of two CSysVectors @@ -178,7 +178,7 @@ class CSysVector { * \param[in] b - scalar factor for y * \param[in] y - second CSysVector in linear combination */ - void Equals_AX_Plus_BY(const double & a, CSysVector & x, const double & b, CSysVector & y); + void Equals_AX_Plus_BY(const su2double & a, CSysVector & x, const su2double & b, CSysVector & y); /*! * \brief assignment operator with deep copy @@ -187,10 +187,10 @@ class CSysVector { CSysVector & operator=(const CSysVector & u); /*! - * \brief CSysVector=double assignment operator + * \brief CSysVector=su2double assignment operator * \param[in] val - value assigned to each element of CSysVector */ - CSysVector & operator=(const double & val); + CSysVector & operator=(const su2double & val); /*! * \brief addition operator @@ -220,71 +220,71 @@ class CSysVector { * \brief vector * scalar multiplication operator * \param[in] val - value to multiply *this by */ - CSysVector operator*(const double & val) const; + CSysVector operator*(const su2double & val) const; /*! * \brief scalar * vector multiplication operator * \param[in] val - scalar value to multiply by * \param[in] u - CSysVector having its elements scaled */ - friend CSysVector operator*(const double & val, const CSysVector & u); + friend CSysVector operator*(const su2double & val, const CSysVector & u); /*! * \brief compound scalar multiplication-assignment operator * \param[in] val - value to multiply calling object by */ - CSysVector & operator*=(const double & val); + CSysVector & operator*=(const su2double & val); /*! * \brief vector-scalar division operator (no scalar/vector operator) * \param[in] val - value to divide elements of *this by */ - CSysVector operator/(const double & val) const; + CSysVector operator/(const su2double & val) const; /*! * \brief compound scalar division-assignment operator * \param[in] val - value to divide elements of calling object by */ - CSysVector & operator/=(const double & val); + CSysVector & operator/=(const su2double & val); /*! * \brief indexing operator with assignment permitted * \param[in] i = local index to access */ - double & operator[](const unsigned long & i); + su2double & operator[](const unsigned long & i); /*! * \brief indexing operator with assignment not permitted * \param[in] i = local index to access */ - const double & operator[](const unsigned long & i) const; + const su2double & operator[](const unsigned long & i) const; /*! * \brief the L2 norm of the CSysVector * \result the L2 norm */ - double norm() const; + su2double norm() const; /*! * \brief copies the contents of the calling CSysVector into an array * \param[out] u_array - array into which information is being copied * \pre u_array must be allocated and have the same size as CSysVector */ - void CopyToArray(double* u_array); + void CopyToArray(su2double* u_array); /*! * \brief Subtract val_residual to the residual. * \param[in] val_ipoint - index of the point where subtract the residual. * \param[in] val_residual - Value to subtract to the residual. */ - void SubtractBlock(unsigned long val_ipoint, double *val_residual); + void SubtractBlock(unsigned long val_ipoint, su2double *val_residual); /*! * \brief Add val_residual to the residual. * \param[in] val_ipoint - index of the point where add the residual. * \param[in] val_residual - Value to add to the residual. */ - void AddBlock(unsigned long val_ipoint, double *val_residual); + void AddBlock(unsigned long val_ipoint, su2double *val_residual); /*! * \brief Set val_residual to the residual. @@ -292,14 +292,14 @@ class CSysVector { * \param[in] val_var - inde of the residual to be set. * \param[in] val_residual - Value to set to the residual. */ - void SetBlock(unsigned long val_ipoint, unsigned short val_var, double val_residual); + void SetBlock(unsigned long val_ipoint, unsigned short val_var, su2double val_residual); /*! * \brief Set val_residual to the residual. * \param[in] val_ipoint - index of the point where set the residual. * \param[in] val_residual - Value to set to the residual. */ - void SetBlock(unsigned long val_ipoint, double *val_residual); + void SetBlock(unsigned long val_ipoint, su2double *val_residual); /*! * \brief Set the residual to zero. @@ -318,7 +318,7 @@ class CSysVector { * \param[in] val_ipoint - index of the point where set the residual. * \return Pointer to the residual. */ - double *GetBlock(unsigned long val_ipoint); + su2double *GetBlock(unsigned long val_ipoint); /*! * \brief Get the value of the residual. @@ -326,7 +326,7 @@ class CSysVector { * \param[in] val_var - inde of the residual to be set. * \return Value of the residual. */ - double GetBlock(unsigned long val_ipoint, unsigned short val_var); + su2double GetBlock(unsigned long val_ipoint, unsigned short val_var); /*! @@ -334,7 +334,7 @@ class CSysVector { * \param[in] u - first CSysVector in dot product * \param[in] v - second CSysVector in dot product */ - friend double dotProd(const CSysVector & u, const CSysVector & v); + friend su2double dotProd(const CSysVector & u, const CSysVector & v); }; diff --git a/Common/include/vector_structure.inl b/Common/include/vector_structure.inl index 58c7ca67470..9ef1ac6f67f 100644 --- a/Common/include/vector_structure.inl +++ b/Common/include/vector_structure.inl @@ -50,6 +50,6 @@ inline unsigned long CSysVector::GetNBlk() const { return nBlk; } inline unsigned long CSysVector::GetNBlkDomain() const { return nBlkDomain; } -inline double & CSysVector::operator[](const unsigned long & i) { return vec_val[i]; } +inline su2double & CSysVector::operator[](const unsigned long & i) { return vec_val[i]; } -inline const double & CSysVector::operator[](const unsigned long & i) const { return vec_val[i]; } +inline const su2double & CSysVector::operator[](const unsigned long & i) const { return vec_val[i]; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index e1426c72297..ecfb28a1ac8 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -196,10 +196,10 @@ void CConfig::SetRunTime_Options(void) { void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZone) { - double default_vec_3d[3]; - double default_vec_4d[4]; - double default_vec_2d[2]; - double default_vec_6d[6]; + su2double default_vec_3d[3]; + su2double default_vec_4d[4]; + su2double default_vec_2d[2]; + su2double default_vec_6d[6]; nZone = val_nZone; iZone = val_iZone; @@ -1804,7 +1804,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Motion Origin: ---*/ if (Motion_Origin_X == NULL) { - Motion_Origin_X = new double[nMoving]; + Motion_Origin_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Motion_Origin_X[iZone] = 0.0; } else { @@ -1815,7 +1815,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Motion_Origin_Y == NULL) { - Motion_Origin_Y = new double[nMoving]; + Motion_Origin_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Motion_Origin_Y[iZone] = 0.0; } else { @@ -1826,7 +1826,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Motion_Origin_Z == NULL) { - Motion_Origin_Z = new double[nMoving]; + Motion_Origin_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Motion_Origin_Z[iZone] = 0.0; } else { @@ -1850,7 +1850,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Translation: ---*/ if (Translation_Rate_X == NULL) { - Translation_Rate_X = new double[nMoving]; + Translation_Rate_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Translation_Rate_X[iZone] = 0.0; } else { @@ -1861,7 +1861,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Translation_Rate_Y == NULL) { - Translation_Rate_Y = new double[nMoving]; + Translation_Rate_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Translation_Rate_Y[iZone] = 0.0; } else { @@ -1872,7 +1872,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Translation_Rate_Z == NULL) { - Translation_Rate_Z = new double[nMoving]; + Translation_Rate_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Translation_Rate_Z[iZone] = 0.0; } else { @@ -1885,7 +1885,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Rotation: ---*/ if (Rotation_Rate_X == NULL) { - Rotation_Rate_X = new double[nMoving]; + Rotation_Rate_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Rotation_Rate_X[iZone] = 0.0; } else { @@ -1896,7 +1896,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Rotation_Rate_Y == NULL) { - Rotation_Rate_Y = new double[nMoving]; + Rotation_Rate_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Rotation_Rate_Y[iZone] = 0.0; } else { @@ -1907,7 +1907,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Rotation_Rate_Z == NULL) { - Rotation_Rate_Z = new double[nMoving]; + Rotation_Rate_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Rotation_Rate_Z[iZone] = 0.0; } else { @@ -1920,7 +1920,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Pitching: ---*/ if (Pitching_Omega_X == NULL) { - Pitching_Omega_X = new double[nMoving]; + Pitching_Omega_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Omega_X[iZone] = 0.0; } else { @@ -1931,7 +1931,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Pitching_Omega_Y == NULL) { - Pitching_Omega_Y = new double[nMoving]; + Pitching_Omega_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Omega_Y[iZone] = 0.0; } else { @@ -1942,7 +1942,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Pitching_Omega_Z == NULL) { - Pitching_Omega_Z = new double[nMoving]; + Pitching_Omega_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Omega_Z[iZone] = 0.0; } else { @@ -1955,7 +1955,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Pitching Amplitude: ---*/ if (Pitching_Ampl_X == NULL) { - Pitching_Ampl_X = new double[nMoving]; + Pitching_Ampl_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Ampl_X[iZone] = 0.0; } else { @@ -1966,7 +1966,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Pitching_Ampl_Y == NULL) { - Pitching_Ampl_Y = new double[nMoving]; + Pitching_Ampl_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Ampl_Y[iZone] = 0.0; } else { @@ -1977,7 +1977,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Pitching_Ampl_Z == NULL) { - Pitching_Ampl_Z = new double[nMoving]; + Pitching_Ampl_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Ampl_Z[iZone] = 0.0; } else { @@ -1990,7 +1990,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Pitching Phase: ---*/ if (Pitching_Phase_X == NULL) { - Pitching_Phase_X = new double[nMoving]; + Pitching_Phase_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Phase_X[iZone] = 0.0; } else { @@ -2001,7 +2001,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Pitching_Phase_Y == NULL) { - Pitching_Phase_Y = new double[nMoving]; + Pitching_Phase_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Phase_Y[iZone] = 0.0; } else { @@ -2012,7 +2012,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Pitching_Phase_Z == NULL) { - Pitching_Phase_Z = new double[nMoving]; + Pitching_Phase_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Pitching_Phase_Z[iZone] = 0.0; } else { @@ -2025,7 +2025,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Plunging: ---*/ if (Plunging_Omega_X == NULL) { - Plunging_Omega_X = new double[nMoving]; + Plunging_Omega_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Plunging_Omega_X[iZone] = 0.0; } else { @@ -2036,7 +2036,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Plunging_Omega_Y == NULL) { - Plunging_Omega_Y = new double[nMoving]; + Plunging_Omega_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Plunging_Omega_Y[iZone] = 0.0; } else { @@ -2047,7 +2047,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Plunging_Omega_Z == NULL) { - Plunging_Omega_Z = new double[nMoving]; + Plunging_Omega_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Plunging_Omega_Z[iZone] = 0.0; } else { @@ -2060,7 +2060,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Plunging Amplitude: ---*/ if (Plunging_Ampl_X == NULL) { - Plunging_Ampl_X = new double[nMoving]; + Plunging_Ampl_X = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Plunging_Ampl_X[iZone] = 0.0; } else { @@ -2071,7 +2071,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Plunging_Ampl_Y == NULL) { - Plunging_Ampl_Y = new double[nMoving]; + Plunging_Ampl_Y = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Plunging_Ampl_Y[iZone] = 0.0; } else { @@ -2082,7 +2082,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (Plunging_Ampl_Z == NULL) { - Plunging_Ampl_Z = new double[nMoving]; + Plunging_Ampl_Z = new su2double[nMoving]; for (iZone = 0; iZone < nMoving; iZone++ ) Plunging_Ampl_Z[iZone] = 0.0; } else { @@ -2099,12 +2099,12 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ if (Unsteady_Simulation == TIME_SPECTRAL) { unsigned short N_MOTION_TYPES = 3; - double *periods; - periods = new double[N_MOTION_TYPES]; + su2double *periods; + periods = new su2double[N_MOTION_TYPES]; /*--- rotation: ---*/ - double Omega_mag_rot = sqrt(pow(Rotation_Rate_X[ZONE_0],2)+pow(Rotation_Rate_Y[ZONE_0],2)+pow(Rotation_Rate_Z[ZONE_0],2)); + su2double Omega_mag_rot = sqrt(pow(Rotation_Rate_X[ZONE_0],2)+pow(Rotation_Rate_Y[ZONE_0],2)+pow(Rotation_Rate_Z[ZONE_0],2)); if (Omega_mag_rot > 0) periods[0] = 2*PI_NUMBER/Omega_mag_rot; else @@ -2112,7 +2112,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- pitching: ---*/ - double Omega_mag_pitch = sqrt(pow(Pitching_Omega_X[ZONE_0],2)+pow(Pitching_Omega_Y[ZONE_0],2)+pow(Pitching_Omega_Z[ZONE_0],2)); + su2double Omega_mag_pitch = sqrt(pow(Pitching_Omega_X[ZONE_0],2)+pow(Pitching_Omega_Y[ZONE_0],2)+pow(Pitching_Omega_Z[ZONE_0],2)); if (Omega_mag_pitch > 0) periods[1] = 2*PI_NUMBER/Omega_mag_pitch; else @@ -2120,7 +2120,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- plunging: ---*/ - double Omega_mag_plunge = sqrt(pow(Plunging_Omega_X[ZONE_0],2)+pow(Plunging_Omega_Y[ZONE_0],2)+pow(Plunging_Omega_Z[ZONE_0],2)); + su2double Omega_mag_plunge = sqrt(pow(Plunging_Omega_X[ZONE_0],2)+pow(Plunging_Omega_Y[ZONE_0],2)+pow(Plunging_Omega_Z[ZONE_0],2)); if (Omega_mag_plunge > 0) periods[2] = 2*PI_NUMBER/Omega_mag_plunge; else @@ -2142,7 +2142,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Initialize the RefOriginMoment Pointer ---*/ RefOriginMoment = NULL; - RefOriginMoment = new double[3]; + RefOriginMoment = new su2double[3]; RefOriginMoment[0] = 0.0; RefOriginMoment[1] = 0.0; RefOriginMoment[2] = 0.0; /*--- In case the moment origin coordinates have not been declared in the @@ -2159,15 +2159,15 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (RefOriginMoment_X == NULL) { - RefOriginMoment_X = new double[nMarker_Monitoring]; + RefOriginMoment_X = new su2double[nMarker_Monitoring]; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) RefOriginMoment_X[iMarker] = 0.0; } else { if (nRefOriginMoment_X == 1) { - double aux_RefOriginMoment_X = RefOriginMoment_X[0]; + su2double aux_RefOriginMoment_X = RefOriginMoment_X[0]; delete [] RefOriginMoment_X; - RefOriginMoment_X = new double[nMarker_Monitoring]; + RefOriginMoment_X = new su2double[nMarker_Monitoring]; nRefOriginMoment_X = nMarker_Monitoring; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) @@ -2180,15 +2180,15 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (RefOriginMoment_Y == NULL) { - RefOriginMoment_Y = new double[nMarker_Monitoring]; + RefOriginMoment_Y = new su2double[nMarker_Monitoring]; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) RefOriginMoment_Y[iMarker] = 0.0; } else { if (nRefOriginMoment_Y == 1) { - double aux_RefOriginMoment_Y = RefOriginMoment_Y[0]; + su2double aux_RefOriginMoment_Y = RefOriginMoment_Y[0]; delete [] RefOriginMoment_Y; - RefOriginMoment_Y = new double[nMarker_Monitoring]; + RefOriginMoment_Y = new su2double[nMarker_Monitoring]; nRefOriginMoment_Y = nMarker_Monitoring; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) @@ -2201,15 +2201,15 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } if (RefOriginMoment_Z == NULL) { - RefOriginMoment_Z = new double[nMarker_Monitoring]; + RefOriginMoment_Z = new su2double[nMarker_Monitoring]; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) RefOriginMoment_Z[iMarker] = 0.0; } else { if (nRefOriginMoment_Z == 1) { - double aux_RefOriginMoment_Z = RefOriginMoment_Z[0]; + su2double aux_RefOriginMoment_Z = RefOriginMoment_Z[0]; delete [] RefOriginMoment_Z; - RefOriginMoment_Z = new double[nMarker_Monitoring]; + RefOriginMoment_Z = new su2double[nMarker_Monitoring]; nRefOriginMoment_Z = nMarker_Monitoring; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) @@ -2253,8 +2253,8 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Allocate memory for the plunge and pitch and initialized them to zero ---*/ if (Grid_Movement && Aeroelastic_Simulation) { - Aeroelastic_pitch = new double[nMarker_Monitoring]; - Aeroelastic_plunge = new double[nMarker_Monitoring]; + Aeroelastic_pitch = new su2double[nMarker_Monitoring]; + Aeroelastic_plunge = new su2double[nMarker_Monitoring]; for (iMarker = 0; iMarker < nMarker_Monitoring; iMarker++ ) { Aeroelastic_pitch[iMarker] = 0.0; Aeroelastic_plunge[iMarker] = 0.0; @@ -2414,7 +2414,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } nCFL = nMGLevels+1; - CFL = new double[nCFL]; + CFL = new su2double[nCFL]; CFL[0] = CFLFineGrid; if (Adjoint){ CFL[0] = CFL[0] * CFLRedCoeff_AdjFlow; @@ -2427,7 +2427,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ if (nRKStep == 0) { nRKStep = 1; - RK_Alpha_Step = new double[1]; RK_Alpha_Step[0] = 1.0; + RK_Alpha_Step = new su2double[1]; RK_Alpha_Step[0] = 1.0; } if ((Kind_SU2 == SU2_CFD) && (Kind_Solver == NO_SOLVER)) { @@ -2516,17 +2516,17 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ ionization = false; /*--- Allocate vectors for gas properties ---*/ - Molar_Mass = new double[nSpecies]; - CharVibTemp = new double[nSpecies]; - RotationModes = new double[nSpecies]; - Enthalpy_Formation = new double[nSpecies]; - Wall_Catalycity = new double[nSpecies]; - Ref_Temperature = new double[nSpecies]; + Molar_Mass = new su2double[nSpecies]; + CharVibTemp = new su2double[nSpecies]; + RotationModes = new su2double[nSpecies]; + Enthalpy_Formation = new su2double[nSpecies]; + Wall_Catalycity = new su2double[nSpecies]; + Ref_Temperature = new su2double[nSpecies]; nElStates = new unsigned short[nSpecies]; - MassFrac_FreeStream = new double[nSpecies]; + MassFrac_FreeStream = new su2double[nSpecies]; MassFrac_FreeStream[0] = 1.0; /*--- Assign gas properties ---*/ @@ -2543,12 +2543,12 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ Ref_Temperature[0] = 0.0; /* nElStates[0] = 0; - CharElTemp = new double *[nSpecies]; - degen = new double *[nSpecies]; + CharElTemp = new su2double *[nSpecies]; + degen = new su2double *[nSpecies]; - OSPthetae = new double[nElStates[0]]; + OSPthetae = new su2double[nElStates[0]]; OSPthetae[0] = 1.0; - OSPg = new double[nElStates[0]]; + OSPg = new su2double[nElStates[0]]; OSPg[0] = 1.0; CharElTemp[0] = OSPthetae; @@ -2564,20 +2564,20 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ ionization = false; /*--- Allocate vectors for gas properties ---*/ - Wall_Catalycity = new double[nSpecies]; - Molar_Mass = new double[nSpecies]; - CharVibTemp = new double[nSpecies]; - RotationModes = new double[nSpecies]; - Enthalpy_Formation = new double[nSpecies]; - Ref_Temperature = new double[nSpecies]; - Diss = new double[nSpecies]; - ArrheniusCoefficient = new double[nReactions]; - ArrheniusEta = new double[nReactions]; - ArrheniusTheta = new double[nReactions]; - Tcf_a = new double[nReactions]; - Tcf_b = new double[nReactions]; - Tcb_a = new double[nReactions]; - Tcb_b = new double[nReactions]; + Wall_Catalycity = new su2double[nSpecies]; + Molar_Mass = new su2double[nSpecies]; + CharVibTemp = new su2double[nSpecies]; + RotationModes = new su2double[nSpecies]; + Enthalpy_Formation = new su2double[nSpecies]; + Ref_Temperature = new su2double[nSpecies]; + Diss = new su2double[nSpecies]; + ArrheniusCoefficient = new su2double[nReactions]; + ArrheniusEta = new su2double[nReactions]; + ArrheniusTheta = new su2double[nReactions]; + Tcf_a = new su2double[nReactions]; + Tcf_b = new su2double[nReactions]; + Tcb_a = new su2double[nReactions]; + Tcb_b = new su2double[nReactions]; nElStates = new unsigned short[nSpecies]; Reactions = new int**[nReactions]; for (unsigned short iRxn = 0; iRxn < nReactions; iRxn++) { @@ -2587,18 +2587,18 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } // Omega[iSpecies][jSpecies][iCoeff] - Omega00 = new double**[nSpecies]; - Omega11 = new double**[nSpecies]; + Omega00 = new su2double**[nSpecies]; + Omega11 = new su2double**[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - Omega00[iSpecies] = new double*[nSpecies]; - Omega11[iSpecies] = new double*[nSpecies]; + Omega00[iSpecies] = new su2double*[nSpecies]; + Omega11[iSpecies] = new su2double*[nSpecies]; for (jSpecies = 0; jSpecies < nSpecies; jSpecies++) { - Omega00[iSpecies][jSpecies] = new double[4]; - Omega11[iSpecies][jSpecies] = new double[4]; + Omega00[iSpecies][jSpecies] = new su2double[4]; + Omega11[iSpecies][jSpecies] = new su2double[4]; } } - MassFrac_FreeStream = new double[nSpecies]; + MassFrac_FreeStream = new su2double[nSpecies]; MassFrac_FreeStream[0] = 0.99; MassFrac_FreeStream[1] = 0.01; @@ -2635,11 +2635,11 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ maxEl = max(maxEl, nElStates[iSpecies]); /*--- Allocate electron data arrays ---*/ - CharElTemp = new double*[nSpecies]; - degen = new double*[nSpecies]; + CharElTemp = new su2double*[nSpecies]; + degen = new su2double*[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - CharElTemp[iSpecies] = new double[maxEl]; - degen[iSpecies] = new double[maxEl]; + CharElTemp[iSpecies] = new su2double[maxEl]; + degen[iSpecies] = new su2double[maxEl]; } /*--- Initialize the arrays ---*/ @@ -2749,19 +2749,19 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ ionization = false; /*--- Allocate vectors for gas properties ---*/ - Wall_Catalycity = new double[nSpecies]; - Molar_Mass = new double[nSpecies]; - CharVibTemp = new double[nSpecies]; - RotationModes = new double[nSpecies]; - Enthalpy_Formation = new double[nSpecies]; - Ref_Temperature = new double[nSpecies]; - ArrheniusCoefficient = new double[nReactions]; - ArrheniusEta = new double[nReactions]; - ArrheniusTheta = new double[nReactions]; - Tcf_a = new double[nReactions]; - Tcf_b = new double[nReactions]; - Tcb_a = new double[nReactions]; - Tcb_b = new double[nReactions]; + Wall_Catalycity = new su2double[nSpecies]; + Molar_Mass = new su2double[nSpecies]; + CharVibTemp = new su2double[nSpecies]; + RotationModes = new su2double[nSpecies]; + Enthalpy_Formation = new su2double[nSpecies]; + Ref_Temperature = new su2double[nSpecies]; + ArrheniusCoefficient = new su2double[nReactions]; + ArrheniusEta = new su2double[nReactions]; + ArrheniusTheta = new su2double[nReactions]; + Tcf_a = new su2double[nReactions]; + Tcf_b = new su2double[nReactions]; + Tcb_a = new su2double[nReactions]; + Tcb_b = new su2double[nReactions]; nElStates = new unsigned short[nSpecies]; Reactions = new int**[nReactions]; for (unsigned short iRxn = 0; iRxn < nReactions; iRxn++) { @@ -2771,14 +2771,14 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } // Omega[iSpecies][jSpecies][iCoeff] - Omega00 = new double**[nSpecies]; - Omega11 = new double**[nSpecies]; + Omega00 = new su2double**[nSpecies]; + Omega11 = new su2double**[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - Omega00[iSpecies] = new double*[nSpecies]; - Omega11[iSpecies] = new double*[nSpecies]; + Omega00[iSpecies] = new su2double*[nSpecies]; + Omega11[iSpecies] = new su2double*[nSpecies]; for (jSpecies = 0; jSpecies < nSpecies; jSpecies++) { - Omega00[iSpecies][jSpecies] = new double[4]; - Omega11[iSpecies][jSpecies] = new double[4]; + Omega00[iSpecies][jSpecies] = new su2double[4]; + Omega11[iSpecies][jSpecies] = new su2double[4]; } } @@ -2790,7 +2790,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ Wall_Catalycity[4] = 0.05; // Free stream mass fractions - MassFrac_FreeStream = new double[nSpecies]; + MassFrac_FreeStream = new su2double[nSpecies]; MassFrac_FreeStream[0] = 0.78; MassFrac_FreeStream[1] = 0.19; MassFrac_FreeStream[2] = 0.01; @@ -2845,11 +2845,11 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ maxEl = max(maxEl, nElStates[iSpecies]); /*--- Allocate electron data arrays ---*/ - CharElTemp = new double*[nSpecies]; - degen = new double*[nSpecies]; + CharElTemp = new su2double*[nSpecies]; + degen = new su2double*[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - CharElTemp[iSpecies] = new double[maxEl]; - degen[iSpecies] = new double[maxEl]; + CharElTemp[iSpecies] = new su2double[maxEl]; + degen[iSpecies] = new su2double[maxEl]; } /*--- Initialize the arrays ---*/ @@ -3353,8 +3353,8 @@ void CConfig::SetMarkers(unsigned short val_software) { iMarker_Config++; } - Inflow_Mach = new double[nMarker_EngineInflow]; - Inflow_Pressure = new double[nMarker_EngineInflow]; + Inflow_Mach = new su2double[nMarker_EngineInflow]; + Inflow_Pressure = new su2double[nMarker_EngineInflow]; for (iMarker_EngineInflow = 0; iMarker_EngineInflow < nMarker_EngineInflow; iMarker_EngineInflow++) { Marker_CfgFile_TagBound[iMarker_Config] = Marker_EngineInflow[iMarker_EngineInflow]; @@ -3364,9 +3364,9 @@ void CConfig::SetMarkers(unsigned short val_software) { iMarker_Config++; } - Bleed_MassFlow = new double[nMarker_EngineBleed]; - Bleed_Temperature = new double[nMarker_EngineBleed]; - Bleed_Pressure = new double[nMarker_EngineBleed]; + Bleed_MassFlow = new su2double[nMarker_EngineBleed]; + Bleed_Temperature = new su2double[nMarker_EngineBleed]; + Bleed_Pressure = new su2double[nMarker_EngineBleed]; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) { Marker_CfgFile_TagBound[iMarker_Config] = Marker_EngineBleed[iMarker_EngineBleed]; @@ -3377,8 +3377,8 @@ void CConfig::SetMarkers(unsigned short val_software) { iMarker_Config++; } - Exhaust_Pressure = new double[nMarker_EngineExhaust]; - Exhaust_Temperature = new double[nMarker_EngineExhaust]; + Exhaust_Pressure = new su2double[nMarker_EngineExhaust]; + Exhaust_Temperature = new su2double[nMarker_EngineExhaust]; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) { Marker_CfgFile_TagBound[iMarker_Config] = Marker_EngineExhaust[iMarker_EngineExhaust]; @@ -5000,7 +5000,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { } -void CConfig::GetChemistryEquilConstants(double **RxnConstantTable, unsigned short iReaction) { +void CConfig::GetChemistryEquilConstants(su2double **RxnConstantTable, unsigned short iReaction) { switch (Kind_GasModel) { case O2: //O2 + M -> 2O + M @@ -5634,11 +5634,11 @@ string CConfig::GetUnsteady_FileName(string val_filename, int val_iter) { if ((Wrt_Unsteady) || (Unsteady_Simulation == TIME_SPECTRAL)) { unsigned short lastindex = UnstFilename.find_last_of("."); UnstFilename = UnstFilename.substr(0, lastindex); - if ((val_iter >= 0) && (val_iter < 10)) sprintf (buffer, "_0000%d.dat", val_iter); - if ((val_iter >= 10) && (val_iter < 100)) sprintf (buffer, "_000%d.dat", val_iter); - if ((val_iter >= 100) && (val_iter < 1000)) sprintf (buffer, "_00%d.dat", val_iter); - if ((val_iter >= 1000) && (val_iter < 10000)) sprintf (buffer, "_0%d.dat", val_iter); - if (val_iter >= 10000) sprintf (buffer, "_%d.dat", val_iter); + if ((val_iter >= 0) && (val_iter < 10)) SPRINTF (buffer, "_0000%d.dat", val_iter); + if ((val_iter >= 10) && (val_iter < 100)) SPRINTF (buffer, "_000%d.dat", val_iter); + if ((val_iter >= 100) && (val_iter < 1000)) SPRINTF (buffer, "_00%d.dat", val_iter); + if ((val_iter >= 1000) && (val_iter < 10000)) SPRINTF (buffer, "_0%d.dat", val_iter); + if (val_iter >= 10000) SPRINTF (buffer, "_%d.dat", val_iter); string UnstExt = string(buffer); UnstFilename.append(UnstExt); } @@ -5730,8 +5730,8 @@ void CConfig::SetGlobalParam(unsigned short val_solver, unsigned long val_extiter) { /*--- Set the simulation global time ---*/ - Current_UnstTime = static_cast(val_extiter)*Delta_UnstTime; - Current_UnstTimeND = static_cast(val_extiter)*Delta_UnstTimeND; + Current_UnstTime = static_cast(val_extiter)*Delta_UnstTime; + Current_UnstTimeND = static_cast(val_extiter)*Delta_UnstTimeND; /*--- Set the solver methods ---*/ switch (val_solver) { @@ -5902,7 +5902,7 @@ void CConfig::SetGlobalParam(unsigned short val_solver, break; case LINEAR_ELASTICITY: - Current_DynTime = static_cast(val_extiter)*Delta_DynTime; + Current_DynTime = static_cast(val_extiter)*Delta_DynTime; if (val_system == RUNTIME_FEA_SYS) { SetKind_ConvNumScheme(NONE, NONE, NONE, NONE, NONE); @@ -5911,7 +5911,7 @@ void CConfig::SetGlobalParam(unsigned short val_solver, break; case FEM_ELASTICITY: - Current_DynTime = static_cast(val_extiter)*Delta_DynTime; + Current_DynTime = static_cast(val_extiter)*Delta_DynTime; if (val_system == RUNTIME_FEA_SYS) { SetKind_ConvNumScheme(NONE, NONE, NONE, NONE, NONE); @@ -5921,21 +5921,21 @@ void CConfig::SetGlobalParam(unsigned short val_solver, } } -double* CConfig::GetPeriodicRotCenter(string val_marker) { +su2double* CConfig::GetPeriodicRotCenter(string val_marker) { unsigned short iMarker_PerBound; for (iMarker_PerBound = 0; iMarker_PerBound < nMarker_PerBound; iMarker_PerBound++) if (Marker_PerBound[iMarker_PerBound] == val_marker) break; return Periodic_RotCenter[iMarker_PerBound]; } -double* CConfig::GetPeriodicRotAngles(string val_marker) { +su2double* CConfig::GetPeriodicRotAngles(string val_marker) { unsigned short iMarker_PerBound; for (iMarker_PerBound = 0; iMarker_PerBound < nMarker_PerBound; iMarker_PerBound++) if (Marker_PerBound[iMarker_PerBound] == val_marker) break; return Periodic_RotAngles[iMarker_PerBound]; } -double* CConfig::GetPeriodicTranslation(string val_marker) { +su2double* CConfig::GetPeriodicTranslation(string val_marker) { unsigned short iMarker_PerBound; for (iMarker_PerBound = 0; iMarker_PerBound < nMarker_PerBound; iMarker_PerBound++) if (Marker_PerBound[iMarker_PerBound] == val_marker) break; @@ -5960,7 +5960,7 @@ unsigned short CConfig::GetMarker_Periodic_Donor(string val_marker) { return kMarker_All; } -double* CConfig::GetActDisk_Origin(string val_marker) { +su2double* CConfig::GetActDisk_Origin(string val_marker) { unsigned short iMarker_ActDisk; for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDisk_Inlet; iMarker_ActDisk++) if ((Marker_ActDisk_Inlet[iMarker_ActDisk] == val_marker) || @@ -5968,7 +5968,7 @@ double* CConfig::GetActDisk_Origin(string val_marker) { return ActDisk_Origin[iMarker_ActDisk]; } -double CConfig::GetActDisk_RootRadius(string val_marker) { +su2double CConfig::GetActDisk_RootRadius(string val_marker) { unsigned short iMarker_ActDisk; for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDisk_Inlet; iMarker_ActDisk++) if ((Marker_ActDisk_Inlet[iMarker_ActDisk] == val_marker) || @@ -5976,7 +5976,7 @@ double CConfig::GetActDisk_RootRadius(string val_marker) { return ActDisk_RootRadius[iMarker_ActDisk]; } -double CConfig::GetActDisk_TipRadius(string val_marker) { +su2double CConfig::GetActDisk_TipRadius(string val_marker) { unsigned short iMarker_ActDisk; for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDisk_Inlet; iMarker_ActDisk++) if ((Marker_ActDisk_Inlet[iMarker_ActDisk] == val_marker) || @@ -5984,7 +5984,7 @@ double CConfig::GetActDisk_TipRadius(string val_marker) { return ActDisk_TipRadius[iMarker_ActDisk]; } -double CConfig::GetActDisk_PressJump(string val_marker) { +su2double CConfig::GetActDisk_PressJump(string val_marker) { unsigned short iMarker_ActDisk; for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDisk_Inlet; iMarker_ActDisk++) if ((Marker_ActDisk_Inlet[iMarker_ActDisk] == val_marker) || @@ -5992,7 +5992,7 @@ double CConfig::GetActDisk_PressJump(string val_marker) { return ActDisk_PressJump[iMarker_ActDisk]; } -double CConfig::GetActDisk_TempJump(string val_marker) { +su2double CConfig::GetActDisk_TempJump(string val_marker) { unsigned short iMarker_ActDisk; for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDisk_Inlet; iMarker_ActDisk++) if ((Marker_ActDisk_Inlet[iMarker_ActDisk] == val_marker) || @@ -6000,7 +6000,7 @@ double CConfig::GetActDisk_TempJump(string val_marker) { return ActDisk_TempJump[iMarker_ActDisk]; } -double CConfig::GetActDisk_Omega(string val_marker) { +su2double CConfig::GetActDisk_Omega(string val_marker) { unsigned short iMarker_ActDisk; for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDisk_Inlet; iMarker_ActDisk++) if ((Marker_ActDisk_Inlet[iMarker_ActDisk] == val_marker) || @@ -6038,9 +6038,9 @@ void CConfig::SetnPeriodicIndex(unsigned short val_index) { nPeriodic_Index = val_index; /*--- Allocate memory for centers, angles, translations. ---*/ - Periodic_Center = new double*[nPeriodic_Index]; - Periodic_Rotation = new double*[nPeriodic_Index]; - Periodic_Translate = new double*[nPeriodic_Index]; + Periodic_Center = new su2double*[nPeriodic_Index]; + Periodic_Rotation = new su2double*[nPeriodic_Index]; + Periodic_Translate = new su2double*[nPeriodic_Index]; } @@ -6054,7 +6054,7 @@ unsigned short CConfig::GetMarker_Moving(string val_marker) { return iMarker_Moving; } -double CConfig::GetDirichlet_Value(string val_marker) { +su2double CConfig::GetDirichlet_Value(string val_marker) { unsigned short iMarker_Dirichlet; for (iMarker_Dirichlet = 0; iMarker_Dirichlet < nMarker_Dirichlet_Elec; iMarker_Dirichlet++) if (Marker_Dirichlet_Elec[iMarker_Dirichlet] == val_marker) break; @@ -6072,84 +6072,84 @@ bool CConfig::GetDirichlet_Boundary(string val_marker) { return Dirichlet; } -double CConfig::GetExhaust_Temperature_Target(string val_marker) { +su2double CConfig::GetExhaust_Temperature_Target(string val_marker) { unsigned short iMarker_EngineExhaust; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) if (Marker_EngineExhaust[iMarker_EngineExhaust] == val_marker) break; return Exhaust_Temperature_Target[iMarker_EngineExhaust]; } -double CConfig::GetExhaust_Pressure_Target(string val_marker) { +su2double CConfig::GetExhaust_Pressure_Target(string val_marker) { unsigned short iMarker_EngineExhaust; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) if (Marker_EngineExhaust[iMarker_EngineExhaust] == val_marker) break; return Exhaust_Pressure_Target[iMarker_EngineExhaust]; } -double CConfig::GetInlet_Ttotal(string val_marker) { +su2double CConfig::GetInlet_Ttotal(string val_marker) { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) break; return Inlet_Ttotal[iMarker_Inlet]; } -double CConfig::GetInlet_Ptotal(string val_marker) { +su2double CConfig::GetInlet_Ptotal(string val_marker) { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) break; return Inlet_Ptotal[iMarker_Inlet]; } -double* CConfig::GetInlet_FlowDir(string val_marker) { +su2double* CConfig::GetInlet_FlowDir(string val_marker) { unsigned short iMarker_Inlet; for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) if (Marker_Inlet[iMarker_Inlet] == val_marker) break; return Inlet_FlowDir[iMarker_Inlet]; } -double CConfig::GetInlet_Temperature(string val_marker) { +su2double CConfig::GetInlet_Temperature(string val_marker) { unsigned short iMarker_Supersonic_Inlet; for (iMarker_Supersonic_Inlet = 0; iMarker_Supersonic_Inlet < nMarker_Supersonic_Inlet; iMarker_Supersonic_Inlet++) if (Marker_Supersonic_Inlet[iMarker_Supersonic_Inlet] == val_marker) break; return Inlet_Temperature[iMarker_Supersonic_Inlet]; } -double CConfig::GetInlet_Pressure(string val_marker) { +su2double CConfig::GetInlet_Pressure(string val_marker) { unsigned short iMarker_Supersonic_Inlet; for (iMarker_Supersonic_Inlet = 0; iMarker_Supersonic_Inlet < nMarker_Supersonic_Inlet; iMarker_Supersonic_Inlet++) if (Marker_Supersonic_Inlet[iMarker_Supersonic_Inlet] == val_marker) break; return Inlet_Pressure[iMarker_Supersonic_Inlet]; } -double* CConfig::GetInlet_Velocity(string val_marker) { +su2double* CConfig::GetInlet_Velocity(string val_marker) { unsigned short iMarker_Supersonic_Inlet; for (iMarker_Supersonic_Inlet = 0; iMarker_Supersonic_Inlet < nMarker_Supersonic_Inlet; iMarker_Supersonic_Inlet++) if (Marker_Supersonic_Inlet[iMarker_Supersonic_Inlet] == val_marker) break; return Inlet_Velocity[iMarker_Supersonic_Inlet]; } -double CConfig::GetOutlet_Pressure(string val_marker) { +su2double CConfig::GetOutlet_Pressure(string val_marker) { unsigned short iMarker_Outlet; for (iMarker_Outlet = 0; iMarker_Outlet < nMarker_Outlet; iMarker_Outlet++) if (Marker_Outlet[iMarker_Outlet] == val_marker) break; return Outlet_Pressure[iMarker_Outlet]; } -double CConfig::GetRiemann_Var1(string val_marker) { +su2double CConfig::GetRiemann_Var1(string val_marker) { unsigned short iMarker_Riemann; for (iMarker_Riemann = 0; iMarker_Riemann < nMarker_Riemann; iMarker_Riemann++) if (Marker_Riemann[iMarker_Riemann] == val_marker) break; return Riemann_Var1[iMarker_Riemann]; } -double CConfig::GetRiemann_Var2(string val_marker) { +su2double CConfig::GetRiemann_Var2(string val_marker) { unsigned short iMarker_Riemann; for (iMarker_Riemann = 0; iMarker_Riemann < nMarker_Riemann; iMarker_Riemann++) if (Marker_Riemann[iMarker_Riemann] == val_marker) break; return Riemann_Var2[iMarker_Riemann]; } -double* CConfig::GetRiemann_FlowDir(string val_marker) { +su2double* CConfig::GetRiemann_FlowDir(string val_marker) { unsigned short iMarker_Riemann; for (iMarker_Riemann = 0; iMarker_Riemann < nMarker_Riemann; iMarker_Riemann++) if (Marker_Riemann[iMarker_Riemann] == val_marker) break; @@ -6163,7 +6163,7 @@ unsigned short CConfig::GetKind_Data_Riemann(string val_marker) { return Kind_Data_Riemann[iMarker_Riemann]; } -double CConfig::GetIsothermal_Temperature(string val_marker) { +su2double CConfig::GetIsothermal_Temperature(string val_marker) { unsigned short iMarker_Isothermal = 0; if ((nMarker_Isothermal*nMarker_IsothermalCatalytic != 0) || @@ -6191,7 +6191,7 @@ double CConfig::GetIsothermal_Temperature(string val_marker) { return Isothermal_Temperature[iMarker_Isothermal]; } -double CConfig::GetWall_HeatFlux(string val_marker) { +su2double CConfig::GetWall_HeatFlux(string val_marker) { unsigned short iMarker_HeatFlux = 0; if ((nMarker_HeatFlux*nMarker_HeatFluxCatalytic != 0) || @@ -6219,105 +6219,105 @@ double CConfig::GetWall_HeatFlux(string val_marker) { return Heat_Flux[iMarker_HeatFlux]; } -double CConfig::GetInflow_Mach_Target(string val_marker) { +su2double CConfig::GetInflow_Mach_Target(string val_marker) { unsigned short iMarker_EngineInflow; for (iMarker_EngineInflow = 0; iMarker_EngineInflow < nMarker_EngineInflow; iMarker_EngineInflow++) if (Marker_EngineInflow[iMarker_EngineInflow] == val_marker) break; return Inflow_Mach_Target[iMarker_EngineInflow]; } -double CConfig::GetBleed_MassFlow_Target(string val_marker) { +su2double CConfig::GetBleed_MassFlow_Target(string val_marker) { unsigned short iMarker_EngineBleed; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) if (Marker_EngineBleed[iMarker_EngineBleed] == val_marker) break; return Bleed_MassFlow_Target[iMarker_EngineBleed]; } -double CConfig::GetBleed_Temperature_Target(string val_marker) { +su2double CConfig::GetBleed_Temperature_Target(string val_marker) { unsigned short iMarker_EngineBleed; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) if (Marker_EngineBleed[iMarker_EngineBleed] == val_marker) break; return Bleed_Temperature_Target[iMarker_EngineBleed]; } -double CConfig::GetInflow_Pressure(string val_marker) { +su2double CConfig::GetInflow_Pressure(string val_marker) { unsigned short iMarker_EngineInflow; for (iMarker_EngineInflow = 0; iMarker_EngineInflow < nMarker_EngineInflow; iMarker_EngineInflow++) if (Marker_EngineInflow[iMarker_EngineInflow] == val_marker) break; return Inflow_Pressure[iMarker_EngineInflow]; } -double CConfig::GetBleed_Pressure(string val_marker) { +su2double CConfig::GetBleed_Pressure(string val_marker) { unsigned short iMarker_EngineBleed; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) if (Marker_EngineBleed[iMarker_EngineBleed] == val_marker) break; return Bleed_Pressure[iMarker_EngineBleed]; } -double CConfig::GetExhaust_Pressure(string val_marker) { +su2double CConfig::GetExhaust_Pressure(string val_marker) { unsigned short iMarker_EngineExhaust; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) if (Marker_EngineExhaust[iMarker_EngineExhaust] == val_marker) break; return Exhaust_Pressure[iMarker_EngineExhaust]; } -double CConfig::GetExhaust_Temperature(string val_marker) { +su2double CConfig::GetExhaust_Temperature(string val_marker) { unsigned short iMarker_EngineExhaust; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) if (Marker_EngineExhaust[iMarker_EngineExhaust] == val_marker) break; return Exhaust_Temperature[iMarker_EngineExhaust]; } -double CConfig::GetInflow_Mach(string val_marker) { +su2double CConfig::GetInflow_Mach(string val_marker) { unsigned short iMarker_EngineInflow; for (iMarker_EngineInflow = 0; iMarker_EngineInflow < nMarker_EngineInflow; iMarker_EngineInflow++) if (Marker_EngineInflow[iMarker_EngineInflow] == val_marker) break; return Inflow_Mach[iMarker_EngineInflow]; } -double CConfig::GetBleed_MassFlow(string val_marker) { +su2double CConfig::GetBleed_MassFlow(string val_marker) { unsigned short iMarker_EngineBleed; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) if (Marker_EngineBleed[iMarker_EngineBleed] == val_marker) break; return Bleed_MassFlow[iMarker_EngineBleed]; } -double CConfig::GetBleed_Temperature(string val_marker) { +su2double CConfig::GetBleed_Temperature(string val_marker) { unsigned short iMarker_EngineBleed; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) if (Marker_EngineBleed[iMarker_EngineBleed] == val_marker) break; return Bleed_Temperature[iMarker_EngineBleed]; } -double CConfig::GetDispl_Value(string val_marker) { +su2double CConfig::GetDispl_Value(string val_marker) { unsigned short iMarker_Displacement; for (iMarker_Displacement = 0; iMarker_Displacement < nMarker_Displacement; iMarker_Displacement++) if (Marker_Displacement[iMarker_Displacement] == val_marker) break; return Displ_Value[iMarker_Displacement]; } -double CConfig::GetLoad_Value(string val_marker) { +su2double CConfig::GetLoad_Value(string val_marker) { unsigned short iMarker_Load; for (iMarker_Load = 0; iMarker_Load < nMarker_Load; iMarker_Load++) if (Marker_Load[iMarker_Load] == val_marker) break; return Load_Value[iMarker_Load]; } -double CConfig::GetLoad_Dir_Value(string val_marker) { +su2double CConfig::GetLoad_Dir_Value(string val_marker) { unsigned short iMarker_Load_Dir; for (iMarker_Load_Dir = 0; iMarker_Load_Dir < nMarker_Load_Dir; iMarker_Load_Dir++) if (Marker_Load_Dir[iMarker_Load_Dir] == val_marker) break; return Load_Dir_Value[iMarker_Load_Dir]; } -double CConfig::GetLoad_Dir_Multiplier(string val_marker) { +su2double CConfig::GetLoad_Dir_Multiplier(string val_marker) { unsigned short iMarker_Load_Dir; for (iMarker_Load_Dir = 0; iMarker_Load_Dir < nMarker_Load_Dir; iMarker_Load_Dir++) if (Marker_Load_Dir[iMarker_Load_Dir] == val_marker) break; return Load_Dir_Multiplier[iMarker_Load_Dir]; } -double* CConfig::GetLoad_Dir(string val_marker) { +su2double* CConfig::GetLoad_Dir(string val_marker) { unsigned short iMarker_Load_Dir; for (iMarker_Load_Dir = 0; iMarker_Load_Dir < nMarker_Load_Dir; iMarker_Load_Dir++) if (Marker_Load_Dir[iMarker_Load_Dir] == val_marker) break; @@ -6325,39 +6325,39 @@ double* CConfig::GetLoad_Dir(string val_marker) { } -double CConfig::GetLoad_Sine_Amplitude(string val_marker) { +su2double CConfig::GetLoad_Sine_Amplitude(string val_marker) { unsigned short iMarker_Load_Sine; for (iMarker_Load_Sine = 0; iMarker_Load_Sine < nMarker_Load_Sine; iMarker_Load_Sine++) if (Marker_Load_Sine[iMarker_Load_Sine] == val_marker) break; return Load_Sine_Amplitude[iMarker_Load_Sine]; } -double CConfig::GetLoad_Sine_Frequency(string val_marker) { +su2double CConfig::GetLoad_Sine_Frequency(string val_marker) { unsigned short iMarker_Load_Sine; for (iMarker_Load_Sine = 0; iMarker_Load_Sine < nMarker_Load_Sine; iMarker_Load_Sine++) if (Marker_Load_Sine[iMarker_Load_Sine] == val_marker) break; return Load_Sine_Frequency[iMarker_Load_Sine]; } -double* CConfig::GetLoad_Sine_Dir(string val_marker) { +su2double* CConfig::GetLoad_Sine_Dir(string val_marker) { unsigned short iMarker_Load_Sine; for (iMarker_Load_Sine = 0; iMarker_Load_Sine < nMarker_Load_Sine; iMarker_Load_Sine++) if (Marker_Load_Sine[iMarker_Load_Sine] == val_marker) break; return Load_Sine_Dir[iMarker_Load_Sine]; } -double CConfig::GetFlowLoad_Value(string val_marker) { +su2double CConfig::GetFlowLoad_Value(string val_marker) { unsigned short iMarker_FlowLoad; for (iMarker_FlowLoad = 0; iMarker_FlowLoad < nMarker_FlowLoad; iMarker_FlowLoad++) if (Marker_FlowLoad[iMarker_FlowLoad] == val_marker) break; return FlowLoad_Value[iMarker_FlowLoad]; } -void CConfig::SetSpline(vector &x, vector &y, unsigned long n, double yp1, double ypn, vector &y2) { +void CConfig::SetSpline(vector &x, vector &y, unsigned long n, su2double yp1, su2double ypn, vector &y2) { unsigned long i, k; - double p, qn, sig, un, *u; + su2double p, qn, sig, un, *u; - u = new double [n]; + u = new su2double [n]; if (yp1 > 0.99e30) // The lower boundary condition is set either to be "nat y2[0]=u[0]=0.0; // -ural" @@ -6388,9 +6388,9 @@ void CConfig::SetSpline(vector &x, vector &y, unsigned long n, d } -double CConfig::GetSpline(vector&xa, vector&ya, vector&y2a, unsigned long n, double x) { +su2double CConfig::GetSpline(vector&xa, vector&ya, vector&y2a, unsigned long n, su2double x) { unsigned long klo, khi, k; - double h, b, a, y; + su2double h, b, a, y; klo=1; // We will find the right place in the table by means of khi=n; // bisection. This is optimal if sequential calls to this diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 71534203544..63b9219d4f6 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -51,9 +51,9 @@ CPoint::CPoint(unsigned short val_nDim, unsigned long val_globalindex, CConfig * GridVel = NULL; GridVel_Grad = NULL; /*--- Volume (0 -> Vol_nP1, 1-> Vol_n, 2 -> Vol_nM1 ) and coordinates of the control volume ---*/ - if (config->GetUnsteady_Simulation() == NO) { Volume = new double[1]; Volume[0] = 0.0; } - else { Volume = new double[3]; Volume[0] = 0.0; Volume[1] = 0.0; Volume[2] = 0.0; } - coord = new double[nDim]; + if (config->GetUnsteady_Simulation() == NO) { Volume = new su2double[1]; Volume[0] = 0.0; } + else { Volume = new su2double[3]; Volume[0] = 0.0; Volume[1] = 0.0; Volume[2] = 0.0; } + coord = new su2double[nDim]; /*--- Indicator if the control volume has been agglomerated ---*/ Agglomerate = false; @@ -80,20 +80,20 @@ CPoint::CPoint(unsigned short val_nDim, unsigned long val_globalindex, CConfig * /*--- For smoothing the numerical grid coordinates ---*/ if (config->GetSmoothNumGrid()) { - Coord_old = new double[nDim]; - Coord_sum = new double[nDim]; + Coord_old = new su2double[nDim]; + Coord_sum = new su2double[nDim]; } /*--- Storage of grid velocities for dynamic meshes ---*/ if (config->GetGrid_Movement()) { - GridVel = new double[nDim]; + GridVel = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim ++) GridVel[iDim] = 0.0; /*--- Gradient of the grid velocity ---*/ - GridVel_Grad = new double*[nDim]; + GridVel_Grad = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - GridVel_Grad[iDim] = new double[nDim]; + GridVel_Grad[iDim] = new su2double[nDim]; for (jDim = 0; jDim < nDim; jDim++) GridVel_Grad[iDim][jDim] = 0.0; } @@ -101,9 +101,9 @@ CPoint::CPoint(unsigned short val_nDim, unsigned long val_globalindex, CConfig * /*--- Structures for storing old node coordinates for computing grid velocities via finite differencing with dynamically deforming meshes. ---*/ if (config->GetUnsteady_Simulation() != NO) { - Coord_p1 = new double[nDim]; - Coord_n = new double[nDim]; - Coord_n1 = new double[nDim]; + Coord_p1 = new su2double[nDim]; + Coord_n = new su2double[nDim]; + Coord_n1 = new su2double[nDim]; } } @@ -112,7 +112,7 @@ CPoint::CPoint(unsigned short val_nDim, unsigned long val_globalindex, CConfig * } -CPoint::CPoint(double val_coord_0, double val_coord_1, unsigned long val_globalindex, CConfig *config) : CDualGrid(2) { +CPoint::CPoint(su2double val_coord_0, su2double val_coord_1, unsigned long val_globalindex, CConfig *config) : CDualGrid(2) { unsigned short iDim, jDim; /*--- Element, point and edge structures initialization ---*/ @@ -126,9 +126,9 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, unsigned long val_globali GridVel = NULL; GridVel_Grad = NULL; /*--- Volume (0 -> Vol_nP1, 1-> Vol_n, 2 -> Vol_nM1 ) and coordinates of the control volume ---*/ - if (config->GetUnsteady_Simulation() == NO) { Volume = new double[1]; Volume[0] = 0.0; } - else { Volume = new double[3]; Volume[0] = 0.0; Volume[1] = 0.0; Volume[2] = 0.0; } - coord = new double[nDim]; coord[0] = val_coord_0; coord[1] = val_coord_1; + if (config->GetUnsteady_Simulation() == NO) { Volume = new su2double[1]; Volume[0] = 0.0; } + else { Volume = new su2double[3]; Volume[0] = 0.0; Volume[1] = 0.0; Volume[2] = 0.0; } + coord = new su2double[nDim]; coord[0] = val_coord_0; coord[1] = val_coord_1; /*--- Indicator if the control volume has been agglomerated ---*/ Agglomerate = false; @@ -155,20 +155,20 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, unsigned long val_globali /*--- For smoothing the numerical grid coordinates ---*/ if (config->GetSmoothNumGrid()) { - Coord_old = new double[nDim]; - Coord_sum = new double[nDim]; + Coord_old = new su2double[nDim]; + Coord_sum = new su2double[nDim]; } /*--- Storage of grid velocities for dynamic meshes ---*/ if (config->GetGrid_Movement()) { - GridVel = new double[nDim]; + GridVel = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim ++) GridVel[iDim] = 0.0; /*--- Gradient of the grid velocity ---*/ - GridVel_Grad = new double*[nDim]; + GridVel_Grad = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - GridVel_Grad[iDim] = new double[nDim]; + GridVel_Grad[iDim] = new su2double[nDim]; for (jDim = 0; jDim < nDim; jDim++) GridVel_Grad[iDim][jDim] = 0.0; } @@ -176,9 +176,9 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, unsigned long val_globali /*--- Structures for storing old node coordinates for computing grid velocities via finite differencing with dynamically deforming meshes. ---*/ if (config->GetUnsteady_Simulation() != NO) { - Coord_p1 = new double[nDim]; - Coord_n = new double[nDim]; - Coord_n1 = new double[nDim]; + Coord_p1 = new su2double[nDim]; + Coord_n = new su2double[nDim]; + Coord_n1 = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim ++) { Coord_p1[iDim] = coord[iDim]; Coord_n[iDim] = coord[iDim]; @@ -192,7 +192,7 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, unsigned long val_globali } -CPoint::CPoint(double val_coord_0, double val_coord_1, double val_coord_2, unsigned long val_globalindex, CConfig *config) : CDualGrid(3) { +CPoint::CPoint(su2double val_coord_0, su2double val_coord_1, su2double val_coord_2, unsigned long val_globalindex, CConfig *config) : CDualGrid(3) { unsigned short iDim, jDim; /*--- Element, point and edge structures initialization ---*/ @@ -206,9 +206,9 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, double val_coord_2, unsig GridVel = NULL; GridVel_Grad = NULL; /*--- Volume (0 -> Vol_nP1, 1-> Vol_n, 2 -> Vol_nM1 ) and coordinates of the control volume ---*/ - if (config->GetUnsteady_Simulation() == NO) { Volume = new double[1]; Volume[0] = 0.0; } - else { Volume = new double[3]; Volume[0] = 0.0; Volume[1] = 0.0; Volume[2] = 0.0; } - coord = new double[nDim]; coord[0] = val_coord_0; coord[1] = val_coord_1; coord[2] = val_coord_2; + if (config->GetUnsteady_Simulation() == NO) { Volume = new su2double[1]; Volume[0] = 0.0; } + else { Volume = new su2double[3]; Volume[0] = 0.0; Volume[1] = 0.0; Volume[2] = 0.0; } + coord = new su2double[nDim]; coord[0] = val_coord_0; coord[1] = val_coord_1; coord[2] = val_coord_2; /*--- Indicator if the control volume has been agglomerated ---*/ Agglomerate = false; @@ -235,20 +235,20 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, double val_coord_2, unsig /*--- For smoothing the numerical grid coordinates ---*/ if (config->GetSmoothNumGrid()) { - Coord_old = new double[nDim]; - Coord_sum = new double[nDim]; + Coord_old = new su2double[nDim]; + Coord_sum = new su2double[nDim]; } /*--- Storage of grid velocities for dynamic meshes ---*/ if (config->GetGrid_Movement()) { - GridVel = new double[nDim]; + GridVel = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim ++) GridVel[iDim] = 0.0; /*--- Gradient of the grid velocity ---*/ - GridVel_Grad = new double*[nDim]; + GridVel_Grad = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - GridVel_Grad[iDim] = new double[nDim]; + GridVel_Grad[iDim] = new su2double[nDim]; for (jDim = 0; jDim < nDim; jDim++) GridVel_Grad[iDim][jDim] = 0.0; } @@ -256,9 +256,9 @@ CPoint::CPoint(double val_coord_0, double val_coord_1, double val_coord_2, unsig /*--- Structures for storing old node coordinates for computing grid velocities via finite differencing with dynamically deforming meshes. ---*/ if (config->GetUnsteady_Simulation() != NO) { - Coord_p1 = new double[nDim]; - Coord_n = new double[nDim]; - Coord_n1 = new double[nDim]; + Coord_p1 = new su2double[nDim]; + Coord_n = new su2double[nDim]; + Coord_n1 = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim ++) { Coord_p1[iDim] = coord[iDim]; Coord_n[iDim] = coord[iDim]; @@ -338,9 +338,9 @@ CEdge::CEdge(unsigned long val_iPoint, unsigned long val_jPoint, unsigned short Nodes = NULL; /*--- Allocate center of gravity coordinates, nodes, and face normal ---*/ - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; Nodes = new unsigned long[2]; - Normal = new double [nDim]; + Normal = new su2double [nDim]; /*--- Initializate the structure ---*/ for (iDim = 0; iDim < nDim; iDim++) { @@ -361,7 +361,7 @@ CEdge::~CEdge() { } -void CEdge::SetCG(double **val_coord) { +void CEdge::SetCG(su2double **val_coord) { unsigned short iDim, iNode; for (iDim = 0; iDim < nDim; iDim++) { @@ -371,9 +371,9 @@ void CEdge::SetCG(double **val_coord) { } } -double CEdge::GetVolume(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG, double *val_coord_Point) { +su2double CEdge::GetVolume(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG, su2double *val_coord_Point) { unsigned short iDim; - double vec_a[3] = {0.0,0.0,0.0}, vec_b[3] = {0.0,0.0,0.0}, vec_c[3] = {0.0,0.0,0.0}, vec_d[3] = {0.0,0.0,0.0}, Local_Volume; + su2double vec_a[3] = {0.0,0.0,0.0}, vec_b[3] = {0.0,0.0,0.0}, vec_c[3] = {0.0,0.0,0.0}, vec_d[3] = {0.0,0.0,0.0}, Local_Volume; for (iDim = 0; iDim < nDim; iDim++) { vec_a[iDim] = val_coord_Edge_CG[iDim]-val_coord_Point[iDim]; @@ -390,9 +390,9 @@ double CEdge::GetVolume(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG return Local_Volume; } -double CEdge::GetVolume(double *val_coord_Edge_CG, double *val_coord_Elem_CG, double *val_coord_Point) { +su2double CEdge::GetVolume(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG, su2double *val_coord_Point) { unsigned short iDim; - double vec_a[2] = {0.0,0.0}, vec_b[2] = {0.0,0.0}, Local_Volume; + su2double vec_a[2] = {0.0,0.0}, vec_b[2] = {0.0,0.0}, Local_Volume; for (iDim = 0; iDim < nDim; iDim++) { vec_a[iDim] = val_coord_Elem_CG[iDim]-val_coord_Point[iDim]; @@ -404,9 +404,9 @@ double CEdge::GetVolume(double *val_coord_Edge_CG, double *val_coord_Elem_CG, do return Local_Volume; } -void CEdge::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG) { +void CEdge::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG) { unsigned short iDim; - double vec_a[3] = {0.0,0.0,0.0}, vec_b[3] = {0.0,0.0,0.0}, Dim_Normal[3]; + su2double vec_a[3] = {0.0,0.0,0.0}, vec_b[3] = {0.0,0.0,0.0}, Dim_Normal[3]; for (iDim = 0; iDim < nDim; iDim++) { vec_a[iDim] = val_coord_Elem_CG[iDim]-val_coord_Edge_CG[iDim]; @@ -423,8 +423,8 @@ void CEdge::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem } -void CEdge::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG) { - double Dim_Normal[2]; +void CEdge::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG) { + su2double Dim_Normal[2]; Dim_Normal[0] = val_coord_Elem_CG[1]-val_coord_Edge_CG[1]; Dim_Normal[1] = -(val_coord_Elem_CG[0]-val_coord_Edge_CG[0]); @@ -443,7 +443,7 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v /*--- Allocate node, and face normal ---*/ Nodes = new unsigned long[1]; - Normal = new double [nDim]; + Normal = new su2double [nDim]; /*--- Initializate the structure ---*/ Nodes[0] = val_point; @@ -478,8 +478,8 @@ CVertex::~CVertex() { } -void CVertex::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceElem_CG, double *val_coord_Elem_CG) { - double vec_a[3] = {0.0,0.0,0.0}, vec_b[3] = {0.0,0.0,0.0}, Dim_Normal[3] = {0.0,0.0,0.0}; +void CVertex::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG) { + su2double vec_a[3] = {0.0,0.0,0.0}, vec_b[3] = {0.0,0.0,0.0}, Dim_Normal[3] = {0.0,0.0,0.0}; unsigned short iDim; for (iDim = 0; iDim < nDim; iDim++) { @@ -497,8 +497,8 @@ void CVertex::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_FaceEl } -void CVertex::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_CG) { - double Dim_Normal[2]; +void CVertex::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_Elem_CG) { + su2double Dim_Normal[2]; Dim_Normal[0] = val_coord_Elem_CG[1]-val_coord_Edge_CG[1]; Dim_Normal[1] = -(val_coord_Elem_CG[0]-val_coord_Edge_CG[0]); @@ -508,7 +508,7 @@ void CVertex::SetNodes_Coord(double *val_coord_Edge_CG, double *val_coord_Elem_C } -void CVertex::AddNormal(double *val_face_normal) { +void CVertex::AddNormal(su2double *val_face_normal) { Normal[0] += val_face_normal[0]; Normal[1] += val_face_normal[1]; @@ -517,7 +517,7 @@ void CVertex::AddNormal(double *val_face_normal) { void CVertex::Allocate_DonorInfo(void){ Donor_Info = new unsigned long*[nDonor_Points]; - Donor_Coeff = new double[nDonor_Points]; + Donor_Coeff = new su2double[nDonor_Points]; for (unsigned short iDonor=0; iDonor &x, vector &y, unsigned long n, double yp1, double ypn, vector &y2) { +void CGeometry::SetSpline(vector &x, vector &y, unsigned long n, su2double yp1, su2double ypn, vector &y2) { unsigned long i, k; - double p, qn, sig, un, *u; + su2double p, qn, sig, un, *u; - u = new double [n]; + u = new su2double [n]; if (yp1 > 0.99e30) // The lower boundary condition is set either to be "nat y2[0]=u[0]=0.0; // -ural" @@ -335,8 +335,8 @@ void CGeometry::SetSpline(vector &x, vector &y, unsigned long n, p=sig*y2[i-2]+2.0; // porary storage of the decomposed y2[i-1]=(sig-1.0)/p; // factors. - double a1 = (y[i]-y[i-1])/(x[i]-x[i-1]); if (x[i] == x[i-1]) a1 = 1.0; - double a2 = (y[i-1]-y[i-2])/(x[i-1]-x[i-2]); if (x[i-1] == x[i-2]) a2 = 1.0; + su2double a1 = (y[i]-y[i-1])/(x[i]-x[i-1]); if (x[i] == x[i-1]) a1 = 1.0; + su2double a2 = (y[i-1]-y[i-2])/(x[i-1]-x[i-2]); if (x[i-1] == x[i-2]) a2 = 1.0; u[i-1]= a1 - a2; u[i-1]=(6.0*u[i-1]/(x[i]-x[i-2])-sig*u[i-2])/p; @@ -356,9 +356,9 @@ void CGeometry::SetSpline(vector &x, vector &y, unsigned long n, } -double CGeometry::GetSpline(vector&xa, vector&ya, vector&y2a, unsigned long n, double x) { +su2double CGeometry::GetSpline(vector&xa, vector&ya, vector&y2a, unsigned long n, su2double x) { unsigned long klo, khi, k; - double h, b, a, y; + su2double h, b, a, y; if (x < xa[0]) x = xa[0]; // Clip max and min values if (x > xa[n-1]) x = xa[n-1]; @@ -379,9 +379,9 @@ double CGeometry::GetSpline(vector&xa, vector&ya, vector return y; } -bool CGeometry::SegmentIntersectsPlane(double *Segment_P0, double *Segment_P1, double Variable_P0, double Variable_P1, - double *Plane_P0, double *Plane_Normal, double *Intersection, double &Variable_Interp) { - double u[3], v[3], Denominator, Numerator, Aux, ModU; +bool CGeometry::SegmentIntersectsPlane(su2double *Segment_P0, su2double *Segment_P1, su2double Variable_P0, su2double Variable_P1, + su2double *Plane_P0, su2double *Plane_Normal, su2double *Intersection, su2double &Variable_Interp) { + su2double u[3], v[3], Denominator, Numerator, Aux, ModU; unsigned short iDim; for (iDim = 0; iDim < 3; iDim++) { @@ -424,12 +424,12 @@ bool CGeometry::SegmentIntersectsPlane(double *Segment_P0, double *Segment_P1, d } -bool CGeometry::RayIntersectsTriangle(double orig[3], double dir[3], - double vert0[3], double vert1[3], double vert2[3], - double *intersect) { +bool CGeometry::RayIntersectsTriangle(su2double orig[3], su2double dir[3], + su2double vert0[3], su2double vert1[3], su2double vert2[3], + su2double *intersect) { - double edge1[3], edge2[3], tvec[3], pvec[3], qvec[3]; - double det, inv_det, t, u, v; + su2double edge1[3], edge2[3], tvec[3], pvec[3], qvec[3]; + su2double det, inv_det, t, u, v; /*--- Find vectors for two edges sharing vert0 ---*/ @@ -483,10 +483,10 @@ bool CGeometry::RayIntersectsTriangle(double orig[3], double dir[3], } -bool CGeometry::SegmentIntersectsTriangle(double point0[3], double point1[3], - double vert0[3], double vert1[3], double vert2[3]) { +bool CGeometry::SegmentIntersectsTriangle(su2double point0[3], su2double point1[3], + su2double vert0[3], su2double vert1[3], su2double vert2[3]) { - double dir[3], intersect[3], u[3], v[3], edge1[3], edge2[3], Plane_Normal[3], Denominator, Numerator, Aux; + su2double dir[3], intersect[3], u[3], v[3], edge1[3], edge2[3], Plane_Normal[3], Denominator, Numerator, Aux; SUB(dir, point1, point0); @@ -525,28 +525,28 @@ bool CGeometry::SegmentIntersectsTriangle(double point0[3], double point1[3], } -void CGeometry::ComputeAirfoil_Section(double *Plane_P0, double *Plane_Normal, - double MinXCoord, double MaxXCoord, double *FlowVariable, - vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, - vector &Zcoord_Airfoil, vector &Variable_Airfoil, +void CGeometry::ComputeAirfoil_Section(su2double *Plane_P0, su2double *Plane_Normal, + su2double MinXCoord, su2double MaxXCoord, su2double *FlowVariable, + vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, + vector &Zcoord_Airfoil, vector &Variable_Airfoil, bool original_surface, CConfig *config) { unsigned short iMarker, iNode, jNode, iDim; bool intersect; long MinDist_Point, MinDistAngle_Point; unsigned long iPoint, jPoint, iElem, Trailing_Point, Airfoil_Point, iVertex, jVertex; - double Segment_P0[3] = {0.0, 0.0, 0.0}, Segment_P1[3] = {0.0, 0.0, 0.0}, Variable_P0 = 0.0, Variable_P1 = 0.0, Intersection[3] = {0.0, 0.0, 0.0}, Trailing_Coord, MinDist_Value, MinDistAngle_Value, Dist_Value, + su2double Segment_P0[3] = {0.0, 0.0, 0.0}, Segment_P1[3] = {0.0, 0.0, 0.0}, Variable_P0 = 0.0, Variable_P1 = 0.0, Intersection[3] = {0.0, 0.0, 0.0}, Trailing_Coord, MinDist_Value, MinDistAngle_Value, Dist_Value, Airfoil_Tangent[3] = {0.0, 0.0, 0.0}, Segment[3] = {0.0, 0.0, 0.0}, Length, Angle_Value, MaxAngle = 30, *VarCoord = NULL, CosValue, Variable_Interp; - vector Xcoord, Ycoord, Zcoord, Variable; + vector Xcoord, Ycoord, Zcoord, Variable; vector Duplicate; vector::iterator it; int rank = MASTER_NODE; - double **Coord_Variation = NULL; + su2double **Coord_Variation = NULL; #ifdef HAVE_MPI unsigned long nLocalVertex, nGlobalVertex, MaxLocalVertex, *Buffer_Send_nVertex, *Buffer_Receive_nVertex, nBuffer; int nProcessor, iProcessor; - double *Buffer_Send_Coord, *Buffer_Receive_Coord; + su2double *Buffer_Send_Coord, *Buffer_Receive_Coord; MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif @@ -567,9 +567,9 @@ void CGeometry::ComputeAirfoil_Section(double *Plane_P0, double *Plane_Normal, if (original_surface == false) { - Coord_Variation = new double *[nPoint]; + Coord_Variation = new su2double *[nPoint]; for (iPoint = 0; iPoint < nPoint; iPoint++) - Coord_Variation[iPoint] = new double [nDim]; + Coord_Variation[iPoint] = new su2double [nDim]; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_GeoEval(iMarker) == YES) { @@ -664,12 +664,12 @@ void CGeometry::ComputeAirfoil_Section(double *Plane_P0, double *Plane_Normal, Buffer_Send_nVertex[0] = nLocalVertex; - MPI_Allreduce(&nLocalVertex, &nGlobalVertex, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex, &MaxLocalVertex, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex, &nGlobalVertex, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex, &MaxLocalVertex, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - Buffer_Send_Coord = new double [MaxLocalVertex*4]; - Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex*4]; + Buffer_Send_Coord = new su2double [MaxLocalVertex*4]; + Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex*4]; nBuffer = MaxLocalVertex*4; for (iVertex = 0; iVertex < nLocalVertex; iVertex++) { @@ -679,7 +679,7 @@ void CGeometry::ComputeAirfoil_Section(double *Plane_P0, double *Plane_Normal, Buffer_Send_Coord[iVertex*4 + 3] = Variable[iVertex]; } - MPI_Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); /*--- Clean the vectors before adding the new vertices only to the master node ---*/ @@ -829,7 +829,7 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { int iProcessor, nProcessor; vector Point_NeighborList, Elem_NeighborList, Point_Triangle, Point_Edge, Point_Critical; vector::iterator it; - double U[3] = {0.0,0.0,0.0}, V[3] = {0.0,0.0,0.0}, W[3] = {0.0,0.0,0.0}, Length_U, Length_V, Length_W, CosValue, Angle_Value, *K, *Angle_Defect, *Area_Vertex, *Angle_Alpha, *Angle_Beta, **NormalMeanK, MeanK, GaussK, MaxPrinK, cot_alpha, cot_beta, delta, X1, X2, X3, Y1, Y2, Y3, radius, *Buffer_Send_Coord, *Buffer_Receive_Coord, *Coord, Dist, MinDist, MaxK, MinK, SigmaK; + su2double U[3] = {0.0,0.0,0.0}, V[3] = {0.0,0.0,0.0}, W[3] = {0.0,0.0,0.0}, Length_U, Length_V, Length_W, CosValue, Angle_Value, *K, *Angle_Defect, *Area_Vertex, *Angle_Alpha, *Angle_Beta, **NormalMeanK, MeanK, GaussK, MaxPrinK, cot_alpha, cot_beta, delta, X1, X2, X3, Y1, Y2, Y3, radius, *Buffer_Send_Coord, *Buffer_Receive_Coord, *Coord, Dist, MinDist, MaxK, MinK, SigmaK; bool *Check_Edge; int rank; @@ -840,7 +840,7 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { #endif /*--- Allocate surface curvature ---*/ - K = new double [nPoint]; + K = new su2double [nPoint]; if (nDim == 2) { @@ -901,15 +901,15 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { else { - Angle_Defect = new double [nPoint]; - Area_Vertex = new double [nPoint]; + Angle_Defect = new su2double [nPoint]; + Area_Vertex = new su2double [nPoint]; for (iPoint = 0; iPoint < nPoint; iPoint++) { Angle_Defect[iPoint] = 2*PI_NUMBER; Area_Vertex[iPoint] = 0.0; } - Angle_Alpha = new double [nEdge]; - Angle_Beta = new double [nEdge]; + Angle_Alpha = new su2double [nEdge]; + Angle_Beta = new su2double [nEdge]; Check_Edge = new bool [nEdge]; for (iEdge = 0; iEdge < nEdge; iEdge++) { Angle_Alpha[iEdge] = 0.0; @@ -917,9 +917,9 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { Check_Edge[iEdge] = true; } - NormalMeanK = new double *[nPoint]; + NormalMeanK = new su2double *[nPoint]; for (iPoint = 0; iPoint < nPoint; iPoint++) { - NormalMeanK[iPoint] = new double [nDim]; + NormalMeanK[iPoint] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) { NormalMeanK[iPoint][iDim] = 0.0; } @@ -1074,16 +1074,16 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { } #ifdef HAVE_MPI - double MyMeanK = MeanK; MeanK = 0.0; - double MyMaxK = MaxK; MaxK = 0.0; + su2double MyMeanK = MeanK; MeanK = 0.0; + su2double MyMaxK = MaxK; MaxK = 0.0; unsigned long MynPointDomain = TotalnPointDomain; TotalnPointDomain = 0; - MPI_Allreduce(&MyMeanK, &MeanK, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyMaxK, &MaxK, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - MPI_Allreduce(&MynPointDomain, &TotalnPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyMeanK, &MeanK, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyMaxK, &MaxK, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MynPointDomain, &TotalnPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif /*--- Compute the mean ---*/ - MeanK /= double(TotalnPointDomain); + MeanK /= su2double(TotalnPointDomain); /*--- Compute the standard deviation ---*/ SigmaK = 0.0; @@ -1099,11 +1099,11 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { } #ifdef HAVE_MPI - double MySigmaK = SigmaK; SigmaK = 0.0; - MPI_Allreduce(&MySigmaK, &SigmaK, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + su2double MySigmaK = SigmaK; SigmaK = 0.0; + SU2_MPI::Allreduce(&MySigmaK, &SigmaK, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif - SigmaK = sqrt(SigmaK/double(TotalnPointDomain)); + SigmaK = sqrt(SigmaK/su2double(TotalnPointDomain)); if (rank == MASTER_NODE) cout << "Max K: " << MaxK << ". Mean K: " << MeanK << ". Standard deviation K: " << SigmaK << "." << endl; @@ -1143,8 +1143,8 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { #ifdef HAVE_MPI MaxLocalVertex = 0; - MPI_Allreduce(&nLocalVertex, &MaxLocalVertex, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex, &MaxLocalVertex, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else MaxLocalVertex = nLocalVertex; Buffer_Receive_nVertex[0] = nLocalVertex; @@ -1154,8 +1154,8 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { /*--- Create and initialize to zero some buffers to hold the coordinates of the boundary nodes that are communicated from each partition (all-to-all). ---*/ - Buffer_Send_Coord = new double [MaxLocalVertex*nDim]; - Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex*nDim]; + Buffer_Send_Coord = new su2double [MaxLocalVertex*nDim]; + Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex*nDim]; #ifdef HAVE_MPI unsigned long nBuffer = MaxLocalVertex*nDim; @@ -1177,7 +1177,7 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { } #ifdef HAVE_MPI - MPI_Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); #else for (iVertex = 0; iVertex < Point_Critical.size(); iVertex++) { for (iDim = 0; iDim < nDim; iDim++) { @@ -1239,7 +1239,7 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, ifstream mesh_file; unsigned short iDim, iMarker, iNodes; unsigned long iPoint, LocaNodes, iElem_Bound; - double *NewCoord; + su2double *NewCoord; nZone = val_nZone; ofstream boundary_file; string Grid_Marker; @@ -1281,7 +1281,7 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, if (config->GetKind_SU2() == SU2_CFD) { - NewCoord = new double [nDim]; + NewCoord = new su2double [nDim]; /*--- The US system uses feet, but SU2 assumes that the grid is in inches ---*/ @@ -1365,7 +1365,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { unsigned long Buffer_Send_nBoundLineTotal = 0, Buffer_Send_nBoundTriangleTotal = 0, Buffer_Send_nBoundRectangleTotal = 0; unsigned long iVertexDomain, iBoundLine, iBoundTriangle, iBoundRectangle; - /*--- Need to double-check these shorts in case we go to nprocs > ~32,000 ---*/ + /*--- Need to su2double-check these shorts in case we go to nprocs > ~32,000 ---*/ unsigned short iNode, iDim, iMarker, jMarker, nMarkerDomain = 0, iMarkerDomain; unsigned short nDomain = 0, iDomain, jDomain, nPeriodic = 0, iPeriodic, overhead = 4, Buffer_Send_nMarkerDomain = 0, Buffer_Send_nDim = 0, Buffer_Send_nZone = 0, Buffer_Send_nPeriodic = 0; @@ -1412,7 +1412,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Define buffer vector interior domain ---*/ - double *Buffer_Send_Coord = NULL, *Buffer_Receive_Coord = NULL; + su2double *Buffer_Send_Coord = NULL, *Buffer_Receive_Coord = NULL; unsigned long *Buffer_Send_Color = NULL, *Buffer_Receive_Color = NULL; unsigned long *Buffer_Send_GlobalPointIndex = NULL, *Buffer_Receive_GlobalPointIndex = NULL; unsigned long *Buffer_Send_Triangle = NULL, *Buffer_Receive_Triangle = NULL; @@ -1431,9 +1431,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Define buffer vector periodic boundary conditions ---*/ - double *Buffer_Send_Center = NULL, *Buffer_Receive_Center = NULL; - double *Buffer_Send_Rotation = NULL, *Buffer_Receive_Rotation = NULL; - double *Buffer_Send_Translate = NULL, *Buffer_Receive_Translate = NULL; + su2double *Buffer_Send_Center = NULL, *Buffer_Receive_Center = NULL; + su2double *Buffer_Send_Rotation = NULL, *Buffer_Receive_Rotation = NULL; + su2double *Buffer_Send_Translate = NULL, *Buffer_Receive_Translate = NULL; /*--- Define buffer vector periodic boundary conditions ---*/ @@ -1468,9 +1468,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Send_nZone = geometry->GetnZone(); Buffer_Send_nPeriodic = config->GetnPeriodicIndex(); - Buffer_Send_Center = new double[Buffer_Send_nPeriodic*3]; - Buffer_Send_Rotation = new double[Buffer_Send_nPeriodic*3]; - Buffer_Send_Translate = new double[Buffer_Send_nPeriodic*3]; + Buffer_Send_Center = new su2double[Buffer_Send_nPeriodic*3]; + Buffer_Send_Rotation = new su2double[Buffer_Send_nPeriodic*3]; + Buffer_Send_Translate = new su2double[Buffer_Send_nPeriodic*3]; Buffer_Send_nSendDomain_Periodic = new unsigned long [nDomain]; Buffer_Send_nReceivedDomain_Periodic = new unsigned long [nDomain]; @@ -1608,7 +1608,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Send_nBoundRectangle[iMarker] = 0; Buffer_Send_Marker_All_SendRecv[iMarker] = Marker_All_SendRecv_Copy[iMarker]; - sprintf(&Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE], "%s", Marker_All_TagBound_Copy[iMarker].c_str()); + SPRINTF(&Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE], "%s", Marker_All_TagBound_Copy[iMarker].c_str()); } for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { @@ -1704,7 +1704,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Allocate the buffer vectors in the appropiate domain (master, iDomain) ---*/ - Buffer_Send_Coord = new double [Buffer_Send_nPointTotal*Buffer_Send_nDim]; + Buffer_Send_Coord = new su2double [Buffer_Send_nPointTotal*Buffer_Send_nDim]; Buffer_Send_Color = new unsigned long [Buffer_Send_nPointTotal]; Buffer_Send_GlobalPointIndex = new unsigned long [Buffer_Send_nPointTotal]; Buffer_Send_Triangle = new unsigned long [Buffer_Send_nElemTriangle*3]; @@ -1730,44 +1730,44 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI - MPI_Isend(&Buffer_Send_nDim, 1, MPI_UNSIGNED_SHORT, iDomain, 0, MPI_COMM_WORLD, &send_req[0]); - MPI_Isend(&Buffer_Send_nZone, 1, MPI_UNSIGNED_SHORT, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); - MPI_Isend(&Buffer_Send_nPointTotal, 1, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); - MPI_Isend(&Buffer_Send_nPointDomainTotal, 1, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); - MPI_Isend(&Buffer_Send_nPointGhost, 1, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); - MPI_Isend(&Buffer_Send_nPointPeriodic, 1, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); - MPI_Isend(&Buffer_Send_nElemTotal, 1, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); - MPI_Isend(&Buffer_Send_nElemTriangle, 1, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); - MPI_Isend(&Buffer_Send_nElemRectangle, 1, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); - MPI_Isend(&Buffer_Send_nElemTetrahedron, 1, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); - MPI_Isend(&Buffer_Send_nElemHexahedron, 1, MPI_UNSIGNED_LONG, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); - MPI_Isend(&Buffer_Send_nElemPrism, 1, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); - MPI_Isend(&Buffer_Send_nElemPyramid, 1, MPI_UNSIGNED_LONG, iDomain, 12, MPI_COMM_WORLD, &send_req[12]); - - MPI_Isend(&Buffer_Send_nBoundLineTotal, 1, MPI_UNSIGNED_LONG, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); - MPI_Isend(&Buffer_Send_nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 14, MPI_COMM_WORLD, &send_req[14]); - MPI_Isend(&Buffer_Send_nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); - MPI_Isend(&Buffer_Send_nMarkerDomain, 1, MPI_UNSIGNED_SHORT, iDomain, 16, MPI_COMM_WORLD, &send_req[16]); - MPI_Isend(Buffer_Send_nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 17, MPI_COMM_WORLD, &send_req[17]); - MPI_Isend(Buffer_Send_nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 18, MPI_COMM_WORLD, &send_req[18]); - MPI_Isend(Buffer_Send_nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 19, MPI_COMM_WORLD, &send_req[19]); - MPI_Isend(Buffer_Send_nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 20, MPI_COMM_WORLD, &send_req[20]); - MPI_Isend(Buffer_Send_Marker_All_SendRecv, nMarker_Max, MPI_SHORT, iDomain, 21, MPI_COMM_WORLD, &send_req[21]); - MPI_Isend(Buffer_Send_Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, iDomain, 22, MPI_COMM_WORLD, &send_req[22]); - - MPI_Isend(&Buffer_Send_nPeriodic, 1, MPI_UNSIGNED_SHORT, iDomain, 23, MPI_COMM_WORLD, &send_req[23]); - MPI_Isend(Buffer_Send_Center, nPeriodic*3, MPI_DOUBLE, iDomain, 24, MPI_COMM_WORLD, &send_req[24]); - MPI_Isend(Buffer_Send_Rotation, nPeriodic*3, MPI_DOUBLE, iDomain, 25, MPI_COMM_WORLD, &send_req[25]); - MPI_Isend(Buffer_Send_Translate, nPeriodic*3, MPI_DOUBLE, iDomain, 26, MPI_COMM_WORLD, &send_req[26]); - - MPI_Isend(&Buffer_Send_nTotalSendDomain_Periodic, 1, MPI_UNSIGNED_LONG, iDomain, 27, MPI_COMM_WORLD, &send_req[27]); - MPI_Isend(&Buffer_Send_nTotalReceivedDomain_Periodic, 1, MPI_UNSIGNED_LONG, iDomain, 28, MPI_COMM_WORLD, &send_req[28]); - MPI_Isend(Buffer_Send_nSendDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, iDomain, 29, MPI_COMM_WORLD, &send_req[29]); - MPI_Isend(Buffer_Send_nReceivedDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, iDomain, 30, MPI_COMM_WORLD, &send_req[30]); + SU2_MPI::Isend(&Buffer_Send_nDim, 1, MPI_UNSIGNED_SHORT, iDomain, 0, MPI_COMM_WORLD, &send_req[0]); + SU2_MPI::Isend(&Buffer_Send_nZone, 1, MPI_UNSIGNED_SHORT, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); + SU2_MPI::Isend(&Buffer_Send_nPointTotal, 1, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); + SU2_MPI::Isend(&Buffer_Send_nPointDomainTotal, 1, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); + SU2_MPI::Isend(&Buffer_Send_nPointGhost, 1, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); + SU2_MPI::Isend(&Buffer_Send_nPointPeriodic, 1, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); + SU2_MPI::Isend(&Buffer_Send_nElemTotal, 1, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); + SU2_MPI::Isend(&Buffer_Send_nElemTriangle, 1, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); + SU2_MPI::Isend(&Buffer_Send_nElemRectangle, 1, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); + SU2_MPI::Isend(&Buffer_Send_nElemTetrahedron, 1, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); + SU2_MPI::Isend(&Buffer_Send_nElemHexahedron, 1, MPI_UNSIGNED_LONG, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); + SU2_MPI::Isend(&Buffer_Send_nElemPrism, 1, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); + SU2_MPI::Isend(&Buffer_Send_nElemPyramid, 1, MPI_UNSIGNED_LONG, iDomain, 12, MPI_COMM_WORLD, &send_req[12]); + + SU2_MPI::Isend(&Buffer_Send_nBoundLineTotal, 1, MPI_UNSIGNED_LONG, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); + SU2_MPI::Isend(&Buffer_Send_nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 14, MPI_COMM_WORLD, &send_req[14]); + SU2_MPI::Isend(&Buffer_Send_nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); + SU2_MPI::Isend(&Buffer_Send_nMarkerDomain, 1, MPI_UNSIGNED_SHORT, iDomain, 16, MPI_COMM_WORLD, &send_req[16]); + SU2_MPI::Isend(Buffer_Send_nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 17, MPI_COMM_WORLD, &send_req[17]); + SU2_MPI::Isend(Buffer_Send_nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 18, MPI_COMM_WORLD, &send_req[18]); + SU2_MPI::Isend(Buffer_Send_nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 19, MPI_COMM_WORLD, &send_req[19]); + SU2_MPI::Isend(Buffer_Send_nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 20, MPI_COMM_WORLD, &send_req[20]); + SU2_MPI::Isend(Buffer_Send_Marker_All_SendRecv, nMarker_Max, MPI_SHORT, iDomain, 21, MPI_COMM_WORLD, &send_req[21]); + SU2_MPI::Isend(Buffer_Send_Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, iDomain, 22, MPI_COMM_WORLD, &send_req[22]); + + SU2_MPI::Isend(&Buffer_Send_nPeriodic, 1, MPI_UNSIGNED_SHORT, iDomain, 23, MPI_COMM_WORLD, &send_req[23]); + SU2_MPI::Isend(Buffer_Send_Center, nPeriodic*3, MPI_DOUBLE, iDomain, 24, MPI_COMM_WORLD, &send_req[24]); + SU2_MPI::Isend(Buffer_Send_Rotation, nPeriodic*3, MPI_DOUBLE, iDomain, 25, MPI_COMM_WORLD, &send_req[25]); + SU2_MPI::Isend(Buffer_Send_Translate, nPeriodic*3, MPI_DOUBLE, iDomain, 26, MPI_COMM_WORLD, &send_req[26]); + + SU2_MPI::Isend(&Buffer_Send_nTotalSendDomain_Periodic, 1, MPI_UNSIGNED_LONG, iDomain, 27, MPI_COMM_WORLD, &send_req[27]); + SU2_MPI::Isend(&Buffer_Send_nTotalReceivedDomain_Periodic, 1, MPI_UNSIGNED_LONG, iDomain, 28, MPI_COMM_WORLD, &send_req[28]); + SU2_MPI::Isend(Buffer_Send_nSendDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, iDomain, 29, MPI_COMM_WORLD, &send_req[29]); + SU2_MPI::Isend(Buffer_Send_nReceivedDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, iDomain, 30, MPI_COMM_WORLD, &send_req[30]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - MPI_Waitall(31, send_req, send_stat); + SU2_MPI::Waitall(31, send_req, send_stat); #endif @@ -1816,9 +1816,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter] = Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter]; } - Buffer_Receive_Center = new double[nPeriodic*3]; - Buffer_Receive_Rotation = new double[nPeriodic*3]; - Buffer_Receive_Translate = new double[nPeriodic*3]; + Buffer_Receive_Center = new su2double[nPeriodic*3]; + Buffer_Receive_Rotation = new su2double[nPeriodic*3]; + Buffer_Receive_Translate = new su2double[nPeriodic*3]; for (iter = 0; iter < nPeriodic*3; iter++) { Buffer_Receive_Center[iter] = Buffer_Send_Center[iter]; @@ -1847,35 +1847,35 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI - MPI_Irecv(&nDim, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 0, MPI_COMM_WORLD, &recv_req[0]); - MPI_Irecv(&nZone, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 1, MPI_COMM_WORLD, &recv_req[1]); - MPI_Irecv(&nPointTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &recv_req[2]); - MPI_Irecv(&nPointDomainTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &recv_req[3]); - MPI_Irecv(&nPointGhost, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); - MPI_Irecv(&nPointPeriodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); - MPI_Irecv(&nElemTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &recv_req[6]); - MPI_Irecv(&nElemTriangle, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &recv_req[7]); - MPI_Irecv(&nElemRectangle, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); - MPI_Irecv(&nElemTetrahedron, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &recv_req[9]); - MPI_Irecv(&nElemHexahedron, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 10, MPI_COMM_WORLD, &recv_req[10]); - MPI_Irecv(&nElemPrism, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); - MPI_Irecv(&nElemPyramid, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 12, MPI_COMM_WORLD, &recv_req[12]); - - MPI_Irecv(&nBoundLineTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 13, MPI_COMM_WORLD, &recv_req[13]); - MPI_Irecv(&nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 14, MPI_COMM_WORLD, &recv_req[14]); - MPI_Irecv(&nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &recv_req[15]); - MPI_Irecv(&nMarkerDomain, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 16, MPI_COMM_WORLD, &recv_req[16]); - MPI_Irecv(nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 17, MPI_COMM_WORLD, &recv_req[17]); - MPI_Irecv(nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 18, MPI_COMM_WORLD, &recv_req[18]); - MPI_Irecv(nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 19, MPI_COMM_WORLD, &recv_req[19]); - MPI_Irecv(nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 20, MPI_COMM_WORLD, &recv_req[20]); - MPI_Irecv(Marker_All_SendRecv, nMarker_Max, MPI_SHORT, MASTER_NODE, 21, MPI_COMM_WORLD, &recv_req[21]); - MPI_Irecv(Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, MASTER_NODE, 22, MPI_COMM_WORLD, &recv_req[22]); - MPI_Irecv(&nPeriodic, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 23, MPI_COMM_WORLD, &recv_req[23]); + SU2_MPI::Irecv(&nDim, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 0, MPI_COMM_WORLD, &recv_req[0]); + SU2_MPI::Irecv(&nZone, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 1, MPI_COMM_WORLD, &recv_req[1]); + SU2_MPI::Irecv(&nPointTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &recv_req[2]); + SU2_MPI::Irecv(&nPointDomainTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &recv_req[3]); + SU2_MPI::Irecv(&nPointGhost, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); + SU2_MPI::Irecv(&nPointPeriodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); + SU2_MPI::Irecv(&nElemTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &recv_req[6]); + SU2_MPI::Irecv(&nElemTriangle, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &recv_req[7]); + SU2_MPI::Irecv(&nElemRectangle, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); + SU2_MPI::Irecv(&nElemTetrahedron, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &recv_req[9]); + SU2_MPI::Irecv(&nElemHexahedron, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 10, MPI_COMM_WORLD, &recv_req[10]); + SU2_MPI::Irecv(&nElemPrism, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); + SU2_MPI::Irecv(&nElemPyramid, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 12, MPI_COMM_WORLD, &recv_req[12]); + + SU2_MPI::Irecv(&nBoundLineTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 13, MPI_COMM_WORLD, &recv_req[13]); + SU2_MPI::Irecv(&nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 14, MPI_COMM_WORLD, &recv_req[14]); + SU2_MPI::Irecv(&nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &recv_req[15]); + SU2_MPI::Irecv(&nMarkerDomain, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 16, MPI_COMM_WORLD, &recv_req[16]); + SU2_MPI::Irecv(nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 17, MPI_COMM_WORLD, &recv_req[17]); + SU2_MPI::Irecv(nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 18, MPI_COMM_WORLD, &recv_req[18]); + SU2_MPI::Irecv(nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 19, MPI_COMM_WORLD, &recv_req[19]); + SU2_MPI::Irecv(nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 20, MPI_COMM_WORLD, &recv_req[20]); + SU2_MPI::Irecv(Marker_All_SendRecv, nMarker_Max, MPI_SHORT, MASTER_NODE, 21, MPI_COMM_WORLD, &recv_req[21]); + SU2_MPI::Irecv(Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, MASTER_NODE, 22, MPI_COMM_WORLD, &recv_req[22]); + SU2_MPI::Irecv(&nPeriodic, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 23, MPI_COMM_WORLD, &recv_req[23]); /*--- Wait for the this set of non-blocking recv's to complete ---*/ - MPI_Waitall(24, recv_req, recv_stat); + SU2_MPI::Waitall(24, recv_req, recv_stat); #endif @@ -1897,24 +1897,24 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Periodic boundary conditions, set the values in the config files of all the files ---*/ - Buffer_Receive_Center = new double[nPeriodic*3]; - Buffer_Receive_Rotation = new double[nPeriodic*3]; - Buffer_Receive_Translate = new double[nPeriodic*3]; + Buffer_Receive_Center = new su2double[nPeriodic*3]; + Buffer_Receive_Rotation = new su2double[nPeriodic*3]; + Buffer_Receive_Translate = new su2double[nPeriodic*3]; #ifdef HAVE_MPI - MPI_Irecv(Buffer_Receive_Center, nPeriodic*3, MPI_DOUBLE, MASTER_NODE, 24, MPI_COMM_WORLD, &recv_req[0]); - MPI_Irecv(Buffer_Receive_Rotation, nPeriodic*3, MPI_DOUBLE, MASTER_NODE, 25, MPI_COMM_WORLD, &recv_req[1]); - MPI_Irecv(Buffer_Receive_Translate, nPeriodic*3, MPI_DOUBLE, MASTER_NODE, 26, MPI_COMM_WORLD, &recv_req[2]); + SU2_MPI::Irecv(Buffer_Receive_Center, nPeriodic*3, MPI_DOUBLE, MASTER_NODE, 24, MPI_COMM_WORLD, &recv_req[0]); + SU2_MPI::Irecv(Buffer_Receive_Rotation, nPeriodic*3, MPI_DOUBLE, MASTER_NODE, 25, MPI_COMM_WORLD, &recv_req[1]); + SU2_MPI::Irecv(Buffer_Receive_Translate, nPeriodic*3, MPI_DOUBLE, MASTER_NODE, 26, MPI_COMM_WORLD, &recv_req[2]); - MPI_Irecv(&nTotalSendDomain_Periodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 27, MPI_COMM_WORLD, &recv_req[3]); - MPI_Irecv(&nTotalReceivedDomain_Periodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 28, MPI_COMM_WORLD, &recv_req[4]); - MPI_Irecv(nSendDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 29, MPI_COMM_WORLD, &recv_req[5]); - MPI_Irecv(nReceivedDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 30, MPI_COMM_WORLD, &recv_req[6]); + SU2_MPI::Irecv(&nTotalSendDomain_Periodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 27, MPI_COMM_WORLD, &recv_req[3]); + SU2_MPI::Irecv(&nTotalReceivedDomain_Periodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 28, MPI_COMM_WORLD, &recv_req[4]); + SU2_MPI::Irecv(nSendDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 29, MPI_COMM_WORLD, &recv_req[5]); + SU2_MPI::Irecv(nReceivedDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 30, MPI_COMM_WORLD, &recv_req[6]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - MPI_Waitall(7, recv_req, recv_stat); + SU2_MPI::Waitall(7, recv_req, recv_stat); #endif @@ -1922,9 +1922,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { for (iPeriodic = 0; iPeriodic < nPeriodic; iPeriodic++) { - double* center = new double[3]; // Do not deallocate the memory - double* rotation = new double[3]; // Do not deallocate the memory - double* translate = new double[3]; // Do not deallocate the memory + su2double* center = new su2double[3]; // Do not deallocate the memory + su2double* rotation = new su2double[3]; // Do not deallocate the memory + su2double* translate = new su2double[3]; // Do not deallocate the memory for (iDim = 0; iDim < 3; iDim++) { center[iDim] = Buffer_Receive_Center[iDim+iPeriodic*3]; @@ -1944,7 +1944,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Allocate the receive buffer vector ---*/ - Buffer_Receive_Coord = new double [nPointTotal*nDim]; + Buffer_Receive_Coord = new su2double [nPointTotal*nDim]; Buffer_Receive_Color = new unsigned long [nPointTotal]; Buffer_Receive_GlobalPointIndex = new unsigned long [nPointTotal]; Buffer_Receive_Triangle = new unsigned long [nElemTriangle*3]; @@ -2157,30 +2157,30 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI - MPI_Isend(Buffer_Send_Coord, Buffer_Send_nPointTotal*Buffer_Send_nDim, MPI_DOUBLE, iDomain, 0, MPI_COMM_WORLD, &send_req[0]); - MPI_Isend(Buffer_Send_GlobalPointIndex, Buffer_Send_nPointTotal, MPI_UNSIGNED_LONG, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); - MPI_Isend(Buffer_Send_Color, Buffer_Send_nPointTotal, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); - MPI_Isend(Buffer_Send_Triangle, Buffer_Send_nElemTriangle*3, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); - MPI_Isend(Buffer_Send_Rectangle, Buffer_Send_nElemRectangle*4, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); - MPI_Isend(Buffer_Send_Tetrahedron, Buffer_Send_nElemTetrahedron*4, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); - MPI_Isend(Buffer_Send_Hexahedron, Buffer_Send_nElemHexahedron*8, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); - MPI_Isend(Buffer_Send_Prism, Buffer_Send_nElemPrism*6, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); - MPI_Isend(Buffer_Send_Pyramid, Buffer_Send_nElemPyramid*5, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); - MPI_Isend(Buffer_Send_BoundLine, Buffer_Send_nBoundLineTotal*2, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); - MPI_Isend(Buffer_Send_BoundTriangle, Buffer_Send_nBoundTriangleTotal*3, MPI_UNSIGNED_LONG, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); - MPI_Isend(Buffer_Send_BoundRectangle, Buffer_Send_nBoundRectangleTotal*4, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); - MPI_Isend(Buffer_Send_Local2Global_Marker, Buffer_Send_nMarkerDomain, MPI_UNSIGNED_LONG, iDomain, 12, MPI_COMM_WORLD, &send_req[12]); - - MPI_Isend(Buffer_Send_SendDomain_Periodic, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); - MPI_Isend(Buffer_Send_SendDomain_PeriodicTrans, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 14, MPI_COMM_WORLD, &send_req[14]); - MPI_Isend(Buffer_Send_SendDomain_PeriodicReceptor, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); - MPI_Isend(Buffer_Send_ReceivedDomain_Periodic, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 16, MPI_COMM_WORLD, &send_req[16]); - MPI_Isend(Buffer_Send_ReceivedDomain_PeriodicTrans, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 17, MPI_COMM_WORLD, &send_req[17]); - MPI_Isend(Buffer_Send_ReceivedDomain_PeriodicDonor, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 18, MPI_COMM_WORLD, &send_req[18]); + SU2_MPI::Isend(Buffer_Send_Coord, Buffer_Send_nPointTotal*Buffer_Send_nDim, MPI_DOUBLE, iDomain, 0, MPI_COMM_WORLD, &send_req[0]); + SU2_MPI::Isend(Buffer_Send_GlobalPointIndex, Buffer_Send_nPointTotal, MPI_UNSIGNED_LONG, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); + SU2_MPI::Isend(Buffer_Send_Color, Buffer_Send_nPointTotal, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); + SU2_MPI::Isend(Buffer_Send_Triangle, Buffer_Send_nElemTriangle*3, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); + SU2_MPI::Isend(Buffer_Send_Rectangle, Buffer_Send_nElemRectangle*4, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); + SU2_MPI::Isend(Buffer_Send_Tetrahedron, Buffer_Send_nElemTetrahedron*4, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); + SU2_MPI::Isend(Buffer_Send_Hexahedron, Buffer_Send_nElemHexahedron*8, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); + SU2_MPI::Isend(Buffer_Send_Prism, Buffer_Send_nElemPrism*6, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); + SU2_MPI::Isend(Buffer_Send_Pyramid, Buffer_Send_nElemPyramid*5, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); + SU2_MPI::Isend(Buffer_Send_BoundLine, Buffer_Send_nBoundLineTotal*2, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); + SU2_MPI::Isend(Buffer_Send_BoundTriangle, Buffer_Send_nBoundTriangleTotal*3, MPI_UNSIGNED_LONG, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); + SU2_MPI::Isend(Buffer_Send_BoundRectangle, Buffer_Send_nBoundRectangleTotal*4, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); + SU2_MPI::Isend(Buffer_Send_Local2Global_Marker, Buffer_Send_nMarkerDomain, MPI_UNSIGNED_LONG, iDomain, 12, MPI_COMM_WORLD, &send_req[12]); + + SU2_MPI::Isend(Buffer_Send_SendDomain_Periodic, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); + SU2_MPI::Isend(Buffer_Send_SendDomain_PeriodicTrans, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 14, MPI_COMM_WORLD, &send_req[14]); + SU2_MPI::Isend(Buffer_Send_SendDomain_PeriodicReceptor, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); + SU2_MPI::Isend(Buffer_Send_ReceivedDomain_Periodic, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 16, MPI_COMM_WORLD, &send_req[16]); + SU2_MPI::Isend(Buffer_Send_ReceivedDomain_PeriodicTrans, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 17, MPI_COMM_WORLD, &send_req[17]); + SU2_MPI::Isend(Buffer_Send_ReceivedDomain_PeriodicDonor, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 18, MPI_COMM_WORLD, &send_req[18]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - MPI_Waitall(19, send_req, send_stat); + SU2_MPI::Waitall(19, send_req, send_stat); #endif @@ -2269,30 +2269,30 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI - MPI_Irecv(Buffer_Receive_Coord, nPointTotal*nDim, MPI_DOUBLE, MASTER_NODE, 0, MPI_COMM_WORLD, &recv_req[0]); - MPI_Irecv(Buffer_Receive_GlobalPointIndex, nPointTotal, MPI_UNSIGNED_LONG, MASTER_NODE, 1, MPI_COMM_WORLD, &recv_req[1]); - MPI_Irecv(Buffer_Receive_Color, nPointTotal, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &recv_req[2]); - MPI_Irecv(Buffer_Receive_Triangle, nElemTriangle*3, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &recv_req[3]); - MPI_Irecv(Buffer_Receive_Rectangle, nElemRectangle*4, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); - MPI_Irecv(Buffer_Receive_Tetrahedron, nElemTetrahedron*4, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); - MPI_Irecv(Buffer_Receive_Hexahedron, nElemHexahedron*8, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &recv_req[6]); - MPI_Irecv(Buffer_Receive_Prism, nElemPrism*6, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &recv_req[7]); - MPI_Irecv(Buffer_Receive_Pyramid, nElemPyramid*5, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); - MPI_Irecv(Buffer_Receive_BoundLine, nBoundLineTotal*2, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &recv_req[9]); - MPI_Irecv(Buffer_Receive_BoundTriangle, nBoundTriangleTotal*3, MPI_UNSIGNED_LONG, MASTER_NODE, 10, MPI_COMM_WORLD, &recv_req[10]); - MPI_Irecv(Buffer_Receive_BoundRectangle, nBoundRectangleTotal*4, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); - MPI_Irecv(Buffer_Receive_Local2Global_Marker, nMarkerDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 12, MPI_COMM_WORLD, &recv_req[12]); - - MPI_Irecv(Buffer_Receive_SendDomain_Periodic, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 13, MPI_COMM_WORLD, &recv_req[13]); - MPI_Irecv(Buffer_Receive_SendDomain_PeriodicTrans, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 14, MPI_COMM_WORLD, &recv_req[14]); - MPI_Irecv(Buffer_Receive_SendDomain_PeriodicReceptor, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &recv_req[15]); - MPI_Irecv(Buffer_Receive_ReceivedDomain_Periodic, nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 16, MPI_COMM_WORLD, &recv_req[16]); - MPI_Irecv(Buffer_Receive_ReceivedDomain_PeriodicTrans, nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 17, MPI_COMM_WORLD, &recv_req[17]); - MPI_Irecv(Buffer_Receive_ReceivedDomain_PeriodicDonor, nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 18, MPI_COMM_WORLD, &recv_req[18]); + SU2_MPI::Irecv(Buffer_Receive_Coord, nPointTotal*nDim, MPI_DOUBLE, MASTER_NODE, 0, MPI_COMM_WORLD, &recv_req[0]); + SU2_MPI::Irecv(Buffer_Receive_GlobalPointIndex, nPointTotal, MPI_UNSIGNED_LONG, MASTER_NODE, 1, MPI_COMM_WORLD, &recv_req[1]); + SU2_MPI::Irecv(Buffer_Receive_Color, nPointTotal, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &recv_req[2]); + SU2_MPI::Irecv(Buffer_Receive_Triangle, nElemTriangle*3, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &recv_req[3]); + SU2_MPI::Irecv(Buffer_Receive_Rectangle, nElemRectangle*4, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); + SU2_MPI::Irecv(Buffer_Receive_Tetrahedron, nElemTetrahedron*4, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); + SU2_MPI::Irecv(Buffer_Receive_Hexahedron, nElemHexahedron*8, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &recv_req[6]); + SU2_MPI::Irecv(Buffer_Receive_Prism, nElemPrism*6, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &recv_req[7]); + SU2_MPI::Irecv(Buffer_Receive_Pyramid, nElemPyramid*5, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); + SU2_MPI::Irecv(Buffer_Receive_BoundLine, nBoundLineTotal*2, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &recv_req[9]); + SU2_MPI::Irecv(Buffer_Receive_BoundTriangle, nBoundTriangleTotal*3, MPI_UNSIGNED_LONG, MASTER_NODE, 10, MPI_COMM_WORLD, &recv_req[10]); + SU2_MPI::Irecv(Buffer_Receive_BoundRectangle, nBoundRectangleTotal*4, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); + SU2_MPI::Irecv(Buffer_Receive_Local2Global_Marker, nMarkerDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 12, MPI_COMM_WORLD, &recv_req[12]); + + SU2_MPI::Irecv(Buffer_Receive_SendDomain_Periodic, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 13, MPI_COMM_WORLD, &recv_req[13]); + SU2_MPI::Irecv(Buffer_Receive_SendDomain_PeriodicTrans, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 14, MPI_COMM_WORLD, &recv_req[14]); + SU2_MPI::Irecv(Buffer_Receive_SendDomain_PeriodicReceptor, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &recv_req[15]); + SU2_MPI::Irecv(Buffer_Receive_ReceivedDomain_Periodic, nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 16, MPI_COMM_WORLD, &recv_req[16]); + SU2_MPI::Irecv(Buffer_Receive_ReceivedDomain_PeriodicTrans, nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 17, MPI_COMM_WORLD, &recv_req[17]); + SU2_MPI::Irecv(Buffer_Receive_ReceivedDomain_PeriodicDonor, nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 18, MPI_COMM_WORLD, &recv_req[18]); /*--- Wait for this set of non-blocking recv's to complete ---*/ - MPI_Waitall(19, recv_req, recv_stat); + SU2_MPI::Waitall(19, recv_req, recv_stat); #endif @@ -2488,8 +2488,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI - MPI_Allreduce(&Local_nPoint, &Global_nPoint, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nPointDomain, &Global_nPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPoint, &Global_nPoint, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPointDomain, &Global_nPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else @@ -2563,7 +2563,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long Buffer_Send_nBoundLineTotal = 0, Buffer_Send_nBoundTriangleTotal = 0, Buffer_Send_nBoundRectangleTotal = 0; unsigned long iVertexDomain, iBoundLine, iBoundTriangle, iBoundRectangle; - /*--- Need to double-check these shorts in case we go to nprocs > ~32,000 ---*/ + /*--- Need to su2double-check these shorts in case we go to nprocs > ~32,000 ---*/ unsigned long iNode, iDim, iMarker, jMarker, nMarkerDomain = 0, iMarkerDomain; unsigned long nDomain = 0, iDomain, jDomain, nPeriodic = 0, iPeriodic, overhead = 4, Buffer_Send_nMarkerDomain = 0, Buffer_Send_nDim = 0, Buffer_Send_nZone = 0, Buffer_Send_nPeriodic = 0; @@ -2623,7 +2623,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Define buffer vector interior domain ---*/ - double *Buffer_Send_Coord = NULL; + su2double *Buffer_Send_Coord = NULL; unsigned long *Buffer_Send_Color = NULL; unsigned long *Buffer_Send_GlobalPointIndex = NULL; unsigned long *Buffer_Send_Triangle = NULL; @@ -2643,9 +2643,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Define buffer vector periodic boundary conditions ---*/ - double *Buffer_Send_Center = NULL, *Buffer_Receive_Center = NULL; - double *Buffer_Send_Rotation = NULL, *Buffer_Receive_Rotation = NULL; - double *Buffer_Send_Translate = NULL, *Buffer_Receive_Translate = NULL; + su2double *Buffer_Send_Center = NULL, *Buffer_Receive_Center = NULL; + su2double *Buffer_Send_Rotation = NULL, *Buffer_Receive_Rotation = NULL; + su2double *Buffer_Send_Translate = NULL, *Buffer_Receive_Translate = NULL; /*--- Define buffer vector periodic boundary conditions ---*/ @@ -2762,7 +2762,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Pyramid_presence[i] = false; } - double *Buffer_Receive_Coord_loc = NULL; + su2double *Buffer_Receive_Coord_loc = NULL; unsigned long *Buffer_Receive_Color_loc = NULL; unsigned long *Buffer_Receive_GlobalPointIndex_loc = NULL; @@ -2787,7 +2787,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long temp_element_count = 0; - double *Buffer_Receive_Coord = NULL; + su2double *Buffer_Receive_Coord = NULL; unsigned long *Buffer_Receive_Color = NULL; unsigned long *Buffer_Receive_GlobalPointIndex = NULL; unsigned long *Buffer_Receive_Triangle = NULL; @@ -2832,9 +2832,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o // // // Buffer_Send_nPeriodic = config->GetnPeriodicIndex(); -// Buffer_Send_Center = new double[Buffer_Send_nPeriodic*3]; -// Buffer_Send_Rotation = new double[Buffer_Send_nPeriodic*3]; -// Buffer_Send_Translate = new double[Buffer_Send_nPeriodic*3]; +// Buffer_Send_Center = new su2double[Buffer_Send_nPeriodic*3]; +// Buffer_Send_Rotation = new su2double[Buffer_Send_nPeriodic*3]; +// Buffer_Send_Translate = new su2double[Buffer_Send_nPeriodic*3]; // // Buffer_Send_nSendDomain_Periodic = new unsigned long [nDomain]; // Buffer_Send_nReceivedDomain_Periodic = new unsigned long [nDomain]; @@ -2876,7 +2876,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o int comm_counter=0; for (iDomain=0; iDomainending_node[rank]-geometry->starting_node[rank], + SU2_MPI::Isend(local_colour_temp, geometry->ending_node[rank]-geometry->starting_node[rank], MPI_UNSIGNED_LONG, iDomain, iDomain, MPI_COMM_WORLD, &send_req[comm_counter]); comm_counter++; } @@ -2887,14 +2887,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(MPI_ANY_SOURCE, rank, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&local_colour_values[geometry->starting_node[source]], recv_count, + SU2_MPI::Recv(&local_colour_values[geometry->starting_node[source]], recv_count, MPI_UNSIGNED_LONG, source, rank, MPI_COMM_WORLD, &status2); } /*--- Wait for the sends to complete (will be true since we're using blocking recv's above. ---*/ - MPI_Waitall(size-1, send_req, send_stat); + SU2_MPI::Waitall(size-1, send_req, send_stat); #endif @@ -3034,7 +3034,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Allocate the buffer vectors in the appropiate domain (master, iDomain) ---*/ - Buffer_Send_Coord = new double[Buffer_Size_Coord]; + Buffer_Send_Coord = new su2double[Buffer_Size_Coord]; Buffer_Send_Color = new unsigned long[Buffer_Size_Color]; Buffer_Send_GlobalPointIndex = new unsigned long[Buffer_Size_GlobalPointIndex]; Buffer_Send_Triangle = new unsigned long[Buffer_Size_Triangle*N_POINTS_TRIANGLE]; @@ -3080,43 +3080,43 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Communicate the counts to iDomain with non-blocking sends ---*/ - MPI_Isend(&nDim_s[iDomain], 1, MPI_UNSIGNED_SHORT, iDomain, + SU2_MPI::Isend(&nDim_s[iDomain], 1, MPI_UNSIGNED_SHORT, iDomain, iDomain*13+0, MPI_COMM_WORLD, &send_req[0]); - MPI_Isend(&nZone_s[iDomain], 1, MPI_UNSIGNED_SHORT, iDomain, + SU2_MPI::Isend(&nZone_s[iDomain], 1, MPI_UNSIGNED_SHORT, iDomain, iDomain*13+1, MPI_COMM_WORLD, &send_req[1]); - MPI_Isend(&nPointTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nPointTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+2, MPI_COMM_WORLD, &send_req[2]); - MPI_Isend(&nPointDomainTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nPointDomainTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+3, MPI_COMM_WORLD, &send_req[3]); - MPI_Isend(&nPointGhost_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nPointGhost_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+4, MPI_COMM_WORLD, &send_req[4]); - MPI_Isend(&nPointPeriodic_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nPointPeriodic_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+5, MPI_COMM_WORLD, &send_req[5]); - MPI_Isend(&nElemTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+6, MPI_COMM_WORLD, &send_req[6]); - MPI_Isend(&nElemTriangle_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemTriangle_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+7, MPI_COMM_WORLD, &send_req[7]); - MPI_Isend(&nElemRectangle_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemRectangle_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+8, MPI_COMM_WORLD, &send_req[8]); - MPI_Isend(&nElemTetrahedron_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemTetrahedron_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+9, MPI_COMM_WORLD, &send_req[9]); - MPI_Isend(&nElemHexahedron_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemHexahedron_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+10, MPI_COMM_WORLD, &send_req[10]); - MPI_Isend(&nElemPrism_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemPrism_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+11, MPI_COMM_WORLD, &send_req[11]); - MPI_Isend(&nElemPyramid_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemPyramid_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+12, MPI_COMM_WORLD, &send_req[12]); #endif @@ -3184,55 +3184,55 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o first and then receiving the values from it. ---*/ MPI_Probe(jDomain, 13*rank+0, MPI_COMM_WORLD, &status2); - MPI_Recv(&nDim_r[jDomain], 1, MPI_UNSIGNED_SHORT, jDomain, + SU2_MPI::Recv(&nDim_r[jDomain], 1, MPI_UNSIGNED_SHORT, jDomain, rank*13+0, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+1, MPI_COMM_WORLD, &status2); - MPI_Recv(&nZone_r[jDomain], 1, MPI_UNSIGNED_SHORT, jDomain, + SU2_MPI::Recv(&nZone_r[jDomain], 1, MPI_UNSIGNED_SHORT, jDomain, rank*13+1, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+2, MPI_COMM_WORLD, &status2); - MPI_Recv(&nPointTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nPointTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+2, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+3, MPI_COMM_WORLD, &status2); - MPI_Recv(&nPointDomainTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nPointDomainTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+3, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+4, MPI_COMM_WORLD, &status2); - MPI_Recv(&nPointGhost_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nPointGhost_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+4, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+5, MPI_COMM_WORLD, &status2); - MPI_Recv(&nPointPeriodic_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nPointPeriodic_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+5, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+6, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+6, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+7, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemTriangle_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemTriangle_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+7, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+8, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemRectangle_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemRectangle_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+8, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+9, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemTetrahedron_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemTetrahedron_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+9, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+10, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemHexahedron_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemHexahedron_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+10, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+11, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemPrism_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemPrism_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+11, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+12, MPI_COMM_WORLD, &status2); - MPI_Recv(&nElemPyramid_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemPyramid_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+12, MPI_COMM_WORLD, &status2); #endif @@ -3262,7 +3262,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Wait for the non-blocking sends to complete. ---*/ #ifdef HAVE_MPI - if (rank != iDomain) MPI_Waitall(13, send_req, send_stat); + if (rank != iDomain) SU2_MPI::Waitall(13, send_req, send_stat); MPI_Barrier(MPI_COMM_WORLD); #endif //cout << " ==== Rank " << rank << " finished sending counts " << endl; @@ -3444,67 +3444,67 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Communicate the coordinates, global index, colors, and element date to iDomain with non-blocking sends. ---*/ - MPI_Isend(&Buffer_Send_Coord[PointTotal_Counter*nDim_s[iDomain]], + SU2_MPI::Isend(&Buffer_Send_Coord[PointTotal_Counter*nDim_s[iDomain]], nPointTotal_s[iDomain]*nDim_s[iDomain], MPI_DOUBLE, iDomain, iDomain*16+0, MPI_COMM_WORLD, &send_req[0]); - MPI_Isend(&Buffer_Send_GlobalPointIndex[PointTotal_Counter], + SU2_MPI::Isend(&Buffer_Send_GlobalPointIndex[PointTotal_Counter], nPointTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+1, MPI_COMM_WORLD, &send_req[1]); - MPI_Isend(&Buffer_Send_Color[PointTotal_Counter], + SU2_MPI::Isend(&Buffer_Send_Color[PointTotal_Counter], nPointTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+2, MPI_COMM_WORLD, &send_req[2]); - MPI_Isend(&Buffer_Send_Triangle[ElemTriangle_Counter*3], + SU2_MPI::Isend(&Buffer_Send_Triangle[ElemTriangle_Counter*3], nElemTriangle_s[iDomain]*3, MPI_UNSIGNED_LONG, iDomain, iDomain*16+3, MPI_COMM_WORLD, &send_req[3]); - MPI_Isend(&Buffer_Send_Rectangle[ElemRectangle_Counter*4], + SU2_MPI::Isend(&Buffer_Send_Rectangle[ElemRectangle_Counter*4], nElemRectangle_s[iDomain]*4, MPI_UNSIGNED_LONG, iDomain, iDomain*16+4, MPI_COMM_WORLD, &send_req[4]); - MPI_Isend(&Buffer_Send_Tetrahedron[ElemTetrahedron_Counter*4], + SU2_MPI::Isend(&Buffer_Send_Tetrahedron[ElemTetrahedron_Counter*4], nElemTetrahedron_s[iDomain]*4, MPI_UNSIGNED_LONG, iDomain, iDomain*16+5, MPI_COMM_WORLD, &send_req[5]); - MPI_Isend(&Buffer_Send_Hexahedron[ElemHexahedron_Counter*8], + SU2_MPI::Isend(&Buffer_Send_Hexahedron[ElemHexahedron_Counter*8], nElemHexahedron_s[iDomain]*8, MPI_UNSIGNED_LONG, iDomain, iDomain*16+6, MPI_COMM_WORLD, &send_req[6]); - MPI_Isend(&Buffer_Send_Prism[ElemPrism_Counter*6], + SU2_MPI::Isend(&Buffer_Send_Prism[ElemPrism_Counter*6], nElemPrism_s[iDomain]*6, MPI_UNSIGNED_LONG, iDomain, iDomain*16+7, MPI_COMM_WORLD, &send_req[7]); - MPI_Isend(&Buffer_Send_Pyramid[ElemPyramid_Counter*5], + SU2_MPI::Isend(&Buffer_Send_Pyramid[ElemPyramid_Counter*5], nElemPyramid_s[iDomain]*5, MPI_UNSIGNED_LONG, iDomain, iDomain*16+8, MPI_COMM_WORLD, &send_req[8]); - MPI_Isend(&Buffer_Send_GlobElem[ElemTotal_Counter], + SU2_MPI::Isend(&Buffer_Send_GlobElem[ElemTotal_Counter], nElemTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+9, MPI_COMM_WORLD, &send_req[9]); - MPI_Isend(&Local_to_global_Triangle[ElemTriangle_Counter], + SU2_MPI::Isend(&Local_to_global_Triangle[ElemTriangle_Counter], nElemTriangle_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+10, MPI_COMM_WORLD, &send_req[10]); - MPI_Isend(&Local_to_global_Rectangle[ElemRectangle_Counter], + SU2_MPI::Isend(&Local_to_global_Rectangle[ElemRectangle_Counter], nElemRectangle_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+11, MPI_COMM_WORLD, &send_req[11]); - MPI_Isend(&Local_to_global_Tetrahedron[ElemTetrahedron_Counter], + SU2_MPI::Isend(&Local_to_global_Tetrahedron[ElemTetrahedron_Counter], nElemTetrahedron_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+12, MPI_COMM_WORLD, &send_req[12]); - MPI_Isend(&Local_to_global_Hexahedron[ElemHexahedron_Counter], + SU2_MPI::Isend(&Local_to_global_Hexahedron[ElemHexahedron_Counter], nElemHexahedron_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+13, MPI_COMM_WORLD, &send_req[13]); - MPI_Isend(&Local_to_global_Prism[ElemPrism_Counter], + SU2_MPI::Isend(&Local_to_global_Prism[ElemPrism_Counter], nElemPrism_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+14, MPI_COMM_WORLD, &send_req[14]); - MPI_Isend(&Local_to_global_Pyramid[ElemPyramid_Counter], + SU2_MPI::Isend(&Local_to_global_Pyramid[ElemPyramid_Counter], nElemPyramid_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+15, MPI_COMM_WORLD, &send_req[15]); @@ -3514,7 +3514,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Allocate local memory for the local recv of the elements ---*/ - Buffer_Receive_Coord_loc = new double[nPointTotal_s[iDomain]*nDim_s[iDomain]]; + Buffer_Receive_Coord_loc = new su2double[nPointTotal_s[iDomain]*nDim_s[iDomain]]; Buffer_Receive_GlobalPointIndex_loc = new unsigned long[nPointTotal_s[iDomain]]; Buffer_Receive_Color_loc = new unsigned long[nPointTotal_s[iDomain]]; @@ -3643,7 +3643,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Allocate the receive buffer vector. Send the colors so that we know whether what we recv is an owned or halo node. ---*/ - Buffer_Receive_Coord = new double [nPointTotal_r[iDomain]*nDim_r[iDomain]]; + Buffer_Receive_Coord = new su2double [nPointTotal_r[iDomain]*nDim_r[iDomain]]; Buffer_Receive_Color = new unsigned long [nPointTotal_r[iDomain]]; Buffer_Receive_GlobalPointIndex = new unsigned long [nPointTotal_r[iDomain]]; @@ -3652,24 +3652,24 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(iDomain, rank*16+0, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_DOUBLE, &recv_count); - MPI_Recv(Buffer_Receive_Coord, recv_count , MPI_DOUBLE, + SU2_MPI::Recv(Buffer_Receive_Coord, recv_count , MPI_DOUBLE, source, rank*16+0, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+1, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_GlobalPointIndex, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_GlobalPointIndex, recv_count, MPI_UNSIGNED_LONG, source, rank*16+1, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+2, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Color, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Color, recv_count, MPI_UNSIGNED_LONG, source, rank*16+2, MPI_COMM_WORLD, &status2); /*--- Wait for the three recv above to complete ---*/ - //if (rank != iDomain) MPI_Waitall(3, send_req, send_stat); + //if (rank != iDomain) SU2_MPI::Waitall(3, send_req, send_stat); /*--- Loop over all of the points that we have recv'd and store the coords, global index, and colors ---*/ @@ -3888,48 +3888,48 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(iDomain, rank*16+10, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&Buffer_Receive_Triangle_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Triangle_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+10, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+11, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&Buffer_Receive_Rectangle_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Rectangle_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+11, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+12, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&Buffer_Receive_Tetrahedron_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Tetrahedron_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+12, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+13, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&Buffer_Receive_Hexahedron_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Hexahedron_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+13, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+14, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&Buffer_Receive_Prism_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Prism_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+14, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+15, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&Buffer_Receive_Pyramid_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Pyramid_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+15, MPI_COMM_WORLD, &status2); /*--- Wait to complete the above sends ---*/ - //if (rank!=iDomain) MPI_Waitall(6, &send_req[10], &send_stat[10]); + //if (rank!=iDomain) SU2_MPI::Waitall(6, &send_req[10], &send_stat[10]); /*--- Allocating the elements after the recv ---*/ @@ -4079,48 +4079,48 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(iDomain, rank*16+3, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Triangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Triangle, recv_count, MPI_UNSIGNED_LONG, source, rank*16+3, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+4, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Rectangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Rectangle, recv_count, MPI_UNSIGNED_LONG, source, rank*16+4, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+5, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Tetrahedron, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Tetrahedron, recv_count, MPI_UNSIGNED_LONG, source, rank*16+5, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+6, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Hexahedron, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Hexahedron, recv_count, MPI_UNSIGNED_LONG, source, rank*16+6, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+7, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Prism, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Prism, recv_count, MPI_UNSIGNED_LONG, source, rank*16+7, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+8, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Pyramid, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Pyramid, recv_count, MPI_UNSIGNED_LONG, source, rank*16+8, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+9, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_GlobElem, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_GlobElem, recv_count, MPI_UNSIGNED_LONG, source, rank*16+9, MPI_COMM_WORLD, &status2); /*--- Wait to complete the above sends ---*/ - //if (rank!=iDomain) MPI_Waitall(7, &send_req[3], &send_stat[3]); + //if (rank!=iDomain) SU2_MPI::Waitall(7, &send_req[3], &send_stat[3]); //cout << " ==== Rank " << rank << " recv from " << iDomain << " would be waiting here... " << endl; /*--- Allocating the elements after the recv. Note that here we are @@ -4314,7 +4314,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #ifdef HAVE_MPI for (iDomain = 0; iDomain < size; iDomain++) { - if (rank != iDomain) MPI_Waitall(16, send_req, send_stat); + if (rank != iDomain) SU2_MPI::Waitall(16, send_req, send_stat); } MPI_Barrier(MPI_COMM_WORLD); #endif @@ -4355,7 +4355,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #ifdef HAVE_MPI unsigned long Local_nElem = nElem; - MPI_Allreduce(&Local_nElem, &Global_nElem, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nElem, &Global_nElem, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nElem = nElem; #endif @@ -4380,17 +4380,17 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long Local_nElemHex = nelem_hexa; unsigned long Local_nElemPrism = nelem_prism; unsigned long Local_nElemPyramid = nelem_pyramid; - MPI_Allreduce(&Local_nElemTri, &Global_nelem_triangle, 1, + SU2_MPI::Allreduce(&Local_nElemTri, &Global_nelem_triangle, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemQuad, &Global_nelem_quad, 1, + SU2_MPI::Allreduce(&Local_nElemQuad, &Global_nelem_quad, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemTet, &Global_nelem_tetra, 1, + SU2_MPI::Allreduce(&Local_nElemTet, &Global_nelem_tetra, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemHex, &Global_nelem_hexa, 1, + SU2_MPI::Allreduce(&Local_nElemHex, &Global_nelem_hexa, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemPrism, &Global_nelem_prism, 1, + SU2_MPI::Allreduce(&Local_nElemPrism, &Global_nelem_prism, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemPyramid, &Global_nelem_pyramid, 1, + SU2_MPI::Allreduce(&Local_nElemPyramid, &Global_nelem_pyramid, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nelem_triangle = nelem_triangle; @@ -4438,9 +4438,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_nDim = geometry->GetnDim(); Buffer_Send_nZone = geometry->GetnZone(); Buffer_Send_nPeriodic = config->GetnPeriodicIndex(); - Buffer_Send_Center = new double[Buffer_Send_nPeriodic*3]; - Buffer_Send_Rotation = new double[Buffer_Send_nPeriodic*3]; - Buffer_Send_Translate = new double[Buffer_Send_nPeriodic*3]; + Buffer_Send_Center = new su2double[Buffer_Send_nPeriodic*3]; + Buffer_Send_Rotation = new su2double[Buffer_Send_nPeriodic*3]; + Buffer_Send_Translate = new su2double[Buffer_Send_nPeriodic*3]; Buffer_Send_nSendDomain_Periodic = new unsigned long[nDomain]; Buffer_Send_nReceivedDomain_Periodic = new unsigned long[nDomain]; @@ -4492,7 +4492,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_nBoundTriangle[iMarker] = 0; Buffer_Send_nBoundRectangle[iMarker] = 0; Buffer_Send_Marker_All_SendRecv[iMarker] = Marker_All_SendRecv_Copy[iMarker]; - sprintf(&Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE], "%s", + SPRINTF(&Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE], "%s", Marker_All_TagBound_Copy[iMarker].c_str()); } @@ -4621,82 +4621,82 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #ifdef HAVE_MPI - MPI_Isend(&Buffer_Send_nBoundLineTotal, 1, + SU2_MPI::Isend(&Buffer_Send_nBoundLineTotal, 1, MPI_UNSIGNED_LONG, iDomain, 0, MPI_COMM_WORLD, &send_req[0]); - MPI_Isend(&Buffer_Send_nBoundTriangleTotal, 1, + SU2_MPI::Isend(&Buffer_Send_nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); - MPI_Isend(&Buffer_Send_nBoundRectangleTotal, 1, + SU2_MPI::Isend(&Buffer_Send_nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); - MPI_Isend(&Buffer_Send_nMarkerDomain, 1, + SU2_MPI::Isend(&Buffer_Send_nMarkerDomain, 1, MPI_UNSIGNED_SHORT, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); - MPI_Isend(Buffer_Send_nVertexDomain, + SU2_MPI::Isend(Buffer_Send_nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); - MPI_Isend(Buffer_Send_nBoundLine, + SU2_MPI::Isend(Buffer_Send_nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); - MPI_Isend(Buffer_Send_nBoundTriangle, + SU2_MPI::Isend(Buffer_Send_nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); - MPI_Isend(Buffer_Send_nBoundRectangle, + SU2_MPI::Isend(Buffer_Send_nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); - MPI_Isend(Buffer_Send_Marker_All_SendRecv, + SU2_MPI::Isend(Buffer_Send_Marker_All_SendRecv, nMarker_Max, MPI_SHORT, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); - MPI_Isend(Buffer_Send_Marker_All_TagBound, + SU2_MPI::Isend(Buffer_Send_Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); - MPI_Isend(&Buffer_Send_nPeriodic, + SU2_MPI::Isend(&Buffer_Send_nPeriodic, 1, MPI_UNSIGNED_SHORT, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); - MPI_Isend(Buffer_Send_Center, + SU2_MPI::Isend(Buffer_Send_Center, nPeriodic*3, MPI_DOUBLE, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); - MPI_Isend(Buffer_Send_Rotation, + SU2_MPI::Isend(Buffer_Send_Rotation, nPeriodic*3, MPI_DOUBLE, iDomain, 12, MPI_COMM_WORLD, &send_req[12]); - MPI_Isend(Buffer_Send_Translate, + SU2_MPI::Isend(Buffer_Send_Translate, nPeriodic*3, MPI_DOUBLE, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); - MPI_Isend(&Buffer_Send_nTotalSendDomain_Periodic, + SU2_MPI::Isend(&Buffer_Send_nTotalSendDomain_Periodic, 1, MPI_UNSIGNED_LONG, iDomain, 14, MPI_COMM_WORLD, &send_req[14]); - MPI_Isend(&Buffer_Send_nTotalReceivedDomain_Periodic, + SU2_MPI::Isend(&Buffer_Send_nTotalReceivedDomain_Periodic, 1, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); - MPI_Isend(Buffer_Send_nSendDomain_Periodic, + SU2_MPI::Isend(Buffer_Send_nSendDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, iDomain, 16, MPI_COMM_WORLD, &send_req[16]); - MPI_Isend(Buffer_Send_nReceivedDomain_Periodic, + SU2_MPI::Isend(Buffer_Send_nReceivedDomain_Periodic, nDomain, MPI_UNSIGNED_LONG, iDomain, 17, MPI_COMM_WORLD, &send_req[17]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - MPI_Waitall(18, send_req, send_stat); + SU2_MPI::Waitall(18, send_req, send_stat); //cout << " Rank " << rank << " iDomain " << iDomain << " just waited for first sends" << endl; #endif @@ -4727,9 +4727,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter] = Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter]; } - Buffer_Receive_Center = new double[nPeriodic*3]; - Buffer_Receive_Rotation = new double[nPeriodic*3]; - Buffer_Receive_Translate = new double[nPeriodic*3]; + Buffer_Receive_Center = new su2double[nPeriodic*3]; + Buffer_Receive_Rotation = new su2double[nPeriodic*3]; + Buffer_Receive_Translate = new su2double[nPeriodic*3]; for (iter = 0; iter < nPeriodic*3; iter++) { Buffer_Receive_Center[iter] = Buffer_Send_Center[iter]; @@ -4760,57 +4760,57 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&nBoundLineTotal, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nBoundLineTotal, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&nBoundTriangleTotal, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nBoundTriangleTotal, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&nBoundRectangleTotal, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nBoundRectangleTotal, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_SHORT, &recv_count); - MPI_Recv(&nMarkerDomain, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nMarkerDomain, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(nVertexDomain, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nVertexDomain, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(nBoundLine, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nBoundLine, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(nBoundTriangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nBoundTriangle, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(nBoundRectangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nBoundRectangle, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_SHORT, &recv_count); - MPI_Recv(Marker_All_SendRecv, recv_count, MPI_SHORT, + SU2_MPI::Recv(Marker_All_SendRecv, recv_count, MPI_SHORT, MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 9, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_CHAR, &recv_count); - MPI_Recv(Marker_All_TagBound, recv_count, MPI_CHAR, + SU2_MPI::Recv(Marker_All_TagBound, recv_count, MPI_CHAR, MASTER_NODE, 9, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 10, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_SHORT, &recv_count); - MPI_Recv(&nPeriodic, recv_count, MPI_UNSIGNED_SHORT, + SU2_MPI::Recv(&nPeriodic, recv_count, MPI_UNSIGNED_SHORT, MASTER_NODE, 10, MPI_COMM_WORLD, &status); #endif @@ -4828,45 +4828,45 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Periodic boundary conditions ---*/ - Buffer_Receive_Center = new double[nPeriodic*3]; - Buffer_Receive_Rotation = new double[nPeriodic*3]; - Buffer_Receive_Translate = new double[nPeriodic*3]; + Buffer_Receive_Center = new su2double[nPeriodic*3]; + Buffer_Receive_Rotation = new su2double[nPeriodic*3]; + Buffer_Receive_Translate = new su2double[nPeriodic*3]; #ifdef HAVE_MPI MPI_Probe(MASTER_NODE, 11, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_DOUBLE, &recv_count); - MPI_Recv(Buffer_Receive_Center, recv_count, MPI_DOUBLE, + SU2_MPI::Recv(Buffer_Receive_Center, recv_count, MPI_DOUBLE, MASTER_NODE, 11, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 12, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_DOUBLE, &recv_count); - MPI_Recv(Buffer_Receive_Rotation, recv_count, MPI_DOUBLE, + SU2_MPI::Recv(Buffer_Receive_Rotation, recv_count, MPI_DOUBLE, MASTER_NODE, 12, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 13, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_DOUBLE, &recv_count); - MPI_Recv(Buffer_Receive_Translate, recv_count, MPI_DOUBLE, + SU2_MPI::Recv(Buffer_Receive_Translate, recv_count, MPI_DOUBLE, MASTER_NODE, 13, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 14, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&nTotalSendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nTotalSendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 14, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 15, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(&nTotalReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nTotalReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 16, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(nSendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nSendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 16, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 17, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(nReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 17, MPI_COMM_WORLD, &status); #endif @@ -4875,9 +4875,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o for (iPeriodic = 0; iPeriodic < nPeriodic; iPeriodic++) { - double* center = new double[3]; // Do not deallocate the memory - double* rotation = new double[3]; // Do not deallocate the memory - double* translate = new double[3]; // Do not deallocate the memory + su2double* center = new su2double[3]; // Do not deallocate the memory + su2double* rotation = new su2double[3]; // Do not deallocate the memory + su2double* translate = new su2double[3]; // Do not deallocate the memory for (iDim = 0; iDim < 3; iDim++) { center[iDim] = Buffer_Receive_Center[iDim+iPeriodic*3]; @@ -5039,49 +5039,49 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #ifdef HAVE_MPI - MPI_Isend(Buffer_Send_BoundLine, + SU2_MPI::Isend(Buffer_Send_BoundLine, Buffer_Send_nBoundLineTotal*N_POINTS_LINE, MPI_UNSIGNED_LONG, iDomain, 0, MPI_COMM_WORLD, &send_req[0]); - MPI_Isend(Buffer_Send_BoundTriangle, + SU2_MPI::Isend(Buffer_Send_BoundTriangle, Buffer_Send_nBoundTriangleTotal*N_POINTS_TRIANGLE, MPI_UNSIGNED_LONG, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); - MPI_Isend(Buffer_Send_BoundRectangle, + SU2_MPI::Isend(Buffer_Send_BoundRectangle, Buffer_Send_nBoundRectangleTotal*N_POINTS_QUADRILATERAL, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); - MPI_Isend(Buffer_Send_Local2Global_Marker, + SU2_MPI::Isend(Buffer_Send_Local2Global_Marker, Buffer_Send_nMarkerDomain, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); - MPI_Isend(Buffer_Send_SendDomain_Periodic, + SU2_MPI::Isend(Buffer_Send_SendDomain_Periodic, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); - MPI_Isend(Buffer_Send_SendDomain_PeriodicTrans, + SU2_MPI::Isend(Buffer_Send_SendDomain_PeriodicTrans, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); - MPI_Isend(Buffer_Send_SendDomain_PeriodicReceptor, + SU2_MPI::Isend(Buffer_Send_SendDomain_PeriodicReceptor, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); - MPI_Isend(Buffer_Send_ReceivedDomain_Periodic, + SU2_MPI::Isend(Buffer_Send_ReceivedDomain_Periodic, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); - MPI_Isend(Buffer_Send_ReceivedDomain_PeriodicTrans, + SU2_MPI::Isend(Buffer_Send_ReceivedDomain_PeriodicTrans, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); - MPI_Isend(Buffer_Send_ReceivedDomain_PeriodicDonor, + SU2_MPI::Isend(Buffer_Send_ReceivedDomain_PeriodicDonor, Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - MPI_Waitall(10, send_req, send_stat); + SU2_MPI::Waitall(10, send_req, send_stat); #endif @@ -5141,52 +5141,52 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_BoundLine, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_BoundLine, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_BoundTriangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_BoundTriangle, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_BoundRectangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_BoundRectangle, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_Local2Global_Marker, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Local2Global_Marker, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_SendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_SendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_SendDomain_PeriodicTrans, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_SendDomain_PeriodicTrans, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_SendDomain_PeriodicReceptor, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_SendDomain_PeriodicReceptor, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_ReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_ReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_ReceivedDomain_PeriodicTrans, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_ReceivedDomain_PeriodicTrans, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 9, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - MPI_Recv(Buffer_Receive_ReceivedDomain_PeriodicDonor, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_ReceivedDomain_PeriodicDonor, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &status); #endif @@ -5346,8 +5346,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long Local_nPointDomain = nPointDomain; #ifdef HAVE_MPI - MPI_Allreduce(&Local_nPoint, &Global_nPoint, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nPointDomain, &Global_nPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPoint, &Global_nPoint, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPointDomain, &Global_nPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nPoint = Local_nPoint; Global_nPointDomain = Local_nPointDomain; @@ -5902,7 +5902,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes unsigned long vnodes_tetra[4], vnodes_hexa[8], vnodes_prism[6], vnodes_pyramid[5], dummyLong, GlobalIndex; char cstr[200]; - double Coord_2D[2], Coord_3D[3]; + su2double Coord_2D[2], Coord_3D[3]; string::size_type position; int rank = MASTER_NODE, size = SINGLE_NODE; bool domain_flag = false; @@ -6606,9 +6606,9 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes #endif } } - double* center = new double[3]; - double* rotation = new double[3]; - double* translate = new double[3]; + su2double* center = new su2double[3]; + su2double* rotation = new su2double[3]; + su2double* translate = new su2double[3]; getline (mesh_file, text_line); istringstream cent(text_line); cent >> center[0]; cent >> center[1]; cent >> center[2]; @@ -6630,9 +6630,9 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes if (!found_transform) { unsigned short nPeriodic = 1, iPeriodic = 0; config->SetnPeriodicIndex(nPeriodic); - double* center = new double[3]; - double* rotation = new double[3]; - double* translate = new double[3]; + su2double* center = new su2double[3]; + su2double* rotation = new su2double[3]; + su2double* translate = new su2double[3]; for (unsigned short iDim = 0; iDim < 3; iDim++) { center[iDim] = 0.0; rotation[iDim] = 0.0; translate[iDim] = 0.0; } @@ -6671,7 +6671,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Local variables needed when calling the CGNS mid-level API. ---*/ unsigned long vnodes_cgns[8]; - double Coord_cgns[3]; + su2double Coord_cgns[3]; int fn, nbases = 0, nzones = 0, ngrids = 0, ncoords = 0, nsections = 0; int *vertices = NULL, *cells = NULL, nMarkers = 0, *boundVerts = NULL, npe; int interiorElems = 0, totalVerts = 0; @@ -6681,8 +6681,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me cgsize_t* cgsize; cgsize = new cgsize_t[3]; ZoneType_t zonetype; DataType_t datatype; - double** coordArray = NULL; - double*** gridCoords = NULL; + su2double** coordArray = NULL; + su2double*** gridCoords = NULL; ElementType_t elemType; cgsize_t range_min, range_max, startE, endE; range_min = 1; @@ -6847,8 +6847,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me vertices = new int[nzones]; cells = new int[nzones]; boundVerts = new int[nzones]; - coordArray = new double*[nzones]; - gridCoords = new double**[nzones]; + coordArray = new su2double*[nzones]; + gridCoords = new su2double**[nzones]; elemTypeVTK = new int*[nzones]; elemIndex = new int*[nzones]; elemBegin = new int*[nzones]; @@ -6963,14 +6963,14 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me range_min = (cgsize_t)starting_node[rank]+1; range_max = (cgsize_t)ending_node[rank]; - coordArray[j-1] = new double[local_node]; + coordArray[j-1] = new su2double[local_node]; /*--- Allocate memory for the 2-D array that will store the x, y, & z (if required) coordinates for writing into the SU2 mesh. ---*/ - gridCoords[j-1] = new double*[ncoords]; + gridCoords[j-1] = new su2double*[ncoords]; for (int ii = 0; ii < ncoords; ii++) { - *(gridCoords[j-1]+ii) = new double[local_node]; + *(gridCoords[j-1]+ii) = new su2double[local_node]; } /*--- Loop over each set of coordinates. Note again @@ -6991,11 +6991,11 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me cout << " values into linear partitions." << endl; } - /*--- Always retrieve the grid coords in double precision. ---*/ + /*--- Always retrieve the grid coords in su2double precision. ---*/ if (datatype != RealDouble) { printf("\n\n !!! Error !!!\n" ); - printf(" CGNS coordinates are not double precision.\n"); + printf(" CGNS coordinates are not su2double precision.\n"); printf(" Now exiting...\n\n"); #ifndef HAVE_MPI exit(EXIT_FAILURE); @@ -7630,7 +7630,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me int count = connSize*kk; int source = ii; int tag = ii + 1; - MPI_Irecv(&(connRecv[ll]), count, MPI_UNSIGNED_LONG, source, tag, + SU2_MPI::Irecv(&(connRecv[ll]), count, MPI_UNSIGNED_LONG, source, tag, MPI_COMM_WORLD, &(recv_req[iMessage])); iMessage++; } @@ -7646,7 +7646,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me int count = connSize*kk; int dest = ii; int tag = rank + 1; - MPI_Isend(&(connSend[ll]), count, MPI_UNSIGNED_LONG, dest, tag, + SU2_MPI::Isend(&(connSend[ll]), count, MPI_UNSIGNED_LONG, dest, tag, MPI_COMM_WORLD, &(send_req[iMessage])); iMessage++; } @@ -7666,11 +7666,11 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me #ifdef HAVE_MPI int number = nSends; for (int ii = 0; ii < nSends; ii++) - MPI_Waitany(number, send_req, &ind, &status); + SU2_MPI::Waitany(number, send_req, &ind, &status); number = nRecvs; for (int ii = 0; ii < nRecvs; ii++) - MPI_Waitany(number, recv_req, &ind, &status); + SU2_MPI::Waitany(number, recv_req, &ind, &status); delete [] send_req; delete [] recv_req; @@ -7744,7 +7744,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me #ifdef HAVE_MPI Local_nElem = interiorElems; - MPI_Allreduce(&Local_nElem, &Global_nElem, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Allreduce(&Local_nElem, &Global_nElem, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); nElem = Global_nElem; #else @@ -7923,17 +7923,17 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me Local_nElemHex = nelem_hexa; Local_nElemPrism = nelem_prism; Local_nElemPyramid = nelem_pyramid; - MPI_Allreduce(&Local_nElemTri, &Global_nelem_triangle, 1, + SU2_MPI::Allreduce(&Local_nElemTri, &Global_nelem_triangle, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemQuad, &Global_nelem_quad, 1, + SU2_MPI::Allreduce(&Local_nElemQuad, &Global_nelem_quad, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemTet, &Global_nelem_tetra, 1, + SU2_MPI::Allreduce(&Local_nElemTet, &Global_nelem_tetra, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemHex, &Global_nelem_hexa, 1, + SU2_MPI::Allreduce(&Local_nElemHex, &Global_nelem_hexa, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemPrism, &Global_nelem_prism, 1, + SU2_MPI::Allreduce(&Local_nElemPrism, &Global_nelem_prism, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nElemPyramid, &Global_nelem_pyramid, 1, + SU2_MPI::Allreduce(&Local_nElemPyramid, &Global_nelem_pyramid, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nelem_triangle = nelem_triangle; @@ -8173,9 +8173,9 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Periodic transormations is not implement, store default zeros ---*/ unsigned short nPeriodic = 1, iPeriodic = 0; config->SetnPeriodicIndex(nPeriodic); - double* center = new double[3]; - double* rotation = new double[3]; - double* translate = new double[3]; + su2double* center = new su2double[3]; + su2double* rotation = new su2double[3]; + su2double* translate = new su2double[3]; for (unsigned short iDim = 0; iDim < 3; iDim++) { center[iDim] = 0.0; rotation[iDim] = 0.0; translate[iDim] = 0.0; } @@ -8247,7 +8247,7 @@ void CPhysicalGeometry::Check_IntElem_Orientation(CConfig *config) { unsigned long Point_1, Point_2, Point_3, Point_4, Point_5, Point_6, iElem; - double test_1, test_2, test_3, test_4, *Coord_1, *Coord_2, *Coord_3, *Coord_4, + su2double test_1, test_2, test_3, test_4, *Coord_1, *Coord_2, *Coord_3, *Coord_4, *Coord_5, *Coord_6, a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, c[3] = {0.0,0.0,0.0}, n[3] = {0.0,0.0,0.0}, test; unsigned short iDim; @@ -8484,7 +8484,7 @@ void CPhysicalGeometry::Check_BoundElem_Orientation(CConfig *config) { unsigned long Point_1_Surface, Point_2_Surface, Point_3_Surface, Point_4_Surface, iElem_Domain, Point_Domain = 0, Point_Surface, iElem_Surface; - double test_1, test_2, test_3, test_4, *Coord_1, *Coord_2, *Coord_3, *Coord_4, + su2double test_1, test_2, test_3, test_4, *Coord_1, *Coord_2, *Coord_3, *Coord_4, *Coord_5, a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, c[3] = {0.0,0.0,0.0}, n[3] = {0.0,0.0,0.0}, test; unsigned short iDim, iMarker, iNode_Domain, iNode_Surface; bool find; @@ -8610,7 +8610,7 @@ void CPhysicalGeometry::Check_BoundElem_Orientation(CConfig *config) { void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { - double *coord, dist2, dist; + su2double *coord, dist2, dist; unsigned short iDim, iMarker; unsigned long iPoint, iVertex, nVertex_SolidWall; @@ -8637,10 +8637,10 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { /*--- Allocate an array to hold boundary node coordinates ---*/ - double **Coord_bound; - Coord_bound = new double* [nVertex_SolidWall]; + su2double **Coord_bound; + Coord_bound = new su2double* [nVertex_SolidWall]; for (iVertex = 0; iVertex < nVertex_SolidWall; iVertex++) - Coord_bound[iVertex] = new double [nDim]; + Coord_bound[iVertex] = new su2double [nDim]; /*--- Retrieve and store the coordinates of the no-slip boundary nodes ---*/ @@ -8718,15 +8718,15 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { partition, and the number of no-slip nodes on each partition. ---*/ Buffer_Send_nVertex[0] = nLocalVertex_NS; - MPI_Allreduce(&nLocalVertex_NS, &nGlobalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_NS, &MaxLocalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NS, &nGlobalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NS, &MaxLocalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); /*--- Create and initialize to zero some buffers to hold the coordinates of the boundary nodes that are communicated from each partition (all-to-all). ---*/ - double *Buffer_Send_Coord = new double [MaxLocalVertex_NS*nDim]; - double *Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex_NS*nDim]; + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_NS*nDim]; + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_NS*nDim]; unsigned long nBuffer = MaxLocalVertex_NS*nDim; for (iVertex = 0; iVertex < MaxLocalVertex_NS; iVertex++) @@ -8751,7 +8751,7 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { nVertex_SolidWall++; } - MPI_Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); /*--- Loop over all interior mesh nodes on the local partition and compute the distances to each of the no-slip boundary nodes in the entire mesh. @@ -8796,7 +8796,7 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { void CPhysicalGeometry::SetPositive_ZArea(CConfig *config) { unsigned short iMarker, Boundary, Monitoring; unsigned long iVertex, iPoint; - double *Normal, PositiveZArea; + su2double *Normal, PositiveZArea; int rank = MASTER_NODE; #ifndef HAVE_MPI @@ -8826,7 +8826,7 @@ void CPhysicalGeometry::SetPositive_ZArea(CConfig *config) { #else - double TotalPositiveZArea; + su2double TotalPositiveZArea; MPI_Comm_rank(MPI_COMM_WORLD, &rank); PositiveZArea = 0.0; @@ -8851,10 +8851,10 @@ void CPhysicalGeometry::SetPositive_ZArea(CConfig *config) { } } } - MPI_Reduce(&PositiveZArea, &TotalPositiveZArea, 1, MPI_DOUBLE, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&PositiveZArea, &TotalPositiveZArea, 1, MPI_DOUBLE, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == MASTER_NODE) PositiveZArea = TotalPositiveZArea; - MPI_Bcast(&PositiveZArea, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&PositiveZArea, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #endif @@ -9027,13 +9027,13 @@ void CPhysicalGeometry::SetRCM_Ordering(CConfig *config) { /*--- Set the new coordinates ---*/ - double **AuxCoord; + su2double **AuxCoord; unsigned long *AuxGlobalIndex; AuxGlobalIndex = new unsigned long [nPoint]; - AuxCoord = new double* [nPoint]; + AuxCoord = new su2double* [nPoint]; for (iPoint = 0; iPoint < nPoint; iPoint++) - AuxCoord[iPoint] = new double [nDim]; + AuxCoord[iPoint] = new su2double [nDim]; for (iPoint = 0; iPoint < nPoint; iPoint++) { AuxGlobalIndex[iPoint] = node[iPoint]->GetGlobalIndex(); @@ -9243,19 +9243,19 @@ void CPhysicalGeometry::SetVertex(CConfig *config) { void CPhysicalGeometry::SetCG(void) { unsigned short nNode, iDim, iMarker, iNode; unsigned long elem_poin, edge_poin, iElem, iEdge; - double **Coord; + su2double **Coord; /*--- Compute the center of gravity for elements ---*/ for (iElem = 0; iElemGetnNodes(); - Coord = new double* [nNode]; + Coord = new su2double* [nNode]; /*--- Store the coordinates for all the element nodes ---*/ for (iNode = 0; iNode < nNode; iNode++) { elem_poin = elem[iElem]->GetNode(iNode); - Coord[iNode] = new double [nDim]; + Coord[iNode] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord[iNode][iDim]=node[elem_poin]->GetCoord(iDim); } @@ -9274,13 +9274,13 @@ void CPhysicalGeometry::SetCG(void) { for (iMarker = 0; iMarker < nMarker; iMarker++) for (iElem = 0; iElem < nElem_Bound[iMarker]; iElem++) { nNode = bound[iMarker][iElem]->GetnNodes(); - Coord = new double* [nNode]; + Coord = new su2double* [nNode]; /*--- Store the coordinates for all the element nodes ---*/ for (iNode = 0; iNode < nNode; iNode++) { elem_poin = bound[iMarker][iElem]->GetNode(iNode); - Coord[iNode] = new double [nDim]; + Coord[iNode] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord[iNode][iDim]=node[elem_poin]->GetCoord(iDim); } @@ -9296,13 +9296,13 @@ void CPhysicalGeometry::SetCG(void) { for (iEdge = 0; iEdge < nEdge; iEdge++) { nNode = edge[iEdge]->GetnNodes(); - Coord = new double* [nNode]; + Coord = new su2double* [nNode]; /*--- Store the coordinates for all the element nodes ---*/ for (iNode = 0; iNode < nNode; iNode++) { edge_poin=edge[iEdge]->GetNode(iNode); - Coord[iNode] = new double [nDim]; + Coord[iNode] = new su2double [nDim]; for (iDim = 0; iDimGetCoord(iDim); } @@ -9321,7 +9321,7 @@ void CPhysicalGeometry::SetBoundControlVolume(CConfig *config, unsigned short ac unsigned short Neighbor_Node, iMarker, iNode, iNeighbor_Nodes, iDim; unsigned long Neighbor_Point, iVertex, iPoint, iElem; long iEdge; - double Area, *NormalFace = NULL; + su2double Area, *NormalFace = NULL; /*--- Update values of faces of the edge ---*/ @@ -9330,9 +9330,9 @@ void CPhysicalGeometry::SetBoundControlVolume(CConfig *config, unsigned short ac for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) vertex[iMarker][iVertex]->SetZeroValues(); - double *Coord_Edge_CG = new double [nDim]; - double *Coord_Elem_CG = new double [nDim]; - double *Coord_Vertex = new double [nDim]; + su2double *Coord_Edge_CG = new su2double [nDim]; + su2double *Coord_Elem_CG = new su2double [nDim]; + su2double *Coord_Vertex = new su2double [nDim]; /*--- Loop over all the markers ---*/ @@ -9398,7 +9398,7 @@ void CPhysicalGeometry::SetBoundControlVolume(CConfig *config, unsigned short ac } void CPhysicalGeometry::MatchInterface(CConfig *config) { - double epsilon = 1.5e-1; + su2double epsilon = 1.5e-1; unsigned short nMarker_InterfaceBound = config->GetnMarker_InterfaceBound(); @@ -9407,7 +9407,7 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { unsigned short iMarker, jMarker; unsigned long iVertex, iPoint, jVertex, jPoint = 0, pPoint = 0; - double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; + su2double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; cout << "Set Interface boundary conditions." << endl; @@ -9448,7 +9448,7 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { unsigned short iMarker, iDim; unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint; - double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist_local, maxdist_global; + su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist_local, maxdist_global; int iProcessor, pProcessor = 0; unsigned long nLocalVertex_Interface = 0, nGlobalVertex_Interface = 0, MaxLocalVertex_Interface = 0; int rank, nProcessor; @@ -9476,14 +9476,14 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { /*--- Send Interface vertex information --*/ - MPI_Allreduce(&nLocalVertex_Interface, &nGlobalVertex_Interface, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_Interface, &MaxLocalVertex_Interface, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Interface, &nGlobalVertex_Interface, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Interface, &MaxLocalVertex_Interface, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - double *Buffer_Send_Coord = new double [MaxLocalVertex_Interface*nDim]; + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Interface*nDim]; unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_Interface]; - double *Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex_Interface*nDim]; + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Interface*nDim]; unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_Interface]; unsigned long nBuffer_Coord = MaxLocalVertex_Interface*nDim; @@ -9510,8 +9510,8 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { } } - MPI_Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); /*--- Compute the closest point to a Near-Field boundary point ---*/ @@ -9563,7 +9563,7 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { } } - MPI_Reduce(&maxdist_local, &maxdist_global, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&maxdist_local, &maxdist_global, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); if (rank == MASTER_NODE) cout <<"The max distance between points is: " << maxdist_global <<"."<< endl; @@ -9583,7 +9583,7 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { } void CPhysicalGeometry::MatchNearField(CConfig *config) { - double epsilon = 1e-1; + su2double epsilon = 1e-1; unsigned short nMarker_NearfieldBound = config->GetnMarker_NearFieldBound(); @@ -9593,7 +9593,7 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { unsigned short iMarker, jMarker; unsigned long iVertex, iPoint, jVertex, jPoint = 0, pPoint = 0; - double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; + su2double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; cout << "Set Near-Field boundary conditions. " << endl; @@ -9633,7 +9633,7 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { unsigned short iMarker, iDim; unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint; - double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist_local, maxdist_global; + su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist_local, maxdist_global; int iProcessor, pProcessor = 0; unsigned long nLocalVertex_NearField = 0, nGlobalVertex_NearField = 0, MaxLocalVertex_NearField = 0; int rank, nProcessor; @@ -9661,14 +9661,14 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { /*--- Send Near-Field vertex information --*/ - MPI_Allreduce(&nLocalVertex_NearField, &nGlobalVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_NearField, &MaxLocalVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NearField, &nGlobalVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NearField, &MaxLocalVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - double *Buffer_Send_Coord = new double [MaxLocalVertex_NearField*nDim]; + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_NearField*nDim]; unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_NearField]; - double *Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex_NearField*nDim]; + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_NearField*nDim]; unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_NearField]; unsigned long nBuffer_Coord = MaxLocalVertex_NearField*nDim; @@ -9695,8 +9695,8 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { } } - MPI_Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); /*--- Compute the closest point to a Near-Field boundary point ---*/ @@ -9752,7 +9752,7 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { } } - MPI_Reduce(&maxdist_local, &maxdist_global, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&maxdist_local, &maxdist_global, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); if (rank == MASTER_NODE) cout <<"The max distance between points is: " << maxdist_global <<"."<< endl; @@ -9772,10 +9772,10 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { } void CPhysicalGeometry::MatchActuator_Disk(CConfig *config) { - double epsilon = 1e-1; + su2double epsilon = 1e-1; unsigned short iMarker, iDim; unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint; - double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist_local = 0.0, maxdist_global = 0.0; + su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist_local = 0.0, maxdist_global = 0.0; int iProcessor, pProcessor = 0; unsigned long nLocalVertex_ActDisk = 0, MaxLocalVertex_ActDisk = 0; int rank, nProcessor; @@ -9825,16 +9825,16 @@ void CPhysicalGeometry::MatchActuator_Disk(CConfig *config) { MaxLocalVertex_ActDisk = nLocalVertex_ActDisk; Buffer_Receive_nVertex[0] = Buffer_Send_nVertex[0]; #else - MPI_Allreduce(&nLocalVertex_ActDisk, &MaxLocalVertex_ActDisk, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_ActDisk, &MaxLocalVertex_ActDisk, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #endif /*--- Array dimensionalization --*/ - double *Buffer_Send_Coord = new double [MaxLocalVertex_ActDisk*nDim]; + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_ActDisk*nDim]; unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_ActDisk]; - double *Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex_ActDisk*nDim]; + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_ActDisk*nDim]; unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_ActDisk]; unsigned long nBuffer_Coord = MaxLocalVertex_ActDisk*nDim; @@ -9869,8 +9869,8 @@ void CPhysicalGeometry::MatchActuator_Disk(CConfig *config) { for (unsigned long iBuffer_Point = 0; iBuffer_Point < nBuffer_Point; iBuffer_Point++) Buffer_Receive_Point[iBuffer_Point] = Buffer_Send_Point[iBuffer_Point]; #else - MPI_Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #endif /*--- Compute the closest point to an actuator disk inlet point ---*/ @@ -9934,7 +9934,7 @@ void CPhysicalGeometry::MatchActuator_Disk(CConfig *config) { #ifndef HAVE_MPI maxdist_global = maxdist_local; #else - MPI_Reduce(&maxdist_local, &maxdist_global, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&maxdist_local, &maxdist_global, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); #endif if (rank == MASTER_NODE) cout <<"The max distance between points is: " << maxdist_global <<"."<< endl; @@ -9960,7 +9960,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC unsigned short iMarker, jMarker; unsigned long iVertex, iPoint, jVertex, jPoint = 0, pPoint = 0; - double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; + su2double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; if (val_iZone == ZONE_0) cout << "Set zone boundary conditions (if any)." << endl; @@ -9990,7 +9990,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC unsigned short iMarker, iDim; unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint; - double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; + su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; int iProcessor, pProcessor = 0; unsigned long nLocalVertex_Zone = 0, nGlobalVertex_Zone = 0, MaxLocalVertex_Zone = 0; int rank, nProcessor; @@ -10014,14 +10014,14 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC /*--- Send Interface vertex information --*/ - MPI_Allreduce(&nLocalVertex_Zone, &nGlobalVertex_Zone, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_Zone, &MaxLocalVertex_Zone, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Zone, &nGlobalVertex_Zone, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Zone, &MaxLocalVertex_Zone, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - double *Buffer_Send_Coord = new double [MaxLocalVertex_Zone*nDim]; + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Zone*nDim]; unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_Zone]; - double *Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex_Zone*nDim]; + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Zone*nDim]; unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_Zone]; unsigned long nBuffer_Coord = MaxLocalVertex_Zone*nDim; @@ -10046,8 +10046,8 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC } } - MPI_Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); /*--- Compute the closest point to a Near-Field boundary point ---*/ maxdist = 0.0; @@ -10104,7 +10104,7 @@ void CPhysicalGeometry::SetControlVolume(CConfig *config, unsigned short action) unsigned long face_iPoint = 0, face_jPoint = 0, iPoint, iElem; long iEdge; unsigned short nEdgesFace = 1, iFace, iEdgesFace, iDim; - double *Coord_Edge_CG, *Coord_FaceElem_CG, *Coord_Elem_CG, *Coord_FaceiPoint, *Coord_FacejPoint, Area, + su2double *Coord_Edge_CG, *Coord_FaceElem_CG, *Coord_Elem_CG, *Coord_FaceiPoint, *Coord_FacejPoint, Area, Volume, DomainVolume, my_DomainVolume, *NormalFace = NULL; bool change_face_orientation; int rank; @@ -10123,11 +10123,11 @@ void CPhysicalGeometry::SetControlVolume(CConfig *config, unsigned short action) node[iPoint]->SetVolume (0.0); } - Coord_Edge_CG = new double [nDim]; - Coord_FaceElem_CG = new double [nDim]; - Coord_Elem_CG = new double [nDim]; - Coord_FaceiPoint = new double [nDim]; - Coord_FacejPoint = new double [nDim]; + Coord_Edge_CG = new su2double [nDim]; + Coord_FaceElem_CG = new su2double [nDim]; + Coord_Elem_CG = new su2double [nDim]; + Coord_FaceiPoint = new su2double [nDim]; + Coord_FacejPoint = new su2double [nDim]; my_DomainVolume = 0.0; for (iElem = 0; iElem < nElem; iElem++) @@ -10202,7 +10202,7 @@ void CPhysicalGeometry::SetControlVolume(CConfig *config, unsigned short action) #ifdef HAVE_MPI - MPI_Allreduce(&my_DomainVolume, &DomainVolume, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&my_DomainVolume, &DomainVolume, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else DomainVolume = my_DomainVolume; #endif @@ -10229,14 +10229,14 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a unsigned long face_iPoint = 0, face_jPoint = 0, iElem, iPoint_Viz; long iEdge; unsigned short nEdgesFace = 1, iFace, iEdgesFace, iDim; - double *Coord_Edge_CG, *Coord_FaceElem_CG, *Coord_Elem_CG, *Coord_FaceiPoint, + su2double *Coord_Edge_CG, *Coord_FaceElem_CG, *Coord_Elem_CG, *Coord_FaceiPoint, *Coord_FacejPoint; int counter = 0; char cstr[MAX_STRING_SIZE], buffer[50]; ofstream Tecplot_File; string mesh_filename; - vector X, Y, Z, X_n, Y_n, Z_n; - double r1[3], r2[3], CrossProduct[3]; + vector X, Y, Z, X_n, Y_n, Z_n; + su2double r1[3], r2[3], CrossProduct[3]; /*--- Access the point number for control volume we want to vizualize ---*/ @@ -10244,11 +10244,11 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a /*--- Allocate some structures for building the dual CVs ---*/ - Coord_Edge_CG = new double [nDim]; - Coord_FaceElem_CG = new double [nDim]; - Coord_Elem_CG = new double [nDim]; - Coord_FaceiPoint = new double [nDim]; - Coord_FacejPoint = new double [nDim]; + Coord_Edge_CG = new su2double [nDim]; + Coord_FaceElem_CG = new su2double [nDim]; + Coord_Elem_CG = new su2double [nDim]; + Coord_FaceiPoint = new su2double [nDim]; + Coord_FacejPoint = new su2double [nDim]; /*--- Loop over each face of each element ---*/ @@ -10322,7 +10322,7 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a /*--- Write a Tecplot file to visualize the CV ---*/ strcpy(cstr,"dual_cv"); - sprintf (buffer, "_%d.dat", int(iPoint_Viz)); + SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(iPoint_Viz)); strcat(cstr, buffer); Tecplot_File.open(cstr, ios::out); @@ -10341,7 +10341,7 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a /*--- Write coordinates for the nodes in the order that they were found for each of the edges/triangles making up a dual control volume. ---*/ - for (vector::size_type i = 0; i != X.size(); i++) { + for (vector::size_type i = 0; i != X.size(); i++) { Tecplot_File << X[i] << "\t" << Y[i]; if (nDim == 3) Tecplot_File << "\t" << Z[i]; Tecplot_File << "\n"; @@ -10383,7 +10383,7 @@ void CPhysicalGeometry::SetMeshFile (CConfig *config, string val_mesh_out_filena ofstream output_file; string Grid_Marker; char *cstr; - double *center, *angles, *transl; + su2double *center, *angles, *transl; cstr = new char [val_mesh_out_filename.size()+1]; strcpy (cstr, val_mesh_out_filename.c_str()); @@ -10490,17 +10490,17 @@ void CPhysicalGeometry::SetMeshFile (CConfig *config, string val_mesh_out_filena output_file.close(); } -void CPhysicalGeometry::SetCoord_Smoothing (unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config) { +void CPhysicalGeometry::SetCoord_Smoothing (unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config) { unsigned short iSmooth, nneigh, iMarker; - double *Coord_Old, *Coord_Sum, *Coord, *Coord_i, *Coord_j, Position_Plane = 0.0; + su2double *Coord_Old, *Coord_Sum, *Coord, *Coord_i, *Coord_j, Position_Plane = 0.0; unsigned long iEdge, iPoint, jPoint, iVertex; - double eps = 1E-6; + su2double eps = 1E-6; bool NearField = false; - Coord = new double [nDim]; + Coord = new su2double [nDim]; for (iPoint = 0; iPoint < GetnPoint(); iPoint++) { - double *Coord = node[iPoint]->GetCoord(); + su2double *Coord = node[iPoint]->GetCoord(); node[iPoint]->SetCoord_Old(Coord); } @@ -10532,16 +10532,16 @@ void CPhysicalGeometry::SetCoord_Smoothing (unsigned short val_nSmooth, double v Coord_Old = node[iPoint]->GetCoord_Old(); if (nDim == 2) { - Coord[0] =(Coord_Old[0] + val_smooth_coeff*Coord_Sum[0]) /(1.0 + val_smooth_coeff*double(nneigh)); - Coord[1] =(Coord_Old[1] + val_smooth_coeff*Coord_Sum[1]) /(1.0 + val_smooth_coeff*double(nneigh)); + Coord[0] =(Coord_Old[0] + val_smooth_coeff*Coord_Sum[0]) /(1.0 + val_smooth_coeff*su2double(nneigh)); + Coord[1] =(Coord_Old[1] + val_smooth_coeff*Coord_Sum[1]) /(1.0 + val_smooth_coeff*su2double(nneigh)); if ((NearField) && ((Coord_Old[1] > Position_Plane-eps) && (Coord_Old[1] < Position_Plane+eps))) Coord[1] = Coord_Old[1]; } if (nDim == 3) { - Coord[0] =(Coord_Old[0] + val_smooth_coeff*Coord_Sum[0]) /(1.0 + val_smooth_coeff*double(nneigh)); - Coord[1] =(Coord_Old[1] + val_smooth_coeff*Coord_Sum[1]) /(1.0 + val_smooth_coeff*double(nneigh)); - Coord[2] =(Coord_Old[2] + val_smooth_coeff*Coord_Sum[2]) /(1.0 + val_smooth_coeff*double(nneigh)); + Coord[0] =(Coord_Old[0] + val_smooth_coeff*Coord_Sum[0]) /(1.0 + val_smooth_coeff*su2double(nneigh)); + Coord[1] =(Coord_Old[1] + val_smooth_coeff*Coord_Sum[1]) /(1.0 + val_smooth_coeff*su2double(nneigh)); + Coord[2] =(Coord_Old[2] + val_smooth_coeff*Coord_Sum[2]) /(1.0 + val_smooth_coeff*su2double(nneigh)); if ((NearField) && ((Coord_Old[2] > Position_Plane-eps) && (Coord_Old[2] < Position_Plane+eps))) Coord[2] = Coord_Old[2]; } @@ -10834,7 +10834,7 @@ void CPhysicalGeometry::SetBoundSTL(char mesh_filename[MAX_STRING_SIZE], bool ne ofstream STL_File; unsigned long this_node, iNode, nNode, iElem; unsigned short iDim, iMarker; - double p[3] = {0.0,0.0,0.0}, u[3] = {0.0,0.0,0.0}, v[3] = {0.0,0.0,0.0}, n[3] = {0.0,0.0,0.0}, a; + su2double p[3] = {0.0,0.0,0.0}, u[3] = {0.0,0.0,0.0}, v[3] = {0.0,0.0,0.0}, n[3] = {0.0,0.0,0.0}, a; /*--- STL format: solid NAME @@ -11202,9 +11202,9 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { } -void CPhysicalGeometry::GetQualityStatistics(double *statistics) { +void CPhysicalGeometry::GetQualityStatistics(su2double *statistics) { unsigned long jPoint, Point_2, Point_3, iElem; - double *Coord_j, *Coord_2, *Coord_3; + su2double *Coord_j, *Coord_2, *Coord_3; unsigned short iDim; statistics[0] = 1e06; @@ -11220,7 +11220,7 @@ void CPhysicalGeometry::GetQualityStatistics(double *statistics) { Point_3 = elem[iElem]->GetNode(2); Coord_3 = node[Point_3]->GetCoord(); /*--- Compute sides of the triangle ---*/ - double a = 0, b = 0, c = 0; + su2double a = 0, b = 0, c = 0; for (iDim = 0; iDim < nDim; iDim++) { a += (Coord_2[iDim]-Coord_j[iDim])*(Coord_2[iDim]-Coord_j[iDim]); b += (Coord_3[iDim]-Coord_j[iDim])*(Coord_3[iDim]-Coord_j[iDim]); @@ -11229,13 +11229,13 @@ void CPhysicalGeometry::GetQualityStatistics(double *statistics) { a = sqrt(a); b = sqrt(b); c = sqrt(c); /*--- Compute semiperimeter (s) and area ---*/ - double s = 0.5*(a + b + c); - double Area = sqrt(s*(s-a)*(s-b)*(s-c)); + su2double s = 0.5*(a + b + c); + su2double Area = sqrt(s*(s-a)*(s-b)*(s-c)); /*--- Compute radius of the circumcircle (R) and of the incircle (r) ---*/ - double R = (a*b*c) / (4.0*Area); - double r = Area / s; - double roR = r / R; + su2double R = (a*b*c) / (4.0*Area); + su2double r = Area / s; + su2double roR = r / R; /*--- Update statistics ---*/ if (roR < statistics[0]) @@ -11251,7 +11251,7 @@ void CPhysicalGeometry::GetQualityStatistics(double *statistics) { void CPhysicalGeometry::SetRotationalVelocity(CConfig *config) { unsigned long iPoint; - double RotVel[3], Distance[3], *Coord, Center[3], Omega[3], L_Ref; + su2double RotVel[3], Distance[3], *Coord, Center[3], Omega[3], L_Ref; int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -11309,8 +11309,8 @@ void CPhysicalGeometry::SetGridVelocity(CConfig *config, unsigned long iter) { /*--- Local variables ---*/ - double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; - double TimeStep, GridVel = 0.0; + su2double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; + su2double TimeStep, GridVel = 0.0; unsigned long iPoint; unsigned short iDim; @@ -11349,9 +11349,9 @@ void CPhysicalGeometry::Set_MPI_Coord(CConfig *config) { unsigned short iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Coord = NULL, *Buffer_Send_Coord = NULL, *Coord = NULL, *newCoord = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Coord = NULL, *Buffer_Send_Coord = NULL, *Coord = NULL, *newCoord = NULL; - newCoord = new double[nDim]; + newCoord = new su2double[nDim]; #ifdef HAVE_MPI int send_to, receive_from; @@ -11375,8 +11375,8 @@ void CPhysicalGeometry::Set_MPI_Coord(CConfig *config) { /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Coord = new double [nBufferR_Vector]; - Buffer_Send_Coord = new double[nBufferS_Vector]; + Buffer_Receive_Coord = new su2double [nBufferR_Vector]; + Buffer_Send_Coord = new su2double[nBufferS_Vector]; /*--- Copy the coordinates that should be sended ---*/ @@ -11389,7 +11389,7 @@ void CPhysicalGeometry::Set_MPI_Coord(CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Coord, nBufferS_Vector, MPI_DOUBLE, send_to,0, + SU2_MPI::Sendrecv(Buffer_Send_Coord, nBufferS_Vector, MPI_DOUBLE, send_to,0, Buffer_Receive_Coord, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); #else @@ -11481,9 +11481,9 @@ void CPhysicalGeometry::Set_MPI_GridVel(CConfig *config) { unsigned short iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_GridVel = NULL, *Buffer_Send_GridVel = NULL, *GridVel = NULL, *newGridVel = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_GridVel = NULL, *Buffer_Send_GridVel = NULL, *GridVel = NULL, *newGridVel = NULL; - newGridVel = new double[nDim]; + newGridVel = new su2double[nDim]; #ifdef HAVE_MPI int send_to, receive_from; @@ -11507,8 +11507,8 @@ void CPhysicalGeometry::Set_MPI_GridVel(CConfig *config) { /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_GridVel = new double [nBufferR_Vector]; - Buffer_Send_GridVel = new double[nBufferS_Vector]; + Buffer_Receive_GridVel = new su2double [nBufferR_Vector]; + Buffer_Send_GridVel = new su2double[nBufferS_Vector]; /*--- Copy the grid velocity that should be sended ---*/ @@ -11521,7 +11521,7 @@ void CPhysicalGeometry::Set_MPI_GridVel(CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_GridVel, nBufferS_Vector, MPI_DOUBLE, send_to,0, + SU2_MPI::Sendrecv(Buffer_Send_GridVel, nBufferS_Vector, MPI_DOUBLE, send_to,0, Buffer_Receive_GridVel, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); #else @@ -11612,7 +11612,7 @@ void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { unsigned long iNode, iIndex, iVertex, iPoint, iElem, kElem; unsigned long jElem, kPoint = 0, jVertex = 0, jPoint = 0, pPoint = 0, nPointPeriodic, newNodes[4] = {0,0,0,0}; vector::iterator IterElem, IterPoint[MAX_NUMBER_PERIODIC][2]; - double *center, *angles, rotMatrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, + su2double *center, *angles, rotMatrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, translation[3], *trans, theta, phi, psi, cosTheta, sinTheta, cosPhi, sinPhi, cosPsi, sinPsi, dx, dy, dz, rotCoord[3], epsilon = 1e-10, mindist = 1e6, *Coord_i, *Coord_j, dist = 0.0; bool isBadMatch = false; @@ -11947,7 +11947,7 @@ void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { } void CPhysicalGeometry::FindNormal_Neighbor(CConfig *config) { - double cos_max, scalar_prod, norm_vect, norm_Normal, cos_alpha, diff_coord, *Normal; + su2double cos_max, scalar_prod, norm_vect, norm_Normal, cos_alpha, diff_coord, *Normal; unsigned long Point_Normal, jPoint; unsigned short iNeigh, iMarker, iDim; unsigned long iPoint, iVertex; @@ -11994,7 +11994,7 @@ void CPhysicalGeometry::SetGeometryPlanes(CConfig *config) { bool loop_on; unsigned short iMarker = 0; - double auxXCoord, auxYCoord, auxZCoord, *Face_Normal = NULL, auxArea, *Xcoord = NULL, *Ycoord = NULL, *Zcoord = NULL, *FaceArea = NULL; + su2double auxXCoord, auxYCoord, auxZCoord, *Face_Normal = NULL, auxArea, *Xcoord = NULL, *Ycoord = NULL, *Zcoord = NULL, *FaceArea = NULL; unsigned long jVertex, iVertex, ixCoord, iPoint, iVertex_Wall, nVertex_Wall = 0; /*--- Compute the total number of points on the near-field ---*/ @@ -12012,10 +12012,10 @@ void CPhysicalGeometry::SetGeometryPlanes(CConfig *config) { /*--- Create an array with all the coordinates, points, pressures, face area, equivalent area, and nearfield weight ---*/ - Xcoord = new double[nVertex_Wall]; - Ycoord = new double[nVertex_Wall]; - if (nDim == 3) Zcoord = new double[nVertex_Wall]; - FaceArea = new double[nVertex_Wall]; + Xcoord = new su2double[nVertex_Wall]; + Ycoord = new su2double[nVertex_Wall]; + if (nDim == 3) Zcoord = new su2double[nVertex_Wall]; + FaceArea = new su2double[nVertex_Wall]; /*--- Copy the boundary information to an array ---*/ iVertex_Wall = 0; @@ -12038,8 +12038,8 @@ void CPhysicalGeometry::SetGeometryPlanes(CConfig *config) { } - //vector XCoordList; - vector::iterator IterXCoordList; + //vector XCoordList; + vector::iterator IterXCoordList; for (iVertex = 0; iVertex < nVertex_Wall; iVertex++) XCoordList.push_back(Xcoord[iVertex]); @@ -12056,7 +12056,7 @@ void CPhysicalGeometry::SetGeometryPlanes(CConfig *config) { Plane_points.resize(XCoordList.size()); - double dist_ratio; + su2double dist_ratio; unsigned long iCoord; /*--- Distribute the values among the different PhiAngles ---*/ @@ -12103,7 +12103,7 @@ void CPhysicalGeometry::SetGeometryPlanes(CConfig *config) { void CPhysicalGeometry::SetBoundSensitivity(CConfig *config) { unsigned short iMarker, icommas; unsigned long iVertex, iPoint, (*Point2Vertex)[2], nPointLocal = 0, nPointGlobal = 0; - double Sensitivity; + su2double Sensitivity; bool *PointInDomain; #ifdef HAVE_MPI @@ -12115,7 +12115,7 @@ void CPhysicalGeometry::SetBoundSensitivity(CConfig *config) { nPointLocal = nPoint; #ifdef HAVE_MPI - MPI_Allreduce(&nPointLocal, &nPointGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nPointLocal, &nPointGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else nPointGlobal = nPointLocal; #endif @@ -12144,18 +12144,18 @@ void CPhysicalGeometry::SetBoundSensitivity(CConfig *config) { /*--- Time-average any unsteady surface sensitivities ---*/ unsigned long iExtIter, nExtIter; - double delta_T, total_T; + su2double delta_T, total_T; if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { nExtIter = config->GetUnst_AdjointIter(); delta_T = config->GetDelta_UnstTimeND(); - total_T = (double)nExtIter*delta_T; + total_T = (su2double)nExtIter*delta_T; } else if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { /*--- Compute period of oscillation & compute time interval using nTimeInstances ---*/ - double period = config->GetTimeSpectral_Period(); + su2double period = config->GetTimeSpectral_Period(); nExtIter = config->GetnTimeInstances(); - delta_T = period/(double)nExtIter; + delta_T = period/(su2double)nExtIter; total_T = period; } else { @@ -12179,14 +12179,14 @@ void CPhysicalGeometry::SetBoundSensitivity(CConfig *config) { if ((config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) || (config->GetUnsteady_Simulation() == TIME_SPECTRAL)) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.csv", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.csv", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".csv"); + SPRINTF (buffer, ".csv"); strcat (cstr, buffer); @@ -12226,10 +12226,10 @@ void CPhysicalGeometry::SetBoundSensitivity(CConfig *config) { delete[] Point2Vertex; } -double CPhysicalGeometry::Compute_MaxThickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { +su2double CPhysicalGeometry::Compute_MaxThickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { unsigned long iVertex, jVertex, n, Trailing_Point, Leading_Point; - double Normal[3], Tangent[3], BiNormal[3], auxXCoord, auxYCoord, auxZCoord, zp1, zpn, MaxThickness_Value = 0, Thickness, Length, Xcoord_Trailing, Ycoord_Trailing, Zcoord_Trailing, ValCos, ValSin, XValue, ZValue, MaxDistance, Distance, AoA; - vector Xcoord, Ycoord, Zcoord, Z2coord, Xcoord_Normal, Ycoord_Normal, Zcoord_Normal, Xcoord_Airfoil_, Ycoord_Airfoil_, Zcoord_Airfoil_; + su2double Normal[3], Tangent[3], BiNormal[3], auxXCoord, auxYCoord, auxZCoord, zp1, zpn, MaxThickness_Value = 0, Thickness, Length, Xcoord_Trailing, Ycoord_Trailing, Zcoord_Trailing, ValCos, ValSin, XValue, ZValue, MaxDistance, Distance, AoA; + vector Xcoord, Ycoord, Zcoord, Z2coord, Xcoord_Normal, Ycoord_Normal, Zcoord_Normal, Xcoord_Airfoil_, Ycoord_Airfoil_, Zcoord_Airfoil_; /*--- Find the leading and trailing edges and compute the angle of attack ---*/ @@ -12335,9 +12335,9 @@ double CPhysicalGeometry::Compute_MaxThickness(double *Plane_P0, double *Plane_N } -double CPhysicalGeometry::Compute_AoA(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { +su2double CPhysicalGeometry::Compute_AoA(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { unsigned long iVertex, Trailing_Point, Leading_Point; - double MaxDistance, Distance, AoA = 0.0; + su2double MaxDistance, Distance, AoA = 0.0; /*--- Find the leading and trailing edges and compute the angle of attack ---*/ MaxDistance = 0.0; Trailing_Point = 0; Leading_Point = 0; @@ -12355,9 +12355,9 @@ double CPhysicalGeometry::Compute_AoA(double *Plane_P0, double *Plane_Normal, un } -double CPhysicalGeometry::Compute_Chord(double *Plane_P0, double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { +su2double CPhysicalGeometry::Compute_Chord(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { unsigned long iVertex, Trailing_Point; - double MaxDistance, Distance, Chord = 0.0; + su2double MaxDistance, Distance, Chord = 0.0; /*--- Find the leading and trailing edges and compute the angle of attack ---*/ MaxDistance = 0.0; Trailing_Point = 0; @@ -12376,10 +12376,10 @@ double CPhysicalGeometry::Compute_Chord(double *Plane_P0, double *Plane_Normal, } -double CPhysicalGeometry::Compute_Thickness(double *Plane_P0, double *Plane_Normal, unsigned short iSection, double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { +su2double CPhysicalGeometry::Compute_Thickness(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, su2double Location, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { unsigned long iVertex, jVertex, n_Upper, n_Lower, Trailing_Point, Leading_Point; - double Thickness_Location, Normal[3], Tangent[3], BiNormal[3], auxXCoord, auxYCoord, auxZCoord, Thickness_Value = 0.0, Length, Xcoord_Trailing, Ycoord_Trailing, Zcoord_Trailing, ValCos, ValSin, XValue, ZValue, zp1, zpn, Chord, MaxDistance, Distance, AoA; - vector Xcoord_Upper, Ycoord_Upper, Zcoord_Upper, Z2coord_Upper, Xcoord_Lower, Ycoord_Lower, Zcoord_Lower, Z2coord_Lower, Z2coord, Xcoord_Normal, Ycoord_Normal, Zcoord_Normal, Xcoord_Airfoil_, Ycoord_Airfoil_, Zcoord_Airfoil_; + su2double Thickness_Location, Normal[3], Tangent[3], BiNormal[3], auxXCoord, auxYCoord, auxZCoord, Thickness_Value = 0.0, Length, Xcoord_Trailing, Ycoord_Trailing, Zcoord_Trailing, ValCos, ValSin, XValue, ZValue, zp1, zpn, Chord, MaxDistance, Distance, AoA; + vector Xcoord_Upper, Ycoord_Upper, Zcoord_Upper, Z2coord_Upper, Xcoord_Lower, Ycoord_Lower, Zcoord_Lower, Z2coord_Lower, Z2coord, Xcoord_Normal, Ycoord_Normal, Zcoord_Normal, Xcoord_Airfoil_, Ycoord_Airfoil_, Zcoord_Airfoil_; /*--- Find the leading and trailing edges and compute the angle of attack ---*/ @@ -12504,12 +12504,12 @@ double CPhysicalGeometry::Compute_Thickness(double *Plane_P0, double *Plane_Norm } -double CPhysicalGeometry::Compute_Area(double *Plane_P0, double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { +su2double CPhysicalGeometry::Compute_Area(su2double *Plane_P0, su2double *Plane_Normal, unsigned short iSection, CConfig *config, vector &Xcoord_Airfoil, vector &Ycoord_Airfoil, vector &Zcoord_Airfoil, bool original_surface) { unsigned long iVertex, jVertex; - double Normal[3], Tangent[3], BiNormal[3], auxXCoord, auxYCoord, auxZCoord, Area_Value = 0.0, Area_Value_Upper = 0.0, Area_Value_Lower = 0.0, Length, Xcoord_Trailing, Ycoord_Trailing, Zcoord_Trailing, ValCos, ValSin, XValue, ZValue; - vector Xcoord_Upper, Ycoord_Upper, Zcoord_Upper, Xcoord_Lower, Ycoord_Lower, Zcoord_Lower, Z2coord, Xcoord_Normal, Ycoord_Normal, Zcoord_Normal, Xcoord_Airfoil_, Ycoord_Airfoil_, Zcoord_Airfoil_; + su2double Normal[3], Tangent[3], BiNormal[3], auxXCoord, auxYCoord, auxZCoord, Area_Value = 0.0, Area_Value_Upper = 0.0, Area_Value_Lower = 0.0, Length, Xcoord_Trailing, Ycoord_Trailing, Zcoord_Trailing, ValCos, ValSin, XValue, ZValue; + vector Xcoord_Upper, Ycoord_Upper, Zcoord_Upper, Xcoord_Lower, Ycoord_Lower, Zcoord_Lower, Z2coord, Xcoord_Normal, Ycoord_Normal, Zcoord_Normal, Xcoord_Airfoil_, Ycoord_Airfoil_, Zcoord_Airfoil_; unsigned long Trailing_Point, Leading_Point; - double MaxDistance, Distance, AoA; + su2double MaxDistance, Distance, AoA; /*--- Find the leading and trailing edges and compute the angle of attack ---*/ @@ -12626,7 +12626,7 @@ double CPhysicalGeometry::Compute_Area(double *Plane_P0, double *Plane_Normal, u } -double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surface) { +su2double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surface) { int rank = MASTER_NODE; @@ -12637,8 +12637,8 @@ double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surface) #endif unsigned short iPlane, nPlane = 0; - double Volume = 0.0, MinPlane, MaxPlane, MinXCoord, MaxXCoord, dPlane, *Area; - vector *Xcoord_Airfoil, *Ycoord_Airfoil, *Zcoord_Airfoil, *Variable_Airfoil; + su2double Volume = 0.0, MinPlane, MaxPlane, MinXCoord, MaxXCoord, dPlane, *Area; + vector *Xcoord_Airfoil, *Ycoord_Airfoil, *Zcoord_Airfoil, *Variable_Airfoil; /*--- Make a large number of section cuts for approximating volume ---*/ @@ -12646,20 +12646,20 @@ double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surface) /*--- Allocate memory for the section cutting ---*/ - Area = new double [nPlane]; + Area = new su2double [nPlane]; - double **Plane_P0 = new double*[nPlane]; + su2double **Plane_P0 = new su2double*[nPlane]; for (iPlane = 0; iPlane < nPlane; iPlane++ ) - Plane_P0[iPlane] = new double[nDim]; + Plane_P0[iPlane] = new su2double[nDim]; - double **Plane_Normal = new double*[nPlane]; + su2double **Plane_Normal = new su2double*[nPlane]; for (iPlane = 0; iPlane < nPlane; iPlane++ ) - Plane_Normal[iPlane] = new double[nDim]; + Plane_Normal[iPlane] = new su2double[nDim]; MinPlane = config->GetSection_Location(0); MaxPlane = config->GetSection_Location(1); MinXCoord = -1E6; MaxXCoord = 1E6; - dPlane = fabs((MaxPlane - MinPlane)/double(nPlane-1)); + dPlane = fabs((MaxPlane - MinPlane)/su2double(nPlane-1)); for (iPlane = 0; iPlane < nPlane; iPlane++) { Plane_Normal[iPlane][0] = 0.0; Plane_P0[iPlane][0] = 0.0; Plane_Normal[iPlane][1] = 0.0; Plane_P0[iPlane][1] = 0.0; @@ -12670,10 +12670,10 @@ double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surface) /*--- Allocate some vectors for storing airfoil coordinates ---*/ - Xcoord_Airfoil = new vector[nPlane]; - Ycoord_Airfoil = new vector[nPlane]; - Zcoord_Airfoil = new vector[nPlane]; - Variable_Airfoil = new vector[nPlane]; + Xcoord_Airfoil = new vector[nPlane]; + Ycoord_Airfoil = new vector[nPlane]; + Zcoord_Airfoil = new vector[nPlane]; + Variable_Airfoil = new vector[nPlane]; /*--- Create the section slices through the geometry ---*/ @@ -13225,9 +13225,9 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Children, nBufferS_Vector, MPI_UNSIGNED_LONG, send_to,0, + SU2_MPI::Sendrecv(Buffer_Send_Children, nBufferS_Vector, MPI_UNSIGNED_LONG, send_to,0, Buffer_Receive_Children, nBufferR_Vector, MPI_UNSIGNED_LONG, receive_from,0, MPI_COMM_WORLD, &status); - MPI_Sendrecv(Buffer_Send_Parent, nBufferS_Vector, MPI_UNSIGNED_LONG, send_to,1, + SU2_MPI::Sendrecv(Buffer_Send_Parent, nBufferS_Vector, MPI_UNSIGNED_LONG, send_to,1, Buffer_Receive_Parent, nBufferR_Vector, MPI_UNSIGNED_LONG, receive_from,1, MPI_COMM_WORLD, &status); #else /*--- Receive information without MPI ---*/ @@ -13326,23 +13326,23 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c Local_nPointFine = fine_grid->GetnPoint(); #ifdef HAVE_MPI - MPI_Allreduce(&Local_nPointCoarse, &Global_nPointCoarse, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nPointFine, &Global_nPointFine, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPointCoarse, &Global_nPointCoarse, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPointFine, &Global_nPointFine, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nPointCoarse = Local_nPointCoarse; Global_nPointFine = Local_nPointFine; #endif - double Coeff = 1.0, CFL = 0.0, factor = 1.5; + su2double Coeff = 1.0, CFL = 0.0, factor = 1.5; if (iMesh != MESH_0) { - if (nDim == 2) Coeff = pow(double(Global_nPointFine)/double(Global_nPointCoarse), 1./2.); - if (nDim == 3) Coeff = pow(double(Global_nPointFine)/double(Global_nPointCoarse), 1./3.); + if (nDim == 2) Coeff = pow(su2double(Global_nPointFine)/su2double(Global_nPointCoarse), 1./2.); + if (nDim == 3) Coeff = pow(su2double(Global_nPointFine)/su2double(Global_nPointCoarse), 1./3.); CFL = factor*config->GetCFL(iMesh-1)/Coeff; config->SetCFL(iMesh, CFL); } - double ratio = double(Global_nPointFine)/double(Global_nPointCoarse); + su2double ratio = su2double(Global_nPointFine)/su2double(Global_nPointCoarse); if (((nDim == 2) && (ratio < 2.5)) || ((nDim == 3) && (ratio < 2.5))) { @@ -13446,13 +13446,13 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark bool CMultiGridGeometry::GeometricalCheck(unsigned long iPoint, CGeometry *fine_grid, CConfig *config) { - double max_dimension = 1.2; + su2double max_dimension = 1.2; /*--- Evaluate the total size of the element ---*/ bool Volume = true; - double ratio = pow(fine_grid->node[iPoint]->GetVolume(), 1.0/double(nDim))*max_dimension; - double limit = pow(config->GetDomainVolume(), 1.0/double(nDim)); + su2double ratio = pow(fine_grid->node[iPoint]->GetVolume(), 1.0/su2double(nDim))*max_dimension; + su2double limit = pow(config->GetDomainVolume(), 1.0/su2double(nDim)); if ( ratio > limit ) Volume = false; /*--- Evaluate the stretching of the element ---*/ @@ -13461,12 +13461,12 @@ bool CMultiGridGeometry::GeometricalCheck(unsigned long iPoint, CGeometry *fine_ /* unsigned short iNode, iDim; unsigned long jPoint; - double *Coord_i = fine_grid->node[iPoint]->GetCoord(); - double max_dist = 0.0 ; double min_dist = 1E20; + su2double *Coord_i = fine_grid->node[iPoint]->GetCoord(); + su2double max_dist = 0.0 ; su2double min_dist = 1E20; for (iNode = 0; iNode < fine_grid->node[iPoint]->GetnPoint(); iNode ++) { jPoint = fine_grid->node[iPoint]->GetPoint(iNode); - double *Coord_j = fine_grid->node[jPoint]->GetCoord(); - double distance = 0.0; + su2double *Coord_j = fine_grid->node[jPoint]->GetCoord(); + su2double distance = 0.0; for (iDim = 0; iDim < nDim; iDim++) distance += (Coord_j[iDim]-Coord_i[iDim])*(Coord_j[iDim]-Coord_i[iDim]); distance = sqrt(distance); @@ -13800,8 +13800,8 @@ void CMultiGridGeometry::SetControlVolume(CConfig *config, CGeometry *fine_grid, long FineEdge, CoarseEdge; unsigned short iChildren, iNode, iDim; bool change_face_orientation; - double *Normal, Coarse_Volume, Area, *NormalFace = NULL; - Normal = new double [nDim]; + su2double *Normal, Coarse_Volume, Area, *NormalFace = NULL; + Normal = new su2double [nDim]; /*--- Compute the area of the coarse volume ---*/ for (iCoarsePoint = 0; iCoarsePoint < nPoint; iCoarsePoint ++) { @@ -13864,9 +13864,9 @@ void CMultiGridGeometry::SetControlVolume(CConfig *config, CGeometry *fine_grid, void CMultiGridGeometry::SetBoundControlVolume(CConfig *config, CGeometry *fine_grid, unsigned short action) { unsigned long iCoarsePoint, iFinePoint, FineVertex, iVertex; unsigned short iMarker, iChildren, iDim; - double *Normal, Area, *NormalFace = NULL; + su2double *Normal, Area, *NormalFace = NULL; - Normal = new double [nDim]; + Normal = new su2double [nDim]; if (action != ALLOCATE) { for (iMarker = 0; iMarker < nMarker; iMarker++) @@ -13903,9 +13903,9 @@ void CMultiGridGeometry::SetBoundControlVolume(CConfig *config, CGeometry *fine_ void CMultiGridGeometry::SetCoord(CGeometry *geometry) { unsigned long Point_Fine, Point_Coarse; unsigned short iChildren, iDim; - double Area_Parent, Area_Children; - double *Coordinates_Fine, *Coordinates; - Coordinates = new double[nDim]; + su2double Area_Parent, Area_Children; + su2double *Coordinates_Fine, *Coordinates; + Coordinates = new su2double[nDim]; for (Point_Coarse = 0; Point_Coarse < GetnPoint(); Point_Coarse++) { Area_Parent = node[Point_Coarse]->GetVolume(); @@ -13926,9 +13926,9 @@ void CMultiGridGeometry::SetCoord(CGeometry *geometry) { void CMultiGridGeometry::SetRotationalVelocity(CConfig *config) { unsigned long iPoint_Coarse; - double *RotVel, Distance[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, L_Ref; + su2double *RotVel, Distance[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, L_Ref; - RotVel = new double [3]; + RotVel = new su2double [3]; /*--- Center of rotation & angular velocity vector from config. ---*/ @@ -13974,8 +13974,8 @@ void CMultiGridGeometry::SetGridVelocity(CConfig *config, unsigned long iter) { /*--- Local variables ---*/ - double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; - double TimeStep, GridVel = 0.0; + su2double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; + su2double TimeStep, GridVel = 0.0; unsigned long Point_Coarse; unsigned short iDim; @@ -14015,7 +14015,7 @@ void CMultiGridGeometry::SetRestricted_GridVelocity(CGeometry *fine_mesh, CConfi /*--- Local variables ---*/ unsigned short iDim, iChild; unsigned long Point_Coarse, Point_Fine; - double Area_Parent, Area_Child, Grid_Vel[3], *Grid_Vel_Fine; + su2double Area_Parent, Area_Child, Grid_Vel[3], *Grid_Vel_Fine; /*--- Loop over all coarse mesh points ---*/ for (Point_Coarse = 0; Point_Coarse < GetnPoint(); Point_Coarse++) { @@ -14061,10 +14061,10 @@ void CMultiGridGeometry::FindNormal_Neighbor(CConfig *config) { if (node[iPoint]->GetDomain()) { /*--- Compute closest normal neighbor ---*/ - double cos_max, scalar_prod, norm_vect, norm_Normal, cos_alpha, diff_coord; + su2double cos_max, scalar_prod, norm_vect, norm_Normal, cos_alpha, diff_coord; unsigned long Point_Normal = 0, jPoint; unsigned short iNeigh; - double *Normal = vertex[iMarker][iVertex]->GetNormal(); + su2double *Normal = vertex[iMarker][iVertex]->GetNormal(); cos_max = -1.0; for (iNeigh = 0; iNeigh < node[iPoint]->GetnPoint(); iNeigh++) { jPoint = node[iPoint]->GetPoint(iNeigh); @@ -14096,7 +14096,7 @@ void CMultiGridGeometry::FindNormal_Neighbor(CConfig *config) { void CMultiGridGeometry::SetGeometryPlanes(CConfig *config) { bool loop_on; unsigned short iMarker = 0; - double auxXCoord, auxYCoord, auxZCoord, *Face_Normal = NULL, auxArea, *Xcoord = NULL, *Ycoord = NULL, *Zcoord = NULL, *FaceArea = NULL; + su2double auxXCoord, auxYCoord, auxZCoord, *Face_Normal = NULL, auxArea, *Xcoord = NULL, *Ycoord = NULL, *Zcoord = NULL, *FaceArea = NULL; unsigned long jVertex, iVertex, ixCoord, iPoint, iVertex_Wall, nVertex_Wall = 0; /*--- Compute the total number of points on the near-field ---*/ @@ -14114,10 +14114,10 @@ void CMultiGridGeometry::SetGeometryPlanes(CConfig *config) { /*--- Create an array with all the coordinates, points, pressures, face area, equivalent area, and nearfield weight ---*/ - Xcoord = new double[nVertex_Wall]; - Ycoord = new double[nVertex_Wall]; - if (nDim == 3) Zcoord = new double[nVertex_Wall]; - FaceArea = new double[nVertex_Wall]; + Xcoord = new su2double[nVertex_Wall]; + Ycoord = new su2double[nVertex_Wall]; + if (nDim == 3) Zcoord = new su2double[nVertex_Wall]; + FaceArea = new su2double[nVertex_Wall]; /*--- Copy the boundary information to an array ---*/ iVertex_Wall = 0; @@ -14140,8 +14140,8 @@ void CMultiGridGeometry::SetGeometryPlanes(CConfig *config) { } - //vector XCoordList; - vector::iterator IterXCoordList; + //vector XCoordList; + vector::iterator IterXCoordList; for (iVertex = 0; iVertex < nVertex_Wall; iVertex++) XCoordList.push_back(Xcoord[iVertex]); @@ -14158,7 +14158,7 @@ void CMultiGridGeometry::SetGeometryPlanes(CConfig *config) { Plane_points.resize(XCoordList.size()); - double dist_ratio; + su2double dist_ratio; unsigned long iCoord; /*--- Distribute the values among the different PhiAngles ---*/ @@ -14207,7 +14207,7 @@ CPeriodicGeometry::CPeriodicGeometry(CGeometry *geometry, CConfig *config) { nelem_triangle = 0, nelem_quad = 0, nelem_tetra = 0, nelem_hexa = 0, nelem_prism = 0, nelem_pyramid = 0, iIndex, newElementsBound = 0; unsigned short iMarker, nPeriodic = 0, iPeriodic; - double *center, *angles, rotMatrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, + su2double *center, *angles, rotMatrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, translation[3], *trans, theta, phi, psi, cosTheta, sinTheta, cosPhi, sinPhi, cosPsi, sinPsi, dx, dy, dz, rotCoord[3], *Coord_i; unsigned short nMarker_Max = config->GetnMarker_Max(); @@ -14592,7 +14592,7 @@ void CPeriodicGeometry::SetMeshFile(CGeometry *geometry, CConfig *config, string ofstream output_file; string Grid_Marker; char *cstr; - double *center, *angles, *transl; + su2double *center, *angles, *transl; cstr = new char [val_mesh_out_filename.size()+1]; strcpy (cstr, val_mesh_out_filename.c_str()); diff --git a/Common/src/grid_adaptation_structure.cpp b/Common/src/grid_adaptation_structure.cpp index d673ebb71e8..8e02d680783 100644 --- a/Common/src/grid_adaptation_structure.cpp +++ b/Common/src/grid_adaptation_structure.cpp @@ -49,28 +49,28 @@ CGridAdaptation::CGridAdaptation(CGeometry *geometry, CConfig *config) { break; } - ConsVar_Sol = new double* [geometry->GetnPoint()]; - AdjVar_Sol = new double* [geometry->GetnPoint()]; - LinVar_Sol = new double* [geometry->GetnPoint()]; - ConsVar_Res = new double* [geometry->GetnPoint()]; - AdjVar_Res = new double* [geometry->GetnPoint()]; - LinVar_Res = new double* [geometry->GetnPoint()]; - Gradient = new double* [geometry->GetnPoint()]; - Gradient_Flow = new double* [geometry->GetnPoint()]; - Gradient_Adj = new double* [geometry->GetnPoint()]; - - Index = new double [geometry->GetnPoint()]; + ConsVar_Sol = new su2double* [geometry->GetnPoint()]; + AdjVar_Sol = new su2double* [geometry->GetnPoint()]; + LinVar_Sol = new su2double* [geometry->GetnPoint()]; + ConsVar_Res = new su2double* [geometry->GetnPoint()]; + AdjVar_Res = new su2double* [geometry->GetnPoint()]; + LinVar_Res = new su2double* [geometry->GetnPoint()]; + Gradient = new su2double* [geometry->GetnPoint()]; + Gradient_Flow = new su2double* [geometry->GetnPoint()]; + Gradient_Adj = new su2double* [geometry->GetnPoint()]; + + Index = new su2double [geometry->GetnPoint()]; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { - ConsVar_Sol[iPoint] = new double [nVar]; - AdjVar_Sol[iPoint] = new double [nVar]; - LinVar_Sol[iPoint] = new double [nVar]; - ConsVar_Res[iPoint] = new double [nVar]; - LinVar_Res[iPoint] = new double [nVar]; - AdjVar_Res[iPoint] = new double [nVar]; - Gradient[iPoint] = new double [nDim]; - Gradient_Flow[iPoint] = new double [nDim]; - Gradient_Adj[iPoint] = new double [nDim]; + ConsVar_Sol[iPoint] = new su2double [nVar]; + AdjVar_Sol[iPoint] = new su2double [nVar]; + LinVar_Sol[iPoint] = new su2double [nVar]; + ConsVar_Res[iPoint] = new su2double [nVar]; + LinVar_Res[iPoint] = new su2double [nVar]; + AdjVar_Res[iPoint] = new su2double [nVar]; + Gradient[iPoint] = new su2double [nDim]; + Gradient_Flow[iPoint] = new su2double [nDim]; + Gradient_Adj[iPoint] = new su2double [nDim]; } } @@ -114,7 +114,7 @@ CGridAdaptation::~CGridAdaptation(void) { void CGridAdaptation::GetFlowSolution(CGeometry *geometry, CConfig *config) { unsigned long iPoint, index; unsigned short iVar; - double dummy; + su2double dummy; string text_line; @@ -156,8 +156,8 @@ void CGridAdaptation::GetFlowResidual(CGeometry *geometry, CConfig *config) { unsigned long iPoint, index; unsigned short iVar; -// double dummy[5]; - double dummy; +// su2double dummy[5]; + su2double dummy; string text_line; string mesh_filename = config->GetSolution_FlowFileName(); @@ -198,7 +198,7 @@ void CGridAdaptation::GetFlowResidual(CGeometry *geometry, CConfig *config) { void CGridAdaptation::GetLinResidual(CGeometry *geometry, CConfig *config) { unsigned long iPoint, index; - double dummy; + su2double dummy; string text_line; string mesh_filename = config->GetSolution_LinFileName(); @@ -238,7 +238,7 @@ void CGridAdaptation::GetLinResidual(CGeometry *geometry, CConfig *config) { void CGridAdaptation::GetAdjSolution(CGeometry *geometry, CConfig *config) { unsigned long iPoint, index; unsigned short iVar; - double dummy; + su2double dummy; string text_line; string copy, mesh_filename; @@ -280,7 +280,7 @@ void CGridAdaptation::GetAdjSolution(CGeometry *geometry, CConfig *config) { void CGridAdaptation::GetLinSolution(CGeometry *geometry, CConfig *config) { unsigned long iPoint, index; - double dummy; + su2double dummy; string text_line; string mesh_filename; @@ -318,7 +318,7 @@ void CGridAdaptation::GetLinSolution(CGeometry *geometry, CConfig *config) { void CGridAdaptation::GetAdjResidual(CGeometry *geometry, CConfig *config) { unsigned long iPoint, index; string text_line; - double dummy; + su2double dummy; string mesh_filename, copy; ifstream restart_file; @@ -333,22 +333,22 @@ void CGridAdaptation::GetAdjResidual(CGeometry *geometry, CConfig *config) { unsigned short lastindex = copy.find_last_of("."); copy = copy.substr(0, lastindex); strcpy (cstr, copy.c_str()); - if (config->GetKind_ObjFunc() == DRAG_COEFFICIENT) sprintf (buffer, "_cd.dat"); - if (config->GetKind_ObjFunc() == LIFT_COEFFICIENT) sprintf (buffer, "_cl.dat"); - if (config->GetKind_ObjFunc() == SIDEFORCE_COEFFICIENT) sprintf (buffer, "_csf.dat"); - if (config->GetKind_ObjFunc() == INVERSE_DESIGN_PRESSURE) sprintf (buffer, "_invpress.dat"); - if (config->GetKind_ObjFunc() == INVERSE_DESIGN_HEATFLUX) sprintf (buffer, "_invheat.dat"); - if (config->GetKind_ObjFunc() == MOMENT_X_COEFFICIENT) sprintf (buffer, "_cmx.dat"); - if (config->GetKind_ObjFunc() == MOMENT_Y_COEFFICIENT) sprintf (buffer, "_cmy.dat"); - if (config->GetKind_ObjFunc() == MOMENT_Z_COEFFICIENT) sprintf (buffer, "_cmz.dat"); - if (config->GetKind_ObjFunc() == EFFICIENCY) sprintf (buffer, "_eff.dat"); - if (config->GetKind_ObjFunc() == FORCE_X_COEFFICIENT) sprintf (buffer, "_cfx.dat"); - if (config->GetKind_ObjFunc() == FORCE_Y_COEFFICIENT) sprintf (buffer, "_cfy.dat"); - if (config->GetKind_ObjFunc() == FORCE_Z_COEFFICIENT) sprintf (buffer, "_cfz.dat"); - if (config->GetKind_ObjFunc() == TOTAL_HEATFLUX) sprintf (buffer, "_totheat.dat"); - if (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX) sprintf (buffer, "_maxheat.dat"); - if (config->GetKind_ObjFunc() == AVG_TOTAL_PRESSURE) sprintf (buffer, "_pt.dat"); - if (config->GetKind_ObjFunc() == MASS_FLOW_RATE) sprintf (buffer, "_mfr.dat"); + if (config->GetKind_ObjFunc() == DRAG_COEFFICIENT) SPRINTF (buffer, "_cd.dat"); + if (config->GetKind_ObjFunc() == LIFT_COEFFICIENT) SPRINTF (buffer, "_cl.dat"); + if (config->GetKind_ObjFunc() == SIDEFORCE_COEFFICIENT) SPRINTF (buffer, "_csf.dat"); + if (config->GetKind_ObjFunc() == INVERSE_DESIGN_PRESSURE) SPRINTF (buffer, "_invpress.dat"); + if (config->GetKind_ObjFunc() == INVERSE_DESIGN_HEATFLUX) SPRINTF (buffer, "_invheat.dat"); + if (config->GetKind_ObjFunc() == MOMENT_X_COEFFICIENT) SPRINTF (buffer, "_cmx.dat"); + if (config->GetKind_ObjFunc() == MOMENT_Y_COEFFICIENT) SPRINTF (buffer, "_cmy.dat"); + if (config->GetKind_ObjFunc() == MOMENT_Z_COEFFICIENT) SPRINTF (buffer, "_cmz.dat"); + if (config->GetKind_ObjFunc() == EFFICIENCY) SPRINTF (buffer, "_eff.dat"); + if (config->GetKind_ObjFunc() == FORCE_X_COEFFICIENT) SPRINTF (buffer, "_cfx.dat"); + if (config->GetKind_ObjFunc() == FORCE_Y_COEFFICIENT) SPRINTF (buffer, "_cfy.dat"); + if (config->GetKind_ObjFunc() == FORCE_Z_COEFFICIENT) SPRINTF (buffer, "_cfz.dat"); + if (config->GetKind_ObjFunc() == TOTAL_HEATFLUX) SPRINTF (buffer, "_totheat.dat"); + if (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX) SPRINTF (buffer, "_maxheat.dat"); + if (config->GetKind_ObjFunc() == AVG_TOTAL_PRESSURE) SPRINTF (buffer, "_pt.dat"); + if (config->GetKind_ObjFunc() == MASS_FLOW_RATE) SPRINTF (buffer, "_mfr.dat"); strcat(cstr, buffer); @@ -398,7 +398,7 @@ void CGridAdaptation::SetNo_Refinement(CGeometry *geometry, unsigned short stren void CGridAdaptation::SetWake_Refinement(CGeometry *geometry, unsigned short strength) { unsigned long iElem, iPoint; unsigned short iNode; - double Coordx, Coordy, dist, wake = 0.5; + su2double Coordx, Coordy, dist, wake = 0.5; for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) { @@ -418,9 +418,9 @@ void CGridAdaptation::SetWake_Refinement(CGeometry *geometry, unsigned short str void CGridAdaptation::SetSupShock_Refinement(CGeometry *geometry, CConfig *config) { unsigned long iElem, iPoint; unsigned short iNode; - double Coordx, Coordy; - double mu_1 = asin(1/config->GetMach()-0.1); - double mu_2 = asin(1/(config->GetMach()-0.7)); + su2double Coordx, Coordy; + su2double mu_1 = asin(1/config->GetMach()-0.1); + su2double mu_2 = asin(1/(config->GetMach()-0.7)); for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) { @@ -1820,27 +1820,27 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG nPoint_new = geometry->GetnPoint(); - double **NewNodeCoord; - NewNodeCoord = new double *[4*geometry->GetnPoint()]; + su2double **NewNodeCoord; + NewNodeCoord = new su2double *[4*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 4*geometry->GetnPoint(); iPoint++) - NewNodeCoord[iPoint] = new double[geometry->GetnDim()]; + NewNodeCoord[iPoint] = new su2double[geometry->GetnDim()]; if (Restart_Flow) { - ConsVar_Adapt = new double *[4*geometry->GetnPoint()]; + ConsVar_Adapt = new su2double *[4*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 4*geometry->GetnPoint(); iPoint++) - ConsVar_Adapt[iPoint] = new double[nVar]; + ConsVar_Adapt[iPoint] = new su2double[nVar]; } if (Restart_Adjoint) { - AdjVar_Adapt = new double *[4*geometry->GetnPoint()]; + AdjVar_Adapt = new su2double *[4*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 4*geometry->GetnPoint(); iPoint++) - AdjVar_Adapt[iPoint] = new double[nVar]; + AdjVar_Adapt[iPoint] = new su2double[nVar]; } if (Restart_Linear) { - LinVar_Adapt = new double *[4*geometry->GetnPoint()]; + LinVar_Adapt = new su2double *[4*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 4*geometry->GetnPoint(); iPoint++) - LinVar_Adapt[iPoint] = new double[nVar]; + LinVar_Adapt[iPoint] = new su2double[nVar]; } /*--- Set the value of the variables ---*/ @@ -2282,22 +2282,22 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG // // /*--- Recompute the coordinates using the NACA 4Digits analytical definition ---*/ // -// double Ya = 0.0 / 100.0; /*--- Maximum camber as a fraction of the chord +// su2double Ya = 0.0 / 100.0; /*--- Maximum camber as a fraction of the chord // (100 m is the first of the four digits) ---*/ -// double Xa = 0.0 / 10.0; /*--- Location of maximum camber as a fraction of +// su2double Xa = 0.0 / 10.0; /*--- Location of maximum camber as a fraction of // the chord (10 p is the second digit in the NACA xxxx description) ---*/ -// double t = 12.0 / 100.0; /*--- Maximum thickness as a fraction of the +// su2double t = 12.0 / 100.0; /*--- Maximum thickness as a fraction of the // chord (so 100 t gives the last two digits in // the NACA 4-digit denomination) ---*/ // -// double *Coord = geo_adapt->node[ip_01]->GetCoord(); -// double *Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); +// su2double *Coord = geo_adapt->node[ip_01]->GetCoord(); +// su2double *Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); // -// double Ycurv = 0.0; +// su2double Ycurv = 0.0; // if (Coord[0] < Xa) Ycurv = (2.0*Xa*Coord[0]-pow(Coord[0],2.0))*(Ya/pow(Xa,2.0)); // else Ycurv = ((1.0-2.0*Xa)+2.0*Xa*Coord[0]-pow(Coord[0],2.0))*(Ya/pow((1.0-Xa), 2.0)); // -// double Yesp = 0.0; +// su2double Yesp = 0.0; // Yesp = t*(1.4845*sqrt(Coord[0])-0.6300*Coord[0]-1.7580*pow(Coord[0],2.0)+ // 1.4215*pow(Coord[0],3.0)-0.518*pow(Coord[0],4.0)); // @@ -2608,27 +2608,27 @@ void CGridAdaptation::SetHomothetic_Adaptation3D(CGeometry *geometry, CPhysicalG nPoint_new = geometry->GetnPoint(); - double **NewNodeCoord; - NewNodeCoord = new double *[10*geometry->GetnPoint()]; + su2double **NewNodeCoord; + NewNodeCoord = new su2double *[10*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 10*geometry->GetnPoint(); iPoint++) - NewNodeCoord[iPoint] = new double[geometry->GetnDim()]; + NewNodeCoord[iPoint] = new su2double[geometry->GetnDim()]; if (Restart_Flow) { - ConsVar_Adapt = new double *[10*geometry->GetnPoint()]; + ConsVar_Adapt = new su2double *[10*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 10*geometry->GetnPoint(); iPoint++) - ConsVar_Adapt[iPoint] = new double[nVar]; + ConsVar_Adapt[iPoint] = new su2double[nVar]; } if (Restart_Adjoint) { - AdjVar_Adapt = new double *[10*geometry->GetnPoint()]; + AdjVar_Adapt = new su2double *[10*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 10*geometry->GetnPoint(); iPoint++) - AdjVar_Adapt[iPoint] = new double[nVar]; + AdjVar_Adapt[iPoint] = new su2double[nVar]; } if (Restart_Linear) { - LinVar_Adapt = new double *[10*geometry->GetnPoint()]; + LinVar_Adapt = new su2double *[10*geometry->GetnPoint()]; for (iPoint = 0; iPoint < 10*geometry->GetnPoint(); iPoint++) - LinVar_Adapt[iPoint] = new double[nVar]; + LinVar_Adapt[iPoint] = new su2double[nVar]; } // Set the value of the variables @@ -3301,13 +3301,13 @@ void CGridAdaptation::SetHomothetic_Adaptation3D(CGeometry *geometry, CPhysicalG void CGridAdaptation::SetIndicator_Flow(CGeometry *geometry, CConfig *config, unsigned short strength) { unsigned long Point = 0, Point_0 = 0, Point_1 = 0, iEdge, iVertex, iPoint, iElem, max_elem_new; unsigned short iDim, iMarker; - double Dual_Area, norm, Solution_Vertex, Solution_0, Solution_1, Solution_Average, + su2double Dual_Area, norm, Solution_Vertex, Solution_0, Solution_1, Solution_Average, DualArea, Partial_Res, Grad_Val, *Normal; - double scale_area = config->GetDualVol_Power(); + su2double scale_area = config->GetDualVol_Power(); /*--- Initialization ---*/ nElem_new = 0; - max_elem_new = int(0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new = SU2_TYPE::Int(0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { geometry->elem[iElem]->SetDivide(false); } @@ -3362,16 +3362,16 @@ void CGridAdaptation::SetIndicator_Flow(CGeometry *geometry, CConfig *config, un void CGridAdaptation::SetIndicator_Adj(CGeometry *geometry, CConfig *config, unsigned short strength) { - double Dual_Area; + su2double Dual_Area; unsigned long Point = 0, Point_0 = 0, Point_1 = 0, iEdge, iVertex, iPoint, iElem, max_elem_new; unsigned short iDim, iMarker; - double norm, Solution_Vertex, Solution_0, Solution_1, Solution_Average, + su2double norm, Solution_Vertex, Solution_0, Solution_1, Solution_Average, DualArea, Partial_Res, Grad_Val, *Normal; - double scale_area = config->GetDualVol_Power(); + su2double scale_area = config->GetDualVol_Power(); // Initialization nElem_new = 0; - max_elem_new = int(0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new = SU2_TYPE::Int(0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { geometry->elem[iElem]->SetDivide(false); } @@ -3428,15 +3428,15 @@ void CGridAdaptation::SetIndicator_Adj(CGeometry *geometry, CConfig *config, uns } void CGridAdaptation::SetIndicator_FlowAdj(CGeometry *geometry, CConfig *config) { - double Dual_Area; + su2double Dual_Area; unsigned long Point = 0, Point_0 = 0, Point_1 = 0, iEdge, iVertex, iPoint, iElem, max_elem_new_flow, max_elem_new_adj; unsigned short iDim, iMarker; - double norm, DualArea, Partial_Res, *Normal; - double scale_area = config->GetDualVol_Power(); + su2double norm, DualArea, Partial_Res, *Normal; + su2double scale_area = config->GetDualVol_Power(); // Initialization - max_elem_new_flow = int(0.5*0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); - max_elem_new_adj = int(0.5*0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new_flow = SU2_TYPE::Int(0.5*0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); + max_elem_new_adj = SU2_TYPE::Int(0.5*0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { geometry->elem[iElem]->SetDivide(false); } @@ -3510,8 +3510,8 @@ void CGridAdaptation::SetIndicator_FlowAdj(CGeometry *geometry, CConfig *config) void CGridAdaptation::SetIndicator_Robust(CGeometry *geometry, CConfig *config) { unsigned long iPoint, iElem, max_elem_new_flow, max_elem_new_adj; unsigned short iVar; - double Dual_Area; - double scale_area = config->GetDualVol_Power(); + su2double Dual_Area; + su2double scale_area = config->GetDualVol_Power(); // Inicializa la malla para la adaptacion for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { @@ -3528,7 +3528,7 @@ void CGridAdaptation::SetIndicator_Robust(CGeometry *geometry, CConfig *config) Index[iPoint] = pow(Dual_Area, scale_area)*sqrt(Index[iPoint]); } - max_elem_new_flow = int(0.5*0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new_flow = SU2_TYPE::Int(0.5*0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); SetSensorElem(geometry, config, max_elem_new_flow); for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { @@ -3540,7 +3540,7 @@ void CGridAdaptation::SetIndicator_Robust(CGeometry *geometry, CConfig *config) Index[iPoint] = pow(Dual_Area, scale_area)*sqrt(Index[iPoint]); } - max_elem_new_adj = int(0.5*0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new_adj = SU2_TYPE::Int(0.5*0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); SetSensorElem(geometry, config, max_elem_new_adj); } @@ -3548,10 +3548,10 @@ void CGridAdaptation::SetIndicator_Robust(CGeometry *geometry, CConfig *config) void CGridAdaptation::SetIndicator_Computable(CGeometry *geometry, CConfig *config) { unsigned long iPoint, iElem, max_elem_new; unsigned short iVar; - double Dual_Area; - double scale_area = config->GetDualVol_Power(); + su2double Dual_Area; + su2double scale_area = config->GetDualVol_Power(); - max_elem_new = int(0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new = SU2_TYPE::Int(0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { geometry->elem[iElem]->SetDivide (false); } @@ -3572,11 +3572,11 @@ void CGridAdaptation::SetIndicator_Computable(CGeometry *geometry, CConfig *conf void CGridAdaptation::SetIndicator_Computable_Robust(CGeometry *geometry, CConfig *config) { unsigned long iPoint, iElem, max_elem_new; unsigned short iVar; - double Dual_Area ; - double scale_area = config->GetDualVol_Power(); + su2double Dual_Area ; + su2double scale_area = config->GetDualVol_Power(); /*--- Initializate the numerical grid for the adaptation ---*/ - max_elem_new = int(0.01*config->GetNew_Elem_Adapt()*double(geometry->GetnElem())); + max_elem_new = SU2_TYPE::Int(0.01*config->GetNew_Elem_Adapt()*su2double(geometry->GetnElem())); for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { geometry->elem[iElem]->SetDivide (false); } @@ -3633,22 +3633,22 @@ void CGridAdaptation::SetRestart_AdjSolution(CConfig *config, CPhysicalGeometry unsigned short lastindex = copy.find_last_of("."); copy = copy.substr(0, lastindex); strcpy (cstr, copy.c_str()); - if (config->GetKind_ObjFunc() == DRAG_COEFFICIENT) sprintf (buffer, "_cd.dat"); - if (config->GetKind_ObjFunc() == LIFT_COEFFICIENT) sprintf (buffer, "_cl.dat"); - if (config->GetKind_ObjFunc() == SIDEFORCE_COEFFICIENT) sprintf (buffer, "_csf.dat"); - if (config->GetKind_ObjFunc() == INVERSE_DESIGN_PRESSURE) sprintf (buffer, "_invpress.dat"); - if (config->GetKind_ObjFunc() == INVERSE_DESIGN_HEATFLUX) sprintf (buffer, "_invheat.dat"); - if (config->GetKind_ObjFunc() == MOMENT_X_COEFFICIENT) sprintf (buffer, "_cmx.dat"); - if (config->GetKind_ObjFunc() == MOMENT_Y_COEFFICIENT) sprintf (buffer, "_cmy.dat"); - if (config->GetKind_ObjFunc() == MOMENT_Z_COEFFICIENT) sprintf (buffer, "_cmz.dat"); - if (config->GetKind_ObjFunc() == EFFICIENCY) sprintf (buffer, "_eff.dat"); - if (config->GetKind_ObjFunc() == FORCE_X_COEFFICIENT) sprintf (buffer, "_cfx.dat"); - if (config->GetKind_ObjFunc() == FORCE_Y_COEFFICIENT) sprintf (buffer, "_cfy.dat"); - if (config->GetKind_ObjFunc() == FORCE_Z_COEFFICIENT) sprintf (buffer, "_cfz.dat"); - if (config->GetKind_ObjFunc() == TOTAL_HEATFLUX) sprintf (buffer, "_totheat.dat"); - if (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX) sprintf (buffer, "_maxheat.dat"); - if (config->GetKind_ObjFunc() == AVG_TOTAL_PRESSURE) sprintf (buffer, "_pt.dat"); - if (config->GetKind_ObjFunc() == MASS_FLOW_RATE) sprintf (buffer, "_mfr.dat"); + if (config->GetKind_ObjFunc() == DRAG_COEFFICIENT) SPRINTF (buffer, "_cd.dat"); + if (config->GetKind_ObjFunc() == LIFT_COEFFICIENT) SPRINTF (buffer, "_cl.dat"); + if (config->GetKind_ObjFunc() == SIDEFORCE_COEFFICIENT) SPRINTF (buffer, "_csf.dat"); + if (config->GetKind_ObjFunc() == INVERSE_DESIGN_PRESSURE) SPRINTF (buffer, "_invpress.dat"); + if (config->GetKind_ObjFunc() == INVERSE_DESIGN_HEATFLUX) SPRINTF (buffer, "_invheat.dat"); + if (config->GetKind_ObjFunc() == MOMENT_X_COEFFICIENT) SPRINTF (buffer, "_cmx.dat"); + if (config->GetKind_ObjFunc() == MOMENT_Y_COEFFICIENT) SPRINTF (buffer, "_cmy.dat"); + if (config->GetKind_ObjFunc() == MOMENT_Z_COEFFICIENT) SPRINTF (buffer, "_cmz.dat"); + if (config->GetKind_ObjFunc() == EFFICIENCY) SPRINTF (buffer, "_eff.dat"); + if (config->GetKind_ObjFunc() == FORCE_X_COEFFICIENT) SPRINTF (buffer, "_cfx.dat"); + if (config->GetKind_ObjFunc() == FORCE_Y_COEFFICIENT) SPRINTF (buffer, "_cfy.dat"); + if (config->GetKind_ObjFunc() == FORCE_Z_COEFFICIENT) SPRINTF (buffer, "_cfz.dat"); + if (config->GetKind_ObjFunc() == TOTAL_HEATFLUX) SPRINTF (buffer, "_totheat.dat"); + if (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX) SPRINTF (buffer, "_maxheat.dat"); + if (config->GetKind_ObjFunc() == AVG_TOTAL_PRESSURE) SPRINTF (buffer, "_pt.dat"); + if (config->GetKind_ObjFunc() == MASS_FLOW_RATE) SPRINTF (buffer, "_mfr.dat"); strcat(cstr, buffer); @@ -3699,8 +3699,8 @@ void CGridAdaptation::SetRestart_LinSolution(CConfig *config, CPhysicalGeometry } void CGridAdaptation::SetSensorElem(CGeometry *geometry, CConfig *config, unsigned long max_elem) { - double Max_Sensor, threshold; - double *Sensor = new double[geometry->GetnElem()]; + su2double Max_Sensor, threshold; + su2double *Sensor = new su2double[geometry->GetnElem()]; unsigned long ip_0, ip_1, ip_2, ip_3, iElem, nElem_real; /*--- Compute the the adaptation index at each element ---*/ diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 023660f8998..ac1811e4a91 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -53,7 +53,7 @@ void CVolumetricMovement::UpdateGridCoord(CGeometry *geometry, CConfig *config) unsigned short iDim; unsigned long iPoint, total_index; - double new_coord; + su2double new_coord; /*--- Update the grid coordinates using the solution of the linear system after grid deformation (LinSysSol contains the x, y, z displacements). ---*/ @@ -101,7 +101,7 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co unsigned long IterLinSol = 0, Smoothing_Iter, iNonlinear_Iter, MaxIter = 0, RestartIter = 50, Tot_Iter = 0; unsigned long iPoint, iDim; - double MinVolume, NumError, Tol_Factor, Residual = 0.0, Residual_Init = 0.0; + su2double MinVolume, NumError, Tol_Factor, Residual = 0.0, Residual_Init = 0.0; bool Screen_Output; bool fsi=config->GetFSI_Simulation(); @@ -268,8 +268,8 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co /*--- Local variables ---*/ - double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; - double TimeStep, GridVel = 0.0; + su2double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; + su2double TimeStep, GridVel = 0.0; /*--- Compute the velocity of each node in the volume mesh ---*/ @@ -311,10 +311,10 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co } -double CVolumetricMovement::Check_Grid(CGeometry *geometry) { +su2double CVolumetricMovement::Check_Grid(CGeometry *geometry) { unsigned long iElem, ElemCounter = 0, PointCorners[8]; - double Area = 0.0, Volume = 0.0, MaxArea = -1E22, MaxVolume = -1E22, MinArea = 1E22, MinVolume = 1E22, CoordCorners[8][3]; + su2double Area = 0.0, Volume = 0.0, MaxArea = -1E22, MaxVolume = -1E22, MinArea = 1E22, MinVolume = 1E22, CoordCorners[8][3]; unsigned short nNodes = 0, iNodes, iDim; bool RightVol = true; @@ -380,11 +380,11 @@ double CVolumetricMovement::Check_Grid(CGeometry *geometry) { #ifdef HAVE_MPI unsigned long ElemCounter_Local = ElemCounter; ElemCounter = 0; - double MaxVolume_Local = MaxVolume; MaxVolume = 0.0; - double MinVolume_Local = MinVolume; MinVolume = 0.0; - MPI_Allreduce(&ElemCounter_Local, &ElemCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MaxVolume_Local, &MaxVolume, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - MPI_Allreduce(&MinVolume_Local, &MinVolume, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); + su2double MaxVolume_Local = MaxVolume; MaxVolume = 0.0; + su2double MinVolume_Local = MinVolume; MinVolume = 0.0; + SU2_MPI::Allreduce(&ElemCounter_Local, &ElemCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MaxVolume_Local, &MaxVolume, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MinVolume_Local, &MinVolume, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); #endif if ((ElemCounter != 0) && (rank == MASTER_NODE)) @@ -397,7 +397,7 @@ double CVolumetricMovement::Check_Grid(CGeometry *geometry) { void CVolumetricMovement::ComputeDeforming_Wall_Distance(CGeometry *geometry, CConfig *config) { - double *coord, dist2, dist; + su2double *coord, dist2, dist; unsigned short iDim, iMarker; unsigned long iPoint, iVertex, nVertex_SolidWall; @@ -426,10 +426,10 @@ void CVolumetricMovement::ComputeDeforming_Wall_Distance(CGeometry *geometry, CC /*--- Allocate an array to hold boundary node coordinates ---*/ - double **Coord_bound; - Coord_bound = new double* [nVertex_SolidWall]; + su2double **Coord_bound; + Coord_bound = new su2double* [nVertex_SolidWall]; for (iVertex = 0; iVertex < nVertex_SolidWall; iVertex++) - Coord_bound[iVertex] = new double [nDim]; + Coord_bound[iVertex] = new su2double [nDim]; /*--- Retrieve and store the coordinates of the deforming boundary nodes ---*/ @@ -474,7 +474,7 @@ void CVolumetricMovement::ComputeDeforming_Wall_Distance(CGeometry *geometry, CC /*--- Variables and buffers needed for MPI ---*/ int iProcessor, nProcessor; - double local_min_dist; + su2double local_min_dist; MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); unsigned long nLocalVertex_NS = 0, nGlobalVertex_NS = 0, MaxLocalVertex_NS = 0; @@ -494,15 +494,15 @@ void CVolumetricMovement::ComputeDeforming_Wall_Distance(CGeometry *geometry, CC partition, and the number of deforming nodes on each partition. ---*/ Buffer_Send_nVertex[0] = nLocalVertex_NS; - MPI_Allreduce(&nLocalVertex_NS, &nGlobalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_NS, &MaxLocalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NS, &nGlobalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NS, &MaxLocalVertex_NS, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); /*--- Create and initialize to zero some buffers to hold the coordinates of the boundary nodes that are communicated from each partition (all-to-all). ---*/ - double *Buffer_Send_Coord = new double [MaxLocalVertex_NS*nDim]; - double *Buffer_Receive_Coord = new double [nProcessor*MaxLocalVertex_NS*nDim]; + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_NS*nDim]; + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_NS*nDim]; unsigned long nBuffer = MaxLocalVertex_NS*nDim; for (iVertex = 0; iVertex < MaxLocalVertex_NS; iVertex++) @@ -523,7 +523,7 @@ void CVolumetricMovement::ComputeDeforming_Wall_Distance(CGeometry *geometry, CC nVertex_SolidWall++; } - MPI_Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); /*--- Loop over all interior mesh nodes on the local partition and compute the distances to each of the deforming boundary nodes in the entire mesh. @@ -554,21 +554,21 @@ void CVolumetricMovement::ComputeDeforming_Wall_Distance(CGeometry *geometry, CC } -double CVolumetricMovement::SetFEAMethodContributions_Elem(CGeometry *geometry, CConfig *config) { +su2double CVolumetricMovement::SetFEAMethodContributions_Elem(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, nNodes = 0, iNodes, StiffMatrix_nElem = 0; unsigned long Point_0, Point_1, iElem, iEdge, ElemCounter = 0, PointCorners[8]; - double *Coord_0, *Coord_1, Length, MinLength = 1E10, **StiffMatrix_Elem = NULL, Scale, CoordCorners[8][3]; - double *Edge_Vector = new double [nDim]; + su2double *Coord_0, *Coord_1, Length, MinLength = 1E10, **StiffMatrix_Elem = NULL, Scale, CoordCorners[8][3]; + su2double *Edge_Vector = new su2double [nDim]; /*--- Allocate maximum size (rectangle and hexahedron) ---*/ if (nDim == 2) StiffMatrix_nElem = 8; else StiffMatrix_nElem = 24; - StiffMatrix_Elem = new double* [StiffMatrix_nElem]; + StiffMatrix_Elem = new su2double* [StiffMatrix_nElem]; for (iVar = 0; iVar < StiffMatrix_nElem; iVar++) - StiffMatrix_Elem[iVar] = new double [StiffMatrix_nElem]; + StiffMatrix_Elem[iVar] = new su2double [StiffMatrix_nElem]; /*--- Check the minimum edge length in the entire mesh. ---*/ @@ -631,7 +631,7 @@ double CVolumetricMovement::SetFEAMethodContributions_Elem(CGeometry *geometry, #ifdef HAVE_MPI unsigned long ElemCounter_Local = ElemCounter; ElemCounter = 0; - MPI_Allreduce(&ElemCounter_Local, &ElemCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&ElemCounter_Local, &ElemCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif /*--- Deallocate memory and exit ---*/ @@ -646,18 +646,18 @@ double CVolumetricMovement::SetFEAMethodContributions_Elem(CGeometry *geometry, if (ElemCounter == 0) MinLength = Scale; #ifdef HAVE_MPI - double MinLength_Local = MinLength; MinLength = 0.0; - MPI_Allreduce(&MinLength_Local, &MinLength, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); + su2double MinLength_Local = MinLength; MinLength = 0.0; + SU2_MPI::Allreduce(&MinLength_Local, &MinLength, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); #endif return MinLength; } -double CVolumetricMovement::ShapeFunc_Triangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -714,11 +714,11 @@ double CVolumetricMovement::ShapeFunc_Triangle(double Xi, double Eta, double Coo } -double CVolumetricMovement::ShapeFunc_Rectangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -777,11 +777,11 @@ double CVolumetricMovement::ShapeFunc_Rectangle(double Xi, double Eta, double Co } -double CVolumetricMovement::ShapeFunc_Tetra(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -847,11 +847,11 @@ double CVolumetricMovement::ShapeFunc_Tetra(double Xi, double Eta, double Zeta, } -double CVolumetricMovement::ShapeFunc_Pyram(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -935,11 +935,11 @@ double CVolumetricMovement::ShapeFunc_Pyram(double Xi, double Eta, double Zeta, } -double CVolumetricMovement::ShapeFunc_Prism(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -1009,11 +1009,11 @@ double CVolumetricMovement::ShapeFunc_Prism(double Xi, double Eta, double Zeta, } -double CVolumetricMovement::ShapeFunc_Hexa(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -1109,11 +1109,11 @@ double CVolumetricMovement::ShapeFunc_Hexa(double Xi, double Eta, double Zeta, d } -double CVolumetricMovement::GetTriangle_Area(double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetTriangle_Area(su2double CoordCorners[8][3]) { unsigned short iDim; - double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}; - double *Coord_0, *Coord_1, *Coord_2, Area; + su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}; + su2double *Coord_0, *Coord_1, *Coord_2, Area; Coord_0 = CoordCorners[0]; Coord_1 = CoordCorners[1]; @@ -1130,11 +1130,11 @@ double CVolumetricMovement::GetTriangle_Area(double CoordCorners[8][3]) { } -double CVolumetricMovement::GetRectangle_Area(double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetRectangle_Area(su2double CoordCorners[8][3]) { unsigned short iDim; - double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}; - double *Coord_0, *Coord_1, *Coord_2, Area; + su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}; + su2double *Coord_0, *Coord_1, *Coord_2, Area; Coord_0 = CoordCorners[0]; Coord_1 = CoordCorners[1]; @@ -1162,11 +1162,11 @@ double CVolumetricMovement::GetRectangle_Area(double CoordCorners[8][3]) { } -double CVolumetricMovement::GetTetra_Volume(double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetTetra_Volume(su2double CoordCorners[8][3]) { unsigned short iDim; - double *Coord_0, *Coord_1, *Coord_2, *Coord_3; - double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; + su2double *Coord_0, *Coord_1, *Coord_2, *Coord_3; + su2double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; Coord_0 = CoordCorners[0]; Coord_1 = CoordCorners[1]; @@ -1189,11 +1189,11 @@ double CVolumetricMovement::GetTetra_Volume(double CoordCorners[8][3]) { } -double CVolumetricMovement::GetPyram_Volume(double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetPyram_Volume(su2double CoordCorners[8][3]) { unsigned short iDim; - double *Coord_0, *Coord_1, *Coord_2, *Coord_3; - double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; + su2double *Coord_0, *Coord_1, *Coord_2, *Coord_3; + su2double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; Coord_0 = CoordCorners[0]; Coord_1 = CoordCorners[1]; @@ -1233,11 +1233,11 @@ double CVolumetricMovement::GetPyram_Volume(double CoordCorners[8][3]) { } -double CVolumetricMovement::GetPrism_Volume(double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetPrism_Volume(su2double CoordCorners[8][3]) { unsigned short iDim; - double *Coord_0, *Coord_1, *Coord_2, *Coord_3; - double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; + su2double *Coord_0, *Coord_1, *Coord_2, *Coord_3; + su2double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; Coord_0 = CoordCorners[0]; Coord_1 = CoordCorners[2]; @@ -1294,11 +1294,11 @@ double CVolumetricMovement::GetPrism_Volume(double CoordCorners[8][3]) { } -double CVolumetricMovement::GetHexa_Volume(double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetHexa_Volume(su2double CoordCorners[8][3]) { unsigned short iDim; - double *Coord_0, *Coord_1, *Coord_2, *Coord_3; - double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; + su2double *Coord_0, *Coord_1, *Coord_2, *Coord_3; + su2double r1[3] = {0.0,0.0,0.0}, r2[3] = {0.0,0.0,0.0}, r3[3] = {0.0,0.0,0.0}, CrossProduct[3] = {0.0,0.0,0.0}, Volume; Coord_0 = CoordCorners[0]; Coord_1 = CoordCorners[1]; @@ -1389,14 +1389,14 @@ double CVolumetricMovement::GetHexa_Volume(double CoordCorners[8][3]) { } -void CVolumetricMovement::SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *config, double **StiffMatrix_Elem, unsigned long PointCorners[8], double CoordCorners[8][3], unsigned short nNodes, double scale) { +void CVolumetricMovement::SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3], unsigned short nNodes, su2double scale) { - double B_Matrix[3][8], D_Matrix[3][3], Aux_Matrix[8][3]; - double Xi = 0.0, Eta = 0.0, Det = 0.0, E, Lambda = 0.0, Nu, Mu = 0.0, Avg_Wall_Dist; + su2double B_Matrix[3][8], D_Matrix[3][3], Aux_Matrix[8][3]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0, E, Lambda = 0.0, Nu, Mu = 0.0, Avg_Wall_Dist; unsigned short iNode, jNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[4][3], Weight[4]; + su2double Location[4][3], Weight[4]; unsigned short nVar = geometry->GetnDim(); for (iVar = 0; iVar < nNodes*nVar; iVar++) { @@ -1465,7 +1465,7 @@ void CVolumetricMovement::SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *con case WALL_DISTANCE: Avg_Wall_Dist = 0.0; for (jNode = 0; jNode < nNodes; jNode++) { - Avg_Wall_Dist += geometry->node[PointCorners[jNode]]->GetWall_Distance()/((double)nNodes); + Avg_Wall_Dist += geometry->node[PointCorners[jNode]]->GetWall_Distance()/((su2double)nNodes); } E = scale / (Weight[iGauss] * Avg_Wall_Dist); Mu = E; @@ -1513,15 +1513,15 @@ void CVolumetricMovement::SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *con } -void CVolumetricMovement::SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *config, double **StiffMatrix_Elem, unsigned long PointCorners[8], double CoordCorners[8][3], unsigned short nNodes, double scale) { +void CVolumetricMovement::SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3], unsigned short nNodes, su2double scale) { - double B_Matrix[6][24], D_Matrix[6][6] = {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + su2double B_Matrix[6][24], D_Matrix[6][6] = {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}}, Aux_Matrix[24][6]; - double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0, Mu = 0.0, E = 0.0, Lambda = 0.0, Nu = 0.0, Avg_Wall_Dist; + su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0, Mu = 0.0, E = 0.0, Lambda = 0.0, Nu = 0.0, Avg_Wall_Dist; unsigned short iNode, jNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[8][3], Weight[8]; + su2double Location[8][3], Weight[8]; unsigned short nVar = geometry->GetnDim(); for (iVar = 0; iVar < nNodes*nVar; iVar++) { @@ -1626,7 +1626,7 @@ void CVolumetricMovement::SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *con case WALL_DISTANCE: Avg_Wall_Dist = 0.0; for (jNode = 0; jNode < nNodes; jNode++) { - Avg_Wall_Dist += geometry->node[PointCorners[jNode]]->GetWall_Distance()/((double)nNodes); + Avg_Wall_Dist += geometry->node[PointCorners[jNode]]->GetWall_Distance()/((su2double)nNodes); } E = scale / (Weight[iGauss] * Avg_Wall_Dist); Mu = E; @@ -1677,16 +1677,16 @@ void CVolumetricMovement::SetFEA_StiffMatrix3D(CGeometry *geometry, CConfig *con } -void CVolumetricMovement::AddFEA_StiffMatrix(CGeometry *geometry, double **StiffMatrix_Elem, unsigned long PointCorners[8], unsigned short nNodes) { +void CVolumetricMovement::AddFEA_StiffMatrix(CGeometry *geometry, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], unsigned short nNodes) { unsigned short iVar, jVar, iDim, jDim; unsigned short nVar = geometry->GetnDim(); - double **StiffMatrix_Node; - StiffMatrix_Node = new double* [nVar]; + su2double **StiffMatrix_Node; + StiffMatrix_Node = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - StiffMatrix_Node[iVar] = new double [nVar]; + StiffMatrix_Node[iVar] = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) for (jVar = 0; jVar < nVar; jVar++) @@ -1721,7 +1721,7 @@ void CVolumetricMovement::SetBoundaryDisplacements(CGeometry *geometry, CConfig unsigned short iDim, nDim = geometry->GetnDim(), iMarker, axis = 0; unsigned long iPoint, total_index, iVertex; - double *VarCoord, MeanCoord[3] = {0.0,0.0,0.0}, VarIncrement = 1.0; + su2double *VarCoord, MeanCoord[3] = {0.0,0.0,0.0}, VarIncrement = 1.0; /*--- Get the SU2 module. SU2_CFD will use this routine for dynamically deforming meshes (MARKER_MOVING), while SU2_DEF will use it for deforming @@ -1733,7 +1733,7 @@ void CVolumetricMovement::SetBoundaryDisplacements(CGeometry *geometry, CConfig increments and solve the grid deformation equations iteratively with successive small deformations. ---*/ - VarIncrement = 1.0/((double)config->GetGridDef_Nonlinear_Iter()); + VarIncrement = 1.0/((su2double)config->GetGridDef_Nonlinear_Iter()); /*--- As initialization, set to zero displacements of all the surfaces except the symmetry plane and the receive boundaries. ---*/ @@ -1839,10 +1839,10 @@ void CVolumetricMovement::SetDomainDisplacements(CGeometry *geometry, CConfig *c unsigned short iDim, nDim = geometry->GetnDim(); unsigned long iPoint, total_index; - double *Coord, *MinCoordValues, *MaxCoordValues, *Hold_GridFixed_Coord; + su2double *Coord, *MinCoordValues, *MaxCoordValues, *Hold_GridFixed_Coord; - MinCoordValues = new double [nDim]; - MaxCoordValues = new double [nDim]; + MinCoordValues = new su2double [nDim]; + MaxCoordValues = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) { MinCoordValues[iDim] = 0.0; @@ -1889,11 +1889,11 @@ void CVolumetricMovement::Rigid_Rotation(CGeometry *geometry, CConfig *config, /*--- Local variables ---*/ unsigned short iDim, nDim; unsigned long iPoint; - double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, Lref, dt, Center_Moment[3] = {0.0,0.0,0.0}; - double *GridVel, newGridVel[3] = {0.0,0.0,0.0}; - double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; - double dtheta, dphi, dpsi, cosTheta, sinTheta; - double cosPhi, sinPhi, cosPsi, sinPsi; + su2double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, Lref, dt, Center_Moment[3] = {0.0,0.0,0.0}; + su2double *GridVel, newGridVel[3] = {0.0,0.0,0.0}; + su2double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; + su2double dtheta, dphi, dpsi, cosTheta, sinTheta; + su2double cosPhi, sinPhi, cosPsi, sinPsi; bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); bool adjoint = config->GetAdjoint(); @@ -1910,7 +1910,7 @@ void CVolumetricMovement::Rigid_Rotation(CGeometry *geometry, CConfig *config, /*--- For the unsteady adjoint, use reverse time ---*/ if (adjoint) { /*--- Set the first adjoint mesh position to the final direct one ---*/ - if (iter == 0) dt = ((double)config->GetnExtIter()-1)*dt; + if (iter == 0) dt = ((su2double)config->GetnExtIter()-1)*dt; /*--- Reverse the rotation direction for the adjoint ---*/ else dt = -1.0*dt; } else { @@ -1930,8 +1930,8 @@ void CVolumetricMovement::Rigid_Rotation(CGeometry *geometry, CConfig *config, /*-- Set dt for time-spectral cases ---*/ if (time_spectral) { /*--- period of oscillation & compute time interval using nTimeInstances ---*/ - double period = config->GetTimeSpectral_Period(); - dt = period * (double)iter/(double)(config->GetnTimeInstances()); + su2double period = config->GetTimeSpectral_Period(); + dt = period * (su2double)iter/(su2double)(config->GetnTimeInstances()); } /*--- Compute delta change in the angle about the x, y, & z axes. ---*/ @@ -2056,14 +2056,14 @@ void CVolumetricMovement::Rigid_Pitching(CGeometry *geometry, CConfig *config, u #endif /*--- Local variables ---*/ - double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, + su2double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, Ampl[3] = {0.0,0.0,0.0}, Phase[3] = {0.0,0.0,0.0}; - double Lref, deltaT, alphaDot[3], *GridVel, newGridVel[3] = {0.0,0.0,0.0}; - double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; - double dtheta, dphi, dpsi, cosTheta, sinTheta; - double cosPhi, sinPhi, cosPsi, sinPsi; - double time_new, time_old; - double DEG2RAD = PI_NUMBER/180.0; + su2double Lref, deltaT, alphaDot[3], *GridVel, newGridVel[3] = {0.0,0.0,0.0}; + su2double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; + su2double dtheta, dphi, dpsi, cosTheta, sinTheta; + su2double cosPhi, sinPhi, cosPsi, sinPsi; + su2double time_new, time_old; + su2double DEG2RAD = PI_NUMBER/180.0; unsigned short iDim; unsigned short nDim = geometry->GetnDim(); unsigned long iPoint; @@ -2095,8 +2095,8 @@ void CVolumetricMovement::Rigid_Pitching(CGeometry *geometry, CConfig *config, u if (time_spectral) { /*--- period of oscillation & compute time interval using nTimeInstances ---*/ - double period = config->GetTimeSpectral_Period(); - deltaT = period/(double)(config->GetnTimeInstances()); + su2double period = config->GetTimeSpectral_Period(); + deltaT = period/(su2double)(config->GetnTimeInstances()); } /*--- Compute delta time based on physical time step ---*/ @@ -2105,18 +2105,18 @@ void CVolumetricMovement::Rigid_Pitching(CGeometry *geometry, CConfig *config, u physical time, so perform mesh motion in reverse. ---*/ unsigned long nFlowIter = config->GetnExtIter(); unsigned long directIter = nFlowIter - iter - 1; - time_new = static_cast(directIter)*deltaT; + time_new = static_cast(directIter)*deltaT; time_old = time_new; - if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; + if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; } else { /*--- Forward time for the direct problem ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (time_spectral) { /*--- For time-spectral, begin movement from the zero position ---*/ time_old = 0.0; } else { time_old = time_new; - if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; + if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; } } @@ -2221,9 +2221,9 @@ void CVolumetricMovement::Rigid_Plunging(CGeometry *geometry, CConfig *config, u #endif /*--- Local variables ---*/ - double deltaX[3], newCoord[3], Center[3], *Coord, Omega[3], Ampl[3], Lref; - double *GridVel, newGridVel[3], xDot[3]; - double deltaT, time_new, time_old; + su2double deltaX[3], newCoord[3], Center[3], *Coord, Omega[3], Ampl[3], Lref; + su2double *GridVel, newGridVel[3], xDot[3]; + su2double deltaT, time_new, time_old; unsigned short iDim, nDim = geometry->GetnDim(); unsigned long iPoint; bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); @@ -2251,8 +2251,8 @@ void CVolumetricMovement::Rigid_Plunging(CGeometry *geometry, CConfig *config, u if (time_spectral) { /*--- period of oscillation & time interval using nTimeInstances ---*/ - double period = config->GetTimeSpectral_Period(); - deltaT = period/(double)(config->GetnTimeInstances()); + su2double period = config->GetTimeSpectral_Period(); + deltaT = period/(su2double)(config->GetnTimeInstances()); } /*--- Compute delta time based on physical time step ---*/ @@ -2261,18 +2261,18 @@ void CVolumetricMovement::Rigid_Plunging(CGeometry *geometry, CConfig *config, u physical time, so perform mesh motion in reverse. ---*/ unsigned long nFlowIter = config->GetnExtIter(); unsigned long directIter = nFlowIter - iter - 1; - time_new = static_cast(directIter)*deltaT; + time_new = static_cast(directIter)*deltaT; time_old = time_new; - if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; + if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; } else { /*--- Forward time for the direct problem ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (time_spectral) { /*--- For time-spectral, begin movement from the zero position ---*/ time_old = 0.0; } else { time_old = time_new; - if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; + if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; } } @@ -2363,9 +2363,9 @@ void CVolumetricMovement::Rigid_Translation(CGeometry *geometry, CConfig *config #endif /*--- Local variables ---*/ - double deltaX[3], newCoord[3], Center[3], *Coord; - double xDot[3]; - double deltaT, time_new, time_old; + su2double deltaX[3], newCoord[3], Center[3], *Coord; + su2double xDot[3]; + su2double deltaT, time_new, time_old; unsigned short iDim, nDim = geometry->GetnDim(); unsigned long iPoint; bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); @@ -2389,8 +2389,8 @@ void CVolumetricMovement::Rigid_Translation(CGeometry *geometry, CConfig *config if (time_spectral) { /*--- period of oscillation & time interval using nTimeInstances ---*/ - double period = config->GetTimeSpectral_Period(); - deltaT = period/(double)(config->GetnTimeInstances()); + su2double period = config->GetTimeSpectral_Period(); + deltaT = period/(su2double)(config->GetnTimeInstances()); } /*--- Compute delta time based on physical time step ---*/ @@ -2399,18 +2399,18 @@ void CVolumetricMovement::Rigid_Translation(CGeometry *geometry, CConfig *config physical time, so perform mesh motion in reverse. ---*/ unsigned long nFlowIter = config->GetnExtIter(); unsigned long directIter = nFlowIter - iter - 1; - time_new = static_cast(directIter)*deltaT; + time_new = static_cast(directIter)*deltaT; time_old = time_new; - if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; + if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; } else { /*--- Forward time for the direct problem ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (time_spectral) { /*--- For time-spectral, begin movement from the zero position ---*/ time_old = 0.0; } else { time_old = time_new; - if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; + if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; } } @@ -2720,7 +2720,7 @@ void CSurfaceMovement::SetSurface_Deformation(CGeometry *geometry, CConfig *conf Surface_File.open(filename.c_str(), ios::out); Surface_File.precision(15); - unsigned long iMarker, jPoint, GlobalIndex, iVertex; double *Coords; + unsigned long iMarker, jPoint, GlobalIndex, iVertex; su2double *Coords; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_DV(iMarker) == YES) { for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { @@ -2807,7 +2807,7 @@ void CSurfaceMovement::CopyBoundary(CGeometry *geometry, CConfig *config) { unsigned short iMarker; unsigned long iVertex, iPoint; - double *Coord; + su2double *Coord; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { @@ -2823,7 +2823,7 @@ void CSurfaceMovement::SetParametricCoord(CGeometry *geometry, CConfig *config, unsigned short iMarker, iDim, iOrder, jOrder, kOrder, lOrder, mOrder, nOrder; unsigned long iVertex, iPoint, TotalVertex = 0; - double *CartCoordNew, *ParamCoord, CartCoord[3], ParamCoordGuess[3], MaxDiff, my_MaxDiff = 0.0, Diff, *Coord; + su2double *CartCoordNew, *ParamCoord, CartCoord[3], ParamCoordGuess[3], MaxDiff, my_MaxDiff = 0.0, Diff, *Coord; int rank; unsigned short nDim = geometry->GetnDim(); @@ -2931,7 +2931,7 @@ void CSurfaceMovement::SetParametricCoord(CGeometry *geometry, CConfig *config, } #ifdef HAVE_MPI - MPI_Allreduce(&my_MaxDiff, &MaxDiff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&my_MaxDiff, &MaxDiff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #else MaxDiff = my_MaxDiff; #endif @@ -2948,7 +2948,7 @@ void CSurfaceMovement::SetParametricCoord(CGeometry *geometry, CConfig *config, void CSurfaceMovement::SetParametricCoordCP(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBoxParent, CFreeFormDefBox *FFDBoxChild) { unsigned short iOrder, jOrder, kOrder; - double *CartCoord, *ParamCoord, ParamCoordGuess[3]; + su2double *CartCoord, *ParamCoord, ParamCoordGuess[3]; int rank; #ifdef HAVE_MPI @@ -2973,7 +2973,7 @@ void CSurfaceMovement::SetParametricCoordCP(CGeometry *geometry, CConfig *config void CSurfaceMovement::GetCartesianCoordCP(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBoxParent, CFreeFormDefBox *FFDBoxChild) { unsigned short iOrder, jOrder, kOrder, iDim; - double *CartCoord, *ParamCoord; + su2double *CartCoord, *ParamCoord; int rank; #ifdef HAVE_MPI @@ -3006,7 +3006,7 @@ void CSurfaceMovement::GetCartesianCoordCP(CGeometry *geometry, CConfig *config, void CSurfaceMovement::CheckFFDIntersections(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox) { - double *Coord_0, *Coord_1; + su2double *Coord_0, *Coord_1; unsigned short iMarker, iNode, jNode, lDegree, mDegree, nDegree; unsigned long iElem, iPoint, jPoint; @@ -3023,63 +3023,63 @@ void CSurfaceMovement::CheckFFDIntersections(CGeometry *geometry, CConfig *confi /*--- Check intersection with plane i=0 ---*/ - double *IPlane_Coord_0_A = FFDBox->GetCoordControlPoints(0, 0, 0); - double *IPlane_Coord_1_A = FFDBox->GetCoordControlPoints(0, 0, nDegree); - double *IPlane_Coord_2_A = FFDBox->GetCoordControlPoints(0, mDegree, 0); + su2double *IPlane_Coord_0_A = FFDBox->GetCoordControlPoints(0, 0, 0); + su2double *IPlane_Coord_1_A = FFDBox->GetCoordControlPoints(0, 0, nDegree); + su2double *IPlane_Coord_2_A = FFDBox->GetCoordControlPoints(0, mDegree, 0); - double *IPlane_Coord_0_A_ = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); - double *IPlane_Coord_1_A_ = FFDBox->GetCoordControlPoints(0, mDegree, 0); - double *IPlane_Coord_2_A_ = FFDBox->GetCoordControlPoints(0, 0, nDegree); + su2double *IPlane_Coord_0_A_ = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); + su2double *IPlane_Coord_1_A_ = FFDBox->GetCoordControlPoints(0, mDegree, 0); + su2double *IPlane_Coord_2_A_ = FFDBox->GetCoordControlPoints(0, 0, nDegree); /*--- Check intersection with plane i=lDegree ---*/ - double *IPlane_Coord_0_B = FFDBox->GetCoordControlPoints(lDegree, 0, 0); - double *IPlane_Coord_1_B = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); - double *IPlane_Coord_2_B = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); + su2double *IPlane_Coord_0_B = FFDBox->GetCoordControlPoints(lDegree, 0, 0); + su2double *IPlane_Coord_1_B = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); + su2double *IPlane_Coord_2_B = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); - double *IPlane_Coord_0_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, nDegree); - double *IPlane_Coord_1_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); - double *IPlane_Coord_2_B_ = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); + su2double *IPlane_Coord_0_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, nDegree); + su2double *IPlane_Coord_1_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); + su2double *IPlane_Coord_2_B_ = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); /*--- Check intersection with plane j=0 ---*/ - double *JPlane_Coord_0_A = FFDBox->GetCoordControlPoints(0, 0, 0); - double *JPlane_Coord_1_A = FFDBox->GetCoordControlPoints(0, 0, nDegree); - double *JPlane_Coord_2_A = FFDBox->GetCoordControlPoints(lDegree, 0, 0); + su2double *JPlane_Coord_0_A = FFDBox->GetCoordControlPoints(0, 0, 0); + su2double *JPlane_Coord_1_A = FFDBox->GetCoordControlPoints(0, 0, nDegree); + su2double *JPlane_Coord_2_A = FFDBox->GetCoordControlPoints(lDegree, 0, 0); - double *JPlane_Coord_0_A_ = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); - double *JPlane_Coord_1_A_ = FFDBox->GetCoordControlPoints(lDegree, 0, 0); - double *JPlane_Coord_2_A_ = FFDBox->GetCoordControlPoints(0, 0, nDegree); + su2double *JPlane_Coord_0_A_ = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); + su2double *JPlane_Coord_1_A_ = FFDBox->GetCoordControlPoints(lDegree, 0, 0); + su2double *JPlane_Coord_2_A_ = FFDBox->GetCoordControlPoints(0, 0, nDegree); /*--- Check intersection with plane j=mDegree ---*/ - double *JPlane_Coord_0_B = FFDBox->GetCoordControlPoints(0, mDegree, 0); - double *JPlane_Coord_1_B = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); - double *JPlane_Coord_2_B = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); + su2double *JPlane_Coord_0_B = FFDBox->GetCoordControlPoints(0, mDegree, 0); + su2double *JPlane_Coord_1_B = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); + su2double *JPlane_Coord_2_B = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); - double *JPlane_Coord_0_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, nDegree); - double *JPlane_Coord_1_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); - double *JPlane_Coord_2_B_ = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); + su2double *JPlane_Coord_0_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, nDegree); + su2double *JPlane_Coord_1_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); + su2double *JPlane_Coord_2_B_ = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); /*--- Check intersection with plane k=0 ---*/ - double *KPlane_Coord_0_A = FFDBox->GetCoordControlPoints(0, 0, 0); - double *KPlane_Coord_1_A = FFDBox->GetCoordControlPoints(0, mDegree, 0); - double *KPlane_Coord_2_A = FFDBox->GetCoordControlPoints(lDegree, 0, 0); + su2double *KPlane_Coord_0_A = FFDBox->GetCoordControlPoints(0, 0, 0); + su2double *KPlane_Coord_1_A = FFDBox->GetCoordControlPoints(0, mDegree, 0); + su2double *KPlane_Coord_2_A = FFDBox->GetCoordControlPoints(lDegree, 0, 0); - double *KPlane_Coord_0_A_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); - double *KPlane_Coord_1_A_ = FFDBox->GetCoordControlPoints(lDegree, 0, 0); - double *KPlane_Coord_2_A_ = FFDBox->GetCoordControlPoints(0, mDegree, 0); + su2double *KPlane_Coord_0_A_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, 0); + su2double *KPlane_Coord_1_A_ = FFDBox->GetCoordControlPoints(lDegree, 0, 0); + su2double *KPlane_Coord_2_A_ = FFDBox->GetCoordControlPoints(0, mDegree, 0); /*--- Check intersection with plane k=nDegree ---*/ - double *KPlane_Coord_0_B = FFDBox->GetCoordControlPoints(0, 0, nDegree); - double *KPlane_Coord_1_B = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); - double *KPlane_Coord_2_B = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); + su2double *KPlane_Coord_0_B = FFDBox->GetCoordControlPoints(0, 0, nDegree); + su2double *KPlane_Coord_1_B = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); + su2double *KPlane_Coord_2_B = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); - double *KPlane_Coord_0_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, nDegree); - double *KPlane_Coord_1_B_ = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); - double *KPlane_Coord_2_B_ = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); + su2double *KPlane_Coord_0_B_ = FFDBox->GetCoordControlPoints(lDegree, mDegree, nDegree); + su2double *KPlane_Coord_1_B_ = FFDBox->GetCoordControlPoints(lDegree, 0, nDegree); + su2double *KPlane_Coord_2_B_ = FFDBox->GetCoordControlPoints(0, mDegree, nDegree); /*--- Loop over all the grid triangles ---*/ @@ -3155,9 +3155,9 @@ void CSurfaceMovement::CheckFFDIntersections(CGeometry *geometry, CConfig *confi #ifdef HAVE_MPI - /*--- Add MPI_Allreduce information using all the nodes ---*/ + /*--- Add SU2_MPI::Allreduce information using all the nodes ---*/ - MPI_Allreduce(&MyCode, &Code, 6, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyCode, &Code, 6, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); #else @@ -3223,7 +3223,7 @@ void CSurfaceMovement::CheckFFDIntersections(CGeometry *geometry, CConfig *confi void CSurfaceMovement::UpdateParametricCoord(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox) { unsigned short iMarker, iDim; unsigned long iVertex, iPoint, iSurfacePoints; - double CartCoord[3], *CartCoordNew, *CartCoordOld, *ParamCoord, *var_coord, ParamCoordGuess[3], MaxDiff, + su2double CartCoord[3], *CartCoordNew, *CartCoordOld, *ParamCoord, *var_coord, ParamCoordGuess[3], MaxDiff, my_MaxDiff = 0.0, Diff; int rank; @@ -3288,7 +3288,7 @@ void CSurfaceMovement::UpdateParametricCoord(CGeometry *geometry, CConfig *confi } #ifdef HAVE_MPI - MPI_Allreduce(&my_MaxDiff, &MaxDiff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&my_MaxDiff, &MaxDiff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #else MaxDiff = my_MaxDiff; #endif @@ -3300,7 +3300,7 @@ void CSurfaceMovement::UpdateParametricCoord(CGeometry *geometry, CConfig *confi void CSurfaceMovement::SetCartesianCoord(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iFFDBox) { - double *CartCoordNew, Diff, my_MaxDiff = 0.0, MaxDiff, + su2double *CartCoordNew, Diff, my_MaxDiff = 0.0, MaxDiff, *ParamCoord, VarCoord[3] = {0.0, 0.0, 0.0}, CartCoordOld[3] = {0.0, 0.0, 0.0}; unsigned short iMarker, iDim; unsigned long iVertex, iPoint, iSurfacePoints; @@ -3369,7 +3369,7 @@ void CSurfaceMovement::SetCartesianCoord(CGeometry *geometry, CConfig *config, C } #ifdef HAVE_MPI - MPI_Allreduce(&my_MaxDiff, &MaxDiff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&my_MaxDiff, &MaxDiff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #else MaxDiff = my_MaxDiff; #endif @@ -3383,7 +3383,7 @@ void CSurfaceMovement::SetCartesianCoord(CGeometry *geometry, CConfig *config, C void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { - double movement[3], Ampl; + su2double movement[3], Ampl; unsigned short index[3], i, j; string design_FFDBox; @@ -3404,31 +3404,31 @@ void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, C movement[1] = config->GetParamDV(iDV, 4)*Ampl; movement[2] = 0.0; - index[0] = int(config->GetParamDV(iDV, 1)); - index[1] = int(config->GetParamDV(iDV, 2)); + index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); + index[1] = SU2_TYPE::Int(config->GetParamDV(iDV, 2)); /*--- Lower surface ---*/ index[2] = 0; - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1)) { for (j = 0; j < FFDBox->GetmOrder(); j++) { index[1] = j; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; for (j = 0; j < FFDBox->GetmOrder(); j++) { @@ -3437,8 +3437,8 @@ void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, C } } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1)) { FFDBox->SetControlPoints(index, movement); } @@ -3448,24 +3448,24 @@ void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, C index[2] = 1; - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1)) { for (j = 0; j < FFDBox->GetmOrder(); j++) { index[1] = j; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; for (j = 0; j < FFDBox->GetmOrder(); j++) { @@ -3474,8 +3474,8 @@ void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, C } } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1)) { FFDBox->SetControlPoints(index, movement); } @@ -3486,7 +3486,7 @@ void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, C void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { - double movement[3], Ampl; + su2double movement[3], Ampl; unsigned short index[3], i, j, k, iPlane; string design_FFDBox; @@ -3507,9 +3507,9 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre movement[1] = config->GetParamDV(iDV, 5)*Ampl; movement[2] = config->GetParamDV(iDV, 6)*Ampl; - index[0] = int(config->GetParamDV(iDV, 1)); - index[1] = int(config->GetParamDV(iDV, 2)); - index[2] = int(config->GetParamDV(iDV, 3)); + index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); + index[1] = SU2_TYPE::Int(config->GetParamDV(iDV, 2)); + index[2] = SU2_TYPE::Int(config->GetParamDV(iDV, 3)); /*--- Check that it is possible to move the control point ---*/ @@ -3525,36 +3525,36 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre if (index[2] == FFDBox->Get_Fix_KPlane(iPlane)) return; } - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) != -1) && - (int(config->GetParamDV(iDV, 3)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) != -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) == -1) && - (int(config->GetParamDV(iDV, 3)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) != -1)) { for (j = 0; j < FFDBox->GetmOrder(); j++) { index[1] = j; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) != -1) && - (int(config->GetParamDV(iDV, 3)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) == -1)) { for (k = 0; k < FFDBox->GetnOrder(); k++) { index[2] = k; FFDBox->SetControlPoints(index, movement); } } - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) == -1) && - (int(config->GetParamDV(iDV, 3)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) != -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; for (j = 0; j < FFDBox->GetmOrder(); j++) { @@ -3564,9 +3564,9 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) == -1) && - (int(config->GetParamDV(iDV, 3)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) == -1)) { for (j = 0; j < FFDBox->GetmOrder(); j++) { index[1] = j; for (k = 0; k < FFDBox->GetnOrder(); k++) { @@ -3576,9 +3576,9 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre } } - if ((int(config->GetParamDV(iDV, 1)) == -1) && - (int(config->GetParamDV(iDV, 2)) != -1) && - (int(config->GetParamDV(iDV, 3)) == -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) == -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) == -1)) { for (i = 0; i < FFDBox->GetlOrder(); i++) { index[0] = i; for (k = 0; k < FFDBox->GetnOrder(); k++) { @@ -3588,9 +3588,9 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre } } - if ((int(config->GetParamDV(iDV, 1)) != -1) && - (int(config->GetParamDV(iDV, 2)) != -1) && - (int(config->GetParamDV(iDV, 3)) != -1)) { + if ((SU2_TYPE::Int(config->GetParamDV(iDV, 1)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 2)) != -1) && + (SU2_TYPE::Int(config->GetParamDV(iDV, 3)) != -1)) { FFDBox->SetControlPoints(index, movement); } @@ -3600,7 +3600,7 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre void CSurfaceMovement::SetFFDCamber_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { - double Ampl, movement[3]; + su2double Ampl, movement[3]; unsigned short index[3], kIndex; string design_FFDBox; @@ -3622,7 +3622,7 @@ void CSurfaceMovement::SetFFDCamber_2D(CGeometry *geometry, CConfig *config, CFr else movement[1] = Ampl; movement[2] = 0.0; - index[0] = int(config->GetParamDV(iDV, 1)); index[1] = kIndex; index[2] = 0; + index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); index[1] = kIndex; index[2] = 0; FFDBox->SetControlPoints(index, movement); index[2] = 1; @@ -3636,7 +3636,7 @@ void CSurfaceMovement::SetFFDCamber_2D(CGeometry *geometry, CConfig *config, CFr void CSurfaceMovement::SetFFDThickness_2D(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { - double Ampl, movement[3]; + su2double Ampl, movement[3]; unsigned short index[3], kIndex; string design_FFDBox; @@ -3658,7 +3658,7 @@ void CSurfaceMovement::SetFFDThickness_2D(CGeometry *geometry, CConfig *config, else movement[1] = Ampl; movement[2] = 0.0; - index[0] = int(config->GetParamDV(iDV, 1)); index[1] = kIndex; index[2] = 0; + index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); index[1] = kIndex; index[2] = 0; FFDBox->SetControlPoints(index, movement); index[2] = 1; @@ -3672,7 +3672,7 @@ void CSurfaceMovement::SetFFDThickness_2D(CGeometry *geometry, CConfig *config, void CSurfaceMovement::SetFFDCamber(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { - double Ampl, movement[3]; + su2double Ampl, movement[3]; unsigned short index[3], kIndex; string design_FFDBox; @@ -3689,8 +3689,8 @@ void CSurfaceMovement::SetFFDCamber(CGeometry *geometry, CConfig *config, CFreeF Ampl = config->GetDV_Value(iDV); - index[0] = int(config->GetParamDV(iDV, 1)); - index[1] = int(config->GetParamDV(iDV, 2)); + index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); + index[1] = SU2_TYPE::Int(config->GetParamDV(iDV, 2)); index[2] = kIndex; movement[0] = 0.0; movement[1] = 0.0; @@ -3707,7 +3707,7 @@ void CSurfaceMovement::SetFFDCamber(CGeometry *geometry, CConfig *config, CFreeF void CSurfaceMovement::SetFFDThickness(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { - double Ampl, movement[3]; + su2double Ampl, movement[3]; unsigned short index[3], kIndex; string design_FFDBox; @@ -3724,8 +3724,8 @@ void CSurfaceMovement::SetFFDThickness(CGeometry *geometry, CConfig *config, CFr Ampl = config->GetDV_Value(iDV); - index[0] = int(config->GetParamDV(iDV, 1)); - index[1] = int(config->GetParamDV(iDV, 2)); + index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); + index[1] = SU2_TYPE::Int(config->GetParamDV(iDV, 2)); index[2] = kIndex; movement[0] = 0.0; movement[1] = 0.0; @@ -3744,7 +3744,7 @@ void CSurfaceMovement::SetFFDThickness(CGeometry *geometry, CConfig *config, CFr void CSurfaceMovement::SetFFDDihedralAngle(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { unsigned short iOrder, jOrder, kOrder, index[3]; - double movement[3], theta; + su2double movement[3], theta; string design_FFDBox; /*--- Set control points to its original value (even if the @@ -3765,7 +3765,7 @@ void CSurfaceMovement::SetFFDDihedralAngle(CGeometry *geometry, CConfig *config, for (jOrder = 0; jOrder < FFDBox->GetmOrder(); jOrder++) for (kOrder = 0; kOrder < FFDBox->GetnOrder(); kOrder++) { index[0] = iOrder; index[1] = jOrder; index[2] = kOrder; - double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); + su2double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); movement[0] = 0.0; movement[1] = 0.0; movement[2] = coord[1]*tan(theta); FFDBox->SetControlPoints(index, movement); @@ -3778,7 +3778,7 @@ void CSurfaceMovement::SetFFDDihedralAngle(CGeometry *geometry, CConfig *config, void CSurfaceMovement::SetFFDTwistAngle(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { unsigned short iOrder, jOrder, kOrder; - double x, y, z, movement[3]; + su2double x, y, z, movement[3]; unsigned short index[3]; string design_FFDBox; @@ -3793,25 +3793,25 @@ void CSurfaceMovement::SetFFDTwistAngle(CGeometry *geometry, CConfig *config, CF /*--- xyz-coordinates of a point on the line of rotation. ---*/ - double a = config->GetParamDV(iDV, 1); - double b = config->GetParamDV(iDV, 2); - double c = config->GetParamDV(iDV, 3); + su2double a = config->GetParamDV(iDV, 1); + su2double b = config->GetParamDV(iDV, 2); + su2double c = config->GetParamDV(iDV, 3); /*--- xyz-coordinate of the line's direction vector. ---*/ - double u = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); - double v = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); - double w = config->GetParamDV(iDV, 6)-config->GetParamDV(iDV, 3); + su2double u = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); + su2double v = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); + su2double w = config->GetParamDV(iDV, 6)-config->GetParamDV(iDV, 3); /*--- The angle of rotation. ---*/ - double theta = config->GetDV_Value(iDV)*PI_NUMBER/180.0; + su2double theta = config->GetDV_Value(iDV)*PI_NUMBER/180.0; /*--- An intermediate value used in computations. ---*/ - double u2=u*u; double v2=v*v; double w2=w*w; - double l2 = u2 + v2 + w2; double l = sqrt(l2); - double cosT; double sinT; + su2double u2=u*u; su2double v2=v*v; su2double w2=w*w; + su2double l2 = u2 + v2 + w2; su2double l = sqrt(l2); + su2double cosT; su2double sinT; /*--- Change the value of the control point if move is true ---*/ @@ -3819,10 +3819,10 @@ void CSurfaceMovement::SetFFDTwistAngle(CGeometry *geometry, CConfig *config, CF for (jOrder = 0; jOrder < FFDBox->GetmOrder(); jOrder++) for (kOrder = 0; kOrder < FFDBox->GetnOrder(); kOrder++) { index[0] = iOrder; index[1] = jOrder; index[2] = kOrder; - double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); + su2double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); x = coord[0]; y = coord[1]; z = coord[2]; - double factor = 0.0; + su2double factor = 0.0; if ( y < config->GetParamDV(iDV, 2) ) factor = 0.0; if (( y >= config->GetParamDV(iDV, 2)) && ( y <= config->GetParamDV(iDV, 5)) ) @@ -3860,7 +3860,7 @@ void CSurfaceMovement::SetFFDTwistAngle(CGeometry *geometry, CConfig *config, CF void CSurfaceMovement::SetFFDRotation(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { unsigned short iOrder, jOrder, kOrder; - double movement[3], x, y, z; + su2double movement[3], x, y, z; unsigned short index[3]; string design_FFDBox; @@ -3875,25 +3875,25 @@ void CSurfaceMovement::SetFFDRotation(CGeometry *geometry, CConfig *config, CFre /*--- xyz-coordinates of a point on the line of rotation. ---*/ - double a = config->GetParamDV(iDV, 1); - double b = config->GetParamDV(iDV, 2); - double c = config->GetParamDV(iDV, 3); + su2double a = config->GetParamDV(iDV, 1); + su2double b = config->GetParamDV(iDV, 2); + su2double c = config->GetParamDV(iDV, 3); /*--- xyz-coordinate of the line's direction vector. ---*/ - double u = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); - double v = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); - double w = config->GetParamDV(iDV, 6)-config->GetParamDV(iDV, 3); + su2double u = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); + su2double v = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); + su2double w = config->GetParamDV(iDV, 6)-config->GetParamDV(iDV, 3); /*--- The angle of rotation. ---*/ - double theta = config->GetDV_Value(iDV)*PI_NUMBER/180.0; + su2double theta = config->GetDV_Value(iDV)*PI_NUMBER/180.0; /*--- An intermediate value used in computations. ---*/ - double u2=u*u; double v2=v*v; double w2=w*w; - double cosT = cos(theta); double sinT = sin(theta); - double l2 = u2 + v2 + w2; double l = sqrt(l2); + su2double u2=u*u; su2double v2=v*v; su2double w2=w*w; + su2double cosT = cos(theta); su2double sinT = sin(theta); + su2double l2 = u2 + v2 + w2; su2double l = sqrt(l2); /*--- Change the value of the control point if move is true ---*/ @@ -3901,7 +3901,7 @@ void CSurfaceMovement::SetFFDRotation(CGeometry *geometry, CConfig *config, CFre for (jOrder = 0; jOrder < FFDBox->GetmOrder(); jOrder++) for (kOrder = 0; kOrder < FFDBox->GetnOrder(); kOrder++) { index[0] = iOrder; index[1] = jOrder; index[2] = kOrder; - double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); + su2double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); x = coord[0]; y = coord[1]; z = coord[2]; movement[0] = a*(v2 + w2) + u*(-b*v - c*w + u*x + v*y + w*z) + (-a*(v2 + w2) + u*(b*v + c*w - v*y - w*z) + (v2 + w2)*x)*cosT @@ -3928,7 +3928,7 @@ void CSurfaceMovement::SetFFDRotation(CGeometry *geometry, CConfig *config, CFre void CSurfaceMovement::SetFFDControl_Surface(CGeometry *geometry, CConfig *config, CFreeFormDefBox *FFDBox, unsigned short iDV, bool ResetDef) { unsigned short iOrder, jOrder, kOrder; - double movement[3], x, y, z; + su2double movement[3], x, y, z; unsigned short index[3]; string design_FFDBox; @@ -3943,25 +3943,25 @@ void CSurfaceMovement::SetFFDControl_Surface(CGeometry *geometry, CConfig *confi /*--- xyz-coordinates of a point on the line of rotation. ---*/ - double a = config->GetParamDV(iDV, 1); - double b = config->GetParamDV(iDV, 2); - double c = config->GetParamDV(iDV, 3); + su2double a = config->GetParamDV(iDV, 1); + su2double b = config->GetParamDV(iDV, 2); + su2double c = config->GetParamDV(iDV, 3); /*--- xyz-coordinate of the line's direction vector. ---*/ - double u = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); - double v = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); - double w = config->GetParamDV(iDV, 6)-config->GetParamDV(iDV, 3); + su2double u = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); + su2double v = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); + su2double w = config->GetParamDV(iDV, 6)-config->GetParamDV(iDV, 3); /*--- The angle of rotation. ---*/ - double theta = -config->GetDV_Value(iDV)*PI_NUMBER/180.0; + su2double theta = -config->GetDV_Value(iDV)*PI_NUMBER/180.0; /*--- An intermediate value used in computations. ---*/ - double u2=u*u; double v2=v*v; double w2=w*w; - double cosT = cos(theta); double sinT = sin(theta); - double l2 = u2 + v2 + w2; double l = sqrt(l2); + su2double u2=u*u; su2double v2=v*v; su2double w2=w*w; + su2double cosT = cos(theta); su2double sinT = sin(theta); + su2double l2 = u2 + v2 + w2; su2double l = sqrt(l2); /*--- Change the value of the control point if move is true ---*/ @@ -3969,7 +3969,7 @@ void CSurfaceMovement::SetFFDControl_Surface(CGeometry *geometry, CConfig *confi for (jOrder = 2; jOrder < FFDBox->GetmOrder()-2; jOrder++) for (kOrder = 0; kOrder < FFDBox->GetnOrder(); kOrder++) { index[0] = iOrder; index[1] = jOrder; index[2] = kOrder; - double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); + su2double *coord = FFDBox->GetCoordControlPoints(iOrder, jOrder, kOrder); x = coord[0]; y = coord[1]; z = coord[2]; movement[0] = a*(v2 + w2) + u*(-b*v - c*w + u*x + v*y + w*z) + (-a*(v2 + w2) + u*(b*v + c*w - v*y - w*z) + (v2 + w2)*x)*cosT @@ -3996,7 +3996,7 @@ void CSurfaceMovement::SetFFDControl_Surface(CGeometry *geometry, CConfig *confi void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef) { unsigned long iVertex; unsigned short iMarker; - double VarCoord[3] = {0.0,0.0,0.0}, VarCoord_[3] = {0.0,0.0,0.0}, *Coord_, *Normal_, ek, fk, BumpSize = 1.0, + su2double VarCoord[3] = {0.0,0.0,0.0}, VarCoord_[3] = {0.0,0.0,0.0}, *Coord_, *Normal_, ek, fk, BumpSize = 1.0, BumpLoc = 0.0, Coord[3] = {0.0,0.0,0.0}, Normal[3] = {0.0,0.0,0.0}, xCoord, TPCoord[2] = {0.0, 0.0}, LPCoord[2] = {0.0, 0.0}, Distance, Chord, AoA, ValCos, ValSin; @@ -4029,16 +4029,16 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig unsigned long *Buffer_Send_nVertex, *Buffer_Receive_nVertex; int iProcessor, nProcessor; - double *Buffer_Send_Coord, *Buffer_Receive_Coord; + su2double *Buffer_Send_Coord, *Buffer_Receive_Coord; MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); - Buffer_Receive_Coord = new double [nProcessor*2]; - Buffer_Send_Coord = new double [2]; + Buffer_Receive_Coord = new su2double [nProcessor*2]; + Buffer_Send_Coord = new su2double [2]; Buffer_Send_Coord[0] = TPCoord[0]; Buffer_Send_Coord[1] = TPCoord[1]; - MPI_Allgather(Buffer_Send_Coord, 2, MPI_DOUBLE, Buffer_Receive_Coord, 2, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, 2, MPI_DOUBLE, Buffer_Receive_Coord, 2, MPI_DOUBLE, MPI_COMM_WORLD); TPCoord[0] = Buffer_Receive_Coord[0]; TPCoord[1] = Buffer_Receive_Coord[1]; for (iProcessor = 1; iProcessor < nProcessor; iProcessor++) { @@ -4067,12 +4067,12 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); - Buffer_Receive_Coord = new double [nProcessor*2]; - Buffer_Send_Coord = new double [2]; + Buffer_Receive_Coord = new su2double [nProcessor*2]; + Buffer_Send_Coord = new su2double [2]; Buffer_Send_Coord[0] = LPCoord[0]; Buffer_Send_Coord[1] = LPCoord[1]; - MPI_Allgather(Buffer_Send_Coord, 2, MPI_DOUBLE, Buffer_Receive_Coord, 2, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, 2, MPI_DOUBLE, Buffer_Receive_Coord, 2, MPI_DOUBLE, MPI_COMM_WORLD); Chord = 0.0; for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) { @@ -4091,9 +4091,9 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig /*--- Perform multiple airfoil deformation ---*/ - double Ampl = config->GetDV_Value(iDV); - double xk = config->GetParamDV(iDV, 1); - const double t2 = 3.0; + su2double Ampl = config->GetDV_Value(iDV); + su2double xk = config->GetParamDV(iDV, 1); + const su2double t2 = 3.0; if (config->GetParamDV(iDV, 0) == NO) { upper = false; double_surface = true; } if (config->GetParamDV(iDV, 0) == YES) { upper = true; double_surface = true; } @@ -4165,8 +4165,8 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig void CSurfaceMovement::SetRotation(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef) { unsigned long iVertex; unsigned short iMarker; - double VarCoord[3], *Coord; - double movement[3], x, y, z; + su2double VarCoord[3], *Coord; + su2double movement[3], x, y, z; /*--- Reset airfoil deformation if first deformation or if it required by the solver ---*/ @@ -4180,27 +4180,27 @@ void CSurfaceMovement::SetRotation(CGeometry *boundary, CConfig *config, unsigne /*--- xyz-coordinates of a point on the line of rotation. */ - double a = config->GetParamDV(iDV, 0); - double b = config->GetParamDV(iDV, 1); - double c = 0.0; + su2double a = config->GetParamDV(iDV, 0); + su2double b = config->GetParamDV(iDV, 1); + su2double c = 0.0; if (boundary->GetnDim() == 3) c = config->GetParamDV(0,2); /*--- xyz-coordinate of the line's direction vector. ---*/ - double u = config->GetParamDV(iDV, 3)-config->GetParamDV(iDV, 0); - double v = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); - double w = 1.0; + su2double u = config->GetParamDV(iDV, 3)-config->GetParamDV(iDV, 0); + su2double v = config->GetParamDV(iDV, 4)-config->GetParamDV(iDV, 1); + su2double w = 1.0; if (boundary->GetnDim() == 3) w = config->GetParamDV(iDV, 5)-config->GetParamDV(iDV, 2); /*--- The angle of rotation. ---*/ - double theta = config->GetDV_Value(iDV)*PI_NUMBER/180.0; + su2double theta = config->GetDV_Value(iDV)*PI_NUMBER/180.0; /*--- An intermediate value used in computations. ---*/ - double u2=u*u; double v2=v*v; double w2=w*w; - double cosT = cos(theta); double sinT = sin(theta); - double l2 = u2 + v2 + w2; double l = sqrt(l2); + su2double u2=u*u; su2double v2=v*v; su2double w2=w*w; + su2double cosT = cos(theta); su2double sinT = sin(theta); + su2double l2 = u2 + v2 + w2; su2double l = sqrt(l2); for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) for (iVertex = 0; iVertex < boundary->nVertex[iMarker]; iVertex++) { @@ -4237,8 +4237,8 @@ void CSurfaceMovement::SetRotation(CGeometry *boundary, CConfig *config, unsigne void CSurfaceMovement::SetTranslation(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef) { unsigned long iVertex; unsigned short iMarker; - double VarCoord[3]; - double Ampl = config->GetDV_Value(iDV); + su2double VarCoord[3]; + su2double Ampl = config->GetDV_Value(iDV); /*--- Reset airfoil deformation if first deformation or if it required by the solver ---*/ @@ -4250,9 +4250,9 @@ void CSurfaceMovement::SetTranslation(CGeometry *boundary, CConfig *config, unsi } } - double xDispl = config->GetParamDV(iDV, 0); - double yDispl = config->GetParamDV(iDV, 1); - double zDispl = 0; + su2double xDispl = config->GetParamDV(iDV, 0); + su2double yDispl = config->GetParamDV(iDV, 1); + su2double zDispl = 0; if (boundary->GetnDim() == 3) zDispl = config->GetParamDV(iDV, 2); for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) @@ -4271,8 +4271,8 @@ void CSurfaceMovement::SetTranslation(CGeometry *boundary, CConfig *config, unsi void CSurfaceMovement::SetScale(CGeometry *boundary, CConfig *config, unsigned short iDV, bool ResetDef) { unsigned long iVertex; unsigned short iMarker; - double VarCoord[3], x, y, z, *Coord; - double Ampl = config->GetDV_Value(iDV); + su2double VarCoord[3], x, y, z, *Coord; + su2double Ampl = config->GetDV_Value(iDV); /*--- Reset airfoil deformation if first deformation or if it required by the solver ---*/ @@ -4310,10 +4310,10 @@ void CSurfaceMovement::Moving_Walls(CGeometry *geometry, CConfig *config, /*--- Local variables ---*/ unsigned short iMarker, jMarker, iDim, nDim = geometry->GetnDim(); unsigned long iPoint, iVertex; - double xDot[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, r[3] = {0.0,0.0,0.0}, GridVel[3] = {0.0,0.0,0.0}; - double L_Ref = config->GetLength_Ref(); - double Omega_Ref = config->GetOmega_Ref(); - double Vel_Ref = config->GetVelocity_Ref(); + su2double xDot[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, r[3] = {0.0,0.0,0.0}, GridVel[3] = {0.0,0.0,0.0}; + su2double L_Ref = config->GetLength_Ref(); + su2double Omega_Ref = config->GetOmega_Ref(); + su2double Vel_Ref = config->GetVelocity_Ref(); string Marker_Tag; /*--- Store grid velocity for each node on the moving surface(s). @@ -4382,8 +4382,8 @@ void CSurfaceMovement::Moving_Walls(CGeometry *geometry, CConfig *config, void CSurfaceMovement::Surface_Translating(CGeometry *geometry, CConfig *config, unsigned long iter, unsigned short iZone) { - double deltaT, time_new, time_old; - double Center[3], VarCoord[3], xDot[3]; + su2double deltaT, time_new, time_old; + su2double Center[3], VarCoord[3], xDot[3]; unsigned short iMarker, jMarker, Moving; unsigned long iVertex; string Marker_Tag, Moving_Tag; @@ -4403,11 +4403,11 @@ void CSurfaceMovement::Surface_Translating(CGeometry *geometry, CConfig *config, deltaT = config->GetDelta_UnstTimeND(); /*--- Compute delta time based on physical time step ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (iter == 0) { time_old = time_new; } else { - time_old = static_cast(iter-1)*deltaT; + time_old = static_cast(iter-1)*deltaT; } /*--- Store displacement of each node on the translating surface ---*/ @@ -4496,9 +4496,9 @@ void CSurfaceMovement::Surface_Translating(CGeometry *geometry, CConfig *config, void CSurfaceMovement::Surface_Plunging(CGeometry *geometry, CConfig *config, unsigned long iter, unsigned short iZone) { - double deltaT, time_new, time_old, Lref; - double Center[3], VarCoord[3], Omega[3], Ampl[3]; - double DEG2RAD = PI_NUMBER/180.0; + su2double deltaT, time_new, time_old, Lref; + su2double Center[3], VarCoord[3], Omega[3], Ampl[3]; + su2double DEG2RAD = PI_NUMBER/180.0; unsigned short iMarker, jMarker, Moving; unsigned long iVertex; string Marker_Tag, Moving_Tag; @@ -4519,11 +4519,11 @@ void CSurfaceMovement::Surface_Plunging(CGeometry *geometry, CConfig *config, Lref = config->GetLength_Ref(); /*--- Compute delta time based on physical time step ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (iter == 0) { time_old = time_new; } else { - time_old = static_cast(iter-1)*deltaT; + time_old = static_cast(iter-1)*deltaT; } /*--- Store displacement of each node on the plunging surface ---*/ @@ -4618,12 +4618,12 @@ void CSurfaceMovement::Surface_Plunging(CGeometry *geometry, CConfig *config, void CSurfaceMovement::Surface_Pitching(CGeometry *geometry, CConfig *config, unsigned long iter, unsigned short iZone) { - double deltaT, time_new, time_old, Lref, *Coord; - double Center[3], VarCoord[3], Omega[3], Ampl[3], Phase[3], rotCoord[3], r[3]; - double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; - double dtheta, dphi, dpsi, cosTheta, sinTheta; - double cosPhi, sinPhi, cosPsi, sinPsi; - double DEG2RAD = PI_NUMBER/180.0; + su2double deltaT, time_new, time_old, Lref, *Coord; + su2double Center[3], VarCoord[3], Omega[3], Ampl[3], Phase[3], rotCoord[3], r[3]; + su2double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; + su2double dtheta, dphi, dpsi, cosTheta, sinTheta; + su2double cosPhi, sinPhi, cosPsi, sinPsi; + su2double DEG2RAD = PI_NUMBER/180.0; unsigned short iMarker, jMarker, Moving, iDim, nDim = geometry->GetnDim(); unsigned long iPoint, iVertex; string Marker_Tag, Moving_Tag; @@ -4644,11 +4644,11 @@ void CSurfaceMovement::Surface_Pitching(CGeometry *geometry, CConfig *config, Lref = config->GetLength_Ref(); /*--- Compute delta time based on physical time step ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (iter == 0) { time_old = time_new; } else { - time_old = static_cast(iter-1)*deltaT; + time_old = static_cast(iter-1)*deltaT; } /*--- Store displacement of each node on the pitching surface ---*/ @@ -4774,12 +4774,12 @@ void CSurfaceMovement::Surface_Pitching(CGeometry *geometry, CConfig *config, void CSurfaceMovement::Surface_Rotating(CGeometry *geometry, CConfig *config, unsigned long iter, unsigned short iZone) { - double deltaT, time_new, time_old, Lref, *Coord; - double Center[3] = {0.0,0.0,0.0}, VarCoord[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, + su2double deltaT, time_new, time_old, Lref, *Coord; + su2double Center[3] = {0.0,0.0,0.0}, VarCoord[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, r[3] = {0.0,0.0,0.0}, Center_Aux[3] = {0.0,0.0,0.0}; - double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; - double dtheta, dphi, dpsi, cosTheta, sinTheta; - double cosPhi, sinPhi, cosPsi, sinPsi; + su2double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; + su2double dtheta, dphi, dpsi, cosTheta, sinTheta; + su2double cosPhi, sinPhi, cosPsi, sinPsi; unsigned short iMarker, jMarker, Moving, iDim, nDim = geometry->GetnDim(); unsigned long iPoint, iVertex; string Marker_Tag, Moving_Tag; @@ -4800,11 +4800,11 @@ void CSurfaceMovement::Surface_Rotating(CGeometry *geometry, CConfig *config, Lref = config->GetLength_Ref(); /*--- Compute delta time based on physical time step ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; if (iter == 0) { time_old = time_new; } else { - time_old = static_cast(iter-1)*deltaT; + time_old = static_cast(iter-1)*deltaT; } /*--- Store displacement of each node on the rotating surface ---*/ @@ -4997,24 +4997,24 @@ void CSurfaceMovement::Surface_Rotating(CGeometry *geometry, CConfig *config, } } -void CSurfaceMovement::AeroelasticDeform(CGeometry *geometry, CConfig *config, unsigned long ExtIter, unsigned short iMarker, unsigned short iMarker_Monitoring, double displacements[4]) { +void CSurfaceMovement::AeroelasticDeform(CGeometry *geometry, CConfig *config, unsigned long ExtIter, unsigned short iMarker, unsigned short iMarker_Monitoring, su2double displacements[4]) { /* The sign conventions of these are those of the Typical Section Wing Model, below the signs are corrected */ - double dh = -displacements[0]; // relative plunge - double dalpha = -displacements[1]; // relative pitch - double dh_x, dh_y; - double Center[2]; + su2double dh = -displacements[0]; // relative plunge + su2double dalpha = -displacements[1]; // relative pitch + su2double dh_x, dh_y; + su2double Center[2]; unsigned short iDim; - double Lref = config->GetLength_Ref(); - double *Coord; + su2double Lref = config->GetLength_Ref(); + su2double *Coord; unsigned long iPoint, iVertex; - double x_new, y_new; - double VarCoord[3]; + su2double x_new, y_new; + su2double VarCoord[3]; string Monitoring_Tag = config->GetMarker_Monitoring(iMarker_Monitoring); /*--- Calculate the plunge displacement for the Typical Section Wing Model taking into account rotation ---*/ if (config->GetKind_GridMovement(ZONE_0) == AEROELASTIC_RIGID_MOTION) { - double Omega, dt, psi; + su2double Omega, dt, psi; dt = config->GetDelta_UnstTimeND(); Omega = (config->GetRotation_Rate_Z(ZONE_0)/config->GetOmega_Ref()); psi = Omega*(dt*ExtIter); @@ -5051,7 +5051,7 @@ void CSurfaceMovement::AeroelasticDeform(CGeometry *geometry, CConfig *config, u Coord = geometry->node[iPoint]->GetCoord(); /*--- Calculate non-dim. position from rotation center ---*/ - double r[2] = {0,0}; + su2double r[2] = {0,0}; for (iDim = 0; iDim < geometry->GetnDim(); iDim++) r[iDim] = (Coord[iDim]-Center[iDim])/Lref; @@ -5078,11 +5078,11 @@ void CSurfaceMovement::AeroelasticDeform(CGeometry *geometry, CConfig *config, u void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *config, CFreeFormDefBox **FFDBox, unsigned long iter, unsigned short iZone) { - double omega, deltaT; - double alpha, alpha_new, alpha_old; - double time_new, time_old; - double Center[3], Omega[3], Ampl[3], Phase[3]; - double DEG2RAD = PI_NUMBER/180.0; + su2double omega, deltaT; + su2double alpha, alpha_new, alpha_old; + su2double time_new, time_old; + su2double Center[3], Omega[3], Ampl[3], Phase[3]; + su2double DEG2RAD = PI_NUMBER/180.0; int rank; bool adjoint = config->GetAdjoint(); @@ -5120,16 +5120,16 @@ void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *confi unsigned long nFlowIter = config->GetnExtIter(); unsigned long directIter = nFlowIter - iter - 1; - time_new = static_cast(directIter)*deltaT; + time_new = static_cast(directIter)*deltaT; time_old = time_new; - if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; + if (iter != 0) time_old = (static_cast(directIter)+1.0)*deltaT; } else { /*--- Forward time for the direct problem ---*/ - time_new = static_cast(iter)*deltaT; + time_new = static_cast(iter)*deltaT; time_old = time_new; - if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; + if (iter != 0) time_old = (static_cast(iter)-1.0)*deltaT; } /*--- Update the pitching angle at this time step. Flip sign for @@ -5145,7 +5145,7 @@ void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *confi unsigned short iOrder, jOrder, kOrder; short iFFDBox; - double movement[3] = {0.0,0.0,0.0}; + su2double movement[3] = {0.0,0.0,0.0}; bool *move = new bool [nFFDBox]; unsigned short *index = new unsigned short[3]; @@ -5159,7 +5159,7 @@ void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *confi for (jOrder = 0; jOrder < FFDBox[iFFDBox]->GetmOrder(); jOrder++) for (kOrder = 0; kOrder < FFDBox[iFFDBox]->GetnOrder(); kOrder++) { index[0] = iOrder; index[1] = jOrder; index[2] = kOrder; - double *coord = FFDBox[iFFDBox]->GetCoordControlPoints(iOrder, jOrder, kOrder); + su2double *coord = FFDBox[iFFDBox]->GetCoordControlPoints(iOrder, jOrder, kOrder); movement[0] = 0.0; movement[1] = 0.0; movement[2] = coord[1]*tan(alpha); FFDBox[iFFDBox]->SetControlPoints(index, movement); } @@ -5183,10 +5183,10 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con unsigned short iDim, nDim; unsigned long iPoint = 0, flowIter = 0; unsigned long jPoint, GlobalIndex; - double VarCoord[3], *Coord_Old = NULL, *Coord_New = NULL, Center[3] = {0.0,0.0,0.0}; - double Lref = config->GetLength_Ref(); - double NewCoord[3] = {0.0,0.0,0.0}, rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; - double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}; + su2double VarCoord[3], *Coord_Old = NULL, *Coord_New = NULL, Center[3] = {0.0,0.0,0.0}; + su2double Lref = config->GetLength_Ref(); + su2double NewCoord[3] = {0.0,0.0,0.0}, rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; + su2double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}; unsigned long iVertex; unsigned short iMarker; char buffer[50]; @@ -5210,11 +5210,11 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con flowIter = nFlowIter - iter; unsigned short lastindex = motion_filename.find_last_of("."); motion_filename = motion_filename.substr(0, lastindex); - if ((int(flowIter) >= 0) && (int(flowIter) < 10)) sprintf (buffer, "_0000%d.dat", int(flowIter)); - if ((int(flowIter) >= 10) && (int(flowIter) < 100)) sprintf (buffer, "_000%d.dat", int(flowIter)); - if ((int(flowIter) >= 100) && (int(flowIter) < 1000)) sprintf (buffer, "_00%d.dat", int(flowIter)); - if ((int(flowIter) >= 1000) && (int(flowIter) < 10000)) sprintf (buffer, "_0%d.dat", int(flowIter)); - if (int(flowIter) >= 10000) sprintf (buffer, "_%d.dat", int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 0) && (SU2_TYPE::Int(flowIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 10) && (SU2_TYPE::Int(flowIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 100) && (SU2_TYPE::Int(flowIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 1000) && (SU2_TYPE::Int(flowIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(flowIter)); + if (SU2_TYPE::Int(flowIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(flowIter)); UnstExt = string(buffer); motion_filename.append(UnstExt); } else { @@ -5222,11 +5222,11 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con flowIter = iter; unsigned short lastindex = motion_filename.find_last_of("."); motion_filename = motion_filename.substr(0, lastindex); - if ((int(flowIter) >= 0) && (int(flowIter) < 10)) sprintf (buffer, "_0000%d.dat", int(flowIter)); - if ((int(flowIter) >= 10) && (int(flowIter) < 100)) sprintf (buffer, "_000%d.dat", int(flowIter)); - if ((int(flowIter) >= 100) && (int(flowIter) < 1000)) sprintf (buffer, "_00%d.dat", int(flowIter)); - if ((int(flowIter) >= 1000) && (int(flowIter) < 10000)) sprintf (buffer, "_0%d.dat", int(flowIter)); - if (int(flowIter) >= 10000) sprintf (buffer, "_%d.dat", int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 0) && (SU2_TYPE::Int(flowIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 10) && (SU2_TYPE::Int(flowIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 100) && (SU2_TYPE::Int(flowIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 1000) && (SU2_TYPE::Int(flowIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(flowIter)); + if (SU2_TYPE::Int(flowIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(flowIter)); UnstExt = string(buffer); motion_filename.append(UnstExt); } @@ -5273,9 +5273,9 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con /*--- Variables needed only for rotation ---*/ - double Omega[3], dt; - double dtheta, dphi, dpsi, cosTheta, sinTheta; - double cosPhi, sinPhi, cosPsi, sinPsi; + su2double Omega[3], dt; + su2double dtheta, dphi, dpsi, cosTheta, sinTheta; + su2double cosPhi, sinPhi, cosPsi, sinPsi; /*--- Center of rotation & angular velocity vector from config ---*/ Center[0] = config->GetMotion_Origin_X(iZone); @@ -5284,7 +5284,7 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con /*--- Angular velocity vector from config ---*/ - dt = static_cast(iter)*config->GetDelta_UnstTimeND(); + dt = static_cast(iter)*config->GetDelta_UnstTimeND(); Omega[0] = config->GetRotation_Rate_X(iZone); Omega[1] = config->GetRotation_Rate_Y(iZone); Omega[2] = config->GetRotation_Rate_Z(iZone); @@ -5292,7 +5292,7 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con /*--- For the unsteady adjoint, use reverse time ---*/ if (adjoint) { /*--- Set the first adjoint mesh position to the final direct one ---*/ - if (iter == 0) dt = ((double)config->GetnExtIter()-1) * dt; + if (iter == 0) dt = ((su2double)config->GetnExtIter()-1) * dt; /*--- Reverse the rotation direction for the adjoint ---*/ else dt = -1.0*dt; } else { @@ -5391,15 +5391,15 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con void CSurfaceMovement::SetNACA_4Digits(CGeometry *boundary, CConfig *config) { unsigned long iVertex; unsigned short iMarker; - double VarCoord[3], *Coord, *Normal, Ycurv, Yesp; + su2double VarCoord[3], *Coord, *Normal, Ycurv, Yesp; if (config->GetnDV() != 1) { cout << "This kind of design variable is not prepared for multiple deformations."; cin.get(); } - double Ya = config->GetParamDV(0,0) / 100.0; /*--- Maximum camber as a fraction of the chord + su2double Ya = config->GetParamDV(0,0) / 100.0; /*--- Maximum camber as a fraction of the chord (100 m is the first of the four digits) ---*/ - double Xa = config->GetParamDV(0,1) / 10.0; /*--- Location of maximum camber as a fraction of + su2double Xa = config->GetParamDV(0,1) / 10.0; /*--- Location of maximum camber as a fraction of the chord (10 p is the second digit in the NACA xxxx description) ---*/ - double t = config->GetParamDV(0,2) / 100.0; /*--- Maximum thickness as a fraction of the + su2double t = config->GetParamDV(0,2) / 100.0; /*--- Maximum thickness as a fraction of the chord (so 100 t gives the last two digits in the NACA 4-digit denomination) ---*/ @@ -5427,12 +5427,12 @@ void CSurfaceMovement::SetNACA_4Digits(CGeometry *boundary, CConfig *config) { void CSurfaceMovement::SetParabolic(CGeometry *boundary, CConfig *config) { unsigned long iVertex; unsigned short iMarker; - double VarCoord[3], *Coord, *Normal; + su2double VarCoord[3], *Coord, *Normal; if (config->GetnDV() != 1) { cout << "This kind of design variable is not prepared for multiple deformations."; cin.get(); } - double c = config->GetParamDV(0,0); /*--- Center of the parabola ---*/ - double t = config->GetParamDV(0,1) / 100.0; /*--- Thickness of the parabola ---*/ + su2double c = config->GetParamDV(0,0); /*--- Center of the parabola ---*/ + su2double t = config->GetParamDV(0,1) / 100.0; /*--- Thickness of the parabola ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) for (iVertex = 0; iVertex < boundary->nVertex[iMarker]; iVertex++) { @@ -5455,10 +5455,10 @@ void CSurfaceMovement::SetParabolic(CGeometry *boundary, CConfig *config) { void CSurfaceMovement::SetAirfoil(CGeometry *boundary, CConfig *config) { unsigned long iVertex, n_Airfoil = 0; unsigned short iMarker, nUpper, nLower, iUpper, iLower, iVar, iDim; - double *VarCoord, *Coord, NewYCoord, NewXCoord, *Coord_i, *Coord_ip1, yp1, ypn, + su2double *VarCoord, *Coord, NewYCoord, NewXCoord, *Coord_i, *Coord_ip1, yp1, ypn, Airfoil_Coord[2]= {0.0,0.0}, factor, coeff = 10000, Upper, Lower, Arch = 0.0, TotalArch = 0.0, x_i, x_ip1, y_i, y_ip1, AirfoilScale; - vector Svalue, Xcoord, Ycoord, Xcoord2, Ycoord2, Xcoord_Aux, Ycoord_Aux; + vector Svalue, Xcoord, Ycoord, Xcoord2, Ycoord2, Xcoord_Aux, Ycoord_Aux; bool AddBegin = true, AddEnd = true; char AirfoilFile[256], AirfoilFormat[15], MeshOrientation[15], AirfoilClose[15]; ifstream airfoil_file; @@ -5466,7 +5466,7 @@ void CSurfaceMovement::SetAirfoil(CGeometry *boundary, CConfig *config) { unsigned short nDim = boundary->GetnDim(); - VarCoord = new double[nDim]; + VarCoord = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) VarCoord[iDim] = 0.0; @@ -5539,8 +5539,8 @@ void CSurfaceMovement::SetAirfoil(CGeometry *boundary, CConfig *config) { istringstream point_line(text_line); point_line >> Upper >> Lower; - nUpper = int(Upper); - nLower = int(Lower); + nUpper = SU2_TYPE::Int(Upper); + nLower = SU2_TYPE::Int(Lower); Xcoord.resize(nUpper+nLower-1); Ycoord.resize(nUpper+nLower-1); @@ -5700,7 +5700,7 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo string text_line, iTag; ifstream mesh_file; - double coord[3]; + su2double coord[3]; unsigned short degree[3], iFFDBox, iCornerPoints, iControlPoints, iMarker, iDegree, jDegree, kDegree, iChar, LevelFFDBox, nParentFFDBox, iParentFFDBox, nChildFFDBox, iChildFFDBox, nMarker, *nCornerPoints, *nControlPoints; @@ -5831,7 +5831,7 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo cout << ". " << endl; } - FFDBox[iFFDBox] = new CFreeFormDefBox(int(degree[0]), int(degree[1]), int(degree[2])); + FFDBox[iFFDBox] = new CFreeFormDefBox(SU2_TYPE::Int(degree[0]), SU2_TYPE::Int(degree[1]), SU2_TYPE::Int(degree[2])); FFDBox[iFFDBox]->SetTag(TagFFDBox); FFDBox[iFFDBox]->SetLevel(LevelFFDBox); /*--- Read the number of parents boxes ---*/ @@ -5890,20 +5890,20 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo getline (mesh_file, text_line); text_line.erase (0,18); nCornerPoints[iFFDBox] = atoi(text_line.c_str()); if (rank == MASTER_NODE) cout << "Corner points: " << nCornerPoints[iFFDBox] <<". "; - if (nDim == 2) nCornerPoints[iFFDBox] = nCornerPoints[iFFDBox]*int(2); + if (nDim == 2) nCornerPoints[iFFDBox] = nCornerPoints[iFFDBox]*SU2_TYPE::Int(2); /*--- Read the coordinates of the corner points ---*/ for (iCornerPoints = 0; iCornerPoints < nCornerPoints[iFFDBox]; iCornerPoints++) { if (nDim == 2) { - if (iCornerPoints < nCornerPoints[iFFDBox]/int(2)) { + if (iCornerPoints < nCornerPoints[iFFDBox]/SU2_TYPE::Int(2)) { getline(mesh_file, text_line); istringstream FFDBox_line(text_line); FFDBox_line >> coord[0]; FFDBox_line >> coord[1]; coord[2] = -0.5; } else { - coord[0] = FFDBox[iFFDBox]->GetCoordCornerPoints(0, iCornerPoints-nCornerPoints[iFFDBox]/int(2)); - coord[1] = FFDBox[iFFDBox]->GetCoordCornerPoints(1, iCornerPoints-nCornerPoints[iFFDBox]/int(2)); + coord[0] = FFDBox[iFFDBox]->GetCoordCornerPoints(0, iCornerPoints-nCornerPoints[iFFDBox]/SU2_TYPE::Int(2)); + coord[1] = FFDBox[iFFDBox]->GetCoordCornerPoints(1, iCornerPoints-nCornerPoints[iFFDBox]/SU2_TYPE::Int(2)); coord[2] = 0.5; } } @@ -5973,7 +5973,7 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo #ifdef HAVE_MPI nSurfPoints = 0; - MPI_Allreduce(&my_nSurfPoints, &nSurfPoints, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&my_nSurfPoints, &nSurfPoints, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); if (rank == MASTER_NODE) cout << "Surface points: " << nSurfPoints <<"."<< endl; #else nSurfPoints = my_nSurfPoints; @@ -5999,7 +5999,7 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo string text_line, iTag; ifstream mesh_file; - double coord[3]; + su2double coord[3]; unsigned short degree[3], iFFDBox, iCornerPoints, LevelFFDBox, nParentFFDBox, iParentFFDBox, nChildFFDBox, iChildFFDBox, *nCornerPoints; @@ -6051,7 +6051,7 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo cout << ". " << endl; } - FFDBox[iFFDBox] = new CFreeFormDefBox(int(degree[0]), int(degree[1]), int(degree[2])); + FFDBox[iFFDBox] = new CFreeFormDefBox(SU2_TYPE::Int(degree[0]), SU2_TYPE::Int(degree[1]), SU2_TYPE::Int(degree[2])); FFDBox[iFFDBox]->SetTag(TagFFDBox); FFDBox[iFFDBox]->SetLevel(LevelFFDBox); /*--- Read the number of parents boxes ---*/ @@ -6083,14 +6083,14 @@ void CSurfaceMovement::ReadFFDInfo(CGeometry *geometry, CConfig *config, CFreeFo for (iCornerPoints = 0; iCornerPoints < nCornerPoints[iFFDBox]; iCornerPoints++) { if (nDim == 2) { - if (iCornerPoints < nCornerPoints[iFFDBox]/int(2)) { + if (iCornerPoints < nCornerPoints[iFFDBox]/SU2_TYPE::Int(2)) { coord[0] = config->GetCoordFFDBox(iFFDBox, iCornerPoints*3); coord[1] = config->GetCoordFFDBox(iFFDBox, iCornerPoints*3+1); coord[2] = -0.5; } else { - coord[0] = FFDBox[iFFDBox]->GetCoordCornerPoints(0, iCornerPoints-nCornerPoints[iFFDBox]/int(2)); - coord[1] = FFDBox[iFFDBox]->GetCoordCornerPoints(1, iCornerPoints-nCornerPoints[iFFDBox]/int(2)); + coord[0] = FFDBox[iFFDBox]->GetCoordCornerPoints(0, iCornerPoints-nCornerPoints[iFFDBox]/SU2_TYPE::Int(2)); + coord[1] = FFDBox[iFFDBox]->GetCoordCornerPoints(1, iCornerPoints-nCornerPoints[iFFDBox]/SU2_TYPE::Int(2)); coord[2] = 0.5; } } @@ -6202,22 +6202,22 @@ void CSurfaceMovement::MergeFFDInfo(CGeometry *geometry, CConfig *config) { /*--- Communicate the total number of nodes on this domain. ---*/ - MPI_Gather(&Buffer_Send_nPoint, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Gather(&Buffer_Send_nPoint, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nPoint, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); nBuffer_Scalar = MaxLocalPoint; /*--- Send and Recv buffers. ---*/ - double *Buffer_Send_X = new double[MaxLocalPoint]; - double *Buffer_Recv_X = NULL; + su2double *Buffer_Send_X = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_X = NULL; - double *Buffer_Send_Y = new double[MaxLocalPoint]; - double *Buffer_Recv_Y = NULL; + su2double *Buffer_Send_Y = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Y = NULL; - double *Buffer_Send_Z = new double[MaxLocalPoint]; - double *Buffer_Recv_Z = NULL; + su2double *Buffer_Send_Z = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Z = NULL; unsigned long *Buffer_Send_Point = new unsigned long[MaxLocalPoint]; unsigned long *Buffer_Recv_Point = NULL; @@ -6229,9 +6229,9 @@ void CSurfaceMovement::MergeFFDInfo(CGeometry *geometry, CConfig *config) { if (rank == MASTER_NODE) { - Buffer_Recv_X = new double[nProcessor*MaxLocalPoint]; - Buffer_Recv_Y = new double[nProcessor*MaxLocalPoint]; - Buffer_Recv_Z = new double[nProcessor*MaxLocalPoint]; + Buffer_Recv_X = new su2double[nProcessor*MaxLocalPoint]; + Buffer_Recv_Y = new su2double[nProcessor*MaxLocalPoint]; + Buffer_Recv_Z = new su2double[nProcessor*MaxLocalPoint]; Buffer_Recv_Point = new unsigned long[nProcessor*MaxLocalPoint]; Buffer_Recv_MarkerIndex_CfgFile = new unsigned short[nProcessor*MaxLocalPoint]; @@ -6279,11 +6279,11 @@ void CSurfaceMovement::MergeFFDInfo(CGeometry *geometry, CConfig *config) { /*--- Gather the coordinate data on the master node using MPI. ---*/ - MPI_Gather(Buffer_Send_X, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_X, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Point, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_Point, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_MarkerIndex_CfgFile, nBuffer_Scalar, MPI_UNSIGNED_SHORT, Buffer_Recv_MarkerIndex_CfgFile, nBuffer_Scalar, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_X, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_X, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Point, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_Point, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_MarkerIndex_CfgFile, nBuffer_Scalar, MPI_UNSIGNED_SHORT, Buffer_Recv_MarkerIndex_CfgFile, nBuffer_Scalar, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); /*--- The master node unpacks and sorts this variable by global index ---*/ @@ -6348,7 +6348,7 @@ void CSurfaceMovement::WriteFFDInfo(CGeometry *geometry, CConfig *config) { char cstr[MAX_STRING_SIZE], mesh_file[MAX_STRING_SIZE]; string str; ofstream output_file; - double *coord; + su2double *coord; string text_line; int rank = MASTER_NODE; @@ -6398,8 +6398,8 @@ void CSurfaceMovement::WriteFFDInfo(CGeometry *geometry, CConfig *config) { output_file << FFDBox[iFFDBox]->GetChildFFDBoxTag(iChildFFDBox) << endl; if (nDim == 2) { - output_file << "FFD_CORNER_POINTS= " << FFDBox[iFFDBox]->GetnCornerPoints()/int(2) << endl; - for (iCornerPoints = 0; iCornerPoints < FFDBox[iFFDBox]->GetnCornerPoints()/int(2); iCornerPoints++) { + output_file << "FFD_CORNER_POINTS= " << FFDBox[iFFDBox]->GetnCornerPoints()/SU2_TYPE::Int(2) << endl; + for (iCornerPoints = 0; iCornerPoints < FFDBox[iFFDBox]->GetnCornerPoints()/SU2_TYPE::Int(2); iCornerPoints++) { coord = FFDBox[iFFDBox]->GetCoordCornerPoints(iCornerPoints); output_file << coord[0] << "\t" << coord[1] << endl; } @@ -6464,13 +6464,13 @@ CFreeFormDefBox::CFreeFormDefBox(unsigned short val_lDegree, unsigned short val_ /*--- Allocate Corners points ---*/ - Coord_Corner_Points = new double* [nCornerPoints]; + Coord_Corner_Points = new su2double* [nCornerPoints]; for (iCornerPoints = 0; iCornerPoints < nCornerPoints; iCornerPoints++) - Coord_Corner_Points[iCornerPoints] = new double [nDim]; + Coord_Corner_Points[iCornerPoints] = new su2double [nDim]; - ParamCoord = new double[nDim]; ParamCoord_ = new double[nDim]; - cart_coord = new double[nDim]; cart_coord_ = new double[nDim]; - Gradient = new double[nDim]; + ParamCoord = new su2double[nDim]; ParamCoord_ = new su2double[nDim]; + cart_coord = new su2double[nDim]; cart_coord_ = new su2double[nDim]; + Gradient = new su2double[nDim]; lDegree = val_lDegree; lOrder = lDegree+1; mDegree = val_mDegree; mOrder = mDegree+1; @@ -6482,21 +6482,21 @@ CFreeFormDefBox::CFreeFormDefBox(unsigned short val_lDegree, unsigned short val_ nDegree_Copy = val_nDegree; nOrder_Copy = nDegree+1; nControlPoints_Copy = lOrder_Copy*mOrder_Copy*nOrder_Copy; - Coord_Control_Points = new double*** [lOrder]; - ParCoord_Control_Points = new double*** [lOrder]; - Coord_Control_Points_Copy = new double*** [lOrder]; + Coord_Control_Points = new su2double*** [lOrder]; + ParCoord_Control_Points = new su2double*** [lOrder]; + Coord_Control_Points_Copy = new su2double*** [lOrder]; for (iOrder = 0; iOrder < lOrder; iOrder++) { - Coord_Control_Points[iOrder] = new double** [mOrder]; - ParCoord_Control_Points[iOrder] = new double** [mOrder]; - Coord_Control_Points_Copy[iOrder] = new double** [mOrder]; + Coord_Control_Points[iOrder] = new su2double** [mOrder]; + ParCoord_Control_Points[iOrder] = new su2double** [mOrder]; + Coord_Control_Points_Copy[iOrder] = new su2double** [mOrder]; for (jOrder = 0; jOrder < mOrder; jOrder++) { - Coord_Control_Points[iOrder][jOrder] = new double* [nOrder]; - ParCoord_Control_Points[iOrder][jOrder] = new double* [nOrder]; - Coord_Control_Points_Copy[iOrder][jOrder] = new double* [nOrder]; + Coord_Control_Points[iOrder][jOrder] = new su2double* [nOrder]; + ParCoord_Control_Points[iOrder][jOrder] = new su2double* [nOrder]; + Coord_Control_Points_Copy[iOrder][jOrder] = new su2double* [nOrder]; for (kOrder = 0; kOrder < nOrder; kOrder++) { - Coord_Control_Points[iOrder][jOrder][kOrder] = new double [nDim]; - ParCoord_Control_Points[iOrder][jOrder][kOrder] = new double [nDim]; - Coord_Control_Points_Copy[iOrder][jOrder][kOrder] = new double [nDim]; + Coord_Control_Points[iOrder][jOrder][kOrder] = new su2double [nDim]; + ParCoord_Control_Points[iOrder][jOrder][kOrder] = new su2double [nDim]; + Coord_Control_Points_Copy[iOrder][jOrder][kOrder] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) { Coord_Control_Points[iOrder][jOrder][kOrder][iDim] = 0.0; ParCoord_Control_Points[iOrder][jOrder][kOrder][iDim] = 0.0; @@ -6534,7 +6534,7 @@ CFreeFormDefBox::~CFreeFormDefBox(void) { void CFreeFormDefBox::SetUnitCornerPoints(void) { unsigned short iDim; - double *coord = new double [nDim]; + su2double *coord = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) coord[iDim] = 0.0; @@ -6571,11 +6571,11 @@ void CFreeFormDefBox::SetControlPoints_Parallelepiped (void) { for (jDegree = 0; jDegree <= mDegree; jDegree++) for (kDegree = 0; kDegree <= nDegree; kDegree++) { Coord_Control_Points[iDegree][jDegree][kDegree][0] = Coord_Corner_Points[0][0] - + double(iDegree)/double(lDegree)*(Coord_Corner_Points[1][0]-Coord_Corner_Points[0][0]); + + su2double(iDegree)/su2double(lDegree)*(Coord_Corner_Points[1][0]-Coord_Corner_Points[0][0]); Coord_Control_Points[iDegree][jDegree][kDegree][1] = Coord_Corner_Points[0][1] - + double(jDegree)/double(mDegree)*(Coord_Corner_Points[3][1]-Coord_Corner_Points[0][1]); + + su2double(jDegree)/su2double(mDegree)*(Coord_Corner_Points[3][1]-Coord_Corner_Points[0][1]); Coord_Control_Points[iDegree][jDegree][kDegree][2] = Coord_Corner_Points[0][2] - + double(kDegree)/double(nDegree)*(Coord_Corner_Points[4][2]-Coord_Corner_Points[0][2]); + + su2double(kDegree)/su2double(nDegree)*(Coord_Corner_Points[4][2]-Coord_Corner_Points[0][2]); } } @@ -6585,13 +6585,13 @@ void CFreeFormDefBox::SetSupportCP(CFreeFormDefBox *FFDBox) { unsigned short mOrder = FFDBox->GetmOrder(); unsigned short nOrder = FFDBox->GetnOrder(); - Coord_SupportCP = new double*** [lOrder]; + Coord_SupportCP = new su2double*** [lOrder]; for (iOrder = 0; iOrder < lOrder; iOrder++) { - Coord_SupportCP[iOrder] = new double** [mOrder]; + Coord_SupportCP[iOrder] = new su2double** [mOrder]; for (jOrder = 0; jOrder < mOrder; jOrder++) { - Coord_SupportCP[iOrder][jOrder] = new double* [nOrder]; + Coord_SupportCP[iOrder][jOrder] = new su2double* [nOrder]; for (kOrder = 0; kOrder < nOrder; kOrder++) - Coord_SupportCP[iOrder][jOrder][kOrder] = new double [nDim]; + Coord_SupportCP[iOrder][jOrder][kOrder] = new su2double [nDim]; } } @@ -6612,28 +6612,28 @@ void CFreeFormDefBox::SetSupportCP(CFreeFormDefBox *FFDBox) { for (jOrder = 0; jOrder < mOrder; jOrder++) for (kOrder = 0; kOrder < nOrder; kOrder++) { Coord_SupportCP[iOrder][jOrder][kOrder][0] = Coord_Corner_Points[0][0] - + double(iOrder)/double(lOrder-1)*(Coord_Corner_Points[1][0]-Coord_Corner_Points[0][0]); + + su2double(iOrder)/su2double(lOrder-1)*(Coord_Corner_Points[1][0]-Coord_Corner_Points[0][0]); Coord_SupportCP[iOrder][jOrder][kOrder][1] = Coord_Corner_Points[0][1] - + double(jOrder)/double(mOrder-1)*(Coord_Corner_Points[3][1]-Coord_Corner_Points[0][1]); + + su2double(jOrder)/su2double(mOrder-1)*(Coord_Corner_Points[3][1]-Coord_Corner_Points[0][1]); Coord_SupportCP[iOrder][jOrder][kOrder][2] = Coord_Corner_Points[0][2] - + double(kOrder)/double(nOrder-1)*(Coord_Corner_Points[4][2]-Coord_Corner_Points[0][2]); + + su2double(kOrder)/su2double(nOrder-1)*(Coord_Corner_Points[4][2]-Coord_Corner_Points[0][2]); } } void CFreeFormDefBox::SetSupportCPChange(CFreeFormDefBox *FFDBox) { unsigned short iDim, iOrder, jOrder, kOrder; - double *CartCoordNew, *ParamCoord; + su2double *CartCoordNew, *ParamCoord; unsigned short lOrder = FFDBox->GetlOrder(); unsigned short mOrder = FFDBox->GetmOrder(); unsigned short nOrder = FFDBox->GetnOrder(); - double ****ParamCoord_SupportCP = new double*** [lOrder]; + su2double ****ParamCoord_SupportCP = new su2double*** [lOrder]; for (iOrder = 0; iOrder < lOrder; iOrder++) { - ParamCoord_SupportCP[iOrder] = new double** [mOrder]; + ParamCoord_SupportCP[iOrder] = new su2double** [mOrder]; for (jOrder = 0; jOrder < mOrder; jOrder++) { - ParamCoord_SupportCP[iOrder][jOrder] = new double* [nOrder]; + ParamCoord_SupportCP[iOrder][jOrder] = new su2double* [nOrder]; for (kOrder = 0; kOrder < nOrder; kOrder++) - ParamCoord_SupportCP[iOrder][jOrder][kOrder] = new double [nDim]; + ParamCoord_SupportCP[iOrder][jOrder][kOrder] = new su2double [nDim]; } } @@ -6677,7 +6677,7 @@ void CFreeFormDefBox::SetTecplot(CGeometry *geometry, unsigned short iFFDBox, bo nDim = geometry->GetnDim(); - sprintf (FFDBox_filename, "ffd_boxes.dat"); + SPRINTF (FFDBox_filename, "ffd_boxes.dat"); if ((original) && (iFFDBox == 0)) new_file = true; else new_file = false; @@ -6723,12 +6723,12 @@ void CFreeFormDefBox::SetTecplot(CGeometry *geometry, unsigned short iFFDBox, bo } -double *CFreeFormDefBox::GetParametricCoord_Analytical(double *cart_coord) { +su2double *CFreeFormDefBox::GetParametricCoord_Analytical(su2double *cart_coord) { unsigned short iDim; - double *e1, *e2, *e3, *e12, *e23, *e13, *p; + su2double *e1, *e2, *e3, *e12, *e23, *e13, *p; /*--- Auxiliary Basis Vectors of the deformed FFDBox ---*/ - e1 = new double[3]; e2 = new double[3]; e3 = new double[3]; + e1 = new su2double[3]; e2 = new su2double[3]; e3 = new su2double[3]; for (iDim = 0; iDim < nDim; iDim++) { e1[iDim] = Coord_Corner_Points[1][iDim]-Coord_Corner_Points[0][iDim]; e2[iDim] = Coord_Corner_Points[3][iDim]-Coord_Corner_Points[0][iDim]; @@ -6736,13 +6736,13 @@ double *CFreeFormDefBox::GetParametricCoord_Analytical(double *cart_coord) { } /*--- Respective Cross-Products ---*/ - e12 = new double[3]; e23 = new double[3]; e13 = new double[3]; + e12 = new su2double[3]; e23 = new su2double[3]; e13 = new su2double[3]; CrossProduct(e1, e2, e12); CrossProduct(e1, e3, e13); CrossProduct(e2, e3, e23); /*--- p is Tranlated vector from the origin ---*/ - p = new double[3]; + p = new su2double[3]; for (iDim = 0; iDim < nDim; iDim++) p[iDim] = cart_coord[iDim] - Coord_Corner_Points[0][iDim]; @@ -6761,7 +6761,7 @@ double *CFreeFormDefBox::GetParametricCoord_Analytical(double *cart_coord) { return ParamCoord; } -double *CFreeFormDefBox::EvalCartesianCoord(double *ParamCoord) { +su2double *CFreeFormDefBox::EvalCartesianCoord(su2double *ParamCoord) { unsigned short iDim, iDegree, jDegree, kDegree; for (iDim = 0; iDim < nDim; iDim++) @@ -6780,9 +6780,9 @@ double *CFreeFormDefBox::EvalCartesianCoord(double *ParamCoord) { return cart_coord; } -double CFreeFormDefBox::GetBernstein(short val_n, short val_i, double val_t) { +su2double CFreeFormDefBox::GetBernstein(short val_n, short val_i, su2double val_t) { - double value = 0.0; + su2double value = 0.0; if (val_i > val_n) { value = 0; return value; } if (val_i == 0) { @@ -6800,9 +6800,9 @@ double CFreeFormDefBox::GetBernstein(short val_n, short val_i, double val_t) { return value; } -double CFreeFormDefBox::GetBernsteinDerivative(short val_n, short val_i, - double val_t, short val_order) { - double value = 0.0; +su2double CFreeFormDefBox::GetBernsteinDerivative(short val_n, short val_i, + su2double val_t, short val_order) { + su2double value = 0.0; /*--- Verify this subroutine, it provides negative val_n, which is a wrong value for GetBernstein ---*/ @@ -6827,7 +6827,7 @@ double CFreeFormDefBox::GetBernsteinDerivative(short val_n, short val_i, return value; } -double *CFreeFormDefBox::GetFFDGradient(double *val_coord, double *xyz) { +su2double *CFreeFormDefBox::GetFFDGradient(su2double *val_coord, su2double *xyz) { unsigned short iDim, jDim, lmn[3]; @@ -6846,7 +6846,7 @@ double *CFreeFormDefBox::GetFFDGradient(double *val_coord, double *xyz) { } -void CFreeFormDefBox::GetFFDHessian(double *uvw, double *xyz, double **val_Hessian) { +void CFreeFormDefBox::GetFFDHessian(su2double *uvw, su2double *xyz, su2double **val_Hessian) { unsigned short iDim, jDim, lmn[3]; @@ -6887,22 +6887,22 @@ void CFreeFormDefBox::GetFFDHessian(double *uvw, double *xyz, double **val_Hessi } -double *CFreeFormDefBox::GetParametricCoord_Iterative(unsigned long iPoint, double *xyz, double *ParamCoordGuess, CConfig *config) { +su2double *CFreeFormDefBox::GetParametricCoord_Iterative(unsigned long iPoint, su2double *xyz, su2double *ParamCoordGuess, CConfig *config) { - double *IndepTerm, SOR_Factor = 1.0, MinNormError, NormError, Determinant, AdjHessian[3][3], Temp[3] = {0.0,0.0,0.0}; + su2double *IndepTerm, SOR_Factor = 1.0, MinNormError, NormError, Determinant, AdjHessian[3][3], Temp[3] = {0.0,0.0,0.0}; unsigned short iDim, jDim, RandonCounter; unsigned long iter; - double tol = config->GetFFD_Tol(); + su2double tol = config->GetFFD_Tol(); unsigned short it_max = config->GetnFFD_Iter(); unsigned short Random_Trials = 500; /*--- Allocate the Hessian ---*/ - Hessian = new double* [nDim]; - IndepTerm = new double [nDim]; + Hessian = new su2double* [nDim]; + IndepTerm = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) { - Hessian[iDim] = new double[nDim]; + Hessian[iDim] = new su2double[nDim]; ParamCoord[iDim] = ParamCoordGuess[iDim]; IndepTerm [iDim] = 0.0; } @@ -6983,7 +6983,7 @@ double *CFreeFormDefBox::GetParametricCoord_Iterative(unsigned long iPoint, doub else { SOR_Factor = 0.1; for (iDim = 0; iDim < nDim; iDim++) - ParamCoord[iDim] = double(rand())/double(RAND_MAX); + ParamCoord[iDim] = su2double(rand())/su2double(RAND_MAX); } } @@ -7025,7 +7025,7 @@ unsigned long CFreeFormDefBox::Binomial(unsigned short n, unsigned short m) { } bool CFreeFormDefBox::GetPointFFD(CGeometry *geometry, CConfig *config, unsigned long iPoint) { - double Coord[3] = {0.0, 0.0, 0.0}; + su2double Coord[3] = {0.0, 0.0, 0.0}; unsigned short iVar, jVar, iDim; bool Inside = false; @@ -7049,12 +7049,12 @@ bool CFreeFormDefBox::GetPointFFD(CGeometry *geometry, CConfig *config, unsigned for (iVar = 0; iVar < 5; iVar++) { Inside = true; for (jVar = 0; jVar < 4; jVar++) { - double Distance_Point = geometry->Point2Plane_Distance(Coord, + su2double Distance_Point = geometry->Point2Plane_Distance(Coord, Coord_Corner_Points[Index[iVar][jVar+1]], Coord_Corner_Points[Index[iVar][jVar+2]], Coord_Corner_Points[Index[iVar][jVar+3]]); - double Distance_Vertex = geometry->Point2Plane_Distance(Coord_Corner_Points[Index[iVar][jVar]], + su2double Distance_Vertex = geometry->Point2Plane_Distance(Coord_Corner_Points[Index[iVar][jVar]], Coord_Corner_Points[Index[iVar][jVar+1]], Coord_Corner_Points[Index[iVar][jVar+2]], Coord_Corner_Points[Index[iVar][jVar+3]]); @@ -7068,7 +7068,7 @@ bool CFreeFormDefBox::GetPointFFD(CGeometry *geometry, CConfig *config, unsigned } void CFreeFormDefBox::SetDeformationZone(CGeometry *geometry, CConfig *config, unsigned short iFFDBox) { - double *Coord; + su2double *Coord; unsigned short iMarker, iVar, jVar; unsigned long iVertex, iPoint; bool Inside = false; @@ -7097,11 +7097,11 @@ void CFreeFormDefBox::SetDeformationZone(CGeometry *geometry, CConfig *config, u for (iVar = 0; iVar < 5; iVar++) { Inside = true; for (jVar = 0; jVar < 4; jVar++) { - double Distance_Point = geometry->Point2Plane_Distance(Coord, + su2double Distance_Point = geometry->Point2Plane_Distance(Coord, Coord_Corner_Points[Index[iVar][jVar+1]], Coord_Corner_Points[Index[iVar][jVar+2]], Coord_Corner_Points[Index[iVar][jVar+3]]); - double Distance_Vertex = geometry->Point2Plane_Distance(Coord_Corner_Points[Index[iVar][jVar]], + su2double Distance_Vertex = geometry->Point2Plane_Distance(Coord_Corner_Points[Index[iVar][jVar]], Coord_Corner_Points[Index[iVar][jVar+1]], Coord_Corner_Points[Index[iVar][jVar+2]], Coord_Corner_Points[Index[iVar][jVar+3]]); @@ -7117,10 +7117,10 @@ void CFreeFormDefBox::SetDeformationZone(CGeometry *geometry, CConfig *config, u } } -double CFreeFormDefBox::GetDerivative1(double *uvw, unsigned short val_diff, unsigned short *ijk, unsigned short *lmn) { +su2double CFreeFormDefBox::GetDerivative1(su2double *uvw, unsigned short val_diff, unsigned short *ijk, unsigned short *lmn) { unsigned short iDim; - double value = 0.0; + su2double value = 0.0; value = GetBernsteinDerivative(lmn[val_diff], ijk[val_diff], uvw[val_diff], 1); for (iDim = 0; iDim < nDim; iDim++) @@ -7131,10 +7131,10 @@ double CFreeFormDefBox::GetDerivative1(double *uvw, unsigned short val_diff, uns } -double CFreeFormDefBox::GetDerivative2 (double *uvw, unsigned short dim, double *xyz, unsigned short *lmn) { +su2double CFreeFormDefBox::GetDerivative2 (su2double *uvw, unsigned short dim, su2double *xyz, unsigned short *lmn) { unsigned short iDegree, jDegree, kDegree; - double value = 0.0; + su2double value = 0.0; for (iDegree = 0; iDegree <= lmn[0]; iDegree++) for (jDegree = 0; jDegree <= lmn[1]; jDegree++) @@ -7148,10 +7148,10 @@ double CFreeFormDefBox::GetDerivative2 (double *uvw, unsigned short dim, double return 2.0*(value - xyz[dim]); } -double CFreeFormDefBox::GetDerivative3(double *uvw, unsigned short dim, unsigned short diff_this, unsigned short *lmn) { +su2double CFreeFormDefBox::GetDerivative3(su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short *lmn) { unsigned short iDegree, jDegree, kDegree, iDim; - double value = 0; + su2double value = 0; unsigned short *ijk = new unsigned short[nDim]; @@ -7170,10 +7170,10 @@ double CFreeFormDefBox::GetDerivative3(double *uvw, unsigned short dim, unsigned return value; } -double CFreeFormDefBox::GetDerivative4(double *uvw, unsigned short val_diff, unsigned short val_diff2, +su2double CFreeFormDefBox::GetDerivative4(su2double *uvw, unsigned short val_diff, unsigned short val_diff2, unsigned short *ijk, unsigned short *lmn) { unsigned short iDim; - double value = 0.0; + su2double value = 0.0; if (val_diff == val_diff2) { value = GetBernsteinDerivative(lmn[val_diff], ijk[val_diff], uvw[val_diff], 2); @@ -7192,11 +7192,11 @@ double CFreeFormDefBox::GetDerivative4(double *uvw, unsigned short val_diff, uns return value; } -double CFreeFormDefBox::GetDerivative5(double *uvw, unsigned short dim, unsigned short diff_this, unsigned short diff_this_also, +su2double CFreeFormDefBox::GetDerivative5(su2double *uvw, unsigned short dim, unsigned short diff_this, unsigned short diff_this_also, unsigned short *lmn) { unsigned short iDegree, jDegree, kDegree, iDim; - double value = 0.0; + su2double value = 0.0; unsigned short *ijk = new unsigned short[nDim]; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index c44eb037497..df756417841 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -61,12 +61,12 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) unsigned short it; if (nVar>0){ /*--- Initialize Data vectors to 0 ---*/ - Data = new double**[nZone]; + Data = new su2double**[nZone]; for (it=0; itGetnPoint()]; + Data[iZone] = new su2double*[Geometry[iZone][MESH_0]->GetnPoint()]; for (unsigned long iPoint =0; iPoint< Geometry[iZone][MESH_0]->GetnPoint(); iPoint++){ - Data[iZone][iPoint] = new double[nVar]; + Data[iZone][iPoint] = new su2double[nVar]; for (unsigned short iVar=0; iVarGetnDim(); /*--- Loop over vertices in the interface marker (zone 0) ---*/ for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ @@ -168,21 +168,21 @@ void CInterpolator::Interpolate_Deformation(unsigned int iZone, CConfig **config } -double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ +su2double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ if (Data !=NULL) return Data[iZone][iPoint][iVar]; else return 0.0; // Check this. } -double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ +su2double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ if (Data !=NULL) return Data[iZone][iPoint]; else return NULL; } -void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, double val){ +void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val){ if (Data !=NULL) Data[iZone][iPoint][iVar]=val; else @@ -207,7 +207,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex,*nn; unsigned short iMarker, iDim, jMarker; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; - double distance = 0.0, last_distance=-1.0; + su2double distance = 0.0, last_distance=-1.0; unsigned short int donorindex = 0; unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; @@ -326,11 +326,11 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned short iMarker, iDim, jMarker, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); unsigned short iDonor, jDonor; - double distance = 0.0, last_distance=-1.0, *Coord; - double* myCoeff; - double* myCoefftemp; - double* donorCoord; - double coeff; + su2double distance = 0.0, last_distance=-1.0, *Coord; + su2double* myCoeff; + su2double* myCoefftemp; + su2double* donorCoord; + su2double coeff; long donor_elem=0, temp_donor; unsigned short int donorindex = 0; @@ -422,7 +422,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- use Isoparametric rep. to find distance to projected point on the surface ---*/ //delete[] myCoefftemp; - myCoefftemp = new double[nNodes]; + myCoefftemp = new su2double[nNodes]; Isoparametric( myCoefftemp, iZone_0, markFlow, iVertex, nDim, iZone_1, markFEA, temp_donor, nNodes, temp2); /*--- If closer than last closest projected point, save. ---*/ Coord = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(); @@ -439,7 +439,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ if ((last_distance==-1) or (distancevertex[markFlow][iVertex]->SetDonorElem(temp_donor); @@ -513,21 +513,21 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -void CConsistConserve::Isoparametric(double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2){ +void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2){ int i,j,k; int n0 = nDim+1, n; - double tmp, tmp2, distance; + su2double tmp, tmp2, distance; unsigned long jVertex, inode; /*--- Number of neighbor points to interpolate between ---*/ unsigned int m0 = nDonorPoints, m; - double x[m0], x_tmp[m0]; + su2double x[m0], x_tmp[m0]; /*--- Q R matrix system ---*/ - double Q[m0*m0], R[m0*m0], A[n0*m0]; + su2double Q[m0*m0], R[m0*m0], A[n0*m0]; bool test[n0]; bool testi[n0]; - double x2[n0]; + su2double x2[n0]; int offset; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; @@ -589,7 +589,7 @@ void CConsistConserve::Isoparametric(double* isoparams, unsigned int iZone_0, un } if (!test[i]) n--; } - double A2[n*m]; + su2double A2[n*m]; j=0; diff --git a/Common/src/linear_solvers_structure.cpp b/Common/src/linear_solvers_structure.cpp index 92ab69459bd..3a93d95624c 100644 --- a/Common/src/linear_solvers_structure.cpp +++ b/Common/src/linear_solvers_structure.cpp @@ -29,27 +29,27 @@ #include "../include/linear_solvers_structure.hpp" -void CSysSolve::ApplyGivens(const double & s, const double & c, double & h1, double & h2) { +void CSysSolve::ApplyGivens(const su2double & s, const su2double & c, su2double & h1, su2double & h2) { - double temp = c*h1 + s*h2; + su2double temp = c*h1 + s*h2; h2 = c*h2 - s*h1; h1 = temp; } -void CSysSolve::GenerateGivens(double & dx, double & dy, double & s, double & c) { +void CSysSolve::GenerateGivens(su2double & dx, su2double & dy, su2double & s, su2double & c) { if ( (dx == 0.0) && (dy == 0.0) ) { c = 1.0; s = 0.0; } else if ( fabs(dy) > fabs(dx) ) { - double tmp = dx/dy; + su2double tmp = dx/dy; dx = sqrt(1.0 + tmp*tmp); s = Sign(1.0/dx, dy); c = tmp*s; } else if ( fabs(dy) <= fabs(dx) ) { - double tmp = dy/dx; + su2double tmp = dy/dx; dy = sqrt(1.0 + tmp*tmp); c = Sign(1.0/dy, dx); s = tmp*c; @@ -65,8 +65,8 @@ void CSysSolve::GenerateGivens(double & dx, double & dy, double & s, double & c) dy = 0.0; } -void CSysSolve::SolveReduced(const int & n, const vector > & Hsbg, - const vector & rhs, vector & x) { +void CSysSolve::SolveReduced(const int & n, const vector > & Hsbg, + const vector & rhs, vector & x) { // initialize... for (int i = 0; i < n; i++) x[i] = rhs[i]; @@ -79,7 +79,7 @@ void CSysSolve::SolveReduced(const int & n, const vector > & Hsbg } } -void CSysSolve::ModGramSchmidt(int i, vector > & Hsbg, vector & w) { +void CSysSolve::ModGramSchmidt(int i, vector > & Hsbg, vector & w) { bool Convergence = true; int rank = MASTER_NODE; @@ -92,13 +92,13 @@ void CSysSolve::ModGramSchmidt(int i, vector > & Hsbg, vector > & Hsbg, vector > & Hsbg, vector > & Hsbg, vector > & Hsbg, vector tol*10.0) { // if (rank == MASTER_NODE) { @@ -312,7 +312,7 @@ int rank = 0; } unsigned long CSysSolve::FGMRES_LinSolver(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, - CPreconditioner & precond, double tol, unsigned long m, double *residual, bool monitoring) { + CPreconditioner & precond, su2double tol, unsigned long m, su2double *residual, bool monitoring) { int rank = 0; @@ -350,15 +350,15 @@ int rank = 0; vector w(m+1, x); vector z(m+1, x); - vector g(m+1, 0.0); - vector sn(m+1, 0.0); - vector cs(m+1, 0.0); - vector y(m, 0.0); - vector > H(m+1, vector(m, 0.0)); + vector g(m+1, 0.0); + vector sn(m+1, 0.0); + vector cs(m+1, 0.0); + vector y(m, 0.0); + vector > H(m+1, vector(m, 0.0)); /*--- Calculate the norm of the rhs vector ---*/ - double norm0 = b.norm(); + su2double norm0 = b.norm(); /*--- Calculate the initial residual (actually the negative residual) and compute its norm ---*/ @@ -366,7 +366,7 @@ int rank = 0; mat_vec(x, w[0]); w[0] -= b; - double beta = w[0].norm(); + su2double beta = w[0].norm(); if ( (beta < tol*norm0) || (beta < eps) ) { @@ -451,7 +451,7 @@ int rank = 0; // /*--- Recalculate final (neg.) residual (this should be optional) ---*/ // mat_vec(x, w[0]); // w[0] -= b; -// double res = w[0].norm(); +// su2double res = w[0].norm(); // // if (fabs(res - beta) > tol*10) { // if (rank == MASTER_NODE) { @@ -467,7 +467,7 @@ int rank = 0; } unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, - CPreconditioner & precond, double tol, unsigned long m, double *residual, bool monitoring) { + CPreconditioner & precond, su2double tol, unsigned long m, su2double *residual, bool monitoring) { int rank = 0; #ifdef HAVE_MPI @@ -500,8 +500,8 @@ unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, mat_vec(x, A_x); r -= A_x; r_0 = r; // recall, r holds b initially - double norm_r = r.norm(); - double norm0 = b.norm(); + su2double norm_r = r.norm(); + su2double norm0 = b.norm(); if ( (norm_r < tol*norm0) || (norm_r < eps) ) { if (rank == MASTER_NODE) cout << "CSysSolve::BCGSTAB(): system solved by initial guess." << endl; return 0; @@ -509,7 +509,7 @@ unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, /*--- Initialization ---*/ - double alpha = 1.0, beta = 1.0, omega = 1.0, rho = 1.0, rho_prime = 1.0; + su2double alpha = 1.0, beta = 1.0, omega = 1.0, rho = 1.0, rho_prime = 1.0; /*--- Set the norm to the initial initial residual value ---*/ @@ -541,7 +541,7 @@ unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, /*--- p_{i} = r_{i-1} + beta * p_{i-1} - beta * omega * v_{i-1} ---*/ - double beta_omega = -beta*omega; + su2double beta_omega = -beta*omega; p.Equals_AX_Plus_BY(beta, p, beta_omega, v); p.Plus_AX(1.0, r); @@ -552,7 +552,7 @@ unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, /*--- Calculate step-length alpha ---*/ - double r_0_v = dotProd(r_0, v); + su2double r_0_v = dotProd(r_0, v); alpha = rho / r_0_v; /*--- s_{i} = r_{i-1} - alpha * v_{i} ---*/ @@ -589,7 +589,7 @@ unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, // /*--- Recalculate final residual (this should be optional) ---*/ // mat_vec(x, A_x); // r = b; r -= A_x; -// double true_res = r.norm(); +// su2double true_res = r.norm(); // // if ((fabs(true_res - norm_r) > tol*10.0) && (rank == MASTER_NODE)) { // cout << "# WARNING in CSysSolve::BCGSTAB(): " << endl; @@ -603,7 +603,7 @@ unsigned long CSysSolve::BCGSTAB_LinSolver(const CSysVector & b, CSysVector & x, unsigned long CSysSolve::Solve(CSysMatrix & Jacobian, CSysVector & LinSysRes, CSysVector & LinSysSol, CGeometry *geometry, CConfig *config) { - double SolverTol = config->GetLinear_Solver_Error(), Residual; + su2double SolverTol = config->GetLinear_Solver_Error(), Residual; unsigned long MaxIter = config->GetLinear_Solver_Iter(); unsigned long IterLinSol = 0; CMatrixVectorProduct *mat_vec; diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 5c772e9728d..61eb75f0273 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -206,15 +206,15 @@ void CSysMatrix::SetIndexes(unsigned long val_nPoint, unsigned long val_nPointDo row_ptr = val_row_ptr; col_ind = val_col_ind; - matrix = new double [nnz*nVar*nEqn]; // Reserve memory for the values of the matrix - block = new double [nVar*nEqn]; - block_weight = new double [nVar*nEqn]; - block_inverse = new double [nVar*nEqn]; + matrix = new su2double [nnz*nVar*nEqn]; // Reserve memory for the values of the matrix + block = new su2double [nVar*nEqn]; + block_weight = new su2double [nVar*nEqn]; + block_inverse = new su2double [nVar*nEqn]; - prod_block_vector = new double [nEqn]; - prod_row_vector = new double [nVar]; - aux_vector = new double [nVar]; - sum_vector = new double [nVar]; + prod_block_vector = new su2double [nEqn]; + prod_row_vector = new su2double [nVar]; + aux_vector = new su2double [nVar]; + sum_vector = new su2double [nVar]; /*--- Memory initialization ---*/ @@ -236,7 +236,7 @@ void CSysMatrix::SetIndexes(unsigned long val_nPoint, unsigned long val_nPointDo /*--- Reserve memory for the ILU matrix. ---*/ - ILU_matrix = new double [nnz*nVar*nEqn]; + ILU_matrix = new su2double [nnz*nVar*nEqn]; for (iVar = 0; iVar < nnz*nVar*nEqn; iVar++) ILU_matrix[iVar] = 0.0; } @@ -249,13 +249,13 @@ void CSysMatrix::SetIndexes(unsigned long val_nPoint, unsigned long val_nPointDo /*--- Reserve memory for the values of the inverse of the preconditioner. ---*/ - invM = new double [nPoint*nVar*nEqn]; + invM = new su2double [nPoint*nVar*nEqn]; for (iVar = 0; iVar < nPoint*nVar*nEqn; iVar++) invM[iVar] = 0.0; } } -double *CSysMatrix::GetBlock(unsigned long block_i, unsigned long block_j) { +su2double *CSysMatrix::GetBlock(unsigned long block_i, unsigned long block_j) { unsigned long step = 0, index; @@ -267,7 +267,7 @@ double *CSysMatrix::GetBlock(unsigned long block_i, unsigned long block_j) { } -double CSysMatrix::GetBlock(unsigned long block_i, unsigned long block_j, unsigned short iVar, unsigned short jVar) { +su2double CSysMatrix::GetBlock(unsigned long block_i, unsigned long block_j, unsigned short iVar, unsigned short jVar) { unsigned long step = 0, index; @@ -279,7 +279,7 @@ double CSysMatrix::GetBlock(unsigned long block_i, unsigned long block_j, unsign } -void CSysMatrix::SetBlock(unsigned long block_i, unsigned long block_j, double **val_block) { +void CSysMatrix::SetBlock(unsigned long block_i, unsigned long block_j, su2double **val_block) { unsigned long iVar, jVar, index, step = 0; @@ -295,7 +295,7 @@ void CSysMatrix::SetBlock(unsigned long block_i, unsigned long block_j, double * } -void CSysMatrix::SetBlock(unsigned long block_i, unsigned long block_j, double *val_block) { +void CSysMatrix::SetBlock(unsigned long block_i, unsigned long block_j, su2double *val_block) { unsigned long iVar, jVar, index, step = 0; @@ -311,7 +311,7 @@ void CSysMatrix::SetBlock(unsigned long block_i, unsigned long block_j, double * } -void CSysMatrix::AddBlock(unsigned long block_i, unsigned long block_j, double **val_block) { +void CSysMatrix::AddBlock(unsigned long block_i, unsigned long block_j, su2double **val_block) { unsigned long iVar, jVar, index, step = 0; @@ -327,7 +327,7 @@ void CSysMatrix::AddBlock(unsigned long block_i, unsigned long block_j, double * } -void CSysMatrix::SubtractBlock(unsigned long block_i, unsigned long block_j, double **val_block) { +void CSysMatrix::SubtractBlock(unsigned long block_i, unsigned long block_j, su2double **val_block) { unsigned long iVar, jVar, index, step = 0; @@ -343,7 +343,7 @@ void CSysMatrix::SubtractBlock(unsigned long block_i, unsigned long block_j, dou } -double *CSysMatrix::GetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j) { +su2double *CSysMatrix::GetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j) { unsigned long step = 0, index; @@ -355,7 +355,7 @@ double *CSysMatrix::GetBlock_ILUMatrix(unsigned long block_i, unsigned long bloc } -void CSysMatrix::SetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, double *val_block) { +void CSysMatrix::SetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, su2double *val_block) { unsigned long iVar, jVar, index, step = 0; @@ -371,7 +371,7 @@ void CSysMatrix::SetBlock_ILUMatrix(unsigned long block_i, unsigned long block_j } -void CSysMatrix::SubtractBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, double *val_block) { +void CSysMatrix::SubtractBlock_ILUMatrix(unsigned long block_i, unsigned long block_j, su2double *val_block) { unsigned long iVar, jVar, index, step = 0; @@ -387,7 +387,7 @@ void CSysMatrix::SubtractBlock_ILUMatrix(unsigned long block_i, unsigned long bl } -void CSysMatrix::MatrixVectorProduct(double *matrix, double *vector, double *product) { +void CSysMatrix::MatrixVectorProduct(su2double *matrix, su2double *vector, su2double *product) { unsigned short iVar, jVar; @@ -400,7 +400,7 @@ void CSysMatrix::MatrixVectorProduct(double *matrix, double *vector, double *pro } -void CSysMatrix::MatrixMatrixProduct(double *matrix_a, double *matrix_b, double *product) { +void CSysMatrix::MatrixMatrixProduct(su2double *matrix_a, su2double *matrix_b, su2double *product) { unsigned short iVar, jVar, kVar; @@ -415,7 +415,7 @@ void CSysMatrix::MatrixMatrixProduct(double *matrix_a, double *matrix_b, double } -void CSysMatrix::AddVal2Diag(unsigned long block_i, double val_matrix) { +void CSysMatrix::AddVal2Diag(unsigned long block_i, su2double val_matrix) { unsigned long step = 0, iVar, index; @@ -430,7 +430,7 @@ void CSysMatrix::AddVal2Diag(unsigned long block_i, double val_matrix) { } -void CSysMatrix::SetVal2Diag(unsigned long block_i, double val_matrix) { +void CSysMatrix::SetVal2Diag(unsigned long block_i, su2double val_matrix) { unsigned long step = 0, iVar, jVar, index; @@ -466,12 +466,12 @@ void CSysMatrix::DeleteValsRowi(unsigned long i) { } -void CSysMatrix::Gauss_Elimination(unsigned long block_i, double* rhs) { +void CSysMatrix::Gauss_Elimination(unsigned long block_i, su2double* rhs) { short iVar, jVar, kVar; // This is important, otherwise some compilers optimizations will fail - double weight, aux; + su2double weight, aux; - double *Block = GetBlock(block_i, block_i); + su2double *Block = GetBlock(block_i, block_i); /*--- Copy block matrix, note that the original matrix is modified by the algorithm---*/ @@ -512,12 +512,12 @@ void CSysMatrix::Gauss_Elimination(unsigned long block_i, double* rhs) { } -void CSysMatrix::Gauss_Elimination_ILUMatrix(unsigned long block_i, double* rhs) { +void CSysMatrix::Gauss_Elimination_ILUMatrix(unsigned long block_i, su2double* rhs) { short iVar, jVar, kVar; // This is important, otherwise some compilers optimizations will fail - double weight, aux; + su2double weight, aux; - double *Block = GetBlock_ILUMatrix(block_i, block_i); + su2double *Block = GetBlock_ILUMatrix(block_i, block_i); /*--- Copy block matrix, note that the original matrix is modified by the algorithm---*/ @@ -555,10 +555,10 @@ void CSysMatrix::Gauss_Elimination_ILUMatrix(unsigned long block_i, double* rhs) } -void CSysMatrix::Gauss_Elimination(double* Block, double* rhs) { +void CSysMatrix::Gauss_Elimination(su2double* Block, su2double* rhs) { short iVar, jVar, kVar; // This is important, otherwise some compilers optimizations will fail - double weight, aux; + su2double weight, aux; /*--- Copy block matrix, note that the original matrix is modified by the algorithm---*/ @@ -600,7 +600,7 @@ void CSysMatrix::ProdBlockVector(unsigned long block_i, unsigned long block_j, c unsigned long j = block_j*nVar; unsigned short iVar, jVar; - double *block = GetBlock(block_i, block_j); + su2double *block = GetBlock(block_i, block_j); for (iVar = 0; iVar < nVar; iVar++) { prod_block_vector[iVar] = 0; @@ -665,7 +665,7 @@ void CSysMatrix::SendReceive_Solution(CSysVector & x, CGeometry *geometry, CConf unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive = NULL, *Buffer_Send = NULL; + su2double *Buffer_Receive = NULL, *Buffer_Send = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -691,8 +691,8 @@ void CSysMatrix::SendReceive_Solution(CSysVector & x, CGeometry *geometry, CConf /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive = new double [nBufferR_Vector]; - Buffer_Send = new double[nBufferS_Vector]; + Buffer_Receive = new su2double [nBufferR_Vector]; + Buffer_Send = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ @@ -706,7 +706,7 @@ void CSysMatrix::SendReceive_Solution(CSysVector & x, CGeometry *geometry, CConf /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -811,7 +811,7 @@ void CSysMatrix::MatrixVectorProduct(const CSysVector & vec, CSysVector & prod, } -void CSysMatrix::GetMultBlockBlock(double *c, double *a, double *b) { +void CSysMatrix::GetMultBlockBlock(su2double *c, su2double *a, su2double *b) { unsigned long iVar, jVar, kVar; @@ -824,7 +824,7 @@ void CSysMatrix::GetMultBlockBlock(double *c, double *a, double *b) { } -void CSysMatrix::GetMultBlockVector(double *c, double *a, double *b) { +void CSysMatrix::GetMultBlockVector(su2double *c, su2double *a, su2double *b) { unsigned long iVar, jVar; @@ -836,7 +836,7 @@ void CSysMatrix::GetMultBlockVector(double *c, double *a, double *b) { } -void CSysMatrix::GetSubsBlock(double *c, double *a, double *b) { +void CSysMatrix::GetSubsBlock(su2double *c, su2double *a, su2double *b) { unsigned long iVar, jVar; @@ -846,7 +846,7 @@ void CSysMatrix::GetSubsBlock(double *c, double *a, double *b) { } -void CSysMatrix::GetSubsVector(double *c, double *a, double *b) { +void CSysMatrix::GetSubsVector(su2double *c, su2double *a, su2double *b) { unsigned long iVar; @@ -855,7 +855,7 @@ void CSysMatrix::GetSubsVector(double *c, double *a, double *b) { } -void CSysMatrix::InverseBlock(double *Block, double *invBlock) { +void CSysMatrix::InverseBlock(su2double *Block, su2double *invBlock) { unsigned long iVar, jVar; @@ -873,7 +873,7 @@ void CSysMatrix::InverseBlock(double *Block, double *invBlock) { } -void CSysMatrix::InverseDiagonalBlock(unsigned long block_i, double *invBlock) { +void CSysMatrix::InverseDiagonalBlock(unsigned long block_i, su2double *invBlock) { unsigned long iVar, jVar; @@ -891,7 +891,7 @@ void CSysMatrix::InverseDiagonalBlock(unsigned long block_i, double *invBlock) { } -void CSysMatrix::InverseDiagonalBlock_ILUMatrix(unsigned long block_i, double *invBlock) { +void CSysMatrix::InverseDiagonalBlock_ILUMatrix(unsigned long block_i, su2double *invBlock) { unsigned long iVar, jVar; @@ -946,7 +946,7 @@ void CSysMatrix::ComputeJacobiPreconditioner(const CSysVector & vec, CSysVector } -unsigned long CSysMatrix::Jacobi_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, double tol, unsigned long m, double *residual, bool monitoring, CGeometry *geometry, CConfig *config) { +unsigned long CSysMatrix::Jacobi_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, su2double tol, unsigned long m, su2double *residual, bool monitoring, CGeometry *geometry, CConfig *config) { unsigned long iPoint, iVar, jVar; int rank = MASTER_NODE; @@ -979,8 +979,8 @@ unsigned long CSysMatrix::Jacobi_Smoother(const CSysVector & b, CSysVector & x, mat_vec(x, A_x); r -= A_x; - double norm_r = r.norm(); - double norm0 = b.norm(); + su2double norm_r = r.norm(); + su2double norm0 = b.norm(); if ( (norm_r < tol*norm0) || (norm_r < eps) ) { if (rank == MASTER_NODE) cout << "CSysMatrix::Jacobi_Smoother(): system solved by initial guess." << endl; return 0; @@ -1048,7 +1048,7 @@ unsigned long CSysMatrix::Jacobi_Smoother(const CSysVector & b, CSysVector & x, void CSysMatrix::BuildILUPreconditioner(void) { unsigned long index, index_; - double *Block_ij, *Block_jk; + su2double *Block_ij, *Block_jk; long iPoint, jPoint, kPoint; /*--- Copy block matrix, note that the original matrix @@ -1128,7 +1128,7 @@ void CSysMatrix::BuildILUPreconditioner(void) { void CSysMatrix::ComputeILUPreconditioner(const CSysVector & vec, CSysVector & prod, CGeometry *geometry, CConfig *config) { unsigned long index; - double *Block_ij; + su2double *Block_ij; long iPoint, jPoint; unsigned short iVar; @@ -1189,10 +1189,10 @@ void CSysMatrix::ComputeILUPreconditioner(const CSysVector & vec, CSysVector & p } -unsigned long CSysMatrix::ILU0_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, double tol, unsigned long m, double *residual, bool monitoring, CGeometry *geometry, CConfig *config) { +unsigned long CSysMatrix::ILU0_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, su2double tol, unsigned long m, su2double *residual, bool monitoring, CGeometry *geometry, CConfig *config) { unsigned long index; - double *Block_ij, omega = 1.0; + su2double *Block_ij, omega = 1.0; long iPoint, jPoint; unsigned short iVar; int rank = MASTER_NODE; @@ -1225,8 +1225,8 @@ unsigned long CSysMatrix::ILU0_Smoother(const CSysVector & b, CSysVector & x, CM mat_vec(x, A_x); r -= A_x; - double norm_r = r.norm(); - double norm0 = b.norm(); + su2double norm_r = r.norm(); + su2double norm0 = b.norm(); if ( (norm_r < tol*norm0) || (norm_r < eps) ) { if (rank == MASTER_NODE) cout << "CSysMatrix::ILU0_Smoother(): system solved by initial guess." << endl; return 0; @@ -1382,10 +1382,10 @@ void CSysMatrix::ComputeLU_SGSPreconditioner(const CSysVector & vec, CSysVector } -unsigned long CSysMatrix::LU_SGS_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, double tol, unsigned long m, double *residual, bool monitoring, CGeometry *geometry, CConfig *config) { +unsigned long CSysMatrix::LU_SGS_Smoother(const CSysVector & b, CSysVector & x, CMatrixVectorProduct & mat_vec, su2double tol, unsigned long m, su2double *residual, bool monitoring, CGeometry *geometry, CConfig *config) { unsigned long iPoint, iVar; - double omega = 1.0; + su2double omega = 1.0; int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -1417,8 +1417,8 @@ unsigned long CSysMatrix::LU_SGS_Smoother(const CSysVector & b, CSysVector & x, mat_vec(x, A_x); r -= A_x; - double norm_r = r.norm(); - double norm0 = b.norm(); + su2double norm_r = r.norm(); + su2double norm0 = b.norm(); if ( (norm_r < tol*norm0) || (norm_r < eps) ) { if (rank == MASTER_NODE) cout << "CSysMatrix::LU_SGS_Smoother(): system solved by initial guess." << endl; return 0; @@ -1512,7 +1512,7 @@ unsigned short CSysMatrix::BuildLineletPreconditioner(CGeometry *geometry, CConf bool *check_Point, add_point; unsigned long iEdge, iPoint, jPoint, index_Point, iLinelet, iVertex, next_Point, counter, iElem; unsigned short iMarker, iNode, ExtraLines = 100, MeanPoints; - double alpha = 0.9, weight, max_weight, *normal, area, volume_iPoint, volume_jPoint; + su2double alpha = 0.9, weight, max_weight, *normal, area, volume_iPoint, volume_jPoint; unsigned long Local_nPoints, Local_nLineLets, Global_nPoints, Global_nLineLets; /*--- Memory allocation --*/ @@ -1672,32 +1672,32 @@ unsigned short CSysMatrix::BuildLineletPreconditioner(CGeometry *geometry, CConf Global_nPoints = Local_nPoints; Global_nLineLets = Local_nLineLets; #else - MPI_Allreduce(&Local_nPoints, &Global_nPoints, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nLineLets, &Global_nLineLets, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPoints, &Global_nPoints, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nLineLets, &Global_nLineLets, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif - MeanPoints = int(double(Global_nPoints)/double(Global_nLineLets)); + MeanPoints = SU2_TYPE::Int(su2double(Global_nPoints)/su2double(Global_nLineLets)); /*--- Memory allocation --*/ - UBlock = new double* [max_nElem]; - invUBlock = new double* [max_nElem]; - LBlock = new double* [max_nElem]; - yVector = new double* [max_nElem]; - zVector = new double* [max_nElem]; - rVector = new double* [max_nElem]; + UBlock = new su2double* [max_nElem]; + invUBlock = new su2double* [max_nElem]; + LBlock = new su2double* [max_nElem]; + yVector = new su2double* [max_nElem]; + zVector = new su2double* [max_nElem]; + rVector = new su2double* [max_nElem]; for (iElem = 0; iElem < max_nElem; iElem++) { - UBlock[iElem] = new double [nVar*nVar]; - invUBlock[iElem] = new double [nVar*nVar]; - LBlock[iElem] = new double [nVar*nVar]; - yVector[iElem] = new double [nVar]; - zVector[iElem] = new double [nVar]; - rVector[iElem] = new double [nVar]; + UBlock[iElem] = new su2double [nVar*nVar]; + invUBlock[iElem] = new su2double [nVar*nVar]; + LBlock[iElem] = new su2double [nVar*nVar]; + yVector[iElem] = new su2double [nVar]; + zVector[iElem] = new su2double [nVar]; + rVector[iElem] = new su2double [nVar]; } - LFBlock = new double [nVar*nVar]; - LyVector = new double [nVar]; - FzVector = new double [nVar]; + LFBlock = new su2double [nVar*nVar]; + LyVector = new su2double [nVar]; + FzVector = new su2double [nVar]; /*--- Memory deallocation --*/ @@ -1712,7 +1712,7 @@ void CSysMatrix::ComputeLineletPreconditioner(const CSysVector & vec, CSysVector unsigned long iVar, jVar, nElem = 0, iLinelet, im1Point, iPoint, ip1Point, iElem; long iElemLoop; - double *block; + su2double *block; int rank = MASTER_NODE; int size = SINGLE_NODE; diff --git a/Common/src/primal_grid_structure.cpp b/Common/src/primal_grid_structure.cpp index a79aabbcef0..34367e63501 100644 --- a/Common/src/primal_grid_structure.cpp +++ b/Common/src/primal_grid_structure.cpp @@ -51,13 +51,13 @@ CPrimalGrid::~CPrimalGrid() { } -void CPrimalGrid::SetCG(double **val_coord) { +void CPrimalGrid::SetCG(su2double **val_coord) { unsigned short iDim, iNode, NodeFace, iFace; for (iDim = 0; iDim < nDim; iDim++) { Coord_CG[iDim] = 0.0; for (iNode = 0; iNode < GetnNodes(); iNode++) - Coord_CG[iDim] += val_coord[iNode][iDim]/double(GetnNodes()); + Coord_CG[iDim] += val_coord[iNode][iDim]/su2double(GetnNodes()); } for (iFace = 0; iFace < GetnFaces(); iFace++) @@ -65,7 +65,7 @@ void CPrimalGrid::SetCG(double **val_coord) { Coord_FaceElems_CG[iFace][iDim] = 0.0; for (iNode = 0; iNode < GetnNodesFace(iFace); iNode++) { NodeFace = GetFaces(iFace, iNode); - Coord_FaceElems_CG[iFace][iDim] += val_coord[NodeFace][iDim]/double(GetnNodesFace(iFace)); + Coord_FaceElems_CG[iFace][iDim] += val_coord[NodeFace][iDim]/su2double(GetnNodesFace(iFace)); } } } @@ -94,7 +94,7 @@ CVertexMPI::CVertexMPI(unsigned long val_point, unsigned short val_nDim) : CPrim /*--- Allocate CG coordinates ---*/ nDim = val_nDim; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; /*--- Allocate and define face structure of the element ---*/ @@ -142,12 +142,12 @@ CLine::CLine(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate CG coordinates ---*/ nDim = val_nDim; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } @@ -202,12 +202,12 @@ CTriangle::CTriangle(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate CG coordinates ---*/ nDim = val_nDim; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } @@ -269,12 +269,12 @@ CRectangle::CRectangle(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate CG coordinates ---*/ nDim = val_nDim; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } @@ -337,12 +337,12 @@ CTetrahedron::CTetrahedron(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate CG coordinates ---*/ nDim = 3; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } @@ -407,12 +407,12 @@ CHexahedron::CHexahedron(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate center-of-gravity coordinates ---*/ nDim = 3; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } @@ -489,12 +489,12 @@ CPrism::CPrism(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate CG coordinates ---*/ nDim = 3; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } @@ -565,12 +565,12 @@ CPyramid::CPyramid(unsigned long val_point_0, unsigned long val_point_1, /*--- Allocate CG coordinates ---*/ nDim = 3; - Coord_CG = new double[nDim]; + Coord_CG = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_CG[iDim] = 0.0; - Coord_FaceElems_CG = new double* [nFaces]; + Coord_FaceElems_CG = new su2double* [nFaces]; for (iFace = 0; iFace < nFaces; iFace++) { - Coord_FaceElems_CG[iFace] = new double [nDim]; + Coord_FaceElems_CG[iFace] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord_FaceElems_CG[iFace][iDim] = 0.0; } diff --git a/Common/src/vector_structure.cpp b/Common/src/vector_structure.cpp index 12ea60dad77..82ffa8c7815 100644 --- a/Common/src/vector_structure.cpp +++ b/Common/src/vector_structure.cpp @@ -35,7 +35,7 @@ CSysVector::CSysVector(void) { } -CSysVector::CSysVector(const unsigned long & size, const double & val) { +CSysVector::CSysVector(const unsigned long & size, const su2double & val) { nElm = size; nElmDomain = size; nBlk = nElm; nBlkDomain = nElmDomain; @@ -43,24 +43,24 @@ CSysVector::CSysVector(const unsigned long & size, const double & val) { /*--- Check for invalid size, then allocate memory and initialize values ---*/ if ( (nElm <= 0) || (nElm >= UINT_MAX) ) { - cerr << "CSysVector::CSysVector(unsigned int, double): " + cerr << "CSysVector::CSysVector(unsigned int, su2double): " << "invalid input: size = " << size << endl; throw(-1); } - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned int i = 0; i < nElm; i++) vec_val[i] = val; #ifdef HAVE_MPI unsigned long nElmLocal = (unsigned long)nElm; - MPI_Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif } CSysVector::CSysVector(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, - const double & val) { + const su2double & val) { nElm = numBlk*numVar; nElmDomain = numBlkDomain*numVar; nBlk = numBlk; nBlkDomain = numBlkDomain; @@ -68,12 +68,12 @@ CSysVector::CSysVector(const unsigned long & numBlk, const unsigned long & numBl /*--- Check for invalid input, then allocate memory and initialize values ---*/ if ( (nElm <= 0) || (nElm >= ULONG_MAX) ) { - cerr << "CSysVector::CSysVector(unsigned int, unsigned int, double): " + cerr << "CSysVector::CSysVector(unsigned int, unsigned int, su2double): " << "invalid input: numBlk, numVar = " << numBlk << "," << numVar << endl; throw(-1); } - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned int i = 0; i < nElm; i++) vec_val[i] = val; @@ -81,7 +81,7 @@ CSysVector::CSysVector(const unsigned long & numBlk, const unsigned long & numBl int myrank; MPI_Comm_rank(MPI_COMM_WORLD, &myrank); unsigned long nElmLocal = (unsigned long)nElm; - MPI_Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif } @@ -93,7 +93,7 @@ CSysVector::CSysVector(const CSysVector & u) { nBlk = u.nBlk; nBlkDomain = u.nBlkDomain; nVar = u.nVar; - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned long i = 0; i < nElm; i++) vec_val[i] = u.vec_val[i]; @@ -103,7 +103,7 @@ CSysVector::CSysVector(const CSysVector & u) { } -CSysVector::CSysVector(const unsigned long & size, const double* u_array) { +CSysVector::CSysVector(const unsigned long & size, const su2double* u_array) { nElm = size; nElmDomain = size; nBlk = nElm; nBlkDomain = nElmDomain; @@ -111,12 +111,12 @@ CSysVector::CSysVector(const unsigned long & size, const double* u_array) { /*--- Check for invalid size, then allocate memory and initialize values ---*/ if ( (nElm <= 0) || (nElm >= ULONG_MAX) ) { - cerr << "CSysVector::CSysVector(unsigned int, double*): " + cerr << "CSysVector::CSysVector(unsigned int, su2double*): " << "invalid input: size = " << size << endl; throw(-1); } - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned long i = 0; i < nElm; i++) vec_val[i] = u_array[i]; @@ -124,13 +124,13 @@ CSysVector::CSysVector(const unsigned long & size, const double* u_array) { int myrank; MPI_Comm_rank(MPI_COMM_WORLD, &myrank); unsigned long nElmLocal = (unsigned long)nElm; - MPI_Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif } CSysVector::CSysVector(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, - const double* u_array) { + const su2double* u_array) { nElm = numBlk*numVar; nElmDomain = numBlkDomain*numVar; nBlk = numBlk; nBlkDomain = numBlkDomain; @@ -138,18 +138,18 @@ CSysVector::CSysVector(const unsigned long & numBlk, const unsigned long & numBl /*--- check for invalid input, then allocate memory and initialize values ---*/ if ( (nElm <= 0) || (nElm >= ULONG_MAX) ) { - cerr << "CSysVector::CSysVector(unsigned int, unsigned int, double*): " + cerr << "CSysVector::CSysVector(unsigned int, unsigned int, su2double*): " << "invalid input: numBlk, numVar = " << numBlk << "," << numVar << endl; throw(-1); } - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned long i = 0; i < nElm; i++) vec_val[i] = u_array[i]; #ifdef HAVE_MPI unsigned long nElmLocal = (unsigned long)nElm; - MPI_Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif } @@ -163,7 +163,7 @@ CSysVector::~CSysVector() { } -void CSysVector::Initialize(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, const double & val) { +void CSysVector::Initialize(const unsigned long & numBlk, const unsigned long & numBlkDomain, const unsigned short & numVar, const su2double & val) { nElm = numBlk*numVar; nElmDomain = numBlkDomain*numVar; nBlk = numBlk; nBlkDomain = numBlkDomain; @@ -171,23 +171,23 @@ void CSysVector::Initialize(const unsigned long & numBlk, const unsigned long & /*--- Check for invalid input, then allocate memory and initialize values ---*/ if ( (nElm <= 0) || (nElm >= ULONG_MAX) ) { - cerr << "CSysVector::CSysVector(unsigned int, unsigned int, double): " + cerr << "CSysVector::CSysVector(unsigned int, unsigned int, su2double): " << "invalid input: numBlk, numVar = " << numBlk << "," << numVar << endl; throw(-1); } - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned long i = 0; i < nElm; i++) vec_val[i] = val; #ifdef HAVE_MPI unsigned long nElmLocal = (unsigned long)nElm; - MPI_Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nElmLocal, &nElmGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif } -void CSysVector::Equals_AX(const double & a, CSysVector & x) { +void CSysVector::Equals_AX(const su2double & a, CSysVector & x) { /*--- check that *this and x are compatible ---*/ if (nElm != x.nElm) { cerr << "CSysVector::Equals_AX(): " << "sizes do not match"; @@ -197,7 +197,7 @@ void CSysVector::Equals_AX(const double & a, CSysVector & x) { vec_val[i] = a * x.vec_val[i]; } -void CSysVector::Plus_AX(const double & a, CSysVector & x) { +void CSysVector::Plus_AX(const su2double & a, CSysVector & x) { /*--- check that *this and x are compatible ---*/ if (nElm != x.nElm) { cerr << "CSysVector::Plus_AX(): " << "sizes do not match"; @@ -207,7 +207,7 @@ void CSysVector::Plus_AX(const double & a, CSysVector & x) { vec_val[i] += a * x.vec_val[i]; } -void CSysVector::Equals_AX_Plus_BY(const double & a, CSysVector & x, const double & b, CSysVector & y) { +void CSysVector::Equals_AX_Plus_BY(const su2double & a, CSysVector & x, const su2double & b, CSysVector & y) { /*--- check that *this, x and y are compatible ---*/ if ((nElm != x.nElm) || (nElm != y.nElm)) { cerr << "CSysVector::Equals_AX_Plus_BY(): " << "sizes do not match"; @@ -230,7 +230,7 @@ CSysVector & CSysVector::operator=(const CSysVector & u) { nBlkDomain = u.nBlkDomain; nVar = u.nVar; - vec_val = new double[nElm]; + vec_val = new su2double[nElm]; for (unsigned long i = 0; i < nElm; i++) vec_val[i] = u.vec_val[i]; @@ -241,7 +241,7 @@ CSysVector & CSysVector::operator=(const CSysVector & u) { return *this; } -CSysVector & CSysVector::operator=(const double & val) { +CSysVector & CSysVector::operator=(const su2double & val) { for (unsigned long i = 0; i < nElm; i++) vec_val[i] = val; return *this; @@ -287,7 +287,7 @@ CSysVector & CSysVector::operator-=(const CSysVector & u) { return *this; } -CSysVector CSysVector::operator*(const double & val) const { +CSysVector CSysVector::operator*(const su2double & val) const { /*--- use copy constructor and compound scalar multiplication-assignment ---*/ @@ -296,7 +296,7 @@ CSysVector CSysVector::operator*(const double & val) const { return prod; } -CSysVector operator*(const double & val, const CSysVector & u) { +CSysVector operator*(const su2double & val, const CSysVector & u) { /*--- use copy constructor and compound scalar multiplication-assignment ---*/ @@ -305,14 +305,14 @@ CSysVector operator*(const double & val, const CSysVector & u) { return prod; } -CSysVector & CSysVector::operator*=(const double & val) { +CSysVector & CSysVector::operator*=(const su2double & val) { for (unsigned long i = 0; i < nElm; i++) vec_val[i] *= val; return *this; } -CSysVector CSysVector::operator/(const double & val) const { +CSysVector CSysVector::operator/(const su2double & val) const { /*--- use copy constructor and compound scalar division-assignment ---*/ @@ -321,17 +321,17 @@ CSysVector CSysVector::operator/(const double & val) const { return quotient; } -CSysVector & CSysVector::operator/=(const double & val) { +CSysVector & CSysVector::operator/=(const su2double & val) { for (unsigned long i = 0; i < nElm; i++) vec_val[i] /= val; return *this; } -double CSysVector::norm() const { +su2double CSysVector::norm() const { /*--- just call dotProd on this*, then sqrt ---*/ - double val = dotProd(*this, *this); + su2double val = dotProd(*this, *this); if (val < 0.0) { cerr << "CSysVector::norm(): " << "inner product of CSysVector is negative"; throw(-1); @@ -339,34 +339,34 @@ double CSysVector::norm() const { return sqrt(val); } -void CSysVector::CopyToArray(double* u_array) { +void CSysVector::CopyToArray(su2double* u_array) { for (unsigned long i = 0; i < nElm; i++) u_array[i] = vec_val[i]; } -void CSysVector::AddBlock(unsigned long val_ipoint, double *val_residual) { +void CSysVector::AddBlock(unsigned long val_ipoint, su2double *val_residual) { unsigned short iVar; for (iVar = 0; iVar < nVar; iVar++) vec_val[val_ipoint*nVar+iVar] += val_residual[iVar]; } -void CSysVector::SubtractBlock(unsigned long val_ipoint, double *val_residual) { +void CSysVector::SubtractBlock(unsigned long val_ipoint, su2double *val_residual) { unsigned short iVar; for (iVar = 0; iVar < nVar; iVar++) vec_val[val_ipoint*nVar+iVar] -= val_residual[iVar]; } -void CSysVector::SetBlock(unsigned long val_ipoint, double *val_residual) { +void CSysVector::SetBlock(unsigned long val_ipoint, su2double *val_residual) { unsigned short iVar; for (iVar = 0; iVar < nVar; iVar++) vec_val[val_ipoint*nVar+iVar] = val_residual[iVar]; } -void CSysVector::SetBlock(unsigned long val_ipoint, unsigned short val_var, double val_residual) { +void CSysVector::SetBlock(unsigned long val_ipoint, unsigned short val_var, su2double val_residual) { vec_val[val_ipoint*nVar+val_var] = val_residual; } @@ -382,15 +382,15 @@ void CSysVector::SetBlock_Zero(unsigned long val_ipoint, unsigned short val_var) vec_val[val_ipoint*nVar+val_var] = 0.0; } -double CSysVector::GetBlock(unsigned long val_ipoint, unsigned short val_var) { +su2double CSysVector::GetBlock(unsigned long val_ipoint, unsigned short val_var) { return vec_val[val_ipoint*nVar + val_var]; } -double *CSysVector::GetBlock(unsigned long val_ipoint) { +su2double *CSysVector::GetBlock(unsigned long val_ipoint) { return &vec_val[val_ipoint*nVar]; } -double dotProd(const CSysVector & u, const CSysVector & v) { +su2double dotProd(const CSysVector & u, const CSysVector & v) { /*--- check for consistent sizes ---*/ if (u.nElm != v.nElm) { @@ -401,13 +401,13 @@ double dotProd(const CSysVector & u, const CSysVector & v) { /*--- find local inner product and, if a parallel run, sum over all processors (we use nElemDomain instead of nElem) ---*/ - double loc_prod = 0.0; + su2double loc_prod = 0.0; for (unsigned long i = 0; i < u.nElmDomain; i++) loc_prod += u.vec_val[i]*v.vec_val[i]; - double prod = 0.0; + su2double prod = 0.0; #ifdef HAVE_MPI - MPI_Allreduce(&loc_prod, &prod, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&loc_prod, &prod, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else prod = loc_prod; #endif diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index f23d0bfdf91..fb01d5a94ba 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -58,22 +58,22 @@ class CElement { unsigned short nGaussPointsP; /*!< \brief Number of gaussian points for the pressure term. */ unsigned short nNodes; /*!< \brief Number of gaussian points. */ static unsigned short nDim; /*!< \brief Number of dimension of the problem. */ - double **CurrentCoord, /*!< \brief Coordinates in the current frame. */ + su2double **CurrentCoord, /*!< \brief Coordinates in the current frame. */ **RefCoord; /*!< \brief Coordinates in the reference frame. */ - double **GaussCoord, /*!< \brief Parent coordinates of the Gaussian Points. */ + su2double **GaussCoord, /*!< \brief Parent coordinates of the Gaussian Points. */ *GaussWeight; /*!< \brief Weight of the Gaussian Points for the integration. */ - double **GaussCoordP, /*!< \brief Parent coordinates of the Gaussian Points for the pressure subintegration.. */ + su2double **GaussCoordP, /*!< \brief Parent coordinates of the Gaussian Points for the pressure subintegration.. */ *GaussWeightP; /*!< \brief Weight of the Gaussian Points for the pressure subintegration. */ - double **NodalExtrap; /*!< \brief Coordinates of the nodal points for Gaussian extrapolation */ - double **NodalStress; /*!< \brief Stress at the nodes */ + su2double **NodalExtrap; /*!< \brief Coordinates of the nodal points for Gaussian extrapolation */ + su2double **NodalStress; /*!< \brief Stress at the nodes */ CGaussVariable **GaussPoint; /*!< \brief Structure for the Gaussian Points. */ CGaussVariable **GaussPointP; /*!< \brief Structure for the Gaussian Points for the pressure subintegration. */ - double **Mab; /*!< \brief Structure for the nodal components of the mass matrix. */ - double ***Kab; /*!< \brief Structure for the constitutive component of the tangent matrix. */ - double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ - double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ - double **Kt_a; /*!< \brief Structure for the nodal stress term for the residual computation. */ - double el_Pressure; /*!< \brief Pressure in the element */ + su2double **Mab; /*!< \brief Structure for the nodal components of the mass matrix. */ + su2double ***Kab; /*!< \brief Structure for the constitutive component of the tangent matrix. */ + su2double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ + su2double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ + su2double **Kt_a; /*!< \brief Structure for the nodal stress term for the residual computation. */ + su2double el_Pressure; /*!< \brief Pressure in the element */ public: /*! @@ -117,7 +117,7 @@ class CElement { * \param[in] iNode - Number of node. * \param[in] iDim - Dimension */ - void SetRef_Coord(double val_CoordRef, unsigned short iNode, unsigned short iDim); + void SetRef_Coord(su2double val_CoordRef, unsigned short iNode, unsigned short iDim); /*! * \brief Set the value of the coordinate of the nodes in the current configuration. @@ -125,13 +125,13 @@ class CElement { * \param[in] iNode - Number of node. * \param[in] iDim - Dimension */ - void SetCurr_Coord(double val_CoordCurr, unsigned short iNode, unsigned short iDim); + void SetCurr_Coord(su2double val_CoordCurr, unsigned short iNode, unsigned short iDim); /*! * \brief Set the value of the pressure in the element for incompressible materials. * \param[in] val_ElPressure - Value of the pressure. */ - void SetElement_Pressure(double val_ElPressure); + void SetElement_Pressure(su2double val_ElPressure); /*! * \brief Set the value of the coordinate of the nodes in the reference configuration. @@ -140,7 +140,7 @@ class CElement { * \param[in] iDim - Dimension * \param[out] Coordinate */ - double GetRef_Coord(unsigned short iNode, unsigned short iDim); + su2double GetRef_Coord(unsigned short iNode, unsigned short iDim); /*! * \brief Get the value of the coordinate of the nodes in the current configuration. @@ -149,55 +149,55 @@ class CElement { * \param[in] iDim - Dimension * \param[out] Coordinate */ - double GetCurr_Coord(unsigned short iNode, unsigned short iDim); + su2double GetCurr_Coord(unsigned short iNode, unsigned short iDim); /*! * \brief Get the weight of the corresponding Gaussian Point. * \param[in] iGauss - index of the Gaussian point. * \param[out] Weight. */ - double GetWeight(unsigned short iGauss); + su2double GetWeight(unsigned short iGauss); /*! * \brief Get the weight of the corresponding Gaussian Point for pressure subintegration. * \param[in] iGaussP - index of the Gaussian point. * \param[out] Weight. */ - double GetWeight_P(unsigned short iGaussP); + su2double GetWeight_P(unsigned short iGaussP); /*! * \brief Get the jacobian respect to the reference configuration for the Gaussian Point iGauss. * \param[in] iGauss - index of the Gaussian point. * \param[out] Weight. */ - double GetJ_X(unsigned short iGauss); + su2double GetJ_X(unsigned short iGauss); /*! * \brief Get the jacobian respect to the current configuration for the Gaussian Point iGauss. * \param[in] iGauss - index of the Gaussian point. * \param[out] Weight. */ - double GetJ_x(unsigned short iGauss); + su2double GetJ_x(unsigned short iGauss); /*! * \brief Get the jacobian respect to the reference configuration for the Gaussian Point iGauss and the pressure term. * \param[in] iGauss - index of the Gaussian point. * \param[out] Weight. */ - double GetJ_X_P(unsigned short iGauss); + su2double GetJ_X_P(unsigned short iGauss); /*! * \brief Get the jacobian respect to the current configuration for the Gaussian Point iGauss and the pressure term. * \param[in] iGauss - index of the Gaussian point. * \param[out] Weight. */ - double GetJ_x_P(unsigned short iGauss); + su2double GetJ_x_P(unsigned short iGauss); /*! * \brief Retrieve the value of the pressure in the element for incompressible materials. * \param[out] Value of the pressure. */ - double GetElement_Pressure(void); + su2double GetElement_Pressure(void); /*! * \brief Add the value of the diagonal term for the mass matrix. @@ -205,7 +205,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[in] val_Ks_ab - value of the term that will constitute the diagonal of the stress contribution. */ - void Add_Mab(double val_Mab, unsigned short nodeA, unsigned short nodeB); + void Add_Mab(su2double val_Mab, unsigned short nodeA, unsigned short nodeB); /*! * \brief Add the value of a submatrix K relating nodes a and b, for the constitutive term. @@ -213,7 +213,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. */ - void Add_Kab(double **val_Kab, unsigned short nodeA, unsigned short nodeB); + void Add_Kab(su2double **val_Kab, unsigned short nodeA, unsigned short nodeB); /*! * \brief Add the value of a submatrix K relating nodes a and b, for the constitutive term (symmetric terms need transpose) @@ -221,7 +221,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. */ - void Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short nodeB); + void Add_Kab_T(su2double **val_Kab, unsigned short nodeA, unsigned short nodeB); /*! @@ -230,14 +230,14 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[in] val_Ks_ab - value of the term that will constitute the diagonal of the stress contribution. */ - void Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB); + void Add_Ks_ab(su2double val_Ks_ab, unsigned short nodeA, unsigned short nodeB); /*! * \brief Add the value of the nodal stress term for the computation of the residual. * \param[in] nodeA - index of Node a. * \param[in] val_Kt_a - value of the term that will constitute the diagonal of the stress contribution. */ - void Add_Kt_a(double *val_Kt_a, unsigned short nodeA); + void Add_Kt_a(su2double *val_Kt_a, unsigned short nodeA); /*! * \brief Set the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). @@ -245,7 +245,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. */ - void Set_Kk_ab(double **val_Kk_ab, unsigned short nodeA, unsigned short nodeB); + void Set_Kk_ab(su2double **val_Kk_ab, unsigned short nodeA, unsigned short nodeB); /*! * \brief Restarts the values in the element. @@ -263,7 +263,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[out] val_Mab - value of the diagonal term of Mab. */ - double Get_Mab(unsigned short nodeA, unsigned short nodeB); + su2double Get_Mab(unsigned short nodeA, unsigned short nodeB); /*! * \brief Return the value of the submatrix K relating nodes a and b. @@ -271,7 +271,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[out] val_Kab - value of the matrix K. */ - double *Get_Kab(unsigned short nodeA, unsigned short nodeB); + su2double *Get_Kab(unsigned short nodeA, unsigned short nodeB); /*! * \brief Return the value of the diagonal term for the stress contribution, relating nodes a and b. @@ -279,7 +279,7 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[out] val_Kab - value of the matrix K. */ - double Get_Ks_ab(unsigned short nodeA, unsigned short nodeB); + su2double Get_Ks_ab(unsigned short nodeA, unsigned short nodeB); /*! * \brief Return the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). @@ -287,14 +287,14 @@ class CElement { * \param[in] nodeB - index of Node b. * \param[in] val_Kab - value of the matrix K. */ - double *Get_Kk_ab(unsigned short nodeA, unsigned short nodeB); + su2double *Get_Kk_ab(unsigned short nodeA, unsigned short nodeB); /*! * \brief Return the value of the nodal stress component of the residual for node a. * \param[in] nodeA - index of Node a. * \param[out] val_Kt_a - value of the stress term. */ - double *Get_Kt_a(unsigned short nodeA); + su2double *Get_Kt_a(unsigned short nodeA); /*! * \brief Retrieve the value of the shape functions. @@ -302,7 +302,7 @@ class CElement { * \param[in] iNode - Index of the Gaussian Point. * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss */ - double GetNi(unsigned short iNode, unsigned short iGauss); + su2double GetNi(unsigned short iNode, unsigned short iGauss); /*! * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. @@ -310,7 +310,7 @@ class CElement { * \param[in] iNode - Index of the Gaussian Point. * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss */ - double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); + su2double GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim); /*! * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. @@ -318,7 +318,7 @@ class CElement { * \param[in] iNode - Index of the Gaussian Point. * \param[out] GradNi_X - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss */ - double GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim); + su2double GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim); /*! * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. @@ -326,7 +326,7 @@ class CElement { * \param[in] iNode - Index of the Gaussian Point. * \param[out] GradNi_x - Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss */ - double GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim); + su2double GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim); /*! * \brief Retrieve the value of the gradient of the shape functions respect to the reference configuration. @@ -334,7 +334,7 @@ class CElement { * \param[in] iGauss - Index of the Gaussian Point. * \param[out] val_Ni_Ext - Value of the shape function at the nodes for extrapolation purposes */ - double GetNi_Extrap(unsigned short iNode, unsigned short iGauss); + su2double GetNi_Extrap(unsigned short iNode, unsigned short iGauss); /*! * \brief Add a value to the nodal stress for an element. @@ -342,7 +342,7 @@ class CElement { * \param[in] iGauss - Index of the variable. * \param[in] val_Stress - Value of the stress added. */ - void Add_NodalStress(double val_Stress, unsigned short iNode, unsigned short iVar); + void Add_NodalStress(su2double val_Stress, unsigned short iNode, unsigned short iVar); /*! * \brief Retrieve the value of the nodal stress for an element. @@ -350,7 +350,7 @@ class CElement { * \param[in] iGauss - Index of the variable. * \param[in] val_Stress - Value of the stress added. */ - double Get_NodalStress(unsigned short iNode, unsigned short iVar); + su2double Get_NodalStress(unsigned short iNode, unsigned short iVar); /*! * \brief Set the value of the gradient of the shape functions respect to the reference configuration. diff --git a/SU2_CFD/include/element_structure.inl b/SU2_CFD/include/element_structure.inl index 8a7bae6d14e..bd7f2a5d6ce 100644 --- a/SU2_CFD/include/element_structure.inl +++ b/SU2_CFD/include/element_structure.inl @@ -39,57 +39,57 @@ inline unsigned short CElement::GetnNodes(void) { return nNodes;} inline unsigned short CElement::GetnGaussPoints(void) { return nGaussPoints;} -inline void CElement::SetRef_Coord(double val_CoordRef, unsigned short iNode, unsigned short iDim) { RefCoord[iNode][iDim] = val_CoordRef;} +inline void CElement::SetRef_Coord(su2double val_CoordRef, unsigned short iNode, unsigned short iDim) { RefCoord[iNode][iDim] = val_CoordRef;} -inline void CElement::SetCurr_Coord(double val_CoordCurr, unsigned short iNode, unsigned short iDim) { CurrentCoord[iNode][iDim] = val_CoordCurr;} +inline void CElement::SetCurr_Coord(su2double val_CoordCurr, unsigned short iNode, unsigned short iDim) { CurrentCoord[iNode][iDim] = val_CoordCurr;} -inline void CElement::SetElement_Pressure(double val_ElPressure) {el_Pressure = val_ElPressure;} +inline void CElement::SetElement_Pressure(su2double val_ElPressure) {el_Pressure = val_ElPressure;} -inline double CElement::GetRef_Coord(unsigned short iNode, unsigned short iDim) { return RefCoord[iNode][iDim];} +inline su2double CElement::GetRef_Coord(unsigned short iNode, unsigned short iDim) { return RefCoord[iNode][iDim];} -inline double CElement::GetCurr_Coord(unsigned short iNode, unsigned short iDim) { return CurrentCoord[iNode][iDim];} +inline su2double CElement::GetCurr_Coord(unsigned short iNode, unsigned short iDim) { return CurrentCoord[iNode][iDim];} -inline double CElement::GetWeight(unsigned short iGauss) { return GaussWeight[iGauss];} +inline su2double CElement::GetWeight(unsigned short iGauss) { return GaussWeight[iGauss];} -inline double CElement::GetJ_X(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_X();} +inline su2double CElement::GetJ_X(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_X();} -inline double CElement::GetJ_x(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_x();} +inline su2double CElement::GetJ_x(unsigned short iGauss) {return GaussPoint[iGauss]->GetJ_x();} -inline double CElement::GetJ_X_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_X();} +inline su2double CElement::GetJ_X_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_X();} -inline double CElement::GetJ_x_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_x();} +inline su2double CElement::GetJ_x_P(unsigned short iGauss) {return GaussPointP[iGauss]->GetJ_x();} -inline double CElement::GetElement_Pressure(void) {return el_Pressure;} +inline su2double CElement::GetElement_Pressure(void) {return el_Pressure;} -inline double CElement::Get_Mab(unsigned short nodeA, unsigned short nodeB) { return Mab[nodeA][nodeB]; } +inline su2double CElement::Get_Mab(unsigned short nodeA, unsigned short nodeB) { return Mab[nodeA][nodeB]; } -inline double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ return Kab[nodeA][nodeB];} +inline su2double *CElement::Get_Kab(unsigned short nodeA, unsigned short nodeB){ return Kab[nodeA][nodeB];} -inline double *CElement::Get_Kk_ab(unsigned short nodeA, unsigned short nodeB){ return Kk_ab[nodeA][nodeB];} +inline su2double *CElement::Get_Kk_ab(unsigned short nodeA, unsigned short nodeB){ return Kk_ab[nodeA][nodeB];} -inline double *CElement::Get_Kt_a(unsigned short nodeA){ return Kt_a[nodeA];} +inline su2double *CElement::Get_Kt_a(unsigned short nodeA){ return Kt_a[nodeA];} -inline double CElement::Get_Ks_ab(unsigned short nodeA, unsigned short nodeB) { return Ks_ab[nodeA][nodeB]; } +inline su2double CElement::Get_Ks_ab(unsigned short nodeA, unsigned short nodeB) { return Ks_ab[nodeA][nodeB]; } -inline void CElement::Add_Mab(double val_Mab, unsigned short nodeA, unsigned short nodeB) { Mab[nodeA][nodeB] += val_Mab; } +inline void CElement::Add_Mab(su2double val_Mab, unsigned short nodeA, unsigned short nodeB) { Mab[nodeA][nodeB] += val_Mab; } -inline void CElement::Add_Ks_ab(double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } +inline void CElement::Add_Ks_ab(su2double val_Ks_ab, unsigned short nodeA, unsigned short nodeB) { Ks_ab[nodeA][nodeB] += val_Ks_ab; } -inline void CElement::Add_NodalStress(double val_Stress, unsigned short iNode, unsigned short iVar) { NodalStress[iNode][iVar] += val_Stress; } +inline void CElement::Add_NodalStress(su2double val_Stress, unsigned short iNode, unsigned short iVar) { NodalStress[iNode][iVar] += val_Stress; } -inline double CElement::GetNi(unsigned short iNode, unsigned short iGauss) { return GaussPoint[iGauss]->GetNi(iNode);} +inline su2double CElement::GetNi(unsigned short iNode, unsigned short iGauss) { return GaussPoint[iGauss]->GetNi(iNode);} -inline double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim);} +inline su2double CElement::GetGradNi_X(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_Xj(iNode,iDim);} -inline double CElement::GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_xj(iNode,iDim);} +inline su2double CElement::GetGradNi_x(unsigned short iNode, unsigned short iGauss, unsigned short iDim) { return GaussPoint[iGauss]->GetGradNi_xj(iNode,iDim);} -inline double CElement::GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim) { return GaussPointP[iGaussP]->GetGradNi_xj(iNode,iDim);} +inline su2double CElement::GetGradNi_x_P(unsigned short iNode, unsigned short iGaussP, unsigned short iDim) { return GaussPointP[iGaussP]->GetGradNi_xj(iNode,iDim);} -inline double CElement::GetNi_Extrap(unsigned short iNode, unsigned short iGauss) { return NodalExtrap[iNode][iGauss]; } +inline su2double CElement::GetNi_Extrap(unsigned short iNode, unsigned short iGauss) { return NodalExtrap[iNode][iGauss]; } -inline double CElement::Get_NodalStress(unsigned short iNode, unsigned short iVar) { return NodalStress[iNode][iVar]; } +inline su2double CElement::Get_NodalStress(unsigned short iNode, unsigned short iVar) { return NodalStress[iNode][iVar]; } -inline double CElement::GetWeight_P(unsigned short iGaussP) { return GaussWeightP[iGaussP];} +inline su2double CElement::GetWeight_P(unsigned short iGaussP) { return GaussWeightP[iGaussP];} inline unsigned short CElement::GetnGaussPointsP(void) { return nGaussPointsP;} diff --git a/SU2_CFD/include/fluid_model.hpp b/SU2_CFD/include/fluid_model.hpp index 8c5277f2fa8..3f88bc00aa3 100644 --- a/SU2_CFD/include/fluid_model.hpp +++ b/SU2_CFD/include/fluid_model.hpp @@ -54,7 +54,7 @@ using namespace std; */ class CFluidModel { protected: -double StaticEnergy, /*!< \brief Internal Energy. */ +su2double StaticEnergy, /*!< \brief Internal Energy. */ Entropy, /*!< \brief Entropy. */ Density, /*!< \brief Density. */ Pressure, /*!< \brief Pressure. */ @@ -90,94 +90,94 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode /*! * \brief Get fluid pressure. */ - double GetPressure (); + su2double GetPressure (); /*! * \brief Get fluid temperature. */ - double GetTemperature (); + su2double GetTemperature (); /*! * \brief Get fluid entropy. */ - double GetEntropy (); + su2double GetEntropy (); /*! * \brief Get fluid internal energy. */ - double GetStaticEnergy (); + su2double GetStaticEnergy (); /*! * \brief Get fluid density. */ - double GetDensity (); + su2double GetDensity (); /*! * \brief Get fluid speed of sound. */ - double GetSoundSpeed (); + su2double GetSoundSpeed (); /*! * \brief Get fluid speed of sound squared. */ - double GetSoundSpeed2 (); + su2double GetSoundSpeed2 (); /*! * \brief Get fluid specific heat at constant pressure. */ - double GetCp (); + su2double GetCp (); /*! * \brief Get fluid dynamic viscosity */ - double GetLaminarViscosity (); + su2double GetLaminarViscosity (); /*! * \brief Get fluid thermal conductivity */ - double GetThermalConductivity (); + su2double GetThermalConductivity (); /*! * \brief Get fluid pressure partial derivative. */ - double GetdPdrho_e (); + su2double GetdPdrho_e (); /*! * \brief Get fluid pressure partial derivative. */ - double GetdPde_rho (); + su2double GetdPde_rho (); /*! * \brief Get fluid temperature partial derivative. */ - double GetdTdrho_e (); + su2double GetdTdrho_e (); /*! * \brief Get fluid temperature partial derivative. */ - double GetdTde_rho (); + su2double GetdTde_rho (); /*! * \brief Get fluid dynamic viscosity partial derivative. */ - double Getdmudrho_T (); + su2double Getdmudrho_T (); /*! * \brief Get fluid dynamic viscosity partial derivative. */ - double GetdmudT_rho (); + su2double GetdmudT_rho (); /*! * \brief Get fluid thermal conductivity partial derivative. */ - double Getdktdrho_T (); + su2double Getdktdrho_T (); /*! * \brief Get fluid thermal conductivity partial derivative. */ - double GetdktdT_rho (); + su2double GetdktdT_rho (); /*! * \brief Set viscosity model. @@ -196,7 +196,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \param[in] e - second thermodynamic variable. */ - virtual void SetTDState_rhoe (double rho, double e ); + virtual void SetTDState_rhoe (su2double rho, su2double e ); /*! * \brief virtual member that would be different for each gas model implemented @@ -205,7 +205,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \param[in] th2 - second thermodynamic variable (T). */ - virtual void SetTDState_PT (double P, double T ); + virtual void SetTDState_PT (su2double P, su2double T ); /*! * \brief virtual member that would be different for each gas model implemented @@ -214,7 +214,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \param[in] th2 - second thermodynamic variable (v). */ - virtual void SetTDState_Prho (double P, double rho ); + virtual void SetTDState_Prho (su2double P, su2double rho ); /*! * \brief virtual member that would be different for each gas model implemented @@ -224,7 +224,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * */ - virtual void SetEnergy_Prho (double P, double rho ); + virtual void SetEnergy_Prho (su2double P, su2double rho ); /*! * \brief virtual member that would be different for each gas model implemented @@ -233,7 +233,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \param[in] th2 - second thermodynamic variable (s). * */ - virtual void SetTDState_hs (double h, double s ); + virtual void SetTDState_hs (su2double h, su2double s ); /*! @@ -243,7 +243,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \param[in] th2 - second thermodynamic variable (T). * */ - virtual void SetTDState_rhoT (double rho, double T ); + virtual void SetTDState_rhoT (su2double rho, su2double T ); }; @@ -257,7 +257,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode class CIdealGas : public CFluidModel { protected: - double Gamma, /*!< \brief Heat Capacity Ratio. */ + su2double Gamma, /*!< \brief Heat Capacity Ratio. */ Gamma_Minus_One, /*!< \brief Heat Capacity Ratio Minus One. */ Gas_Constant; /*!< \brief Gas Constant. */ @@ -272,7 +272,7 @@ class CIdealGas : public CFluidModel { /*! * \brief Constructor of the class. */ - CIdealGas(double gamma, double R); + CIdealGas(su2double gamma, su2double R); /*! @@ -287,7 +287,7 @@ class CIdealGas : public CFluidModel { * \param[in] e - second thermodynamic variable. */ - void SetTDState_rhoe (double rho, double e ); + void SetTDState_rhoe (su2double rho, su2double e ); /*! * \brief virtual member that would be different for each gas model implemented @@ -296,7 +296,7 @@ class CIdealGas : public CFluidModel { * \param[in] T - second thermodynamic variable. */ - void SetTDState_PT (double P, double T ); + void SetTDState_PT (su2double P, su2double T ); /*! * \brief virtual member that would be different for each gas model implemented @@ -305,7 +305,7 @@ class CIdealGas : public CFluidModel { * \param[in] rho - second thermodynamic variable. */ - void SetTDState_Prho (double P, double rho ); + void SetTDState_Prho (su2double P, su2double rho ); /*! * \brief virtual member that would be different for each gas model implemented @@ -314,7 +314,7 @@ class CIdealGas : public CFluidModel { * \param[in] rho - second thermodynamic variable. */ - void SetEnergy_Prho (double P, double rho ); + void SetEnergy_Prho (su2double P, su2double rho ); /*! * \brief virtual member that would be different for each gas model implemented @@ -323,7 +323,7 @@ class CIdealGas : public CFluidModel { * \param[in] th2 - second thermodynamic variable (s). * */ - void SetTDState_hs (double h, double s ); + void SetTDState_hs (su2double h, su2double s ); /*! @@ -333,7 +333,7 @@ class CIdealGas : public CFluidModel { * \param[in] th2 - second thermodynamic variable (T). * */ - void SetTDState_rhoT (double rho, double T ); + void SetTDState_rhoT (su2double rho, su2double T ); }; @@ -346,7 +346,7 @@ class CIdealGas : public CFluidModel { class CVanDerWaalsGas : public CIdealGas { protected: - double + su2double a, b, Zed; /*!< \brief Parameters for the Dimensionless Equation. */ public: @@ -359,7 +359,7 @@ class CVanDerWaalsGas : public CIdealGas { /*! * \brief Constructor of the class. */ - CVanDerWaalsGas(double gamma, double R, double Pstar, double Tstar); + CVanDerWaalsGas(su2double gamma, su2double R, su2double Pstar, su2double Tstar); /*! @@ -372,28 +372,28 @@ class CVanDerWaalsGas : public CIdealGas { * \param[in] rho - first thermodynamic variable. * \param[in] e - second thermodynamic variable. */ - void SetTDState_rhoe (double rho, double e ); + void SetTDState_rhoe (su2double rho, su2double e ); /*! * \brief Set the Dimensionless State using Pressure and Temperature * \param[in] P - first thermodynamic variable. * \param[in] T - second thermodynamic variable. */ - void SetTDState_PT (double P, double T ); + void SetTDState_PT (su2double P, su2double T ); /*! * \brief Set the Dimensionless State using Pressure and Density * \param[in] P - first thermodynamic variable. * \param[in] rho - second thermodynamic variable. */ - void SetTDState_Prho (double P, double rho ); + void SetTDState_Prho (su2double P, su2double rho ); /*! * \brief Set the Dimensionless Energy using Pressure and Density * \param[in] P - first thermodynamic variable. * \param[in] rho - second thermodynamic variable. */ - void SetEnergy_Prho (double P, double rho ); + void SetEnergy_Prho (su2double P, su2double rho ); /*! * \brief virtual member that would be different for each gas model implemented @@ -401,7 +401,7 @@ class CVanDerWaalsGas : public CIdealGas { * \param[in] s - second thermodynamic variable (s). * */ - void SetTDState_hs (double h, double s ); + void SetTDState_hs (su2double h, su2double s ); /*! @@ -410,7 +410,7 @@ class CVanDerWaalsGas : public CIdealGas { * \param[in] T - second thermodynamic variable (T). * */ - void SetTDState_rhoT (double rho, double T ); + void SetTDState_rhoT (su2double rho, su2double T ); }; @@ -424,7 +424,7 @@ class CVanDerWaalsGas : public CIdealGas { class CPengRobinson : public CIdealGas { protected: - double a, /*!< \brief model parameter. */ + su2double a, /*!< \brief model parameter. */ b, /*!< \brief model parameter. */ k, /*!< \brief model parameter (computed with acentric factor). */ Zed, /*!< \brief compressibility factor. */ @@ -435,13 +435,13 @@ class CPengRobinson : public CIdealGas { /*! * \brief Internal model parameter. */ - double alpha2 (double T); + su2double alpha2 (su2double T); /*! * \brief Internal model parameter. */ - double T_v_h (double v, double h); + su2double T_v_h (su2double v, su2double h); public: @@ -453,7 +453,7 @@ class CPengRobinson : public CIdealGas { /*! * \brief Constructor of the class. */ - CPengRobinson(double gamma, double R, double Pstar, double Tstar, double w); + CPengRobinson(su2double gamma, su2double R, su2double Pstar, su2double Tstar, su2double w); /*! * \brief Destructor of the class. @@ -465,28 +465,28 @@ class CPengRobinson : public CIdealGas { * \param[in] rho - first thermodynamic variable. * \param[in] e - second thermodynamic variable. */ - void SetTDState_rhoe (double rho, double e ); + void SetTDState_rhoe (su2double rho, su2double e ); /*! * \brief Set the Dimensionless State using Pressure and Temperature * \param[in] P - first thermodynamic variable. * \param[in] T - second thermodynamic variable. */ - void SetTDState_PT (double P, double T ); + void SetTDState_PT (su2double P, su2double T ); /*! * \brief Set the Dimensionless State using Pressure and Density * \param[in] P - first thermodynamic variable. * \param[in] rho - second thermodynamic variable. */ - void SetTDState_Prho (double P, double rho ); + void SetTDState_Prho (su2double P, su2double rho ); /*! * \brief Set the Dimensionless Energy using Pressure and Density * \param[in] P - first thermodynamic variable. * \param[in] rho - second thermodynamic variable. */ - void SetEnergy_Prho (double P, double rho ); + void SetEnergy_Prho (su2double P, su2double rho ); /*! * \brief virtual member that would be different for each gas model implemented * \param[in] InputSpec - Input pair for FLP calls ("hs"). @@ -494,7 +494,7 @@ class CPengRobinson : public CIdealGas { * \param[in] th2 - second thermodynamic variable (s). * */ - void SetTDState_hs (double h, double s ); + void SetTDState_hs (su2double h, su2double s ); /*! * \brief virtual member that would be different for each gas model implemented @@ -503,7 +503,7 @@ class CPengRobinson : public CIdealGas { * \param[in] th2 - second thermodynamic variable (T). * */ - void SetTDState_rhoT (double rho, double T ); + void SetTDState_rhoT (su2double rho, su2double T ); }; diff --git a/SU2_CFD/include/fluid_model.inl b/SU2_CFD/include/fluid_model.inl index ab197a637e6..dd608ed796a 100644 --- a/SU2_CFD/include/fluid_model.inl +++ b/SU2_CFD/include/fluid_model.inl @@ -29,20 +29,20 @@ #pragma once -inline double CFluidModel::GetPressure () { return Pressure; } -inline double CFluidModel::GetSoundSpeed () { return sqrt(SoundSpeed2); } -inline double CFluidModel::GetSoundSpeed2 () { return SoundSpeed2; } -inline double CFluidModel::GetDensity () { return Density; } -inline double CFluidModel::GetEntropy () { return Entropy; } -inline double CFluidModel::GetStaticEnergy () { return StaticEnergy; } -inline double CFluidModel::GetTemperature () { return Temperature; } -inline double CFluidModel::GetCp () { return Cp; } -inline double CFluidModel::GetdPdrho_e () { return dPdrho_e; } -inline double CFluidModel::GetdPde_rho () { return dPde_rho; } -inline double CFluidModel::GetdTdrho_e () { return dTdrho_e; } -inline double CFluidModel::GetdTde_rho () { return dTde_rho; } +inline su2double CFluidModel::GetPressure () { return Pressure; } +inline su2double CFluidModel::GetSoundSpeed () { return sqrt(SoundSpeed2); } +inline su2double CFluidModel::GetSoundSpeed2 () { return SoundSpeed2; } +inline su2double CFluidModel::GetDensity () { return Density; } +inline su2double CFluidModel::GetEntropy () { return Entropy; } +inline su2double CFluidModel::GetStaticEnergy () { return StaticEnergy; } +inline su2double CFluidModel::GetTemperature () { return Temperature; } +inline su2double CFluidModel::GetCp () { return Cp; } +inline su2double CFluidModel::GetdPdrho_e () { return dPdrho_e; } +inline su2double CFluidModel::GetdPde_rho () { return dPde_rho; } +inline su2double CFluidModel::GetdTdrho_e () { return dTdrho_e; } +inline su2double CFluidModel::GetdTde_rho () { return dTde_rho; } -inline double CFluidModel::GetLaminarViscosity () { +inline su2double CFluidModel::GetLaminarViscosity () { LaminarViscosity->SetViscosity(Temperature, Density); Mu = LaminarViscosity->GetViscosity(); LaminarViscosity->SetDerViscosity(Temperature, Density); @@ -51,15 +51,15 @@ inline double CFluidModel::GetLaminarViscosity () { return Mu; } -inline double CFluidModel::Getdmudrho_T () { +inline su2double CFluidModel::Getdmudrho_T () { return LaminarViscosity->Getdmudrho_T(); } -inline double CFluidModel::GetdmudT_rho () { +inline su2double CFluidModel::GetdmudT_rho () { return LaminarViscosity->GetdmudT_rho(); } -inline double CFluidModel::GetThermalConductivity () { +inline su2double CFluidModel::GetThermalConductivity () { ThermalConductivity->SetConductivity(Temperature, Density, Mu, Cp); Kt = ThermalConductivity->GetConductivity(); ThermalConductivity->SetDerConductivity(Temperature, Density, dmudrho_T, dmudT_rho, Cp); @@ -69,17 +69,17 @@ inline double CFluidModel::GetThermalConductivity () { } -inline double CFluidModel::Getdktdrho_T () { +inline su2double CFluidModel::Getdktdrho_T () { return dktdrho_T; } -inline double CFluidModel::GetdktdT_rho () { +inline su2double CFluidModel::GetdktdT_rho () { return dktdT_rho; } -inline void CFluidModel::SetTDState_rhoe (double rho, double e ) { } -inline void CFluidModel::SetTDState_PT (double P, double T ) { } -inline void CFluidModel::SetTDState_Prho (double P, double rho ) { } -inline void CFluidModel::SetTDState_hs (double h, double s ) { } -inline void CFluidModel::SetTDState_rhoT (double rho, double T ) { } -inline void CFluidModel::SetEnergy_Prho (double P, double rho ) { } +inline void CFluidModel::SetTDState_rhoe (su2double rho, su2double e ) { } +inline void CFluidModel::SetTDState_PT (su2double P, su2double T ) { } +inline void CFluidModel::SetTDState_Prho (su2double P, su2double rho ) { } +inline void CFluidModel::SetTDState_hs (su2double h, su2double s ) { } +inline void CFluidModel::SetTDState_rhoT (su2double rho, su2double T ) { } +inline void CFluidModel::SetEnergy_Prho (su2double P, su2double rho ) { } diff --git a/SU2_CFD/include/gauss_structure.hpp b/SU2_CFD/include/gauss_structure.hpp index 2ac652a1cdb..95a5df47d9c 100644 --- a/SU2_CFD/include/gauss_structure.hpp +++ b/SU2_CFD/include/gauss_structure.hpp @@ -54,10 +54,10 @@ using namespace std; class CGaussVariable { protected: - double **GradNi_Xj, // Gradient of the shape functions N[i] respect to the reference configuration + su2double **GradNi_Xj, // Gradient of the shape functions N[i] respect to the reference configuration **GradNi_xj; // Gradient of the shape functions N[i] respect to the current configuration - double *Ni; // Shape functions N[i] at the gaussian point - double J_X, // Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration + su2double *Ni; // Shape functions N[i] at the gaussian point + su2double J_X, // Jacobian of the element evaluated at the current Gauss Point respect to the reference configuration J_x; // Jacobian of the element evaluated at the current Gauss Point respect to the current configuration unsigned short iGaussPoint; // Identifier of the Gauss point considered @@ -88,27 +88,27 @@ class CGaussVariable { */ virtual ~CGaussVariable(void); - void SetGradNi_Xj(double val_GradNi_Xj, unsigned short val_iDim, unsigned short val_Ni); + void SetGradNi_Xj(su2double val_GradNi_Xj, unsigned short val_iDim, unsigned short val_Ni); - void SetGradNi_xj(double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni); + void SetGradNi_xj(su2double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni); - void SetNi(double val_ShapeNi, unsigned short val_Ni); + void SetNi(su2double val_ShapeNi, unsigned short val_Ni); - void SetJ_X(double valJ_X); + void SetJ_X(su2double valJ_X); - void SetJ_x(double valJ_x); + void SetJ_x(su2double valJ_x); - double **GetGradNi_Xj(void); + su2double **GetGradNi_Xj(void); - double GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim); + su2double GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim); - double GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim); + su2double GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim); - double GetNi(unsigned short val_Ni); + su2double GetNi(unsigned short val_Ni); - double GetJ_X(void); + su2double GetJ_X(void); - double GetJ_x(void); + su2double GetJ_x(void); unsigned short Get_iGauss(void); diff --git a/SU2_CFD/include/gauss_structure.inl b/SU2_CFD/include/gauss_structure.inl index 1b4141251cc..fcbac83214d 100644 --- a/SU2_CFD/include/gauss_structure.inl +++ b/SU2_CFD/include/gauss_structure.inl @@ -31,26 +31,26 @@ #pragma once -inline void CGaussVariable::SetGradNi_Xj(double val_GradNi_Xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_Xj[val_Ni][val_iDim] = val_GradNi_Xj; } +inline void CGaussVariable::SetGradNi_Xj(su2double val_GradNi_Xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_Xj[val_Ni][val_iDim] = val_GradNi_Xj; } -inline void CGaussVariable::SetGradNi_xj(double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_xj[val_Ni][val_iDim] = val_GradNi_xj; } +inline void CGaussVariable::SetGradNi_xj(su2double val_GradNi_xj, unsigned short val_iDim, unsigned short val_Ni) { GradNi_xj[val_Ni][val_iDim] = val_GradNi_xj; } -inline void CGaussVariable::SetNi(double val_ShapeNi, unsigned short val_Ni) { Ni[val_Ni] = val_ShapeNi; } +inline void CGaussVariable::SetNi(su2double val_ShapeNi, unsigned short val_Ni) { Ni[val_Ni] = val_ShapeNi; } -inline void CGaussVariable::SetJ_X(double valJ_X) { J_X = valJ_X; } +inline void CGaussVariable::SetJ_X(su2double valJ_X) { J_X = valJ_X; } -inline void CGaussVariable::SetJ_x(double valJ_x) { J_x = valJ_x; } +inline void CGaussVariable::SetJ_x(su2double valJ_x) { J_x = valJ_x; } inline unsigned short CGaussVariable::Get_iGauss(void) { return iGaussPoint; } -inline double **CGaussVariable::GetGradNi_Xj(void) { return GradNi_Xj; } +inline su2double **CGaussVariable::GetGradNi_Xj(void) { return GradNi_Xj; } -inline double CGaussVariable::GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_Xj[val_Ni][val_iDim]; } +inline su2double CGaussVariable::GetGradNi_Xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_Xj[val_Ni][val_iDim]; } -inline double CGaussVariable::GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_xj[val_Ni][val_iDim]; } +inline su2double CGaussVariable::GetGradNi_xj(unsigned short val_Ni, unsigned short val_iDim) { return GradNi_xj[val_Ni][val_iDim]; } -inline double CGaussVariable::GetNi(unsigned short val_Ni) { return Ni[val_Ni]; } +inline su2double CGaussVariable::GetNi(unsigned short val_Ni) { return Ni[val_Ni]; } -inline double CGaussVariable::GetJ_X(void) { return J_X; } +inline su2double CGaussVariable::GetJ_X(void) { return J_X; } -inline double CGaussVariable::GetJ_x(void) { return J_x; } +inline su2double CGaussVariable::GetJ_x(void) { return J_x; } diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index 1efb7588448..f0bd1c3c06e 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -55,16 +55,16 @@ using namespace std; */ class CIntegration { protected: - double Cauchy_Value, /*!< \brief Summed value of the convergence indicator. */ + su2double Cauchy_Value, /*!< \brief Summed value of the convergence indicator. */ Cauchy_Func; /*!< \brief Current value of the convergence indicator at one iteration. */ unsigned short Cauchy_Counter; /*!< \brief Number of elements of the Cauchy serial. */ - double *Cauchy_Serie; /*!< \brief Complete Cauchy serial. */ - double Old_Func, /*!< \brief Old value of the objective function (the function which is monitored). */ + su2double *Cauchy_Serie; /*!< \brief Complete Cauchy serial. */ + su2double Old_Func, /*!< \brief Old value of the objective function (the function which is monitored). */ New_Func; /*!< \brief Current value of the objective function (the function which is monitored). */ bool Convergence, /*!< \brief To indicate if the flow solver (direct, adjoint, or linearized) has converged or not. */ Convergence_FSI, /*!< \brief To indicate if the FSI problem has converged or not. */ Convergence_FullMG; /*!< \brief To indicate if the Full Multigrid has converged and it is necessary to add a new level. */ - double InitResidual; /*!< \brief Initial value of the residual to evaluate the convergence level. */ + su2double InitResidual; /*!< \brief Initial value of the residual to evaluate the convergence level. */ public: @@ -147,7 +147,7 @@ class CIntegration { * \param[in] monitor - Objective function that is use to study its convergence. */ void Convergence_Monitoring(CGeometry *geometry, CConfig *config, - unsigned long Iteration, double monitor, unsigned short iMesh); + unsigned long Iteration, su2double monitor, unsigned short iMesh); /*! * \brief Do the convergence analysis to determine if the structural FEM analysis has converged. @@ -174,7 +174,7 @@ class CIntegration { * \brief Get the value of the convergence. * \return Level of convergence of the solution. */ - double GetCauchy_Value(void); + su2double GetCauchy_Value(void); /*! * \brief Get the indicator of the convergence for the direct, adjoint and linearized problem. @@ -275,7 +275,7 @@ class CIntegration { */ virtual void NonDimensional_Parameters(CGeometry **geometry, CSolver ***solver_container, CNumerics ****numerics_container, CConfig *config, unsigned short FinestMesh, unsigned short RunTime_EqSystem, unsigned long Iteration, - double *monitor); + su2double *monitor); /*! * \brief A virtual member. @@ -423,7 +423,7 @@ class CIntegration { * \param[in] config - Definition of the particular problem. */ virtual void Smooth_Solution(unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, - unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config); + unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config); }; @@ -487,7 +487,7 @@ class CMultiGridIntegration : public CIntegration { */ void NonDimensional_Parameters(CGeometry **geometry, CSolver ***solver_container, CNumerics ****numerics_container, CConfig *config, unsigned short FinestMesh, unsigned short RunTime_EqSystem, unsigned long Iteration, - double *monitor); + su2double *monitor); /*! * \brief Compute the fine solution from a coarse solution. @@ -522,7 +522,7 @@ class CMultiGridIntegration : public CIntegration { * \param[in] config - Definition of the particular problem. */ void SmoothProlongated_Correction(unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, - unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config); + unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config); /*! * \brief Do an implicit smoothing of the solution. @@ -534,7 +534,7 @@ class CMultiGridIntegration : public CIntegration { * \param[in] config - Definition of the particular problem. */ void Smooth_Solution(unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, - unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config); + unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config); /*! * \brief Set the value of the corrected fine grid solution. diff --git a/SU2_CFD/include/integration_structure.inl b/SU2_CFD/include/integration_structure.inl index 22f53cdf10d..a348f61b502 100644 --- a/SU2_CFD/include/integration_structure.inl +++ b/SU2_CFD/include/integration_structure.inl @@ -31,7 +31,7 @@ #pragma once -inline double CIntegration::GetCauchy_Value(void) { return Cauchy_Value; } +inline su2double CIntegration::GetCauchy_Value(void) { return Cauchy_Value; } inline bool CIntegration::GetConvergence(void) { return Convergence; } @@ -52,7 +52,7 @@ inline void CIntegration::MultiGrid_Cycle(CGeometry ***geometry, CSolver ****sol inline void CIntegration::NonDimensional_Parameters(CGeometry **geometry, CSolver ***solver_container, CNumerics ****numerics_container, CConfig *config, unsigned short FinestMesh, unsigned short RunTime_EqSystem, unsigned long Iteration, - double *monitor) { } + su2double *monitor) { } inline void CIntegration::SetProlongated_Correction(CSolver *sol_fine, CGeometry *geo_fine, CConfig *config, unsigned short iMesh) { } @@ -87,4 +87,4 @@ inline void CIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolve inline void CIntegration::SetPotential_Solver(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iMesh, unsigned short iZone) { } -inline void CIntegration::Smooth_Solution(unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config) { } +inline void CIntegration::Smooth_Solution(unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config) { } diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index a3d34cace91..e5c21ed8d16 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -243,7 +243,7 @@ void SetWind_GustField(CConfig *config_container, CGeometry **geometry_container * \param[in] vort_strength - Vector of vortex strengths. * \param[in] r_core - Vector of vortex core size. */ -void InitializeVortexDistribution(unsigned long &nVortex, vector& x0, vector& y0, vector& vort_strength, vector& r_core); +void InitializeVortexDistribution(unsigned long &nVortex, vector& x0, vector& y0, vector& vort_strength, vector& r_core); /*! * \brief Updates the positions and grid velocities for dynamic meshes between physical time steps. @@ -277,10 +277,10 @@ void SetTimeSpectral(CGeometry ***geometry_container, CSolver ****solver_contain /*! * \brief Computation of the Time-Spectral operator matrix. * \author K. Naik - * \param[in] D - double pointer to the operator matrix. + * \param[in] D - su2double pointer to the operator matrix. * \param[in] nZone - Total number of zones (periodic instances). */ -void ComputeTimeSpectral_Operator(double **D, double period, unsigned short nZone); +void ComputeTimeSpectral_Operator(su2double **D, su2double period, unsigned short nZone); /*! * \brief Computation and storage of the time-spectral mesh velocities. diff --git a/SU2_CFD/include/numerics_machine_learning.hpp b/SU2_CFD/include/numerics_machine_learning.hpp index 9493d9b4ddb..4237d68be12 100644 --- a/SU2_CFD/include/numerics_machine_learning.hpp +++ b/SU2_CFD/include/numerics_machine_learning.hpp @@ -55,50 +55,50 @@ class CScaler{ public: CScaler(); virtual ~CScaler(); - virtual void Scale(double *) = 0; - virtual void Unscale(double *) = 0; + virtual void Scale(su2double *) = 0; + virtual void Unscale(su2double *) = 0; }; class CNormalScaler: public CScaler{ private: - double * mu; - double * sigma; + su2double * mu; + su2double * sigma; int dim; public: CNormalScaler(); - CNormalScaler(int, double*, double*); + CNormalScaler(int, su2double*, su2double*); #ifdef HAVE_JSONCPP CNormalScaler(Json::Value); #endif ~CNormalScaler(); - void Scale(double *); - void Unscale(double *); + void Scale(su2double *); + void Unscale(su2double *); }; class CMulInputScaler : public CScaler{ public: - double MulScale; + su2double MulScale; CScaler* InnerScaler; CMulInputScaler(); #ifdef HAVE_JSONCPP CMulInputScaler(Json::Value); #endif ~CMulInputScaler(); - void Scale(double *); - void Unscale(double *); + void Scale(su2double *); + void Unscale(su2double *); }; class CMulOutputScaler : public CScaler{ public: - double MulScale; + su2double MulScale; CMulOutputScaler(); #ifdef HAVE_JSONCPP CMulOutputScaler(Json::Value); #endif ~CMulOutputScaler(); - void Scale(double *); - void Unscale(double *); + void Scale(su2double *); + void Unscale(su2double *); }; @@ -106,7 +106,7 @@ class CActivator{ public: CActivator(); ~CActivator(); - virtual double Activate(double combination) {cout<< "IN BASE ACTIVATOR THIS IS BAD" << endl; return 0;}; + virtual su2double Activate(su2double combination) {cout<< "IN BASE ACTIVATOR THIS IS BAD" << endl; return 0;}; }; class CTanhActivator : public CActivator{ @@ -116,7 +116,7 @@ class CTanhActivator : public CActivator{ CTanhActivator(Json::Value); #endif ~CTanhActivator(); - double Activate(double combination); + su2double Activate(su2double combination); }; class CLinearActivator : public CActivator{ @@ -126,15 +126,15 @@ class CLinearActivator : public CActivator{ CLinearActivator(Json::Value); #endif ~CLinearActivator(); - double Activate(double combination); + su2double Activate(su2double combination); }; class CNeuron{ public: CNeuron(); ~CNeuron(); - virtual double Activate(double combination) {cout << "In base neuron. Bad";return 0;}; - virtual double Combine(double * parameters, int nParameters, double *inputs, int nInputs) {cout << "In base neuron. Bad";return 0;}; + virtual su2double Activate(su2double combination) {cout << "In base neuron. Bad";return 0;}; + virtual su2double Combine(su2double * parameters, int nParameters, su2double *inputs, int nInputs) {cout << "In base neuron. Bad";return 0;}; }; class CSumNeuron : public CNeuron{ @@ -148,8 +148,8 @@ class CSumNeuron : public CNeuron{ #endif ~CSumNeuron(); //Activator* GetActivator(void); - double Combine(double * parameters, int nParameters, double * inputs, int nInputs); - double Activate(double combination); + su2double Combine(su2double * parameters, int nParameters, su2double * inputs, int nInputs); + su2double Activate(su2double combination); }; @@ -160,7 +160,7 @@ class CPredictor{ public: CPredictor(); virtual ~CPredictor(); - virtual void Predict(double *, double *) {cout << "In base Predict, this is bad";}; + virtual void Predict(su2double *, su2double *) {cout << "In base Predict, this is bad";}; int InputDim(); int OutputDim(); }; @@ -174,7 +174,7 @@ class CScalePredictor{ CScaler *InputScaler; CScaler *OutputScaler; public: - void Predict(double *inputs, double *outputs); + void Predict(su2double *inputs, su2double *outputs); // Need to add predict method }; @@ -186,7 +186,7 @@ class CMulPredictor : public CPredictor{ #endif ~CMulPredictor(); CPredictor* Inner; - void Predict(double *, double *); + void Predict(su2double *, su2double *); }; @@ -199,7 +199,7 @@ class CNeurNet : public CPredictor { int** nParameters; // Number of parameters for the neuron // int inputDim; - void processLayer(double *, int, CNeuron **, double **, int, int * , double *); + void processLayer(su2double *, int, CNeuron **, su2double **, int, int * , su2double *); //---- // int outputDim; @@ -212,8 +212,8 @@ class CNeurNet : public CPredictor { ~CNeurNet(); // int InputDim(); // int OutputDim(); - void Predict(double *, double *); - double*** parameters; // Array of parameters for each neuron + void Predict(su2double *, su2double *); + su2double*** parameters; // Array of parameters for each neuron }; class CSANondimInputs{ @@ -223,16 +223,16 @@ class CSANondimInputs{ CSANondimInputs(int); ~CSANondimInputs(); void Set(SpalartAllmarasInputs*); - void NondimensionalizeSource(int, double*); - void DimensionalizeSource(int, double*); - double Chi; - double OmegaNondim; - double OmegaBar; - double SourceNondim; - double NuGradNondim; - double * DNuHatDXBar; - double NuHatGradNorm; - double NuHatGradNormBar; + void NondimensionalizeSource(int, su2double*); + void DimensionalizeSource(int, su2double*); + su2double Chi; + su2double OmegaNondim; + su2double OmegaBar; + su2double SourceNondim; + su2double NuGradNondim; + su2double * DNuHatDXBar; + su2double NuHatGradNorm; + su2double NuHatGradNormBar; }; #include "numerics_machine_learning.inl" diff --git a/SU2_CFD/include/numerics_machine_learning_turbulent.hpp b/SU2_CFD/include/numerics_machine_learning_turbulent.hpp index add8bd2ad45..b2dbfa83997 100644 --- a/SU2_CFD/include/numerics_machine_learning_turbulent.hpp +++ b/SU2_CFD/include/numerics_machine_learning_turbulent.hpp @@ -41,18 +41,18 @@ class SpalartAllmarasOtherOutputs{ public: SpalartAllmarasOtherOutputs(); ~SpalartAllmarasOtherOutputs(); - double fw; - double mul_production; // multiplier of OmegaNu - double mul_destruction; // multiplier of (Nu/ d)^2 - double mul_crossproduction; // multiplier of dnuhat_i / dx_i - double Omega; // Sqrt vorticity + su2double fw; + su2double mul_production; // multiplier of OmegaNu + su2double mul_destruction; // multiplier of (Nu/ d)^2 + su2double mul_crossproduction; // multiplier of dnuhat_i / dx_i + su2double Omega; // Sqrt vorticity }; class SpalartAllmarasConstants{ public: SpalartAllmarasConstants(); ~SpalartAllmarasConstants(); - double cv1_3, + su2double cv1_3, k2, cb1, cw2, @@ -66,33 +66,33 @@ class SpalartAllmarasConstants{ class SpalartAllmarasInputs{ private: int nDim; - double limiter; // How close to the wall should the turbulence model be turned off - double** DUiDXj; // Mean flow derivative - double* DTurb_Kin_Visc_DXj; // D NuTilde D X - void init(int nDim, double limiter); + su2double limiter; // How close to the wall should the turbulence model be turned off + su2double** DUiDXj; // Mean flow derivative + su2double* DTurb_Kin_Visc_DXj; // D NuTilde D X + void init(int nDim, su2double limiter); public: SpalartAllmarasInputs(int nDim); - SpalartAllmarasInputs(int nDim, double limiter); + SpalartAllmarasInputs(int nDim, su2double limiter); ~SpalartAllmarasInputs(); - void Set(double** DUiDXj, double* DTurb_Kin_Visc_DXj, bool rotating_frame, bool transition, double dist, double Laminar_Viscosity, double Density, double Turbulent_Kinematic_Viscosity, double intermittency); + void Set(su2double** DUiDXj, su2double* DTurb_Kin_Visc_DXj, bool rotating_frame, bool transition, su2double dist, su2double Laminar_Viscosity, su2double Density, su2double Turbulent_Kinematic_Viscosity, su2double intermittency); int GetNumDim(); - double GetLimiter(); - double** GetMeanFlowGradient(); - double* GetTurbKinViscGradient(); + su2double GetLimiter(); + su2double** GetMeanFlowGradient(); + su2double* GetTurbKinViscGradient(); bool rotating_frame; bool transition; - double Omega; - double dist; // Wall distance - double Laminar_Viscosity; - double Density; - double Turbulent_Kinematic_Viscosity; - double intermittency; // Used for transition + su2double Omega; + su2double dist; // Wall distance + su2double Laminar_Viscosity; + su2double Density; + su2double Turbulent_Kinematic_Viscosity; + su2double intermittency; // Used for transition }; /* \brief computes spalart allmaras source term. See numerics_machine_learning_direct_turbulent.cpp */ -void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasConstants* constants, double* output_residual, double* output_jacobian, SpalartAllmarasOtherOutputs* otherOutput); +void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasConstants* constants, su2double* output_residual, su2double* output_jacobian, SpalartAllmarasOtherOutputs* otherOutput); /* \brief Computes the vorticity from the velocity gradient tensor */ -double ComputeVorticity(int nDim, double** DUiDXj); +su2double ComputeVorticity(int nDim, su2double** DUiDXj); diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 72598287a68..3b482f43b4d 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -61,76 +61,76 @@ class CNumerics { protected: unsigned short nDim, nVar; /*!< \brief Number of dimensions and variables. */ unsigned short nSpecies; /*!< \brief No of species present in plasma */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ - double Gas_Constant; /*!< \brief Gas constant. */ - double *Vector; /*!< \brief Auxiliary vector. */ - double *Enthalpy_formation; + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double Gas_Constant; /*!< \brief Gas constant. */ + su2double *Vector; /*!< \brief Auxiliary vector. */ + su2double *Enthalpy_formation; unsigned short nDiatomics, nMonatomics; - double Prandtl_Lam; /*!< \brief Laminar Prandtl's number. */ - double Prandtl_Turb; /*!< \brief Turbulent Prandtl's number. */ + su2double Prandtl_Lam; /*!< \brief Laminar Prandtl's number. */ + su2double Prandtl_Turb; /*!< \brief Turbulent Prandtl's number. */ public: - double + su2double **Flux_Tensor, /*!< \brief Flux tensor (used for viscous and inviscid purposes. */ *Proj_Flux_Tensor; /*!< \brief Flux tensor projected in a direction. */ - double + su2double **tau, /*!< \brief Viscous stress tensor. */ **delta; /*!< \brief Identity matrix. */ - double **dVdU; /*!< \brief Transformation matrix from primitive variables, V, to conserved, U. */ - double + su2double **dVdU; /*!< \brief Transformation matrix from primitive variables, V, to conserved, U. */ + su2double *Diffusion_Coeff_i, /*!< \brief Species diffusion coefficients at point i. */ *Diffusion_Coeff_j; /*!< \brief Species diffusion coefficients at point j. */ - double Laminar_Viscosity_i, /*!< \brief Laminar viscosity at point i. */ + su2double Laminar_Viscosity_i, /*!< \brief Laminar viscosity at point i. */ Laminar_Viscosity_j, /*!< \brief Laminar viscosity at point j. */ Laminar_Viscosity_id, /*!< \brief Variation of laminar viscosity at point i. */ Laminar_Viscosity_jd; /*!< \brief Variation of laminar viscosity at point j. */ - double Thermal_Conductivity_i, /*!< \brief Thermal conductivity at point i. */ + su2double Thermal_Conductivity_i, /*!< \brief Thermal conductivity at point i. */ Thermal_Conductivity_j, /*!< \brief Thermal conductivity at point j. */ Thermal_Conductivity_ve_i, /*!< \brief Thermal conductivity at point i. */ Thermal_Conductivity_ve_j; /*!< \brief Thermal conductivity at point j. */ - double Cp_i, /*!< \brief Cp at point i. */ + su2double Cp_i, /*!< \brief Cp at point i. */ Cp_j; /*!< \brief Cp at point j. */ - double *Theta_v; /*!< \brief Characteristic vibrational temperature */ - double Eddy_Viscosity_i, /*!< \brief Eddy viscosity at point i. */ + su2double *Theta_v; /*!< \brief Characteristic vibrational temperature */ + su2double Eddy_Viscosity_i, /*!< \brief Eddy viscosity at point i. */ Eddy_Viscosity_j; /*!< \brief Eddy viscosity at point j. */ - double turb_ke_i, /*!< \brief Turbulent kinetic energy at point i. */ + su2double turb_ke_i, /*!< \brief Turbulent kinetic energy at point i. */ turb_ke_j; /*!< \brief Turbulent kinetic energy at point j. */ - double Pressure_i, /*!< \brief Pressure at point i. */ + su2double Pressure_i, /*!< \brief Pressure at point i. */ Pressure_j; /*!< \brief Pressure at point j. */ - double GravityForce_i, /*!< \brief Gravity force at point i. */ + su2double GravityForce_i, /*!< \brief Gravity force at point i. */ GravityForce_j; /*!< \brief Gravity force at point j. */ - double Density_i, /*!< \brief Density at point i. */ + su2double Density_i, /*!< \brief Density at point i. */ Density_j; /*!< \brief Density at point j. */ - double DensityInc_i, /*!< \brief Incompressible density at point i. */ + su2double DensityInc_i, /*!< \brief Incompressible density at point i. */ DensityInc_j; /*!< \brief Incompressible density at point j. */ - double BetaInc2_i, /*!< \brief Beta incompressible at point i. */ + su2double BetaInc2_i, /*!< \brief Beta incompressible at point i. */ BetaInc2_j; /*!< \brief Beta incompressible at point j. */ - double Lambda_i, /*!< \brief Spectral radius at point i. */ + su2double Lambda_i, /*!< \brief Spectral radius at point i. */ Lambda_j; /*!< \brief Spectral radius at point j. */ - double LambdaComb_i, /*!< \brief Spectral radius at point i. */ + su2double LambdaComb_i, /*!< \brief Spectral radius at point i. */ LambdaComb_j; /*!< \brief Spectral radius at point j. */ - double SoundSpeed_i, /*!< \brief Sound speed at point i. */ + su2double SoundSpeed_i, /*!< \brief Sound speed at point i. */ SoundSpeed_j; /*!< \brief Sound speed at point j. */ - double Enthalpy_i, /*!< \brief Enthalpy at point i. */ + su2double Enthalpy_i, /*!< \brief Enthalpy at point i. */ Enthalpy_j; /*!< \brief Enthalpy at point j. */ - double dist_i, /*!< \brief Distance of point i to the nearest wall. */ + su2double dist_i, /*!< \brief Distance of point i to the nearest wall. */ dist_j; /*!< \brief Distance of point j to the nearest wall. */ - double Temp_i, /*!< \brief Temperature at point i. */ + su2double Temp_i, /*!< \brief Temperature at point i. */ Temp_j; /*!< \brief Temperature at point j. */ - double *Temp_tr_i, /*!< \brief Temperature transl-rot at point i. */ + su2double *Temp_tr_i, /*!< \brief Temperature transl-rot at point i. */ *Temp_tr_j;/*!< \brief Temperature transl-rot at point j. */ - double *Temp_vib_i, /*!< \brief Temperature vibrational at point i. */ + su2double *Temp_vib_i, /*!< \brief Temperature vibrational at point i. */ *Temp_vib_j;/*!< \brief Temperature vibrational at point j. */ - double *Und_Lapl_i, /*!< \brief Undivided laplacians at point i. */ + su2double *Und_Lapl_i, /*!< \brief Undivided laplacians at point i. */ *Und_Lapl_j; /*!< \brief Undivided laplacians at point j. */ - double Sensor_i, /*!< \brief Pressure sensor at point i. */ + su2double Sensor_i, /*!< \brief Pressure sensor at point i. */ Sensor_j; /*!< \brief Pressure sensor at point j. */ - double *GridVel_i, /*!< \brief Grid velocity at point i. */ + su2double *GridVel_i, /*!< \brief Grid velocity at point i. */ *GridVel_j; /*!< \brief Grid velocity at point j. */ - double *U_i, /*!< \brief Vector of conservative variables at point i. */ + su2double *U_i, /*!< \brief Vector of conservative variables at point i. */ *U_id, /*!< \brief Vector of derivative of conservative variables at point i. */ *UZeroOrder_i, /*!< \brief Vector of conservative variables at point i without reconstruction. */ *U_j, /*!< \brief Vector of conservative variables at point j. */ @@ -140,50 +140,50 @@ class CNumerics { *U_1, /*!< \brief Vector of conservative variables at node 1. */ *U_2, /*!< \brief Vector of conservative variables at node 2. */ *U_3; /*!< \brief Vector of conservative variables at node 3. */ - double *V_i, /*!< \brief Vector of primitive variables at point i. */ + su2double *V_i, /*!< \brief Vector of primitive variables at point i. */ *V_j; /*!< \brief Vector of primitive variables at point j. */ - double *S_i, /*!< \brief Vector of secondary variables at point i. */ + su2double *S_i, /*!< \brief Vector of secondary variables at point i. */ *S_j; /*!< \brief Vector of secondary variables at point j. */ - double *Psi_i, /*!< \brief Vector of adjoint variables at point i. */ + su2double *Psi_i, /*!< \brief Vector of adjoint variables at point i. */ *Psi_j; /*!< \brief Vector of adjoint variables at point j. */ - double *DeltaU_i, /*!< \brief Vector of linearized variables at point i. */ + su2double *DeltaU_i, /*!< \brief Vector of linearized variables at point i. */ *DeltaU_j; /*!< \brief Vector of linearized variables at point j. */ - double *TurbVar_i, /*!< \brief Vector of turbulent variables at point i. */ + su2double *TurbVar_i, /*!< \brief Vector of turbulent variables at point i. */ *TurbVar_id, /*!< \brief Vector of derivative of turbulent variables at point i. */ *TurbVar_j, /*!< \brief Vector of turbulent variables at point j. */ *TurbVar_jd; /*!< \brief Vector of derivative of turbulent variables at point j. */ - double *TransVar_i, /*!< \brief Vector of turbulent variables at point i. */ + su2double *TransVar_i, /*!< \brief Vector of turbulent variables at point i. */ *TransVar_j; /*!< \brief Vector of turbulent variables at point j. */ - double *LevelSetVar_i, /*!< \brief Vector of turbulent variables at point i. */ + su2double *LevelSetVar_i, /*!< \brief Vector of turbulent variables at point i. */ *LevelSetVar_j; /*!< \brief Vector of turbulent variables at point j. */ - double *TurbPsi_i, /*!< \brief Vector of adjoint turbulent variables at point i. */ + su2double *TurbPsi_i, /*!< \brief Vector of adjoint turbulent variables at point i. */ *TurbPsi_j; /*!< \brief Vector of adjoint turbulent variables at point j. */ - double **ConsVar_Grad_i, /*!< \brief Gradient of conservative variables at point i. */ + su2double **ConsVar_Grad_i, /*!< \brief Gradient of conservative variables at point i. */ **ConsVar_Grad_j, /*!< \brief Gradient of conservative variables at point j. */ **ConsVar_Grad_0, /*!< \brief Gradient of conservative variables at point 0. */ **ConsVar_Grad_1, /*!< \brief Gradient of conservative variables at point 1. */ **ConsVar_Grad_2, /*!< \brief Gradient of conservative variables at point 2. */ **ConsVar_Grad_3, /*!< \brief Gradient of conservative variables at point 3. */ **ConsVar_Grad; /*!< \brief Gradient of conservative variables which is a scalar. */ - double **PrimVar_Grad_i, /*!< \brief Gradient of primitive variables at point i. */ + su2double **PrimVar_Grad_i, /*!< \brief Gradient of primitive variables at point i. */ **PrimVar_Grad_j; /*!< \brief Gradient of primitive variables at point j. */ - double *PrimVar_Lim_i, /*!< \brief Limiter of primitive variables at point i. */ + su2double *PrimVar_Lim_i, /*!< \brief Limiter of primitive variables at point i. */ *PrimVar_Lim_j; /*!< \brief Limiter of primitive variables at point j. */ - double *PsiVar_Lim_i, /*!< \brief Limiter of adjoint variables at point i. */ + su2double *PsiVar_Lim_i, /*!< \brief Limiter of adjoint variables at point i. */ *PsiVar_Lim_j; /*!< \brief Limiter of adjoint variables at point j. */ - double **PsiVar_Grad_i, /*!< \brief Gradient of adjoint variables at point i. */ + su2double **PsiVar_Grad_i, /*!< \brief Gradient of adjoint variables at point i. */ **PsiVar_Grad_j; /*!< \brief Gradient of adjoint variables at point j. */ - double **TurbVar_Grad_i, /*!< \brief Gradient of turbulent variables at point i. */ + su2double **TurbVar_Grad_i, /*!< \brief Gradient of turbulent variables at point i. */ **TurbVar_Grad_j; /*!< \brief Gradient of turbulent variables at point j. */ - double **TransVar_Grad_i, /*!< \brief Gradient of turbulent variables at point i. */ + su2double **TransVar_Grad_i, /*!< \brief Gradient of turbulent variables at point i. */ **TransVar_Grad_j; /*!< \brief Gradient of turbulent variables at point j. */ - double **LevelSetVar_Grad_i, /*!< \brief Gradient of level set variables at point i. */ + su2double **LevelSetVar_Grad_i, /*!< \brief Gradient of level set variables at point i. */ **LevelSetVar_Grad_j; /*!< \brief Gradient of level set variables at point j. */ - double **TurbPsi_Grad_i, /*!< \brief Gradient of adjoint turbulent variables at point i. */ + su2double **TurbPsi_Grad_i, /*!< \brief Gradient of adjoint turbulent variables at point i. */ **TurbPsi_Grad_j; /*!< \brief Gradient of adjoint turbulent variables at point j. */ - double *AuxVar_Grad_i, /*!< \brief Gradient of an auxiliary variable at point i. */ + su2double *AuxVar_Grad_i, /*!< \brief Gradient of an auxiliary variable at point i. */ *AuxVar_Grad_j; /*!< \brief Gradient of an auxiliary variable at point i. */ - double *Coord_i, /*!< \brief Cartesians coordinates of point i. */ + su2double *Coord_i, /*!< \brief Cartesians coordinates of point i. */ *Coord_j, /*!< \brief Cartesians coordinates of point j. */ *Coord_0, /*!< \brief Cartesians coordinates of point 0 (Galerkin method, triangle). */ *Coord_1, /*!< \brief Cartesians coordinates of point 1 (Galerkin method, tetrahedra). */ @@ -191,31 +191,31 @@ class CNumerics { *Coord_3; /*!< \brief Cartesians coordinates of point 3 (Galerkin method, tetrahedra). */ unsigned short Neighbor_i, /*!< \brief Number of neighbors of the point i. */ Neighbor_j; /*!< \brief Number of neighbors of the point j. */ - double *Normal, /*!< \brief Normal vector, it norm is the area of the face. */ + su2double *Normal, /*!< \brief Normal vector, it norm is the area of the face. */ *UnitNormal, /*!< \brief Unitary normal vector. */ *UnitNormald; /*!< \brief derivatve of unitary normal vector. */ - double TimeStep, /*!< \brief Time step useful in dual time method. */ + su2double TimeStep, /*!< \brief Time step useful in dual time method. */ Area, /*!< \brief Area of the face i-j. */ Volume; /*!< \brief Volume of the control volume around point i. */ - double Volume_n, /*!< \brief Volume of the control volume at time n. */ + su2double Volume_n, /*!< \brief Volume of the control volume at time n. */ Volume_nM1, /*!< \brief Volume of the control volume at time n-1. */ Volume_nP1; /*!< \brief Volume of the control volume at time n+1. */ - double *U_n, /*!< \brief Vector of conservative variables at time n. */ + su2double *U_n, /*!< \brief Vector of conservative variables at time n. */ *U_nM1, /*!< \brief Vector of conservative variables at time n-1. */ *U_nP1; /*!< \brief Vector of conservative variables at time n+1. */ - double vel2_inf; /*!< \brief value of the square of freestream speed. */ - double *WindGust_i, /*!< \brief Wind gust at point i. */ + su2double vel2_inf; /*!< \brief value of the square of freestream speed. */ + su2double *WindGust_i, /*!< \brief Wind gust at point i. */ *WindGust_j; /*!< \brief Wind gust at point j. */ - double *WindGustDer_i, /*!< \brief Wind gust derivatives at point i. */ + su2double *WindGustDer_i, /*!< \brief Wind gust derivatives at point i. */ *WindGustDer_j; /*!< \brief Wind gust derivatives at point j. */ - double *Vorticity_i, *Vorticity_j; /*!< \brief Vorticity. */ - double StrainMag_i, StrainMag_j; /*!< \brief Strain rate magnitude. */ - - double *l, *m; - double *dPdU_i, *dPdU_j; - double *dTdU_i, *dTdU_j; - double *dTvedU_i, *dTvedU_j; - double *Ys, **dFdYj, **dFdYi, *sumdFdYih, *sumdFdYjh, *sumdFdYieve, *sumdFdYjeve; + su2double *Vorticity_i, *Vorticity_j; /*!< \brief Vorticity. */ + su2double StrainMag_i, StrainMag_j; /*!< \brief Strain rate magnitude. */ + + su2double *l, *m; + su2double *dPdU_i, *dPdU_j; + su2double *dTdU_i, *dTdU_j; + su2double *dTvedU_i, *dTvedU_j; + su2double *Ys, **dFdYj, **dFdYi, *sumdFdYih, *sumdFdYjh, *sumdFdYieve, *sumdFdYjeve; unsigned short RHOS_INDEX, T_INDEX, TVE_INDEX, VEL_INDEX, P_INDEX, RHO_INDEX, H_INDEX, A_INDEX, RHOCVTR_INDEX, RHOCVVE_INDEX; CVariable *var; @@ -243,9 +243,9 @@ class CNumerics { * \param[in] val_matrix 3 by 3 matrix. * \result Determinant of the matrix */ - double Determinant_3x3(double A00, double A01, double A02, - double A10, double A11, double A12, - double A20, double A21, double A22); + su2double Determinant_3x3(su2double A00, su2double A01, su2double A02, + su2double A10, su2double A11, su2double A12, + su2double A20, su2double A21, su2double A22); /*! * \brief Set the solution at different times. @@ -253,7 +253,7 @@ class CNumerics { * \param[in] val_u_n Conservative solution at time n. * \param[in] val_u_nP1 Conservative solution at time n+1. */ - void SetPastSol(double *val_u_nM1, double *val_u_n, double *val_u_nP1); + void SetPastSol(su2double *val_u_nM1, su2double *val_u_n, su2double *val_u_nP1); /*! * \brief Set the control volume at different times. @@ -261,66 +261,66 @@ class CNumerics { * \param[in] val_volume_n - Control volume at time n. * \param[in] val_volume_nP1 - Control volume at time n+1. */ - void SetPastVolume(double val_volume_nM1, double val_volume_n, double val_volume_nP1); + void SetPastVolume(su2double val_volume_nM1, su2double val_volume_n, su2double val_volume_nP1); /*! * \brief Set the time step. * \param[in] val_timestep - Value of the time step. */ - void SetTimeStep(double val_timestep); + void SetTimeStep(su2double val_timestep); /*! * \brief Get the Preconditioning Beta. * \return val_Beta - Value of the low Mach Preconditioner. */ - virtual double GetPrecond_Beta(); + virtual su2double GetPrecond_Beta(); /*! * \brief Set the freestream velocity square. * \param[in] SetVelocity2_Inf - Value of the square of the freestream velocity. */ - void SetVelocity2_Inf(double val_velocity2); + void SetVelocity2_Inf(su2double val_velocity2); /*! * \brief Set the value of the vorticity * \param[in] val_vorticity - Value of the vorticity. */ - void SetVorticity(double *val_vorticity_i, double *val_vorticity_j); + void SetVorticity(su2double *val_vorticity_i, su2double *val_vorticity_j); /*! * \brief Set the value of the rate of strain magnitude. * \param[in] val_StrainMag_i - Value of the magnitude of rate of strain at point i. * \param[in] val_StrainMag_j - Value of the magnitude of rate of strain at point j. */ - void SetStrainMag(double val_strainmag_i, double val_strainmag_j); + void SetStrainMag(su2double val_strainmag_i, su2double val_strainmag_j); /*! * \brief Set the value of the conservative variables. * \param[in] val_u_i - Value of the conservative variable at point i. * \param[in] val_u_j - Value of the conservative variable at point j. */ - void SetConservative(double *val_u_i, double *val_u_j); + void SetConservative(su2double *val_u_i, su2double *val_u_j); /*! * \brief Set the value of the conservative variables withour reconstruction. * \param[in] val_u_i - Value of the conservative variable at point i. * \param[in] val_u_j - Value of the conservative variable at point j. */ - void SetConservative_ZeroOrder(double *val_u_i, double *val_u_j); + void SetConservative_ZeroOrder(su2double *val_u_i, su2double *val_u_j); /*! * \brief Set the value of the primitive variables. * \param[in] val_v_i - Value of the primitive variable at point i. * \param[in] val_v_j - Value of the primitive variable at point j. */ - void SetPrimitive(double *val_v_i, double *val_v_j); + void SetPrimitive(su2double *val_v_i, su2double *val_v_j); /*! * \brief Set the value of the primitive variables. * \param[in] val_v_i - Value of the primitive variable at point i. * \param[in] val_v_j - Value of the primitive variable at point j. */ - void SetSecondary(double *val_s_i, double *val_s_j); + void SetSecondary(su2double *val_s_i, su2double *val_s_j); /*! * \brief Set the value of the conservative variables. @@ -328,7 +328,7 @@ class CNumerics { * \param[in] val_u_1 - Value of the conservative variable at point 1. * \param[in] val_u_2 - Value of the conservative variable at point 2. */ - void SetConservative(double *val_u_0, double *val_u_1, double *val_u_2); + void SetConservative(su2double *val_u_0, su2double *val_u_1, su2double *val_u_2); /*! * \brief Set the value of the conservative variables. @@ -337,14 +337,14 @@ class CNumerics { * \param[in] val_u_2 - Value of the conservative variable at point 2. * \param[in] val_u_3 - Value of the conservative variable at point 3. */ - void SetConservative(double *val_u_0, double *val_u_1, double *val_u_2, double *val_u_3); + void SetConservative(su2double *val_u_0, su2double *val_u_1, su2double *val_u_2, su2double *val_u_3); /*! * \brief Set the gradient of the conservative variables. * \param[in] val_consvar_grad_i - Gradient of the conservative variable at point i. * \param[in] val_consvar_grad_j - Gradient of the conservative variable at point j. */ - void SetConsVarGradient(double **val_consvar_grad_i, double **val_consvar_grad_j); + void SetConsVarGradient(su2double **val_consvar_grad_i, su2double **val_consvar_grad_j); /*! * \brief Set the gradient of the conservative variables. @@ -352,9 +352,9 @@ class CNumerics { * \param[in] val_consvar_grad_1 - Gradient of the conservative variable at point 1. * \param[in] val_consvar_grad_2 - Gradient of the conservative variable at point 2. */ - void SetConsVarGradient(double **val_consvar_grad_0, - double **val_consvar_grad_1, - double **val_consvar_grad_2); + void SetConsVarGradient(su2double **val_consvar_grad_0, + su2double **val_consvar_grad_1, + su2double **val_consvar_grad_2); /*! * \brief Set the gradient of the conservative variables. @@ -363,160 +363,160 @@ class CNumerics { * \param[in] val_consvar_grad_2 - Gradient of the conservative variable at point 2. * \param[in] val_consvar_grad_3 - Gradient of the conservative variable at point 3. */ - void SetConsVarGradient(double **val_consvar_grad_0, - double **val_consvar_grad_1, - double **val_consvar_grad_2, - double **val_consvar_grad_3); + void SetConsVarGradient(su2double **val_consvar_grad_0, + su2double **val_consvar_grad_1, + su2double **val_consvar_grad_2, + su2double **val_consvar_grad_3); /*! * \brief Set the gradient of the conservative variables. * \param[in] val_consvar_grad - Gradient of the conservative variable which is a scalar. */ - void SetConsVarGradient(double **val_consvar_grad); + void SetConsVarGradient(su2double **val_consvar_grad); /*! * \brief Set the gradient of the primitive variables. * \param[in] val_primvar_grad_i - Gradient of the primitive variable at point i. * \param[in] val_primvar_grad_j - Gradient of the primitive variable at point j. */ - void SetPrimVarGradient(double **val_primvar_grad_i, - double **val_primvar_grad_j); + void SetPrimVarGradient(su2double **val_primvar_grad_i, + su2double **val_primvar_grad_j); /*! * \brief Set the Limiter of the primitive variables. * \param[in] val_primvar_lim_i - Limiter of the primitive variable at point i. * \param[in] val_primvar_lim_j - Limiter of the primitive variable at point j. */ - void SetPrimVarLimiter(double *val_primvar_lim_i, - double *val_primvar_lim_j); + void SetPrimVarLimiter(su2double *val_primvar_lim_i, + su2double *val_primvar_lim_j); /*! * \brief Set the value of the adjoint variable. * \param[in] val_psi_i - Value of the adjoint variable at point i. * \param[in] val_psi_j - Value of the adjoint variable at point j. */ - void SetAdjointVar(double *val_psi_i, double *val_psi_j); + void SetAdjointVar(su2double *val_psi_i, su2double *val_psi_j); /*! * \brief Set the value of the linearized conservative variables. * \param[in] val_deltau_i - Value of the linearized conservative variable at point i. * \param[in] val_deltau_j - Value of the linearized conservative variable at point j. */ - void SetLinearizedVar(double *val_deltau_i, double *val_deltau_j); + void SetLinearizedVar(su2double *val_deltau_i, su2double *val_deltau_j); /*! * \brief Set the gradient of the adjoint variables. * \param[in] val_psivar_grad_i - Gradient of the adjoint variable at point i. * \param[in] val_psivar_grad_j - Gradient of the adjoint variable at point j. */ - void SetAdjointVarGradient(double **val_psivar_grad_i, double **val_psivar_grad_j); + void SetAdjointVarGradient(su2double **val_psivar_grad_i, su2double **val_psivar_grad_j); /*! * \brief Set the limiter of the adjoint variables. * \param[in] val_psivar_lim_i - Gradient of the adjoint variable at point i. * \param[in] val_psivar_lim_j - Gradient of the adjoint variable at point j. */ - void SetAdjointVarLimiter(double *val_psivar_lim_i, double *val_psivar_lim_j); + void SetAdjointVarLimiter(su2double *val_psivar_lim_i, su2double *val_psivar_lim_j); /*! * \brief Set the value of the turbulent variable. * \param[in] val_turbvar_i - Value of the turbulent variable at point i. * \param[in] val_turbvar_j - Value of the turbulent variable at point j. */ - void SetTurbVar(double *val_turbvar_i, double *val_turbvar_j); + void SetTurbVar(su2double *val_turbvar_i, su2double *val_turbvar_j); /*! * \brief Set the value of the turbulent variable. * \param[in] val_transvar_i - Value of the turbulent variable at point i. * \param[in] val_transvar_j - Value of the turbulent variable at point j. */ - void SetTransVar(double *val_transvar_i, double *val_transvar_j); + void SetTransVar(su2double *val_transvar_i, su2double *val_transvar_j); /*! * \brief Set the gradient of the turbulent variables. * \param[in] val_turbvar_grad_i - Gradient of the turbulent variable at point i. * \param[in] val_turbvar_grad_j - Gradient of the turbulent variable at point j. */ - void SetTurbVarGradient(double **val_turbvar_grad_i, double **val_turbvar_grad_j); + void SetTurbVarGradient(su2double **val_turbvar_grad_i, su2double **val_turbvar_grad_j); /*! * \brief Set the gradient of the turbulent variables. * \param[in] val_turbvar_grad_i - Gradient of the turbulent variable at point i. * \param[in] val_turbvar_grad_j - Gradient of the turbulent variable at point j. */ - void SetTransVarGradient(double **val_transvar_grad_i, double **val_transvar_grad_j); + void SetTransVarGradient(su2double **val_transvar_grad_i, su2double **val_transvar_grad_j); /*! * \brief Set the value of the level set variable. * \param[in] val_levelsetvar_i - Value of the level set variable at point i. * \param[in] val_levelsetvar_j - Value of the level set variable at point j. */ - void SetLevelSetVar(double *val_levelsetvar_i, double *val_levelsetvar_j); + void SetLevelSetVar(su2double *val_levelsetvar_i, su2double *val_levelsetvar_j); /*! * \brief Set the gradient of the level set variables. * \param[in] val_levelsetvar_grad_i - Gradient of the level set variable at point i. * \param[in] val_levelsetvar_grad_j - Gradient of the level set variable at point j. */ - void SetLevelSetVarGradient(double **val_levelsetvar_grad_i, double **val_levelsetvar_grad_j); + void SetLevelSetVarGradient(su2double **val_levelsetvar_grad_i, su2double **val_levelsetvar_grad_j); /*! * \brief Set the value of the adjoint turbulent variable. * \param[in] val_turbpsivar_i - Value of the adjoint turbulent variable at point i. * \param[in] val_turbpsivar_j - Value of the adjoint turbulent variable at point j. */ - void SetTurbAdjointVar(double *val_turbpsivar_i, double *val_turbpsivar_j); + void SetTurbAdjointVar(su2double *val_turbpsivar_i, su2double *val_turbpsivar_j); /*! * \brief Set the gradient of the adjoint turbulent variables. * \param[in] val_turbpsivar_grad_i - Gradient of the adjoint turbulent variable at point i. * \param[in] val_turbpsivar_grad_j - Gradient of the adjoint turbulent variable at point j. */ - void SetTurbAdjointGradient (double **val_turbpsivar_grad_i, double **val_turbpsivar_grad_j); + void SetTurbAdjointGradient (su2double **val_turbpsivar_grad_i, su2double **val_turbpsivar_grad_j); /*! * \brief Set the value of the first blending function. * \param[in] val_F1_i - Value of the first Menter blending function at point i. * \param[in] val_F1_j - Value of the first Menter blending function at point j. */ - virtual void SetF1blending(double val_F1_i, double val_F1_j) {/* empty */}; + virtual void SetF1blending(su2double val_F1_i, su2double val_F1_j) {/* empty */}; /*! * \brief Set the value of the second blending function. * \param[in] val_F1_i - Value of the second Menter blending function at point i. * \param[in] val_F1_j - Value of the second Menter blending function at point j. */ - virtual void SetF2blending(double val_F1_i, double val_F1_j) {/* empty */}; + virtual void SetF2blending(su2double val_F1_i, su2double val_F1_j) {/* empty */}; /*! * \brief Set the value of the cross diffusion for the SST model. * \param[in] val_CDkw_i - Value of the cross diffusion at point i. * \param[in] val_CDkw_j - Value of the cross diffusion at point j. */ - virtual void SetCrossDiff(double val_CDkw_i, double val_CDkw_j) {/* empty */}; + virtual void SetCrossDiff(su2double val_CDkw_i, su2double val_CDkw_j) {/* empty */}; /*! * \brief Set the gradient of the auxiliary variables. * \param[in] val_auxvargrad_i - Gradient of the auxiliary variable at point i. * \param[in] val_auxvargrad_j - Gradient of the auxiliary variable at point j. */ - void SetAuxVarGrad(double *val_auxvargrad_i, double *val_auxvargrad_j); + void SetAuxVarGrad(su2double *val_auxvargrad_i, su2double *val_auxvargrad_j); /*! * \brief Set the diffusion coefficient * \param[in] val_diffusioncoeff_i - Value of the diffusion coefficients at i. * \param[in] val_diffusioncoeff_j - Value of the diffusion coefficients at j */ - void SetDiffusionCoeff(double* val_diffusioncoeff_i, - double* val_diffusioncoeff_j); + void SetDiffusionCoeff(su2double* val_diffusioncoeff_i, + su2double* val_diffusioncoeff_j); /*! * \brief Set the laminar viscosity. * \param[in] val_laminar_viscosity_i - Value of the laminar viscosity at point i. * \param[in] val_laminar_viscosity_j - Value of the laminar viscosity at point j. */ - void SetLaminarViscosity(double val_laminar_viscosity_i, - double val_laminar_viscosity_j); + void SetLaminarViscosity(su2double val_laminar_viscosity_i, + su2double val_laminar_viscosity_j); /*! * \brief Set the thermal conductivity (translational/rotational) @@ -524,8 +524,8 @@ class CNumerics { * \param[in] val_thermal_conductivity_j - Value of the thermal conductivity at point j. * \param[in] iSpecies - Value of the species. */ - void SetThermalConductivity(double val_thermal_conductivity_i, - double val_thermal_conductivity_j); + void SetThermalConductivity(su2double val_thermal_conductivity_i, + su2double val_thermal_conductivity_j); /*! * \brief Set the thermal conductivity (translational/rotational) @@ -533,37 +533,37 @@ class CNumerics { * \param[in] val_thermal_conductivity_j - Value of the thermal conductivity at point j. * \param[in] iSpecies - Value of the species. */ - void SetThermalConductivity_ve(double val_thermal_conductivity_ve_i, - double val_thermal_conductivity_ve_j); + void SetThermalConductivity_ve(su2double val_thermal_conductivity_ve_i, + su2double val_thermal_conductivity_ve_j); /*! * \brief Set the eddy viscosity. * \param[in] val_eddy_viscosity_i - Value of the eddy viscosity at point i. * \param[in] val_eddy_viscosity_j - Value of the eddy viscosity at point j. */ - void SetEddyViscosity(double val_eddy_viscosity_i, - double val_eddy_viscosity_j); + void SetEddyViscosity(su2double val_eddy_viscosity_i, + su2double val_eddy_viscosity_j); /*! * \brief Set the turbulent kinetic energy. * \param[in] val_turb_ke_i - Value of the turbulent kinetic energy at point i. * \param[in] val_turb_ke_j - Value of the turbulent kinetic energy at point j. */ - void SetTurbKineticEnergy(double val_turb_ke_i, double val_turb_ke_j); + void SetTurbKineticEnergy(su2double val_turb_ke_i, su2double val_turb_ke_j); /*! * \brief Set the value of the distance from the nearest wall. * \param[in] val_dist_i - Value of of the distance from point i to the nearest wall. * \param[in] val_dist_j - Value of of the distance from point j to the nearest wall. */ - void SetDistance(double val_dist_i, double val_dist_j); + void SetDistance(su2double val_dist_i, su2double val_dist_j); /*! * \brief Set coordinates of the points. * \param[in] val_coord_i - Coordinates of the point i. * \param[in] val_coord_j - Coordinates of the point j. */ - void SetCoord(double *val_coord_i, double *val_coord_j); + void SetCoord(su2double *val_coord_i, su2double *val_coord_j); /*! * \overload @@ -571,7 +571,7 @@ class CNumerics { * \param[in] val_coord_1 - Coordinates of the point 1. * \param[in] val_coord_2 - Coordinates of the point 2. */ - void SetCoord(double *val_coord_0, double *val_coord_1, double *val_coord_2); + void SetCoord(su2double *val_coord_0, su2double *val_coord_1, su2double *val_coord_2); /*! * \overload @@ -580,99 +580,99 @@ class CNumerics { * \param[in] val_coord_2 - Coordinates of the point 2. * \param[in] val_coord_3 - Coordinates of the point 3. */ - void SetCoord(double *val_coord_0, double *val_coord_1, double *val_coord_2, - double *val_coord_3); + void SetCoord(su2double *val_coord_0, su2double *val_coord_1, su2double *val_coord_2, + su2double *val_coord_3); /*! * \brief Set the velocity of the computational grid. * \param[in] val_gridvel_i - Grid velocity of the point i. * \param[in] val_gridvel_j - Grid velocity of the point j. */ - void SetGridVel(double *val_gridvel_i, double *val_gridvel_j); + void SetGridVel(su2double *val_gridvel_i, su2double *val_gridvel_j); /*! * \brief Set the wind gust value. * \param[in] val_windgust_i - Wind gust of the point i. * \param[in] val_windgust_j - Wind gust of the point j. */ - void SetWindGust(double *val_windgust_i, double *val_windgust_j); + void SetWindGust(su2double *val_windgust_i, su2double *val_windgust_j); /*! * \brief Set the wind gust derivatives values. * \param[in] val_windgust_i - Wind gust derivatives of the point i. * \param[in] val_windgust_j - Wind gust derivatives of the point j. */ - void SetWindGustDer(double *val_windgustder_i, double *val_windgustder_j); + void SetWindGustDer(su2double *val_windgustder_i, su2double *val_windgustder_j); /*! * \brief Set the value of the pressure. * \param[in] val_pressure_i - Value of the pressure at point i. * \param[in] val_pressure_j - Value of the pressure at point j. */ - void SetPressure(double val_pressure_i, double val_pressure_j); + void SetPressure(su2double val_pressure_i, su2double val_pressure_j); /*! * \brief Set the value of the density for the incompressible solver. * \param[in] val_densityinc_i - Value of the pressure at point i. * \param[in] val_densityinc_j - Value of the pressure at point j. */ - void SetDensityInc(double val_densityinc_i, double val_densityinc_j); + void SetDensityInc(su2double val_densityinc_i, su2double val_densityinc_j); /*! * \brief Set the value of the beta for incompressible flows. * \param[in] val_betainc2_i - Value of beta for incompressible flows at point i. * \param[in] val_betainc2_j - Value of beta for incompressible flows at point j. */ - void SetBetaInc2(double val_betainc2_i, double val_betainc2_j); + void SetBetaInc2(su2double val_betainc2_i, su2double val_betainc2_j); /*! * \brief Set the value of the sound speed. * \param[in] val_soundspeed_i - Value of the sound speed at point i. * \param[in] val_soundspeed_j - Value of the sound speed at point j. */ - void SetSoundSpeed(double val_soundspeed_i, double val_soundspeed_j); + void SetSoundSpeed(su2double val_soundspeed_i, su2double val_soundspeed_j); /*! * \brief Set the value of the temperature. * \param[in] val_temp_i - Value of the temperature at point i. * \param[in] val_temp_j - Value of the temperature at point j. */ - void SetTemperature(double val_temp_i, double val_temp_j); + void SetTemperature(su2double val_temp_i, su2double val_temp_j); /*! * \brief Set the value of the species pressures. * \param[in] val_pressure_i - Value of the pressure at point i. * \param[in] val_pressure_j - Value of the pressure at point j. */ - void SetPressure(double* val_pressure_i, double* val_pressure_j); + void SetPressure(su2double* val_pressure_i, su2double* val_pressure_j); /*! * \brief Set the value of the enthalpy. * \param[in] val_enthalpy_i - Value of the enthalpy at point i. * \param[in] val_enthalpy_j - Value of the enthalpy at point j. */ - void SetEnthalpy(double val_enthalpy_i, double val_enthalpy_j); + void SetEnthalpy(su2double val_enthalpy_i, su2double val_enthalpy_j); /*! * \brief Set the value of the spectral radius. * \param[in] val_lambda_i - Value of the spectral radius at point i. * \param[in] val_lambda_j - Value of the spectral radius at point j. */ - void SetLambda(double val_lambda_i, double val_lambda_j); + void SetLambda(su2double val_lambda_i, su2double val_lambda_j); /*! * \brief Set the value of undivided laplacian. * \param[in] val_und_lapl_i Undivided laplacian at point i. * \param[in] val_und_lapl_j Undivided laplacian at point j. */ - void SetUndivided_Laplacian(double *val_und_lapl_i, double *val_und_lapl_j); + void SetUndivided_Laplacian(su2double *val_und_lapl_i, su2double *val_und_lapl_j); /*! * \brief Set the value of the pressure sensor. * \param[in] val_sensor_i Pressure sensor at point i. * \param[in] val_sensor_j Pressure sensor at point j. */ - void SetSensor(double val_sensor_i, double val_sensor_j); + void SetSensor(su2double val_sensor_i, su2double val_sensor_j); /*! * \brief Set the number of neighbor to a point. @@ -685,13 +685,13 @@ class CNumerics { * \brief Set the value of the normal vector to the face between two points. * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. */ - void SetNormal(double *val_normal); + void SetNormal(su2double *val_normal); /*! * \brief Set the value of the volume of the control volume. * \param[in] val_volume Volume of the control volume. */ - void SetVolume(double val_volume); + void SetVolume(su2double val_volume); /*! * \brief Retrieves the value of the species density in the primitive variable vector. @@ -757,19 +757,19 @@ class CNumerics { * \brief Sets the value of the derivative of pressure w.r.t. species density. * \param[in] iRho_s */ - void SetdPdU(double *val_dPdU_i, double *val_dPdU_j); + void SetdPdU(su2double *val_dPdU_i, su2double *val_dPdU_j); /*! * \brief Sets the value of the derivative of temperature w.r.t. species density. * \param[in] iRho_s */ - void SetdTdU(double *val_dTdU_i, double *val_dTdU_j); + void SetdTdU(su2double *val_dTdU_i, su2double *val_dTdU_j); /*! * \brief Sets the value of the derivative of vib-el. temperature w.r.t. species density. * \param[in] iRho_s */ - void SetdTvedU(double *val_dTvedU_i, double *val_dTvedU_j); + void SetdTvedU(su2double *val_dTvedU_i, su2double *val_dTvedU_j); /*! * \brief Get the inviscid fluxes. @@ -778,7 +778,7 @@ class CNumerics { * \param[in] val_pressure - Value of the pressure. * \param[in] val_enthalpy - Value of the enthalpy. */ - void GetInviscidFlux(double val_density, double *val_velocity, double val_pressure, double val_enthalpy); + void GetInviscidFlux(su2double val_density, su2double *val_velocity, su2double val_pressure, su2double val_enthalpy); /*! * \brief Get the viscous fluxes. @@ -788,9 +788,9 @@ class CNumerics { * \param[in] val_eddy_viscosity - Value of the eddy viscosity. * \param[in] val_mach_inf - Value of the Mach number at the infinity. */ - void GetViscousFlux(double *val_primvar, double **val_gradprimvar, - double val_laminar_viscosity, double val_eddy_viscosity, - double val_mach_inf); + void GetViscousFlux(su2double *val_primvar, su2double **val_gradprimvar, + su2double val_laminar_viscosity, su2double val_eddy_viscosity, + su2double val_mach_inf); /*! * \brief Compute the projected inviscid flux vector. @@ -801,9 +801,9 @@ class CNumerics { * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_Proj_Flux - Pointer to the projected flux. */ - void GetInviscidProjFlux(double *val_density, double *val_velocity, - double *val_pressure, double *val_enthalpy, - double *val_normal, double *val_Proj_Flux); + void GetInviscidProjFlux(su2double *val_density, su2double *val_velocity, + su2double *val_pressure, su2double *val_enthalpy, + su2double *val_normal, su2double *val_Proj_Flux); /*! * \brief Compute the projected inviscid flux vector. @@ -812,8 +812,8 @@ class CNumerics { * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_Proj_Flux - Pointer to the projected flux. */ - void GetInviscidProjFlux(double *val_U, double *val_V, double *val_normal, - double *val_Proj_Flux); + void GetInviscidProjFlux(su2double *val_U, su2double *val_V, su2double *val_normal, + su2double *val_Proj_Flux); /*! * \brief Compute the projected inviscid flux vector for incompresible simulations @@ -824,9 +824,9 @@ class CNumerics { * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_Proj_Flux - Pointer to the projected flux. */ - void GetInviscidArtCompProjFlux(double *val_density, double *val_velocity, - double *val_pressure, double *val_betainc2, - double *val_normal, double *val_Proj_Flux); + void GetInviscidArtCompProjFlux(su2double *val_density, su2double *val_velocity, + su2double *val_pressure, su2double *val_betainc2, + su2double *val_normal, su2double *val_Proj_Flux); /*! * \brief Compute the projected inviscid flux vector for incompresible simulations @@ -837,13 +837,13 @@ class CNumerics { * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_Proj_Flux - Pointer to the projected flux. */ - void GetInviscidArtComp_FreeSurf_ProjFlux(double *val_density, - double *val_velocity, - double *val_pressure, - double *val_betainc2, - double *val_levelset, - double *val_normal, - double *val_Proj_Flux); + void GetInviscidArtComp_FreeSurf_ProjFlux(su2double *val_density, + su2double *val_velocity, + su2double *val_pressure, + su2double *val_betainc2, + su2double *val_levelset, + su2double *val_normal, + su2double *val_Proj_Flux); /*! @@ -858,10 +858,10 @@ class CNumerics { * \param[in] val_eddy_conductivity - Eddy Conductivity. */ - void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, - double val_turb_ke, double *val_normal, - double val_laminar_viscosity, - double val_eddy_viscosity); + void GetViscousProjFlux(su2double *val_primvar, su2double **val_gradprimvar, + su2double val_turb_ke, su2double *val_normal, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity); /*! * \brief Compute the projection of the viscous fluxes into a direction for general fluid model. * \param[in] val_primvar - Primitive variables. @@ -874,12 +874,12 @@ class CNumerics { * \param[in] val_heat_capacity_cp - Heat Capacity at constant pressure. */ -void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, - double val_turb_ke, double *val_normal, - double val_laminar_viscosity, - double val_eddy_viscosity, - double val_thermal_conductivity, - double val_heat_capacity_cp); +void GetViscousProjFlux(su2double *val_primvar, su2double **val_gradprimvar, + su2double val_turb_ke, su2double *val_normal, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity, + su2double val_thermal_conductivity, + su2double val_heat_capacity_cp); @@ -894,13 +894,13 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_therm_conductivity_ve * \param[in] config */ - void GetViscousProjFlux(double *val_primvar, - double **val_gradprimvar, - double *val_normal, - double *val_diffusioncoeff, - double val_viscosity, - double val_therm_conductivity, - double val_therm_conductivity_ve, + void GetViscousProjFlux(su2double *val_primvar, + su2double **val_gradprimvar, + su2double *val_normal, + su2double *val_diffusioncoeff, + su2double val_viscosity, + su2double val_therm_conductivity, + su2double val_therm_conductivity_ve, CConfig *config); /* @@ -912,10 +912,10 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_eddy_viscosity - Eddy viscosity. */ - void GetViscousArtCompProjFlux(double **val_gradprimvar, - double *val_normal, - double val_laminar_viscosity, - double val_eddy_viscosity); + void GetViscousArtCompProjFlux(su2double **val_gradprimvar, + su2double *val_normal, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity); /*! * \brief Compute the projection of the inviscid Jacobian matrices. @@ -925,9 +925,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_scale - Scale of the projection. * \param[out] val_Proj_Jac_tensor - Pointer to the projected inviscid Jacobian. */ - void GetInviscidProjJac(double *val_velocity, double *val_energy, - double *val_normal, double val_scale, - double **val_Proj_Jac_tensor); + void GetInviscidProjJac(su2double *val_velocity, su2double *val_energy, + su2double *val_normal, su2double val_scale, + su2double **val_Proj_Jac_tensor); /*! * \brief Compute the projection of the inviscid Jacobian matrices (artificial compresibility). @@ -938,10 +938,10 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_scale - Scale of the projection. * \param[out] val_Proj_Jac_tensor - Pointer to the projected inviscid Jacobian. */ - void GetInviscidArtCompProjJac(double *val_density, double *val_velocity, - double *val_betainc2, double *val_normal, - double val_scale, - double **val_Proj_Jac_tensor); + void GetInviscidArtCompProjJac(su2double *val_density, su2double *val_velocity, + su2double *val_betainc2, su2double *val_normal, + su2double val_scale, + su2double **val_Proj_Jac_tensor); /*! * \brief Compute the projection of the inviscid Jacobian matrices (artificial compresibility). @@ -952,14 +952,14 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_scale - Scale of the projection. * \param[out] val_Proj_Jac_tensor - Pointer to the projected inviscid Jacobian. */ - void GetInviscidArtComp_FreeSurf_ProjJac(double *val_density, - double *val_ddensity, - double *val_velocity, - double *val_betainc2, - double *val_levelset, - double *val_normal, - double val_scale, - double **val_Proj_Jac_tensor); + void GetInviscidArtComp_FreeSurf_ProjJac(su2double *val_density, + su2double *val_ddensity, + su2double *val_velocity, + su2double *val_betainc2, + su2double *val_levelset, + su2double *val_normal, + su2double val_scale, + su2double **val_Proj_Jac_tensor); /*! * \brief Compute the projection of the inviscid Jacobian matrices for general fluid model. @@ -969,10 +969,10 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_scale - Scale of the projection. * \param[out] val_Proj_Jac_tensor - Pointer to the projected inviscid Jacobian. */ - void GetInviscidProjJac(double *val_velocity, double *val_enthalphy, - double *val_chi, double *val_kappa, - double *val_normal, double val_scale, - double **val_Proj_Jac_tensor); + void GetInviscidProjJac(su2double *val_velocity, su2double *val_enthalphy, + su2double *val_chi, su2double *val_kappa, + su2double *val_normal, su2double val_scale, + su2double **val_Proj_Jac_tensor); /*! * \overload * \brief Compute the projection of the inviscid Jacobian matrices. @@ -982,9 +982,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_scale - Scale of the projection. * \param[out] val_Proj_Jac_tensor - Pointer to the projected inviscid Jacobian. */ - void GetInviscidProjJac(double **val_velocity, double *val_energy, - double *val_normal, double val_scale, - double **val_Proj_Jac_tensor); + void GetInviscidProjJac(su2double **val_velocity, su2double *val_energy, + su2double *val_normal, su2double val_scale, + su2double **val_Proj_Jac_tensor); /*! * \overload @@ -996,9 +996,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_scale - Scale of the projection. * \param[out] val_Proj_Jac_tensor - Pointer to the projected inviscid Jacobian. */ - void GetInviscidProjJac(double *val_U, double *val_V, double *val_dPdU, - double *val_normal, double val_scale, - double **val_Proj_Jac_Tensor); + void GetInviscidProjJac(su2double *val_U, su2double *val_V, su2double *val_dPdU, + su2double *val_normal, su2double val_scale, + su2double **val_Proj_Jac_Tensor); /*! * \brief TSL-Approximation of Viscous NS Jacobians. @@ -1012,14 +1012,14 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Proj_Jac_Tensor_i - Pointer to the projected viscous Jacobian at point i. * \param[out] val_Proj_Jac_Tensor_j - Pointer to the projected viscous Jacobian at point j. */ - void GetViscousProjJacs(double *val_Mean_PrimVar, - double val_laminar_viscosity, - double val_eddy_viscosity, - double val_dist_ij, - double *val_normal, double val_dS, - double *val_Proj_Visc_Flux, - double **val_Proj_Jac_Tensor_i, - double **val_Proj_Jac_Tensor_j); + void GetViscousProjJacs(su2double *val_Mean_PrimVar, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity, + su2double val_dist_ij, + su2double *val_normal, su2double val_dS, + su2double *val_Proj_Visc_Flux, + su2double **val_Proj_Jac_Tensor_i, + su2double **val_Proj_Jac_Tensor_j); /*! * \brief TSL-Approximation of Viscous NS Jacobians for arbitrary equations of state. @@ -1037,18 +1037,18 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Proj_Jac_Tensor_i - Pointer to the projected viscous Jacobian at point i. * \param[out] val_Proj_Jac_Tensor_j - Pointer to the projected viscous Jacobian at point j. */ - void GetViscousProjJacs(double *val_Mean_PrimVar, - double **val_gradprimvar, - double *val_Mean_SecVar, - double val_laminar_viscosity, - double val_eddy_viscosity, - double val_thermal_conductivity, - double val_heat_capacity_cp, - double val_dist_ij, - double *val_normal, double val_dS, - double *val_Proj_Visc_Flux, - double **val_Proj_Jac_Tensor_i, - double **val_Proj_Jac_Tensor_j); + void GetViscousProjJacs(su2double *val_Mean_PrimVar, + su2double **val_gradprimvar, + su2double *val_Mean_SecVar, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity, + su2double val_thermal_conductivity, + su2double val_heat_capacity_cp, + su2double val_dist_ij, + su2double *val_normal, su2double val_dS, + su2double *val_Proj_Visc_Flux, + su2double **val_Proj_Jac_Tensor_i, + su2double **val_Proj_Jac_Tensor_j); /*! * \brief Mapping between primitives variables P and conservatives variables C. @@ -1056,9 +1056,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_Mean_PrimVar - Mean Value of the secondary variables. * \param[out] val_Jac_PC - Pointer to the Jacobian dPdC. */ - void GetPrimitive2Conservative (double *val_Mean_PrimVar, - double *val_Mean_SecVar, - double **val_Jac_PC); + void GetPrimitive2Conservative (su2double *val_Mean_PrimVar, + su2double *val_Mean_SecVar, + su2double **val_Jac_PC); /*! * \brief TSL-Approximation of Viscous NS Jacobians. @@ -1072,16 +1072,16 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Proj_Jac_Tensor_i - Pointer to the projected viscous Jacobian at point i. * \param[out] val_Proj_Jac_Tensor_j - Pointer to the projected viscous Jacobian at point j. */ - void GetViscousProjJacs(double *val_Mean_PrimVar, - double *val_diffusion_coeff, - double val_laminar_viscosity, - double val_thermal_conductivity, - double val_thermal_conductivity_ve, - double val_dist_ij, - double *val_normal, double val_dS, - double *val_Proj_Visc_Flux, - double **val_Proj_Jac_Tensor_i, - double **val_Proj_Jac_Tensor_j, + void GetViscousProjJacs(su2double *val_Mean_PrimVar, + su2double *val_diffusion_coeff, + su2double val_laminar_viscosity, + su2double val_thermal_conductivity, + su2double val_thermal_conductivity_ve, + su2double val_dist_ij, + su2double *val_normal, su2double val_dS, + su2double *val_Proj_Visc_Flux, + su2double **val_Proj_Jac_Tensor_i, + su2double **val_Proj_Jac_Tensor_j, CConfig *config); /*! @@ -1094,11 +1094,11 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Proj_Jac_Tensor_i - Pointer to the projected viscous Jacobian at point i. * \param[out] val_Proj_Jac_Tensor_j - Pointer to the projected viscous Jacobian at point j. */ - void GetViscousArtCompProjJacs(double val_laminar_viscosity, - double val_eddy_viscosity, double val_dist_ij, - double *val_normal, double val_dS, - double **val_Proj_Jac_Tensor_i, - double **val_Proj_Jac_Tensor_j); + void GetViscousArtCompProjJacs(su2double val_laminar_viscosity, + su2double val_eddy_viscosity, su2double val_dist_ij, + su2double *val_normal, su2double val_dS, + su2double **val_Proj_Jac_Tensor_i, + su2double **val_Proj_Jac_Tensor_j); /*! * \overload @@ -1112,9 +1112,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_p_tensor - Pointer to the P matrix. */ - void GetPMatrix(double *val_density, double *val_velocity, - double *val_soundspeed, double *val_enthalpy, double *val_chi, double *val_kappa, - double *val_normal, double **val_p_tensor); + void GetPMatrix(su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_enthalpy, su2double *val_chi, su2double *val_kappa, + su2double *val_normal, su2double **val_p_tensor); /*! * \brief Computation of the matrix P, this matrix diagonalize the conservative Jacobians in @@ -1125,9 +1125,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_p_tensor - Pointer to the P matrix. */ - void GetPMatrix(double *val_density, double *val_velocity, - double *val_soundspeed, double *val_normal, - double **val_p_tensor); + void GetPMatrix(su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_normal, + su2double **val_p_tensor); /*! * \overload @@ -1139,9 +1139,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_p_tensor - Pointer to the P matrix. */ - void GetPMatrix(double *val_density, double **val_velocity, - double *val_soundspeed, double *val_normal, - double **val_p_tensor); + void GetPMatrix(su2double *val_density, su2double **val_velocity, + su2double *val_soundspeed, su2double *val_normal, + su2double **val_p_tensor); /*! * \overload @@ -1155,9 +1155,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] m - Tangential vector to face (mutually orthogonal to val_normal & l). * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPMatrix(double *U, double *V, double *val_dPdU, - double *val_normal, double *l, double *m, - double **val_p_tensor) ; + void GetPMatrix(su2double *U, su2double *V, su2double *val_dPdU, + su2double *val_normal, su2double *l, su2double *m, + su2double **val_p_tensor) ; /*! * \brief Computation of the matrix Rinv*Pe. @@ -1168,9 +1168,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_velocity - value of the velocity. * \param[out] val_invR_invPe - Pointer to the matrix of conversion from entropic to conserved variables. */ - void GetinvRinvPe(double Beta2, double val_enthalpy, double val_soundspeed, - double val_density, double* val_velocity, - double** val_invR_invPe); + void GetinvRinvPe(su2double Beta2, su2double val_enthalpy, su2double val_soundspeed, + su2double val_density, su2double* val_velocity, + su2double** val_invR_invPe); /*! * \brief Computation of the matrix R. @@ -1180,9 +1180,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_velocity - value of the velocity. * \param[out] val_invR_invPe - Pointer to the matrix of conversion from entropic to conserved variables. */ - void GetRMatrix(double val_pressure, double val_soundspeed, - double val_density, double* val_velocity, - double** val_invR_invPe); + void GetRMatrix(su2double val_pressure, su2double val_soundspeed, + su2double val_density, su2double* val_velocity, + su2double** val_invR_invPe); /*! * \brief Computation of the matrix Td, this matrix diagonalize the preconditioned conservative Jacobians @@ -1196,7 +1196,7 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_absPeJac - Pointer to the Preconditioned Jacobian matrix. */ - void GetPrecondJacobian(double Beta2, double r_hat, double s_hat, double t_hat, double rB2a2, double* val_Lambda, double* val_normal, double** val_absPeJac); + void GetPrecondJacobian(su2double Beta2, su2double r_hat, su2double s_hat, su2double t_hat, su2double rB2a2, su2double* val_Lambda, su2double* val_normal, su2double** val_absPeJac); /*! * \brief Computation of the matrix P (artificial compresibility), this matrix diagonalize the conservative Jacobians in @@ -1207,9 +1207,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_p_tensor - Pointer to the P matrix. */ - void GetPArtCompMatrix(double *val_density, double *val_velocity, - double *val_betainv2, double *val_normal, - double **val_p_tensor); + void GetPArtCompMatrix(su2double *val_density, su2double *val_velocity, + su2double *val_betainv2, su2double *val_normal, + su2double **val_p_tensor); /*! * \brief Computation of the matrix P (artificial compresibility), this matrix diagonalize the conservative Jacobians in @@ -1220,10 +1220,10 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_p_tensor - Pointer to the P matrix. */ - void GetPArtComp_FreeSurf_Matrix(double *val_density, double *val_ddensity, - double *val_velocity, double *val_betainv2, - double *val_levelset, double *val_normal, - double **val_p_tensor); + void GetPArtComp_FreeSurf_Matrix(su2double *val_density, su2double *val_ddensity, + su2double *val_velocity, su2double *val_betainv2, + su2double *val_levelset, su2double *val_normal, + su2double **val_p_tensor); /*! * \brief Computation of the matrix P^{-1}, this matrix diagonalize the conservative Jacobians @@ -1234,10 +1234,10 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPMatrix_inv(double **val_invp_tensor, double *val_density, - double *val_velocity, double *val_soundspeed, - double *val_chi, double *val_kappa, - double *val_normal); + void GetPMatrix_inv(su2double **val_invp_tensor, su2double *val_density, + su2double *val_velocity, su2double *val_soundspeed, + su2double *val_chi, su2double *val_kappa, + su2double *val_normal); /*! * \brief Computation of the matrix P^{-1}, this matrix diagonalize the conservative Jacobians @@ -1248,9 +1248,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPMatrix_inv(double *val_density, double *val_velocity, - double *val_soundspeed, double *val_normal, - double **val_invp_tensor); + void GetPMatrix_inv(su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_normal, + su2double **val_invp_tensor); /*! * \overload @@ -1262,9 +1262,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPMatrix_inv(double *val_density, double **val_velocity, - double *val_soundspeed, double *val_normal, - double **val_invp_tensor); + void GetPMatrix_inv(su2double *val_density, su2double **val_velocity, + su2double *val_soundspeed, su2double *val_normal, + su2double **val_invp_tensor); /*! * \overload @@ -1278,9 +1278,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] m - Tangential vector to face (mutually orthogonal to val_normal & l). * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPMatrix_inv(double *U, double *V, double *val_dPdU, - double *val_normal, double *l, double *m, - double **val_invp_tensor) ; + void GetPMatrix_inv(su2double *U, su2double *V, su2double *val_dPdU, + su2double *val_normal, su2double *l, su2double *m, + su2double **val_invp_tensor) ; /*! * \brief Computation of the matrix P^{-1} (artificial compresibility), this matrix diagonalize the conservative Jacobians @@ -1291,9 +1291,9 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPArtCompMatrix_inv(double *val_density, double *val_velocity, - double *val_betainv2, double *val_normal, - double **val_invp_tensor); + void GetPArtCompMatrix_inv(su2double *val_density, su2double *val_velocity, + su2double *val_betainv2, su2double *val_normal, + su2double **val_invp_tensor); /*! * \brief Computation of the matrix P^{-1} (artificial compresibility), this matrix diagonalize the conservative Jacobians @@ -1304,25 +1304,25 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[out] val_invp_tensor - Pointer to inverse of the P matrix. */ - void GetPArtComp_FreeSurf_Matrix_inv(double *val_density, - double *val_ddensity, - double *val_velocity, - double *val_betainv2, - double *val_levelset, - double *val_normal, - double **val_invp_tensor); + void GetPArtComp_FreeSurf_Matrix_inv(su2double *val_density, + su2double *val_ddensity, + su2double *val_velocity, + su2double *val_betainv2, + su2double *val_levelset, + su2double *val_normal, + su2double **val_invp_tensor); /*! * \brief Compute viscous residual and jacobian. */ - void GetAdjViscousFlux_Jac(double Pressure_i, double Pressure_j, double Density_i, double Density_j, - double ViscDens_i, double ViscDens_j, double *Velocity_i, double *Velocity_j, - double sq_vel_i, double sq_vel_j, - double XiDens_i, double XiDens_j, double **Mean_GradPhi, double *Mean_GradPsiE, - double dPhiE_dn, double *Normal, double *Edge_Vector, double dist_ij_2, double *val_residual_i, - double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, - double **val_Jacobian_jj, bool implicit); + void GetAdjViscousFlux_Jac(su2double Pressure_i, su2double Pressure_j, su2double Density_i, su2double Density_j, + su2double ViscDens_i, su2double ViscDens_j, su2double *Velocity_i, su2double *Velocity_j, + su2double sq_vel_i, su2double sq_vel_j, + su2double XiDens_i, su2double XiDens_j, su2double **Mean_GradPhi, su2double *Mean_GradPsiE, + su2double dPhiE_dn, su2double *Normal, su2double *Edge_Vector, su2double dist_ij_2, su2double *val_residual_i, + su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, bool implicit); /*! * \brief Computation of the projected inviscid lambda (eingenvalues). @@ -1331,27 +1331,27 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face. * \param[in] val_Lambda_Vector - Pointer to Lambda matrix. */ - void GetJacInviscidLambda_fabs(double *val_velocity, double val_soundspeed, - double *val_normal, double *val_Lambda_Vector); + void GetJacInviscidLambda_fabs(su2double *val_velocity, su2double val_soundspeed, + su2double *val_normal, su2double *val_Lambda_Vector); /*! * \brief Compute the numerical residual. * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_residual, CConfig *config); + virtual void ComputeResidual(su2double *val_residual, CConfig *config); /*! * \overload * \param[out] val_residual_i - Pointer to the total residual at point i. * \param[out] val_residual_j - Pointer to the total residual at point j. */ - virtual void ComputeResidual(double *val_residual_i, double *val_residual_j); + virtual void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j); - virtual void ComputeResidual_TransLM(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config, - double &gamma_sep) ; + virtual void ComputeResidual_TransLM(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config, + su2double &gamma_sep) ; /*! * \overload @@ -1359,8 +1359,8 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_residual_j - Pointer to the total residual at point j. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_residual_i, - double *val_residual_j, CConfig *config); + virtual void ComputeResidual(su2double *val_residual_i, + su2double *val_residual_j, CConfig *config); /*! * \overload @@ -1369,8 +1369,8 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_residual, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config); + virtual void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config); /*! * \overload @@ -1381,10 +1381,10 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_JacobianMeanFlow_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_residual, double **val_Jacobian_i, - double **val_Jacobian_j, - double **val_JacobianMeanFlow_i, - double **val_JacobianMeanFlow_j, + virtual void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, + su2double **val_JacobianMeanFlow_i, + su2double **val_JacobianMeanFlow_j, CConfig *config); /*! @@ -1393,7 +1393,7 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double **val_Jacobian_i, double **val_Jacobian_j, + virtual void ComputeResidual(su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! @@ -1404,8 +1404,8 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_resconv, double *val_resvisc, - double **val_Jacobian_i, double **val_Jacobian_j, + virtual void ComputeResidual(su2double *val_resconv, su2double *val_resvisc, + su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! @@ -1418,11 +1418,11 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, - double **val_Jacobian_ij, - double **val_Jacobian_ji, - double **val_Jacobian_jj, CConfig *config); + virtual void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, CConfig *config); /*! * \overload @@ -1436,19 +1436,19 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double *val_resconv_i, double *val_resvisc_i, - double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, - double **val_Jacobian_ij, - double **val_Jacobian_ji, - double **val_Jacobian_jj, CConfig *config); + virtual void ComputeResidual(su2double *val_resconv_i, su2double *val_resvisc_i, + su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, CConfig *config); /*! * \overload * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double **val_stiffmatrix_elem, CConfig *config); + virtual void ComputeResidual(su2double **val_stiffmatrix_elem, CConfig *config); /*! * \overload @@ -1456,7 +1456,7 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_residual - residual of the source terms * \param[out] val_Jacobian_i - Jacobian of the source terms */ - virtual void ComputeResidual(double *val_residual, double **val_Jacobian_i, + virtual void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); /*! @@ -1464,28 +1464,28 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] - Matrix for storing the constants to be used in the calculation of the equilibrium extent of reaction Keq. * \param[in] config - Definition of the particular problem. */ - virtual void GetEq_Rxn_Coefficients(double **EqnRxnConstants, CConfig *config); + virtual void GetEq_Rxn_Coefficients(su2double **EqnRxnConstants, CConfig *config); /*! * \brief Residual for source term integration. * \param[out] val_residual - Pointer to the source residual containing chemistry terms. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual_Axisymmetric(double *val_residual, CConfig *config); + virtual void ComputeResidual_Axisymmetric(su2double *val_residual, CConfig *config); /*! * \brief Residual for source term integration. * \param[out] val_residual - Pointer to the source residual containing chemistry terms. * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual_Axisymmetric_ad(double *val_residual, double *val_residuald, CConfig *config); + virtual void ComputeResidual_Axisymmetric_ad(su2double *val_residual, su2double *val_residuald, CConfig *config); /*! * \brief Calculation of axisymmetric source term Jacobian * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - virtual void SetJacobian_Axisymmetric(double **val_Jacobian_i, CConfig *config); + virtual void SetJacobian_Axisymmetric(su2double **val_Jacobian_i, CConfig *config); /*! * \brief Calculation of the translational-vibrational energy exchange source term @@ -1493,7 +1493,7 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_residual - residual of the source terms * \param[out] val_Jacobian_i - Jacobian of the source terms */ - virtual void ComputeVibRelaxation(double *val_residual, double **val_Jacobian_i, CConfig *config); + virtual void ComputeVibRelaxation(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); /*! * \brief Calculation of the chemistry source term @@ -1501,7 +1501,7 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[out] val_residual - residual of the source terms * \param[out] val_Jacobian_i - Jacobian of the source terms */ - virtual void ComputeChemistry(double *val_residual, double **val_Jacobian_i, CConfig *config); + virtual void ComputeChemistry(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); /*! * \brief Calculates constants used for Keq correlation. @@ -1509,144 +1509,144 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \param[in] val_reaction - Reaction number indicator. * \param[in] config - Definition of the particular problem. */ - virtual void GetKeqConstants(double *A, unsigned short val_reaction, CConfig *config); + virtual void GetKeqConstants(su2double *A, unsigned short val_reaction, CConfig *config); /*! * \brief Set intermittency for numerics (used in SA with LM transition model) */ - virtual void SetIntermittency(double intermittency_in); + virtual void SetIntermittency(su2double intermittency_in); /*! * \brief Computes the viscous source term for the TNE2 adjoint problem * \param[in] config - Definition of the particular problem. * \param[out] val_residual - residual of the source terms */ - virtual void ComputeSourceViscous(double *val_residual, CConfig *config); + virtual void ComputeSourceViscous(su2double *val_residual, CConfig *config); /*! * \brief Residual for source term integration. * \param[in] val_production - Value of the Production. */ - virtual void SetProduction(double val_production); + virtual void SetProduction(su2double val_production); /*! * \brief Residual for source term integration. * \param[in] val_destruction - Value of the Destruction. */ - virtual void SetDestruction(double val_destruction); + virtual void SetDestruction(su2double val_destruction); /*! * \brief Residual for source term integration. * \param[in] val_crossproduction - Value of the CrossProduction. */ - virtual void SetCrossProduction(double val_crossproduction); + virtual void SetCrossProduction(su2double val_crossproduction); /*! * \brief Residual for source term integration. * \param[in] val_production - Value of the Production. */ - virtual double GetProduction(void); + virtual su2double GetProduction(void); /*! * \brief Residual for source term integration. * \param[in] val_destruction - Value of the Destruction. */ - virtual double GetDestruction(void); + virtual su2double GetDestruction(void); /*! * \brief Residual for source term integration. * \param[in] val_crossproduction - Value of the CrossProduction. */ - virtual double GetCrossProduction(void); + virtual su2double GetCrossProduction(void); /*! * \overload * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double **val_Jacobian_i, - double *val_Jacobian_mui, - double ***val_Jacobian_gradi, CConfig *config); + virtual void ComputeResidual(su2double **val_Jacobian_i, + su2double *val_Jacobian_mui, + su2double ***val_Jacobian_gradi, CConfig *config); /*! * \overload * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i * \param[in] config - Definition of the particular problem. */ - virtual void ComputeResidual(double **val_Jacobian_i, - double *val_Jacobian_mui, - double ***val_Jacobian_gradi, - double **val_Jacobian_j, - double *val_Jacobian_muj, - double ***val_Jacobian_gradj, CConfig *config); + virtual void ComputeResidual(su2double **val_Jacobian_i, + su2double *val_Jacobian_mui, + su2double ***val_Jacobian_gradi, + su2double **val_Jacobian_j, + su2double *val_Jacobian_muj, + su2double ***val_Jacobian_gradj, CConfig *config); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMatrix2D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + virtual void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMatrix3D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes); + virtual void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing mass matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + virtual void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing mass matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMassMatrix3D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes); + virtual void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing dead load vector of the Galerkin method. * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_DeadLoad2D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity); + virtual void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_DeadLoad3D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity); + virtual void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); /*! * \brief Computing stresses in FEA method. * \param[in] config - Definition of the particular problem. */ - virtual void GetFEA_StressNodal2D(double StressVector[8][3], double DispElement[8], double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + virtual void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing stresses in FEA method. * \param[in] config - Definition of the particular problem. */ - virtual void GetFEA_StressNodal3D(double StressVector[8][6], double DispElement[24], double CoordCorners[8][3], unsigned short nNodes); + virtual void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief A virtual member to linearly interpolate pressures * \param[in] config - Definition of the particular problem. */ - virtual void PressInt_Linear(double CoordCorners[4][3], double *tn_e, double Fnodal[12]); + virtual void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); /*! * \brief A virtual member to linearly interpolate viscous stresses * \param[in] config - Definition of the particular problem. */ - virtual void ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]); + virtual void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); /*! * \brief A virtual member to compute the tangent matrix in structural problems @@ -1694,7 +1694,7 @@ void GetViscousProjFlux(double *val_primvar, double **val_gradprimvar, * \brief Computes a basis of orthogonal vectors from a suppled vector * \param[in] config - Normal vector */ - void CreateBasis(double *val_Normal); + void CreateBasis(su2double *val_Normal); }; @@ -1709,7 +1709,7 @@ class CUpwCUSP_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U, *Diff_Flux, /*!< \brief Diference of conservative variables and undivided laplacians. */ + su2double *Diff_U, *Diff_Flux, /*!< \brief Diference of conservative variables and undivided laplacians. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ Density_i, Density_j, Energy_i, Energy_j, /*!< \brief Mean Density and energies. */ @@ -1749,7 +1749,7 @@ class CUpwCUSP_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -1763,13 +1763,13 @@ class CUpwCUSP_Flow : public CNumerics { class CUpwRoe_Flow : public CNumerics { private: bool implicit, grid_movement; - double *Diff_U; - double *Velocity_i, *Velocity_j, *RoeVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *delta_wave, *delta_vel; - double *Lambda, *Epsilon, MaxLambda, Delta, sign; - double **P_Tensor, **invP_Tensor; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *delta_wave, *delta_vel; + su2double *Lambda, *Epsilon, MaxLambda, Delta, sign; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho, RoeSoundSpeed2, kappa; unsigned short iDim, iVar, jVar, kVar; @@ -1796,7 +1796,7 @@ class CUpwRoe_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -1810,20 +1810,20 @@ class CUpwRoe_Flow : public CNumerics { class CUpwGeneralRoe_Flow : public CNumerics { private: bool implicit, grid_movement; - double *Diff_U; - double *Velocity_i, *Velocity_j, *RoeVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *delta_wave, *delta_vel; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *delta_wave, *delta_vel; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho; unsigned short iDim, iVar, jVar, kVar; - double StaticEnthalpy_i, StaticEnergy_i, StaticEnthalpy_j, StaticEnergy_j, Kappa_i, Kappa_j, Chi_i, Chi_j, Velocity2_i, Velocity2_j; - double RoeKappa, RoeChi, RoeKappaStaticEnthalpy; + su2double StaticEnthalpy_i, StaticEnergy_i, StaticEnthalpy_j, StaticEnergy_j, Kappa_i, Kappa_j, Chi_i, Chi_j, Velocity2_i, Velocity2_j; + su2double RoeKappa, RoeChi, RoeKappaStaticEnthalpy; public: @@ -1847,7 +1847,7 @@ class CUpwGeneralRoe_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \brief Compute the Average for a general fluid flux between two nodes i and j. @@ -1868,13 +1868,13 @@ class CUpwGeneralRoe_Flow : public CNumerics { class CUpwMSW_Flow : public CNumerics { private: bool implicit; - double *Diff_U; - double *u_i, *u_j, *ust_i, *ust_j; - double *Fc_i, *Fc_j; - double *Lambda_i, *Lambda_j; - double rhos_i, rhos_j, rhosst_i, rhosst_j; - double *Ust_i, *Ust_j, *Vst_i, *Vst_j, *Velst_i, *Velst_j; - double **P_Tensor, **invP_Tensor; + su2double *Diff_U; + su2double *u_i, *u_j, *ust_i, *ust_j; + su2double *Fc_i, *Fc_j; + su2double *Lambda_i, *Lambda_j; + su2double rhos_i, rhos_j, rhosst_i, rhosst_j; + su2double *Ust_i, *Ust_j, *Vst_i, *Vst_j, *Velst_i, *Velst_j; + su2double **P_Tensor, **invP_Tensor; unsigned short nPrimVar, nPrimVarGrad, nVar, nDim; public: @@ -1899,7 +1899,7 @@ class CUpwMSW_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -1913,19 +1913,19 @@ class CUpwMSW_Flow : public CNumerics { class CUpwTurkel_Flow : public CNumerics { private: bool implicit, grid_movement; - double *Diff_U; - double *Velocity_i, *Velocity_j, *RoeVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *Lambda, *Epsilon; - double **absPeJac, **invRinvPe, **R_Tensor, **Matrix, **Art_Visc; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *Lambda, *Epsilon; + su2double **absPeJac, **invRinvPe, **R_Tensor, **Matrix, **Art_Visc; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoePressure, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j; unsigned short iDim, iVar, jVar, kVar; - double Beta, Beta_min, Beta_max; - double r_hat, s_hat, t_hat, rhoB2a2, sqr_one_m_Betasqr_Lam1; - double Beta2, one_m_Betasqr, one_p_Betasqr, sqr_two_Beta_c_Area; - double local_Mach; + su2double Beta, Beta_min, Beta_max; + su2double r_hat, s_hat, t_hat, rhoB2a2, sqr_one_m_Betasqr_Lam1; + su2double Beta2, one_m_Betasqr, one_p_Betasqr, sqr_two_Beta_c_Area; + su2double local_Mach; public: @@ -1949,13 +1949,13 @@ class CUpwTurkel_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \brief Get the Preconditioning Beta. * \return Beta - Value of the low Mach Preconditioner. */ - double GetPrecond_Beta(); + su2double GetPrecond_Beta(); }; /*! @@ -1969,13 +1969,13 @@ class CUpwArtComp_Flow : public CNumerics { private: bool implicit; bool gravity; - double Froude; - double *Diff_U; - double *Velocity_i, *Velocity_j, *MeanVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double Froude; + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *MeanVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, MeanDensity, MeanEnthalpy, MeanSoundSpeed, MeanPressure, MeanBetaInc2, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho, vn; unsigned short iDim, iVar, jVar, kVar; @@ -2002,7 +2002,7 @@ class CUpwArtComp_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2016,13 +2016,13 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { private: bool implicit; bool gravity; - double Froude; - double *Diff_U; - double *Velocity_i, *Velocity_j, *MeanVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Pressure_i, LevelSet_i, dDensityInc_i, dDensityInc_j, + su2double Froude; + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *MeanVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Pressure_i, LevelSet_i, dDensityInc_i, dDensityInc_j, Density_j, Pressure_j, LevelSet_j, MeanDensityInc, dMeanDensityInc, MeanPressure, MeanLevelSet, MeanBetaInc2, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, Distance_i, Distance_j; unsigned short iDim, jDim, iVar, jVar, kVar; @@ -2049,7 +2049,7 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2062,14 +2062,14 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { */ class CUpwRoe_AdjFlow : public CNumerics { private: - double *Residual_Roe; - double area, Sx, Sy, Sz, rarea, nx, ny, nz, rho_l, u_l, v_l, w_l, h_l, rho_r, + su2double *Residual_Roe; + su2double area, Sx, Sy, Sz, rarea, nx, ny, nz, rho_l, u_l, v_l, w_l, h_l, rho_r, u_r, v_r, w_r, h_r, psi1, psi2, psi3, psi4, psi5; - double h, u, v, w, c, psi1_l, psi2_l, psi3_l, psi4_l, psi5_l, + su2double h, u, v, w, c, psi1_l, psi2_l, psi3_l, psi4_l, psi5_l, psi1_r, psi2_r, psi3_r, psi4_r, psi5_r, q_l, q_r, Q_l, Q_r, vn, rrho_l, weight, rweight1, cc; - double l1psi, l2psi, absQ, absQp, absQm, q2, alpha, beta_u, beta_v, beta_w, Q, l1l2p, l1l2m, eta; - double RoeDensity, RoeSoundSpeed, *RoeVelocity, *Lambda, *Velocity_i, *Velocity_j, **ProjFlux_i, **ProjFlux_j, + su2double l1psi, l2psi, absQ, absQp, absQm, q2, alpha, beta_u, beta_v, beta_w, Q, l1l2p, l1l2m, eta; + su2double RoeDensity, RoeSoundSpeed, *RoeVelocity, *Lambda, *Velocity_i, *Velocity_j, **ProjFlux_i, **ProjFlux_j, Proj_ModJac_Tensor_ij, **Proj_ModJac_Tensor, Energy_i, Energy_j, **P_Tensor, **invP_Tensor; unsigned short iDim, iVar, jVar, kVar; bool implicit, grid_movement; @@ -2099,8 +2099,8 @@ class CUpwRoe_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, - double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -2113,7 +2113,7 @@ class CUpwRoe_AdjFlow : public CNumerics { */ class CUpwRoeArtComp_AdjFlow : public CNumerics { private: - double Area, *Lambda, *Velocity_i, *Velocity_j, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j, + su2double Area, *Lambda, *Velocity_i, *Velocity_j, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j, Proj_ModJac_Tensor_ij, **Proj_ModJac_Tensor, **P_Tensor, **invP_Tensor, MeanDensity, MeanPressure, MeanBetaInc2, ProjVelocity, *MeanVelocity, MeanSoundSpeed; unsigned short iDim, iVar, jVar, kVar; @@ -2144,8 +2144,8 @@ class CUpwRoeArtComp_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, - double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -2158,17 +2158,17 @@ class CUpwRoeArtComp_AdjFlow : public CNumerics { class CUpwAUSM_Flow : public CNumerics { private: bool implicit; - double *Diff_U; - double *Velocity_i, *Velocity_j, *RoeVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *delta_wave, *delta_vel; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *delta_wave, *delta_vel; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho; unsigned short iDim, iVar, jVar, kVar; - double mL, mR, mLP, mRM, mF, pLP, pRM, pF, Phi; + su2double mL, mR, mLP, mRM, mF, pLP, pRM, pF, Phi; public: @@ -2192,7 +2192,7 @@ class CUpwAUSM_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2205,17 +2205,17 @@ class CUpwAUSM_Flow : public CNumerics { class CUpwHLLC_Flow : public CNumerics { private: bool implicit; - double *Diff_U; - double *Velocity_i, *Velocity_j, *RoeVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *delta_wave, *delta_vel; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double sq_vel, sq_vel_i, sq_vel_j, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *delta_wave, *delta_vel; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, sq_vel_i, sq_vel_j, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho; unsigned short iDim, iVar, jVar, kVar; - double Rrho, tmp, velRoe[3], uRoe, gamPdivRho, sq_velRoe, cRoe, sL, sR, sM, pStar, invSLmSs, sLmuL, rhoSL, rhouSL[3], + su2double Rrho, tmp, velRoe[3], uRoe, gamPdivRho, sq_velRoe, cRoe, sL, sR, sM, pStar, invSLmSs, sLmuL, rhoSL, rhouSL[3], eSL, invSRmSs, sRmuR, rhoSR, rhouSR[3], eSR; public: @@ -2240,7 +2240,7 @@ class CUpwHLLC_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2252,10 +2252,10 @@ class CUpwHLLC_Flow : public CNumerics { */ class CUpwLin_TransLM : public CNumerics { private: - double *Velocity_i; - double *Velocity_j; + su2double *Velocity_i; + su2double *Velocity_j; bool implicit, grid_movement, incompressible; - double Density_i, Density_j, q_ij, a0, a1; + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; public: @@ -2280,7 +2280,7 @@ class CUpwLin_TransLM : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual (su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2293,8 +2293,8 @@ class CUpwLin_TransLM : public CNumerics { class CUpwLin_LevelSet : public CNumerics { private: bool implicit; - double *Velocity_i; - double *Velocity_j; + su2double *Velocity_i; + su2double *Velocity_j; public: @@ -2318,8 +2318,8 @@ class CUpwLin_LevelSet : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, - double **val_JacobianMeanFlow_i, double **val_JacobianMeanFlow_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, + su2double **val_JacobianMeanFlow_i, su2double **val_JacobianMeanFlow_j, CConfig *config); }; @@ -2333,8 +2333,8 @@ class CUpwLin_LevelSet : public CNumerics { class CUpwLin_AdjLevelSet : public CNumerics { private: bool implicit; - double *Velocity_i; - double *Velocity_j; + su2double *Velocity_i; + su2double *Velocity_j; public: @@ -2361,8 +2361,8 @@ class CUpwLin_AdjLevelSet : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, - double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -2374,7 +2374,7 @@ class CUpwLin_AdjLevelSet : public CNumerics { */ class CUpwLin_AdjTurb : public CNumerics { private: - double *Velocity_i; + su2double *Velocity_i; public: @@ -2398,7 +2398,7 @@ class CUpwLin_AdjTurb : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual (su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2410,9 +2410,9 @@ class CUpwLin_AdjTurb : public CNumerics { */ class CUpwSca_TurbSA : public CNumerics { private: - double *Velocity_i, *Velocity_j; + su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement, incompressible; - double Density_i, Density_j, q_ij, a0, a1; + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; public: @@ -2437,7 +2437,7 @@ class CUpwSca_TurbSA : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2449,9 +2449,9 @@ class CUpwSca_TurbSA : public CNumerics { */ class CUpwSca_TurbML : public CNumerics { private: - double *Velocity_i, *Velocity_j; + su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement, incompressible; - double Density_i, Density_j, q_ij, a0, a1; + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; public: @@ -2476,7 +2476,7 @@ class CUpwSca_TurbML : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2488,9 +2488,9 @@ class CUpwSca_TurbML : public CNumerics { */ class CUpwSca_TurbSST : public CNumerics { private: - double *Velocity_i, *Velocity_j; + su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement, incompressible; - double Density_i, Density_j, + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; @@ -2517,7 +2517,7 @@ class CUpwSca_TurbSST : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2529,9 +2529,9 @@ class CUpwSca_TurbSST : public CNumerics { */ class CUpwSca_TransLM : public CNumerics { private: - double *Velocity_i, *Velocity_j; + su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement; - double Density_i, Density_j, + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; @@ -2558,7 +2558,7 @@ class CUpwSca_TransLM : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -2570,7 +2570,7 @@ class CUpwSca_TransLM : public CNumerics { */ class CUpwSca_AdjTurb : public CNumerics { private: - double *Velocity_i, *Velocity_j; + su2double *Velocity_i, *Velocity_j; public: @@ -2596,8 +2596,8 @@ class CUpwSca_AdjTurb : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -2612,7 +2612,7 @@ class CCentJST_KE_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ + su2double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ Density_i, Density_j, Energy_i, Energy_j, /*!< \brief Mean Density and energies. */ @@ -2652,7 +2652,7 @@ class CCentJST_KE_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -2667,7 +2667,7 @@ class CCentJST_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ + su2double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ Density_i, Density_j, Energy_i, Energy_j, /*!< \brief Mean Density and energies. */ @@ -2707,7 +2707,7 @@ class CCentJST_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -2722,7 +2722,7 @@ class CCentJSTArtComp_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ + su2double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ sq_vel_i, sq_vel_j, /*!< \brief Modulus of the velocity and the normal vector. */ @@ -2736,7 +2736,7 @@ class CCentJSTArtComp_Flow : public CNumerics { grid_movement, /*!< \brief Modification for grid movement. */ stretching, /*!< \brief Stretching factor. */ gravity; /*!< \brief computation with gravity force. */ - double Froude; /*!< \brief Froude number. */ + su2double Froude; /*!< \brief Froude number. */ public: @@ -2761,7 +2761,7 @@ class CCentJSTArtComp_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -2774,13 +2774,13 @@ class CCentJSTArtComp_Flow : public CNumerics { */ class CCentJST_AdjFlow : public CNumerics { private: - double *Diff_Psi, *Diff_Lapl; - double *Velocity_i, *Velocity_j; - double *MeanPhi; + su2double *Diff_Psi, *Diff_Lapl; + su2double *Velocity_i, *Velocity_j; + su2double *MeanPhi; unsigned short iDim, jDim, iVar, jVar; - double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; - double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; - double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; + su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; + su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; bool implicit, stretching, grid_movement; public: @@ -2810,8 +2810,8 @@ class CCentJST_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -2824,13 +2824,13 @@ class CCentJST_AdjFlow : public CNumerics { */ class CCentJSTArtComp_AdjFlow : public CNumerics { private: - double sc2, *Diff_Psi, *Diff_Lapl; - double *Velocity_i, *Velocity_j; - double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; + su2double sc2, *Diff_Psi, *Diff_Lapl; + su2double *Velocity_i, *Velocity_j; + su2double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; unsigned short iDim, jDim, iVar, jVar; - double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; - double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; - double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; + su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; + su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; bool implicit, stretching, grid_movement; public: @@ -2860,8 +2860,8 @@ class CCentJSTArtComp_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -2874,13 +2874,13 @@ class CCentJSTArtComp_AdjFlow : public CNumerics { */ class CCentJST_LinFlow : public CNumerics { private: - double *Diff_DeltaU, *Diff_Lapl; - double *Velocity_i, *Velocity_j; - double *MeanDeltaVel, *MeanVelocity; - double **MeanJacobian; - double **Jacobian_i, **Jacobian_j; + su2double *Diff_DeltaU, *Diff_Lapl; + su2double *Velocity_i, *Velocity_j; + su2double *MeanDeltaVel, *MeanVelocity; + su2double **MeanJacobian; + su2double **Jacobian_i, **Jacobian_j; unsigned short iDim, iVar, jVar; - double sq_vel, Density_i, DensityEnergy_i, Energy_i, Pressure_i, Density_j, DensityEnergy_j, Energy_j, + su2double sq_vel, Density_i, DensityEnergy_i, Energy_i, Pressure_i, Density_j, DensityEnergy_j, Energy_j, Pressure_j, Param_p, Param_Kappa_4, Local_Lambda_i, Local_Lambda_j, MeanLambda, sc4, StretchingFactor, Epsilon_4, MeanDeltaRho, MeanDeltaE, ProjVelocity_i, ProjVelocity_j, MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy, Phi_i, Phi_j; @@ -2910,7 +2910,7 @@ class CCentJST_LinFlow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv, double *val_resvisc, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual (su2double *val_resconv, su2double *val_resvisc, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -2924,7 +2924,7 @@ class CCentJST_LinFlow : public CNumerics { class CCentLax_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U, /*!< \brief Difference of conservative variables. */ + su2double *Diff_U, /*!< \brief Difference of conservative variables. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ *ProjFlux, /*!< \brief Projected inviscid flux tensor. */ @@ -2962,7 +2962,7 @@ class CCentLax_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -2976,7 +2976,7 @@ class CCentLax_Flow : public CNumerics { class CCentLaxArtComp_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U, /*!< \brief Difference of conservative variables. */ + su2double *Diff_U, /*!< \brief Difference of conservative variables. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ *ProjFlux, /*!< \brief Projected inviscid flux tensor. */ @@ -2990,7 +2990,7 @@ class CCentLaxArtComp_Flow : public CNumerics { grid_movement, /*!< \brief Modification for grid movement. */ gravity; /*!< \brief Modification for for gravity force. */ bool stretching; - double Froude; + su2double Froude; public: @@ -3015,7 +3015,7 @@ class CCentLaxArtComp_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -3028,11 +3028,11 @@ class CCentLaxArtComp_Flow : public CNumerics { */ class CCentLax_AdjFlow : public CNumerics { private: - double *Diff_Psi; - double *Velocity_i, *Velocity_j; - double *MeanPhi; + su2double *Diff_Psi; + su2double *Velocity_i, *Velocity_j; + su2double *MeanPhi; unsigned short iDim, jDim, iVar, jVar; - double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2, + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2, MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_0, Local_Lambda_i, Local_Lambda_j, MeanLambda, Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0, cte_0; bool implicit, stretching, grid_movement; @@ -3064,8 +3064,8 @@ class CCentLax_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -3078,11 +3078,11 @@ class CCentLax_AdjFlow : public CNumerics { */ class CCentLaxArtComp_AdjFlow : public CNumerics { private: - double *Diff_Psi; - double *Velocity_i, *Velocity_j; - double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; + su2double *Diff_Psi; + su2double *Velocity_i, *Velocity_j; + su2double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; unsigned short iDim, jDim, iVar, jVar; - double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2, + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2, MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_0, Local_Lambda_i, Local_Lambda_j, MeanLambda, Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0, cte_0; bool implicit, stretching; @@ -3114,8 +3114,8 @@ class CCentLaxArtComp_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -3128,14 +3128,14 @@ class CCentLaxArtComp_AdjFlow : public CNumerics { */ class CCentLax_LinFlow : public CNumerics { private: - double *Diff_DeltaU; - double *Velocity_i, *Velocity_j; - double *MeanDeltaVel, *MeanVelocity; - double **MeanJacobian; - double **Jacobian_i; - double **Jacobian_j; + su2double *Diff_DeltaU; + su2double *Velocity_i, *Velocity_j; + su2double *MeanDeltaVel, *MeanVelocity; + su2double **MeanJacobian; + su2double **Jacobian_i; + su2double **Jacobian_j; unsigned short iDim, iVar, jVar; - double sq_vel, Density_i, DensityEnergy_i, Energy_i, Pressure_i, Density_j, + su2double sq_vel, Density_i, DensityEnergy_i, Energy_i, Pressure_i, Density_j, DensityEnergy_j, Energy_j, Pressure_j, Param_p, Param_Kappa_0, Local_Lambda_i, Local_Lambda_j, MeanLambda, cte_0, StretchingFactor, Epsilon_i, MeanDeltaRho, MeanDeltaE, ProjVelocity_i, ProjVelocity_j, @@ -3167,7 +3167,7 @@ class CCentLax_LinFlow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_resconv, double *val_resvisc, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_resconv, su2double *val_resvisc, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -3180,7 +3180,7 @@ class CCentLax_LinFlow : public CNumerics { class CAvgGrad_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, /*!< \brief Mean value of the viscosity. */ @@ -3214,7 +3214,7 @@ class CAvgGrad_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -3228,7 +3228,7 @@ class CAvgGrad_Flow : public CNumerics { class CGeneralAvgGrad_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *Mean_SecVar, /*!< \brief Mean secondary variables. */ *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ @@ -3263,7 +3263,7 @@ class CGeneralAvgGrad_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -3276,7 +3276,7 @@ class CGeneralAvgGrad_Flow : public CNumerics { class CAvgGradArtComp_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ + su2double **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ @@ -3303,7 +3303,7 @@ class CAvgGradArtComp_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -3316,17 +3316,17 @@ class CAvgGradArtComp_Flow : public CNumerics { class CAvgGrad_TurbSA : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge; - double *Edge_Vector; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma; - double nu_i, nu_j, nu_e; - double dist_ij_2; - double proj_vector_ij; + su2double sigma; + su2double nu_i, nu_j, nu_e; + su2double dist_ij_2; + su2double proj_vector_ij; unsigned short iVar, iDim; - double nu_hat_i; - double nu_hat_j; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3350,7 +3350,7 @@ class CAvgGrad_TurbSA : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3363,18 +3363,18 @@ class CAvgGrad_TurbSA : public CNumerics { class CAvgGrad_TurbSA_Neg : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge; - double *Edge_Vector; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma; - double cn1, fn, Xi; - double nu_i, nu_j, nu_ij, nu_tilde_ij, nu_e; - double dist_ij_2; - double proj_vector_ij; + su2double sigma; + su2double cn1, fn, Xi; + su2double nu_i, nu_j, nu_ij, nu_tilde_ij, nu_e; + su2double dist_ij_2; + su2double proj_vector_ij; unsigned short iVar, iDim; - double nu_hat_i; - double nu_hat_j; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3398,7 +3398,7 @@ class CAvgGrad_TurbSA_Neg : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3410,17 +3410,17 @@ class CAvgGrad_TurbSA_Neg : public CNumerics { */ class CAvgGrad_TurbML : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge; - double *Edge_Vector; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma; - double nu_i, nu_j, nu_e; - double dist_ij_2; - double proj_vector_ij; + su2double sigma; + su2double nu_i, nu_j, nu_e; + su2double dist_ij_2; + su2double proj_vector_ij; unsigned short iVar, iDim; - double nu_hat_i; - double nu_hat_j; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3444,7 +3444,7 @@ class CAvgGrad_TurbML : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3456,17 +3456,17 @@ class CAvgGrad_TurbML : public CNumerics { */ class CAvgGrad_TransLM : public CNumerics { private: - double **Mean_GradTransVar; - double *Proj_Mean_GradTransVar_Kappa, *Proj_Mean_GradTransVar_Edge; - double *Edge_Vector; + su2double **Mean_GradTransVar; + su2double *Proj_Mean_GradTransVar_Kappa, *Proj_Mean_GradTransVar_Edge; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma; - double nu_i, nu_j, nu_e; - double dist_ij_2; - double proj_vector_ij; + su2double sigma; + su2double nu_i, nu_j, nu_e; + su2double dist_ij_2; + su2double proj_vector_ij; unsigned short iVar, iDim; - double nu_hat_i; - double nu_hat_j; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3490,7 +3490,7 @@ class CAvgGrad_TransLM : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3502,12 +3502,12 @@ class CAvgGrad_TransLM : public CNumerics { */ class CAvgGrad_AdjFlow : public CNumerics { private: - double *Velocity_i; /*!< \brief Auxiliary vector for storing the velocity of point i. */ - double *Velocity_j; /*!< \brief Auxiliary vector for storing the velocity of point j. */ - double *Mean_Velocity; - double *Mean_GradPsiE; /*!< \brief Counter for dimensions of the problem. */ - double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ - double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ + su2double *Velocity_i; /*!< \brief Auxiliary vector for storing the velocity of point i. */ + su2double *Velocity_j; /*!< \brief Auxiliary vector for storing the velocity of point j. */ + su2double *Mean_Velocity; + su2double *Mean_GradPsiE; /*!< \brief Counter for dimensions of the problem. */ + su2double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ + su2double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ bool implicit; /*!< \brief Implicit calculus. */ public: @@ -3530,9 +3530,9 @@ class CAvgGrad_AdjFlow : public CNumerics { * \param[out] val_residual_i - Pointer to the total residual at point i. * \param[out] val_residual_j - Pointer to the total residual at point j. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -3545,7 +3545,7 @@ class CAvgGrad_AdjFlow : public CNumerics { class CAvgGradArtComp_AdjFlow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double **Mean_GradPsiVar, /*!< \brief Mean value of the gradient. */ + su2double **Mean_GradPsiVar, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ @@ -3571,9 +3571,9 @@ class CAvgGradArtComp_AdjFlow : public CNumerics { * \param[out] val_residual_i - Pointer to the total residual at point i. * \param[out] val_residual_j - Pointer to the total residual at point j. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -3586,7 +3586,7 @@ class CAvgGradArtComp_AdjFlow : public CNumerics { class CAvgGradCorrected_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ *Edge_Vector, /*!< \brief Vector form point i to point j. */ **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge, /*!< \brief Mean value of the gradient. */ @@ -3622,7 +3622,7 @@ class CAvgGradCorrected_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -3636,7 +3636,7 @@ class CAvgGradCorrected_Flow : public CNumerics { class CGeneralAvgGradCorrected_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *Mean_SecVar, /*!< \brief Mean primitive variables. */ *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ *Edge_Vector, /*!< \brief Vector form point i to point j. */ @@ -3672,7 +3672,7 @@ class CGeneralAvgGradCorrected_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -3685,7 +3685,7 @@ class CGeneralAvgGradCorrected_Flow : public CNumerics { class CAvgGradCorrectedArtComp_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ + su2double *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ *Edge_Vector, /*!< \brief Vector form point i to point j. */ **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ @@ -3715,7 +3715,7 @@ class CAvgGradCorrectedArtComp_Flow : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -3727,11 +3727,11 @@ class CAvgGradCorrectedArtComp_Flow : public CNumerics { */ class CAvgGradCorrected_TurbSA : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; - double *Edge_Vector; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; + su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3756,7 +3756,7 @@ class CAvgGradCorrected_TurbSA : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3769,14 +3769,14 @@ class CAvgGradCorrected_TurbSA : public CNumerics { class CAvgGradCorrected_TurbSA_Neg : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; - double *Edge_Vector; - double sigma; - double cn1, fn, Xi; - double nu_ij, nu_tilde_ij; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; + su2double *Edge_Vector; + su2double sigma; + su2double cn1, fn, Xi; + su2double nu_ij, nu_tilde_ij; bool implicit, incompressible; - double nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; + su2double nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3801,7 +3801,7 @@ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3813,11 +3813,11 @@ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { */ class CAvgGradCorrected_TurbML : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; - double *Edge_Vector; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; + su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3842,7 +3842,7 @@ class CAvgGradCorrected_TurbML : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3854,11 +3854,11 @@ class CAvgGradCorrected_TurbML : public CNumerics { */ class CAvgGradCorrected_TransLM : public CNumerics { private: - double **Mean_GradTurbVar; - double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; - double *Edge_Vector; + su2double **Mean_GradTurbVar; + su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; + su2double *Edge_Vector; bool implicit, incompressible; - double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; + su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3883,7 +3883,7 @@ class CAvgGradCorrected_TransLM : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; /*! @@ -3895,24 +3895,24 @@ class CAvgGradCorrected_TransLM : public CNumerics { */ class CAvgGrad_TurbSST : public CNumerics { private: - double sigma_k1, /*!< \brief Constants for the viscous terms, k-w (1), k-eps (2)*/ + su2double sigma_k1, /*!< \brief Constants for the viscous terms, k-w (1), k-eps (2)*/ sigma_k2, sigma_om1, sigma_om2; - double diff_kine, /*!< \brief Diffusivity for viscous terms of tke eq */ + su2double diff_kine, /*!< \brief Diffusivity for viscous terms of tke eq */ diff_omega; /*!< \brief Diffusivity for viscous terms of omega eq */ - double *Edge_Vector, /*!< \brief Vector from node i to node j. */ + su2double *Edge_Vector, /*!< \brief Vector from node i to node j. */ dist_ij_2, /*!< \brief |Edge_Vector|^2 */ proj_vector_ij; /*!< \brief (Edge_Vector DOT normal)/|Edge_Vector|^2 */ - double **Mean_GradTurbVar, /*!< \brief Average of gradients at cell face */ + su2double **Mean_GradTurbVar, /*!< \brief Average of gradients at cell face */ *Proj_Mean_GradTurbVar_Normal, /*!< \brief Mean_gradTurbVar DOT normal */ *Proj_Mean_GradTurbVar_Edge, /*!< \brief Mean_gradTurbVar DOT Edge_Vector */ *Proj_Mean_GradTurbVar_Corrected; - double F1_i, F1_j; /*!< \brief Menter's first blending function */ + su2double F1_i, F1_j; /*!< \brief Menter's first blending function */ bool implicit, incompressible; unsigned short iVar, iDim; @@ -3925,7 +3925,7 @@ class CAvgGrad_TurbSST : public CNumerics { * \param[in] val_nVar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAvgGrad_TurbSST(unsigned short val_nDim, unsigned short val_nVar, double* constants, CConfig *config); + CAvgGrad_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double* constants, CConfig *config); /*! * \brief Destructor of the class. @@ -3935,7 +3935,7 @@ class CAvgGrad_TurbSST : public CNumerics { /*! * \brief Sets value of first blending function. */ - void SetF1blending(double val_F1_i, double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j;} + void SetF1blending(su2double val_F1_i, su2double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j;} /*! * \brief Compute the viscous turbulent residual using an average of gradients wtih correction. @@ -3944,7 +3944,7 @@ class CAvgGrad_TurbSST : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; @@ -3957,24 +3957,24 @@ class CAvgGrad_TurbSST : public CNumerics { */ class CAvgGradCorrected_TurbSST : public CNumerics { private: - double sigma_k1, /*!< \brief Constants for the viscous terms, k-w (1), k-eps (2)*/ + su2double sigma_k1, /*!< \brief Constants for the viscous terms, k-w (1), k-eps (2)*/ sigma_k2, sigma_om1, sigma_om2; - double diff_kine, /*!< \brief Diffusivity for viscous terms of tke eq */ + su2double diff_kine, /*!< \brief Diffusivity for viscous terms of tke eq */ diff_omega; /*!< \brief Diffusivity for viscous terms of omega eq */ - double *Edge_Vector, /*!< \brief Vector from node i to node j. */ + su2double *Edge_Vector, /*!< \brief Vector from node i to node j. */ dist_ij_2, /*!< \brief |Edge_Vector|^2 */ proj_vector_ij; /*!< \brief (Edge_Vector DOT normal)/|Edge_Vector|^2 */ - double **Mean_GradTurbVar, /*!< \brief Average of gradients at cell face */ + su2double **Mean_GradTurbVar, /*!< \brief Average of gradients at cell face */ *Proj_Mean_GradTurbVar_Normal, /*!< \brief Mean_gradTurbVar DOT normal */ *Proj_Mean_GradTurbVar_Edge, /*!< \brief Mean_gradTurbVar DOT Edge_Vector */ *Proj_Mean_GradTurbVar_Corrected; - double F1_i, F1_j; /*!< \brief Menter's first blending function */ + su2double F1_i, F1_j; /*!< \brief Menter's first blending function */ bool implicit, incompressible; unsigned short iVar, iDim; @@ -3987,7 +3987,7 @@ class CAvgGradCorrected_TurbSST : public CNumerics { * \param[in] val_nVar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAvgGradCorrected_TurbSST(unsigned short val_nDim, unsigned short val_nVar, double* constants, CConfig *config); + CAvgGradCorrected_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double* constants, CConfig *config); /*! * \brief Destructor of the class. @@ -3997,7 +3997,7 @@ class CAvgGradCorrected_TurbSST : public CNumerics { /*! * \brief Sets value of first blending function. */ - void SetF1blending(double val_F1_i, double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j;} + void SetF1blending(su2double val_F1_i, su2double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j;} /*! * \brief Compute the viscous turbulent residual using an average of gradients wtih correction. @@ -4006,7 +4006,7 @@ class CAvgGradCorrected_TurbSST : public CNumerics { * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config); }; @@ -4019,14 +4019,14 @@ class CAvgGradCorrected_TurbSST : public CNumerics { */ class CAvgGradCorrected_AdjFlow : public CNumerics { private: - double *Velocity_i; /*!< \brief Auxiliary vector for storing the velocity of point i. */ - double *Velocity_j; /*!< \brief Auxiliary vector for storing the velocity of point j. */ - double *Mean_Velocity; - double **Mean_GradPsiVar; /*!< \brief Counter for dimensions of the problem. */ - double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ - double *Proj_Mean_GradPsiVar_Edge; /*!< \brief Projection of Mean_GradPsiVar onto Edge_Vector. */ - double *Mean_GradPsiE; /*!< \brief Counter for dimensions of the problem. */ - double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ + su2double *Velocity_i; /*!< \brief Auxiliary vector for storing the velocity of point i. */ + su2double *Velocity_j; /*!< \brief Auxiliary vector for storing the velocity of point j. */ + su2double *Mean_Velocity; + su2double **Mean_GradPsiVar; /*!< \brief Counter for dimensions of the problem. */ + su2double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ + su2double *Proj_Mean_GradPsiVar_Edge; /*!< \brief Projection of Mean_GradPsiVar onto Edge_Vector. */ + su2double *Mean_GradPsiE; /*!< \brief Counter for dimensions of the problem. */ + su2double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ bool implicit; /*!< \brief Boolean controlling Jacobian calculations. */ public: @@ -4054,8 +4054,8 @@ class CAvgGradCorrected_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -4068,7 +4068,7 @@ class CAvgGradCorrected_AdjFlow : public CNumerics { class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ - double *PsiVar_i, *PsiVar_j, /*!< \brief Primitives variables at point i and 1. */ + su2double *PsiVar_i, *PsiVar_j, /*!< \brief Primitives variables at point i and 1. */ *Edge_Vector, /*!< \brief Vector form point i to point j. */ **Mean_GradPsiVar, *Proj_Mean_GradPsiVar_Edge, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ @@ -4101,8 +4101,8 @@ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual (su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -4114,9 +4114,9 @@ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { */ class CAvgGradCorrected_AdjTurb : public CNumerics { private: - double **Mean_GradTurbPsi; - double *Proj_Mean_GradTurbPsi_Kappa, *Proj_Mean_GradTurbPsi_Edge, *Proj_Mean_GradTurbPsi_Corrected; - double *Edge_Vector; + su2double **Mean_GradTurbPsi; + su2double *Proj_Mean_GradTurbPsi_Kappa, *Proj_Mean_GradTurbPsi_Edge, *Proj_Mean_GradTurbPsi_Corrected; + su2double *Edge_Vector; public: @@ -4141,7 +4141,7 @@ class CAvgGradCorrected_AdjTurb : public CNumerics { * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \overload @@ -4153,8 +4153,8 @@ class CAvgGradCorrected_AdjTurb : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -4166,9 +4166,9 @@ class CAvgGradCorrected_AdjTurb : public CNumerics { */ class CAvgGrad_AdjTurb : public CNumerics { private: - double **Mean_GradTurbPsi; - double *Proj_Mean_GradTurbPsi_Kappa, *Proj_Mean_GradTurbPsi_Edge, *Proj_Mean_GradTurbPsi_Corrected; - double *Edge_Vector; + su2double **Mean_GradTurbPsi; + su2double *Proj_Mean_GradTurbPsi_Kappa, *Proj_Mean_GradTurbPsi_Edge, *Proj_Mean_GradTurbPsi_Corrected; + su2double *Edge_Vector; public: @@ -4193,7 +4193,7 @@ class CAvgGrad_AdjTurb : public CNumerics { * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \overload @@ -4205,8 +4205,8 @@ class CAvgGrad_AdjTurb : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -4237,7 +4237,7 @@ class CGalerkin_Flow : public CNumerics { * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double **val_stiffmatrix_elem, CConfig *config); + void ComputeResidual (su2double **val_stiffmatrix_elem, CConfig *config); }; /*! @@ -4248,12 +4248,12 @@ class CGalerkin_Flow : public CNumerics { * \version 4.0.0 "Cardinal" */ class CGalerkin_FEA : public CNumerics { - double E; /*!< \brief Young's modulus of elasticity. */ - double Nu; /*!< \brief Poisson's ratio. */ - double Rho_s; /*!< \brief Structural density. */ - double Mu; /*!< \brief Lame's coeficient. */ - double Lambda; /*!< \brief Lame's coeficient. */ - double Density; /*!< \brief Material density. */ + su2double E; /*!< \brief Young's modulus of elasticity. */ + su2double Nu; /*!< \brief Poisson's ratio. */ + su2double Rho_s; /*!< \brief Structural density. */ + su2double Mu; /*!< \brief Lame's coeficient. */ + su2double Lambda; /*!< \brief Lame's coeficient. */ + su2double Density; /*!< \brief Material density. */ public: /*! @@ -4275,7 +4275,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] Pnodal - Pressure at the nodes. * \param[in] CoordCorners[2][2] - Coordiantes of the corners. */ - void PressInt_Linear(double CoordCorners[4][3], double *tn_e, double Fnodal[12]); + void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); /*! * \brief Shape functions and derivative of the shape functions @@ -4284,7 +4284,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. * \param[in] CoordCorners[2][2] - Coordiantes of the corners. */ - void ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]); + void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4294,7 +4294,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - double ShapeFunc_Triangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4304,7 +4304,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - double ShapeFunc_Rectangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4314,7 +4314,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - double ShapeFunc_Tetra(double Xi, double Eta, double Mu, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4324,7 +4324,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - double ShapeFunc_Prism(double Xi, double Eta, double Mu, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4334,7 +4334,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - double ShapeFunc_Pyram(double Xi, double Eta, double Mu, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4344,62 +4344,62 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - double ShapeFunc_Hexa(double Xi, double Eta, double Mu, double CoordCorners[8][3], double DShapeFunction[8][4]); + su2double ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void SetFEA_StiffMatrix2D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void SetFEA_StiffMatrix3D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes); + void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing mass matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing mass matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void SetFEA_StiffMassMatrix3D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes); + void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing stresses in FEA method at the nodes. * \param[in] config - Definition of the particular problem. */ - void GetFEA_StressNodal2D(double StressVector[8][3], double DispElement[8], double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing stresses in FEA method at the nodes. * \param[in] config - Definition of the particular problem. */ - void GetFEA_StressNodal3D(double StressVector[8][6], double DispElement[24], double CoordCorners[8][3], unsigned short nNodes); + void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing dead load vector of the Galerkin method. * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void SetFEA_DeadLoad2D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity); + void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - void SetFEA_DeadLoad3D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity); + void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); }; @@ -4414,20 +4414,20 @@ class CFEM_Elasticity : public CNumerics { protected: - double E; /*!< \brief Young's modulus of elasticity. */ - double Nu; /*!< \brief Poisson's ratio. */ - double Rho_s; /*!< \brief Structural density. */ - double Mu; /*!< \brief Lame's coeficient. */ - double Lambda; /*!< \brief Lame's coeficient. */ - double Kappa; /*!< \brief Compressibility constant. */ + su2double E; /*!< \brief Young's modulus of elasticity. */ + su2double Nu; /*!< \brief Poisson's ratio. */ + su2double Rho_s; /*!< \brief Structural density. */ + su2double Mu; /*!< \brief Lame's coeficient. */ + su2double Lambda; /*!< \brief Lame's coeficient. */ + su2double Kappa; /*!< \brief Compressibility constant. */ - double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ + su2double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ - double *Ni_Vec; /*!< \brief Vector of shape functions - Auxiliary. */ - double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ - double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ - double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ - double **GradNi_Curr_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + su2double *Ni_Vec; /*!< \brief Vector of shape functions - Auxiliary. */ + su2double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ + su2double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ + su2double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + su2double **GradNi_Curr_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ public: @@ -4469,7 +4469,7 @@ class CFEM_Elasticity : public CNumerics { */ class CFEM_LinearElasticity : public CFEM_Elasticity { - double **nodalDisplacement; + su2double **nodalDisplacement; public: @@ -4511,15 +4511,15 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { protected: - double **F_Mat; /*!< \brief Deformation gradient. */ - double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ - double **currentCoord; /*!< \brief Current coordinates. */ - double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ + su2double **F_Mat; /*!< \brief Deformation gradient. */ + su2double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ + su2double **currentCoord; /*!< \brief Current coordinates. */ + su2double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ - double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ - double *KAux_t_a; /*!< \brief Auxiliar matrix for the pressure term */ + su2double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ + su2double *KAux_t_a; /*!< \brief Auxiliar matrix for the pressure term */ - double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ + su2double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ public: @@ -4646,43 +4646,43 @@ class CSourceNothing : public CNumerics { */ class CSourcePieceWise_TurbSA : public CNumerics { private: - double cv1_3; - double k2; - double cb1; - double cw2; - double ct3; - double ct4; - double cw3_6; - double cb2_sigma; - double sigma; - double cb2; - double cw1; - double DivVelocity; + su2double cv1_3; + su2double k2; + su2double cb1; + su2double cw2; + su2double ct3; + su2double ct4; + su2double cw3_6; + su2double cb2_sigma; + su2double sigma; + su2double cb2; + su2double cw1; + su2double DivVelocity; unsigned short iDim; - double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; - double r, g, g_6, glim, fw; - double norm2_Grad; - double dfv1, dfv2, dShat; - double dr, dg, dfw;; - double nu_hat_i; - double grad_nu_hat; - double prod_grads; + su2double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; + su2double r, g, g_6, glim, fw; + su2double norm2_Grad; + su2double dfv1, dfv2, dShat; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool incompressible; bool transition; bool rotating_frame; - double div; - double beta, gamma_sep, gamma_eff, intermittency; - double Freattach, r_t, s1; - double Production, Destruction, CrossProduction; + su2double div; + su2double beta, gamma_sep, gamma_eff, intermittency; + su2double Freattach, r_t, s1; + su2double Production, Destruction, CrossProduction; SpalartAllmarasInputs* SAInputs; SpalartAllmarasConstants* SAConstants; int nResidual; int nJacobian; - double* testResidual; - double* testJacobian; - double** DUiDXj; - double* DNuhatDXj; + su2double* testResidual; + su2double* testJacobian; + su2double** DUiDXj; + su2double* DNuhatDXj; public: /*! @@ -4705,46 +4705,46 @@ class CSourcePieceWise_TurbSA : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \brief Residual for source term integration. * \param[in] intermittency_in - Value of the intermittency. */ - void SetIntermittency(double intermittency_in); + void SetIntermittency(su2double intermittency_in); /*! * \brief Residual for source term integration. * \param[in] val_production - Value of the Production. */ - void SetProduction(double val_production); + void SetProduction(su2double val_production); /*! * \brief Residual for source term integration. * \param[in] val_destruction - Value of the Destruction. */ - void SetDestruction(double val_destruction); + void SetDestruction(su2double val_destruction); /*! * \brief Residual for source term integration. * \param[in] val_crossproduction - Value of the CrossProduction. */ - void SetCrossProduction(double val_crossproduction); + void SetCrossProduction(su2double val_crossproduction); /*! * \brief ______________. */ - double GetProduction(void); + su2double GetProduction(void); /*! * \brief ______________. */ - double GetDestruction(void); + su2double GetDestruction(void); /*! * \brief ______________. */ - double GetCrossProduction(void); + su2double GetCrossProduction(void); }; /*! @@ -4756,43 +4756,43 @@ class CSourcePieceWise_TurbSA : public CNumerics { */ class CSourcePieceWise_TurbSA_Neg : public CNumerics { private: - double cv1_3; - double k2; - double cb1; - double cw2; - double ct3; - double ct4; - double cw3_6; - double cb2_sigma; - double sigma; - double cb2; - double cw1; - double DivVelocity; + su2double cv1_3; + su2double k2; + su2double cb1; + su2double cw2; + su2double ct3; + su2double ct4; + su2double cw3_6; + su2double cb2_sigma; + su2double sigma; + su2double cb2; + su2double cw1; + su2double DivVelocity; unsigned short iDim; - double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; - double r, g, g_6, glim, fw; - double norm2_Grad; - double dfv1, dfv2, dShat; - double dr, dg, dfw;; - double nu_hat_i; - double grad_nu_hat; - double prod_grads; + su2double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; + su2double r, g, g_6, glim, fw; + su2double norm2_Grad; + su2double dfv1, dfv2, dShat; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool incompressible; bool transition; bool rotating_frame; - double div; - double beta, gamma_sep, gamma_eff, intermittency; - double Freattach, r_t, s1; - double Production, Destruction, CrossProduction; + su2double div; + su2double beta, gamma_sep, gamma_eff, intermittency; + su2double Freattach, r_t, s1; + su2double Production, Destruction, CrossProduction; SpalartAllmarasInputs* SAInputs; SpalartAllmarasConstants* SAConstants; int nResidual; int nJacobian; - double* testResidual; - double* testJacobian; - double** DUiDXj; - double* DNuhatDXj; + su2double* testResidual; + su2double* testJacobian; + su2double** DUiDXj; + su2double* DNuhatDXj; public: @@ -4816,46 +4816,46 @@ class CSourcePieceWise_TurbSA_Neg : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \brief Residual for source term integration. * \param[in] intermittency_in - Value of the intermittency. */ - void SetIntermittency(double intermittency_in); + void SetIntermittency(su2double intermittency_in); /*! * \brief Residual for source term integration. * \param[in] val_production - Value of the Production. */ - void SetProduction(double val_production); + void SetProduction(su2double val_production); /*! * \brief Residual for source term integration. * \param[in] val_destruction - Value of the Destruction. */ - void SetDestruction(double val_destruction); + void SetDestruction(su2double val_destruction); /*! * \brief Residual for source term integration. * \param[in] val_crossproduction - Value of the CrossProduction. */ - void SetCrossProduction(double val_crossproduction); + void SetCrossProduction(su2double val_crossproduction); /*! * \brief ______________. */ - double GetProduction(void); + su2double GetProduction(void); /*! * \brief ______________. */ - double GetDestruction(void); + su2double GetDestruction(void); /*! * \brief ______________. */ - double GetCrossProduction(void); + su2double GetCrossProduction(void); }; /*! @@ -4867,35 +4867,35 @@ class CSourcePieceWise_TurbSA_Neg : public CNumerics { */ class CSourcePieceWise_TurbML : public CNumerics { private: - double cv1_3; - double k2; - double cb1; - double cw2; - double cw3_6; - double cb2_sigma; - double sigma; - double cb2; - double cw1; - double DivVelocity, Vorticity; + su2double cv1_3; + su2double k2; + su2double cb1; + su2double cw2; + su2double cw3_6; + su2double cb2_sigma; + su2double sigma; + su2double cb2; + su2double cw1; + su2double DivVelocity, Vorticity; unsigned short iDim; - double nu, Ji, fv1, fv2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; - double r, g, g_6, glim; - double norm2_Grad; - double dfv1, dfv2, dShat; - double dr, dg, dfw;; - double nu_hat_i; - double grad_nu_hat; - double prod_grads; + su2double nu, Ji, fv1, fv2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; + su2double r, g, g_6, glim; + su2double norm2_Grad; + su2double dfv1, dfv2, dShat; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool incompressible; bool transition; bool rotating_frame; - double div, StrainMag; - double beta, gamma_sep, gamma_eff, intermittency; - double Freattach, r_t, s1; - double Production, Destruction, CrossProduction; + su2double div, StrainMag; + su2double beta, gamma_sep, gamma_eff, intermittency; + su2double Freattach, r_t, s1; + su2double Production, Destruction, CrossProduction; CScalePredictor* MLModel; - double uInfinity; + su2double uInfinity; SpalartAllmarasInputs* SAInputs; @@ -4906,27 +4906,27 @@ class CSourcePieceWise_TurbML : public CNumerics { string featureset; - //double* testResidual; - //double* testJacobian; - double** DUiDXj; - double* DNuhatDXj; + //su2double* testResidual; + //su2double* testJacobian; + su2double** DUiDXj; + su2double* DNuhatDXj; public: bool isInBL; - double fw; - double fWake; + su2double fw; + su2double fWake; SpalartAllmarasOtherOutputs* SAOtherOutputs; - double *SAResidual; - double * SANondimResidual; - double* Residual; - double * NondimResidual; - double *ResidualDiff; - double *NondimResidualDiff; - double* SAJacobian; + su2double *SAResidual; + su2double * SANondimResidual; + su2double* Residual; + su2double * NondimResidual; + su2double *ResidualDiff; + su2double *NondimResidualDiff; + su2double* SAJacobian; CSANondimInputs* SANondimInputs; - double NuhatGradNorm; + su2double NuhatGradNorm; /*! * \brief Constructor of the class. @@ -4948,51 +4948,51 @@ class CSourcePieceWise_TurbML : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! * \brief Residual for source term integration. * \param[in] intermittency_in - Value of the intermittency. */ - void SetIntermittency(double intermittency_in); + void SetIntermittency(su2double intermittency_in); /*! * \brief Residual for source term integration. * \param[in] val_production - Value of the Production. */ - void SetProduction(double val_production); + void SetProduction(su2double val_production); /*! * \brief Residual for source term integration. * \param[in] val_destruction - Value of the Destruction. */ - void SetDestruction(double val_destruction); + void SetDestruction(su2double val_destruction); /*! * \brief Residual for source term integration. * \param[in] val_crossproduction - Value of the CrossProduction. */ - void SetCrossProduction(double val_crossproduction); + void SetCrossProduction(su2double val_crossproduction); /*! * \brief Residual for source term integration. * \param[in] val_production - Value of the Production. */ - double GetProduction(void); + su2double GetProduction(void); /*! * \brief Residual for source term integration. * \param[in] val_destruction - Value of the Destruction. */ - double GetDestruction(void); + su2double GetDestruction(void); /*! * \brief Residual for source term integration. * \param[in] val_crossproduction - Value of the CrossProduction. */ - double GetCrossProduction(void); + su2double GetCrossProduction(void); - double SAProduction, SADestruction, SACrossProduction, SASource, MLProduction, MLDestruction, MLCrossProduction, MLSource, SourceDiff; + su2double SAProduction, SADestruction, SACrossProduction, SASource, MLProduction, MLDestruction, MLCrossProduction, MLSource, SourceDiff; int NumResidual(); }; @@ -5008,39 +5008,39 @@ class CSourcePieceWise_TransLM : public CNumerics { private: /*-- SA model constants --*/ - double cv1_3; - double k2; - double cb1; - double cw2; - double cw3_6; - double sigma; - double cb2; - double cw1; + su2double cv1_3; + su2double k2; + su2double cb1; + su2double cw2; + su2double cw3_6; + su2double sigma; + su2double cb2; + su2double cw1; /*-- gamma-theta model constants --*/ - double c_e1; - double c_a1; - double c_e2; - double c_a2; - double sigmaf; - double s1; - double c_theta; - double sigmat; - double REth_Inf; + su2double c_e1; + su2double c_a1; + su2double c_e2; + su2double c_a2; + su2double sigmaf; + su2double s1; + su2double c_theta; + su2double sigmat; + su2double REth_Inf; /*-- Correlation constants --*/ - double flen_global; - double alpha_global; - double DivVelocity, Vorticity; + su2double flen_global; + su2double alpha_global; + su2double DivVelocity, Vorticity; unsigned short iDim; - double nu, Ji, fv1, fv2, Omega, Shat, dist_0_2, Ji_2, Ji_3; - double r, g, g_6, glim, fw; - double norm2_Grad; - double dfv1, dfv2, dShat; - double dr, dg, dfw;; - double nu_hat_i; - double grad_nu_hat; - double prod_grads; + su2double nu, Ji, fv1, fv2, Omega, Shat, dist_0_2, Ji_2, Ji_3; + su2double r, g, g_6, glim, fw; + su2double norm2_Grad; + su2double dfv1, dfv2, dShat; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool implicit; public: @@ -5066,9 +5066,9 @@ class CSourcePieceWise_TransLM : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual_TransLM(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config, double &gamma_sep); + void ComputeResidual_TransLM(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config, su2double &gamma_sep); - void CSourcePieceWise_TransLM__ComputeResidual_TransLM_d(double *TransVar_i, double *TransVar_id, double *val_residual, double *val_residuald, CConfig *config); + void CSourcePieceWise_TransLM__ComputeResidual_TransLM_d(su2double *TransVar_i, su2double *TransVar_id, su2double *val_residual, su2double *val_residuald, CConfig *config); }; /*! @@ -5080,12 +5080,12 @@ class CSourcePieceWise_TransLM : public CNumerics { */ class CSourcePieceWise_TurbSST : public CNumerics { private: - double F1_i, + su2double F1_i, F1_j, F2_i, F2_j; - double alfa_1, + su2double alfa_1, alfa_2, beta_1, beta_2, @@ -5094,7 +5094,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { beta_star, a1; - double CDkw_i, CDkw_j, + su2double CDkw_i, CDkw_j, norm2_Grad; bool incompressible; @@ -5107,7 +5107,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \param[in] val_nVar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CSourcePieceWise_TurbSST(unsigned short val_nDim, unsigned short val_nVar, double* constants, CConfig *config); + CSourcePieceWise_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double* constants, CConfig *config); /*! * \brief Destructor of the class. @@ -5119,21 +5119,21 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \param[in] val_F1_i - Value of the first blending function at point i. * \param[in] val_F1_j - Value of the first blending function at point j. */ - void SetF1blending(double val_F1_i, double val_F1_j); + void SetF1blending(su2double val_F1_i, su2double val_F1_j); /*! * \brief Set the value of the second blending function. * \param[in] val_F2_i - Value of the second blending function at point i. * \param[in] val_F2_j - Value of the second blending function at point j. */ - void SetF2blending(double val_F2_i, double val_F2_j); + void SetF2blending(su2double val_F2_i, su2double val_F2_j); /*! * \brief Set the value of the cross diffusion for the SST model. * \param[in] val_CDkw_i - Value of the cross diffusion at point i. * \param[in] val_CDkw_j - Value of the cross diffusion at point j. */ - virtual void SetCrossDiff(double val_CDkw_i, double val_CDkw_j); + virtual void SetCrossDiff(su2double val_CDkw_i, su2double val_CDkw_j); /*! * \brief Residual for source term integration. @@ -5142,7 +5142,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -5154,7 +5154,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_FreeSurface : public CNumerics { - double U_ref, L_ref, Froude; + su2double U_ref, L_ref, Froude; bool implicit, incompressible; public: @@ -5178,7 +5178,7 @@ class CSourcePieceWise_FreeSurface : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -5189,7 +5189,7 @@ class CSourcePieceWise_FreeSurface : public CNumerics { * \version 4.0.0 "Cardinal" */ class CSourceGravity : public CNumerics { - double Froude; + su2double Froude; bool compressible, incompressible, freesurface; public: @@ -5211,7 +5211,7 @@ class CSourceGravity : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, CConfig *config); + void ComputeResidual(su2double *val_residual, CConfig *config); }; /*! @@ -5223,8 +5223,8 @@ class CSourceGravity : public CNumerics { */ class CSourceViscous_AdjFlow : public CNumerics { private: - double *Velocity, *GradDensity, *GradInvDensity, *dPoDensity2, *alpha, *beta, *Sigma_5_vec; - double **GradVel_o_Rho, **sigma, **Sigma_phi, **Sigma_5_Tensor, **Sigma; + su2double *Velocity, *GradDensity, *GradInvDensity, *dPoDensity2, *alpha, *beta, *Sigma_5_vec; + su2double **GradVel_o_Rho, **sigma, **Sigma_phi, **Sigma_5_Tensor, **Sigma; public: @@ -5246,13 +5246,13 @@ class CSourceViscous_AdjFlow : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_residual, CConfig *config); + void ComputeResidual (su2double *val_residual, CConfig *config); /*! * \brief A virtual member. * \param[in] val_phi - Value of the adjoint velocity. */ - void SetPhi_Old(double *val_phi); + void SetPhi_Old(su2double *val_phi); }; @@ -5265,7 +5265,7 @@ class CSourceViscous_AdjFlow : public CNumerics { */ class CSourcePieceWise_AdjTurb : public CNumerics { private: - double **tau, *Velocity; + su2double **tau, *Velocity; public: @@ -5289,7 +5289,7 @@ class CSourcePieceWise_AdjTurb : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -5320,7 +5320,7 @@ class CSourcePieceWise_AdjElec : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, CConfig *config); + void ComputeResidual(su2double *val_residual, CConfig *config); }; /*! @@ -5351,7 +5351,7 @@ class CSourcePieceWise_LevelSet : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, CConfig *config); + void ComputeResidual(su2double *val_residual, CConfig *config); }; /*! @@ -5382,7 +5382,7 @@ class CSourcePieceWise_AdjLevelSet : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, CConfig *config); + void ComputeResidual(su2double *val_residual, CConfig *config); }; /*! @@ -5413,7 +5413,7 @@ class CSourcePieceWise_LinElec : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, CConfig *config); + void ComputeResidual(su2double *val_residual, CConfig *config); }; /*! @@ -5425,8 +5425,8 @@ class CSourcePieceWise_LinElec : public CNumerics { */ class CSourceConservative_AdjFlow : public CNumerics { private: - double *Velocity, *Residual_i, *Residual_j, *Mean_Residual; - double **Mean_PrimVar_Grad; + su2double *Velocity, *Residual_i, *Residual_j, *Mean_Residual; + su2double **Mean_PrimVar_Grad; public: @@ -5448,7 +5448,7 @@ class CSourceConservative_AdjFlow : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, CConfig *config); + void ComputeResidual(su2double *val_residual, CConfig *config); }; /*! @@ -5481,7 +5481,7 @@ class CSourceConservative_AdjTurb : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -5513,7 +5513,7 @@ class CSourceRotatingFrame_Flow : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); }; /*! @@ -5545,7 +5545,7 @@ class CSourceRotatingFrame_AdjFlow : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); }; /*! @@ -5579,7 +5579,7 @@ class CSourceAxisymmetric_Flow : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, CConfig *config); }; @@ -5611,7 +5611,7 @@ class CSourceAxisymmetric_AdjFlow : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **Jacobian_i, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, CConfig *config); private: @@ -5647,7 +5647,7 @@ class CSourceWindGust : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); }; /*! @@ -5676,7 +5676,7 @@ class CSource_Template : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); /*! * \brief Destructor of the class. @@ -5696,13 +5696,13 @@ class CConvective_Template : public CNumerics { /* define private variables here */ bool implicit; - double *Diff_U; - double *Velocity_i, *Velocity_j, *RoeVelocity; - double *ProjFlux_i, *ProjFlux_j; - double *delta_wave, *delta_vel; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double *Diff_U; + su2double *Velocity_i, *Velocity_j, *RoeVelocity; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *delta_wave, *delta_vel; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho; unsigned short iDim, iVar, jVar, kVar; @@ -5729,7 +5729,7 @@ class CConvective_Template : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -5764,7 +5764,7 @@ class CViscous_Template : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -5777,15 +5777,15 @@ class CViscous_Template : public CNumerics { class CUpwRoe_TNE2 : public CNumerics { private: bool implicit, ionization; - double *Diff_U; - double *RoeU, *RoeV; - double *ProjFlux_i, *ProjFlux_j; - double *Lambda, *Epsilon; - double **P_Tensor, **invP_Tensor; - double RoeSoundSpeed; - double ProjVelocity, ProjVelocity_i, ProjVelocity_j; - double Proj_ModJac_Tensor_ij, R; - double *RoedPdU; + su2double *Diff_U; + su2double *RoeU, *RoeV; + su2double *ProjFlux_i, *ProjFlux_j; + su2double *Lambda, *Epsilon; + su2double **P_Tensor, **invP_Tensor; + su2double RoeSoundSpeed; + su2double ProjVelocity, ProjVelocity_i, ProjVelocity_j; + su2double Proj_ModJac_Tensor_ij, R; + su2double *RoedPdU; unsigned short nSpecies, nPrimVar, nPrimVarGrad, nVar, nDim; // CVariable *var; @@ -5813,7 +5813,7 @@ class CUpwRoe_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -5828,14 +5828,14 @@ class CUpwRoe_TNE2 : public CNumerics { class CUpwMSW_TNE2 : public CNumerics { private: bool ionization, implicit; - double *Diff_U; - double *u_i, *u_j, *ust_i, *ust_j; - double *Fc_i, *Fc_j; - double *Lambda_i, *Lambda_j; - double *rhos_i, *rhos_j, *rhosst_i, *rhosst_j; - double *Ust_i, *Ust_j, *Vst_i, *Vst_j; - double *dPdUst_i, *dPdUst_j; - double **P_Tensor, **invP_Tensor; + su2double *Diff_U; + su2double *u_i, *u_j, *ust_i, *ust_j; + su2double *Fc_i, *Fc_j; + su2double *Lambda_i, *Lambda_j; + su2double *rhos_i, *rhos_j, *rhosst_i, *rhosst_j; + su2double *Ust_i, *Ust_j, *Vst_i, *Vst_j; + su2double *dPdUst_i, *dPdUst_j; + su2double **P_Tensor, **invP_Tensor; unsigned short nSpecies, nPrimVar, nPrimVarGrad, nVar, nDim; // CVariable *var; @@ -5866,7 +5866,7 @@ class CUpwMSW_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -5880,14 +5880,14 @@ class CUpwMSW_TNE2 : public CNumerics { class CUpwAUSM_TNE2 : public CNumerics { private: bool implicit, ionization; - double *FcL, *FcR, *FcLR; - double *dmLP, *dmRM, *dpLP, *dpRM; - double *daL, *daR; - double *rhos_i, *u_i; - double *rhos_j, *u_j; - double a_i, P_i, h_i, ProjVel_i; - double a_j, P_j, h_j, ProjVel_j; - double sq_vel, Proj_ModJac_Tensor_ij; + su2double *FcL, *FcR, *FcLR; + su2double *dmLP, *dmRM, *dpLP, *dpRM; + su2double *daL, *daR; + su2double *rhos_i, *u_i; + su2double *rhos_j, *u_j; + su2double a_i, P_i, h_i, ProjVel_i; + su2double a_j, P_j, h_j, ProjVel_j; + su2double sq_vel, Proj_ModJac_Tensor_ij; unsigned short nSpecies, nVar, nDim; public: @@ -5912,7 +5912,7 @@ class CUpwAUSM_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; /*! @@ -5925,16 +5925,16 @@ class CUpwAUSM_TNE2 : public CNumerics { class CUpwAUSMPWplus_TNE2 : public CNumerics { private: bool implicit, ionization; - double *FcL, *FcR; - double *dmLdL, *dmLdR, *dmRdL, *dmRdR; - double *dmLPdL, *dmLPdR, *dmRMdL, *dmRMdR; - double *dmbLPdL, *dmbLPdR, *dmbRMdL, *dmbRMdR; - double *dpLPdL, *dpLPdR, *dpRMdL, *dpRMdR; - double *dHnL, *dHnR; - double *daL, *daR; - double *rhos_i, *u_i; - double *rhos_j, *u_j; - double *dPdU_i, *dPdU_j; + su2double *FcL, *FcR; + su2double *dmLdL, *dmLdR, *dmRdL, *dmRdR; + su2double *dmLPdL, *dmLPdR, *dmRMdL, *dmRMdR; + su2double *dmbLPdL, *dmbLPdR, *dmbRMdL, *dmbRMdR; + su2double *dpLPdL, *dpLPdR, *dpRMdL, *dpRMdR; + su2double *dHnL, *dHnR; + su2double *daL, *daR; + su2double *rhos_i, *u_i; + su2double *rhos_j, *u_j; + su2double *dPdU_i, *dPdU_j; unsigned short nSpecies, nVar, nDim; public: @@ -5959,7 +5959,7 @@ class CUpwAUSMPWplus_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -5973,15 +5973,15 @@ class CUpwAUSMPWplus_TNE2 : public CNumerics { class CCentLax_TNE2 : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ - double *Diff_U; /*!< \brief Difference of conservative variables. */ - double *MeanU, *MeanV; - double *MeandPdU; - double *ProjFlux; /*!< \brief Projected inviscid flux tensor. */ - double Param_p, Param_Kappa_0; /*!< \brief Artificial dissipation parameters. */ - double Local_Lambda_i, Local_Lambda_j, MeanLambda; /*!< \brief Local eigenvalues. */ - double Phi_i, Phi_j, sc0, StretchingFactor; /*!< \brief Streching parameters. */ - double Epsilon_0, cte; /*!< \brief Artificial dissipation values. */ - // double *dPdrhos, dPdrhoE, dPdrhoEve; /*!< \brief Partial derivative of pressure w.r.t. conserved quantities. */ + su2double *Diff_U; /*!< \brief Difference of conservative variables. */ + su2double *MeanU, *MeanV; + su2double *MeandPdU; + su2double *ProjFlux; /*!< \brief Projected inviscid flux tensor. */ + su2double Param_p, Param_Kappa_0; /*!< \brief Artificial dissipation parameters. */ + su2double Local_Lambda_i, Local_Lambda_j, MeanLambda; /*!< \brief Local eigenvalues. */ + su2double Phi_i, Phi_j, sc0, StretchingFactor; /*!< \brief Streching parameters. */ + su2double Epsilon_0, cte; /*!< \brief Artificial dissipation values. */ + // su2double *dPdrhos, dPdrhoE, dPdrhoEve; /*!< \brief Partial derivative of pressure w.r.t. conserved quantities. */ bool implicit; /*!< \brief Implicit time integration. */ bool ionization; /*!< \brief Charged species with the mixture. */ bool stretching; @@ -6014,7 +6014,7 @@ class CCentLax_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_resconv, double *val_resvisc, double **val_Jacobian_i, double **val_Jacobian_j, + void ComputeResidual(su2double *val_resconv, su2double *val_resvisc, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); }; @@ -6028,7 +6028,7 @@ class CCentLax_TNE2 : public CNumerics { class CAvgGrad_TNE2 : public CNumerics { private: unsigned short iDim, iVar, nPrimVar, nPrimVarGrad; /*!< \brief Iterators in dimension an variable. */ - double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ *Mean_Diffusion_Coeff, /*!< \brief Mean value of the species diffusion coefficient. */ @@ -6068,9 +6068,9 @@ class CAvgGrad_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config); }; @@ -6085,7 +6085,7 @@ class CAvgGrad_TNE2 : public CNumerics { class CAvgGradCorrected_TNE2 : public CNumerics { private: unsigned short iDim, iVar, nPrimVar, nPrimVarGrad; /*!< \brief Iterators in dimension an variable. */ - double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *PrimVar_i, *PrimVar_j, /*!< \brief Primitives variables at point i and 1. */ **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ *Edge_Vector, @@ -6127,9 +6127,9 @@ class CAvgGradCorrected_TNE2 : public CNumerics { * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, + void ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config); }; @@ -6146,10 +6146,10 @@ class CSource_TNE2 : public CNumerics { bool implicit, ionization; unsigned short nSpecies, nVar, nPrimVar, nPrimVarGrad; int *alphak, *betak; - double *X; // Mole fraction - double **RxnConstantTable; - double *dkf, *dkb, *dRfok, *dRbok, *A; - double *eves, *Cvvs, *Cves; + su2double *X; // Mole fraction + su2double **RxnConstantTable; + su2double *dkf, *dkb, *dRfok, *dRbok, *A; + su2double *eves, *Cvvs, *Cves; // CVariable *var; public: @@ -6177,7 +6177,7 @@ class CSource_TNE2 : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeChemistry(double *val_residual, double **val_Jacobian_i, CConfig *config); + void ComputeChemistry(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); /*! * \brief Calculates constants used for Keq correlation. @@ -6185,7 +6185,7 @@ class CSource_TNE2 : public CNumerics { * \param[in] val_reaction - Reaction number indicator. * \param[in] config - Definition of the particular problem. */ - void GetKeqConstants(double *A, unsigned short val_reaction, CConfig *config); + void GetKeqConstants(su2double *A, unsigned short val_reaction, CConfig *config); /*! * \brief Residual of the rotational frame source term. @@ -6193,7 +6193,7 @@ class CSource_TNE2 : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[in] config - Definition of the particular problem. */ - void ComputeVibRelaxation(double *val_residual, double **val_Jacobian_i, CConfig *config); + void ComputeVibRelaxation(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config); }; @@ -6209,12 +6209,12 @@ class CUpwRoe_AdjTNE2 : public CNumerics { private: bool implicit; unsigned short nVar, nPrimVar, nPrimVarGrad, nSpecies; - double *MeanU, *MeanV, *MeandPdU; - double *DiffPsi; - double *UnitNormal; - double *Lambda; - double **Ai, **Aj; - double **P, **invP, **PLPinv; + su2double *MeanU, *MeanV, *MeandPdU; + su2double *DiffPsi; + su2double *UnitNormal; + su2double *Lambda; + su2double **Ai, **Aj; + su2double **P, **invP, **PLPinv; // CVariable *var; @@ -6245,9 +6245,9 @@ class CUpwRoe_AdjTNE2 : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -6263,11 +6263,11 @@ class CUpwSW_AdjTNE2 : public CNumerics { private: bool implicit; unsigned short nVar, nPrimVar, nPrimVarGrad, nSpecies; - double *DiffPsi; - double *UnitNormal; - double *Lambda_i, *Lambda_j; - double **P, **invP, **PLPinv; - double **Ai, **Aj; + su2double *DiffPsi; + su2double *UnitNormal; + su2double *Lambda_i, *Lambda_j; + su2double **P, **invP, **PLPinv; + su2double **Ai, **Aj; // CVariable *var; @@ -6298,9 +6298,9 @@ class CUpwSW_AdjTNE2 : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -6314,13 +6314,13 @@ class CUpwSW_AdjTNE2 : public CNumerics { */ class CCentJST_AdjTNE2 : public CNumerics { private: - double *Diff_Psi, *Diff_Lapl; - double *Velocity_i, *Velocity_j; - double *MeanPhi; + su2double *Diff_Psi, *Diff_Lapl; + su2double *Velocity_i, *Velocity_j; + su2double *MeanPhi; unsigned short iDim, jDim, iVar, jVar; - double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; - double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; - double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; + su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; + su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; bool implicit, stretching, grid_movement, rotating_frame; public: @@ -6350,8 +6350,8 @@ class CCentJST_AdjTNE2 : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -6367,9 +6367,9 @@ class CCentLax_AdjTNE2 : public CNumerics { private: bool implicit; unsigned short nVar, nPrimVar, nPrimVarGrad, nSpecies, nDim; - double *DiffPsi, *MeanPsi; - double Param_p, Param_Kappa_0; - double **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; + su2double *DiffPsi, *MeanPsi; + su2double Param_p, Param_Kappa_0; + su2double **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; public: @@ -6400,10 +6400,10 @@ class CCentLax_AdjTNE2 : public CNumerics { * \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j. * \param[in] config - Definition of the particular problem. */ - void ComputeResidual (double *val_resconv_i, double *val_resvisc_i, - double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, + void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, + su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; @@ -6416,14 +6416,14 @@ class CCentLax_AdjTNE2 : public CNumerics { */ class CAvgGrad_AdjTNE2 : public CNumerics { private: - double *vel, *vel_i, *vel_j; - double *Mean_GradPsiE; /*!< \brief Mean gradient in the adjoint energy between nodes i and j. */ - double *Mean_GradPsiEve; /*!< \brief Mean gradient in the adjoint vibrational energy between nodes i and j. */ - double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ - double **Mean_GPsi; /*!< \brief Mean gradient of the adjoint variables. */ - double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ - double **SigmaPhi; - double **SigmaPsiE; + su2double *vel, *vel_i, *vel_j; + su2double *Mean_GradPsiE; /*!< \brief Mean gradient in the adjoint energy between nodes i and j. */ + su2double *Mean_GradPsiEve; /*!< \brief Mean gradient in the adjoint vibrational energy between nodes i and j. */ + su2double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ + su2double **Mean_GPsi; /*!< \brief Mean gradient of the adjoint variables. */ + su2double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ + su2double **SigmaPhi; + su2double **SigmaPsiE; bool implicit; /*!< \brief Implicit calculus. */ public: @@ -6445,9 +6445,9 @@ class CAvgGrad_AdjTNE2 : public CNumerics { * \param[out] val_residual_i - Pointer to the total residual at point i. * \param[out] val_residual_j - Pointer to the total residual at point j. */ - void ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config); + void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config); }; /*! @@ -6461,10 +6461,10 @@ class CSource_AdjTNE2 : public CNumerics { private: bool implicit; unsigned short nSpecies, nVar, nPrimVar, nPrimVarGrad; - double *rhos, *vel; - double *GInvRho, **GVeloRho, **tau, **eta, **pi, **zeta; - double *GPhiGInvRho, *GPsiEZetaTau; - double **Av2, **Av3, **Av4; + su2double *rhos, *vel; + su2double *GInvRho, **GVeloRho, **tau, **eta, **pi, **zeta; + su2double *GPhiGInvRho, *GPsiEZetaTau; + su2double **Av2, **Av3, **Av4; public: /*! @@ -6489,14 +6489,14 @@ class CSource_AdjTNE2 : public CNumerics { * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeSourceViscous(double *val_residual, CConfig *config); + void ComputeSourceViscous(su2double *val_residual, CConfig *config); /*! * \brief Residual of the rotational frame source term. * \param[out] val_residual - Pointer to the total residual. * \param[in] config - Definition of the particular problem. */ - void ComputeSourceConservative(double *val_residual, CConfig *config); + void ComputeSourceConservative(su2double *val_residual, CConfig *config); }; diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 12fd92343a2..873be33cae1 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -31,29 +31,29 @@ #pragma once -inline double CNumerics::Determinant_3x3(double A00, double A01, double A02, double A10, double A11, double A12, double A20, double A21, double A22) { +inline su2double CNumerics::Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22) { return A00*(A11*A22-A12*A21) - A01*(A10*A22-A12*A20) + A02*(A10*A21-A11*A20); } -inline void CNumerics::SetFEA_StiffMatrix2D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } +inline void CNumerics::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } -inline void CNumerics::SetFEA_StiffMatrix3D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes) { } +inline void CNumerics::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } -inline void CNumerics::SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } +inline void CNumerics::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } -inline void CNumerics::SetFEA_StiffMassMatrix3D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes) { } +inline void CNumerics::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } -inline void CNumerics::GetFEA_StressNodal2D(double StressVector[8][3], double DispElement[8], double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } +inline void CNumerics::GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } -inline void CNumerics::GetFEA_StressNodal3D(double StressVector[8][6], double DispElement[24], double CoordCorners[8][3], unsigned short nNodes) { } +inline void CNumerics::GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { } -inline void CNumerics::SetFEA_DeadLoad2D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity) { } +inline void CNumerics::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } -inline void CNumerics::SetFEA_DeadLoad3D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity) { } +inline void CNumerics::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } -inline void CNumerics::PressInt_Linear(double CoordCorners[4][3], double *tn_e, double *Fnodal) { } +inline void CNumerics::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double *Fnodal) { } -inline void CNumerics::ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]) { } +inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { } inline void CNumerics::Compute_Mass_Matrix(CElement *element_container){ } @@ -91,54 +91,54 @@ inline void CFEM_Elasticity::Compute_Stress_Tensor(CElement *element_container){ inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(CElement *element_container){ } -inline void CNumerics::ComputeResidual(double *val_residual, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_residual, CConfig *config) { } -inline void CNumerics::ComputeResidual(double *val_residual_i, double *val_residual_j) { } +inline void CNumerics::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j) { } -inline void CNumerics::ComputeResidual(double *val_residual_i, double *val_residual_j, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, CConfig *config) { } -inline void CNumerics::ComputeResidual(double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { } -inline void CNumerics::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, +inline void CNumerics::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { } -inline void CNumerics::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, - double **val_JacobianMeanFlow_i, double **val_JacobianMeanFlow_j, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, + su2double **val_JacobianMeanFlow_i, su2double **val_JacobianMeanFlow_j, CConfig *config) { } -inline void CNumerics::ComputeResidual(double *val_resconv, double *val_resvisc, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_resconv, su2double *val_resvisc, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { } -inline void CNumerics::ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { } -inline void CNumerics::ComputeResidual(double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, - double *val_resvisc_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, + su2double *val_resvisc_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { } -inline void CNumerics::ComputeResidual(double **val_stiffmatrix_elem, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double **val_stiffmatrix_elem, CConfig *config) { } -inline void CNumerics::GetEq_Rxn_Coefficients(double **EqnRxnConstants, CConfig *config) { }; +inline void CNumerics::GetEq_Rxn_Coefficients(su2double **EqnRxnConstants, CConfig *config) { }; -inline void CNumerics::ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) { } -inline void CNumerics::ComputeResidual_TransLM(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config, double &gamma_sep) {} +inline void CNumerics::ComputeResidual_TransLM(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config, su2double &gamma_sep) {} -inline void CNumerics::ComputeResidual_Axisymmetric(double *val_residual, CConfig *config) { } +inline void CNumerics::ComputeResidual_Axisymmetric(su2double *val_residual, CConfig *config) { } -inline void CNumerics::ComputeResidual_Axisymmetric_ad(double *val_residual, double *val_residuald, CConfig *config) { } +inline void CNumerics::ComputeResidual_Axisymmetric_ad(su2double *val_residual, su2double *val_residuald, CConfig *config) { } -inline void CNumerics::SetJacobian_Axisymmetric(double **val_Jacobian_i, CConfig *config) { } +inline void CNumerics::SetJacobian_Axisymmetric(su2double **val_Jacobian_i, CConfig *config) { } -inline void CNumerics::ComputeVibRelaxation(double *val_residual, double **val_Jacobian_i, CConfig *config) { } +inline void CNumerics::ComputeVibRelaxation(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) { } -inline void CNumerics::ComputeChemistry(double *val_residual, double **val_Jacobian_i, CConfig *config) { } +inline void CNumerics::ComputeChemistry(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) { } -inline void CNumerics::GetKeqConstants(double *A, unsigned short val_reaction, CConfig *config) { } +inline void CNumerics::GetKeqConstants(su2double *A, unsigned short val_reaction, CConfig *config) { } -inline void CNumerics::ComputeSourceViscous(double *val_residual, CConfig *config) { } +inline void CNumerics::ComputeSourceViscous(su2double *val_residual, CConfig *config) { } -inline double CNumerics::GetPrecond_Beta() { return 0; } +inline su2double CNumerics::GetPrecond_Beta() { return 0; } inline void CNumerics::SetRhosIndex(unsigned short val_Index) { RHOS_INDEX = val_Index; } @@ -160,263 +160,263 @@ inline void CNumerics::SetRhoCvtrIndex(unsigned short val_Index) { RHOCVTR_INDEX inline void CNumerics::SetRhoCvveIndex(unsigned short val_Index) { RHOCVVE_INDEX = val_Index; } -inline void CNumerics::SetdPdU(double *val_dPdU_i, double *val_dPdU_j) { dPdU_i = val_dPdU_i; dPdU_j = val_dPdU_j; } +inline void CNumerics::SetdPdU(su2double *val_dPdU_i, su2double *val_dPdU_j) { dPdU_i = val_dPdU_i; dPdU_j = val_dPdU_j; } -inline void CNumerics::SetdTdU(double *val_dTdU_i, double *val_dTdU_j) { dTdU_i = val_dTdU_i; dTdU_j = val_dTdU_j; } +inline void CNumerics::SetdTdU(su2double *val_dTdU_i, su2double *val_dTdU_j) { dTdU_i = val_dTdU_i; dTdU_j = val_dTdU_j; } -inline void CNumerics::SetdTvedU(double *val_dTvedU_i, double *val_dTvedU_j) { dTvedU_i = val_dTvedU_i; dTvedU_j = val_dTvedU_j; } +inline void CNumerics::SetdTvedU(su2double *val_dTvedU_i, su2double *val_dTvedU_j) { dTvedU_i = val_dTvedU_i; dTvedU_j = val_dTvedU_j; } -inline void CNumerics::SetUndivided_Laplacian(double *val_und_lapl_i, double *val_und_lapl_j) { +inline void CNumerics::SetUndivided_Laplacian(su2double *val_und_lapl_i, su2double *val_und_lapl_j) { Und_Lapl_i = val_und_lapl_i; Und_Lapl_j = val_und_lapl_j; } -inline void CNumerics::SetSensor( double val_sensor_i, double val_sensor_j) { +inline void CNumerics::SetSensor( su2double val_sensor_i, su2double val_sensor_j) { Sensor_i = val_sensor_i; Sensor_j = val_sensor_j; } -inline void CNumerics::SetConservative(double *val_u_i, double *val_u_j) { +inline void CNumerics::SetConservative(su2double *val_u_i, su2double *val_u_j) { U_i = val_u_i; U_j = val_u_j; } -inline void CNumerics::SetConservative_ZeroOrder(double *val_u_i, double *val_u_j) { +inline void CNumerics::SetConservative_ZeroOrder(su2double *val_u_i, su2double *val_u_j) { UZeroOrder_i = val_u_i; UZeroOrder_j = val_u_j; } -inline void CNumerics::SetPrimitive(double *val_v_i, double *val_v_j) { +inline void CNumerics::SetPrimitive(su2double *val_v_i, su2double *val_v_j) { V_i = val_v_i; V_j = val_v_j; } -inline void CNumerics::SetSecondary(double *val_s_i, double *val_s_j) { +inline void CNumerics::SetSecondary(su2double *val_s_i, su2double *val_s_j) { S_i = val_s_i; S_j = val_s_j; } -inline void CNumerics::SetConservative(double *val_u_0, double *val_u_1, double *val_u_2) { +inline void CNumerics::SetConservative(su2double *val_u_0, su2double *val_u_1, su2double *val_u_2) { U_0 = val_u_0; U_1 = val_u_1; U_2 = val_u_2; } -inline void CNumerics::SetConservative(double *val_u_0, double *val_u_1, double *val_u_2, double *val_u_3) { +inline void CNumerics::SetConservative(su2double *val_u_0, su2double *val_u_1, su2double *val_u_2, su2double *val_u_3) { U_0 = val_u_0; U_1 = val_u_1; U_2 = val_u_2; U_3 = val_u_3; } -inline void CNumerics::SetVelocity2_Inf(double velocity2) { +inline void CNumerics::SetVelocity2_Inf(su2double velocity2) { vel2_inf = velocity2; } -inline void CNumerics::SetVorticity(double *val_vorticity_i, double *val_vorticity_j) { +inline void CNumerics::SetVorticity(su2double *val_vorticity_i, su2double *val_vorticity_j) { Vorticity_i = val_vorticity_i; Vorticity_j = val_vorticity_j; } -inline void CNumerics::SetStrainMag(double val_strainmag_i, double val_strainmag_j) { +inline void CNumerics::SetStrainMag(su2double val_strainmag_i, su2double val_strainmag_j) { StrainMag_i = val_strainmag_i; StrainMag_j = val_strainmag_j; } -inline void CNumerics::SetTimeStep(double val_timestep) {TimeStep = val_timestep;} +inline void CNumerics::SetTimeStep(su2double val_timestep) {TimeStep = val_timestep;} -inline void CNumerics::SetLaminarViscosity(double val_lam_viscosity_i, double val_lam_viscosity_j) { +inline void CNumerics::SetLaminarViscosity(su2double val_lam_viscosity_i, su2double val_lam_viscosity_j) { Laminar_Viscosity_i = val_lam_viscosity_i; Laminar_Viscosity_j = val_lam_viscosity_j; } -inline void CNumerics::SetThermalConductivity(double val_therm_conductivity_i, double val_therm_conductivity_j) { +inline void CNumerics::SetThermalConductivity(su2double val_therm_conductivity_i, su2double val_therm_conductivity_j) { Thermal_Conductivity_i = val_therm_conductivity_i; Thermal_Conductivity_j = val_therm_conductivity_j; } -inline void CNumerics::SetThermalConductivity_ve(double val_therm_conductivity_ve_i, double val_therm_conductivity_ve_j) { +inline void CNumerics::SetThermalConductivity_ve(su2double val_therm_conductivity_ve_i, su2double val_therm_conductivity_ve_j) { Thermal_Conductivity_ve_i = val_therm_conductivity_ve_i; Thermal_Conductivity_ve_j = val_therm_conductivity_ve_j; } -inline void CNumerics::SetDiffusionCoeff(double* val_diffusioncoeff_i, double* val_diffusioncoeff_j) { +inline void CNumerics::SetDiffusionCoeff(su2double* val_diffusioncoeff_i, su2double* val_diffusioncoeff_j) { Diffusion_Coeff_i = val_diffusioncoeff_i; Diffusion_Coeff_j = val_diffusioncoeff_j; } -inline void CNumerics::SetEddyViscosity(double val_eddy_viscosity_i, double val_eddy_viscosity_j) { +inline void CNumerics::SetEddyViscosity(su2double val_eddy_viscosity_i, su2double val_eddy_viscosity_j) { Eddy_Viscosity_i = val_eddy_viscosity_i; Eddy_Viscosity_j = val_eddy_viscosity_j; } -inline void CNumerics::SetIntermittency(double intermittency_in) { } +inline void CNumerics::SetIntermittency(su2double intermittency_in) { } -inline void CNumerics::SetProduction(double val_production) { } +inline void CNumerics::SetProduction(su2double val_production) { } -inline void CNumerics::SetDestruction(double val_destruction) { } +inline void CNumerics::SetDestruction(su2double val_destruction) { } -inline void CNumerics::SetCrossProduction(double val_crossproduction) { } +inline void CNumerics::SetCrossProduction(su2double val_crossproduction) { } -inline double CNumerics::GetProduction(void) { return 0; } +inline su2double CNumerics::GetProduction(void) { return 0; } -inline double CNumerics::GetDestruction(void) { return 0; } +inline su2double CNumerics::GetDestruction(void) { return 0; } -inline double CNumerics::GetCrossProduction(void) { return 0; } +inline su2double CNumerics::GetCrossProduction(void) { return 0; } -inline void CNumerics::SetTurbKineticEnergy(double val_turb_ke_i, double val_turb_ke_j) { +inline void CNumerics::SetTurbKineticEnergy(su2double val_turb_ke_i, su2double val_turb_ke_j) { turb_ke_i = val_turb_ke_i; turb_ke_j = val_turb_ke_j; } -inline void CNumerics::SetDistance(double val_dist_i, double val_dist_j) { +inline void CNumerics::SetDistance(su2double val_dist_i, su2double val_dist_j) { dist_i = val_dist_i; dist_j = val_dist_j; } -inline void CNumerics::SetAdjointVar(double *val_psi_i, double *val_psi_j) { +inline void CNumerics::SetAdjointVar(su2double *val_psi_i, su2double *val_psi_j) { Psi_i = val_psi_i; Psi_j = val_psi_j; } -inline void CNumerics::SetLinearizedVar(double *val_deltau_i, double *val_deltau_j) { +inline void CNumerics::SetLinearizedVar(su2double *val_deltau_i, su2double *val_deltau_j) { DeltaU_i = val_deltau_i; DeltaU_j = val_deltau_j; } -inline void CNumerics::SetAdjointVarGradient(double **val_psivar_grad_i, double **val_psivar_grad_j) { +inline void CNumerics::SetAdjointVarGradient(su2double **val_psivar_grad_i, su2double **val_psivar_grad_j) { PsiVar_Grad_i = val_psivar_grad_i; PsiVar_Grad_j = val_psivar_grad_j; } -inline void CNumerics::SetAdjointVarLimiter(double *val_psivar_lim_i, double *val_psivar_lim_j) { +inline void CNumerics::SetAdjointVarLimiter(su2double *val_psivar_lim_i, su2double *val_psivar_lim_j) { PsiVar_Lim_i = val_psivar_lim_i; PsiVar_Lim_j = val_psivar_lim_j; } -inline void CNumerics::SetTurbVar(double *val_turbvar_i, double *val_turbvar_j) { +inline void CNumerics::SetTurbVar(su2double *val_turbvar_i, su2double *val_turbvar_j) { TurbVar_i = val_turbvar_i; TurbVar_j = val_turbvar_j; } -inline void CNumerics::SetTransVar(double *val_transvar_i, double *val_transvar_j) { +inline void CNumerics::SetTransVar(su2double *val_transvar_i, su2double *val_transvar_j) { TransVar_i = val_transvar_i; TransVar_j = val_transvar_j; } -inline void CNumerics::SetTurbVarGradient(double **val_turbvar_grad_i, double **val_turbvar_grad_j) { +inline void CNumerics::SetTurbVarGradient(su2double **val_turbvar_grad_i, su2double **val_turbvar_grad_j) { TurbVar_Grad_i = val_turbvar_grad_i; TurbVar_Grad_j = val_turbvar_grad_j; } -inline void CNumerics::SetTransVarGradient(double **val_transvar_grad_i, double **val_transvar_grad_j) { +inline void CNumerics::SetTransVarGradient(su2double **val_transvar_grad_i, su2double **val_transvar_grad_j) { TransVar_Grad_i = val_transvar_grad_i; TransVar_Grad_j = val_transvar_grad_j; } -inline void CNumerics::SetLevelSetVar(double *val_levelsetvar_i, double *val_levelsetvar_j) { +inline void CNumerics::SetLevelSetVar(su2double *val_levelsetvar_i, su2double *val_levelsetvar_j) { LevelSetVar_i = val_levelsetvar_i; LevelSetVar_j = val_levelsetvar_j; } -inline void CNumerics::SetLevelSetVarGradient(double **val_levelsetvar_grad_i, double **val_levelsetvar_grad_j) { +inline void CNumerics::SetLevelSetVarGradient(su2double **val_levelsetvar_grad_i, su2double **val_levelsetvar_grad_j) { LevelSetVar_Grad_i = val_levelsetvar_grad_i; LevelSetVar_Grad_j = val_levelsetvar_grad_j; } -inline void CNumerics::SetPrimVarGradient(double **val_primvar_grad_i, double **val_primvar_grad_j) { +inline void CNumerics::SetPrimVarGradient(su2double **val_primvar_grad_i, su2double **val_primvar_grad_j) { PrimVar_Grad_i = val_primvar_grad_i; PrimVar_Grad_j = val_primvar_grad_j; } -inline void CNumerics::SetPrimVarLimiter(double *val_primvar_lim_i, double *val_primvar_lim_j) { +inline void CNumerics::SetPrimVarLimiter(su2double *val_primvar_lim_i, su2double *val_primvar_lim_j) { PrimVar_Lim_i = val_primvar_lim_i; PrimVar_Lim_j = val_primvar_lim_j; } -inline void CNumerics::SetConsVarGradient(double **val_consvar_grad_i, double **val_consvar_grad_j) { +inline void CNumerics::SetConsVarGradient(su2double **val_consvar_grad_i, su2double **val_consvar_grad_j) { ConsVar_Grad_i = val_consvar_grad_i; ConsVar_Grad_j = val_consvar_grad_j; } -inline void CNumerics::SetConsVarGradient(double **val_consvar_grad_0, double **val_consvar_grad_1, double **val_consvar_grad_2) { +inline void CNumerics::SetConsVarGradient(su2double **val_consvar_grad_0, su2double **val_consvar_grad_1, su2double **val_consvar_grad_2) { ConsVar_Grad_0 = val_consvar_grad_0; ConsVar_Grad_1 = val_consvar_grad_1; ConsVar_Grad_2 = val_consvar_grad_2; } -inline void CNumerics::SetConsVarGradient(double **val_consvar_grad_0, double **val_consvar_grad_1, double **val_consvar_grad_2, double **val_consvar_grad_3) { +inline void CNumerics::SetConsVarGradient(su2double **val_consvar_grad_0, su2double **val_consvar_grad_1, su2double **val_consvar_grad_2, su2double **val_consvar_grad_3) { ConsVar_Grad_0 = val_consvar_grad_0; ConsVar_Grad_1 = val_consvar_grad_1; ConsVar_Grad_2 = val_consvar_grad_2; ConsVar_Grad_3 = val_consvar_grad_3; } -inline void CNumerics::SetConsVarGradient(double **val_consvar_grad) { +inline void CNumerics::SetConsVarGradient(su2double **val_consvar_grad) { ConsVar_Grad = val_consvar_grad; } -inline void CNumerics::SetCoord(double *val_coord_i, double *val_coord_j) { +inline void CNumerics::SetCoord(su2double *val_coord_i, su2double *val_coord_j) { Coord_i = val_coord_i; Coord_j = val_coord_j; } -inline void CNumerics::SetCoord(double *val_coord_0, double *val_coord_1, - double *val_coord_2) { +inline void CNumerics::SetCoord(su2double *val_coord_0, su2double *val_coord_1, + su2double *val_coord_2) { Coord_0 = val_coord_0; Coord_1 = val_coord_1; Coord_2 = val_coord_2; } -inline void CNumerics::SetCoord(double *val_coord_0, double *val_coord_1, - double *val_coord_2, double *val_coord_3) { +inline void CNumerics::SetCoord(su2double *val_coord_0, su2double *val_coord_1, + su2double *val_coord_2, su2double *val_coord_3) { Coord_0 = val_coord_0; Coord_1 = val_coord_1; Coord_2 = val_coord_2; Coord_3 = val_coord_3; } -inline void CNumerics::SetGridVel(double *val_gridvel_i, double *val_gridvel_j) { +inline void CNumerics::SetGridVel(su2double *val_gridvel_i, su2double *val_gridvel_j) { GridVel_i = val_gridvel_i; GridVel_j = val_gridvel_j; } -inline void CNumerics::SetWindGust(double *val_windgust_i, double *val_windgust_j) { +inline void CNumerics::SetWindGust(su2double *val_windgust_i, su2double *val_windgust_j) { WindGust_i = val_windgust_i; WindGust_j = val_windgust_j; } -inline void CNumerics::SetWindGustDer(double *val_windgustder_i, double *val_windgustder_j) { +inline void CNumerics::SetWindGustDer(su2double *val_windgustder_i, su2double *val_windgustder_j) { WindGustDer_i = val_windgustder_i; WindGustDer_j = val_windgustder_j; } -inline void CNumerics::SetPressure(double val_pressure_i, double val_pressure_j) { +inline void CNumerics::SetPressure(su2double val_pressure_i, su2double val_pressure_j) { Pressure_i = val_pressure_i; Pressure_j = val_pressure_j; } -inline void CNumerics::SetDensityInc(double val_densityinc_i, double val_densityinc_j) { +inline void CNumerics::SetDensityInc(su2double val_densityinc_i, su2double val_densityinc_j) { DensityInc_i = val_densityinc_i; DensityInc_j = val_densityinc_j; } -inline void CNumerics::SetBetaInc2(double val_betainc2_i, double val_betainc2_j) { +inline void CNumerics::SetBetaInc2(su2double val_betainc2_i, su2double val_betainc2_j) { BetaInc2_i = val_betainc2_i; BetaInc2_j = val_betainc2_j; } -inline void CNumerics::SetSoundSpeed(double val_soundspeed_i, double val_soundspeed_j) { +inline void CNumerics::SetSoundSpeed(su2double val_soundspeed_i, su2double val_soundspeed_j) { SoundSpeed_i = val_soundspeed_i; SoundSpeed_j = val_soundspeed_j; } -inline void CNumerics::SetEnthalpy(double val_enthalpy_i, double val_enthalpy_j) { +inline void CNumerics::SetEnthalpy(su2double val_enthalpy_i, su2double val_enthalpy_j) { Enthalpy_i = val_enthalpy_i; Enthalpy_j = val_enthalpy_j; } -inline void CNumerics::SetLambda(double val_lambda_i, double val_lambda_j) { +inline void CNumerics::SetLambda(su2double val_lambda_i, su2double val_lambda_j) { Lambda_i = val_lambda_i; Lambda_j = val_lambda_j; } @@ -426,90 +426,90 @@ inline void CNumerics::SetNeighbor(unsigned short val_neighbor_i, unsigned short Neighbor_j = val_neighbor_j; } -inline void CNumerics::SetTurbAdjointVar(double *val_turbpsivar_i, double *val_turbpsivar_j) { +inline void CNumerics::SetTurbAdjointVar(su2double *val_turbpsivar_i, su2double *val_turbpsivar_j) { TurbPsi_i = val_turbpsivar_i; TurbPsi_j = val_turbpsivar_j; } -inline void CNumerics::SetTurbAdjointGradient(double **val_turbpsivar_grad_i, double **val_turbpsivar_grad_j) { +inline void CNumerics::SetTurbAdjointGradient(su2double **val_turbpsivar_grad_i, su2double **val_turbpsivar_grad_j) { TurbPsi_Grad_i = val_turbpsivar_grad_i; TurbPsi_Grad_j = val_turbpsivar_grad_j; } -inline void CNumerics::SetTemperature(double val_temp_i, double val_temp_j) { +inline void CNumerics::SetTemperature(su2double val_temp_i, su2double val_temp_j) { Temp_i = val_temp_i; Temp_j = val_temp_j; } -inline void CNumerics::SetAuxVarGrad(double *val_auxvargrad_i, double *val_auxvargrad_j) { +inline void CNumerics::SetAuxVarGrad(su2double *val_auxvargrad_i, su2double *val_auxvargrad_j) { AuxVar_Grad_i = val_auxvargrad_i; AuxVar_Grad_j = val_auxvargrad_j; } -inline void CNumerics::SetNormal(double *val_normal) { Normal = val_normal; } +inline void CNumerics::SetNormal(su2double *val_normal) { Normal = val_normal; } -inline void CNumerics::SetVolume(double val_volume) { Volume = val_volume; } +inline void CNumerics::SetVolume(su2double val_volume) { Volume = val_volume; } -inline void CSourcePieceWise_TurbSST::SetF1blending(double val_F1_i, double val_F1_j) { +inline void CSourcePieceWise_TurbSST::SetF1blending(su2double val_F1_i, su2double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j; } -inline void CSourcePieceWise_TurbSST::SetF2blending(double val_F2_i, double val_F2_j) { +inline void CSourcePieceWise_TurbSST::SetF2blending(su2double val_F2_i, su2double val_F2_j) { F2_i = val_F2_i; F2_j = val_F2_j; } -inline void CSourcePieceWise_TurbSST::SetCrossDiff(double val_CDkw_i, double val_CDkw_j) { +inline void CSourcePieceWise_TurbSST::SetCrossDiff(su2double val_CDkw_i, su2double val_CDkw_j) { CDkw_i = val_CDkw_i; CDkw_j = val_CDkw_j; } -inline void CSourcePieceWise_TurbSA::SetIntermittency(double intermittency_in) { intermittency = intermittency_in; } +inline void CSourcePieceWise_TurbSA::SetIntermittency(su2double intermittency_in) { intermittency = intermittency_in; } -inline void CSourcePieceWise_TurbSA::SetProduction(double val_production) { Production = val_production; } +inline void CSourcePieceWise_TurbSA::SetProduction(su2double val_production) { Production = val_production; } -inline void CSourcePieceWise_TurbSA::SetDestruction(double val_destruction) { Destruction = val_destruction; } +inline void CSourcePieceWise_TurbSA::SetDestruction(su2double val_destruction) { Destruction = val_destruction; } -inline void CSourcePieceWise_TurbSA::SetCrossProduction(double val_crossproduction) { CrossProduction = val_crossproduction; } +inline void CSourcePieceWise_TurbSA::SetCrossProduction(su2double val_crossproduction) { CrossProduction = val_crossproduction; } -inline double CSourcePieceWise_TurbSA::GetProduction(void) { return Production; } +inline su2double CSourcePieceWise_TurbSA::GetProduction(void) { return Production; } -inline double CSourcePieceWise_TurbSA::GetDestruction(void) { return Destruction; } +inline su2double CSourcePieceWise_TurbSA::GetDestruction(void) { return Destruction; } -inline double CSourcePieceWise_TurbSA::GetCrossProduction(void) { return CrossProduction; } +inline su2double CSourcePieceWise_TurbSA::GetCrossProduction(void) { return CrossProduction; } -inline void CSourcePieceWise_TurbSA_Neg::SetIntermittency(double intermittency_in) { intermittency = intermittency_in; } +inline void CSourcePieceWise_TurbSA_Neg::SetIntermittency(su2double intermittency_in) { intermittency = intermittency_in; } -inline void CSourcePieceWise_TurbSA_Neg::SetProduction(double val_production) { Production = val_production; } +inline void CSourcePieceWise_TurbSA_Neg::SetProduction(su2double val_production) { Production = val_production; } -inline void CSourcePieceWise_TurbSA_Neg::SetDestruction(double val_destruction) { Destruction = val_destruction; } +inline void CSourcePieceWise_TurbSA_Neg::SetDestruction(su2double val_destruction) { Destruction = val_destruction; } -inline void CSourcePieceWise_TurbSA_Neg::SetCrossProduction(double val_crossproduction) { CrossProduction = val_crossproduction; } +inline void CSourcePieceWise_TurbSA_Neg::SetCrossProduction(su2double val_crossproduction) { CrossProduction = val_crossproduction; } -inline double CSourcePieceWise_TurbSA_Neg::GetProduction(void) { return Production; } +inline su2double CSourcePieceWise_TurbSA_Neg::GetProduction(void) { return Production; } -inline double CSourcePieceWise_TurbSA_Neg::GetDestruction(void) { return Destruction; } +inline su2double CSourcePieceWise_TurbSA_Neg::GetDestruction(void) { return Destruction; } -inline double CSourcePieceWise_TurbSA_Neg::GetCrossProduction(void) { return CrossProduction; } +inline su2double CSourcePieceWise_TurbSA_Neg::GetCrossProduction(void) { return CrossProduction; } -inline void CSourcePieceWise_TurbML::SetIntermittency(double intermittency_in) { intermittency = intermittency_in; } +inline void CSourcePieceWise_TurbML::SetIntermittency(su2double intermittency_in) { intermittency = intermittency_in; } -inline void CSourcePieceWise_TurbML::SetProduction(double val_production) { Production = val_production; } +inline void CSourcePieceWise_TurbML::SetProduction(su2double val_production) { Production = val_production; } -inline void CSourcePieceWise_TurbML::SetDestruction(double val_destruction) { Destruction = val_destruction; } +inline void CSourcePieceWise_TurbML::SetDestruction(su2double val_destruction) { Destruction = val_destruction; } -inline void CSourcePieceWise_TurbML::SetCrossProduction(double val_crossproduction) { CrossProduction = val_crossproduction; } +inline void CSourcePieceWise_TurbML::SetCrossProduction(su2double val_crossproduction) { CrossProduction = val_crossproduction; } -inline double CSourcePieceWise_TurbML::GetProduction(void) { return Production; } +inline su2double CSourcePieceWise_TurbML::GetProduction(void) { return Production; } -inline double CSourcePieceWise_TurbML::GetDestruction(void) { return Destruction; } +inline su2double CSourcePieceWise_TurbML::GetDestruction(void) { return Destruction; } -inline double CSourcePieceWise_TurbML::GetCrossProduction(void) { return CrossProduction; } +inline su2double CSourcePieceWise_TurbML::GetCrossProduction(void) { return CrossProduction; } -inline double CUpwTurkel_Flow::GetPrecond_Beta() { return Beta; } +inline su2double CUpwTurkel_Flow::GetPrecond_Beta() { return Beta; } -inline void CNumerics::ComputeResidual(double **val_Jacobian_i, double *val_Jacobian_mui, double ***val_Jacobian_gradi, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double **val_Jacobian_i, su2double *val_Jacobian_mui, su2double ***val_Jacobian_gradi, CConfig *config) { } -inline void CNumerics::ComputeResidual(double **val_Jacobian_i, double *val_Jacobian_mui, double ***val_Jacobian_gradi, - double **val_Jacobian_j, double *val_Jacobian_muj, double ***val_Jacobian_gradj, CConfig *config) { } +inline void CNumerics::ComputeResidual(su2double **val_Jacobian_i, su2double *val_Jacobian_mui, su2double ***val_Jacobian_gradi, + su2double **val_Jacobian_j, su2double *val_Jacobian_muj, su2double ***val_Jacobian_gradj, CConfig *config) { } diff --git a/SU2_CFD/include/output_structure.hpp b/SU2_CFD/include/output_structure.hpp index 4cff63b1644..8d5b7c52e12 100644 --- a/SU2_CFD/include/output_structure.hpp +++ b/SU2_CFD/include/output_structure.hpp @@ -74,7 +74,7 @@ class COutput { nGlobal_Hexa, nGlobal_Pris, nGlobal_Pyra; - double **Coords; // node i (x, y, z) = (Coords[0][i], Coords[1][i], Coords[2][i]) + su2double **Coords; // node i (x, y, z) = (Coords[0][i], Coords[1][i], Coords[2][i]) int *Conn_Line; int *Conn_BoundTria; int *Conn_BoundQuad; @@ -84,14 +84,14 @@ class COutput { int *Conn_Hexa; int *Conn_Pris; int *Conn_Pyra; - double *Volume; - double **Data; - double **residuals, **consv_vars; // placeholders - double *p, *rho, *M, *Cp, *Cf, *Ch, *h, *yplus; // placeholders + su2double *Volume; + su2double **Data; + su2double **residuals, **consv_vars; // placeholders + su2double *p, *rho, *M, *Cp, *Cf, *Ch, *h, *yplus; // placeholders unsigned short nVar_Consv, nVar_Total, nVar_Extra, nZones; bool wrote_surf_file, wrote_CGNS_base, wrote_Tecplot_base, wrote_Paraview_base; unsigned short wrote_base_file; - double RhoRes_New, RhoRes_Old; + su2double RhoRes_New, RhoRes_Old; int cgns_base, cgns_zone, cgns_base_results, cgns_zone_results; protected: @@ -99,7 +99,7 @@ class COutput { public: unsigned short **nOutput_Vars; - double ****data_container; + su2double ****data_container; /*! * \brief Constructor of the class. @@ -483,7 +483,7 @@ class COutput { * \param[in] val_nZone - iZone index. */ void SetConvHistory_Body(ofstream *ConvHist_file, CGeometry ***geometry, CSolver ****solver_container, CConfig **config, - CIntegration ***integration, bool DualTime, double timeused, unsigned short val_iZone); + CIntegration ***integration, bool DualTime, su2double timeused, unsigned short val_iZone); /*! * \brief Write the history file and the convergence on the screen for serial computations. diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index ef2080ff4e6..3a761ea6596 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -77,36 +77,36 @@ class CSolver { nDim; /*!< \brief Number of dimensions of the problem. */ unsigned long nPoint; /*!< \brief Number of points of the computational grid. */ unsigned long nPointDomain; /*!< \brief Number of points of the computational grid. */ - double Max_Delta_Time, /*!< \brief Maximum value of the delta time for all the control volumes. */ + su2double Max_Delta_Time, /*!< \brief Maximum value of the delta time for all the control volumes. */ Min_Delta_Time; /*!< \brief Minimum value of the delta time for all the control volumes. */ - double *Residual_RMS, /*!< \brief Vector with the mean residual for each variable. */ + su2double *Residual_RMS, /*!< \brief Vector with the mean residual for each variable. */ *Residual_Max, /*!< \brief Vector with the maximal residual for each variable. */ *Residual, /*!< \brief Auxiliary nVar vector. */ *Residual_i, /*!< \brief Auxiliary nVar vector for storing the residual at point i. */ *Residual_j; /*!< \brief Auxiliary nVar vector for storing the residual at point j. */ unsigned long *Point_Max; /*!< \brief Vector with the maximal residual for each variable. */ - double **Point_Max_Coord; /*!< \brief Vector with pointers to the coords of the maximal residual for each variable. */ - double *Solution, /*!< \brief Auxiliary nVar vector. */ + su2double **Point_Max_Coord; /*!< \brief Vector with pointers to the coords of the maximal residual for each variable. */ + su2double *Solution, /*!< \brief Auxiliary nVar vector. */ *Solution_i, /*!< \brief Auxiliary nVar vector for storing the solution at point i. */ *Solution_j; /*!< \brief Auxiliary nVar vector for storing the solution at point j. */ - double *Vector, /*!< \brief Auxiliary nDim vector. */ + su2double *Vector, /*!< \brief Auxiliary nDim vector. */ *Vector_i, /*!< \brief Auxiliary nDim vector to do the reconstruction of the variables at point i. */ *Vector_j; /*!< \brief Auxiliary nDim vector to do the reconstruction of the variables at point j. */ - double *Res_Conv, /*!< \brief Auxiliary nVar vector for storing the convective residual. */ + su2double *Res_Conv, /*!< \brief Auxiliary nVar vector for storing the convective residual. */ *Res_Visc, /*!< \brief Auxiliary nVar vector for storing the viscous residual. */ *Res_Sour, /*!< \brief Auxiliary nVar vector for storing the viscous residual. */ *Res_Conv_i, /*!< \brief Auxiliary vector for storing the convective residual at point i. */ *Res_Visc_i, /*!< \brief Auxiliary vector for storing the viscous residual at point i. */ *Res_Conv_j, /*!< \brief Auxiliary vector for storing the convective residual at point j. */ *Res_Visc_j; /*!< \brief Auxiliary vector for storing the viscous residual at point j. */ - double **Jacobian_i, /*!< \brief Auxiliary matrices for storing point to point Jacobians at point i. */ + su2double **Jacobian_i, /*!< \brief Auxiliary matrices for storing point to point Jacobians at point i. */ **Jacobian_j; /*!< \brief Auxiliary matrices for storing point to point Jacobians at point j. */ - double **Jacobian_ii, /*!< \brief Auxiliary matrices for storing point to point Jacobians. */ + su2double **Jacobian_ii, /*!< \brief Auxiliary matrices for storing point to point Jacobians. */ **Jacobian_ij, /*!< \brief Auxiliary matrices for storing point to point Jacobians. */ **Jacobian_ji, /*!< \brief Auxiliary matrices for storing point to point Jacobians. */ **Jacobian_jj; /*!< \brief Auxiliary matrices for storing point to point Jacobians. */ - double **Smatrix, /*!< \brief Auxiliary structure for computing gradients by least-squares */ + su2double **Smatrix, /*!< \brief Auxiliary structure for computing gradients by least-squares */ **cvector; /*!< \brief Auxiliary structure for computing gradients by least-squares */ unsigned short nOutputVariables; /*!< \brief Number of variables to write. */ @@ -216,25 +216,25 @@ class CSolver { * \brief Get the value of the maximum delta time. * \return Value of the maximum delta time. */ - double GetMax_Delta_Time(void); + su2double GetMax_Delta_Time(void); /*! * \brief Get the value of the minimum delta time. * \return Value of the minimum delta time. */ - double GetMin_Delta_Time(void); + su2double GetMin_Delta_Time(void); /*! * \brief Get the value of the maximum delta time. * \return Value of the maximum delta time. */ - virtual double GetMax_Delta_Time(unsigned short val_Species); + virtual su2double GetMax_Delta_Time(unsigned short val_Species); /*! * \brief Get the value of the minimum delta time. * \return Value of the minimum delta time. */ - virtual double GetMin_Delta_Time(unsigned short val_Species); + virtual su2double GetMin_Delta_Time(unsigned short val_Species); /*! * \brief Get the number of variables of the problem. @@ -283,28 +283,28 @@ class CSolver { * \param[in] val_var - Index of the variable. * \param[in] val_residual - Value of the residual to store in the position val_var. */ - void SetRes_RMS(unsigned short val_var, double val_residual); + void SetRes_RMS(unsigned short val_var, su2double val_residual); /*! * \brief Adds the maximal residual, this is useful for the convergence history. * \param[in] val_var - Index of the variable. * \param[in] val_residual - Value of the residual to store in the position val_var. */ - void AddRes_RMS(unsigned short val_var, double val_residual); + void AddRes_RMS(unsigned short val_var, su2double val_residual); /*! * \brief Get the maximal residual, this is useful for the convergence history. * \param[in] val_var - Index of the variable. * \return Value of the biggest residual for the variable in the position val_var. */ - double GetRes_RMS(unsigned short val_var); + su2double GetRes_RMS(unsigned short val_var); /*! * \brief Set the maximal residual, this is useful for the convergence history. * \param[in] val_var - Index of the variable. * \param[in] val_residual - Value of the residual to store in the position val_var. */ - void SetRes_Max(unsigned short val_var, double val_residual, unsigned long val_point); + void SetRes_Max(unsigned short val_var, su2double val_residual, unsigned long val_point); /*! * \brief Adds the maximal residual, this is useful for the convergence history. @@ -313,21 +313,21 @@ class CSolver { * \param[in] val_point - Value of the point index for the max residual. * \param[in] val_coord - Location (x, y, z) of the max residual point. */ - void AddRes_Max(unsigned short val_var, double val_residual, unsigned long val_point, double* val_coord); + void AddRes_Max(unsigned short val_var, su2double val_residual, unsigned long val_point, su2double* val_coord); /*! * \brief Get the maximal residual, this is useful for the convergence history. * \param[in] val_var - Index of the variable. * \return Value of the biggest residual for the variable in the position val_var. */ - double GetRes_Max(unsigned short val_var); + su2double GetRes_Max(unsigned short val_var); /*! * \brief Get the residual for FEM structural analysis. * \param[in] val_var - Index of the variable. * \return Value of the residual for the variable in the position val_var. */ - virtual double GetRes_FEM(unsigned short val_var); + virtual su2double GetRes_FEM(unsigned short val_var); /*! * \brief Get the maximal residual, this is useful for the convergence history. @@ -341,7 +341,7 @@ class CSolver { * \param[in] val_var - Index of the variable. * \return Pointer to the location (x, y, z) of the biggest residual for the variable val_var. */ - double* GetPoint_Max_Coord(unsigned short val_var); + su2double* GetPoint_Max_Coord(unsigned short val_var); /*! * \brief Set Value of the residual if there is a grid movement. @@ -423,7 +423,7 @@ class CSolver { * \param[in] geometry - Geometrical definition of the problem. * \param[in] PressureLaplacian - Pressure laplacian. */ - void SetPressureLaplacian(CGeometry *geometry, double *PressureLaplacian); + void SetPressureLaplacian(CGeometry *geometry, su2double *PressureLaplacian); /*! * \brief Set the old solution variables to the current solution value for Runge-Kutta iteration. @@ -1121,7 +1121,7 @@ class CSolver { * \brief A virtual member. * \param[in] StiffMatrix_Elem - Stiffness matrix of an element */ - virtual void AddStiffMatrix(double **StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3 ); + virtual void AddStiffMatrix(su2double **StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3 ); /*! * \brief A virtual member. @@ -1151,7 +1151,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \param[in] val_sensitivity - Value of the sensitivity coefficient. */ - virtual void SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, double val_sensitivity); + virtual void SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity); /*! * \brief A virtual member. @@ -1173,37 +1173,37 @@ class CSolver { * \brief A virtual member. * \param[in] val_Total_CDrag - Value of the total drag coefficient. */ - virtual void SetTotal_CDrag(double val_Total_CDrag); + virtual void SetTotal_CDrag(su2double val_Total_CDrag); /*! * \brief A virtual member. * \param[in] val_Total_CLift - Value of the total lift coefficient. */ - virtual void SetTotal_CLift(double val_Total_CLift); + virtual void SetTotal_CLift(su2double val_Total_CLift); /*! * \brief A virtual member. * \param[in] val_Total_CT - Value of the total thrust coefficient. */ - virtual void SetTotal_CT(double val_Total_CT); + virtual void SetTotal_CT(su2double val_Total_CT); /*! * \brief A virtual member. * \param[in] val_Total_CQ - Value of the total torque coefficient. */ - virtual void SetTotal_CQ(double val_Total_CQ); + virtual void SetTotal_CQ(su2double val_Total_CQ); /*! * \brief A virtual member. * \param[in] val_Total_Heat - Value of the total heat load. */ - virtual void SetTotal_HeatFlux(double val_Total_Heat); + virtual void SetTotal_HeatFlux(su2double val_Total_Heat); /*! * \brief A virtual member. * \param[in] val_Total_MaxHeat - Value of the total heat load. */ - virtual void SetTotal_MaxHeatFlux(double val_Total_MaxHeat); + virtual void SetTotal_MaxHeatFlux(su2double val_Total_MaxHeat); /*! * \brief A virtual member. @@ -1244,506 +1244,506 @@ class CSolver { * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient (inviscid contribution) on the surface val_marker. */ - virtual double GetCLift_Inv(unsigned short val_marker); + virtual su2double GetCLift_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient (viscous contribution) on the surface val_marker. */ - virtual double GetCLift_Visc(unsigned short val_marker); + virtual su2double GetCLift_Visc(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient (inviscid contribution) on the surface val_marker. */ - virtual double GetCMz_Inv(unsigned short val_marker); + virtual su2double GetCMz_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient (viscous contribution) on the surface val_marker. */ - virtual double GetCMz_Visc(unsigned short val_marker); + virtual su2double GetCMz_Visc(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient on the surface val_marker. */ - virtual double GetSurface_CLift(unsigned short val_marker); + virtual su2double GetSurface_CLift(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient on the surface val_marker. */ - virtual double GetSurface_CDrag(unsigned short val_marker); + virtual su2double GetSurface_CDrag(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side force coefficient on the surface val_marker. */ - virtual double GetSurface_CSideForce(unsigned short val_marker); + virtual su2double GetSurface_CSideForce(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side force coefficient on the surface val_marker. */ - virtual double GetSurface_CEff(unsigned short val_marker); + virtual su2double GetSurface_CEff(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x force coefficient on the surface val_marker. */ - virtual double GetSurface_CFx(unsigned short val_marker); + virtual su2double GetSurface_CFx(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y force coefficient on the surface val_marker. */ - virtual double GetSurface_CFy(unsigned short val_marker); + virtual su2double GetSurface_CFy(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z force coefficient on the surface val_marker. */ - virtual double GetSurface_CFz(unsigned short val_marker); + virtual su2double GetSurface_CFz(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x moment coefficient on the surface val_marker. */ - virtual double GetSurface_CMx(unsigned short val_marker); + virtual su2double GetSurface_CMx(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y moment coefficient on the surface val_marker. */ - virtual double GetSurface_CMy(unsigned short val_marker); + virtual su2double GetSurface_CMy(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient on the surface val_marker. */ - virtual double GetSurface_CMz(unsigned short val_marker); + virtual su2double GetSurface_CMz(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient on the surface val_marker. */ - virtual double GetSurface_CLift_Inv(unsigned short val_marker); + virtual su2double GetSurface_CLift_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient on the surface val_marker. */ - virtual double GetSurface_CDrag_Inv(unsigned short val_marker); + virtual su2double GetSurface_CDrag_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side force coefficient on the surface val_marker. */ - virtual double GetSurface_CSideForce_Inv(unsigned short val_marker); + virtual su2double GetSurface_CSideForce_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side force coefficient on the surface val_marker. */ - virtual double GetSurface_CEff_Inv(unsigned short val_marker); + virtual su2double GetSurface_CEff_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x force coefficient on the surface val_marker. */ - virtual double GetSurface_CFx_Inv(unsigned short val_marker); + virtual su2double GetSurface_CFx_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y force coefficient on the surface val_marker. */ - virtual double GetSurface_CFy_Inv(unsigned short val_marker); + virtual su2double GetSurface_CFy_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z force coefficient on the surface val_marker. */ - virtual double GetSurface_CFz_Inv(unsigned short val_marker); + virtual su2double GetSurface_CFz_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x moment coefficient on the surface val_marker. */ - virtual double GetSurface_CMx_Inv(unsigned short val_marker); + virtual su2double GetSurface_CMx_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y moment coefficient on the surface val_marker. */ - virtual double GetSurface_CMy_Inv(unsigned short val_marker); + virtual su2double GetSurface_CMy_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient on the surface val_marker. */ - virtual double GetSurface_CMz_Inv(unsigned short val_marker); + virtual su2double GetSurface_CMz_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient (viscous contribution) on the surface val_marker. */ - virtual double GetCSideForce_Visc(unsigned short val_marker); + virtual su2double GetCSideForce_Visc(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient (inviscid contribution) on the surface val_marker. */ - virtual double GetCDrag_Inv(unsigned short val_marker); + virtual su2double GetCDrag_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the mass flow rate on the surface val_marker. */ - virtual double GetInflow_MassFlow(unsigned short val_marker); + virtual su2double GetInflow_MassFlow(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the mass flow rate on the surface val_marker. */ - virtual double GetExhaust_MassFlow(unsigned short val_marker); + virtual su2double GetExhaust_MassFlow(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the fan face pressure on the surface val_marker. */ - virtual double GetInflow_Pressure(unsigned short val_marker); + virtual su2double GetInflow_Pressure(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the fan face mach on the surface val_marker. */ - virtual double GetInflow_Mach(unsigned short val_marker); + virtual su2double GetInflow_Mach(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the sideforce coefficient (inviscid contribution) on the surface val_marker. */ - virtual double GetCSideForce_Inv(unsigned short val_marker); + virtual su2double GetCSideForce_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the efficiency coefficient (inviscid contribution) on the surface val_marker. */ - virtual double GetCEff_Inv(unsigned short val_marker); + virtual su2double GetCEff_Inv(unsigned short val_marker); /*! * \brief A virtual member. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient (viscous contribution) on the surface val_marker. */ - virtual double GetCDrag_Visc(unsigned short val_marker); + virtual su2double GetCDrag_Visc(unsigned short val_marker); /*! * \brief A virtual member. * \return Value of the lift coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CLift(void); + virtual su2double GetTotal_CLift(void); /*! * \brief A virtual member. * \return Value of the sideforce coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CSideForce(void); + virtual su2double GetTotal_CSideForce(void); /*! * \brief A virtual member. * \return Value of the efficiency coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CEff(void); + virtual su2double GetTotal_CEff(void); /*! * \brief A virtual member. * \return Value of the thrust coefficient (force in the -x direction, inviscid + viscous contribution). */ - virtual double GetTotal_CT(void); + virtual su2double GetTotal_CT(void); /*! * \brief A virtual member. * \return Value of the torque coefficient (moment in the -x direction, inviscid + viscous contribution). */ - virtual double GetTotal_CQ(void); + virtual su2double GetTotal_CQ(void); /*! * \brief A virtual member. * \return Value of the heat load (integrated heat flux). */ - virtual double GetTotal_HeatFlux(void); + virtual su2double GetTotal_HeatFlux(void); /*! * \brief A virtual member. * \return Value of the heat load (integrated heat flux). */ - virtual double GetTotal_MaxHeatFlux(void); + virtual su2double GetTotal_MaxHeatFlux(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional drag coefficient. * \return Value of the drag coefficient (inviscid + viscous contribution). */ - virtual double Get_PressureDrag(void); + virtual su2double Get_PressureDrag(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional drag coefficient. * \return Value of the drag coefficient (inviscid + viscous contribution). */ - virtual double Get_ViscDrag(void); + virtual su2double Get_ViscDrag(void); /*! * \brief A virtual member. * \return Value of the rotor Figure of Merit (FM) (inviscid + viscous contribution). */ - virtual double GetTotal_CMerit(void); + virtual su2double GetTotal_CMerit(void); /*! * \brief A virtual member. * \return Value of the Equivalent Area coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CEquivArea(void); + virtual su2double GetTotal_CEquivArea(void); /*! * \brief A virtual member. * \return Value of the difference of the presure and the target pressure. */ - virtual double GetTotal_CpDiff(void); + virtual su2double GetTotal_CpDiff(void); /*! * \brief A virtual member. * \return Value of the difference of the heat and the target heat. */ - virtual double GetTotal_HeatFluxDiff(void); + virtual su2double GetTotal_HeatFluxDiff(void); /*! * \brief A virtual member. * \return Value of the Free Surface coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CFreeSurface(void); + virtual su2double GetTotal_CFreeSurface(void); /*! * \brief A virtual member. * \return Value of the FEA coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CFEA(void); + virtual su2double GetTotal_CFEA(void); /*! * \brief A virtual member. * \return Value of the Near-Field Pressure coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CNearFieldOF(void); + virtual su2double GetTotal_CNearFieldOF(void); /*! * \brief A virtual member. * \param[in] val_cequivarea - Value of the Equivalent Area coefficient. */ - virtual void SetTotal_CEquivArea(double val_cequivarea); + virtual void SetTotal_CEquivArea(su2double val_cequivarea); /*! * \brief A virtual member. * \param[in] val_pressure - Value of the difference between pressure and the target pressure. */ - virtual void SetTotal_CpDiff(double val_pressure); + virtual void SetTotal_CpDiff(su2double val_pressure); /*! * \brief A virtual member. * \param[in] val_pressure - Value of the difference between heat and the target heat. */ - virtual void SetTotal_HeatFluxDiff(double val_heat); + virtual void SetTotal_HeatFluxDiff(su2double val_heat); /*! * \brief A virtual member. * \param[in] val_cfreesurface - Value of the Free Surface coefficient. */ - virtual void SetTotal_CFreeSurface(double val_cfreesurface); + virtual void SetTotal_CFreeSurface(su2double val_cfreesurface); /*! * \brief A virtual member. * \param[in] val_cfea - Value of the FEA coefficient. */ - virtual void SetTotal_CFEA(double val_cfea); + virtual void SetTotal_CFEA(su2double val_cfea); /*! * \brief A virtual member. * \param[in] val_cnearfieldpress - Value of the Near-Field pressure coefficient. */ - virtual void SetTotal_CNearFieldOF(double val_cnearfieldpress); + virtual void SetTotal_CNearFieldOF(su2double val_cnearfieldpress); /*! * \brief A virtual member. * \return Value of the linearized lift coefficient (inviscid contribution). */ - virtual double GetTotal_CDeltaLift(void); + virtual su2double GetTotal_CDeltaLift(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CDrag(void); + virtual su2double GetTotal_CDrag(void); /*! * \brief A virtual member. * \return Value of the moment x coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CMx(void); + virtual su2double GetTotal_CMx(void); /*! * \brief A virtual member. * \return Value of the moment y coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CMy(void); + virtual su2double GetTotal_CMy(void); /*! * \brief A virtual member. * \return Value of the moment y coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CMz(void); + virtual su2double GetTotal_CMz(void); /*! * \brief A virtual member. * \return Value of the force x coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CFx(void); + virtual su2double GetTotal_CFx(void); /*! * \brief A virtual member. * \return Value of the force y coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CFy(void); + virtual su2double GetTotal_CFy(void); /*! * \brief A virtual member. * \return Value of the force y coefficient (inviscid + viscous contribution). */ - virtual double GetTotal_CFz(void); + virtual su2double GetTotal_CFz(void); /*! * \brief A virtual member. * \return Value of the wave strength. */ - virtual double GetTotal_CWave(void); + virtual su2double GetTotal_CWave(void); /*! * \brief A virtual member. * \return Value of the wave strength. */ - virtual double GetTotal_CHeat(void); + virtual su2double GetTotal_CHeat(void); /*! * \brief A virtual member. * \return Value of the linearized drag coefficient (inviscid contribution). */ - virtual double GetTotal_CDeltaDrag(void); + virtual su2double GetTotal_CDeltaDrag(void); /*! * \brief A virtual member. * \return Value of the lift coefficient (inviscid contribution). */ - virtual double GetAllBound_CLift_Inv(void); + virtual su2double GetAllBound_CLift_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CDrag_Inv(void); + virtual su2double GetAllBound_CDrag_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CSideForce_Inv(void); + virtual su2double GetAllBound_CSideForce_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CEff_Inv(void); + virtual su2double GetAllBound_CEff_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CMx_Inv(void); + virtual su2double GetAllBound_CMx_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CMy_Inv(void); + virtual su2double GetAllBound_CMy_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CMz_Inv(void); + virtual su2double GetAllBound_CMz_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CFx_Inv(void); + virtual su2double GetAllBound_CFx_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CFy_Inv(void); + virtual su2double GetAllBound_CFy_Inv(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (inviscid contribution). */ - virtual double GetAllBound_CFz_Inv(void); + virtual su2double GetAllBound_CFz_Inv(void); /*! * \brief A virtual member. * \return Value of the lift coefficient (viscous contribution). */ - virtual double GetAllBound_CLift_Visc(void); + virtual su2double GetAllBound_CLift_Visc(void); /*! * \brief A virtual member. * \return Value of the lift coefficient (viscous contribution). */ - virtual double GetAllBound_CSideForce_Visc(void); + virtual su2double GetAllBound_CSideForce_Visc(void); /*! * \brief A virtual member. * \return Value of the drag coefficient (viscous contribution). */ - virtual double GetAllBound_CDrag_Visc(void); + virtual su2double GetAllBound_CDrag_Visc(void); /*! * \brief A virtual member. @@ -1751,7 +1751,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - virtual double GetCPressure(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetCPressure(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1759,7 +1759,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - virtual double GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1767,7 +1767,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - virtual void SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, double val_pressure); + virtual void SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_pressure); /*! * \brief A virtual member. @@ -1775,7 +1775,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - virtual double *GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex); + virtual su2double *GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1783,7 +1783,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the skin friction coefficient. */ - virtual double GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1791,7 +1791,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the heat transfer coefficient. */ - virtual double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1799,7 +1799,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the heat transfer coefficient. */ - virtual double GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1807,7 +1807,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - virtual void SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, double val_heat); + virtual void SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_heat); /*! * \brief A virtual member. @@ -1815,129 +1815,129 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the y plus. */ - virtual double GetYPlus(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetYPlus(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. * \return Value of the StrainMag_Max */ - virtual double GetStrainMag_Max(void); + virtual su2double GetStrainMag_Max(void); /*! * \brief A virtual member. * \return Value of the Omega_Max */ - virtual double GetOmega_Max(void); + virtual su2double GetOmega_Max(void); /*! * \brief A virtual member. * \return Value of the StrainMag_Max */ - virtual void SetStrainMag_Max(double val_strainmag_max); + virtual void SetStrainMag_Max(su2double val_strainmag_max); /*! * \brief A virtual member. * \return Value of the Omega_Max */ - virtual void SetOmega_Max(double val_omega_max); + virtual void SetOmega_Max(su2double val_omega_max); /*! * \brief A virtual member. * \return Value of the adjoint density at the infinity. */ - virtual double GetPsiRho_Inf(void); + virtual su2double GetPsiRho_Inf(void); /*! * \brief A virtual member. * \return Value of the adjoint density at the infinity. */ - virtual double* GetPsiRhos_Inf(void); + virtual su2double* GetPsiRhos_Inf(void); /*! * \brief A virtual member. * \return Value of the adjoint energy at the infinity. */ - virtual double GetPsiE_Inf(void); + virtual su2double GetPsiE_Inf(void); /*! * \brief A virtual member. * \param[in] val_dim - Index of the adjoint velocity vector. * \return Value of the adjoint velocity vector at the infinity. */ - virtual double GetPhi_Inf(unsigned short val_dim); + virtual su2double GetPhi_Inf(unsigned short val_dim); /*! * \brief A virtual member. * \return Value of the geometrical sensitivity coefficient * (inviscid + viscous contribution). */ - virtual double GetTotal_Sens_Geo(void); + virtual su2double GetTotal_Sens_Geo(void); /*! * \brief A virtual member. * \return Value of the Mach sensitivity coefficient * (inviscid + viscous contribution). */ - virtual double GetTotal_Sens_Mach(void); + virtual su2double GetTotal_Sens_Mach(void); /*! * \brief A virtual member. * \return Value of the angle of attack sensitivity coefficient * (inviscid + viscous contribution). */ - virtual double GetTotal_Sens_AoA(void); + virtual su2double GetTotal_Sens_AoA(void); /*! * \brief Set the total farfield pressure sensitivity coefficient. * \return Value of the farfield pressure sensitivity coefficient * (inviscid + viscous contribution). */ - virtual double GetTotal_Sens_Press(void); + virtual su2double GetTotal_Sens_Press(void); /*! * \brief Set the total farfield temperature sensitivity coefficient. * \return Value of the farfield temperature sensitivity coefficient * (inviscid + viscous contribution). */ - virtual double GetTotal_Sens_Temp(void); + virtual su2double GetTotal_Sens_Temp(void); /*! * \brief A virtual member. * \return Value of the density at the infinity. */ - virtual double GetDensity_Inf(void); + virtual su2double GetDensity_Inf(void); /*! * \brief A virtual member. * \param[in] val_var - Index of the variable for the density. * \return Value of the density at the infinity. */ - virtual double GetDensity_Inf(unsigned short val_var); + virtual su2double GetDensity_Inf(unsigned short val_var); /*! * \brief A virtual member. * \return Value of the velocity at the infinity. */ - virtual double GetModVelocity_Inf(void); + virtual su2double GetModVelocity_Inf(void); /*! * \brief A virtual member. * \return Value of the density x energy at the infinity. */ - virtual double GetDensity_Energy_Inf(void); + virtual su2double GetDensity_Energy_Inf(void); /*! * \brief A virtual member. * \return Value of the pressure at the infinity. */ - virtual double GetPressure_Inf(void); + virtual su2double GetPressure_Inf(void); /*! * \brief A virtual member. * \param[in] val_dim - Index of the adjoint velocity vector. * \return Value of the density x velocity at the infinity. */ - virtual double GetDensity_Velocity_Inf(unsigned short val_dim); + virtual su2double GetDensity_Velocity_Inf(unsigned short val_dim); /*! * \brief A virtual member. @@ -1945,32 +1945,32 @@ class CSolver { * \param[in] val_var - Index of the variable for the velocity. * \return Value of the density multiply by the velocity at the infinity. */ - virtual double GetDensity_Velocity_Inf(unsigned short val_dim, unsigned short val_var); + virtual su2double GetDensity_Velocity_Inf(unsigned short val_dim, unsigned short val_var); /*! * \brief A virtual member. * \param[in] val_dim - Index of the velocity vector. * \return Value of the velocity at the infinity. */ - virtual double GetVelocity_Inf(unsigned short val_dim); + virtual su2double GetVelocity_Inf(unsigned short val_dim); /*! * \brief A virtual member. * \return Value of the velocity at the infinity. */ - virtual double *GetVelocity_Inf(void); + virtual su2double *GetVelocity_Inf(void); /*! * \brief A virtual member. * \return Value of the viscosity at the infinity. */ - virtual double GetViscosity_Inf(void); + virtual su2double GetViscosity_Inf(void); /*! * \brief A virtual member. * \return Value of the turbulent kinetic energy. */ - virtual double GetTke_Inf(void); + virtual su2double GetTke_Inf(void); /*! * \brief A virtual member. @@ -1978,7 +1978,7 @@ class CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the sensitivity coefficient. */ - virtual double GetCSensitivity(unsigned short val_marker, unsigned long val_vertex); + virtual su2double GetCSensitivity(unsigned short val_marker, unsigned long val_vertex); /*! * \brief A virtual member. @@ -1991,101 +1991,101 @@ class CSolver { * \brief A virtual member. * \return A pointer to an array containing a set of constants */ - virtual double* GetConstants(); + virtual su2double* GetConstants(); /*! * \brief A virtual member. * \return average total pressure evaluated at an exit boundary marker */ - virtual double GetOneD_TotalPress(void); + virtual su2double GetOneD_TotalPress(void); /*! * \brief A virtual member. * \param[in] val_exit_pt: value of the total average pressure at the exit. */ - virtual void SetOneD_TotalPress(double AveragePressure); + virtual void SetOneD_TotalPress(su2double AveragePressure); /*! * \brief A virtual member. *\return average Mach number evaluated at an exit boundary marker */ - virtual double GetOneD_Mach(void); + virtual su2double GetOneD_Mach(void); /*! * \brief A virtual member. * set average Mach number evaluated at an exit boundary marker */ - virtual void SetOneD_Mach(double AverageMach); + virtual void SetOneD_Mach(su2double AverageMach); /*! * \brief A virtual member. *\return average temperature evaluated at an exit boundary marker */ - virtual double GetOneD_Temp(void); + virtual su2double GetOneD_Temp(void); /*! * \brief A virtual member. * set average temperature evaluated at an exit boundary marker */ - virtual void SetOneD_Temp(double AverageTemperature); + virtual void SetOneD_Temp(su2double AverageTemperature); /*! * \brief A virtual member. * \return average temperature evaluated at an exit boundary marker */ - virtual double GetOneD_MassFlowRate(void); + virtual su2double GetOneD_MassFlowRate(void); /*! * \brief A virtual member. * set average temperature evaluated at an exit boundary marker */ - virtual void SetOneD_MassFlowRate(double MassFlowRate); + virtual void SetOneD_MassFlowRate(su2double MassFlowRate); /*! * \brief A virtual member. * \ Get the flux averaged pressure at a marker.(same as area averaged pressure) */ - virtual double GetOneD_FluxAvgPress(void); + virtual su2double GetOneD_FluxAvgPress(void); /*! * \brief A virtual member. * \ Set the flux averaged pressure at a marker. (same as area averaged pressure) */ - virtual void SetOneD_FluxAvgPress(double PressureRef); + virtual void SetOneD_FluxAvgPress(su2double PressureRef); /*! * \brief A virtual member. * \ Get the flux averaged density at a marker. (\f$ = (gamma/(gamma-1)) / ( Pref*(href-1/2 uref^2) \f$) */ - virtual double GetOneD_FluxAvgDensity(void); + virtual su2double GetOneD_FluxAvgDensity(void); /*! * \brief A virtual member. * \ Set the flux averaged density at a marker.( \f$= (gamma/(gamma-1)) / ( Pref*(href-1/2 uref^2) \f$) */ - virtual void SetOneD_FluxAvgDensity(double DensityRef); + virtual void SetOneD_FluxAvgDensity(su2double DensityRef); /*! * \brief A virtual member. * \ Get the flux averaged velocity at a marker. = \f$ \sqrt ( \frac{\int((rho*u)*u^2dA)}{\int(rho*u*dA) }) \f$ */ - virtual double GetOneD_FluxAvgVelocity(void); + virtual su2double GetOneD_FluxAvgVelocity(void); /*! * \brief A virtual member. * \ Set the flux averaged velocity at a marker. = \f$ \sqrt ( \frac{\int((rho*u)*u^2dA)}{\int(rho*u*dA) }) \f$ */ - virtual void SetOneD_FluxAvgVelocity(double VelocityRef); + virtual void SetOneD_FluxAvgVelocity(su2double VelocityRef); /*! * \brief A virtual member. * \ Get the flux averaged enthalpy at a marker. =\f$ \frac{ \int(rho*u*h dA) }{ \int(rho *u *dA )} \f$ */ - virtual double GetOneD_FluxAvgEntalpy(void); + virtual su2double GetOneD_FluxAvgEntalpy(void); /*! * \brief A virtual member. * \ Set the flux averaged enthalpy at a marker. =\f$ \frac{ \int(rho*u*h dA) }{ \int(rho *u *dA ) }\f$ */ - virtual void SetOneD_FluxAvgEntalpy(double EnthalpyRef); + virtual void SetOneD_FluxAvgEntalpy(su2double EnthalpyRef); /*! * \brief A virtual member. @@ -2234,7 +2234,7 @@ class CSolver { * \param[in] rhs - Right hand side. * \param[in] nVar - Number of variables. */ - void Gauss_Elimination(double** A, double* rhs, unsigned short nVar); + void Gauss_Elimination(su2double** A, su2double* rhs, unsigned short nVar); /*! * \brief Get the number of Species present in the flow. @@ -2282,7 +2282,7 @@ class CSolver { * \param[in] lambda - The eigenvalues of the generalized eigensystem. * \param[in] config - Definition of the particular problem. */ - void SetUpTypicalSectionWingModel(double (&PHI)[2][2], double (&lambda)[2], CConfig *config); + void SetUpTypicalSectionWingModel(su2double (&PHI)[2][2], su2double (&lambda)[2], CConfig *config); /*! * \brief Solve the typical section wing model. @@ -2293,20 +2293,20 @@ class CSolver { * \param[in] val_Marker - Surface that is being monitored. * \param[in] displacements - solution of typical section wing model. */ - void SolveTypicalSectionWingModel(CGeometry *geometry, double Cl, double Cm, CConfig *config, unsigned short val_Marker, double (&displacements)[4]); + void SolveTypicalSectionWingModel(CGeometry *geometry, su2double Cl, su2double Cm, CConfig *config, unsigned short val_Marker, su2double (&displacements)[4]); /*! * \brief A virtual member. * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. */ - virtual void SetFSI_ConvValue(unsigned short val_index, double val_criteria); + virtual void SetFSI_ConvValue(unsigned short val_index, su2double val_criteria); /*! * \brief A virtual member. * \param[in] Value of interest: 0 - Initial value, 1 - Current value. * \return Values to compare */ - virtual double GetFSI_ConvValue(unsigned short val_index); + virtual su2double GetFSI_ConvValue(unsigned short val_index); /*! * \brief A virtual member. @@ -2407,31 +2407,31 @@ class CSolver { * \brief A virtual member. * \return Value of the dynamic Aitken relaxation factor */ - virtual double GetWAitken_Dyn(void); + virtual su2double GetWAitken_Dyn(void); /*! * \brief A virtual member. * \return Value of the last Aitken relaxation factor in the previous time step. */ - virtual double GetWAitken_Dyn_tn1(void); + virtual su2double GetWAitken_Dyn_tn1(void); /*! * \brief A virtual member. * \param[in] Value of the dynamic Aitken relaxation factor */ - virtual void SetWAitken_Dyn(double waitk); + virtual void SetWAitken_Dyn(su2double waitk); /*! * \brief A virtual member. * \param[in] Value of the last Aitken relaxation factor in the previous time step. */ - virtual void SetWAitken_Dyn_tn1(double waitk_tn1); + virtual void SetWAitken_Dyn_tn1(su2double waitk_tn1); /*! * \brief A virtual member. * \param[in] Value of the load increment for nonlinear structural analysis */ - virtual void SetLoad_Increment(double val_loadIncrement); + virtual void SetLoad_Increment(su2double val_loadIncrement); }; @@ -2490,7 +2490,7 @@ class CBaselineSolver : public CSolver { class CEulerSolver : public CSolver { protected: - double + su2double Mach_Inf, /*!< \brief Mach number at the infinity. */ Density_Inf, /*!< \brief Density at the infinity. */ Energy_Inf, /*!< \brief Energy at the infinity. */ @@ -2498,7 +2498,7 @@ class CEulerSolver : public CSolver { Pressure_Inf, /*!< \brief Pressure at the infinity. */ *Velocity_Inf; /*!< \brief Flow Velocity vector at the infinity. */ - double + su2double *CDrag_Inv, /*!< \brief Drag coefficient (inviscid contribution) for each boundary. */ *CLift_Inv, /*!< \brief Lift coefficient (inviscid contribution) for each boundary. */ *CSideForce_Inv, /*!< \brief Sideforce coefficient (inviscid contribution) for each boundary. */ @@ -2553,7 +2553,7 @@ class CEulerSolver : public CSolver { Bleed_Temperature_Total, /*!< \brief Fan face mach number for each boundary. */ InverseDesign; /*!< \brief Inverse design functional for each boundary. */ - double + su2double AllBound_CDrag_Inv, /*!< \brief Total drag coefficient (inviscid contribution) for all the boundaries. */ AllBound_CLift_Inv, /*!< \brief Total lift coefficient (inviscid contribution) for all the boundaries. */ AllBound_CSideForce_Inv, /*!< \brief Total sideforce coefficient (inviscid contribution) for all the boundaries. */ @@ -2570,7 +2570,7 @@ class CEulerSolver : public CSolver { AllBound_CEquivArea_Inv, /*!< \brief equivalent area coefficient (inviscid contribution) for all the boundaries. */ AllBound_CNearFieldOF_Inv; /*!< \brief Near-Field press coefficient (inviscid contribution) for all the boundaries. */ - double + su2double OneD_TotalPress, /*!< \brief average total pressure evaluated at an exit */ OneD_Mach, /*!< \brief area average Mach evaluated at an exit */ OneD_Temp, /*!< \brief area average Temperature evaluated at an exit */ @@ -2600,7 +2600,7 @@ class CEulerSolver : public CSolver { Total_CpDiff, /*!< \brief Total Equivalent Area coefficient for all the boundaries. */ Total_HeatFluxDiff, /*!< \brief Total Equivalent Area coefficient for all the boundaries. */ Total_MassFlowRate; /*!< \brief Total Mass Flow Rate on monitored boundaries. */ - double *Surface_CLift, /*!< \brief Lift coefficient for each monitoring surface. */ + su2double *Surface_CLift, /*!< \brief Lift coefficient for each monitoring surface. */ *Surface_CDrag, /*!< \brief Drag coefficient for each monitoring surface. */ *Surface_CSideForce, /*!< \brief Side-force coefficient for each monitoring surface. */ *Surface_CEff, /*!< \brief Side-force coefficient for each monitoring surface. */ @@ -2610,35 +2610,35 @@ class CEulerSolver : public CSolver { *Surface_CMx, /*!< \brief x Moment coefficient for each monitoring surface. */ *Surface_CMy, /*!< \brief y Moment coefficient for each monitoring surface. */ *Surface_CMz; /*!< \brief z Moment coefficient for each monitoring surface. */ - double *iPoint_UndLapl, /*!< \brief Auxiliary variable for the undivided Laplacians. */ + su2double *iPoint_UndLapl, /*!< \brief Auxiliary variable for the undivided Laplacians. */ *jPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */ - double *SecondaryVar_i, /*!< \brief Auxiliary vector for storing the solution at point i. */ + su2double *SecondaryVar_i, /*!< \brief Auxiliary vector for storing the solution at point i. */ *SecondaryVar_j; /*!< \brief Auxiliary vector for storing the solution at point j. */ - double *PrimVar_i, /*!< \brief Auxiliary vector for storing the solution at point i. */ + su2double *PrimVar_i, /*!< \brief Auxiliary vector for storing the solution at point i. */ *PrimVar_j; /*!< \brief Auxiliary vector for storing the solution at point j. */ - double **LowMach_Precontioner; /*!< \brief Auxiliary vector for storing the inverse of Roe-turkel preconditioner. */ + su2double **LowMach_Precontioner; /*!< \brief Auxiliary vector for storing the inverse of Roe-turkel preconditioner. */ unsigned long nMarker; /*!< \brief Total number of markers using the grid information. */ bool space_centered, /*!< \brief True if space centered scheeme used. */ euler_implicit, /*!< \brief True if euler implicit scheme used. */ least_squares; /*!< \brief True if computing gradients by least squares. */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ - double *Primitive, /*!< \brief Auxiliary nPrimVar vector. */ + su2double *Primitive, /*!< \brief Auxiliary nPrimVar vector. */ *Primitive_i, /*!< \brief Auxiliary nPrimVar vector for storing the primitive at point i. */ *Primitive_j; /*!< \brief Auxiliary nPrimVar vector for storing the primitive at point j. */ - double *Secondary, /*!< \brief Auxiliary nPrimVar vector. */ + su2double *Secondary, /*!< \brief Auxiliary nPrimVar vector. */ *Secondary_i, /*!< \brief Auxiliary nPrimVar vector for storing the primitive at point i. */ *Secondary_j; /*!< \brief Auxiliary nPrimVar vector for storing the primitive at point j. */ - double Cauchy_Value, /*!< \brief Summed value of the convergence indicator. */ + su2double Cauchy_Value, /*!< \brief Summed value of the convergence indicator. */ Cauchy_Func; /*!< \brief Current value of the convergence indicator at one iteration. */ unsigned short Cauchy_Counter; /*!< \brief Number of elements of the Cauchy serial. */ - double *Cauchy_Serie; /*!< \brief Complete Cauchy serial. */ - double Old_Func, /*!< \brief Old value of the objective function (the function which is monitored). */ + su2double *Cauchy_Serie; /*!< \brief Complete Cauchy serial. */ + su2double Old_Func, /*!< \brief Old value of the objective function (the function which is monitored). */ New_Func; /*!< \brief Current value of the objective function (the function which is monitored). */ - double AoA_old; /*!< \brief Old value of the angle of attack (monitored). */ + su2double AoA_old; /*!< \brief Old value of the angle of attack (monitored). */ CFluidModel *FluidModel; /*!< \brief fluid model used in the solver */ @@ -2722,45 +2722,45 @@ class CEulerSolver : public CSolver { * \brief Compute the density at the infinity. * \return Value of the density at the infinity. */ - double GetDensity_Inf(void); + su2double GetDensity_Inf(void); /*! * \brief Compute 2-norm of the velocity at the infinity. * \return Value of the 2-norm of the velocity at the infinity. */ - double GetModVelocity_Inf(void); + su2double GetModVelocity_Inf(void); /*! * \brief Compute the density multiply by energy at the infinity. * \return Value of the density multiply by energy at the infinity. */ - double GetDensity_Energy_Inf(void); + su2double GetDensity_Energy_Inf(void); /*! * \brief Compute the pressure at the infinity. * \return Value of the pressure at the infinity. */ - double GetPressure_Inf(void); + su2double GetPressure_Inf(void); /*! * \brief Compute the density multiply by velocity at the infinity. * \param[in] val_dim - Index of the velocity vector. * \return Value of the density multiply by the velocity at the infinity. */ - double GetDensity_Velocity_Inf(unsigned short val_dim); + su2double GetDensity_Velocity_Inf(unsigned short val_dim); /*! * \brief Get the velocity at the infinity. * \param[in] val_dim - Index of the velocity vector. * \return Value of the velocity at the infinity. */ - double GetVelocity_Inf(unsigned short val_dim); + su2double GetVelocity_Inf(unsigned short val_dim); /*! * \brief Get the velocity at the infinity. * \return Value of the velocity at the infinity. */ - double *GetVelocity_Inf(void); + su2double *GetVelocity_Inf(void); /*! * \brief Compute the time step for solving the Euler equations. @@ -3208,437 +3208,437 @@ class CEulerSolver : public CSolver { * \param val_marker Surface where the coefficient is going to be computed. * \return Value of the lift coefficient (inviscid contribution) on the surface val_marker. */ - double GetCLift_Inv(unsigned short val_marker); + su2double GetCLift_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional z moment coefficient (inviscid contribution). * \param val_marker Surface where the coefficient is going to be computed. * \return Value of the z moment coefficient (inviscid contribution) on the surface val_marker. */ - double GetCMz_Inv(unsigned short val_marker); + su2double GetCMz_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional lift coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient on the surface val_marker. */ - double GetSurface_CLift(unsigned short val_marker); + su2double GetSurface_CLift(unsigned short val_marker); /*! * \brief Provide the non dimensional drag coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient on the surface val_marker. */ - double GetSurface_CDrag(unsigned short val_marker); + su2double GetSurface_CDrag(unsigned short val_marker); /*! * \brief Provide the non dimensional side-force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side-force coefficient on the surface val_marker. */ - double GetSurface_CSideForce(unsigned short val_marker); + su2double GetSurface_CSideForce(unsigned short val_marker); /*! * \brief Provide the non dimensional side-force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side-force coefficient on the surface val_marker. */ - double GetSurface_CEff(unsigned short val_marker); + su2double GetSurface_CEff(unsigned short val_marker); /*! * \brief Provide the non dimensional x force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x force coefficient on the surface val_marker. */ - double GetSurface_CFx(unsigned short val_marker); + su2double GetSurface_CFx(unsigned short val_marker); /*! * \brief Provide the non dimensional y force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y force coefficient on the surface val_marker. */ - double GetSurface_CFy(unsigned short val_marker); + su2double GetSurface_CFy(unsigned short val_marker); /*! * \brief Provide the non dimensional z force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z force coefficient on the surface val_marker. */ - double GetSurface_CFz(unsigned short val_marker); + su2double GetSurface_CFz(unsigned short val_marker); /*! * \brief Provide the non dimensional x moment coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x moment coefficient on the surface val_marker. */ - double GetSurface_CMx(unsigned short val_marker); + su2double GetSurface_CMx(unsigned short val_marker); /*! * \brief Provide the non dimensional y moment coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y moment coefficient on the surface val_marker. */ - double GetSurface_CMy(unsigned short val_marker); + su2double GetSurface_CMy(unsigned short val_marker); /*! * \brief Provide the non dimensional z moment coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient on the surface val_marker. */ - double GetSurface_CMz(unsigned short val_marker); + su2double GetSurface_CMz(unsigned short val_marker); /*! * \brief Provide the non dimensional lift coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient on the surface val_marker. */ - double GetSurface_CLift_Inv(unsigned short val_marker); + su2double GetSurface_CLift_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional drag coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient on the surface val_marker. */ - double GetSurface_CDrag_Inv(unsigned short val_marker); + su2double GetSurface_CDrag_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional side-force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side-force coefficient on the surface val_marker. */ - double GetSurface_CSideForce_Inv(unsigned short val_marker); + su2double GetSurface_CSideForce_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional side-force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the side-force coefficient on the surface val_marker. */ - double GetSurface_CEff_Inv(unsigned short val_marker); + su2double GetSurface_CEff_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional x force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x force coefficient on the surface val_marker. */ - double GetSurface_CFx_Inv(unsigned short val_marker); + su2double GetSurface_CFx_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional y force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y force coefficient on the surface val_marker. */ - double GetSurface_CFy_Inv(unsigned short val_marker); + su2double GetSurface_CFy_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional z force coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z force coefficient on the surface val_marker. */ - double GetSurface_CFz_Inv(unsigned short val_marker); + su2double GetSurface_CFz_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional x moment coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the x moment coefficient on the surface val_marker. */ - double GetSurface_CMx_Inv(unsigned short val_marker); + su2double GetSurface_CMx_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional y moment coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the y moment coefficient on the surface val_marker. */ - double GetSurface_CMy_Inv(unsigned short val_marker); + su2double GetSurface_CMy_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional z moment coefficient. * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient on the surface val_marker. */ - double GetSurface_CMz_Inv(unsigned short val_marker); + su2double GetSurface_CMz_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional drag coefficient (inviscid contribution). * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the drag coefficient (inviscid contribution) on the surface val_marker. */ - double GetCDrag_Inv(unsigned short val_marker); + su2double GetCDrag_Inv(unsigned short val_marker); /*! * \brief Provide the mass flow rate. * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the mass flow rate on the surface val_marker. */ - double GetInflow_MassFlow(unsigned short val_marker); + su2double GetInflow_MassFlow(unsigned short val_marker); /*! * \brief Provide the mass flow rate. * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the mass flow rate on the surface val_marker. */ - double GetExhaust_MassFlow(unsigned short val_marker); + su2double GetExhaust_MassFlow(unsigned short val_marker); /*! * \brief Provide the mass flow rate. * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the fan face pressure on the surface val_marker. */ - double GetInflow_Pressure(unsigned short val_marker); + su2double GetInflow_Pressure(unsigned short val_marker); /*! * \brief Provide the mass flow rate. * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the fan face mach on the surface val_marker. */ - double GetInflow_Mach(unsigned short val_marker); + su2double GetInflow_Mach(unsigned short val_marker); /*! * \brief Provide the non dimensional sideforce coefficient (inviscid contribution). * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the sideforce coefficient (inviscid contribution) on the surface val_marker. */ - double GetCSideForce_Inv(unsigned short val_marker); + su2double GetCSideForce_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional efficiency coefficient (inviscid contribution). * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the efficiency coefficient (inviscid contribution) on the surface val_marker. */ - double GetCEff_Inv(unsigned short val_marker); + su2double GetCEff_Inv(unsigned short val_marker); /*! * \brief Provide the total (inviscid + viscous) non dimensional sideforce coefficient. * \return Value of the sideforce coefficient (inviscid + viscous contribution). */ - double GetTotal_CSideForce(void); + su2double GetTotal_CSideForce(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional efficiency coefficient. * \return Value of the efficiency coefficient (inviscid + viscous contribution). */ - double GetTotal_CEff(void); + su2double GetTotal_CEff(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional Equivalent Area coefficient. * \return Value of the Equivalent Area coefficient (inviscid + viscous contribution). */ - double GetTotal_CEquivArea(void); + su2double GetTotal_CEquivArea(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional Equivalent Area coefficient. * \return Value of the Equivalent Area coefficient (inviscid + viscous contribution). */ - double GetTotal_CpDiff(void); + su2double GetTotal_CpDiff(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional Equivalent Area coefficient. * \return Value of the Equivalent Area coefficient (inviscid + viscous contribution). */ - double GetTotal_HeatFluxDiff(void); + su2double GetTotal_HeatFluxDiff(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional Near-Field pressure coefficient. * \return Value of the NearField pressure coefficient (inviscid + viscous contribution). */ - double GetTotal_CNearFieldOF(void); + su2double GetTotal_CNearFieldOF(void); /*! * \brief Set the value of the Equivalent Area coefficient. * \param[in] val_cequivarea - Value of the Equivalent Area coefficient. */ - void SetTotal_CEquivArea(double val_cequivarea); + void SetTotal_CEquivArea(su2double val_cequivarea); /*! * \brief Set the value of the Equivalent Area coefficient. * \param[in] val_cequivarea - Value of the Equivalent Area coefficient. */ - void SetTotal_CpDiff(double val_pressure); + void SetTotal_CpDiff(su2double val_pressure); /*! * \brief Set the value of the Equivalent Area coefficient. * \param[in] val_cequivarea - Value of the Equivalent Area coefficient. */ - void SetTotal_HeatFluxDiff(double val_heat); + void SetTotal_HeatFluxDiff(su2double val_heat); /*! * \brief Set the value of the Near-Field pressure oefficient. * \param[in] val_cnearfieldpress - Value of the Near-Field pressure coefficient. */ - void SetTotal_CNearFieldOF(double val_cnearfieldpress); + void SetTotal_CNearFieldOF(su2double val_cnearfieldpress); /*! * \brief Store the total (inviscid + viscous) non dimensional lift coefficient. * \param[in] val_Total_CLift - Value of the total lift coefficient. */ - void SetTotal_CLift(double val_Total_CLift); + void SetTotal_CLift(su2double val_Total_CLift); /*! * \brief Provide the total (inviscid + viscous) non dimensional lift coefficient. * \return Value of the lift coefficient (inviscid + viscous contribution). */ - double GetTotal_CLift(void); + su2double GetTotal_CLift(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional drag coefficient. * \return Value of the drag coefficient (inviscid + viscous contribution). */ - double GetTotal_CDrag(void); + su2double GetTotal_CDrag(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional x moment coefficient. * \return Value of the moment x coefficient (inviscid + viscous contribution). */ - double GetTotal_CMx(void); + su2double GetTotal_CMx(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional y moment coefficient. * \return Value of the moment y coefficient (inviscid + viscous contribution). */ - double GetTotal_CMy(void); + su2double GetTotal_CMy(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional z moment coefficient. * \return Value of the moment z coefficient (inviscid + viscous contribution). */ - double GetTotal_CMz(void); + su2double GetTotal_CMz(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional x force coefficient. * \return Value of the force x coefficient (inviscid + viscous contribution). */ - double GetTotal_CFx(void); + su2double GetTotal_CFx(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional y force coefficient. * \return Value of the force y coefficient (inviscid + viscous contribution). */ - double GetTotal_CFy(void); + su2double GetTotal_CFy(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional z force coefficient. * \return Value of the force z coefficient (inviscid + viscous contribution). */ - double GetTotal_CFz(void); + su2double GetTotal_CFz(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional thrust coefficient. * \return Value of the rotor efficiency coefficient (inviscid + viscous contribution). */ - double GetTotal_CT(void); + su2double GetTotal_CT(void); /*! * \brief Store the total (inviscid + viscous) non dimensional thrust coefficient. * \param[in] val_Total_CT - Value of the total thrust coefficient. */ - void SetTotal_CT(double val_Total_CT); + void SetTotal_CT(su2double val_Total_CT); /*! * \brief Provide the total (inviscid + viscous) non dimensional torque coefficient. * \return Value of the rotor efficiency coefficient (inviscid + viscous contribution). */ - double GetTotal_CQ(void); + su2double GetTotal_CQ(void); /*! * \brief Provide the total heat load. * \return Value of the heat load (viscous contribution). */ - double GetTotal_HeatFlux(void); + su2double GetTotal_HeatFlux(void); /*! * \brief Provide the total heat load. * \return Value of the heat load (viscous contribution). */ - double GetTotal_MaxHeatFlux(void); + su2double GetTotal_MaxHeatFlux(void); /*! * \brief Store the total (inviscid + viscous) non dimensional torque coefficient. * \param[in] val_Total_CQ - Value of the total torque coefficient. */ - void SetTotal_CQ(double val_Total_CQ); + void SetTotal_CQ(su2double val_Total_CQ); /*! * \brief Store the total heat load. * \param[in] val_Total_Heat - Value of the heat load. */ - void SetTotal_HeatFlux(double val_Total_Heat); + void SetTotal_HeatFlux(su2double val_Total_Heat); /*! * \brief Store the total heat load. * \param[in] val_Total_Heat - Value of the heat load. */ - void SetTotal_MaxHeatFlux(double val_Total_MaxHeat); + void SetTotal_MaxHeatFlux(su2double val_Total_MaxHeat); /*! * \brief Provide the total (inviscid + viscous) non dimensional rotor Figure of Merit. * \return Value of the rotor efficiency coefficient (inviscid + viscous contribution). */ - double GetTotal_CMerit(void); + su2double GetTotal_CMerit(void); /*! * \brief Store the total (inviscid + viscous) non dimensional drag coefficient. * \param[in] val_Total_CDrag - Value of the total drag coefficient. */ - void SetTotal_CDrag(double val_Total_CDrag); + void SetTotal_CDrag(su2double val_Total_CDrag); /*! * \brief Get the inviscid contribution to the lift coefficient. * \return Value of the lift coefficient (inviscid contribution). */ - double GetAllBound_CLift_Inv(void); + su2double GetAllBound_CLift_Inv(void); /*! * \brief Get the inviscid contribution to the drag coefficient. * \return Value of the drag coefficient (inviscid contribution). */ - double GetAllBound_CDrag_Inv(void); + su2double GetAllBound_CDrag_Inv(void); /*! * \brief Get the inviscid contribution to the sideforce coefficient. * \return Value of the sideforce coefficient (inviscid contribution). */ - double GetAllBound_CSideForce_Inv(void); + su2double GetAllBound_CSideForce_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CEff_Inv(void); + su2double GetAllBound_CEff_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CMx_Inv(void); + su2double GetAllBound_CMx_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CMy_Inv(void); + su2double GetAllBound_CMy_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CMz_Inv(void); + su2double GetAllBound_CMz_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CFx_Inv(void); + su2double GetAllBound_CFx_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CFy_Inv(void); + su2double GetAllBound_CFy_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CFz_Inv(void); + su2double GetAllBound_CFz_Inv(void); /*! * \brief Provide the Pressure coefficient. @@ -3646,7 +3646,7 @@ class CEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - double GetCPressure(unsigned short val_marker, unsigned long val_vertex); + su2double GetCPressure(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Provide the Target Pressure coefficient. @@ -3654,7 +3654,7 @@ class CEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - double GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex); + su2double GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Set the value of the target Pressure coefficient. @@ -3662,7 +3662,7 @@ class CEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - void SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, double val_pressure); + void SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_pressure); /*! * \brief Value of the characteristic variables at the boundaries. @@ -3670,100 +3670,100 @@ class CEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - double *GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex); + su2double *GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Provide the total (inviscid + viscous) non dimensional Free Surface coefficient. * \return Value of the Free Surface coefficient (inviscid + viscous contribution). */ - double GetTotal_CFreeSurface(void); + su2double GetTotal_CFreeSurface(void); /*! * \brief Set the value of the Free Surface coefficient. * \param[in] val_cfreesurface - Value of the Free Surface coefficient. */ - void SetTotal_CFreeSurface(double val_cfreesurface); + void SetTotal_CFreeSurface(su2double val_cfreesurface); /*! * \brief Provide the averaged total pressure at a marker. */ - double GetOneD_TotalPress(void); + su2double GetOneD_TotalPress(void); /*! * \brief Set the value of averaged total pressure * \param[in] val_exit_pt - value of the averaged pressure */ - void SetOneD_TotalPress(double AveragePressure); + void SetOneD_TotalPress(su2double AveragePressure); /*! * \brief Provide the averaged Mach number at a marker. */ - double GetOneD_Mach(void); + su2double GetOneD_Mach(void); /*! * \brief Set the averaged Mach number at a marker. */ - void SetOneD_Mach(double AverageMach); + void SetOneD_Mach(su2double AverageMach); /*! * \brief Provide the averaged Mach number at a marker. */ - double GetOneD_Temp(void); + su2double GetOneD_Temp(void); /*! * \brief Set the averaged Temperature at a marker. */ - void SetOneD_Temp(double AverageTemperature); + void SetOneD_Temp(su2double AverageTemperature); /*! * \brief Provide the averaged Mach number at a marker. */ - double GetOneD_MassFlowRate(void); + su2double GetOneD_MassFlowRate(void); /*! * \brief Set the averaged Temperature at a marker. */ - void SetOneD_MassFlowRate(double MassFlowRate); + void SetOneD_MassFlowRate(su2double MassFlowRate); /*! * \brief Get the flux averaged pressure at a marker.(same as area averaged pressure) */ - double GetOneD_FluxAvgPress(void); + su2double GetOneD_FluxAvgPress(void); /*! * \brief Set the flux averaged pressure at a marker. (same as area averaged pressure) */ - void SetOneD_FluxAvgPress(double PressureRef); + void SetOneD_FluxAvgPress(su2double PressureRef); /*! * \brief Get the flux averaged density at a marker. ( = (gamma/(gamma-1)) / ( Pref*(href-1/2 uref^2) ) */ - double GetOneD_FluxAvgDensity(void); + su2double GetOneD_FluxAvgDensity(void); /*! * \brief Set the flux averaged density at a marker.( = (gamma/(gamma-1)) / ( Pref*(href-1/2 uref^2) ) */ - void SetOneD_FluxAvgDensity(double DensityRef); + void SetOneD_FluxAvgDensity(su2double DensityRef); /*! * \brief Get the flux averaged velocity at a marker. = \f$ \sqrt ( \int((rho*u)*u^2dA)/\int(rho*u*dA) )\f$ */ - double GetOneD_FluxAvgVelocity(void); + su2double GetOneD_FluxAvgVelocity(void); /*! * \brief Set the flux averaged velocity at a marker. =\f$ sqrt ( \int((rho*u)*u^2dA)/\int(rho*u*dA) ) \f$ */ - void SetOneD_FluxAvgVelocity(double VelocityRef); + void SetOneD_FluxAvgVelocity(su2double VelocityRef); /*! * \brief Get the flux averaged enthalpy at a marker. = \f$ \int(rho*u*h dA) / \int(rho *u *dA ) \f$ */ - double GetOneD_FluxAvgEntalpy(void); + su2double GetOneD_FluxAvgEntalpy(void); /*! * \brief Set the flux averaged enthalpy at a marker. =\f$ \int(rho*u*h dA) / \int(rho *u *dA ) \f$ */ - void SetOneD_FluxAvgEntalpy(double EnthalpyRef); + void SetOneD_FluxAvgEntalpy(su2double EnthalpyRef); /*! * \brief Set the total residual adding the term that comes from the Dual Time Strategy. @@ -3833,11 +3833,11 @@ class CEulerSolver : public CSolver { */ class CNSSolver : public CEulerSolver { private: - double Viscosity_Inf; /*!< \brief Viscosity at the infinity. */ - double Tke_Inf; /*!< \brief Turbulent kinetic energy at the infinity. */ - double Prandtl_Lam, /*!< \brief Laminar Prandtl number. */ + su2double Viscosity_Inf; /*!< \brief Viscosity at the infinity. */ + su2double Tke_Inf; /*!< \brief Turbulent kinetic energy at the infinity. */ + su2double Prandtl_Lam, /*!< \brief Laminar Prandtl number. */ Prandtl_Turb; /*!< \brief Turbulent Prandtl number. */ - double *CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for each boundary. */ + su2double *CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for each boundary. */ *CLift_Visc, /*!< \brief Lift coefficient (viscous contribution) for each boundary. */ *CSideForce_Visc, /*!< \brief Side force coefficient (viscous contribution) for each boundary. */ *CMx_Visc, /*!< \brief Moment x coefficient (viscous contribution) for each boundary. */ @@ -3863,9 +3863,9 @@ class CNSSolver : public CEulerSolver { *Heat_Visc, /*!< \brief Heat load (viscous contribution) for each boundary. */ *MaxHeatFlux_Visc, /*!< \brief Maximum heat flux (viscous contribution) for each boundary. */ **CSkinFriction; /*!< \brief Skin friction coefficient for each boundary and vertex. */ - double *ForceViscous, /*!< \brief Viscous force for each boundary. */ + su2double *ForceViscous, /*!< \brief Viscous force for each boundary. */ *MomentViscous; /*!< \brief Inviscid moment for each boundary. */ - double AllBound_CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for all the boundaries. */ + su2double AllBound_CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for all the boundaries. */ AllBound_CLift_Visc, /*!< \brief Lift coefficient (viscous contribution) for all the boundaries. */ AllBound_CSideForce_Visc, /*!< \brief Sideforce coefficient (viscous contribution) for all the boundaries. */ AllBound_CMx_Visc, /*!< \brief Moment x coefficient (inviscid contribution) for all the boundaries. */ @@ -3880,7 +3880,7 @@ class CNSSolver : public CEulerSolver { AllBound_CQ_Visc, /*!< \brief Torque coefficient (viscous contribution) for all the boundaries. */ AllBound_HeatFlux_Visc, /*!< \brief Heat load (viscous contribution) for all the boundaries. */ AllBound_MaxHeatFlux_Visc; /*!< \brief Maximum heat flux (viscous contribution) for all boundaries. */ - double StrainMag_Max, Omega_Max; /*!< \brief Maximum Strain Rate magnitude and Omega. */ + su2double StrainMag_Max, Omega_Max; /*!< \brief Maximum Strain Rate magnitude and Omega. */ public: @@ -3905,13 +3905,13 @@ class CNSSolver : public CEulerSolver { * \brief Compute the viscosity at the infinity. * \return Value of the viscosity at the infinity. */ - double GetViscosity_Inf(void); + su2double GetViscosity_Inf(void); /*! * \brief Get the turbulent kinetic energy at the infinity. * \return Value of the turbulent kinetic energy at the infinity. */ - double GetTke_Inf(void); + su2double GetTke_Inf(void); /*! * \brief Compute the time step for solving the Navier-Stokes equations with turbulence model. @@ -3969,46 +3969,46 @@ class CNSSolver : public CEulerSolver { * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient (viscous contribution) on the surface val_marker. */ - double GetCLift_Visc(unsigned short val_marker); + su2double GetCLift_Visc(unsigned short val_marker); /*! * \brief Get the non dimensional z moment coefficient (viscous contribution). * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the z moment coefficient (viscous contribution) on the surface val_marker. */ - double GetCMz_Visc(unsigned short val_marker); + su2double GetCMz_Visc(unsigned short val_marker); /*! * \brief Get the non dimensional sideforce coefficient (viscous contribution). * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the sideforce coefficient (viscous contribution) on the surface val_marker. */ - double GetCSideForce_Visc(unsigned short val_marker); + su2double GetCSideForce_Visc(unsigned short val_marker); /*! * \brief Get the non dimensional drag coefficient (viscous contribution). * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient (viscous contribution) on the surface val_marker. */ - double GetCDrag_Visc(unsigned short val_marker); + su2double GetCDrag_Visc(unsigned short val_marker); /*! * \brief Get the total non dimensional lift coefficient (viscous contribution). * \return Value of the lift coefficient (viscous contribution). */ - double GetAllBound_CLift_Visc(void); + su2double GetAllBound_CLift_Visc(void); /*! * \brief Get the total non dimensional sideforce coefficient (viscous contribution). * \return Value of the lift coefficient (viscous contribution). */ - double GetAllBound_CSideForce_Visc(void); + su2double GetAllBound_CSideForce_Visc(void); /*! * \brief Get the total non dimensional drag coefficient (viscous contribution). * \return Value of the drag coefficient (viscous contribution). */ - double GetAllBound_CDrag_Visc(void); + su2double GetAllBound_CDrag_Visc(void); /*! * \brief Compute the viscous residuals. @@ -4028,7 +4028,7 @@ class CNSSolver : public CEulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the skin friction coefficient. */ - double GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex); + su2double GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Get the skin friction coefficient. @@ -4036,7 +4036,7 @@ class CNSSolver : public CEulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the heat transfer coefficient. */ - double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex); + su2double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Get the skin friction coefficient. @@ -4044,7 +4044,7 @@ class CNSSolver : public CEulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the heat transfer coefficient. */ - double GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex); + su2double GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Set the value of the target Pressure coefficient. @@ -4052,7 +4052,7 @@ class CNSSolver : public CEulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - void SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, double val_heat); + void SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_heat); /*! * \brief Get the y plus. @@ -4060,31 +4060,31 @@ class CNSSolver : public CEulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the y plus. */ - double GetYPlus(unsigned short val_marker, unsigned long val_vertex); + su2double GetYPlus(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Get the max Omega. * \return Value of the max Omega. */ - double GetOmega_Max(void); + su2double GetOmega_Max(void); /*! * \brief Get the max Strain rate magnitude. * \return Value of the max Strain rate magnitude. */ - double GetStrainMag_Max(void); + su2double GetStrainMag_Max(void); /*! * \brief A virtual member. * \return Value of the StrainMag_Max */ - void SetStrainMag_Max(double val_strainmag_max); + void SetStrainMag_Max(su2double val_strainmag_max); /*! * \brief A virtual member. * \return Value of the Omega_Max */ - void SetOmega_Max(double val_omega_max); + void SetOmega_Max(su2double val_omega_max); }; @@ -4097,12 +4097,12 @@ class CNSSolver : public CEulerSolver { */ class CTurbSolver : public CSolver { protected: - double *FlowPrimVar_i, /*!< \brief Store the flow solution at point i. */ + su2double *FlowPrimVar_i, /*!< \brief Store the flow solution at point i. */ *FlowPrimVar_j, /*!< \brief Store the flow solution at point j. */ *lowerlimit, /*!< \brief contains lower limits for turbulence variables. */ *upperlimit; /*!< \brief contains upper limits for turbulence variables. */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ public: @@ -4227,7 +4227,7 @@ class CTurbSolver : public CSolver { class CTurbSASolver: public CTurbSolver { private: - double nu_tilde_Inf, nu_tilde_Engine; + su2double nu_tilde_Inf, nu_tilde_Engine; public: /*! @@ -4430,7 +4430,7 @@ class CTurbSASolver: public CTurbSolver { class CTurbMLSolver: public CTurbSolver { private: - double nu_tilde_Inf; + su2double nu_tilde_Inf; public: /*! @@ -4562,7 +4562,7 @@ class CTurbMLSolver: public CTurbSolver { */ void LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter); - double SAProduction, SADestruction, SACrossProduction, SASource, MLProduction, MLDestruction, MLCrossProduction, MLSource, SourceDiff; + su2double SAProduction, SADestruction, SACrossProduction, SASource, MLProduction, MLDestruction, MLCrossProduction, MLSource, SourceDiff; }; @@ -4576,7 +4576,7 @@ class CTurbMLSolver: public CTurbSolver { class CTransLMSolver: public CTurbSolver { private: - double Intermittency_Inf, REth_Inf; + su2double Intermittency_Inf, REth_Inf; public: /*! * \brief Constructor of the class. @@ -4599,7 +4599,7 @@ class CTransLMSolver: public CTurbSolver { * \brief Correlation function to relate turbulence intensity to transition onset reynolds number * \param[in] tu - turbulence intensity */ - double REthCorrelation(double tu); + su2double REthCorrelation(su2double tu); /*! * \brief Restart residual and compute gradients. @@ -4737,13 +4737,13 @@ class CTransLMSolver: public CTurbSolver { // Another set of matrix structures for the Lm equations CSysMatrix JacobianItmc; /*!< \brief Complete sparse Jacobian structure for implicit computations. */ - double *LinSysSolItmc; /*!< \brief vector to store iterative solution of implicit linear system. */ - double *LinSysResItmc; /*!< \brief vector to store iterative residual of implicit linear system. */ - double *rhsItmc; /*!< \brief right hand side of implicit linear system. */ + su2double *LinSysSolItmc; /*!< \brief vector to store iterative solution of implicit linear system. */ + su2double *LinSysResItmc; /*!< \brief vector to store iterative residual of implicit linear system. */ + su2double *rhsItmc; /*!< \brief right hand side of implicit linear system. */ CSysMatrix JacobianReth; /*!< \brief Complete sparse Jacobian structure for implicit computations. */ - double *LinSysSolReth; /*!< \brief vector to store iterative solution of implicit linear system. */ - double *LinSysResReth; /*!< \brief vector to store iterative residual of implicit linear system. */ - double *rhsReth; /*!< \brief right hand side of implicit linear system. */ + su2double *LinSysSolReth; /*!< \brief vector to store iterative solution of implicit linear system. */ + su2double *LinSysResReth; /*!< \brief vector to store iterative residual of implicit linear system. */ + su2double *rhsReth; /*!< \brief right hand side of implicit linear system. */ }; /*! @@ -4756,7 +4756,7 @@ class CTransLMSolver: public CTurbSolver { class CTurbSSTSolver: public CTurbSolver { private: - double *constants, /*!< \brief Constants for the model. */ + su2double *constants, /*!< \brief Constants for the model. */ kine_Inf, /*!< \brief Free-stream turbulent kinetic energy. */ omega_Inf; /*!< \brief Free-stream specific dissipation. */ @@ -4885,7 +4885,7 @@ class CTurbSSTSolver: public CTurbSolver { * \brief Get the constants for the SST model. * \return A pointer to an array containing a set of constants */ - double* GetConstants(); + su2double* GetConstants(); }; @@ -4898,31 +4898,31 @@ class CTurbSSTSolver: public CTurbSolver { */ class CAdjEulerSolver : public CSolver { protected: - double PsiRho_Inf, /*!< \brief PsiRho variable at the infinity. */ + su2double PsiRho_Inf, /*!< \brief PsiRho variable at the infinity. */ PsiE_Inf, /*!< \brief PsiE variable at the infinity. */ *Phi_Inf; /*!< \brief Phi vector at the infinity. */ - double *Sens_Mach, /*!< \brief Mach sensitivity coefficient for each boundary. */ + su2double *Sens_Mach, /*!< \brief Mach sensitivity coefficient for each boundary. */ *Sens_AoA, /*!< \brief Angle of attack sensitivity coefficient for each boundary. */ *Sens_Geo, /*!< \brief Shape sensitivity coefficient for each boundary. */ *Sens_Press, /*!< \brief Pressure sensitivity coefficient for each boundary. */ *Sens_Temp, /*!< \brief Temperature sensitivity coefficient for each boundary. */ **CSensitivity; /*!< \brief Shape sensitivity coefficient for each boundary and vertex. */ - double Total_Sens_Mach; /*!< \brief Total mach sensitivity coefficient for all the boundaries. */ - double Total_Sens_AoA; /*!< \brief Total angle of attack sensitivity coefficient for all the boundaries. */ - double Total_Sens_Geo; /*!< \brief Total shape sensitivity coefficient for all the boundaries. */ - double Total_Sens_Press; /*!< \brief Total farfield sensitivity to pressure. */ - double Total_Sens_Temp; /*!< \brief Total farfield sensitivity to temperature. */ - double *iPoint_UndLapl, /*!< \brief Auxiliary variable for the undivided Laplacians. */ + su2double Total_Sens_Mach; /*!< \brief Total mach sensitivity coefficient for all the boundaries. */ + su2double Total_Sens_AoA; /*!< \brief Total angle of attack sensitivity coefficient for all the boundaries. */ + su2double Total_Sens_Geo; /*!< \brief Total shape sensitivity coefficient for all the boundaries. */ + su2double Total_Sens_Press; /*!< \brief Total farfield sensitivity to pressure. */ + su2double Total_Sens_Temp; /*!< \brief Total farfield sensitivity to temperature. */ + su2double *iPoint_UndLapl, /*!< \brief Auxiliary variable for the undivided Laplacians. */ *jPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */ bool space_centered; /*!< \brief True if space centered scheeme used. */ - double **Jacobian_Axisymmetric; /*!< \brief Storage for axisymmetric Jacobian. */ + su2double **Jacobian_Axisymmetric; /*!< \brief Storage for axisymmetric Jacobian. */ unsigned long nMarker; /*!< \brief Total number of markers using the grid information. */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ - double *FlowPrimVar_i, /*!< \brief Store the flow solution at point i. */ + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double *FlowPrimVar_i, /*!< \brief Store the flow solution at point i. */ *FlowPrimVar_j; /*!< \brief Store the flow solution at point j. */ - double pnorm; + su2double pnorm; public: @@ -5010,20 +5010,20 @@ class CAdjEulerSolver : public CSolver { * \brief Compute adjoint density at the infinity. * \return Value of the adjoint density at the infinity. */ - double GetPsiRho_Inf(void); + su2double GetPsiRho_Inf(void); /*! * \brief Compute the adjoint energy at the infinity. * \return Value of the adjoint energy at the infinity. */ - double GetPsiE_Inf(void); + su2double GetPsiE_Inf(void); /*! * \brief Compute Phi (adjoint velocity) at the infinity. * \param[in] val_dim - Index of the adjoint velocity vector. * \return Value of the adjoint velocity vector at the infinity. */ - double GetPhi_Inf(unsigned short val_dim); + su2double GetPhi_Inf(unsigned short val_dim); /*! * \brief Compute the spatial integration using a centered scheme for the adjoint equations. @@ -5298,7 +5298,7 @@ class CAdjEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the sensitivity coefficient. */ - double GetCSensitivity(unsigned short val_marker, unsigned long val_vertex); + su2double GetCSensitivity(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Set the shape sensitivity coefficient. @@ -5306,42 +5306,42 @@ class CAdjEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \param[in] val_sensitivity - Value of the sensitivity coefficient. */ - void SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, double val_sensitivity); + void SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity); /*! * \brief Provide the total shape sensitivity coefficient. * \return Value of the geometrical sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Geo(void); + su2double GetTotal_Sens_Geo(void); /*! * \brief Set the total Mach number sensitivity coefficient. * \return Value of the Mach sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Mach(void); + su2double GetTotal_Sens_Mach(void); /*! * \brief Set the total angle of attack sensitivity coefficient. * \return Value of the angle of attack sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_AoA(void); + su2double GetTotal_Sens_AoA(void); /*! * \brief Set the total farfield pressure sensitivity coefficient. * \return Value of the farfield pressure sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Press(void); + su2double GetTotal_Sens_Press(void); /*! * \brief Set the total farfield temperature sensitivity coefficient. * \return Value of the farfield temperature sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Temp(void); + su2double GetTotal_Sens_Temp(void); /*! * \brief Set the total residual adding the term that comes from the Dual Time Strategy. @@ -5483,12 +5483,12 @@ class CAdjNSSolver : public CAdjEulerSolver { */ class CAdjTurbSolver : public CSolver { private: - double PsiNu_Inf, /*!< \brief PsiNu variable at the infinity. */ + su2double PsiNu_Inf, /*!< \brief PsiNu variable at the infinity. */ *FlowSolution_i, /*!< \brief Store the flow solution at point i. */ *FlowSolution_j; /*!< \brief Store the flow solution at point j. */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ public: @@ -5629,20 +5629,20 @@ class CAdjTurbSolver : public CSolver { */ class CLinEulerSolver : public CSolver { private: - double DeltaRho_Inf, /*!< \brief Linearized density variable at the infinity. */ + su2double DeltaRho_Inf, /*!< \brief Linearized density variable at the infinity. */ DeltaE_Inf, /*!< \brief Linearized energy at the infinity. */ *DeltaVel_Inf; /*!< \brief Linearized velocity vector at the infinity. */ - double *iPoint_UndLapl, /*!< \brief Undivided Laplacians for centered scheme. */ + su2double *iPoint_UndLapl, /*!< \brief Undivided Laplacians for centered scheme. */ *jPoint_UndLapl; /*!< \brief Undivided Laplacians for centered scheme. */ - double *CDeltaDrag_Inv, /*!< \brief Linearized drag coefficient (inviscid contribution) for each boundary. */ + su2double *CDeltaDrag_Inv, /*!< \brief Linearized drag coefficient (inviscid contribution) for each boundary. */ *CDeltaLift_Inv, /*!< \brief Linearized lift coefficient (inviscid contribution) for each boundary. */ *DeltaForceInviscid; /*!< \brief Linearized inviscid force for each boundary. */ - double AllBound_CDeltaDrag_Inv, /*!< \brief Total linearized drag coefficient (inviscid contribution) for all the boundaries. */ + su2double AllBound_CDeltaDrag_Inv, /*!< \brief Total linearized drag coefficient (inviscid contribution) for all the boundaries. */ AllBound_CDeltaLift_Inv; /*!< \brief Total linearized lift coefficient (inviscid contribution) for all the boundaries. */ - double Total_CDeltaDrag, /*!< \brief Total linearized drag coefficient for all the boundaries. */ + su2double Total_CDeltaDrag, /*!< \brief Total linearized drag coefficient for all the boundaries. */ Total_CDeltaLift; /*!< \brief Total linearized lift coefficient for all the boundaries. */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ public: @@ -5737,13 +5737,13 @@ class CLinEulerSolver : public CSolver { * \brief Get the total non dimensional drag coefficient. * \return Value of the linearized drag coefficient (inviscid contribution). */ - double GetTotal_CDeltaDrag(void); + su2double GetTotal_CDeltaDrag(void); /*! * \brief Get the total non dimensional lift coefficient. * \return Value of the linearized lift coefficient (inviscid contribution). */ - double GetTotal_CDeltaLift(void); + su2double GetTotal_CDeltaLift(void); }; /*! \class CPoissonSolver @@ -5754,13 +5754,13 @@ class CLinEulerSolver : public CSolver { */ class CPoissonSolver : public CSolver { private: - double Total_CCharge; /*!< \brief Total charge coefficient for all the domain. */ - double *Source_Vector; /*!< \brief Auxiliary vector for storing element source vector. */ + su2double Total_CCharge; /*!< \brief Total charge coefficient for all the domain. */ + su2double *Source_Vector; /*!< \brief Auxiliary vector for storing element source vector. */ - double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ - double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ + su2double Gamma; /*!< \brief Fluid's Gamma constant (ratio of specific heats). */ + su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ - double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ + su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ **StiffMatrix_Node; /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ @@ -5809,7 +5809,7 @@ class CPoissonSolver : public CSolver { * \brief Integrate the Poisson equation using a Galerkin method. * \param[in] StiffMatrix_Elem - Element stiffness matrix */ - void AddStiffMatrix(double **StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3); + void AddStiffMatrix(su2double **StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3); /*! * \brief Compute the residual. @@ -5890,14 +5890,14 @@ class CPoissonSolver : public CSolver { */ class CWaveSolver : public CSolver { private: - double *CWave; /*!< \brief Wave strength for each boundary. */ - double AllBound_CWave; /*!< \brief Total wave strength for all the boundaries. */ - double Total_CWave; /*!< \brief Total wave strength for all the boundaries. */ + su2double *CWave; /*!< \brief Wave strength for each boundary. */ + su2double AllBound_CWave; /*!< \brief Total wave strength for all the boundaries. */ + su2double Total_CWave; /*!< \brief Total wave strength for all the boundaries. */ CSysMatrix StiffMatrixSpace; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ CSysMatrix StiffMatrixTime; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ - double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ + su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ **StiffMatrix_Node; /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ public: @@ -6033,7 +6033,7 @@ class CWaveSolver : public CSolver { * \brief Provide the total wave strength. * \return Value of the wave strength. */ - double GetTotal_CWave(void); + su2double GetTotal_CWave(void); }; @@ -6045,14 +6045,14 @@ class CWaveSolver : public CSolver { */ class CHeatSolver : public CSolver { private: - double *CHeat; /*!< \brief Heat strength for each boundary. */ - double AllBound_CHeat; /*!< \brief Total Heat strength for all the boundaries. */ - double Total_CHeat; /*!< \brief Total Heat strength for all the boundaries. */ + su2double *CHeat; /*!< \brief Heat strength for each boundary. */ + su2double AllBound_CHeat; /*!< \brief Total Heat strength for all the boundaries. */ + su2double Total_CHeat; /*!< \brief Total Heat strength for all the boundaries. */ CSysMatrix StiffMatrixSpace; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ CSysMatrix StiffMatrixTime; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ - double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ + su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ **StiffMatrix_Node; /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ public: @@ -6153,7 +6153,7 @@ class CHeatSolver : public CSolver { * \brief Provide the total heat strength. * \return Value of the heat strength. */ - double GetTotal_CHeat(void); + su2double GetTotal_CHeat(void); }; @@ -6166,7 +6166,7 @@ class CHeatSolver : public CSolver { class CFEASolver : public CSolver { private: - double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ + su2double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ CSysMatrix StiffMatrixSpace; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ CSysMatrix StiffMatrixTime; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ @@ -6176,7 +6176,7 @@ class CFEASolver : public CSolver { CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ - double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Stiffness Matrices. */ + su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Stiffness Matrices. */ **StiffMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ **MassMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Mass Matrices. */ **MassMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices. */ @@ -6186,12 +6186,12 @@ class CFEASolver : public CSolver { *DeadLoadVector_Elem, /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ *DeadLoadVector_Node; /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ - double a_dt[8]; /*!< \brief Integration constants. */ + su2double a_dt[8]; /*!< \brief Integration constants. */ - double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ - double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ + su2double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ + su2double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ - double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ + su2double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ @@ -6408,13 +6408,13 @@ class CFEASolver : public CSolver { * \brief Provide the total (inviscid + viscous) non dimensional FEA coefficient. * \return Value of the FEA coefficient (inviscid + viscous contribution). */ - double GetTotal_CFEA(void); + su2double GetTotal_CFEA(void); /*! * \brief Set the value of the FEA coefficient. * \param[in] val_cfea - Value of the FEA coefficient. */ - void SetTotal_CFEA(double val_cfea); + void SetTotal_CFEA(su2double val_cfea); /*! * \brief Set the displacement for the nodes in the structural mesh @@ -6473,14 +6473,14 @@ class CFEASolver : public CSolver { * \brief Get the value of the FSI convergence. * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. */ - void SetFSI_ConvValue(unsigned short val_index, double val_criteria); + void SetFSI_ConvValue(unsigned short val_index, su2double val_criteria); /*! * \brief Get the value of the FSI convergence. * \param[in] Value of interest: 0 - Initial value, 1 - Current value. * \return Values to compare */ - double GetFSI_ConvValue(unsigned short val_index); + su2double GetFSI_ConvValue(unsigned short val_index); /*! * \brief Compute the stiffness matrix of the problem. @@ -6537,25 +6537,25 @@ class CFEASolver : public CSolver { * \brief Retrieve the value of the dynamic Aitken relaxation factor. * \return Value of the dynamic Aitken relaxation factor. */ - double GetWAitken_Dyn(void); + su2double GetWAitken_Dyn(void); /*! * \brief Retrieve the value of the last Aitken relaxation factor in the previous time step. * \return Value of the last Aitken relaxation factor in the previous time step. */ - double GetWAitken_Dyn_tn1(void); + su2double GetWAitken_Dyn_tn1(void); /*! * \brief Set the value of the dynamic Aitken relaxation factor * \param[in] Value of the dynamic Aitken relaxation factor */ - void SetWAitken_Dyn(double waitk); + void SetWAitken_Dyn(su2double waitk); /*! * \brief Set the value of the last Aitken relaxation factor in the current time step. * \param[in] Value of the last Aitken relaxation factor in the current time step. */ - void SetWAitken_Dyn_tn1(double waitk_tn1); + void SetWAitken_Dyn_tn1(su2double waitk_tn1); }; @@ -6569,45 +6569,45 @@ class CFEASolver : public CSolver { class CFEM_ElasticitySolver : public CSolver { private: - double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ + su2double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ /*!< We maintain the name to avoid defining a new function... */ unsigned long nElement; unsigned short nMarker; - double *GradN_X, + su2double *GradN_X, *GradN_x; - double **Jacobian_c_ij; /*!< \brief Submatrix to store the constitutive term for node ij. */ - double **Jacobian_s_ij; /*!< \brief Submatrix to store the stress contribution of node ij (diagonal). */ - double **Jacobian_k_ij; /*!< \brief Submatrix to store the pressure contribution of node ij. */ - double **MassMatrix_ij; /*!< \brief Submatrix to store the term ij of the mass matrix. */ - double *Res_Stress_i; /*!< \brief Submatrix to store the nodal stress contribution of node i. */ + su2double **Jacobian_c_ij; /*!< \brief Submatrix to store the constitutive term for node ij. */ + su2double **Jacobian_s_ij; /*!< \brief Submatrix to store the stress contribution of node ij (diagonal). */ + su2double **Jacobian_k_ij; /*!< \brief Submatrix to store the pressure contribution of node ij. */ + su2double **MassMatrix_ij; /*!< \brief Submatrix to store the term ij of the mass matrix. */ + su2double *Res_Stress_i; /*!< \brief Submatrix to store the nodal stress contribution of node i. */ - double *Res_Ext_Surf; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ - double *Res_Time_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ - double *Res_FSI_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + su2double *Res_Ext_Surf; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + su2double *Res_Time_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + su2double *Res_FSI_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ - double *solutionPredictor; /*!< \brief Auxiliary vector to store the solution predictor */ + su2double *solutionPredictor; /*!< \brief Auxiliary vector to store the solution predictor */ - double *nodeReactions; /*!< \brief Auxiliary vector to store the reactions */ + su2double *nodeReactions; /*!< \brief Auxiliary vector to store the reactions */ - double *normalVertex; /*!< \brief Auxiliary vector to store the normals to a certain vertex */ - double **stressTensor; /*!< \brief Auxiliary matrix to rebuild the stress tensor and compute reactions */ + su2double *normalVertex; /*!< \brief Auxiliary vector to store the normals to a certain vertex */ + su2double **stressTensor; /*!< \brief Auxiliary matrix to rebuild the stress tensor and compute reactions */ - double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ - double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ + su2double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ + su2double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ - double a_dt[8]; /*!< \brief Integration constants. */ + su2double a_dt[8]; /*!< \brief Integration constants. */ - double Conv_Ref[3]; /*!< \brief Reference values for convergence check: DTOL, RTOL, ETOL */ - double Conv_Check[3]; /*!< \brief Current values for convergence check: DTOL, RTOL, ETOL */ - double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ + su2double Conv_Ref[3]; /*!< \brief Reference values for convergence check: DTOL, RTOL, ETOL */ + su2double Conv_Check[3]; /*!< \brief Current values for convergence check: DTOL, RTOL, ETOL */ + su2double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ - double loadIncrement; /*!< \brief Coefficient that determines the amount of load which is applied */ + su2double loadIncrement; /*!< \brief Coefficient that determines the amount of load which is applied */ - double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ - double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ + su2double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ + su2double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix. */ CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ @@ -6843,19 +6843,19 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] val_var - Index of the variable. * \return Value of the residual for the variable in the position val_var. */ - double GetRes_FEM(unsigned short val_var); + su2double GetRes_FEM(unsigned short val_var); /*! * \brief Provide the maximum Von Mises Stress for structural analysis. * \return Value of the maximum Von Mises Stress. */ - double GetTotal_CFEA(void); + su2double GetTotal_CFEA(void); /*! * \brief Set the value of the FEA coefficient. * \param[in] val_cfea - Value of the FEA coefficient. */ - void SetTotal_CFEA(double val_cfea); + void SetTotal_CFEA(su2double val_cfea); /*! * \brief Set the the tractions in the in the FEA solver (matching mesh). @@ -6919,44 +6919,44 @@ class CFEM_ElasticitySolver : public CSolver { * \brief Get the value of the FSI convergence. * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. */ - void SetFSI_ConvValue(unsigned short val_index, double val_criteria); + void SetFSI_ConvValue(unsigned short val_index, su2double val_criteria); /*! * \brief Get the value of the FSI convergence. * \param[in] Value of interest: 0 - Initial value, 1 - Current value. * \return Values to compare */ - double GetFSI_ConvValue(unsigned short val_index); + su2double GetFSI_ConvValue(unsigned short val_index); /*! * \brief Retrieve the value of the dynamic Aitken relaxation factor. * \return Value of the dynamic Aitken relaxation factor. */ - double GetWAitken_Dyn(void); + su2double GetWAitken_Dyn(void); /*! * \brief Retrieve the value of the last Aitken relaxation factor in the previous time step. * \return Value of the last Aitken relaxation factor in the previous time step. */ - double GetWAitken_Dyn_tn1(void); + su2double GetWAitken_Dyn_tn1(void); /*! * \brief Set the value of the dynamic Aitken relaxation factor * \param[in] Value of the dynamic Aitken relaxation factor */ - void SetWAitken_Dyn(double waitk); + void SetWAitken_Dyn(su2double waitk); /*! * \brief Set the value of the last Aitken relaxation factor in the current time step. * \param[in] Value of the last Aitken relaxation factor in the current time step. */ - void SetWAitken_Dyn_tn1(double waitk_tn1); + void SetWAitken_Dyn_tn1(su2double waitk_tn1); /*! * \brief Set the value of the load increment for nonlinear structural analysis * \param[in] Value of the coefficient */ - void SetLoad_Increment(double val_loadIncrement); + void SetLoad_Increment(su2double val_loadIncrement); }; @@ -6970,7 +6970,7 @@ class CFEM_ElasticitySolver : public CSolver { */ class CAdjLevelSetSolver : public CSolver { protected: - double *FlowSolution_i, /*!< \brief Store the flow solution at point i. */ + su2double *FlowSolution_i, /*!< \brief Store the flow solution at point i. */ *FlowSolution_j, /*!< \brief Store the flow solution at point j. */ Total_CFreeSurface; /*!< \brief Total Free Surface coefficient for all the boundaries. */ @@ -7363,11 +7363,11 @@ class CTNE2EulerSolver : public CSolver { unsigned short nSpecies; /*!< \brief Number of species in the gas mixture. */ - double + su2double Gamma, /*!< \brief Mixture Cp/Cv. */ Gamma_Minus_One; /*!< \brief Mixture Cp/Cv - 1. */ - double + su2double Mach_Inf, /*!< \brief Free stream Mach number. */ *Density, /*!< \brief Free stream species density. */ Energy_ve_Inf, /*!< \brief Vib.-el. free stream energy. */ @@ -7377,11 +7377,11 @@ class CTNE2EulerSolver : public CSolver { Temperature_Inf, /*!< \brief Trans.-rot. free stream temperature. */ Temperature_ve_Inf; /*!< \brief Vib.-el. free stream temperature. */ - double + su2double *lowerlimit, /*!< \brief contains lower limits for conserved variables. */ *upperlimit; /*!< \brief contains upper limits for conserved variables. */ - double + su2double *CDrag_Inv, /*!< \brief Boundary invisc. Cd contribution. */ *CLift_Inv, /*!< \brief Boundary invisc. Cl contribution. */ *CSideForce_Inv, /*!< \brief Boundary invisc. sideforce contribution. */ @@ -7408,7 +7408,7 @@ class CTNE2EulerSolver : public CSolver { AllBound_CFz_Inv, /*!< \brief Sum of CFz_Inv from all boundaries. */ AllBound_CEff_Inv; /*!< \brief Sum of CEff_Inv from all boundaries. */ - double + su2double Total_CDrag, /*!< \brief Total Cd. */ Total_CLift, /*!< \brief Total Cl. */ Total_CSideForce, /*!< \brief Total CSideForce. */ @@ -7422,11 +7422,11 @@ class CTNE2EulerSolver : public CSolver { Total_Heat, /*!< \brief Total heat load. */ Total_MaxHeat; /*!< \brief Maximum heat flux on all boundaries. */ - double + su2double *PrimVar_i, /*!< \brief Vector for storing primitives at node i. */ *PrimVar_j; /*!< \brief Vector for storing primitives at node j. */ - double + su2double **LowMach_Precontioner; /*!< \brief Matrix for storing the inverse of preconditioner. */ unsigned long @@ -7541,39 +7541,39 @@ class CTNE2EulerSolver : public CSolver { * \brief Compute the density at the infinity. * \return Value of the density at the infinity. */ - double GetDensity_Inf(void); + su2double GetDensity_Inf(void); /*! * \brief Compute 2-norm of the velocity at the infinity. * \return Value of the 2-norm of the velocity at the infinity. */ - double GetModVelocity_Inf(void); + su2double GetModVelocity_Inf(void); /*! * \brief Compute the density multiply by energy at the infinity. * \return Value of the density multiply by energy at the infinity. */ - double GetDensity_Energy_Inf(void); + su2double GetDensity_Energy_Inf(void); /*! * \brief Compute the pressure at the infinity. * \return Value of the pressure at the infinity. */ - double GetPressure_Inf(void); + su2double GetPressure_Inf(void); /*! * \brief Compute the density multiply by velocity at the infinity. * \param[in] val_dim - Index of the velocity vector. * \return Value of the density multiply by the velocity at the infinity. */ - double GetDensity_Velocity_Inf(unsigned short val_dim); + su2double GetDensity_Velocity_Inf(unsigned short val_dim); /*! * \brief Get the velocity at the infinity. * \param[in] val_dim - Index of the velocity vector. * \return Value of the velocity at the infinity. */ - double GetVelocity_Inf(unsigned short val_dim); + su2double GetVelocity_Inf(unsigned short val_dim); /*! * \brief Compute the time step for solving the Euler equations. @@ -7776,184 +7776,184 @@ class CTNE2EulerSolver : public CSolver { * \param val_marker Surface where the coefficient is going to be computed. * \return Value of the lift coefficient (inviscid contribution) on the surface val_marker. */ - double GetCLift_Inv(unsigned short val_marker); + su2double GetCLift_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional drag coefficient (inviscid contribution). * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the drag coefficient (inviscid contribution) on the surface val_marker. */ - double GetCDrag_Inv(unsigned short val_marker); + su2double GetCDrag_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional sideforce coefficient (inviscid contribution). * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the sideforce coefficient (inviscid contribution) on the surface val_marker. */ - double GetCSideForce_Inv(unsigned short val_marker); + su2double GetCSideForce_Inv(unsigned short val_marker); /*! * \brief Provide the non dimensional efficiency coefficient (inviscid contribution). * \param val_marker Surface where the coeficient is going to be computed. * \return Value of the efficiency coefficient (inviscid contribution) on the surface val_marker. */ - double GetCEff_Inv(unsigned short val_marker); + su2double GetCEff_Inv(unsigned short val_marker); /*! * \brief Provide the total (inviscid + viscous) non dimensional sideforce coefficient. * \return Value of the sideforce coefficient (inviscid + viscous contribution). */ - double GetTotal_CSideForce(void); + su2double GetTotal_CSideForce(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional efficiency coefficient. * \return Value of the efficiency coefficient (inviscid + viscous contribution). */ - double GetTotal_CEff(void); + su2double GetTotal_CEff(void); /*! * \brief Store the total (inviscid + viscous) non dimensional lift coefficient. * \param[in] val_Total_CLift - Value of the total lift coefficient. */ - void SetTotal_CLift(double val_Total_CLift); + void SetTotal_CLift(su2double val_Total_CLift); /*! * \brief Provide the total (inviscid + viscous) non dimensional lift coefficient. * \return Value of the lift coefficient (inviscid + viscous contribution). */ - double GetTotal_CLift(void); + su2double GetTotal_CLift(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional drag coefficient. * \return Value of the drag coefficient (inviscid + viscous contribution). */ - double GetTotal_CDrag(void); + su2double GetTotal_CDrag(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional x moment coefficient. * \return Value of the moment x coefficient (inviscid + viscous contribution). */ - double GetTotal_CMx(void); + su2double GetTotal_CMx(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional y moment coefficient. * \return Value of the moment y coefficient (inviscid + viscous contribution). */ - double GetTotal_CMy(void); + su2double GetTotal_CMy(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional z moment coefficient. * \return Value of the moment z coefficient (inviscid + viscous contribution). */ - double GetTotal_CMz(void); + su2double GetTotal_CMz(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional x force coefficient. * \return Value of the force x coefficient (inviscid + viscous contribution). */ - double GetTotal_CFx(void); + su2double GetTotal_CFx(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional y force coefficient. * \return Value of the force y coefficient (inviscid + viscous contribution). */ - double GetTotal_CFy(void); + su2double GetTotal_CFy(void); /*! * \brief Provide the total (inviscid + viscous) non dimensional z force coefficient. * \return Value of the force z coefficient (inviscid + viscous contribution). */ - double GetTotal_CFz(void); + su2double GetTotal_CFz(void); /*! * \brief Provide the total heat load. * \return Value of the heat load (viscous contribution). */ - double GetTotal_HeatFlux(void); + su2double GetTotal_HeatFlux(void); /*! * \brief Provide the total heat load. * \return Value of the heat load (viscous contribution). */ - double GetTotal_MaxHeatFlux(void); + su2double GetTotal_MaxHeatFlux(void); /*! * \brief Store the total heat load. * \param[in] val_Total_Heat - Value of the heat load. */ - void SetTotal_HeatFlux(double val_Total_Heat); + void SetTotal_HeatFlux(su2double val_Total_Heat); /*! * \brief Store the total heat load. * \param[in] val_Total_HeatMax - Value of the heat load. */ - void SetTotal_MaxHeatFlux(double val_Total_MaxHeat); + void SetTotal_MaxHeatFlux(su2double val_Total_MaxHeat); /*! * \brief Store the total (inviscid + viscous) non dimensional drag coefficient. * \param[in] val_Total_CDrag - Value of the total drag coefficient. */ - void SetTotal_CDrag(double val_Total_CDrag); + void SetTotal_CDrag(su2double val_Total_CDrag); /*! * \brief Get the inviscid contribution to the lift coefficient. * \return Value of the lift coefficient (inviscid contribution). */ - double GetAllBound_CLift_Inv(void); + su2double GetAllBound_CLift_Inv(void); /*! * \brief Get the inviscid contribution to the drag coefficient. * \return Value of the drag coefficient (inviscid contribution). */ - double GetAllBound_CDrag_Inv(void); + su2double GetAllBound_CDrag_Inv(void); /*! * \brief Get the inviscid contribution to the sideforce coefficient. * \return Value of the sideforce coefficient (inviscid contribution). */ - double GetAllBound_CSideForce_Inv(void); + su2double GetAllBound_CSideForce_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CEff_Inv(void); + su2double GetAllBound_CEff_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CMx_Inv(void); + su2double GetAllBound_CMx_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CMy_Inv(void); + su2double GetAllBound_CMy_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CMz_Inv(void); + su2double GetAllBound_CMz_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CFx_Inv(void); + su2double GetAllBound_CFx_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CFy_Inv(void); + su2double GetAllBound_CFy_Inv(void); /*! * \brief Get the inviscid contribution to the efficiency coefficient. * \return Value of the efficiency coefficient (inviscid contribution). */ - double GetAllBound_CFz_Inv(void); + su2double GetAllBound_CFz_Inv(void); /*! * \brief Provide the Pressure coefficient. @@ -7961,7 +7961,7 @@ class CTNE2EulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - double GetCPressure(unsigned short val_marker, unsigned long val_vertex); + su2double GetCPressure(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Set the total residual adding the term that comes from the Dual Time Strategy. @@ -7990,7 +7990,7 @@ class CTNE2EulerSolver : public CSolver { * \param[in] data_container - Container holding the output variable data. * \param[in] nOutput_Vars - Number of output variables being stored. */ - void SetVolume_Output(CConfig *config, CGeometry *geometry, double **data_container, unsigned short nOutput_Vars); + void SetVolume_Output(CConfig *config, CGeometry *geometry, su2double **data_container, unsigned short nOutput_Vars); }; @@ -8003,10 +8003,10 @@ class CTNE2EulerSolver : public CSolver { */ class CTNE2NSSolver : public CTNE2EulerSolver { private: - double Viscosity_Inf; /*!< \brief Viscosity at the infinity. */ - double Prandtl_Lam, /*!< \brief Laminar Prandtl number. */ + su2double Viscosity_Inf; /*!< \brief Viscosity at the infinity. */ + su2double Prandtl_Lam, /*!< \brief Laminar Prandtl number. */ Prandtl_Turb; /*!< \brief Turbulent Prandtl number. */ - double *CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for each boundary. */ + su2double *CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for each boundary. */ *CLift_Visc, /*!< \brief Lift coefficient (viscous contribution) for each boundary. */ *CMx_Visc, /*!< \brief Moment x coefficient (viscous contribution) for each boundary. */ *CMy_Visc, /*!< \brief Moment y coefficient (viscous contribution) for each boundary. */ @@ -8019,9 +8019,9 @@ class CTNE2NSSolver : public CTNE2EulerSolver { *MaxHeatFlux_Visc, /*!< \brief Maximum heat flux (viscous contribution) for each boundary. */ **CSkinFriction; /*!< \brief Skin friction coefficient for each boundary and vertex. */ - double *ForceViscous, /*!< \brief Viscous force for each boundary. */ + su2double *ForceViscous, /*!< \brief Viscous force for each boundary. */ *MomentViscous; /*!< \brief Inviscid moment for each boundary. */ - double AllBound_CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for all the boundaries. */ + su2double AllBound_CDrag_Visc, /*!< \brief Drag coefficient (viscous contribution) for all the boundaries. */ AllBound_CLift_Visc, /*!< \brief Lift coefficient (viscous contribution) for all the boundaries. */ AllBound_CMx_Visc, /*!< \brief Moment x coefficient (inviscid contribution) for all the boundaries. */ AllBound_CMy_Visc, /*!< \brief Moment y coefficient (inviscid contribution) for all the boundaries. */ @@ -8056,7 +8056,7 @@ class CTNE2NSSolver : public CTNE2EulerSolver { * \brief Compute the viscosity at the infinity. * \return Value of the viscosity at the infinity. */ - double GetViscosity_Inf(void); + su2double GetViscosity_Inf(void); /*! * \brief Compute the time step for solving the Navier-Stokes equations with turbulence model. @@ -8188,26 +8188,26 @@ class CTNE2NSSolver : public CTNE2EulerSolver { * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the lift coefficient (viscous contribution) on the surface val_marker. */ - double GetCLift_Visc(unsigned short val_marker); + su2double GetCLift_Visc(unsigned short val_marker); /*! * \brief Get the non dimensional drag coefficient (viscous contribution). * \param[in] val_marker - Surface marker where the coefficient is computed. * \return Value of the drag coefficient (viscous contribution) on the surface val_marker. */ - double GetCDrag_Visc(unsigned short val_marker); + su2double GetCDrag_Visc(unsigned short val_marker); /*! * \brief Get the total non dimensional lift coefficient (viscous contribution). * \return Value of the lift coefficient (viscous contribution). */ - double GetAllBound_CLift_Visc(void); + su2double GetAllBound_CLift_Visc(void); /*! * \brief Get the total non dimensional drag coefficient (viscous contribution). * \return Value of the drag coefficient (viscous contribution). */ - double GetAllBound_CDrag_Visc(void); + su2double GetAllBound_CDrag_Visc(void); /*! * \brief Compute the viscous residuals. @@ -8227,7 +8227,7 @@ class CTNE2NSSolver : public CTNE2EulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the skin friction coefficient. */ - double GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex); + su2double GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Get the skin friction coefficient. @@ -8235,7 +8235,7 @@ class CTNE2NSSolver : public CTNE2EulerSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the heat transfer coefficient. */ - double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex); + su2double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex); }; @@ -8252,29 +8252,29 @@ class CAdjTNE2EulerSolver : public CSolver { unsigned short nSpecies; - double + su2double *PsiRho_Inf, /*!< \brief Free-stream adjoint density. */ *Phi_Inf, /*!< \brief Phi vector at the infinity. */ PsiE_Inf, /*!< \brief PsiE variable at the infinity. */ PsiEve_Inf; - double *Sens_Mach, /*!< \brief Mach sensitivity coefficient for each boundary. */ + su2double *Sens_Mach, /*!< \brief Mach sensitivity coefficient for each boundary. */ *Sens_AoA, /*!< \brief Angle of attack sensitivity coefficient for each boundary. */ *Sens_Geo, /*!< \brief Shape sensitivity coefficient for each boundary. */ *Sens_Press, /*!< \brief Pressure sensitivity coefficient for each boundary. */ *Sens_Temp, /*!< \brief Temperature sensitivity coefficient for each boundary. */ **CSensitivity; /*!< \brief Shape sensitivity coefficient for each boundary and vertex. */ - double Total_Sens_Mach; /*!< \brief Total mach sensitivity coefficient for all the boundaries. */ - double Total_Sens_AoA; /*!< \brief Total angle of attack sensitivity coefficient for all the boundaries. */ - double Total_Sens_Geo; /*!< \brief Total shape sensitivity coefficient for all the boundaries. */ - double Total_Sens_Press; /*!< \brief Total farfield sensitivity to pressure. */ - double Total_Sens_Temp; /*!< \brief Total farfield sensitivity to temperature. */ - double *iPoint_UndLapl, /*!< \brief Auxiliary variable for the undivided Laplacians. */ + su2double Total_Sens_Mach; /*!< \brief Total mach sensitivity coefficient for all the boundaries. */ + su2double Total_Sens_AoA; /*!< \brief Total angle of attack sensitivity coefficient for all the boundaries. */ + su2double Total_Sens_Geo; /*!< \brief Total shape sensitivity coefficient for all the boundaries. */ + su2double Total_Sens_Press; /*!< \brief Total farfield sensitivity to pressure. */ + su2double Total_Sens_Temp; /*!< \brief Total farfield sensitivity to temperature. */ + su2double *iPoint_UndLapl, /*!< \brief Auxiliary variable for the undivided Laplacians. */ *jPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */ bool space_centered; /*!< \brief True if space centered scheeme used. */ unsigned long nMarker; /*!< \brief Total number of markers using the grid information. */ - double Gamma, Gamma_Minus_One; - double **Jacobian_Axisymmetric; + su2double Gamma, Gamma_Minus_One; + su2double **Jacobian_Axisymmetric; public: @@ -8336,20 +8336,20 @@ class CAdjTNE2EulerSolver : public CSolver { * \brief Compute adjoint density at the infinity. * \return Value of the adjoint density at the infinity. */ - double* GetPsiRhos_Inf(void); + su2double* GetPsiRhos_Inf(void); /*! * \brief Compute the adjoint energy at the infinity. * \return Value of the adjoint energy at the infinity. */ - double GetPsiE_Inf(void); + su2double GetPsiE_Inf(void); /*! * \brief Compute Phi (adjoint velocity) at the infinity. * \param[in] val_dim - Index of the adjoint velocity vector. * \return Value of the adjoint velocity vector at the infinity. */ - double GetPhi_Inf(unsigned short val_dim); + su2double GetPhi_Inf(unsigned short val_dim); /*! * \brief Compute the spatial integration using a centered scheme for the adjoint equations. @@ -8475,7 +8475,7 @@ class CAdjTNE2EulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the sensitivity coefficient. */ - double GetCSensitivity(unsigned short val_marker, unsigned long val_vertex); + su2double GetCSensitivity(unsigned short val_marker, unsigned long val_vertex); /*! * \brief Set the shape sensitivity coefficient. @@ -8483,42 +8483,42 @@ class CAdjTNE2EulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \param[in] val_sensitivity - Value of the sensitivity coefficient. */ - void SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, double val_sensitivity); + void SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity); /*! * \brief Provide the total shape sensitivity coefficient. * \return Value of the geometrical sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Geo(void); + su2double GetTotal_Sens_Geo(void); /*! * \brief Set the total Mach number sensitivity coefficient. * \return Value of the Mach sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Mach(void); + su2double GetTotal_Sens_Mach(void); /*! * \brief Set the total angle of attack sensitivity coefficient. * \return Value of the angle of attack sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_AoA(void); + su2double GetTotal_Sens_AoA(void); /*! * \brief Set the total farfield pressure sensitivity coefficient. * \return Value of the farfield pressure sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Press(void); + su2double GetTotal_Sens_Press(void); /*! * \brief Set the total farfield temperature sensitivity coefficient. * \return Value of the farfield temperature sensitivity coefficient * (inviscid + viscous contribution). */ - double GetTotal_Sens_Temp(void); + su2double GetTotal_Sens_Temp(void); /*! * \brief Set the initial condition for the Euler Equations. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index dce4e429a27..9a09e3a3699 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -55,7 +55,7 @@ inline void CSolver::SetNondimensionalization(CGeometry *geometry, CConfig *conf inline unsigned short CSolver::GetIterLinSolver(void) { return IterLinSolver; } -inline double CSolver::GetCSensitivity(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetCSensitivity(unsigned short val_marker, unsigned long val_vertex) { return 0; } inline void CSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem) { } @@ -86,7 +86,7 @@ inline void CSolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea inline void CSolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } -inline void CSolver::SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, double val_sensitivity) { } +inline void CSolver::SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity) { } inline void CSolver::Inviscid_Sensitivity(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } @@ -94,13 +94,13 @@ inline void CSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_co inline void CSolver::Viscous_Sensitivity(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } -inline double CSolver::GetPhi_Inf(unsigned short val_dim) { return 0; } +inline su2double CSolver::GetPhi_Inf(unsigned short val_dim) { return 0; } -inline double CSolver::GetPsiRho_Inf(void) { return 0; } +inline su2double CSolver::GetPsiRho_Inf(void) { return 0; } -inline double* CSolver::GetPsiRhos_Inf(void) { return NULL; } +inline su2double* CSolver::GetPsiRhos_Inf(void) { return NULL; } -inline double CSolver::GetPsiE_Inf(void) { return 0; } +inline su2double CSolver::GetPsiE_Inf(void) { return 0; } inline void CSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, CConfig *config) { } @@ -126,215 +126,215 @@ inline void CSolver::SetPreconditioner(CConfig *config, unsigned short iPoint) { inline void CSolver::SetDistance(CGeometry *geometry, CConfig *config) { }; -inline double CSolver::GetCLift_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCLift_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetCMz_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCMz_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetCDrag_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCDrag_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CLift(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CLift(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CDrag(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CDrag(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CSideForce(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CSideForce(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CEff(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CEff(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CFx(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CFx(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CFy(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CFy(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CFz(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CFz(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CMx(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CMx(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CMy(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CMy(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CMz(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CMz(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CLift_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CLift_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CDrag_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CDrag_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CSideForce_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CSideForce_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CEff_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CEff_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CFx_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CFx_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CFy_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CFy_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CFz_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CFz_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CMx_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CMx_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CMy_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CMy_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetSurface_CMz_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetSurface_CMz_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetInflow_MassFlow(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetInflow_MassFlow(unsigned short val_marker) { return 0; } -inline double CSolver::GetExhaust_MassFlow(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetExhaust_MassFlow(unsigned short val_marker) { return 0; } -inline double CSolver::GetInflow_Pressure(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetInflow_Pressure(unsigned short val_marker) { return 0; } -inline double CSolver::GetInflow_Mach(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetInflow_Mach(unsigned short val_marker) { return 0; } -inline double CSolver::GetCSideForce_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCSideForce_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetCEff_Inv(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCEff_Inv(unsigned short val_marker) { return 0; } -inline double CSolver::GetCLift_Visc(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCLift_Visc(unsigned short val_marker) { return 0; } -inline double CSolver::GetCMz_Visc(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCMz_Visc(unsigned short val_marker) { return 0; } -inline double CSolver::GetCSideForce_Visc(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCSideForce_Visc(unsigned short val_marker) { return 0; } -inline double CSolver::GetCDrag_Visc(unsigned short val_marker) { return 0; } +inline su2double CSolver::GetCDrag_Visc(unsigned short val_marker) { return 0; } -inline double CSolver::GetAllBound_CLift_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CLift_Inv() { return 0; } -inline double CSolver::GetAllBound_CDrag_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CDrag_Inv() { return 0; } -inline double CSolver::GetAllBound_CSideForce_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CSideForce_Inv() { return 0; } -inline double CSolver::GetAllBound_CEff_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CEff_Inv() { return 0; } -inline double CSolver::GetAllBound_CMx_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CMx_Inv() { return 0; } -inline double CSolver::GetAllBound_CMy_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CMy_Inv() { return 0; } -inline double CSolver::GetAllBound_CMz_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CMz_Inv() { return 0; } -inline double CSolver::GetAllBound_CFx_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CFx_Inv() { return 0; } -inline double CSolver::GetAllBound_CFy_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CFy_Inv() { return 0; } -inline double CSolver::GetAllBound_CFz_Inv() { return 0; } +inline su2double CSolver::GetAllBound_CFz_Inv() { return 0; } -inline double CSolver::GetAllBound_CLift_Visc() { return 0; } +inline su2double CSolver::GetAllBound_CLift_Visc() { return 0; } -inline double CSolver::GetAllBound_CSideForce_Visc() { return 0; } +inline su2double CSolver::GetAllBound_CSideForce_Visc() { return 0; } -inline double CSolver::GetAllBound_CDrag_Visc() { return 0; } +inline su2double CSolver::GetAllBound_CDrag_Visc() { return 0; } inline void CSolver::SetForceProj_Vector(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } inline void CSolver::SetIntBoundary_Jump(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } -inline double CSolver::GetTotal_CLift() { return 0; } +inline su2double CSolver::GetTotal_CLift() { return 0; } -inline double CSolver::GetTotal_CDrag() { return 0; } +inline su2double CSolver::GetTotal_CDrag() { return 0; } -inline double CSolver::GetTotal_CMx() { return 0; } +inline su2double CSolver::GetTotal_CMx() { return 0; } -inline double CSolver::GetTotal_CMy() { return 0; } +inline su2double CSolver::GetTotal_CMy() { return 0; } -inline double CSolver::GetTotal_CMz() { return 0; } +inline su2double CSolver::GetTotal_CMz() { return 0; } -inline double CSolver::GetTotal_CFx() { return 0; } +inline su2double CSolver::GetTotal_CFx() { return 0; } -inline double CSolver::GetTotal_CFy() { return 0; } +inline su2double CSolver::GetTotal_CFy() { return 0; } -inline double CSolver::GetTotal_CFz() { return 0; } +inline su2double CSolver::GetTotal_CFz() { return 0; } -inline double CSolver::GetTotal_CSideForce() { return 0; } +inline su2double CSolver::GetTotal_CSideForce() { return 0; } -inline double CSolver::GetTotal_CEff() { return 0; } +inline su2double CSolver::GetTotal_CEff() { return 0; } -inline double CSolver::GetTotal_CT() { return 0; } +inline su2double CSolver::GetTotal_CT() { return 0; } -inline void CSolver::SetTotal_CT(double val_Total_CT) { } +inline void CSolver::SetTotal_CT(su2double val_Total_CT) { } -inline double CSolver::GetTotal_CQ() { return 0; } +inline su2double CSolver::GetTotal_CQ() { return 0; } -inline double CSolver::GetTotal_HeatFlux() { return 0; } +inline su2double CSolver::GetTotal_HeatFlux() { return 0; } -inline double CSolver::GetTotal_MaxHeatFlux() { return 0; } +inline su2double CSolver::GetTotal_MaxHeatFlux() { return 0; } -inline double CSolver::Get_PressureDrag() { return 0; } +inline su2double CSolver::Get_PressureDrag() { return 0; } -inline double CSolver::Get_ViscDrag() { return 0; } +inline su2double CSolver::Get_ViscDrag() { return 0; } -inline void CSolver::SetTotal_CQ(double val_Total_CQ) { } +inline void CSolver::SetTotal_CQ(su2double val_Total_CQ) { } -inline void CSolver::SetTotal_HeatFlux(double val_Total_Heat) { } +inline void CSolver::SetTotal_HeatFlux(su2double val_Total_Heat) { } -inline void CSolver::SetTotal_MaxHeatFlux(double val_Total_Heat) { } +inline void CSolver::SetTotal_MaxHeatFlux(su2double val_Total_Heat) { } -inline double CSolver::GetTotal_CMerit() { return 0; } +inline su2double CSolver::GetTotal_CMerit() { return 0; } -inline double CSolver::GetTotal_CEquivArea() { return 0; } +inline su2double CSolver::GetTotal_CEquivArea() { return 0; } -inline double CSolver::GetTotal_CpDiff() { return 0; } +inline su2double CSolver::GetTotal_CpDiff() { return 0; } -inline double CSolver::GetTotal_HeatFluxDiff() { return 0; } +inline su2double CSolver::GetTotal_HeatFluxDiff() { return 0; } -inline double CSolver::GetTotal_CFreeSurface() { return 0; } +inline su2double CSolver::GetTotal_CFreeSurface() { return 0; } -inline double CSolver::GetTotal_CFEA() { return 0; } +inline su2double CSolver::GetTotal_CFEA() { return 0; } -inline double CSolver::GetTotal_CNearFieldOF() { return 0; } +inline su2double CSolver::GetTotal_CNearFieldOF() { return 0; } -inline void CSolver::SetTotal_CEquivArea(double val_cequivarea) { } +inline void CSolver::SetTotal_CEquivArea(su2double val_cequivarea) { } -inline void CSolver::SetTotal_CpDiff(double val_pressure) { } +inline void CSolver::SetTotal_CpDiff(su2double val_pressure) { } -inline void CSolver::SetTotal_HeatFluxDiff(double val_heat) { } +inline void CSolver::SetTotal_HeatFluxDiff(su2double val_heat) { } -inline void CSolver::SetTotal_CFEA(double val_cfea) { } +inline void CSolver::SetTotal_CFEA(su2double val_cfea) { } -inline double CSolver::GetWAitken_Dyn(void) { return 0; } +inline su2double CSolver::GetWAitken_Dyn(void) { return 0; } -inline double CSolver::GetWAitken_Dyn_tn1(void) { return 0; } +inline su2double CSolver::GetWAitken_Dyn_tn1(void) { return 0; } -inline void CSolver::SetWAitken_Dyn(double waitk) { } +inline void CSolver::SetWAitken_Dyn(su2double waitk) { } -inline void CSolver::SetWAitken_Dyn_tn1(double waitk_tn1) { } +inline void CSolver::SetWAitken_Dyn_tn1(su2double waitk_tn1) { } -inline void CSolver::SetLoad_Increment(double val_loadIncrement) { } +inline void CSolver::SetLoad_Increment(su2double val_loadIncrement) { } -inline void CSolver::SetTotal_CFreeSurface(double val_freesurface) { } +inline void CSolver::SetTotal_CFreeSurface(su2double val_freesurface) { } -inline void CSolver::SetTotal_CNearFieldOF(double val_cnearfieldpress) { } +inline void CSolver::SetTotal_CNearFieldOF(su2double val_cnearfieldpress) { } -inline double CSolver::GetTotal_CDeltaLift() { return 0; } +inline su2double CSolver::GetTotal_CDeltaLift() { return 0; } -inline double CSolver::GetTotal_CDeltaDrag() { return 0; } +inline su2double CSolver::GetTotal_CDeltaDrag() { return 0; } -inline double CSolver::GetTotal_CWave() { return 0; } +inline su2double CSolver::GetTotal_CWave() { return 0; } -inline double CSolver::GetTotal_CHeat() { return 0; } +inline su2double CSolver::GetTotal_CHeat() { return 0; } -inline void CSolver::SetTotal_CLift(double val_Total_CLift) { } +inline void CSolver::SetTotal_CLift(su2double val_Total_CLift) { } -inline void CSolver::SetTotal_CDrag(double val_Total_CDrag) { } +inline void CSolver::SetTotal_CDrag(su2double val_Total_CDrag) { } -inline double CSolver::GetCPressure(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetCPressure(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline double CSolver::GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline void CSolver::SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, double val_pressure) { } +inline void CSolver::SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_pressure) { } -inline void CSolver::SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, double val_heat) { } +inline void CSolver::SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_heat) { } -inline double *CSolver::GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double *CSolver::GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline double CSolver::GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline double CSolver::GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline double CSolver::GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline double CSolver::GetYPlus(unsigned short val_marker, unsigned long val_vertex) { return 0; } +inline su2double CSolver::GetYPlus(unsigned short val_marker, unsigned long val_vertex) { return 0; } -inline double CSolver::GetStrainMag_Max(void) { return 0; } +inline su2double CSolver::GetStrainMag_Max(void) { return 0; } -inline double CSolver::GetOmega_Max(void) { return 0; } +inline su2double CSolver::GetOmega_Max(void) { return 0; } -inline void CSolver::SetStrainMag_Max(double val_strainmag_max) { } +inline void CSolver::SetStrainMag_Max(su2double val_strainmag_max) { } -inline void CSolver::SetOmega_Max(double val_omega_max) { } +inline void CSolver::SetOmega_Max(su2double val_omega_max) { } inline void CSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_container, @@ -342,7 +342,7 @@ inline void CSolver::Viscous_Residual(CGeometry *geometry, *config, unsigned short iMesh, unsigned short iRKstep) { } -inline void CSolver::AddStiffMatrix(double ** StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3) { } +inline void CSolver::AddStiffMatrix(su2double ** StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3) { } inline void CSolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, CConfig *config, unsigned short iMesh) { } @@ -350,71 +350,71 @@ inline void CSolver::Source_Residual(CGeometry *geometry, CSolver **solver_conta inline void CSolver::Source_Template(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { } -inline double CSolver::GetTotal_Sens_Geo() { return 0; } +inline su2double CSolver::GetTotal_Sens_Geo() { return 0; } -inline double CSolver::GetTotal_Sens_Mach() { return 0; } +inline su2double CSolver::GetTotal_Sens_Mach() { return 0; } -inline double CSolver::GetTotal_Sens_AoA() { return 0; } +inline su2double CSolver::GetTotal_Sens_AoA() { return 0; } -inline double CSolver::GetTotal_Sens_Press() { return 0; } +inline su2double CSolver::GetTotal_Sens_Press() { return 0; } -inline double CSolver::GetTotal_Sens_Temp() { return 0; } +inline su2double CSolver::GetTotal_Sens_Temp() { return 0; } -inline double CSolver::GetDensity_Inf(void) { return 0; } +inline su2double CSolver::GetDensity_Inf(void) { return 0; } -inline double CSolver::GetDensity_Inf(unsigned short val_var) { return 0; } +inline su2double CSolver::GetDensity_Inf(unsigned short val_var) { return 0; } -inline double CSolver::GetModVelocity_Inf(void) { return 0; } +inline su2double CSolver::GetModVelocity_Inf(void) { return 0; } -inline double CSolver::GetDensity_Energy_Inf(void) { return 0; } +inline su2double CSolver::GetDensity_Energy_Inf(void) { return 0; } -inline double CSolver::GetDensity_Velocity_Inf(unsigned short val_dim) { return 0; } +inline su2double CSolver::GetDensity_Velocity_Inf(unsigned short val_dim) { return 0; } -inline double CSolver::GetDensity_Velocity_Inf(unsigned short val_dim, unsigned short val_var) { return 0; } +inline su2double CSolver::GetDensity_Velocity_Inf(unsigned short val_dim, unsigned short val_var) { return 0; } -inline double CSolver::GetVelocity_Inf(unsigned short val_dim) { return 0; } +inline su2double CSolver::GetVelocity_Inf(unsigned short val_dim) { return 0; } -inline double* CSolver::GetVelocity_Inf(void) { return 0; } +inline su2double* CSolver::GetVelocity_Inf(void) { return 0; } -inline double CSolver::GetPressure_Inf(void) { return 0; } +inline su2double CSolver::GetPressure_Inf(void) { return 0; } -inline double CSolver::GetViscosity_Inf(void) { return 0; } +inline su2double CSolver::GetViscosity_Inf(void) { return 0; } -inline double CSolver::GetTke_Inf(void) { return 0; } +inline su2double CSolver::GetTke_Inf(void) { return 0; } -inline double* CSolver::GetConstants() {return NULL;} +inline su2double* CSolver::GetConstants() {return NULL;} -inline double CSolver::GetOneD_TotalPress(void) {return 0;} +inline su2double CSolver::GetOneD_TotalPress(void) {return 0;} -inline void CSolver::SetOneD_TotalPress(double AveragePressure) { } +inline void CSolver::SetOneD_TotalPress(su2double AveragePressure) { } -inline double CSolver::GetOneD_Mach(void) {return 0;} +inline su2double CSolver::GetOneD_Mach(void) {return 0;} -inline void CSolver::SetOneD_Mach(double AverageMach) { } +inline void CSolver::SetOneD_Mach(su2double AverageMach) { } -inline double CSolver::GetOneD_Temp(void) {return 0;} +inline su2double CSolver::GetOneD_Temp(void) {return 0;} -inline void CSolver::SetOneD_Temp(double AverageTemperature) { } +inline void CSolver::SetOneD_Temp(su2double AverageTemperature) { } -inline double CSolver::GetOneD_MassFlowRate(void) {return 0;} +inline su2double CSolver::GetOneD_MassFlowRate(void) {return 0;} -inline void CSolver::SetOneD_MassFlowRate(double MassFlowRate) { } +inline void CSolver::SetOneD_MassFlowRate(su2double MassFlowRate) { } -inline double CSolver::GetOneD_FluxAvgPress(void) {return 0;} +inline su2double CSolver::GetOneD_FluxAvgPress(void) {return 0;} -inline void CSolver::SetOneD_FluxAvgPress(double PressureRef) { } +inline void CSolver::SetOneD_FluxAvgPress(su2double PressureRef) { } -inline double CSolver::GetOneD_FluxAvgDensity(void) {return 0;} +inline su2double CSolver::GetOneD_FluxAvgDensity(void) {return 0;} -inline void CSolver::SetOneD_FluxAvgDensity(double DensityRef) { } +inline void CSolver::SetOneD_FluxAvgDensity(su2double DensityRef) { } -inline double CSolver::GetOneD_FluxAvgVelocity(void) {return 0;} +inline su2double CSolver::GetOneD_FluxAvgVelocity(void) {return 0;} -inline void CSolver::SetOneD_FluxAvgVelocity(double VelocityRef) { } +inline void CSolver::SetOneD_FluxAvgVelocity(su2double VelocityRef) { } -inline double CSolver::GetOneD_FluxAvgEntalpy(void) {return 0;} +inline su2double CSolver::GetOneD_FluxAvgEntalpy(void) {return 0;} -inline void CSolver::SetOneD_FluxAvgEntalpy(double EnthalpyRef) { } +inline void CSolver::SetOneD_FluxAvgEntalpy(su2double EnthalpyRef) { } inline void CSolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ } @@ -574,15 +574,15 @@ inline void CSolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solve inline void CSolver::Compute_Residual(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { } -inline void CSolver::SetRes_RMS(unsigned short val_var, double val_residual) { Residual_RMS[val_var] = val_residual; } +inline void CSolver::SetRes_RMS(unsigned short val_var, su2double val_residual) { Residual_RMS[val_var] = val_residual; } -inline void CSolver::AddRes_RMS(unsigned short val_var, double val_residual) { Residual_RMS[val_var] += val_residual; } +inline void CSolver::AddRes_RMS(unsigned short val_var, su2double val_residual) { Residual_RMS[val_var] += val_residual; } -inline double CSolver::GetRes_RMS(unsigned short val_var) { return Residual_RMS[val_var]; } +inline su2double CSolver::GetRes_RMS(unsigned short val_var) { return Residual_RMS[val_var]; } -inline void CSolver::SetRes_Max(unsigned short val_var, double val_residual, unsigned long val_point) { Residual_Max[val_var] = val_residual; Point_Max[val_var] = val_point; } +inline void CSolver::SetRes_Max(unsigned short val_var, su2double val_residual, unsigned long val_point) { Residual_Max[val_var] = val_residual; Point_Max[val_var] = val_point; } -inline void CSolver::AddRes_Max(unsigned short val_var, double val_residual, unsigned long val_point, double* val_coord) { +inline void CSolver::AddRes_Max(unsigned short val_var, su2double val_residual, unsigned long val_point, su2double* val_coord) { if (val_residual > Residual_Max[val_var]) { Residual_Max[val_var] = val_residual; Point_Max[val_var] = val_point; @@ -591,13 +591,13 @@ inline void CSolver::AddRes_Max(unsigned short val_var, double val_residual, uns } } -inline double CSolver::GetRes_Max(unsigned short val_var) { return Residual_Max[val_var]; } +inline su2double CSolver::GetRes_Max(unsigned short val_var) { return Residual_Max[val_var]; } -inline double CSolver::GetRes_FEM(unsigned short val_var) { } +inline su2double CSolver::GetRes_FEM(unsigned short val_var) { } inline unsigned long CSolver::GetPoint_Max(unsigned short val_var) { return Point_Max[val_var]; } -inline double* CSolver::GetPoint_Max_Coord(unsigned short val_var) { return Point_Max_Coord[val_var]; } +inline su2double* CSolver::GetPoint_Max_Coord(unsigned short val_var) { return Point_Max_Coord[val_var]; } inline void CSolver::Set_OldSolution(CGeometry *geometry) { for (unsigned long iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) @@ -618,13 +618,13 @@ inline unsigned short CSolver::GetnSecondaryVar(void) { return nSecondaryVar; } inline unsigned short CSolver::GetnSecondaryVarGrad(void) { return nSecondaryVarGrad; } -inline double CSolver::GetMax_Delta_Time(void) { return Max_Delta_Time; } +inline su2double CSolver::GetMax_Delta_Time(void) { return Max_Delta_Time; } -inline double CSolver::GetMin_Delta_Time(void) { return Min_Delta_Time; } +inline su2double CSolver::GetMin_Delta_Time(void) { return Min_Delta_Time; } -inline double CSolver::GetMax_Delta_Time(unsigned short val_Species) { return 0.0; } +inline su2double CSolver::GetMax_Delta_Time(unsigned short val_Species) { return 0.0; } -inline double CSolver::GetMin_Delta_Time(unsigned short val_Species) { return 0.0; } +inline su2double CSolver::GetMin_Delta_Time(unsigned short val_Species) { return 0.0; } inline void CSolver::Copy_Zone_Solution(CSolver ***solver1_solution, CGeometry **solver1_geometry, CConfig *solver1_config, CSolver ***solver2_solution, CGeometry **solver2_geometry, CConfig *solver2_config) {}; @@ -653,419 +653,419 @@ inline void CSolver::Compute_IntegrationConstants(CConfig *config) { } inline void CSolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { } -inline double CEulerSolver::GetDensity_Inf(void) { return Density_Inf; } +inline su2double CEulerSolver::GetDensity_Inf(void) { return Density_Inf; } -inline double CEulerSolver::GetModVelocity_Inf(void) { - double Vel2 = 0; +inline su2double CEulerSolver::GetModVelocity_Inf(void) { + su2double Vel2 = 0; for (unsigned short iDim = 0; iDim < nDim; iDim++) Vel2 += Velocity_Inf[iDim]*Velocity_Inf[iDim]; return sqrt(Vel2); } -inline void CSolver::SetFSI_ConvValue(unsigned short val_index, double val_criteria) { }; +inline void CSolver::SetFSI_ConvValue(unsigned short val_index, su2double val_criteria) { }; -inline double CSolver::GetFSI_ConvValue(unsigned short val_index) { return 0.0; } +inline su2double CSolver::GetFSI_ConvValue(unsigned short val_index) { return 0.0; } -inline double CEulerSolver::GetDensity_Energy_Inf(void) { return Density_Inf*Energy_Inf; } +inline su2double CEulerSolver::GetDensity_Energy_Inf(void) { return Density_Inf*Energy_Inf; } -inline double CEulerSolver::GetDensity_Velocity_Inf(unsigned short val_dim) { return Density_Inf*Velocity_Inf[val_dim]; } +inline su2double CEulerSolver::GetDensity_Velocity_Inf(unsigned short val_dim) { return Density_Inf*Velocity_Inf[val_dim]; } -inline double CEulerSolver::GetVelocity_Inf(unsigned short val_dim) { return Velocity_Inf[val_dim]; } +inline su2double CEulerSolver::GetVelocity_Inf(unsigned short val_dim) { return Velocity_Inf[val_dim]; } -inline double *CEulerSolver::GetVelocity_Inf(void) { return Velocity_Inf; } +inline su2double *CEulerSolver::GetVelocity_Inf(void) { return Velocity_Inf; } -inline double CEulerSolver::GetPressure_Inf(void) { return Pressure_Inf; } +inline su2double CEulerSolver::GetPressure_Inf(void) { return Pressure_Inf; } -inline double CEulerSolver::GetCPressure(unsigned short val_marker, unsigned long val_vertex) { return CPressure[val_marker][val_vertex]; } +inline su2double CEulerSolver::GetCPressure(unsigned short val_marker, unsigned long val_vertex) { return CPressure[val_marker][val_vertex]; } -inline double CEulerSolver::GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex) { return CPressureTarget[val_marker][val_vertex]; } +inline su2double CEulerSolver::GetCPressureTarget(unsigned short val_marker, unsigned long val_vertex) { return CPressureTarget[val_marker][val_vertex]; } -inline void CEulerSolver::SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, double val_pressure) { CPressureTarget[val_marker][val_vertex] = val_pressure; } +inline void CEulerSolver::SetCPressureTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_pressure) { CPressureTarget[val_marker][val_vertex] = val_pressure; } -inline double *CEulerSolver::GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex) { return CharacPrimVar[val_marker][val_vertex]; } +inline su2double *CEulerSolver::GetCharacPrimVar(unsigned short val_marker, unsigned long val_vertex) { return CharacPrimVar[val_marker][val_vertex]; } -inline double CEulerSolver::GetCLift_Inv(unsigned short val_marker) { return CLift_Inv[val_marker]; } +inline su2double CEulerSolver::GetCLift_Inv(unsigned short val_marker) { return CLift_Inv[val_marker]; } -inline double CEulerSolver::GetCMz_Inv(unsigned short val_marker) { return CMz_Inv[val_marker]; } +inline su2double CEulerSolver::GetCMz_Inv(unsigned short val_marker) { return CMz_Inv[val_marker]; } -inline double CEulerSolver::GetCDrag_Inv(unsigned short val_marker) { return CDrag_Inv[val_marker]; } +inline su2double CEulerSolver::GetCDrag_Inv(unsigned short val_marker) { return CDrag_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CLift(unsigned short val_marker) { return Surface_CLift[val_marker]; } +inline su2double CEulerSolver::GetSurface_CLift(unsigned short val_marker) { return Surface_CLift[val_marker]; } -inline double CEulerSolver::GetSurface_CDrag(unsigned short val_marker) { return Surface_CDrag[val_marker]; } +inline su2double CEulerSolver::GetSurface_CDrag(unsigned short val_marker) { return Surface_CDrag[val_marker]; } -inline double CEulerSolver::GetSurface_CSideForce(unsigned short val_marker) { return Surface_CSideForce[val_marker]; } +inline su2double CEulerSolver::GetSurface_CSideForce(unsigned short val_marker) { return Surface_CSideForce[val_marker]; } -inline double CEulerSolver::GetSurface_CEff(unsigned short val_marker) { return Surface_CEff[val_marker]; } +inline su2double CEulerSolver::GetSurface_CEff(unsigned short val_marker) { return Surface_CEff[val_marker]; } -inline double CEulerSolver::GetSurface_CFx(unsigned short val_marker) { return Surface_CFx[val_marker]; } +inline su2double CEulerSolver::GetSurface_CFx(unsigned short val_marker) { return Surface_CFx[val_marker]; } -inline double CEulerSolver::GetSurface_CFy(unsigned short val_marker) { return Surface_CFy[val_marker]; } +inline su2double CEulerSolver::GetSurface_CFy(unsigned short val_marker) { return Surface_CFy[val_marker]; } -inline double CEulerSolver::GetSurface_CFz(unsigned short val_marker) { return Surface_CFz[val_marker]; } +inline su2double CEulerSolver::GetSurface_CFz(unsigned short val_marker) { return Surface_CFz[val_marker]; } -inline double CEulerSolver::GetSurface_CMx(unsigned short val_marker) { return Surface_CMx[val_marker]; } +inline su2double CEulerSolver::GetSurface_CMx(unsigned short val_marker) { return Surface_CMx[val_marker]; } -inline double CEulerSolver::GetSurface_CMy(unsigned short val_marker) { return Surface_CMy[val_marker]; } +inline su2double CEulerSolver::GetSurface_CMy(unsigned short val_marker) { return Surface_CMy[val_marker]; } -inline double CEulerSolver::GetSurface_CMz(unsigned short val_marker) { return Surface_CMz[val_marker]; } +inline su2double CEulerSolver::GetSurface_CMz(unsigned short val_marker) { return Surface_CMz[val_marker]; } -inline double CEulerSolver::GetSurface_CLift_Inv(unsigned short val_marker) { return Surface_CLift_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CLift_Inv(unsigned short val_marker) { return Surface_CLift_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CDrag_Inv(unsigned short val_marker) { return Surface_CDrag_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CDrag_Inv(unsigned short val_marker) { return Surface_CDrag_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CSideForce_Inv(unsigned short val_marker) { return Surface_CSideForce_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CSideForce_Inv(unsigned short val_marker) { return Surface_CSideForce_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CEff_Inv(unsigned short val_marker) { return Surface_CEff_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CEff_Inv(unsigned short val_marker) { return Surface_CEff_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CFx_Inv(unsigned short val_marker) { return Surface_CFx_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CFx_Inv(unsigned short val_marker) { return Surface_CFx_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CFy_Inv(unsigned short val_marker) { return Surface_CFy_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CFy_Inv(unsigned short val_marker) { return Surface_CFy_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CFz_Inv(unsigned short val_marker) { return Surface_CFz_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CFz_Inv(unsigned short val_marker) { return Surface_CFz_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CMx_Inv(unsigned short val_marker) { return Surface_CMx_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CMx_Inv(unsigned short val_marker) { return Surface_CMx_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CMy_Inv(unsigned short val_marker) { return Surface_CMy_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CMy_Inv(unsigned short val_marker) { return Surface_CMy_Inv[val_marker]; } -inline double CEulerSolver::GetSurface_CMz_Inv(unsigned short val_marker) { return Surface_CMz_Inv[val_marker]; } +inline su2double CEulerSolver::GetSurface_CMz_Inv(unsigned short val_marker) { return Surface_CMz_Inv[val_marker]; } -inline double CEulerSolver::GetInflow_MassFlow(unsigned short val_marker) { return Inflow_MassFlow[val_marker]; } +inline su2double CEulerSolver::GetInflow_MassFlow(unsigned short val_marker) { return Inflow_MassFlow[val_marker]; } -inline double CEulerSolver::GetExhaust_MassFlow(unsigned short val_marker) { return Exhaust_MassFlow[val_marker]; } +inline su2double CEulerSolver::GetExhaust_MassFlow(unsigned short val_marker) { return Exhaust_MassFlow[val_marker]; } -inline double CEulerSolver::GetInflow_Pressure(unsigned short val_marker) { return Inflow_Pressure[val_marker]; } +inline su2double CEulerSolver::GetInflow_Pressure(unsigned short val_marker) { return Inflow_Pressure[val_marker]; } -inline double CEulerSolver::GetInflow_Mach(unsigned short val_marker) { return Inflow_Mach[val_marker]; } +inline su2double CEulerSolver::GetInflow_Mach(unsigned short val_marker) { return Inflow_Mach[val_marker]; } -inline double CEulerSolver::GetCSideForce_Inv(unsigned short val_marker) { return CSideForce_Inv[val_marker]; } +inline su2double CEulerSolver::GetCSideForce_Inv(unsigned short val_marker) { return CSideForce_Inv[val_marker]; } -inline double CEulerSolver::GetCEff_Inv(unsigned short val_marker) { return CEff_Inv[val_marker]; } +inline su2double CEulerSolver::GetCEff_Inv(unsigned short val_marker) { return CEff_Inv[val_marker]; } -inline double CEulerSolver::GetTotal_CLift() { return Total_CLift; } +inline su2double CEulerSolver::GetTotal_CLift() { return Total_CLift; } -inline double CEulerSolver::GetTotal_CDrag() { return Total_CDrag; } +inline su2double CEulerSolver::GetTotal_CDrag() { return Total_CDrag; } -inline double CEulerSolver::GetTotal_CMx() { return Total_CMx; } +inline su2double CEulerSolver::GetTotal_CMx() { return Total_CMx; } -inline double CEulerSolver::GetTotal_CMy() { return Total_CMy; } +inline su2double CEulerSolver::GetTotal_CMy() { return Total_CMy; } -inline double CEulerSolver::GetTotal_CMz() { return Total_CMz; } +inline su2double CEulerSolver::GetTotal_CMz() { return Total_CMz; } -inline double CEulerSolver::GetTotal_CFx() { return Total_CFx; } +inline su2double CEulerSolver::GetTotal_CFx() { return Total_CFx; } -inline double CEulerSolver::GetTotal_CFy() { return Total_CFy; } +inline su2double CEulerSolver::GetTotal_CFy() { return Total_CFy; } -inline double CEulerSolver::GetTotal_CFz() { return Total_CFz; } +inline su2double CEulerSolver::GetTotal_CFz() { return Total_CFz; } -inline double CEulerSolver::GetTotal_CSideForce() { return Total_CSideForce; } +inline su2double CEulerSolver::GetTotal_CSideForce() { return Total_CSideForce; } -inline double CEulerSolver::GetTotal_CEff() { return Total_CEff; } +inline su2double CEulerSolver::GetTotal_CEff() { return Total_CEff; } -inline double CEulerSolver::GetTotal_CT() { return Total_CT; } +inline su2double CEulerSolver::GetTotal_CT() { return Total_CT; } -inline void CEulerSolver::SetTotal_CT(double val_Total_CT) { Total_CT = val_Total_CT; } +inline void CEulerSolver::SetTotal_CT(su2double val_Total_CT) { Total_CT = val_Total_CT; } -inline double CEulerSolver::GetTotal_CQ() { return Total_CQ; } +inline su2double CEulerSolver::GetTotal_CQ() { return Total_CQ; } -inline double CEulerSolver::GetTotal_HeatFlux() { return Total_Heat; } +inline su2double CEulerSolver::GetTotal_HeatFlux() { return Total_Heat; } -inline double CEulerSolver::GetTotal_MaxHeatFlux() { return Total_MaxHeat; } +inline su2double CEulerSolver::GetTotal_MaxHeatFlux() { return Total_MaxHeat; } -inline void CEulerSolver::SetTotal_CQ(double val_Total_CQ) { Total_CQ = val_Total_CQ; } +inline void CEulerSolver::SetTotal_CQ(su2double val_Total_CQ) { Total_CQ = val_Total_CQ; } -inline void CEulerSolver::SetTotal_HeatFlux(double val_Total_Heat) { Total_Heat = val_Total_Heat; } +inline void CEulerSolver::SetTotal_HeatFlux(su2double val_Total_Heat) { Total_Heat = val_Total_Heat; } -inline void CEulerSolver::SetTotal_MaxHeatFlux(double val_Total_MaxHeat) { Total_MaxHeat = val_Total_MaxHeat; } +inline void CEulerSolver::SetTotal_MaxHeatFlux(su2double val_Total_MaxHeat) { Total_MaxHeat = val_Total_MaxHeat; } -inline double CEulerSolver::GetTotal_CMerit() { return Total_CMerit; } +inline su2double CEulerSolver::GetTotal_CMerit() { return Total_CMerit; } -inline double CEulerSolver::GetTotal_CEquivArea() { return Total_CEquivArea; } +inline su2double CEulerSolver::GetTotal_CEquivArea() { return Total_CEquivArea; } -inline double CEulerSolver::GetTotal_CpDiff() { return Total_CpDiff; } +inline su2double CEulerSolver::GetTotal_CpDiff() { return Total_CpDiff; } -inline double CEulerSolver::GetTotal_HeatFluxDiff() { return Total_HeatFluxDiff; } +inline su2double CEulerSolver::GetTotal_HeatFluxDiff() { return Total_HeatFluxDiff; } -inline double CEulerSolver::GetTotal_CNearFieldOF() { return Total_CNearFieldOF; } +inline su2double CEulerSolver::GetTotal_CNearFieldOF() { return Total_CNearFieldOF; } -inline void CEulerSolver::SetTotal_CEquivArea(double cequivarea) { Total_CEquivArea = cequivarea; } +inline void CEulerSolver::SetTotal_CEquivArea(su2double cequivarea) { Total_CEquivArea = cequivarea; } -inline void CEulerSolver::SetTotal_CpDiff(double pressure) { Total_CpDiff = pressure; } +inline void CEulerSolver::SetTotal_CpDiff(su2double pressure) { Total_CpDiff = pressure; } -inline void CEulerSolver::SetTotal_HeatFluxDiff(double heat) { Total_HeatFluxDiff = heat; } +inline void CEulerSolver::SetTotal_HeatFluxDiff(su2double heat) { Total_HeatFluxDiff = heat; } -inline void CEulerSolver::SetTotal_CNearFieldOF(double cnearfieldpress) { Total_CNearFieldOF = cnearfieldpress; } +inline void CEulerSolver::SetTotal_CNearFieldOF(su2double cnearfieldpress) { Total_CNearFieldOF = cnearfieldpress; } -inline void CEulerSolver::SetTotal_CLift(double val_Total_CLift) { Total_CLift = val_Total_CLift; } +inline void CEulerSolver::SetTotal_CLift(su2double val_Total_CLift) { Total_CLift = val_Total_CLift; } -inline void CEulerSolver::SetTotal_CDrag(double val_Total_CDrag) { Total_CDrag = val_Total_CDrag; } +inline void CEulerSolver::SetTotal_CDrag(su2double val_Total_CDrag) { Total_CDrag = val_Total_CDrag; } -inline double CEulerSolver::GetAllBound_CLift_Inv() { return AllBound_CLift_Inv; } +inline su2double CEulerSolver::GetAllBound_CLift_Inv() { return AllBound_CLift_Inv; } -inline double CEulerSolver::GetAllBound_CDrag_Inv() { return AllBound_CDrag_Inv; } +inline su2double CEulerSolver::GetAllBound_CDrag_Inv() { return AllBound_CDrag_Inv; } -inline double CEulerSolver::GetAllBound_CSideForce_Inv() { return AllBound_CSideForce_Inv; } +inline su2double CEulerSolver::GetAllBound_CSideForce_Inv() { return AllBound_CSideForce_Inv; } -inline double CEulerSolver::GetAllBound_CEff_Inv() { return AllBound_CEff_Inv; } +inline su2double CEulerSolver::GetAllBound_CEff_Inv() { return AllBound_CEff_Inv; } -inline double CEulerSolver::GetAllBound_CMx_Inv() { return AllBound_CMx_Inv; } +inline su2double CEulerSolver::GetAllBound_CMx_Inv() { return AllBound_CMx_Inv; } -inline double CEulerSolver::GetAllBound_CMy_Inv() { return AllBound_CMy_Inv; } +inline su2double CEulerSolver::GetAllBound_CMy_Inv() { return AllBound_CMy_Inv; } -inline double CEulerSolver::GetAllBound_CMz_Inv() { return AllBound_CMz_Inv; } +inline su2double CEulerSolver::GetAllBound_CMz_Inv() { return AllBound_CMz_Inv; } -inline double CEulerSolver::GetAllBound_CFx_Inv() { return AllBound_CFx_Inv; } +inline su2double CEulerSolver::GetAllBound_CFx_Inv() { return AllBound_CFx_Inv; } -inline double CEulerSolver::GetAllBound_CFy_Inv() { return AllBound_CFy_Inv; } +inline su2double CEulerSolver::GetAllBound_CFy_Inv() { return AllBound_CFy_Inv; } -inline double CEulerSolver::GetAllBound_CFz_Inv() { return AllBound_CFz_Inv; } +inline su2double CEulerSolver::GetAllBound_CFz_Inv() { return AllBound_CFz_Inv; } -inline double CEulerSolver::GetTotal_CFreeSurface() { return Total_CFreeSurface; } +inline su2double CEulerSolver::GetTotal_CFreeSurface() { return Total_CFreeSurface; } -inline void CEulerSolver::SetTotal_CFreeSurface(double cfreesurface) { Total_CFreeSurface = cfreesurface; } +inline void CEulerSolver::SetTotal_CFreeSurface(su2double cfreesurface) { Total_CFreeSurface = cfreesurface; } -inline double CEulerSolver::GetOneD_TotalPress(void) { return OneD_TotalPress; } +inline su2double CEulerSolver::GetOneD_TotalPress(void) { return OneD_TotalPress; } -inline void CEulerSolver::SetOneD_TotalPress(double AveragePressure) { OneD_TotalPress = AveragePressure; } +inline void CEulerSolver::SetOneD_TotalPress(su2double AveragePressure) { OneD_TotalPress = AveragePressure; } -inline double CEulerSolver::GetOneD_Mach(void) {return OneD_Mach;} +inline su2double CEulerSolver::GetOneD_Mach(void) {return OneD_Mach;} -inline void CEulerSolver::SetOneD_Mach(double AverageMach) { OneD_Mach = AverageMach; } +inline void CEulerSolver::SetOneD_Mach(su2double AverageMach) { OneD_Mach = AverageMach; } -inline double CEulerSolver::GetOneD_Temp(void) {return OneD_Temp;} +inline su2double CEulerSolver::GetOneD_Temp(void) {return OneD_Temp;} -inline void CEulerSolver::SetOneD_Temp(double AverageTemperature) { OneD_Temp = AverageTemperature; } +inline void CEulerSolver::SetOneD_Temp(su2double AverageTemperature) { OneD_Temp = AverageTemperature; } -inline double CEulerSolver::GetOneD_MassFlowRate(void) {return OneD_MassFlowRate;} +inline su2double CEulerSolver::GetOneD_MassFlowRate(void) {return OneD_MassFlowRate;} -inline void CEulerSolver::SetOneD_MassFlowRate(double MassFlowRate) { OneD_MassFlowRate = MassFlowRate; } +inline void CEulerSolver::SetOneD_MassFlowRate(su2double MassFlowRate) { OneD_MassFlowRate = MassFlowRate; } -inline double CEulerSolver::GetOneD_FluxAvgPress(void) {return OneD_PressureRef;} +inline su2double CEulerSolver::GetOneD_FluxAvgPress(void) {return OneD_PressureRef;} -inline void CEulerSolver::SetOneD_FluxAvgPress(double PressureRef) {OneD_PressureRef = PressureRef; } +inline void CEulerSolver::SetOneD_FluxAvgPress(su2double PressureRef) {OneD_PressureRef = PressureRef; } -inline double CEulerSolver::GetOneD_FluxAvgDensity(void) {return OneD_DensityRef;} +inline su2double CEulerSolver::GetOneD_FluxAvgDensity(void) {return OneD_DensityRef;} -inline void CEulerSolver::SetOneD_FluxAvgDensity(double DensityRef) {OneD_DensityRef = DensityRef; } +inline void CEulerSolver::SetOneD_FluxAvgDensity(su2double DensityRef) {OneD_DensityRef = DensityRef; } -inline double CEulerSolver::GetOneD_FluxAvgVelocity(void) {return OneD_VelocityRef;} +inline su2double CEulerSolver::GetOneD_FluxAvgVelocity(void) {return OneD_VelocityRef;} -inline void CEulerSolver::SetOneD_FluxAvgVelocity(double VelocityRef) {OneD_VelocityRef = VelocityRef; } +inline void CEulerSolver::SetOneD_FluxAvgVelocity(su2double VelocityRef) {OneD_VelocityRef = VelocityRef; } -inline double CEulerSolver::GetOneD_FluxAvgEntalpy(void) {return OneD_EnthalpyRef;} +inline su2double CEulerSolver::GetOneD_FluxAvgEntalpy(void) {return OneD_EnthalpyRef;} -inline void CEulerSolver::SetOneD_FluxAvgEntalpy(double EnthalpyRef) {OneD_EnthalpyRef = EnthalpyRef; } +inline void CEulerSolver::SetOneD_FluxAvgEntalpy(su2double EnthalpyRef) {OneD_EnthalpyRef = EnthalpyRef; } -inline double CNSSolver::GetViscosity_Inf(void) { return Viscosity_Inf; } +inline su2double CNSSolver::GetViscosity_Inf(void) { return Viscosity_Inf; } -inline double CNSSolver::GetTke_Inf(void) { return Tke_Inf; } +inline su2double CNSSolver::GetTke_Inf(void) { return Tke_Inf; } -inline double CNSSolver::GetCLift_Visc(unsigned short val_marker) { return CLift_Visc[val_marker]; } +inline su2double CNSSolver::GetCLift_Visc(unsigned short val_marker) { return CLift_Visc[val_marker]; } -inline double CNSSolver::GetCMz_Visc(unsigned short val_marker) { return CMz_Visc[val_marker]; } +inline su2double CNSSolver::GetCMz_Visc(unsigned short val_marker) { return CMz_Visc[val_marker]; } -inline double CNSSolver::GetCSideForce_Visc(unsigned short val_marker) { return CSideForce_Visc[val_marker]; } +inline su2double CNSSolver::GetCSideForce_Visc(unsigned short val_marker) { return CSideForce_Visc[val_marker]; } -inline double CNSSolver::GetCDrag_Visc(unsigned short val_marker) { return CDrag_Visc[val_marker]; } +inline su2double CNSSolver::GetCDrag_Visc(unsigned short val_marker) { return CDrag_Visc[val_marker]; } -inline double CNSSolver::GetAllBound_CLift_Visc() { return AllBound_CLift_Visc; } +inline su2double CNSSolver::GetAllBound_CLift_Visc() { return AllBound_CLift_Visc; } -inline double CNSSolver::GetAllBound_CSideForce_Visc() { return AllBound_CSideForce_Visc; } +inline su2double CNSSolver::GetAllBound_CSideForce_Visc() { return AllBound_CSideForce_Visc; } -inline double CNSSolver::GetAllBound_CDrag_Visc() { return AllBound_CDrag_Visc; } +inline su2double CNSSolver::GetAllBound_CDrag_Visc() { return AllBound_CDrag_Visc; } -inline double CNSSolver::GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex) { return CSkinFriction[val_marker][val_vertex]; } +inline su2double CNSSolver::GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex) { return CSkinFriction[val_marker][val_vertex]; } -inline double CNSSolver::GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) { return HeatFlux[val_marker][val_vertex]; } +inline su2double CNSSolver::GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) { return HeatFlux[val_marker][val_vertex]; } -inline double CNSSolver::GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex) { return HeatFluxTarget[val_marker][val_vertex]; } +inline su2double CNSSolver::GetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex) { return HeatFluxTarget[val_marker][val_vertex]; } -inline void CNSSolver::SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, double val_heat) { HeatFluxTarget[val_marker][val_vertex] = val_heat; } +inline void CNSSolver::SetHeatFluxTarget(unsigned short val_marker, unsigned long val_vertex, su2double val_heat) { HeatFluxTarget[val_marker][val_vertex] = val_heat; } -inline double CNSSolver::GetYPlus(unsigned short val_marker, unsigned long val_vertex) { return YPlus[val_marker][val_vertex]; } +inline su2double CNSSolver::GetYPlus(unsigned short val_marker, unsigned long val_vertex) { return YPlus[val_marker][val_vertex]; } -inline double CNSSolver::GetStrainMag_Max(void) { return StrainMag_Max; } +inline su2double CNSSolver::GetStrainMag_Max(void) { return StrainMag_Max; } -inline double CNSSolver::GetOmega_Max(void) { return Omega_Max; } +inline su2double CNSSolver::GetOmega_Max(void) { return Omega_Max; } -inline void CNSSolver::SetStrainMag_Max(double val_strainmag_max) { StrainMag_Max = val_strainmag_max; } +inline void CNSSolver::SetStrainMag_Max(su2double val_strainmag_max) { StrainMag_Max = val_strainmag_max; } -inline void CNSSolver::SetOmega_Max(double val_omega_max) { Omega_Max = val_omega_max; } +inline void CNSSolver::SetOmega_Max(su2double val_omega_max) { Omega_Max = val_omega_max; } -inline double CAdjEulerSolver::GetCSensitivity(unsigned short val_marker, unsigned long val_vertex) { return CSensitivity[val_marker][val_vertex]; } +inline su2double CAdjEulerSolver::GetCSensitivity(unsigned short val_marker, unsigned long val_vertex) { return CSensitivity[val_marker][val_vertex]; } -inline void CAdjEulerSolver::SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, double val_sensitivity) {CSensitivity[val_marker][val_vertex]=val_sensitivity; } +inline void CAdjEulerSolver::SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity) {CSensitivity[val_marker][val_vertex]=val_sensitivity; } -inline double CAdjEulerSolver::GetTotal_Sens_Geo() { return Total_Sens_Geo; } +inline su2double CAdjEulerSolver::GetTotal_Sens_Geo() { return Total_Sens_Geo; } -inline double CAdjEulerSolver::GetTotal_Sens_Mach() { return Total_Sens_Mach; } +inline su2double CAdjEulerSolver::GetTotal_Sens_Mach() { return Total_Sens_Mach; } -inline double CAdjEulerSolver::GetTotal_Sens_AoA() { return Total_Sens_AoA; } +inline su2double CAdjEulerSolver::GetTotal_Sens_AoA() { return Total_Sens_AoA; } -inline double CAdjEulerSolver::GetTotal_Sens_Press() { return Total_Sens_Press; } +inline su2double CAdjEulerSolver::GetTotal_Sens_Press() { return Total_Sens_Press; } -inline double CAdjEulerSolver::GetTotal_Sens_Temp() { return Total_Sens_Temp; } +inline su2double CAdjEulerSolver::GetTotal_Sens_Temp() { return Total_Sens_Temp; } -inline double CAdjEulerSolver::GetPsiRho_Inf(void) { return PsiRho_Inf; } +inline su2double CAdjEulerSolver::GetPsiRho_Inf(void) { return PsiRho_Inf; } -inline double CAdjEulerSolver::GetPsiE_Inf(void) { return PsiE_Inf; } +inline su2double CAdjEulerSolver::GetPsiE_Inf(void) { return PsiE_Inf; } -inline double CAdjEulerSolver::GetPhi_Inf(unsigned short val_dim) { return Phi_Inf[val_dim]; } +inline su2double CAdjEulerSolver::GetPhi_Inf(unsigned short val_dim) { return Phi_Inf[val_dim]; } -inline double CLinEulerSolver::GetTotal_CDeltaLift() { return Total_CDeltaLift; } +inline su2double CLinEulerSolver::GetTotal_CDeltaLift() { return Total_CDeltaLift; } -inline double CLinEulerSolver::GetTotal_CDeltaDrag() { return Total_CDeltaDrag; } +inline su2double CLinEulerSolver::GetTotal_CDeltaDrag() { return Total_CDeltaDrag; } -inline double CFEASolver::GetTotal_CFEA() { return Total_CFEA; } +inline su2double CFEASolver::GetTotal_CFEA() { return Total_CFEA; } -inline void CFEASolver::SetTotal_CFEA(double cfea) { Total_CFEA = cfea; } +inline void CFEASolver::SetTotal_CFEA(su2double cfea) { Total_CFEA = cfea; } -inline double CFEASolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } +inline su2double CFEASolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } -inline double CFEASolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } +inline su2double CFEASolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } -inline void CFEASolver::SetWAitken_Dyn(double waitk) { WAitken_Dyn = waitk; } +inline void CFEASolver::SetWAitken_Dyn(su2double waitk) { WAitken_Dyn = waitk; } -inline void CFEASolver::SetWAitken_Dyn_tn1(double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } +inline void CFEASolver::SetWAitken_Dyn_tn1(su2double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } -inline void CFEASolver::SetFSI_ConvValue(unsigned short val_index, double val_criteria) { FSI_Conv[val_index] = val_criteria; } +inline void CFEASolver::SetFSI_ConvValue(unsigned short val_index, su2double val_criteria) { FSI_Conv[val_index] = val_criteria; } -inline double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } +inline su2double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } -inline double CFEM_ElasticitySolver::GetRes_FEM(unsigned short val_var) { return Conv_Check[val_var]; } +inline su2double CFEM_ElasticitySolver::GetRes_FEM(unsigned short val_var) { return Conv_Check[val_var]; } -inline double CFEM_ElasticitySolver::GetTotal_CFEA() { return Total_CFEA; } +inline su2double CFEM_ElasticitySolver::GetTotal_CFEA() { return Total_CFEA; } -inline void CFEM_ElasticitySolver::SetTotal_CFEA(double cfea) { Total_CFEA = cfea; } +inline void CFEM_ElasticitySolver::SetTotal_CFEA(su2double cfea) { Total_CFEA = cfea; } -inline double CFEM_ElasticitySolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } +inline su2double CFEM_ElasticitySolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } -inline double CFEM_ElasticitySolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } +inline su2double CFEM_ElasticitySolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } -inline void CFEM_ElasticitySolver::SetWAitken_Dyn(double waitk) { WAitken_Dyn = waitk; } +inline void CFEM_ElasticitySolver::SetWAitken_Dyn(su2double waitk) { WAitken_Dyn = waitk; } -inline void CFEM_ElasticitySolver::SetWAitken_Dyn_tn1(double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } +inline void CFEM_ElasticitySolver::SetWAitken_Dyn_tn1(su2double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } -inline void CFEM_ElasticitySolver::SetLoad_Increment(double val_loadIncrement) { loadIncrement = val_loadIncrement; } +inline void CFEM_ElasticitySolver::SetLoad_Increment(su2double val_loadIncrement) { loadIncrement = val_loadIncrement; } -inline void CFEM_ElasticitySolver::SetFSI_ConvValue(unsigned short val_index, double val_criteria) { FSI_Conv[val_index] = val_criteria; } +inline void CFEM_ElasticitySolver::SetFSI_ConvValue(unsigned short val_index, su2double val_criteria) { FSI_Conv[val_index] = val_criteria; } -inline double CFEM_ElasticitySolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } +inline su2double CFEM_ElasticitySolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } -inline double CWaveSolver::GetTotal_CWave() { return Total_CWave; } +inline su2double CWaveSolver::GetTotal_CWave() { return Total_CWave; } -inline double CHeatSolver::GetTotal_CHeat() { return Total_CHeat; } +inline su2double CHeatSolver::GetTotal_CHeat() { return Total_CHeat; } -inline double CTNE2EulerSolver::GetDensity_Inf(void) { cout << "CTNE2EulerSolver::GetDensity_Inf NOT RETURNING THE CORRECT VALUE!!!" << endl; return 0.0; } +inline su2double CTNE2EulerSolver::GetDensity_Inf(void) { cout << "CTNE2EulerSolver::GetDensity_Inf NOT RETURNING THE CORRECT VALUE!!!" << endl; return 0.0; } -inline double CTNE2EulerSolver::GetVelocity_Inf(unsigned short val_dim) { return Velocity_Inf[val_dim]; } +inline su2double CTNE2EulerSolver::GetVelocity_Inf(unsigned short val_dim) { return Velocity_Inf[val_dim]; } -inline double CTNE2EulerSolver::GetDensity_Velocity_Inf(unsigned short val_dim) { cout << "CTNE2EulerSolver::GetDensity_Velocity_Inf NOT RETURNING THE CORRECT VALUE!!!" << endl; return 0.0; } +inline su2double CTNE2EulerSolver::GetDensity_Velocity_Inf(unsigned short val_dim) { cout << "CTNE2EulerSolver::GetDensity_Velocity_Inf NOT RETURNING THE CORRECT VALUE!!!" << endl; return 0.0; } -inline double CTNE2EulerSolver::GetPressure_Inf(void) { return Pressure_Inf; } +inline su2double CTNE2EulerSolver::GetPressure_Inf(void) { return Pressure_Inf; } -inline double CTNE2EulerSolver::GetDensity_Energy_Inf(void) { cout << "CTNE2EulerSolver::GetDensity_Energy_Inf NOT RETURNING THE CORRECT VALUE!!!" << endl; return 0.0; } +inline su2double CTNE2EulerSolver::GetDensity_Energy_Inf(void) { cout << "CTNE2EulerSolver::GetDensity_Energy_Inf NOT RETURNING THE CORRECT VALUE!!!" << endl; return 0.0; } -inline double CTNE2EulerSolver::GetModVelocity_Inf(void) { - double Vel2 = 0; +inline su2double CTNE2EulerSolver::GetModVelocity_Inf(void) { + su2double Vel2 = 0; for (unsigned short iDim = 0; iDim < nDim; iDim++) Vel2 += Velocity_Inf[iDim]*Velocity_Inf[iDim]; return sqrt(Vel2); } -inline double CTNE2EulerSolver::GetCPressure(unsigned short val_marker, unsigned long val_vertex) { return CPressure[val_marker][val_vertex]; } +inline su2double CTNE2EulerSolver::GetCPressure(unsigned short val_marker, unsigned long val_vertex) { return CPressure[val_marker][val_vertex]; } -inline double CTNE2EulerSolver::GetCLift_Inv(unsigned short val_marker) { return CLift_Inv[val_marker]; } +inline su2double CTNE2EulerSolver::GetCLift_Inv(unsigned short val_marker) { return CLift_Inv[val_marker]; } -inline double CTNE2EulerSolver::GetCDrag_Inv(unsigned short val_marker) { return CDrag_Inv[val_marker]; } +inline su2double CTNE2EulerSolver::GetCDrag_Inv(unsigned short val_marker) { return CDrag_Inv[val_marker]; } -inline double CTNE2EulerSolver::GetCSideForce_Inv(unsigned short val_marker) { return CSideForce_Inv[val_marker]; } +inline su2double CTNE2EulerSolver::GetCSideForce_Inv(unsigned short val_marker) { return CSideForce_Inv[val_marker]; } -inline double CTNE2EulerSolver::GetCEff_Inv(unsigned short val_marker) { return CEff_Inv[val_marker]; } +inline su2double CTNE2EulerSolver::GetCEff_Inv(unsigned short val_marker) { return CEff_Inv[val_marker]; } -inline double CTNE2EulerSolver::GetTotal_CLift() { return Total_CLift; } +inline su2double CTNE2EulerSolver::GetTotal_CLift() { return Total_CLift; } -inline double CTNE2EulerSolver::GetTotal_CDrag() { return Total_CDrag; } +inline su2double CTNE2EulerSolver::GetTotal_CDrag() { return Total_CDrag; } -inline double CTNE2EulerSolver::GetTotal_CMx() { return Total_CMx; } +inline su2double CTNE2EulerSolver::GetTotal_CMx() { return Total_CMx; } -inline double CTNE2EulerSolver::GetTotal_CMy() { return Total_CMy; } +inline su2double CTNE2EulerSolver::GetTotal_CMy() { return Total_CMy; } -inline double CTNE2EulerSolver::GetTotal_CMz() { return Total_CMz; } +inline su2double CTNE2EulerSolver::GetTotal_CMz() { return Total_CMz; } -inline double CTNE2EulerSolver::GetTotal_CFx() { return Total_CFx; } +inline su2double CTNE2EulerSolver::GetTotal_CFx() { return Total_CFx; } -inline double CTNE2EulerSolver::GetTotal_CFy() { return Total_CFy; } +inline su2double CTNE2EulerSolver::GetTotal_CFy() { return Total_CFy; } -inline double CTNE2EulerSolver::GetTotal_CFz() { return Total_CFz; } +inline su2double CTNE2EulerSolver::GetTotal_CFz() { return Total_CFz; } -inline double CTNE2EulerSolver::GetTotal_CSideForce() { return Total_CSideForce; } +inline su2double CTNE2EulerSolver::GetTotal_CSideForce() { return Total_CSideForce; } -inline double CTNE2EulerSolver::GetTotal_CEff() { return Total_CEff; } +inline su2double CTNE2EulerSolver::GetTotal_CEff() { return Total_CEff; } -inline double CTNE2EulerSolver::GetTotal_HeatFlux() { return Total_Heat; } +inline su2double CTNE2EulerSolver::GetTotal_HeatFlux() { return Total_Heat; } -inline double CTNE2EulerSolver::GetTotal_MaxHeatFlux() { return Total_MaxHeat; } +inline su2double CTNE2EulerSolver::GetTotal_MaxHeatFlux() { return Total_MaxHeat; } -inline void CTNE2EulerSolver::SetTotal_HeatFlux(double val_Total_Heat) { Total_Heat = val_Total_Heat; } +inline void CTNE2EulerSolver::SetTotal_HeatFlux(su2double val_Total_Heat) { Total_Heat = val_Total_Heat; } -inline void CTNE2EulerSolver::SetTotal_MaxHeatFlux(double val_Total_MaxHeat) { Total_MaxHeat = val_Total_MaxHeat; } +inline void CTNE2EulerSolver::SetTotal_MaxHeatFlux(su2double val_Total_MaxHeat) { Total_MaxHeat = val_Total_MaxHeat; } -inline void CTNE2EulerSolver::SetTotal_CLift(double val_Total_CLift) { Total_CLift = val_Total_CLift; } +inline void CTNE2EulerSolver::SetTotal_CLift(su2double val_Total_CLift) { Total_CLift = val_Total_CLift; } -inline void CTNE2EulerSolver::SetTotal_CDrag(double val_Total_CDrag) { Total_CDrag = val_Total_CDrag; } +inline void CTNE2EulerSolver::SetTotal_CDrag(su2double val_Total_CDrag) { Total_CDrag = val_Total_CDrag; } -inline double CTNE2EulerSolver::GetAllBound_CLift_Inv() { return AllBound_CLift_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CLift_Inv() { return AllBound_CLift_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CDrag_Inv() { return AllBound_CDrag_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CDrag_Inv() { return AllBound_CDrag_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CSideForce_Inv() { return AllBound_CSideForce_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CSideForce_Inv() { return AllBound_CSideForce_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CEff_Inv() { return AllBound_CEff_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CEff_Inv() { return AllBound_CEff_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CMx_Inv() { return AllBound_CMx_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CMx_Inv() { return AllBound_CMx_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CMy_Inv() { return AllBound_CMy_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CMy_Inv() { return AllBound_CMy_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CMz_Inv() { return AllBound_CMz_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CMz_Inv() { return AllBound_CMz_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CFx_Inv() { return AllBound_CFx_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CFx_Inv() { return AllBound_CFx_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CFy_Inv() { return AllBound_CFy_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CFy_Inv() { return AllBound_CFy_Inv; } -inline double CTNE2EulerSolver::GetAllBound_CFz_Inv() { return AllBound_CFz_Inv; } +inline su2double CTNE2EulerSolver::GetAllBound_CFz_Inv() { return AllBound_CFz_Inv; } -inline double CTNE2NSSolver::GetCDrag_Visc(unsigned short val_marker) { return CDrag_Visc[val_marker]; } +inline su2double CTNE2NSSolver::GetCDrag_Visc(unsigned short val_marker) { return CDrag_Visc[val_marker]; } -inline double CTNE2NSSolver::GetCLift_Visc(unsigned short val_marker) { return CLift_Visc[val_marker]; } +inline su2double CTNE2NSSolver::GetCLift_Visc(unsigned short val_marker) { return CLift_Visc[val_marker]; } -inline double CTNE2NSSolver::GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex) { return CSkinFriction[val_marker][val_vertex]; } +inline su2double CTNE2NSSolver::GetCSkinFriction(unsigned short val_marker, unsigned long val_vertex) { return CSkinFriction[val_marker][val_vertex]; } -inline double CTNE2NSSolver::GetViscosity_Inf(void) { return Viscosity_Inf; } +inline su2double CTNE2NSSolver::GetViscosity_Inf(void) { return Viscosity_Inf; } -inline double CTNE2NSSolver::GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) { return HeatFlux[val_marker][val_vertex]; } +inline su2double CTNE2NSSolver::GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) { return HeatFlux[val_marker][val_vertex]; } -inline double CTNE2NSSolver::GetAllBound_CLift_Visc() { return AllBound_CLift_Visc; } +inline su2double CTNE2NSSolver::GetAllBound_CLift_Visc() { return AllBound_CLift_Visc; } -inline double CTNE2NSSolver::GetAllBound_CDrag_Visc() { return AllBound_CDrag_Visc; } +inline su2double CTNE2NSSolver::GetAllBound_CDrag_Visc() { return AllBound_CDrag_Visc; } -inline double CAdjTNE2EulerSolver::GetPhi_Inf(unsigned short val_dim) { return Phi_Inf[val_dim]; } +inline su2double CAdjTNE2EulerSolver::GetPhi_Inf(unsigned short val_dim) { return Phi_Inf[val_dim]; } -inline double CAdjTNE2EulerSolver::GetPsiE_Inf(void) { return PsiE_Inf; } +inline su2double CAdjTNE2EulerSolver::GetPsiE_Inf(void) { return PsiE_Inf; } -inline double* CAdjTNE2EulerSolver::GetPsiRhos_Inf(void) { return PsiRho_Inf; } +inline su2double* CAdjTNE2EulerSolver::GetPsiRhos_Inf(void) { return PsiRho_Inf; } -inline double CAdjTNE2EulerSolver::GetTotal_Sens_Geo() { return Total_Sens_Geo; } +inline su2double CAdjTNE2EulerSolver::GetTotal_Sens_Geo() { return Total_Sens_Geo; } -inline void CAdjTNE2EulerSolver::SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, double val_sensitivity) {CSensitivity[val_marker][val_vertex]=val_sensitivity; } +inline void CAdjTNE2EulerSolver::SetCSensitivity(unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity) {CSensitivity[val_marker][val_vertex]=val_sensitivity; } -inline double CAdjTNE2EulerSolver::GetCSensitivity(unsigned short val_marker, unsigned long val_vertex) { return CSensitivity[val_marker][val_vertex]; } +inline su2double CAdjTNE2EulerSolver::GetCSensitivity(unsigned short val_marker, unsigned long val_vertex) { return CSensitivity[val_marker][val_vertex]; } -inline double CAdjTNE2EulerSolver::GetTotal_Sens_AoA() { return Total_Sens_AoA; } +inline su2double CAdjTNE2EulerSolver::GetTotal_Sens_AoA() { return Total_Sens_AoA; } -inline double CAdjTNE2EulerSolver::GetTotal_Sens_Mach() { return Total_Sens_Mach; } +inline su2double CAdjTNE2EulerSolver::GetTotal_Sens_Mach() { return Total_Sens_Mach; } -inline double CAdjTNE2EulerSolver::GetTotal_Sens_Press() { return Total_Sens_Press; } +inline su2double CAdjTNE2EulerSolver::GetTotal_Sens_Press() { return Total_Sens_Press; } -inline double CAdjTNE2EulerSolver::GetTotal_Sens_Temp() { return Total_Sens_Temp; } +inline su2double CAdjTNE2EulerSolver::GetTotal_Sens_Temp() { return Total_Sens_Temp; } diff --git a/SU2_CFD/include/transport_model.hpp b/SU2_CFD/include/transport_model.hpp index 20b5eb0055a..fe460c8a6d6 100644 --- a/SU2_CFD/include/transport_model.hpp +++ b/SU2_CFD/include/transport_model.hpp @@ -55,7 +55,7 @@ using namespace std; */ class CViscosityModel { protected: -double Mu, /*!< \brief Dynamic viscosity. */ +su2double Mu, /*!< \brief Dynamic viscosity. */ dmudrho_T, /*!< \brief DmuDrho_T. */ dmudT_rho; /*!< \brief DmuDT_rho. */ public: @@ -73,27 +73,27 @@ double Mu, /*!< \brief Dynamic viscosity. */ /*! * \brief return viscosity value. */ - double GetViscosity(void); + su2double GetViscosity(void); /*! * \brief return viscosity partial derivative value. */ - double Getdmudrho_T(void); + su2double Getdmudrho_T(void); /*! * \brief return viscosity partial derivative value. */ - double GetdmudT_rho(void); + su2double GetdmudT_rho(void); /*! * \brief Set Viscosity. */ - virtual void SetViscosity(double T, double rho); + virtual void SetViscosity(su2double T, su2double rho); /*! * \brief Set Viscosity Derivatives. */ - virtual void SetDerViscosity(double T, double rho); + virtual void SetDerViscosity(su2double T, su2double rho); }; @@ -117,7 +117,7 @@ class CConstantViscosity : public CViscosityModel { /*! * \brief Constructor of the class. */ - CConstantViscosity(double mu_const); + CConstantViscosity(su2double mu_const); /*! * \brief Destructor of the class. @@ -137,7 +137,7 @@ class CConstantViscosity : public CViscosityModel { */ class CSutherland : public CViscosityModel { protected: - double Mu_ref, /*!< \brief Internal Energy. */ + su2double Mu_ref, /*!< \brief Internal Energy. */ T_ref, /*!< \brief DpDd_e. */ S; /*!< \brief DpDe_d. */ @@ -151,7 +151,7 @@ class CSutherland : public CViscosityModel { /*! * \brief Constructor of the class. */ - CSutherland(double mu_ref, double t_ref, double s); + CSutherland(su2double mu_ref, su2double t_ref, su2double s); /*! * \brief Destructor of the class. @@ -161,12 +161,12 @@ class CSutherland : public CViscosityModel { /*! * \brief Set Viscosity. */ - void SetViscosity(double T, double rho); + void SetViscosity(su2double T, su2double rho); /*! * \brief Set Viscosity Derivatives. */ - void SetDerViscosity(double T, double rho); + void SetDerViscosity(su2double T, su2double rho); }; @@ -180,7 +180,7 @@ class CSutherland : public CViscosityModel { */ class CConductivityModel { protected: -double Kt, /*!< \brief Thermal conductivity. */ +su2double Kt, /*!< \brief Thermal conductivity. */ dktdrho_T, /*!< \brief DktDrho_T. */ dktdT_rho; /*!< \brief DktDT_rho. */ public: @@ -198,27 +198,27 @@ double Kt, /*!< \brief Thermal conductivity. */ /*! * \brief return viscosity value. */ - double GetConductivity(void); + su2double GetConductivity(void); /*! * \brief return viscosity partial derivative value. */ - double Getdktdrho_T(void); + su2double Getdktdrho_T(void); /*! * \brief return viscosity partial derivative value. */ - double GetdktdT_rho(void); + su2double GetdktdT_rho(void); /*! * \brief Set Thermal conductivity. */ - virtual void SetConductivity(double T, double rho, double mu, double cp); + virtual void SetConductivity(su2double T, su2double rho, su2double mu, su2double cp); /*! * \brief Set Thermal conductivity derivatives. */ - virtual void SetDerConductivity(double T, double rho, double dmudrho_T, double dmudT_rho, double cp); + virtual void SetDerConductivity(su2double T, su2double rho, su2double dmudrho_T, su2double dmudT_rho, su2double cp); }; @@ -241,7 +241,7 @@ class CConstantConductivity : public CConductivityModel { /*! * \brief Constructor of the class. */ - CConstantConductivity(double kt_const); + CConstantConductivity(su2double kt_const); /*! * \brief Destructor of the class. @@ -259,7 +259,7 @@ class CConstantConductivity : public CConductivityModel { */ class CConstantPrandtl : public CConductivityModel { protected: - double Pr_const; /*!< \brief Prandtl's number. */ + su2double Pr_const; /*!< \brief Prandtl's number. */ public: @@ -276,19 +276,19 @@ class CConstantPrandtl : public CConductivityModel { /*! * \brief Constructor of the class. */ - CConstantPrandtl(double pr_const); + CConstantPrandtl(su2double pr_const); /*! * \brief Set Thermal conductivity. * \brief par1 -> Cp. * \brief par2 -> Mu. */ - void SetConductivity(double T, double rho, double mu, double cp); + void SetConductivity(su2double T, su2double rho, su2double mu, su2double cp); /*! * \brief Set Thermal conductivity derivatives. */ - void SetDerConductivity(double T, double rho, double dmudrho_T, double dmudT_rho, double cp); + void SetDerConductivity(su2double T, su2double rho, su2double dmudrho_T, su2double dmudT_rho, su2double cp); }; diff --git a/SU2_CFD/include/transport_model.inl b/SU2_CFD/include/transport_model.inl index 7d2b7765186..8e5b0a243f6 100644 --- a/SU2_CFD/include/transport_model.inl +++ b/SU2_CFD/include/transport_model.inl @@ -29,14 +29,14 @@ #pragma once -inline double CViscosityModel::GetViscosity() { return Mu; } -inline double CViscosityModel::Getdmudrho_T () { return dmudrho_T; } -inline double CViscosityModel::GetdmudT_rho() { return dmudT_rho; } -inline void CViscosityModel::SetViscosity(double T, double rho) {} -inline void CViscosityModel::SetDerViscosity(double T, double rho) {} +inline su2double CViscosityModel::GetViscosity() { return Mu; } +inline su2double CViscosityModel::Getdmudrho_T () { return dmudrho_T; } +inline su2double CViscosityModel::GetdmudT_rho() { return dmudT_rho; } +inline void CViscosityModel::SetViscosity(su2double T, su2double rho) {} +inline void CViscosityModel::SetDerViscosity(su2double T, su2double rho) {} -inline double CConductivityModel::GetConductivity() { return Kt; } -inline double CConductivityModel::Getdktdrho_T () { return dktdrho_T; } -inline double CConductivityModel::GetdktdT_rho () { return dktdT_rho; } -inline void CConductivityModel::SetConductivity(double T, double rho, double mu, double cp) {} -inline void CConductivityModel::SetDerConductivity(double T, double rho, double dmudrho_T, double dmudT_rho, double cp) {} +inline su2double CConductivityModel::GetConductivity() { return Kt; } +inline su2double CConductivityModel::Getdktdrho_T () { return dktdrho_T; } +inline su2double CConductivityModel::GetdktdT_rho () { return dktdT_rho; } +inline void CConductivityModel::SetConductivity(su2double T, su2double rho, su2double mu, su2double cp) {} +inline void CConductivityModel::SetDerConductivity(su2double T, su2double rho, su2double dmudrho_T, su2double dmudT_rho, su2double cp) {} diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 80d59f74d19..23663a8ef1b 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -55,25 +55,25 @@ using namespace std; class CVariable { protected: - double *Solution, /*!< \brief Solution of the problem. */ + su2double *Solution, /*!< \brief Solution of the problem. */ *Solution_Old; /*!< \brief Old solution of the problem R-K. */ bool Non_Physical; /*!< \brief Non-physical points in the solution (force first order). */ - double *Solution_time_n, /*!< \brief Solution of the problem at time n for dual-time stepping technique. */ + su2double *Solution_time_n, /*!< \brief Solution of the problem at time n for dual-time stepping technique. */ *Solution_time_n1; /*!< \brief Solution of the problem at time n-1 for dual-time stepping technique. */ - double **Gradient; /*!< \brief Gradient of the solution of the problem. */ - double *Limiter; /*!< \brief Limiter of the solution of the problem. */ - double *Solution_Max; /*!< \brief Max solution for limiter computation. */ - double *Solution_Min; /*!< \brief Min solution for limiter computation. */ - double AuxVar; /*!< \brief Auxiliar variable for gradient computation. */ - double *Grad_AuxVar; /*!< \brief Gradient of the auxiliar variable. */ - double Delta_Time; /*!< \brief Time step. */ - double Max_Lambda, /*!< \brief Maximun eingenvalue. */ + su2double **Gradient; /*!< \brief Gradient of the solution of the problem. */ + su2double *Limiter; /*!< \brief Limiter of the solution of the problem. */ + su2double *Solution_Max; /*!< \brief Max solution for limiter computation. */ + su2double *Solution_Min; /*!< \brief Min solution for limiter computation. */ + su2double AuxVar; /*!< \brief Auxiliar variable for gradient computation. */ + su2double *Grad_AuxVar; /*!< \brief Gradient of the auxiliar variable. */ + su2double Delta_Time; /*!< \brief Time step. */ + su2double Max_Lambda, /*!< \brief Maximun eingenvalue. */ Max_Lambda_Inv, /*!< \brief Maximun inviscid eingenvalue. */ Max_Lambda_Visc, /*!< \brief Maximun viscous eingenvalue. */ Lambda; /*!< \brief Value of the eingenvalue. */ - double Sensor; /*!< \brief Pressure sensor for high order central scheme. */ - double *Undivided_Laplacian; /*!< \brief Undivided laplacian of the solution. */ - double *Res_TruncError, /*!< \brief Truncation error for multigrid cycle. */ + su2double Sensor; /*!< \brief Pressure sensor for high order central scheme. */ + su2double *Undivided_Laplacian; /*!< \brief Undivided laplacian of the solution. */ + su2double *Res_TruncError, /*!< \brief Truncation error for multigrid cycle. */ *Residual_Old, /*!< \brief Auxiliar structure for residual smoothing. */ *Residual_Sum; /*!< \brief Auxiliar structure for residual smoothing. */ static unsigned short nDim; /*!< \brief Number of dimension of the problem. */ @@ -118,21 +118,21 @@ class CVariable { * \brief Set the value of the solution. * \param[in] val_solution - Solution of the problem. */ - void SetSolution(double *val_solution); + void SetSolution(su2double *val_solution); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - void SetSolution(unsigned short val_var, double val_solution); + void SetSolution(unsigned short val_var, su2double val_solution); /*! * \brief Add the value of the solution vector to the previous solution (incremental approach). * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - void Add_DeltaSolution(unsigned short val_var, double val_solution); + void Add_DeltaSolution(unsigned short val_var, su2double val_solution); /*! * \brief Set the value of the non-physical point. @@ -144,34 +144,34 @@ class CVariable { * \brief Get the value of the non-physical point. * \return Value of the Non-physical point. */ - double GetNon_Physical(void); + su2double GetNon_Physical(void); /*! * \brief Get the solution. * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution(unsigned short val_var); + su2double GetSolution(unsigned short val_var); /*! * \brief Get the old solution of the problem (Runge-Kutta method) * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Old(unsigned short val_var); + su2double GetSolution_Old(unsigned short val_var); /*! * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Old(double *val_solution_old); + void SetSolution_Old(su2double *val_solution_old); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - void SetSolution_Old(unsigned short val_var, double val_solution_old); + void SetSolution_Old(unsigned short val_var, su2double val_solution_old); /*! * \brief Set old variables to the value of the current variables. @@ -202,7 +202,7 @@ class CVariable { * \brief Specify a vector to set the velocity components of the solution. * \param[in] val_vector - Pointer to the vector. */ - void SetVelSolutionVector(double *val_vector); + void SetVelSolutionVector(su2double *val_vector); /*! * \brief Set to zero velocity components of the solution. @@ -213,7 +213,7 @@ class CVariable { * \brief Specify a vector to set the velocity components of the old solution. * \param[in] val_vector - Pointer to the vector. */ - void SetVelSolutionOldVector(double *val_vector); + void SetVelSolutionOldVector(su2double *val_vector); /*! * \brief Set to zero the solution. @@ -230,7 +230,7 @@ class CVariable { * \param[in] val_var - Number of the variable. * \param[in] val_solution - Value that we want to add to the solution. */ - void AddSolution(unsigned short val_var, double val_solution); + void AddSolution(unsigned short val_var, su2double val_solution); /*! * \brief Add a value to the solution, clipping the values. @@ -239,8 +239,8 @@ class CVariable { * \param[in] lowerlimit - Lower value. * \param[in] upperlimit - Upper value. */ - void AddClippedSolution(unsigned short val_var, double val_solution, - double lowerlimit, double upperlimit); + void AddClippedSolution(unsigned short val_var, su2double val_solution, + su2double lowerlimit, su2double upperlimit); /*! * \brief Update the variables using a conservative format. @@ -249,45 +249,45 @@ class CVariable { * \param[in] val_density - Value of the density. * \param[in] val_density_old - Value of the old density. */ - void AddConservativeSolution(unsigned short val_var, double val_solution, - double val_density, double val_density_old, double lowerlimit, - double upperlimit); + void AddConservativeSolution(unsigned short val_var, su2double val_solution, + su2double val_density, su2double val_density_old, su2double lowerlimit, + su2double upperlimit); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - double *GetSolution(void); + su2double *GetSolution(void); /*! * \brief Get the old solution of the problem (Runge-Kutta method) * \return Pointer to the old solution vector. */ - double *GetSolution_Old(void); + su2double *GetSolution_Old(void); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_time_n(void); + su2double *GetSolution_time_n(void); /*! * \brief Get the solution at time n-1. * \return Pointer to the solution (at time n-1) vector. */ - double *GetSolution_time_n1(void); + su2double *GetSolution_time_n1(void); /*! * \brief Set the value of the old residual. * \param[in] val_residual_old - Pointer to the residual vector. */ - void SetResidual_Old(double *val_residual_old); + void SetResidual_Old(su2double *val_residual_old); /*! * \brief Add a value to the summed residual vector. * \param[in] val_residual - Pointer to the residual vector. */ - void AddResidual_Sum(double *val_residual); + void AddResidual_Sum(su2double *val_residual); /*! * \brief Set summed residual vector to zero value. @@ -303,31 +303,31 @@ class CVariable { * \brief Get the value of the summed residual. * \return Pointer to the summed residual. */ - double *GetResidual_Sum(void); + su2double *GetResidual_Sum(void); /*! * \brief Get the value of the old residual. * \return Pointer to the old residual. */ - double *GetResidual_Old(void); + su2double *GetResidual_Old(void); /*! * \brief Get the value of the summed residual. * \param[in] val_residual - Pointer to the summed residual. */ - void GetResidual_Sum(double *val_residual); + void GetResidual_Sum(su2double *val_residual); /*! * \brief Set auxiliar variables, we are looking for the gradient of that variable. * \param[in] val_auxvar - Value of the auxiliar variable. */ - void SetAuxVar(double val_auxvar); + void SetAuxVar(su2double val_auxvar); /*! * \brief Get the value of the auxiliary variable. * \return Value of the auxiliary variable. */ - double GetAuxVar(void); + su2double GetAuxVar(void); /*! * \brief Set the auxiliary variable gradient to zero value. @@ -339,46 +339,46 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_gradient - Value of the gradient for the index val_dim. */ - void SetAuxVarGradient(unsigned short val_dim, double val_gradient); + void SetAuxVarGradient(unsigned short val_dim, su2double val_gradient); /*! * \brief Add a value to the auxiliary variable gradient. * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient to be added for the index val_dim. */ - void AddAuxVarGradient(unsigned short val_dim, double val_value); + void AddAuxVarGradient(unsigned short val_dim, su2double val_value); /*! * \brief Subtract a value to the auxiliary variable gradient. * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient to be subtracted for the index val_dim. */ - void SubtractAuxVarGradient(unsigned short val_dim, double val_value); + void SubtractAuxVarGradient(unsigned short val_dim, su2double val_value); /*! * \brief Get the gradient of the auxiliary variable. * \return Value of the gradient of the auxiliary variable. */ - double *GetAuxVarGradient(void); + su2double *GetAuxVarGradient(void); /*! * \brief Get the gradient of the auxiliary variable. * \param[in] val_dim - Index of the dimension. * \return Value of the gradient of the auxiliary variable for the dimension val_dim. */ - double GetAuxVarGradient(unsigned short val_dim); + su2double GetAuxVarGradient(unsigned short val_dim); /*! * \brief Add a value to the truncation error. * \param[in] val_truncation_error - Value that we want to add to the truncation error. */ - void AddRes_TruncError(double *val_truncation_error); + void AddRes_TruncError(su2double *val_truncation_error); /*! * \brief Subtract a value to the truncation error. * \param[in] val_truncation_error - Value that we want to subtract to the truncation error. */ - void SubtractRes_TruncError(double *val_truncation_error); + void SubtractRes_TruncError(su2double *val_truncation_error); /*! * \brief Set the truncation error to zero. @@ -404,19 +404,19 @@ class CVariable { * \brief Get the truncation error. * \return Pointer to the truncation error. */ - double *GetResTruncError(void); + su2double *GetResTruncError(void); /*! * \brief Get the truncation error. * \param[in] val_trunc_error - Pointer to the truncation error. */ - void GetResTruncError(double *val_trunc_error); + void GetResTruncError(su2double *val_trunc_error); /*! * \brief Set the gradient of the solution. * \param[in] val_gradient - Gradient of the solution. */ - void SetGradient(double **val_gradient); + void SetGradient(su2double **val_gradient); /*! * \overload @@ -424,7 +424,7 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - void SetGradient(unsigned short val_var, unsigned short val_dim, double val_value); + void SetGradient(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Set to zero the gradient of the solution. @@ -437,7 +437,7 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to add to the solution gradient. */ - void AddGradient(unsigned short val_var, unsigned short val_dim, double val_value); + void AddGradient(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Subtract val_value to the solution gradient. @@ -445,13 +445,13 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to subtract to the solution gradient. */ - void SubtractGradient(unsigned short val_var, unsigned short val_dim, double val_value); + void SubtractGradient(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Get the value of the solution gradient. * \return Value of the gradient solution. */ - double **GetGradient(void); + su2double **GetGradient(void); /*! * \brief Get the value of the solution gradient. @@ -459,290 +459,290 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the solution gradient. */ - double GetGradient(unsigned short val_var, unsigned short val_dim); + su2double GetGradient(unsigned short val_var, unsigned short val_dim); /*! * \brief Set the value of the limiter. * \param[in] val_var - Index of the variable. * \param[in] val_limiter - Value of the limiter for the index val_var. */ - void SetLimiter(unsigned short val_var, double val_limiter); + void SetLimiter(unsigned short val_var, su2double val_limiter); /*! * \brief Set the value of the limiter. * \param[in] val_var - Index of the variable. * \param[in] val_limiter - Value of the limiter for the index val_var. */ - virtual void SetLimiterPrimitive(unsigned short val_species, unsigned short val_var, double val_limiter); + virtual void SetLimiterPrimitive(unsigned short val_species, unsigned short val_var, su2double val_limiter); /*! * \brief Set the value of the limiter. * \param[in] val_species - Value of the limiter for the index val_var. * \param[in] val_var - Index of the variable. */ - virtual double GetLimiterPrimitive(unsigned short val_species, unsigned short val_var); + virtual su2double GetLimiterPrimitive(unsigned short val_species, unsigned short val_var); /*! * \brief Set the value of the max solution. * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the max solution for the index val_var. */ - void SetSolution_Max(unsigned short val_var, double val_solution); + void SetSolution_Max(unsigned short val_var, su2double val_solution); /*! * \brief Set the value of the min solution. * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the min solution for the index val_var. */ - void SetSolution_Min(unsigned short val_var, double val_solution); + void SetSolution_Min(unsigned short val_var, su2double val_solution); /*! * \brief Get the value of the slope limiter. * \return Pointer to the limiters vector. */ - double *GetLimiter(void); + su2double *GetLimiter(void); /*! * \brief Get the value of the slope limiter. * \param[in] val_var - Index of the variable. * \return Value of the limiter vector for the variable val_var. */ - double GetLimiter(unsigned short val_var); + su2double GetLimiter(unsigned short val_var); /*! * \brief Get the value of the min solution. * \param[in] val_var - Index of the variable. * \return Value of the min solution for the variable val_var. */ - double GetSolution_Max(unsigned short val_var); + su2double GetSolution_Max(unsigned short val_var); /*! * \brief Get the value of the min solution. * \param[in] val_var - Index of the variable. * \return Value of the min solution for the variable val_var. */ - double GetSolution_Min(unsigned short val_var); + su2double GetSolution_Min(unsigned short val_var); /*! * \brief Get the value of the preconditioner Beta. * \return Value of the low Mach preconditioner variable Beta */ - virtual double GetPreconditioner_Beta(); + virtual su2double GetPreconditioner_Beta(); /*! * \brief Set the value of the preconditioner Beta. * \param[in] val_Beta - Value of the low Mach preconditioner variable Beta */ - virtual void SetPreconditioner_Beta(double val_Beta); + virtual void SetPreconditioner_Beta(su2double val_Beta); /*! * \brief Get the value of the wind gust * \return Value of the wind gust */ - virtual double* GetWindGust(); + virtual su2double* GetWindGust(); /*! * \brief Set the value of the wind gust * \param[in] val_WindGust - Value of the wind gust */ - virtual void SetWindGust(double* val_WindGust); + virtual void SetWindGust(su2double* val_WindGust); /*! * \brief Get the value of the derivatives of the wind gust * \return Value of the derivatives of the wind gust */ - virtual double* GetWindGustDer(); + virtual su2double* GetWindGustDer(); /*! * \brief Set the value of the derivatives of the wind gust * \param[in] val_WindGust - Value of the derivatives of the wind gust */ - virtual void SetWindGustDer(double* val_WindGust); + virtual void SetWindGustDer(su2double* val_WindGust); /*! * \brief Set the value of the time step. * \param[in] val_delta_time - Value of the time step. */ - void SetDelta_Time(double val_delta_time); + void SetDelta_Time(su2double val_delta_time); /*! * \brief Set the value of the time step. * \param[in] val_delta_time - Value of the time step. * \param[in] iSpecies - Index of the Species . */ - virtual void SetDelta_Time(double val_delta_time, unsigned short iSpecies); + virtual void SetDelta_Time(su2double val_delta_time, unsigned short iSpecies); /*! * \brief Get the value of the time step. * \return Value of the time step. */ - double GetDelta_Time(void); + su2double GetDelta_Time(void); /*! * \brief Get the value of the time step. * \param[in] iSpecies - Index of the Species * \return Value of the time step. */ - virtual double GetDelta_Time(unsigned short iSpecies); + virtual su2double GetDelta_Time(unsigned short iSpecies); /*! * \brief Set the value of the maximum eigenvalue. * \param[in] val_max_lambda - Value of the maximum eigenvalue. */ - void SetMax_Lambda(double val_max_lambda); + void SetMax_Lambda(su2double val_max_lambda); /*! * \brief Set the value of the maximum eigenvalue for the inviscid terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the inviscid terms of the PDE. */ - void SetMax_Lambda_Inv(double val_max_lambda); + void SetMax_Lambda_Inv(su2double val_max_lambda); /*! * \brief Set the value of the maximum eigenvalue for the inviscid terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the inviscid terms of the PDE. * \param[in] val_species - Value of the species index to set the maximum eigenvalue. */ - virtual void SetMax_Lambda_Inv(double val_max_lambda, unsigned short val_species); + virtual void SetMax_Lambda_Inv(su2double val_max_lambda, unsigned short val_species); /*! * \brief Set the value of the maximum eigenvalue for the viscous terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the viscous terms of the PDE. */ - void SetMax_Lambda_Visc(double val_max_lambda); + void SetMax_Lambda_Visc(su2double val_max_lambda); /*! * \brief Set the value of the maximum eigenvalue for the viscous terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the viscous terms of the PDE. * \param[in] val_species - Index of the species to set the maximum eigenvalue of the viscous terms. */ - virtual void SetMax_Lambda_Visc(double val_max_lambda, unsigned short val_species); + virtual void SetMax_Lambda_Visc(su2double val_max_lambda, unsigned short val_species); /*! * \brief Add a value to the maximum eigenvalue. * \param[in] val_max_lambda - Value of the maximum eigenvalue. */ - void AddMax_Lambda(double val_max_lambda); + void AddMax_Lambda(su2double val_max_lambda); /*! * \brief Add a value to the maximum eigenvalue for the inviscid terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the inviscid terms of the PDE. */ - void AddMax_Lambda_Inv(double val_max_lambda); + void AddMax_Lambda_Inv(su2double val_max_lambda); /*! * \brief Add a value to the maximum eigenvalue for the viscous terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the viscous terms of the PDE. */ - void AddMax_Lambda_Visc(double val_max_lambda); + void AddMax_Lambda_Visc(su2double val_max_lambda); /*! * \brief Get the value of the maximum eigenvalue. * \return the value of the maximum eigenvalue. */ - double GetMax_Lambda(void); + su2double GetMax_Lambda(void); /*! * \brief Get the value of the maximum eigenvalue for the inviscid terms of the PDE. * \return the value of the maximum eigenvalue for the inviscid terms of the PDE. */ - double GetMax_Lambda_Inv(void); + su2double GetMax_Lambda_Inv(void); /*! * \brief Get the value of the maximum eigenvalue for the viscous terms of the PDE. * \return the value of the maximum eigenvalue for the viscous terms of the PDE. */ - double GetMax_Lambda_Visc(void); + su2double GetMax_Lambda_Visc(void); /*! * \brief Set the value of the spectral radius. * \param[in] val_lambda - Value of the spectral radius. */ - void SetLambda(double val_lambda); + void SetLambda(su2double val_lambda); /*! * \brief Set the value of the spectral radius. * \param[in] val_lambda - Value of the spectral radius. * \param[in] val_iSpecies -Index of species */ - virtual void SetLambda(double val_lambda, unsigned short val_iSpecies); + virtual void SetLambda(su2double val_lambda, unsigned short val_iSpecies); /*! * \brief Add the value of the spectral radius. * \param[in] val_lambda - Value of the spectral radius. */ - void AddLambda(double val_lambda); + void AddLambda(su2double val_lambda); /*! * \brief Add the value of the spectral radius. * \param[in] val_iSpecies -Index of species * \param[in] val_lambda - Value of the spectral radius. */ - virtual void AddLambda(double val_lambda, unsigned short val_iSpecies); + virtual void AddLambda(su2double val_lambda, unsigned short val_iSpecies); /*! * \brief Get the value of the spectral radius. * \return Value of the spectral radius. */ - double GetLambda(void); + su2double GetLambda(void); /*! * \brief Get the value of the spectral radius. * \param[in] val_iSpecies -Index of species * \return Value of the spectral radius. */ - virtual double GetLambda(unsigned short val_iSpecies); + virtual su2double GetLambda(unsigned short val_iSpecies); /*! * \brief Set pressure sensor. * \param[in] val_sensor - Value of the pressure sensor. */ - void SetSensor(double val_sensor); + void SetSensor(su2double val_sensor); /*! * \brief Set pressure sensor. * \param[in] val_sensor - Value of the pressure sensor. * \param[in] val_sensor - Index of the Species. */ - virtual void SetSensor(double val_sensor, unsigned short iSpecies); + virtual void SetSensor(su2double val_sensor, unsigned short iSpecies); /*! * \brief Get the pressure sensor. * \return Value of the pressure sensor. */ - double GetSensor(void); + su2double GetSensor(void); /*! * \brief Get the pressure sensor. * \param[in] iSpecies - index of species * \return Value of the pressure sensor. */ - virtual double GetSensor(unsigned short iSpecies); + virtual su2double GetSensor(unsigned short iSpecies); /*! * \brief Set the value of the undivided laplacian of the solution. * \param[in] val_var - Index of the variable. * \param[in] val_undivided_laplacian - Value of the undivided solution for the index val_var. */ - void SetUndivided_Laplacian(unsigned short val_var, double val_undivided_laplacian); + void SetUndivided_Laplacian(unsigned short val_var, su2double val_undivided_laplacian); /*! * \brief Add the value of the undivided laplacian of the solution. * \param[in] val_und_lapl - Value of the undivided solution. */ - void AddUnd_Lapl(double *val_und_lapl); + void AddUnd_Lapl(su2double *val_und_lapl); /*! * \brief Subtract the value of the undivided laplacian of the solution. * \param[in] val_und_lapl - Value of the undivided solution. */ - void SubtractUnd_Lapl(double *val_und_lapl); + void SubtractUnd_Lapl(su2double *val_und_lapl); /*! * \brief Subtract the value of the undivided laplacian of the solution. * \param[in] val_var - Variable of the undivided laplacian. * \param[in] val_und_lapl - Value of the undivided solution. */ - void SubtractUnd_Lapl(unsigned short val_var, double val_und_lapl); + void SubtractUnd_Lapl(unsigned short val_var, su2double val_und_lapl); /*! * \brief Set the undivided laplacian of the solution to zero. @@ -754,106 +754,106 @@ class CVariable { * \param[in] val_var - Variable of the undivided laplacian. * \param[in] val_und_lapl - Value of the undivided laplacian. */ - void SetUnd_Lapl(unsigned short val_var, double val_und_lapl); + void SetUnd_Lapl(unsigned short val_var, su2double val_und_lapl); /*! * \brief Get the undivided laplacian of the solution. * \return Pointer to the undivided laplacian vector. */ - double *GetUndivided_Laplacian(void); + su2double *GetUndivided_Laplacian(void); /*! * \brief Get the undivided laplacian of the solution. * \param[in] val_var - Variable of the undivided laplacian. * \return Value of the undivided laplacian vector. */ - double GetUndivided_Laplacian(unsigned short val_var); + su2double GetUndivided_Laplacian(unsigned short val_var); /*! * \brief A virtual member. * \return Value of the flow density. */ - virtual double GetDensity(void); + virtual su2double GetDensity(void); /*! * \brief A virtual member. * \return Value of the flow density. */ - virtual double GetDensity(unsigned short val_iSpecies); + virtual su2double GetDensity(unsigned short val_iSpecies); /*! * \brief A virtual member. * \param[in] val_Species - Index of species s. * \return Value of the mass fraction of species s. */ - virtual double GetMassFraction(unsigned short val_Species); + virtual su2double GetMassFraction(unsigned short val_Species); /*! * \brief A virtual member. * \return Value of the flow energy. */ - virtual double GetEnergy(void); + virtual su2double GetEnergy(void); /*! * \brief A virtual member. * \return Pointer to the force projection vector. */ - virtual double *GetForceProj_Vector(void); + virtual su2double *GetForceProj_Vector(void); /*! * \brief A virtual member. * \return Pointer to the objective function source. */ - virtual double *GetObjFuncSource(void); + virtual su2double *GetObjFuncSource(void); /*! * \brief A virtual member. * \return Pointer to the internal boundary vector. */ - virtual double *GetIntBoundary_Jump(void); + virtual su2double *GetIntBoundary_Jump(void); /*! * \brief A virtual member. * \return Value of the eddy viscosity. */ - virtual double GetEddyViscosity(void); + virtual su2double GetEddyViscosity(void); /*! * \brief A virtual member. * \return Value of the eddy viscosity. */ - virtual double GetEddyViscosityInc(void); + virtual su2double GetEddyViscosityInc(void); /*! * \brief A virtual member. * \return Value of the flow enthalpy. */ - virtual double GetEnthalpy(void); + virtual su2double GetEnthalpy(void); /*! * \brief A virtual member. * \return Value of the flow pressure. */ - virtual double GetPressure(void); + virtual su2double GetPressure(void); /*! * \brief A virtual member. * \return Value of the flow pressure. */ - virtual double GetPressureInc(void); + virtual su2double GetPressureInc(void); /*! * \brief A virtual member. * \return Value of the linearized pressure. */ - virtual double GetDeltaPressure(void); + virtual su2double GetDeltaPressure(void); /*! * \brief A virtual member. * \param[in] val_vector - Direction of projection. * \return Value of the projected velocity. */ - virtual double GetProjVel(double *val_vector); + virtual su2double GetProjVel(su2double *val_vector); /*! * \brief A virtual member. @@ -861,128 +861,128 @@ class CVariable { * \param[in] val_species - Index of the desired species. * \return Value of the projected velocity. */ - virtual double GetProjVel(double *val_vector, unsigned short val_species); + virtual su2double GetProjVel(su2double *val_vector, unsigned short val_species); /*! * \brief A virtual member. * \return Value of the sound speed. */ - virtual double GetSoundSpeed(void); + virtual su2double GetSoundSpeed(void); /*! * \brief A virtual member. * \return Value of the density for the incompressible flow. */ - virtual double GetDensityInc(void); + virtual su2double GetDensityInc(void); /*! * \brief A virtual member. * \return Value of the levelset for the freesurface flows. */ - virtual double GetLevelSet(void); + virtual su2double GetLevelSet(void); /*! * \brief A virtual member. * \return Value of the distance for the freesurface flows. */ - virtual double GetDistance(void); + virtual su2double GetDistance(void); /*! * \brief A virtual member. * \return Value of the beta for the incompressible flow. */ - virtual double GetBetaInc2(void); + virtual su2double GetBetaInc2(void); /*! * \brief A virtual member. * \return Value of the temperature. */ - virtual double GetTemperature(void); + virtual su2double GetTemperature(void); /*! * \brief A virtual member. * \return Value of the vibrational-electronic temperature. */ - virtual double GetTemperature_ve(void); + virtual su2double GetTemperature_ve(void); /*! * \brief A virtual member -- Get the mixture specific heat at constant volume (trans.-rot.). * \return \f$\rho C^{t-r}_{v} \f$ */ - virtual double GetRhoCv_tr(void); + virtual su2double GetRhoCv_tr(void); /*! * \brief A virtual member -- Get the mixture specific heat at constant volume (vib.-el.). * \return \f$\rho C^{v-e}_{v} \f$ */ - virtual double GetRhoCv_ve(void); + virtual su2double GetRhoCv_ve(void); /*! * \brief A virtual member. * \param[in] val_dim - Index of the dimension. * \return Value of the velocity for the dimension val_dim. */ - virtual double GetVelocity(unsigned short val_dim); + virtual su2double GetVelocity(unsigned short val_dim); /*! * \brief A virtual member. * \return Norm 2 of the velocity vector. */ - virtual double GetVelocity2(void); + virtual su2double GetVelocity2(void); /*! * \brief A virtual member. * \return Norm 2 of the velocity vector of Fluid val_species. */ - virtual double GetVelocity2(unsigned short val_species); + virtual su2double GetVelocity2(unsigned short val_species); /*! * \brief A virtual member. * \return The laminar viscosity of the flow. */ - virtual double GetLaminarViscosity(void); + virtual su2double GetLaminarViscosity(void); /*! * \brief A virtual member. * \return The laminar viscosity of the incompressible flow. */ - virtual double GetLaminarViscosityInc(void); + virtual su2double GetLaminarViscosityInc(void); /*! * \brief A virtual member. * \return The laminar viscosity of the flow. */ - virtual double GetLaminarViscosity(unsigned short iSpecies); + virtual su2double GetLaminarViscosity(unsigned short iSpecies); /*! * \brief A virtual member. * \return Value of the species diffusion coefficient. */ - virtual double* GetDiffusionCoeff(void); + virtual su2double* GetDiffusionCoeff(void); /*! * \brief A virtual member. * \return Value of the thermal conductivity (translational/rotational) */ - virtual double GetThermalConductivity(void); + virtual su2double GetThermalConductivity(void); /*! * \brief A virtual member. * \return Value of the specific heat at constant P */ - virtual double GetSpecificHeatCp(void); + virtual su2double GetSpecificHeatCp(void); /*! * \brief A virtual member. * \return Value of the thermal conductivity (vibrational) */ - virtual double GetThermalConductivity_ve(void); + virtual su2double GetThermalConductivity_ve(void); /*! * \brief A virtual member. * \return Sets separation intermittency */ - virtual void SetGammaSep(double gamma_sep); + virtual void SetGammaSep(su2double gamma_sep); /*! * \brief A virtual member. @@ -994,50 +994,50 @@ class CVariable { * \brief A virtual member. * \return Returns intermittency */ - virtual double GetIntermittency(); + virtual su2double GetIntermittency(); /*! * \brief A virtual member. * \param[in] val_dim - Index of the dimension. * \return Value of the vorticity. */ - virtual double *GetVorticity(void); + virtual su2double *GetVorticity(void); /*! * \brief A virtual member. * \return Value of the rate of strain magnitude. */ - virtual double GetStrainMag(void); + virtual su2double GetStrainMag(void); /*! * \brief A virtual member. * \param[in] val_ForceProj_Vector - Pointer to the force projection vector. */ - virtual void SetForceProj_Vector(double *val_ForceProj_Vector); + virtual void SetForceProj_Vector(su2double *val_ForceProj_Vector); /*! * \brief A virtual member. * \param[in] val_SetObjFuncSource - Pointer to the objective function source. */ - virtual void SetObjFuncSource(double *val_SetObjFuncSource); + virtual void SetObjFuncSource(su2double *val_SetObjFuncSource); /*! * \brief A virtual member. * \param[in] val_IntBoundary_Jump - Pointer to the interior boundary jump. */ - virtual void SetIntBoundary_Jump(double *val_IntBoundary_Jump); + virtual void SetIntBoundary_Jump(su2double *val_IntBoundary_Jump); /*! * \brief A virtual member. * \param[in] eddy_visc - Value of the eddy viscosity. */ - virtual void SetEddyViscosity(double eddy_visc); + virtual void SetEddyViscosity(su2double eddy_visc); /*! * \brief A virtual member. * \param[in] eddy_visc - Value of the eddy viscosity. */ - virtual void SetEddyViscosityInc(double eddy_visc); + virtual void SetEddyViscosityInc(su2double eddy_visc); /*! * \brief A virtual member. @@ -1062,43 +1062,43 @@ class CVariable { /*! * \brief A virtual member. */ - virtual bool Cons2PrimVar(CConfig *config, double *U, double *V, - double *dPdU, double *dTdU, - double *dTvedU); + virtual bool Cons2PrimVar(CConfig *config, su2double *U, su2double *V, + su2double *dPdU, su2double *dTdU, + su2double *dTvedU); /*! * \brief A virtual member. */ - virtual void Prim2ConsVar(CConfig *config, double *V, double *U); + virtual void Prim2ConsVar(CConfig *config, su2double *V, su2double *U); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_Compressible(double SharpEdge_Distance, bool check, CConfig *config); + virtual bool SetPrimVar_Compressible(su2double SharpEdge_Distance, bool check, CConfig *config); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_Incompressible(double SharpEdge_Distance, bool check, CConfig *config); + virtual bool SetPrimVar_Incompressible(su2double SharpEdge_Distance, bool check, CConfig *config); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_FreeSurface(double SharpEdge_Distance, bool check, CConfig *config); + virtual bool SetPrimVar_FreeSurface(su2double SharpEdge_Distance, bool check, CConfig *config); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_Compressible(double eddy_visc, double turb_ke, CConfig *config); + virtual bool SetPrimVar_Compressible(su2double eddy_visc, su2double turb_ke, CConfig *config); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_Compressible(double eddy_visc, double turb_ke, CFluidModel *FluidModel); + virtual bool SetPrimVar_Compressible(su2double eddy_visc, su2double turb_ke, CFluidModel *FluidModel); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_Incompressible(double Density_Inf, CConfig *config); + virtual bool SetPrimVar_Incompressible(su2double Density_Inf, CConfig *config); /*! * \brief A virtual member. @@ -1108,97 +1108,97 @@ class CVariable { /*! * \brief A virtual member. */ - virtual bool SetPrimVar_Incompressible(double Density_Inf, double Viscosity_Inf, double eddy_visc, double turb_ke, CConfig *config); + virtual bool SetPrimVar_Incompressible(su2double Density_Inf, su2double Viscosity_Inf, su2double eddy_visc, su2double turb_ke, CConfig *config); /*! * \brief A virtual member. */ - virtual bool SetPrimVar_FreeSurface(double eddy_visc, double turb_ke, CConfig *config); + virtual bool SetPrimVar_FreeSurface(su2double eddy_visc, su2double turb_ke, CConfig *config); /*! * \brief A virtual member. */ - virtual double GetPrimitive(unsigned short val_var); + virtual su2double GetPrimitive(unsigned short val_var); /*! * \brief A virtual member. */ - virtual void SetPrimitive(unsigned short val_var, double val_prim); + virtual void SetPrimitive(unsigned short val_var, su2double val_prim); /*! * \brief A virtual member. */ - virtual void SetPrimitive(double *val_prim); + virtual void SetPrimitive(su2double *val_prim); /*! * \brief A virtual member. */ - virtual double *GetPrimitive(void); + virtual su2double *GetPrimitive(void); /*! * \brief A virtual member. */ - virtual double GetSecondary(unsigned short val_var); + virtual su2double GetSecondary(unsigned short val_var); /*! * \brief A virtual member. */ - virtual void SetSecondary(unsigned short val_var, double val_secondary); + virtual void SetSecondary(unsigned short val_var, su2double val_secondary); /*! * \brief A virtual member. */ - virtual void SetSecondary(double *val_secondary); + virtual void SetSecondary(su2double *val_secondary); /*! * \brief A virtual member. */ - virtual void SetdPdrho_e(double dPdrho_e); + virtual void SetdPdrho_e(su2double dPdrho_e); /*! * \brief A virtual member. */ - virtual void SetdPde_rho(double dPde_rho); + virtual void SetdPde_rho(su2double dPde_rho); /*! * \brief A virtual member. */ - virtual void SetdTdrho_e(double dTdrho_e); + virtual void SetdTdrho_e(su2double dTdrho_e); /*! * \brief A virtual member. */ - virtual void SetdTde_rho(double dTde_rho); + virtual void SetdTde_rho(su2double dTde_rho); /*! * \brief A virtual member. */ - virtual void Setdmudrho_T(double dmudrho_T); + virtual void Setdmudrho_T(su2double dmudrho_T); /*! * \brief A virtual member. */ - virtual void SetdmudT_rho(double dmudT_rho); + virtual void SetdmudT_rho(su2double dmudT_rho); /*! * \brief A virtual member. */ - virtual void Setdktdrho_T(double dktdrho_T); + virtual void Setdktdrho_T(su2double dktdrho_T); /*! * \brief A virtual member. */ - virtual void SetdktdT_rho(double dktdT_rho); + virtual void SetdktdT_rho(su2double dktdT_rho); /*! * \brief A virtual member. */ - virtual double *GetSecondary(void); + virtual su2double *GetSecondary(void); /*! * \brief A virtual member. */ - virtual void SetDensityInc(double val_density); + virtual void SetDensityInc(su2double val_density); /*! * \brief A virtual member. @@ -1213,19 +1213,19 @@ class CVariable { /*! * \brief A virtual member. */ - virtual void SetBetaInc2(double val_betainc2); + virtual void SetBetaInc2(su2double val_betainc2); /*! * \brief A virtual member. * \param[in] val_phi - Value of the adjoint velocity. */ - virtual void SetPhi_Old(double *val_phi); + virtual void SetPhi_Old(su2double *val_phi); /*! * \brief A virtual member. * \param[in] Gamma - Ratio of Specific heats */ - virtual bool SetPressure(double Gamma); + virtual bool SetPressure(su2double Gamma); /*! * \brief A virtual member. @@ -1236,7 +1236,7 @@ class CVariable { /*! * \brief A virtual member. */ - virtual bool SetPressure(double Gamma, double turb_ke); + virtual bool SetPressure(su2double Gamma, su2double turb_ke); /*! * \brief A virtual member. @@ -1246,48 +1246,48 @@ class CVariable { /*! * \brief Calculates vib.-el. energy per mass, \f$e^{vib-el}_s\f$, for input species (not including KE) */ - virtual double CalcEve(double *V, CConfig *config, unsigned short val_Species); + virtual su2double CalcEve(su2double *V, CConfig *config, unsigned short val_Species); /*! * \brief Calculates enthalpy per mass, \f$h_s\f$, for input species (not including KE) */ - virtual double CalcHs(double *V, CConfig *config, unsigned short val_Species); + virtual su2double CalcHs(su2double *V, CConfig *config, unsigned short val_Species); /*! * \brief Calculates enthalpy per mass, \f$Cv_s\f$, for input species (not including KE) */ - virtual double CalcCvve(double val_Tve, CConfig *config, unsigned short val_Species); + virtual su2double CalcCvve(su2double val_Tve, CConfig *config, unsigned short val_Species); /*! * \brief A virtual member. * \param[in] config - Configuration settings */ - virtual void CalcdPdU(double *V, CConfig *config, double *dPdU); + virtual void CalcdPdU(su2double *V, CConfig *config, su2double *dPdU); /*! * \brief Set partial derivative of temperature w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$ */ - virtual void CalcdTdU(double *V, CConfig *config, double *dTdU); + virtual void CalcdTdU(su2double *V, CConfig *config, su2double *dTdU); /*! * \brief Set partial derivative of temperature w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$ */ - virtual void CalcdTvedU(double *V, CConfig *config, double *dTdU); + virtual void CalcdTvedU(su2double *V, CConfig *config, su2double *dTdU); /*! * \brief A virtual member. */ - virtual double *GetdPdU(void); + virtual su2double *GetdPdU(void); /*! * \brief A virtual member. */ - virtual double *GetdTdU(void); + virtual su2double *GetdTdU(void); /*! * \brief A virtual member. */ - virtual double *GetdTvedU(void); + virtual su2double *GetdTvedU(void); /*! * \brief A virtual member. @@ -1299,13 +1299,13 @@ class CVariable { * \param[in] val_velocity - Value of the velocity. * \param[in] Gamma - Ratio of Specific heats */ - virtual void SetDeltaPressure(double *val_velocity, double Gamma); + virtual void SetDeltaPressure(su2double *val_velocity, su2double Gamma); /*! * \brief A virtual member. * \param[in] Gamma - Ratio of specific heats. */ - virtual bool SetSoundSpeed(double Gamma); + virtual bool SetSoundSpeed(su2double Gamma); /*! * \brief A virtual member. @@ -1322,13 +1322,13 @@ class CVariable { * \brief A virtual member. * \param[in] Gas_Constant - Value of the Gas Constant */ - virtual bool SetTemperature(double Gas_Constant); + virtual bool SetTemperature(su2double Gas_Constant); /*! * \brief Sets the vibrational electronic temperature of the flow. * \return Value of the temperature of the flow. */ - virtual bool SetTemperature_ve(double val_Tve); + virtual bool SetTemperature_ve(su2double val_Tve); /*! * \brief A virtual member. @@ -1346,19 +1346,19 @@ class CVariable { * \brief A virtual member. * \param[in] config - Configuration parameters. */ - virtual void SetPrimitive(CConfig *config, double *Coord); + virtual void SetPrimitive(CConfig *config, su2double *Coord); /*! * \brief A virtual member. * \param[in] Temperature_Wall - Value of the Temperature at the wall */ - virtual void SetWallTemperature(double Temperature_Wall); + virtual void SetWallTemperature(su2double Temperature_Wall); /*! * \brief A virtual member. * \param[in] Temperature_Wall - Value of the Temperature at the wall */ - virtual void SetWallTemperature(double* Temperature_Wall); + virtual void SetWallTemperature(su2double* Temperature_Wall); /*! * \brief Set the thermal coefficient. @@ -1374,57 +1374,57 @@ class CVariable { /*! * \brief A virtual member. */ - virtual void SetStress(unsigned short iVar, unsigned short jVar, double val_stress); + virtual void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief A virtual member. */ - virtual void AddStress(unsigned short iVar, unsigned short jVar, double val_stress); + virtual void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief A virtual member. */ - virtual void SetStress_FEM(unsigned short iVar, double val_stress); + virtual void SetStress_FEM(unsigned short iVar, su2double val_stress); /*! * \brief A virtual member. */ - virtual void AddStress_FEM(unsigned short iVar, double val_stress); + virtual void AddStress_FEM(unsigned short iVar, su2double val_stress); /*! * \brief A virtual member. */ - virtual double *GetStress_FEM(void); + virtual su2double *GetStress_FEM(void); /*! * \brief A virtual member. */ - virtual double **GetStress(void); + virtual su2double **GetStress(void); /*! * \brief A virtual member. */ - virtual void SetVonMises_Stress(double val_stress); + virtual void SetVonMises_Stress(su2double val_stress); /*! * \brief A virtual member. */ - virtual double GetVonMises_Stress(void); + virtual su2double GetVonMises_Stress(void); /*! * \brief A virtual member. */ - virtual void SetFlow_Pressure(double val_pressure); + virtual void SetFlow_Pressure(su2double val_pressure); /*! * \brief A virtual member. */ - virtual double GetFlow_Pressure(void); + virtual su2double GetFlow_Pressure(void); /*! * \brief A virtual member. @@ -1445,28 +1445,28 @@ class CVariable { /*! * \brief A virtual member. */ - virtual void SetTraction(unsigned short iVar, unsigned short jVar, double val_traction); + virtual void SetTraction(unsigned short iVar, unsigned short jVar, su2double val_traction); /*! * \brief A virtual member. */ - virtual void AddTraction(unsigned short iVar, unsigned short jVar, double val_traction); + virtual void AddTraction(unsigned short iVar, unsigned short jVar, su2double val_traction); /*! * \brief A virtual member. */ - virtual double **GetTraction(void); + virtual su2double **GetTraction(void); /*! * \brief A virtual member. */ - virtual void Add_SurfaceLoad_Res(double *val_surfForce); + virtual void Add_SurfaceLoad_Res(su2double *val_surfForce); /*! * \brief A virtual member. */ - virtual double *Get_SurfaceLoad_Res(void); + virtual su2double *Get_SurfaceLoad_Res(void); /*! * \brief A virtual member. @@ -1476,17 +1476,17 @@ class CVariable { /*! * \brief A virtual member. */ - virtual void Set_FlowTraction(double *val_flowTraction); + virtual void Set_FlowTraction(su2double *val_flowTraction); /*! * \brief A virtual member. */ - virtual void Add_FlowTraction(double *val_flowTraction); + virtual void Add_FlowTraction(su2double *val_flowTraction); /*! * \brief A virtual member. */ - virtual double *Get_FlowTraction(void); + virtual su2double *Get_FlowTraction(void); /*! * \brief A virtual member. @@ -1503,19 +1503,19 @@ class CVariable { * \brief A virtual member. * \param[in] val_velocity - Pointer to the velocity. */ - virtual void SetVelocity_Old(double *val_velocity); + virtual void SetVelocity_Old(su2double *val_velocity); /*! * \brief A virtual member. * \param[in] val_velocity - Pointer to the velocity. */ - virtual void SetVelocityInc_Old(double *val_velocity); + virtual void SetVelocityInc_Old(su2double *val_velocity); /*! * \brief A virtual member. * \param[in] laminarViscosity */ - virtual void SetLaminarViscosity(double laminarViscosity); + virtual void SetLaminarViscosity(su2double laminarViscosity); /*! * \brief A virtual member. @@ -1527,13 +1527,13 @@ class CVariable { * \brief A virtual member. * \param[in] val_laminar_viscosity_inc - Value of the laminar viscosity (incompressible flows). */ - virtual void SetLaminarViscosityInc(double val_laminar_viscosity_inc); + virtual void SetLaminarViscosityInc(su2double val_laminar_viscosity_inc); /*! * \brief A virtual member. * \param[in] config - Definition of the particular problem. */ - virtual void SetThermalConductivity(double thermalConductivity); + virtual void SetThermalConductivity(su2double thermalConductivity); /*! * \brief A virtual member. @@ -1545,7 +1545,7 @@ class CVariable { * \brief A virtual member. * \param[in] config - Definition of the particular problem. */ - virtual void SetSpecificHeatCp(double Cp); + virtual void SetSpecificHeatCp(su2double Cp); /*! * \brief A virtual member. @@ -1578,7 +1578,7 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to add to the gradient of the primitive variables. */ - virtual void AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + virtual void AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief A virtual member. @@ -1586,7 +1586,7 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to subtract to the gradient of the primitive variables. */ - virtual void SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + virtual void SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief A virtual member. @@ -1594,14 +1594,14 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the primitive variables gradient. */ - virtual double GetGradient_Primitive(unsigned short val_var, unsigned short val_dim); + virtual su2double GetGradient_Primitive(unsigned short val_var, unsigned short val_dim); /*! * \brief A virtual member. * \param[in] val_var - Index of the variable. * \return Value of the primitive variables gradient. */ - virtual double GetLimiter_Primitive(unsigned short val_var); + virtual su2double GetLimiter_Primitive(unsigned short val_var); /*! * \brief A virtual member. @@ -1609,26 +1609,26 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - virtual void SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + virtual void SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief A virtual member. * \param[in] val_var - Index of the variable. * \param[in] val_value - Value of the gradient. */ - virtual void SetLimiter_Primitive(unsigned short val_var, double val_value); + virtual void SetLimiter_Primitive(unsigned short val_var, su2double val_value); /*! * \brief A virtual member. * \return Value of the primitive variables gradient. */ - virtual double **GetGradient_Primitive(void); + virtual su2double **GetGradient_Primitive(void); /*! * \brief A virtual member. * \return Value of the primitive variables gradient. */ - virtual double *GetLimiter_Primitive(void); + virtual su2double *GetLimiter_Primitive(void); /*! * \brief A virtual member. @@ -1641,7 +1641,7 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to add to the gradient of the Secondary variables. */ - virtual void AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value); + virtual void AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief A virtual member. @@ -1649,7 +1649,7 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to subtract to the gradient of the Secondary variables. */ - virtual void SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value); + virtual void SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief A virtual member. @@ -1657,14 +1657,14 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the Secondary variables gradient. */ - virtual double GetGradient_Secondary(unsigned short val_var, unsigned short val_dim); + virtual su2double GetGradient_Secondary(unsigned short val_var, unsigned short val_dim); /*! * \brief A virtual member. * \param[in] val_var - Index of the variable. * \return Value of the Secondary variables gradient. */ - virtual double GetLimiter_Secondary(unsigned short val_var); + virtual su2double GetLimiter_Secondary(unsigned short val_var); /*! * \brief A virtual member. @@ -1672,26 +1672,26 @@ class CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - virtual void SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value); + virtual void SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief A virtual member. * \param[in] val_var - Index of the variable. * \param[in] val_value - Value of the gradient. */ - virtual void SetLimiter_Secondary(unsigned short val_var, double val_value); + virtual void SetLimiter_Secondary(unsigned short val_var, su2double val_value); /*! * \brief A virtual member. * \return Value of the Secondary variables gradient. */ - virtual double **GetGradient_Secondary(void); + virtual su2double **GetGradient_Secondary(void); /*! * \brief A virtual member. * \return Value of the Secondary variables gradient. */ - virtual double *GetLimiter_Secondary(void); + virtual su2double *GetLimiter_Secondary(void); /*! * \brief Set the blending function for the blending of k-w and k-eps. @@ -1699,82 +1699,82 @@ class CVariable { * \param[in] val_density - Value of the density. * \param[in] val_dist - Value of the distance to the wall. */ - virtual void SetBlendingFunc(double val_viscosity, double val_dist, double val_density); + virtual void SetBlendingFunc(su2double val_viscosity, su2double val_dist, su2double val_density); /*! * \brief Get the first blending function of the SST model. */ - virtual double GetF1blending(void); + virtual su2double GetF1blending(void); /*! * \brief Get the second blending function of the SST model. */ - virtual double GetF2blending(void); + virtual su2double GetF2blending(void); /*! * \brief Get the value of the cross diffusion of tke and omega. */ - virtual double GetCrossDiff(void) { return 0.0; }; + virtual su2double GetCrossDiff(void) { return 0.0; }; /*! * \brief Get the value of the eddy viscosity. * \return the value of the eddy viscosity. */ - virtual double GetmuT(void); + virtual su2double GetmuT(void); /*! * \brief Set the value of the eddy viscosity. * \param[in] val_muT */ - virtual void SetmuT(double val_muT); + virtual void SetmuT(su2double val_muT); /*! * \brief Add a value to the maximum eigenvalue for the inviscid terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the inviscid terms of the PDE. * \param[in] iSpecies - Value of iSpecies to which the eigenvalue belongs */ - virtual void AddMax_Lambda_Inv(double val_max_lambda, unsigned short iSpecies); + virtual void AddMax_Lambda_Inv(su2double val_max_lambda, unsigned short iSpecies); /*! * \brief Add a value to the maximum eigenvalue for the viscous terms of the PDE. * \param[in] val_max_lambda - Value of the maximum eigenvalue for the viscous terms of the PDE. * \param[in] iSpecies - Value of iSpecies to which the eigenvalue belongs */ - virtual void AddMax_Lambda_Visc(double val_max_lambda, unsigned short iSpecies); + virtual void AddMax_Lambda_Visc(su2double val_max_lambda, unsigned short iSpecies); /*! * \brief A virtual member. * \param[in] val_difflevelset - Value of the diff level set (value-target). */ - virtual void SetDiffLevelSet(double val_difflevelset); + virtual void SetDiffLevelSet(su2double val_difflevelset); /*! * \brief A virtual member. */ - virtual double GetDiffLevelSet(void); + virtual su2double GetDiffLevelSet(void); /*! * \brief A virtual member. * \param[in] val_source - Value of the time spectral source. */ - virtual void SetTimeSpectral_Source(unsigned short val_var, double val_source); + virtual void SetTimeSpectral_Source(unsigned short val_var, su2double val_source); /*! * \brief A virtual member. */ - virtual double GetTimeSpectral_Source(unsigned short val_var); + virtual su2double GetTimeSpectral_Source(unsigned short val_var); /*! * \brief Set the Eddy Viscosity Sensitivity of the problem. * \param[in] val_EddyViscSens - Eddy Viscosity Sensitivity. */ - virtual void SetEddyViscSens(double *val_EddyViscSens, unsigned short numTotalVar); + virtual void SetEddyViscSens(su2double *val_EddyViscSens, unsigned short numTotalVar); /*! * \brief Get the Eddy Viscosity Sensitivity of the problem. * \return Pointer to the Eddy Viscosity Sensitivity. */ - virtual double *GetEddyViscSens(void); + virtual su2double *GetEddyViscSens(void); /*! * \brief A virtual member. Retrieves index of species densities in the TNE2 solver. @@ -1839,13 +1839,13 @@ class CVariable { * \brief A virtual member. Set the direct solution for the adjoint solver. * \param[in] val_solution_direct - Value of the direct solution. */ - virtual void SetSolution_Direct(double *val_solution_direct); + virtual void SetSolution_Direct(su2double *val_solution_direct); /*! * \brief A virtual member. Get the direct solution for the adjoint solver. * \return Pointer to the direct solution vector. */ - virtual double *GetSolution_Direct(void); + virtual su2double *GetSolution_Direct(void); /*! @@ -1862,27 +1862,27 @@ class CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - virtual void SetSolution_time_n(double *val_solution_time_n); + virtual void SetSolution_time_n(su2double *val_solution_time_n); /*! * \brief Set the value of the velocity (Structural Analysis). * \param[in] val_solution - Solution of the problem (velocity). */ - virtual void SetSolution_Vel(double *val_solution); + virtual void SetSolution_Vel(su2double *val_solution); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - virtual void SetSolution_Vel(unsigned short val_var, double val_solution_vel); + virtual void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); /*! * \brief Set the value of the velocity (Structural Analysis) at time n. * \param[in] val_solution_old - Pointer to the residual vector. */ - virtual void SetSolution_Vel_time_n(double *val_solution_vel_time_n); + virtual void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); /*! * \brief Set the value of the velocity (Structural Analysis) at time n. @@ -1895,60 +1895,60 @@ class CVariable { * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - virtual void SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n); + virtual void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); /*! * \brief Get the solution at time n. * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - virtual double GetSolution_time_n(unsigned short val_var); + virtual su2double GetSolution_time_n(unsigned short val_var); /*! * \brief Get the velocity (Structural Analysis). * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - virtual double GetSolution_Vel(unsigned short val_var); + virtual su2double GetSolution_Vel(unsigned short val_var); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - virtual double *GetSolution_Vel(void); + virtual su2double *GetSolution_Vel(void); /*! * \brief Get the velocity of the nodes (Structural Analysis) at time n. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - virtual double GetSolution_Vel_time_n(unsigned short val_var); + virtual su2double GetSolution_Vel_time_n(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - virtual double *GetSolution_Vel_time_n(void); + virtual su2double *GetSolution_Vel_time_n(void); /*! * \brief Set the value of the acceleration (Structural Analysis). * \param[in] val_solution - Solution of the problem (acceleration). */ - virtual void SetSolution_Accel(double *val_solution_accel); + virtual void SetSolution_Accel(su2double *val_solution_accel); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - virtual void SetSolution_Accel(unsigned short val_var, double val_solution_accel); + virtual void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); /*! * \brief Set the value of the acceleration (Structural Analysis) at time n. * \param[in] val_solution_old - Pointer to the residual vector. */ - virtual void SetSolution_Accel_time_n(double *val_solution_accel_time_n); + virtual void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); /*! * \brief Set the value of the acceleration (Structural Analysis) at time n. @@ -1961,33 +1961,33 @@ class CVariable { * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - virtual void SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n); + virtual void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); /*! * \brief Get the acceleration (Structural Analysis). * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - virtual double GetSolution_Accel(unsigned short val_var); + virtual su2double GetSolution_Accel(unsigned short val_var); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - virtual double *GetSolution_Accel(void); + virtual su2double *GetSolution_Accel(void); /*! * \brief Get the acceleration of the nodes (Structural Analysis) at time n. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - virtual double GetSolution_Accel_time_n(unsigned short val_var); + virtual su2double GetSolution_Accel_time_n(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - virtual double *GetSolution_Accel_time_n(void); + virtual su2double *GetSolution_Accel_time_n(void); /*! @@ -1999,20 +1999,20 @@ class CVariable { * \brief A virtual member. Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - virtual void SetSolution_Pred(double *val_solution_pred); + virtual void SetSolution_Pred(su2double *val_solution_pred); /*! * \brief A virtual member. Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - virtual double GetSolution_Pred(unsigned short val_var); + virtual su2double GetSolution_Pred(unsigned short val_var); /*! * \brief A virtual member. Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - virtual double *GetSolution_Pred(void); + virtual su2double *GetSolution_Pred(void); /*! * \brief A virtual member. Set the value of the solution predictor. @@ -2023,20 +2023,20 @@ class CVariable { * \brief A virtual member. Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - virtual void SetSolution_Pred_Old(double *val_solution_pred_Old); + virtual void SetSolution_Pred_Old(su2double *val_solution_pred_Old); /*! * \brief A virtual member. Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - virtual double GetSolution_Pred_Old(unsigned short val_var); + virtual su2double GetSolution_Pred_Old(unsigned short val_var); /*! * \brief A virtual member. Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - virtual double *GetSolution_Pred_Old(void); + virtual su2double *GetSolution_Pred_Old(void); @@ -2063,7 +2063,7 @@ class CBaselineVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CBaselineVariable(double *val_solution, unsigned short val_nvar, CConfig *config); + CBaselineVariable(su2double *val_solution, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2080,7 +2080,7 @@ class CBaselineVariable : public CVariable { * \version 4.0.0 "Cardinal" */ class CPotentialVariable : public CVariable { - double *Charge_Density; + su2double *Charge_Density; public: /*! @@ -2095,7 +2095,7 @@ class CPotentialVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CPotentialVariable(double val_potential, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CPotentialVariable(su2double val_potential, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2105,14 +2105,14 @@ class CPotentialVariable : public CVariable { /*! * \brief A virtual member. */ - double* GetChargeDensity(); + su2double* GetChargeDensity(); /*! * \brief A virtual member. * \param[in] positive_charge - Mass density of positive charge. * \param[in] negative_charge - Mass density of negative charge. */ - void SetChargeDensity(double positive_charge, double negative_charge); + void SetChargeDensity(su2double positive_charge, su2double negative_charge); }; @@ -2125,7 +2125,7 @@ class CPotentialVariable : public CVariable { */ class CWaveVariable : public CVariable { protected: - double *Solution_Direct; /*!< \brief Direct solution container for use in the adjoint wave solver. */ + su2double *Solution_Direct; /*!< \brief Direct solution container for use in the adjoint wave solver. */ public: @@ -2141,7 +2141,7 @@ class CWaveVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CWaveVariable(double *val_wave, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CWaveVariable(su2double *val_wave, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2152,13 +2152,13 @@ class CWaveVariable : public CVariable { * \brief Set the direct solution for the adjoint solver. * \param[in] val_solution_direct - Value of the direct solution. */ - void SetSolution_Direct(double *val_solution_direct); + void SetSolution_Direct(su2double *val_solution_direct); /*! * \brief Get the direct solution for the adjoint solver. * \return Pointer to the direct solution vector. */ - double *GetSolution_Direct(void); + su2double *GetSolution_Direct(void); }; @@ -2171,7 +2171,7 @@ class CWaveVariable : public CVariable { */ class CHeatVariable : public CVariable { protected: - double *Solution_Direct; /*!< \brief Direct solution container for use in the adjoint Heat solver. */ + su2double *Solution_Direct; /*!< \brief Direct solution container for use in the adjoint Heat solver. */ public: @@ -2187,7 +2187,7 @@ class CHeatVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CHeatVariable(double *val_Heat, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CHeatVariable(su2double *val_Heat, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2198,13 +2198,13 @@ class CHeatVariable : public CVariable { * \brief Set the direct solution for the adjoint solver. * \param[in] val_solution_direct - Value of the direct solution. */ - void SetSolution_Direct(double *val_solution_direct); + void SetSolution_Direct(su2double *val_solution_direct); /*! * \brief Get the direct solution for the adjoint solver. * \return Pointer to the direct solution vector. */ - double *GetSolution_Direct(void); + su2double *GetSolution_Direct(void); }; @@ -2217,22 +2217,22 @@ class CHeatVariable : public CVariable { */ class CFEAVariable : public CVariable { protected: - double Flow_Pressure; /*!< \brief Pressure of the fluid. */ + su2double Flow_Pressure; /*!< \brief Pressure of the fluid. */ bool dynamicFEA; /*!< \brief Non-physical points in the solution (force first order). */ - double **Stress; /*!< \brief Stress tensor. */ - double VonMises_Stress; /*!< \brief Von Mises stress. */ + su2double **Stress; /*!< \brief Stress tensor. */ + su2double VonMises_Stress; /*!< \brief Von Mises stress. */ unsigned short nAttachedElements; /*!< \brief Number of elements connected to the node. */ - double *Solution_Vel, /*!< \brief Velocity of the nodes. */ + su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ - double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ + su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ - double *Solution_Pred; /*!< \brief Predictor of the solution (for FSI applications) */ - double *Solution_Pred_Old; /*!< \brief Predictor of the solution (for FSI applications) in the iter k-1 */ + su2double *Solution_Pred; /*!< \brief Predictor of the solution (for FSI applications) */ + su2double *Solution_Pred_Old; /*!< \brief Predictor of the solution (for FSI applications) in the iter k-1 */ public: @@ -2248,7 +2248,7 @@ class CFEAVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CFEAVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CFEAVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2261,7 +2261,7 @@ class CFEAVariable : public CVariable { * \param[in] jVar - j index. * \param[in] val_stress - Value of the stress. */ - void SetStress(unsigned short iVar, unsigned short jVar, double val_stress); + void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief Add a value to the stress matrix in the element. @@ -2269,37 +2269,37 @@ class CFEAVariable : public CVariable { * \param[in] jVar - j index. * \param[in] val_stress - Value of the stress. */ - void AddStress(unsigned short iVar, unsigned short jVar, double val_stress); + void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief Get the value of the stress. * \return Value of the stress. */ - double **GetStress(void); + su2double **GetStress(void); /*! * \brief Set the value of the Von Mises stress. * \param[in] val_stress - Value of the Von Mises stress. */ - void SetVonMises_Stress(double val_stress); + void SetVonMises_Stress(su2double val_stress); /*! * \brief Get the value of the Von Mises stress. * \return Value of the Von Mises stress. */ - double GetVonMises_Stress(void); + su2double GetVonMises_Stress(void); /*! * \brief Set the value of the Von Mises stress. * \param[in] val_stress - Value of the Von Mises stress. */ - void SetFlow_Pressure(double val_pressure); + void SetFlow_Pressure(su2double val_pressure); /*! * \brief Get the value of the Von Mises stress. * \return Value of the Von Mises stress. */ - double GetFlow_Pressure(void); + su2double GetFlow_Pressure(void); /*! * \brief Initialize the value of the number of attached elements to a node. @@ -2331,21 +2331,21 @@ class CFEAVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_time_n(double *val_solution_time_n); + void SetSolution_time_n(su2double *val_solution_time_n); /*! * \brief Set the value of the velocity (Structural Analysis). * \param[in] val_solution - Solution of the problem (velocity). */ - void SetSolution_Vel(double *val_solution_vel); + void SetSolution_Vel(su2double *val_solution_vel); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - void SetSolution_Vel(unsigned short val_var, double val_solution_vel); + void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); /*! * \brief Set the value of the velocity (Structural Analysis) at time n. @@ -2357,66 +2357,66 @@ class CFEAVariable : public CVariable { * \brief Set the value of the velocity (Structural Analysis) at time n. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Vel_time_n(double *val_solution_vel_time_n); + void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - void SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n); + void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); /*! * \brief Get the solution at time n. * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution_time_n(unsigned short val_var); + su2double GetSolution_time_n(unsigned short val_var); /*! * \brief Get the velocity (Structural Analysis). * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution_Vel(unsigned short val_var); + su2double GetSolution_Vel(unsigned short val_var); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - double *GetSolution_Vel(void); + su2double *GetSolution_Vel(void); /*! * \brief Get the velocity of the nodes (Structural Analysis) at time n. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Vel_time_n(unsigned short val_var); + su2double GetSolution_Vel_time_n(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Vel_time_n(void); + su2double *GetSolution_Vel_time_n(void); /*! * \brief Set the value of the acceleration (Structural Analysis). * \param[in] val_solution - Solution of the problem (acceleration). */ - void SetSolution_Accel(double *val_solution_accel); + void SetSolution_Accel(su2double *val_solution_accel); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - void SetSolution_Accel(unsigned short val_var, double val_solution_accel); + void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); /*! * \brief Set the value of the acceleration (Structural Analysis) at time n. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Accel_time_n(double *val_solution_accel_time_n); + void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); /*! * \brief Set the value of the acceleration (Structural Analysis) at time n. @@ -2429,33 +2429,33 @@ class CFEAVariable : public CVariable { * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - void SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n); + void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); /*! * \brief Get the acceleration (Structural Analysis). * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution_Accel(unsigned short val_var); + su2double GetSolution_Accel(unsigned short val_var); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - double *GetSolution_Accel(void); + su2double *GetSolution_Accel(void); /*! * \brief Get the acceleration of the nodes (Structural Analysis) at time n. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Accel_time_n(unsigned short val_var); + su2double GetSolution_Accel_time_n(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Accel_time_n(void); + su2double *GetSolution_Accel_time_n(void); /*! @@ -2467,20 +2467,20 @@ class CFEAVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Pred(double *val_solution_pred); + void SetSolution_Pred(su2double *val_solution_pred); /*! * \brief Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Pred(unsigned short val_var); + su2double GetSolution_Pred(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Pred(void); + su2double *GetSolution_Pred(void); /*! * \brief Set the value of the solution predictor. @@ -2491,20 +2491,20 @@ class CFEAVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Pred_Old(double *val_solution_pred_Old); + void SetSolution_Pred_Old(su2double *val_solution_pred_Old); /*! * \brief Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Pred_Old(unsigned short val_var); + su2double GetSolution_Pred_Old(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Pred_Old(void); + su2double *GetSolution_Pred_Old(void); @@ -2523,24 +2523,24 @@ class CFEM_ElasVariable : public CVariable { bool dynamic_analysis; /*!< \brief Bool which determines if the problem is dynamic. */ bool fsi_analysis; /*!< \brief Bool which determines if the problem is FSI. */ - double *Stress; /*!< \brief Stress tensor. */ - double *FlowTraction; /*!< \brief Traction from the fluid field. */ + su2double *Stress; /*!< \brief Stress tensor. */ + su2double *FlowTraction; /*!< \brief Traction from the fluid field. */ -// double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ - double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ - double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ +// su2double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ + su2double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ + su2double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ - double VonMises_Stress; /*!< \brief Von Mises stress. */ + su2double VonMises_Stress; /*!< \brief Von Mises stress. */ - double *Solution_time_n; /*!< \brief Displacement at the nodes at time n */ + su2double *Solution_time_n; /*!< \brief Displacement at the nodes at time n */ - double *Solution_Vel, /*!< \brief Velocity of the nodes. */ + su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ - double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ + su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ - double *Solution_Pred, /*!< \brief Predictor of the solution for FSI purposes */ + su2double *Solution_Pred, /*!< \brief Predictor of the solution for FSI purposes */ *Solution_Pred_Old; /*!< \brief Predictor of the solution at time n for FSI purposes */ @@ -2558,7 +2558,7 @@ class CFEM_ElasVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2569,32 +2569,32 @@ class CFEM_ElasVariable : public CVariable { * \brief Get the value of the stress. * \return Value of the stress. */ - double *GetStress_FEM(void); + su2double *GetStress_FEM(void); /*! * \brief Set the value of the stress at the node * \param[in] iVar - index of the stress term * \param[in] val_stress - value of the stress */ - void SetStress_FEM(unsigned short iVar, double val_stress); + void SetStress_FEM(unsigned short iVar, su2double val_stress); /*! * \brief Add a certain value to the value of the stress at the node * \param[in] iVar - index of the stress term * \param[in] val_stress - value of the stress */ - void AddStress_FEM(unsigned short iVar, double val_stress); + void AddStress_FEM(unsigned short iVar, su2double val_stress); /*! * \brief Add surface load to the residual term */ - void Add_SurfaceLoad_Res(double *val_surfForce); + void Add_SurfaceLoad_Res(su2double *val_surfForce); /*! * \brief Get the residual term due to surface load */ - double *Get_SurfaceLoad_Res(void); + su2double *Get_SurfaceLoad_Res(void); /*! * \brief Clear the surface load residual @@ -2604,17 +2604,17 @@ class CFEM_ElasVariable : public CVariable { /*! * \brief Set the flow traction at a node on the structural side */ - void Set_FlowTraction(double *val_flowTraction); + void Set_FlowTraction(su2double *val_flowTraction); /*! * \brief Add a value to the flow traction at a node on the structural side */ - void Add_FlowTraction(double *val_flowTraction); + void Add_FlowTraction(su2double *val_flowTraction); /*! * \brief Get the residual term due to the flow traction */ - double *Get_FlowTraction(void); + su2double *Get_FlowTraction(void); /*! * \brief Clear the flow traction residual @@ -2631,21 +2631,21 @@ class CFEM_ElasVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_time_n(double *val_solution_time_n); + void SetSolution_time_n(su2double *val_solution_time_n); /*! * \brief Set the value of the velocity (Structural Analysis). * \param[in] val_solution - Solution of the problem (velocity). */ - void SetSolution_Vel(double *val_solution_vel); + void SetSolution_Vel(su2double *val_solution_vel); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - void SetSolution_Vel(unsigned short val_var, double val_solution_vel); + void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); /*! * \brief Set the value of the velocity (Structural Analysis) at time n. @@ -2657,66 +2657,66 @@ class CFEM_ElasVariable : public CVariable { * \brief Set the value of the velocity (Structural Analysis) at time n. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Vel_time_n(double *val_solution_vel_time_n); + void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - void SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n); + void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); /*! * \brief Get the solution at time n. * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution_time_n(unsigned short val_var); + su2double GetSolution_time_n(unsigned short val_var); /*! * \brief Get the velocity (Structural Analysis). * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution_Vel(unsigned short val_var); + su2double GetSolution_Vel(unsigned short val_var); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - double *GetSolution_Vel(void); + su2double *GetSolution_Vel(void); /*! * \brief Get the velocity of the nodes (Structural Analysis) at time n. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Vel_time_n(unsigned short val_var); + su2double GetSolution_Vel_time_n(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Vel_time_n(void); + su2double *GetSolution_Vel_time_n(void); /*! * \brief Set the value of the acceleration (Structural Analysis). * \param[in] val_solution - Solution of the problem (acceleration). */ - void SetSolution_Accel(double *val_solution_accel); + void SetSolution_Accel(su2double *val_solution_accel); /*! * \overload * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the solution for the index val_var. */ - void SetSolution_Accel(unsigned short val_var, double val_solution_accel); + void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); /*! * \brief Set the value of the acceleration (Structural Analysis) at time n. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Accel_time_n(double *val_solution_accel_time_n); + void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); /*! * \brief Set the value of the acceleration (Structural Analysis) at time n. @@ -2729,33 +2729,33 @@ class CFEM_ElasVariable : public CVariable { * \param[in] val_var - Index of the variable. * \param[in] val_solution_old - Value of the old solution for the index val_var. */ - void SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n); + void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); /*! * \brief Get the acceleration (Structural Analysis). * \param[in] val_var - Index of the variable. * \return Value of the solution for the index val_var. */ - double GetSolution_Accel(unsigned short val_var); + su2double GetSolution_Accel(unsigned short val_var); /*! * \brief Get the solution of the problem. * \return Pointer to the solution vector. */ - double *GetSolution_Accel(void); + su2double *GetSolution_Accel(void); /*! * \brief Get the acceleration of the nodes (Structural Analysis) at time n. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Accel_time_n(unsigned short val_var); + su2double GetSolution_Accel_time_n(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Accel_time_n(void); + su2double *GetSolution_Accel_time_n(void); /*! @@ -2767,20 +2767,20 @@ class CFEM_ElasVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Pred(double *val_solution_pred); + void SetSolution_Pred(su2double *val_solution_pred); /*! * \brief Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Pred(unsigned short val_var); + su2double GetSolution_Pred(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Pred(void); + su2double *GetSolution_Pred(void); /*! * \brief Set the value of the solution predictor. @@ -2791,32 +2791,32 @@ class CFEM_ElasVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_Pred_Old(double *val_solution_pred_Old); + void SetSolution_Pred_Old(su2double *val_solution_pred_Old); /*! * \brief Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. */ - double GetSolution_Pred_Old(unsigned short val_var); + su2double GetSolution_Pred_Old(unsigned short val_var); /*! * \brief Get the solution at time n. * \return Pointer to the solution (at time n) vector. */ - double *GetSolution_Pred_Old(void); + su2double *GetSolution_Pred_Old(void); /*! * \brief Set the value of the Von Mises stress. * \param[in] val_stress - Value of the Von Mises stress. */ - void SetVonMises_Stress(double val_stress); + void SetVonMises_Stress(su2double val_stress); /*! * \brief Get the value of the Von Mises stress. * \return Value of the Von Mises stress. */ - double GetVonMises_Stress(void); + su2double GetVonMises_Stress(void); }; @@ -2829,7 +2829,7 @@ class CFEM_ElasVariable : public CVariable { */ class CFEABoundVariable : public CVariable { protected: - double **Traction; /*!< \brief Stress tensor. */ + su2double **Traction; /*!< \brief Stress tensor. */ public: @@ -2859,7 +2859,7 @@ class CFEABoundVariable : public CVariable { * \param[in] jVar - index of the boundary element. * \param[in] val_stress - Value of the stress. */ - void SetTraction(unsigned short iVar, unsigned short jVar, double val_traction); + void SetTraction(unsigned short iVar, unsigned short jVar, su2double val_traction); /*! * \brief Add a value to the stress matrix in the element. @@ -2867,13 +2867,13 @@ class CFEABoundVariable : public CVariable { * \param[in] jVar - index of the boundary element. * \param[in] val_stress - Value of the stress. */ - void AddTraction(unsigned short iVar, unsigned short jVar, double val_traction); + void AddTraction(unsigned short iVar, unsigned short jVar, su2double val_traction); /*! * \brief Get the value of the stress. * \return Value of the stress. */ - double **GetTraction(void); + su2double **GetTraction(void); }; @@ -2886,23 +2886,23 @@ class CFEABoundVariable : public CVariable { */ class CEulerVariable : public CVariable { protected: - double Velocity2; /*!< \brief Square of the velocity vector. */ - double *TS_Source; /*!< \brief Time spectral source term. */ - double Precond_Beta; /*!< \brief Low Mach number preconditioner value, Beta. */ - double *WindGust; /*! < \brief Wind gust value */ - double *WindGustDer; /*! < \brief Wind gust derivatives value */ + su2double Velocity2; /*!< \brief Square of the velocity vector. */ + su2double *TS_Source; /*!< \brief Time spectral source term. */ + su2double Precond_Beta; /*!< \brief Low Mach number preconditioner value, Beta. */ + su2double *WindGust; /*! < \brief Wind gust value */ + su2double *WindGustDer; /*! < \brief Wind gust derivatives value */ /*--- Primitive variable definition ---*/ - double *Primitive; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */ - double **Gradient_Primitive; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */ - double *Limiter_Primitive; /*!< \brief Limiter of the primitive variables (T, vx, vy, vz, P, rho). */ + su2double *Primitive; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */ + su2double **Gradient_Primitive; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */ + su2double *Limiter_Primitive; /*!< \brief Limiter of the primitive variables (T, vx, vy, vz, P, rho). */ /*--- Secondary variable definition ---*/ - double *Secondary; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */ - double **Gradient_Secondary; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */ - double *Limiter_Secondary; /*!< \brief Limiter of the primitive variables (T, vx, vy, vz, P, rho). */ + su2double *Secondary; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */ + su2double **Gradient_Secondary; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */ + su2double *Limiter_Secondary; /*!< \brief Limiter of the primitive variables (T, vx, vy, vz, P, rho). */ public: @@ -2920,7 +2920,7 @@ class CEulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CEulerVariable(double val_density, double *val_velocity, double val_energy, unsigned short val_nDim, + CEulerVariable(su2double val_density, su2double *val_velocity, su2double val_energy, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! @@ -2930,7 +2930,7 @@ class CEulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CEulerVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CEulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -2948,7 +2948,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to add to the gradient of the primitive variables. */ - void AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + void AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Subtract val_value to the gradient of the primitive variables. @@ -2956,7 +2956,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to subtract to the gradient of the primitive variables. */ - void SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + void SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Get the value of the primitive variables gradient. @@ -2964,14 +2964,14 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the primitive variables gradient. */ - double GetGradient_Primitive(unsigned short val_var, unsigned short val_dim); + su2double GetGradient_Primitive(unsigned short val_var, unsigned short val_dim); /*! * \brief Get the value of the primitive variables gradient. * \param[in] val_var - Index of the variable. * \return Value of the primitive variables gradient. */ - double GetLimiter_Primitive(unsigned short val_var); + su2double GetLimiter_Primitive(unsigned short val_var); /*! * \brief Set the gradient of the primitive variables. @@ -2979,26 +2979,26 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - void SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + void SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Set the gradient of the primitive variables. * \param[in] val_var - Index of the variable. * \param[in] val_value - Value of the gradient. */ - void SetLimiter_Primitive(unsigned short val_var, double val_value); + void SetLimiter_Primitive(unsigned short val_var, su2double val_value); /*! * \brief Get the value of the primitive variables gradient. * \return Value of the primitive variables gradient. */ - double **GetGradient_Primitive(void); + su2double **GetGradient_Primitive(void); /*! * \brief Get the value of the primitive variables gradient. * \return Value of the primitive variables gradient. */ - double *GetLimiter_Primitive(void); + su2double *GetLimiter_Primitive(void); /*! * \brief Set to zero the gradient of the primitive variables. @@ -3011,7 +3011,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to add to the gradient of the primitive variables. */ - void AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value); + void AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Subtract val_value to the gradient of the primitive variables. @@ -3019,7 +3019,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to subtract to the gradient of the primitive variables. */ - void SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value); + void SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Get the value of the primitive variables gradient. @@ -3027,7 +3027,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the primitive variables gradient. */ - double GetGradient_Secondary(unsigned short val_var, unsigned short val_dim); + su2double GetGradient_Secondary(unsigned short val_var, unsigned short val_dim); /*! * \brief Get the value of the primitive variables gradient. @@ -3035,7 +3035,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the primitive variables gradient. */ - double GetLimiter_Secondary(unsigned short val_var); + su2double GetLimiter_Secondary(unsigned short val_var); /*! * \brief Set the gradient of the primitive variables. @@ -3043,7 +3043,7 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - void SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value); + void SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Set the gradient of the primitive variables. @@ -3051,40 +3051,40 @@ class CEulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - void SetLimiter_Secondary(unsigned short val_var, double val_value); + void SetLimiter_Secondary(unsigned short val_var, su2double val_value); /*! * \brief Get the value of the primitive variables gradient. * \return Value of the primitive variables gradient. */ - double **GetGradient_Secondary(void); + su2double **GetGradient_Secondary(void); /*! * \brief Get the value of the primitive variables gradient. * \return Value of the primitive variables gradient. */ - double *GetLimiter_Secondary(void); + su2double *GetLimiter_Secondary(void); /*! * \brief A virtual member. */ - void SetdPdrho_e(double dPdrho_e); + void SetdPdrho_e(su2double dPdrho_e); /*! * \brief A virtual member. */ - void SetdPde_rho(double dPde_rho); + void SetdPde_rho(su2double dPde_rho); /*! * \brief Set the value of the pressure. */ - bool SetPressure(double Gamma); + bool SetPressure(su2double Gamma); /*! * \brief Set the value of the speed of the sound. * \param[in] Gamma - Value of Gamma. */ - bool SetSoundSpeed(double Gamma); + bool SetSoundSpeed(su2double Gamma); /*! * \brief Set the value of the enthalpy. @@ -3109,7 +3109,7 @@ class CEulerVariable : public CVariable { /*! * \brief Set all the primitive variables for incompressible flows. */ - bool SetPrimVar_Incompressible(double Density_Inf, CConfig *config); + bool SetPrimVar_Incompressible(su2double Density_Inf, CConfig *config); /*! * \brief Set all the primitive variables for incompressible flows. @@ -3121,7 +3121,7 @@ class CEulerVariable : public CVariable { * \param[in] val_var - Index of the variable. * \return Value of the primitive variable for the index val_var. */ - double GetPrimitive(unsigned short val_var); + su2double GetPrimitive(unsigned short val_var); /*! * \brief Set the value of the primitive variables. @@ -3129,27 +3129,27 @@ class CEulerVariable : public CVariable { * \param[in] val_var - Index of the variable. * \return Set the value of the primitive variable for the index val_var. */ - void SetPrimitive(unsigned short val_var, double val_prim); + void SetPrimitive(unsigned short val_var, su2double val_prim); /*! * \brief Set the value of the primitive variables. * \param[in] val_prim - Primitive variables. * \return Set the value of the primitive variable for the index val_var. */ - void SetPrimitive(double *val_prim); + void SetPrimitive(su2double *val_prim); /*! * \brief Get the primitive variables of the problem. * \return Pointer to the primitive variable vector. */ - double *GetPrimitive(void); + su2double *GetPrimitive(void); /*! * \brief Get the primitive variables. * \param[in] val_var - Index of the variable. * \return Value of the primitive variable for the index val_var. */ - double GetSecondary(unsigned short val_var); + su2double GetSecondary(unsigned short val_var); /*! * \brief Set the value of the primitive variables. @@ -3157,25 +3157,25 @@ class CEulerVariable : public CVariable { * \param[in] val_var - Index of the variable. * \return Set the value of the primitive variable for the index val_var. */ - void SetSecondary(unsigned short val_var, double val_secondary); + void SetSecondary(unsigned short val_var, su2double val_secondary); /*! * \brief Set the value of the primitive variables. * \param[in] val_prim - Primitive variables. * \return Set the value of the primitive variable for the index val_var. */ - void SetSecondary(double *val_secondary); + void SetSecondary(su2double *val_secondary); /*! * \brief Get the primitive variables of the problem. * \return Pointer to the primitive variable vector. */ - double *GetSecondary(void); + su2double *GetSecondary(void); /*! * \brief Set the value of the density for the incompressible flows. */ - void SetDensityInc(double val_density); + void SetDensityInc(su2double val_density); /*! * \brief Set the value of the density for the incompressible flows. @@ -3195,99 +3195,99 @@ class CEulerVariable : public CVariable { /*! * \brief Set the value of the beta coeffient for incompressible flows. */ - void SetBetaInc2(double val_betainc2); + void SetBetaInc2(su2double val_betainc2); /*! * \brief Set the value of the temperature. * \param[in] Gas_Constant - Value of Gas Constant */ - bool SetTemperature(double Gas_Constant); + bool SetTemperature(su2double Gas_Constant); /*! * \brief Get the norm 2 of the velocity. * \return Norm 2 of the velocity vector. */ - double GetVelocity2(void); + su2double GetVelocity2(void); /*! * \brief Get the flow pressure. * \return Value of the flow pressure. */ - double GetPressure(void); + su2double GetPressure(void); /*! * \brief Get the flow pressure. * \return Value of the flow pressure. */ - double GetPressureInc(void); + su2double GetPressureInc(void); /*! * \brief Get the speed of the sound. * \return Value of speed of the sound. */ - double GetSoundSpeed(void); + su2double GetSoundSpeed(void); /*! * \brief Get the value of density for the incompressible flow * \return Value of beta squared. */ - double GetDensityInc(void); + su2double GetDensityInc(void); /*! * \brief Get the value of levelset for the freesurface flows * \return Value of beta squared. */ - double GetLevelSet(void); + su2double GetLevelSet(void); /*! * \brief Get the value of distance for the freesurface flows * \return Value of beta squared. */ - double GetDistance(void); + su2double GetDistance(void); /*! * \brief Get the value of beta squared for the incompressible flow * \return Value of beta squared. */ - double GetBetaInc2(void); + su2double GetBetaInc2(void); /*! * \brief Get the enthalpy of the flow. * \return Value of the enthalpy of the flow. */ - double GetEnthalpy(void); + su2double GetEnthalpy(void); /*! * \brief Get the density of the flow. * \return Value of the density of the flow. */ - double GetDensity(void); + su2double GetDensity(void); /*! * \brief Get the energy of the flow. * \return Value of the energy of the flow. */ - double GetEnergy(void); + su2double GetEnergy(void); /*! * \brief Get the temperature of the flow. * \return Value of the temperature of the flow. */ - double GetTemperature(void); + su2double GetTemperature(void); /*! * \brief Get the velocity of the flow. * \param[in] val_dim - Index of the dimension. * \return Value of the velocity for the dimension val_dim. */ - double GetVelocity(unsigned short val_dim); + su2double GetVelocity(unsigned short val_dim); /*! * \brief Get the projected velocity in a unitary vector direction (compressible solver). * \param[in] val_vector - Direction of projection. * \return Value of the projected velocity. */ - double GetProjVel(double *val_vector); + su2double GetProjVel(su2double *val_vector); /*! * \brief Set the velocity vector from the solution. @@ -3299,69 +3299,69 @@ class CEulerVariable : public CVariable { * \brief Set the velocity vector from the old solution. * \param[in] val_velocity - Pointer to the velocity. */ - void SetVelocity_Old(double *val_velocity); + void SetVelocity_Old(su2double *val_velocity); /*! * \brief Set the velocity vector from the old solution. * \param[in] val_velocity - Pointer to the velocity. */ - void SetVelocityInc_Old(double *val_velocity); + void SetVelocityInc_Old(su2double *val_velocity); /*! * \brief Set the time spectral source term. * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the time spectral source term. for the index val_var. */ - void SetTimeSpectral_Source(unsigned short val_var, double val_source); + void SetTimeSpectral_Source(unsigned short val_var, su2double val_source); /*! * \brief Get the time spectral source term. * \param[in] val_var - Index of the variable. * \return Value of the time spectral source term for the index val_var. */ - double GetTimeSpectral_Source(unsigned short val_var); + su2double GetTimeSpectral_Source(unsigned short val_var); /*! * \brief Get the value of the preconditioner Beta. * \return Value of the low Mach preconditioner variable Beta */ - double GetPreconditioner_Beta(); + su2double GetPreconditioner_Beta(); /*! * \brief Set the value of the preconditioner Beta. * \param[in] Value of the low Mach preconditioner variable Beta */ - void SetPreconditioner_Beta(double val_Beta); + void SetPreconditioner_Beta(su2double val_Beta); /*! * \brief Set the value of the magnetic field * \param[in] Value of the magnetic field */ - void SetMagneticField(double* val_B); + void SetMagneticField(su2double* val_B); /*! * \brief Get the value of the wind gust * \return Value of the wind gust */ - double* GetWindGust(); + su2double* GetWindGust(); /*! * \brief Set the value of the wind gust * \param[in] Value of the wind gust */ - void SetWindGust(double* val_WindGust); + void SetWindGust(su2double* val_WindGust); /*! * \brief Get the value of the derivatives of the wind gust * \return Value of the derivatives of the wind gust */ - double* GetWindGustDer(); + su2double* GetWindGustDer(); /*! * \brief Set the value of the derivatives of the wind gust * \param[in] Value of the derivatives of the wind gust */ - void SetWindGustDer(double* val_WindGust); + void SetWindGustDer(su2double* val_WindGust); }; /*! @@ -3373,13 +3373,13 @@ class CEulerVariable : public CVariable { */ class CNSVariable : public CEulerVariable { private: - double Prandtl_Lam; /*!< \brief Laminar Prandtl number. */ - double Prandtl_Turb; /*!< \brief Turbulent Prandtl number. */ - double Temperature_Ref; /*!< \brief Reference temperature of the fluid. */ - double Viscosity_Ref; /*!< \brief Reference viscosity of the fluid. */ - double Viscosity_Inf; /*!< \brief Viscosity of the fluid at the infinity. */ - double Vorticity[3]; /*!< \brief Vorticity of the fluid. */ - double StrainMag; /*!< \brief Magnitude of rate of strain tensor. */ + su2double Prandtl_Lam; /*!< \brief Laminar Prandtl number. */ + su2double Prandtl_Turb; /*!< \brief Turbulent Prandtl number. */ + su2double Temperature_Ref; /*!< \brief Reference temperature of the fluid. */ + su2double Viscosity_Ref; /*!< \brief Reference viscosity of the fluid. */ + su2double Viscosity_Inf; /*!< \brief Viscosity of the fluid at the infinity. */ + su2double Vorticity[3]; /*!< \brief Vorticity of the fluid. */ + su2double StrainMag; /*!< \brief Magnitude of rate of strain tensor. */ public: /*! @@ -3396,8 +3396,8 @@ class CNSVariable : public CEulerVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CNSVariable(double val_density, double *val_velocity, - double val_energy, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CNSVariable(su2double val_density, su2double *val_velocity, + su2double val_energy, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \overload @@ -3406,7 +3406,7 @@ class CNSVariable : public CEulerVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CNSVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CNSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -3416,23 +3416,23 @@ class CNSVariable : public CEulerVariable { /*! * \brief Set the laminar viscosity. */ - void SetLaminarViscosity(double laminarViscosity); + void SetLaminarViscosity(su2double laminarViscosity); /*! * \overload * \param[in] val_laminar_viscosity_inc - Value of the laminar viscosity (incompressible flows). */ - void SetLaminarViscosityInc(double val_laminar_viscosity_inc); + void SetLaminarViscosityInc(su2double val_laminar_viscosity_inc); /*! * \brief Set the laminar viscosity. */ - void SetThermalConductivity(double thermalConductivity); + void SetThermalConductivity(su2double thermalConductivity); /*! * \brief Set the specific heat Cp. */ - void SetSpecificHeatCp(double Cp); + void SetSpecificHeatCp(su2double Cp); /*! * \brief Set the vorticity value. @@ -3448,102 +3448,102 @@ class CNSVariable : public CEulerVariable { * \overload * \param[in] eddy_visc - Value of the eddy viscosity. */ - void SetEddyViscosity(double eddy_visc); + void SetEddyViscosity(su2double eddy_visc); /*! * \overload * \param[in] eddy_visc - Value of the eddy viscosity. */ - void SetEddyViscosityInc(double eddy_visc); + void SetEddyViscosityInc(su2double eddy_visc); /*! * \brief Get the laminar viscosity of the flow. * \return Value of the laminar viscosity of the flow. */ - double GetLaminarViscosity(void); + su2double GetLaminarViscosity(void); /*! * \brief Get the laminar viscosity of the incompressible flow. * \return Value of the laminar viscosity of the incompressible flow. */ - double GetLaminarViscosityInc(void); + su2double GetLaminarViscosityInc(void); /*! * \brief Get the thermal conductivity of the flow. * \return Value of the laminar viscosity of the flow. */ - double GetThermalConductivity(void); + su2double GetThermalConductivity(void); /*! * \brief Get the eddy viscosity of the flow. * \return The eddy viscosity of the flow. */ - double GetEddyViscosity(void); + su2double GetEddyViscosity(void); /*! * \brief Get the specific heat at constant P of the flow. * \return Value of the specific heat at constant P of the flow. */ - double GetSpecificHeatCp(void); + su2double GetSpecificHeatCp(void); /*! * \brief Get the eddy viscosity of the flow. * \return The eddy viscosity of the flow. */ - double GetEddyViscosityInc(void); + su2double GetEddyViscosityInc(void); /*! * \brief Set the temperature at the wall */ - void SetWallTemperature(double temperature_wall); + void SetWallTemperature(su2double temperature_wall); /*! * \brief Get the value of the vorticity. * \param[in] val_dim - Index of the dimension. * \return Value of the vorticity. */ - double *GetVorticity(void); + su2double *GetVorticity(void); /*! * \brief Get the value of the magnitude of rate of strain. * \return Value of the rate of strain magnitude. */ - double GetStrainMag(void); + su2double GetStrainMag(void); /*! * \brief Set the derivative of temperature with respect to density (at constant internal energy). */ - void SetdTdrho_e(double dTdrho_e); + void SetdTdrho_e(su2double dTdrho_e); /*! * \brief Set the derivative of temperature with respect to internal energy (at constant density). */ - void SetdTde_rho(double dTde_rho); + void SetdTde_rho(su2double dTde_rho); /*! * \brief Set the derivative of laminar viscosity with respect to density (at constant temperature). */ - void Setdmudrho_T(double dmudrho_T); + void Setdmudrho_T(su2double dmudrho_T); /*! * \brief Set the derivative of laminar viscosity with respect to temperature (at constant density). */ - void SetdmudT_rho(double dmudT_rho); + void SetdmudT_rho(su2double dmudT_rho); /*! * \brief Set the derivative of thermal conductivity with respect to density (at constant temperature). */ - void Setdktdrho_T(double dktdrho_T); + void Setdktdrho_T(su2double dktdrho_T); /*! * \brief Set the derivative of thermal conductivity with respect to temperature (at constant density). */ - void SetdktdT_rho(double dktdT_rho); + void SetdktdT_rho(su2double dktdT_rho); /*! * \brief Set all the primitive variables for compressible flows */ - bool SetPrimVar_Compressible(double eddy_visc, double turb_ke, CFluidModel *FluidModel); + bool SetPrimVar_Compressible(su2double eddy_visc, su2double turb_ke, CFluidModel *FluidModel); /*! * \brief Set all the secondary variables (partial derivatives) for compressible flows @@ -3553,12 +3553,12 @@ class CNSVariable : public CEulerVariable { /*! * \brief Set all the primitive variables for incompressible flows */ - bool SetPrimVar_Incompressible(double Density_Inf, double Viscosity_Inf, double eddy_visc, double turb_ke, CConfig *config); + bool SetPrimVar_Incompressible(su2double Density_Inf, su2double Viscosity_Inf, su2double eddy_visc, su2double turb_ke, CConfig *config); /*! * \brief Set all the primitive variables for incompressible flows */ - bool SetPrimVar_FreeSurface(double eddy_visc, double turb_ke, CConfig *config); + bool SetPrimVar_FreeSurface(su2double eddy_visc, su2double turb_ke, CConfig *config); }; /*! @@ -3570,8 +3570,8 @@ class CNSVariable : public CEulerVariable { */ class CTurbVariable : public CVariable { protected: - double muT; /*!< \brief Eddy viscosity. */ - double *TS_Source; /*!< \brief Time spectral source term. */ + su2double muT; /*!< \brief Eddy viscosity. */ + su2double *TS_Source; /*!< \brief Time spectral source term. */ public: /*! @@ -3596,13 +3596,13 @@ class CTurbVariable : public CVariable { * \brief Get the value of the eddy viscosity. * \return the value of the eddy viscosity. */ - double GetmuT(); + su2double GetmuT(); /*! * \brief Set the value of the eddy viscosity. * \param[in] val_muT - Value of the eddy viscosity. */ - void SetmuT(double val_muT); + void SetmuT(su2double val_muT); }; /*! @@ -3628,7 +3628,7 @@ class CTurbSAVariable : public CTurbVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CTurbSAVariable(double val_nu_tilde, double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CTurbSAVariable(su2double val_nu_tilde, su2double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -3640,14 +3640,14 @@ class CTurbSAVariable : public CTurbVariable { * \param[in] val_var - Index of the variable. * \param[in] val_source - Value of the time spectral source term. for the index val_var. */ - void SetTimeSpectral_Source(unsigned short val_var, double val_source); + void SetTimeSpectral_Source(unsigned short val_var, su2double val_source); /*! * \brief Get the time spectral source term. * \param[in] val_var - Index of the variable. * \return Value of the time spectral source term for the index val_var. */ - double GetTimeSpectral_Source(unsigned short val_var); + su2double GetTimeSpectral_Source(unsigned short val_var); }; @@ -3675,7 +3675,7 @@ class CTurbMLVariable : public CTurbVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CTurbMLVariable(double val_nu_tilde, double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CTurbMLVariable(su2double val_nu_tilde, su2double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -3687,14 +3687,14 @@ class CTurbMLVariable : public CTurbVariable { * \param[in] val_var - Index of the variable. * \param[in] val_source - Value of the time spectral source term. for the index val_var. */ - void SetTimeSpectral_Source(unsigned short val_var, double val_source); + void SetTimeSpectral_Source(unsigned short val_var, su2double val_source); /*! * \brief Get the time spectral source term. * \param[in] val_var - Index of the variable. * \return Value of the time spectral source term for the index val_var. */ - double GetTimeSpectral_Source(unsigned short val_var); + su2double GetTimeSpectral_Source(unsigned short val_var); }; @@ -3708,7 +3708,7 @@ class CTurbMLVariable : public CTurbVariable { class CTransLMVariable : public CTurbVariable { protected: - double gamma_sep; + su2double gamma_sep; public: @@ -3725,7 +3725,7 @@ class CTransLMVariable : public CTurbVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CTransLMVariable(double val_nu_tilde, double val_intermittency, double val_REth, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CTransLMVariable(su2double val_nu_tilde, su2double val_intermittency, su2double val_REth, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -3735,13 +3735,13 @@ class CTransLMVariable : public CTurbVariable { /*! * \brief ________________. */ - double GetIntermittency(void); + su2double GetIntermittency(void); /*! * \brief ________________. * \param[in] gamma_sep_in */ - void SetGammaSep(double gamma_sep_in); + void SetGammaSep(su2double gamma_sep_in); /*! * \brief ________________. @@ -3760,9 +3760,9 @@ class CTransLMVariable : public CTurbVariable { class CTurbSSTVariable : public CTurbVariable { protected: - double sigma_om2, + su2double sigma_om2, beta_star; - double F1, /*!< \brief Menter blending function for blending of k-w and k-eps. */ + su2double F1, /*!< \brief Menter blending function for blending of k-w and k-eps. */ F2, /*!< \brief Menter blending function for stress limiter. */ CDkw; /*!< \brief Cross-diffusion. */ @@ -3780,8 +3780,8 @@ class CTurbSSTVariable : public CTurbVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CTurbSSTVariable(double val_rho_kine, double val_rho_omega, double val_muT, unsigned short val_nDim, unsigned short val_nvar, - double *constants, CConfig *config); + CTurbSSTVariable(su2double val_rho_kine, su2double val_rho_omega, su2double val_muT, unsigned short val_nDim, unsigned short val_nvar, + su2double *constants, CConfig *config); /*! * \brief Destructor of the class. @@ -3794,22 +3794,22 @@ class CTurbSSTVariable : public CTurbVariable { * \param[in] val_dist - Value of the distance to the wall. * \param[in] val_density - Value of the density. */ - void SetBlendingFunc(double val_viscosity, double val_dist, double val_density); + void SetBlendingFunc(su2double val_viscosity, su2double val_dist, su2double val_density); /*! * \brief Get the first blending function. */ - double GetF1blending(void); + su2double GetF1blending(void); /*! * \brief Get the second blending function. */ - double GetF2blending(void); + su2double GetF2blending(void); /*! * \brief Get the value of the cross diffusion of tke and omega. */ - double GetCrossDiff(void); + su2double GetCrossDiff(void); }; /*! @@ -3821,8 +3821,8 @@ class CTurbSSTVariable : public CTurbVariable { */ class CAdjPotentialVariable : public CVariable { private: - double Psi; /*!< \brief Value of the adjoint variable. */ - double *ForceProj_Vector; /*!< \brief Vector d. */ + su2double Psi; /*!< \brief Value of the adjoint variable. */ + su2double *ForceProj_Vector; /*!< \brief Vector d. */ public: @@ -3838,7 +3838,7 @@ class CAdjPotentialVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjPotentialVariable(double val_psi, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjPotentialVariable(su2double val_psi, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -3856,11 +3856,11 @@ class CAdjPotentialVariable : public CVariable { */ class CAdjEulerVariable : public CVariable { protected: - double *Psi; /*!< \brief Vector of the adjoint variables. */ - double *ForceProj_Vector; /*!< \brief Vector d. */ - double *ObjFuncSource; /*!< \brief Vector containing objective function sensitivity for discrete adjoint. */ - double *IntBoundary_Jump; /*!< \brief Interior boundary jump vector. */ - double *TS_Source; /*!< \brief Time spectral source term. */ + su2double *Psi; /*!< \brief Vector of the adjoint variables. */ + su2double *ForceProj_Vector; /*!< \brief Vector d. */ + su2double *ObjFuncSource; /*!< \brief Vector containing objective function sensitivity for discrete adjoint. */ + su2double *IntBoundary_Jump; /*!< \brief Interior boundary jump vector. */ + su2double *TS_Source; /*!< \brief Time spectral source term. */ bool incompressible; public: @@ -3878,7 +3878,7 @@ class CAdjEulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjEulerVariable(double val_psirho, double *val_phi, double val_psie, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjEulerVariable(su2double val_psirho, su2double *val_phi, su2double val_psie, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \overload @@ -3887,7 +3887,7 @@ class CAdjEulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjEulerVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjEulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -3897,73 +3897,73 @@ class CAdjEulerVariable : public CVariable { /*! * \brief Set all the primitive variables for compressible flows. */ - bool SetPrimVar_Compressible(double SharpEdge_Distance, bool check, CConfig *config); + bool SetPrimVar_Compressible(su2double SharpEdge_Distance, bool check, CConfig *config); /*! * \brief Set all the primitive variables for compressible flows. */ - bool SetPrimVar_Incompressible(double SharpEdge_Distance, bool check, CConfig *config); + bool SetPrimVar_Incompressible(su2double SharpEdge_Distance, bool check, CConfig *config); /*! * \brief Set all the primitive variables for compressible flows. */ - bool SetPrimVar_FreeSurface(double SharpEdge_Distance, bool check, CConfig *config); + bool SetPrimVar_FreeSurface(su2double SharpEdge_Distance, bool check, CConfig *config); /*! * \brief Set the value of the adjoint velocity. * \param[in] val_phi - Value of the adjoint velocity. */ - void SetPhi_Old(double *val_phi); + void SetPhi_Old(su2double *val_phi); /*! * \brief Set the value of the force projection vector. * \param[in] val_ForceProj_Vector - Pointer to the force projection vector. */ - void SetForceProj_Vector(double *val_ForceProj_Vector); + void SetForceProj_Vector(su2double *val_ForceProj_Vector); /*! * \brief Set the value of the objective function source. * \param[in] val_SetObjFuncSource - Pointer to the objective function source. */ - void SetObjFuncSource(double *val_SetObjFuncSource); + void SetObjFuncSource(su2double *val_SetObjFuncSource); /*! * \brief Set the value of the interior boundary jump vector vector. * \param[in] val_IntBoundary_Jump - Pointer to the interior boundary jump vector. */ - void SetIntBoundary_Jump(double *val_IntBoundary_Jump); + void SetIntBoundary_Jump(su2double *val_IntBoundary_Jump); /*! * \brief Get the value of the force projection vector. * \return Pointer to the force projection vector. */ - double *GetForceProj_Vector(void); + su2double *GetForceProj_Vector(void); /*! * \brief Get the value of the objective function source. * \param[in] val_SetObjFuncSource - Pointer to the objective function source. */ - double *GetObjFuncSource(void); + su2double *GetObjFuncSource(void); /*! * \brief Get the value of the force projection vector. * \return Pointer to the force projection vector. */ - double *GetIntBoundary_Jump(void); + su2double *GetIntBoundary_Jump(void); /*! * \brief Set the time spectral source term. * \param[in] val_var - Index of the variable. * \param[in] val_solution - Value of the time spectral source term. for the index val_var. */ - void SetTimeSpectral_Source(unsigned short val_var, double val_source); + void SetTimeSpectral_Source(unsigned short val_var, su2double val_source); /*! * \brief Get the time spectral source term. * \param[in] val_var - Index of the variable. * \return Value of the time spectral source term for the index val_var. */ - double GetTimeSpectral_Source(unsigned short val_var); + su2double GetTimeSpectral_Source(unsigned short val_var); }; /*! @@ -3992,7 +3992,7 @@ class CAdjNSVariable : public CAdjEulerVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjNSVariable(double val_psirho, double *val_phi, double val_psie, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjNSVariable(su2double val_psirho, su2double *val_phi, su2double val_psie, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \overload @@ -4001,7 +4001,7 @@ class CAdjNSVariable : public CAdjEulerVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjNSVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjNSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -4012,19 +4012,19 @@ class CAdjNSVariable : public CAdjEulerVariable { * \brief Set the value of the adjoint velocity. * \param[in] val_phi - Value of the adjoint velocity. */ - void SetPhi_Old(double *val_phi); + void SetPhi_Old(su2double *val_phi); /*! * \brief Set the value of the force projection vector. * \param[in] val_ForceProj_Vector - Pointer to the force projection vector. */ - void SetForceProj_Vector(double *val_ForceProj_Vector); + void SetForceProj_Vector(su2double *val_ForceProj_Vector); /*! * \brief Get the value of the force projection vector. * \return Pointer to the force projection vector. */ - double *GetForceProj_Vector(void); + su2double *GetForceProj_Vector(void); /*! * \brief Set the value of the force projection vector on the solution vector. @@ -4047,12 +4047,12 @@ class CAdjNSVariable : public CAdjEulerVariable { */ class CAdjTurbVariable : public CVariable { protected: - double *dmuT_dUTvar; /*!< \brief Sensitivity of eddy viscosity to mean flow and turbulence vars. */ - double **dRTstar_dUTvar; /*!< \brief Sensitivity of modified turbulence residual (no boundary flux) + su2double *dmuT_dUTvar; /*!< \brief Sensitivity of eddy viscosity to mean flow and turbulence vars. */ + su2double **dRTstar_dUTvar; /*!< \brief Sensitivity of modified turbulence residual (no boundary flux) to mean flow and turbulence vars. */ - double **dFT_dUTvar; /*!< \brief Sensitivity of boundary flux + su2double **dFT_dUTvar; /*!< \brief Sensitivity of boundary flux to mean flow and turbulence vars. */ - double *EddyViscSens; /*!< \brief Eddy Viscosity Sensitivity. */ + su2double *EddyViscSens; /*!< \brief Eddy Viscosity Sensitivity. */ public: @@ -4068,7 +4068,7 @@ class CAdjTurbVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjTurbVariable(double val_psinu_inf, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjTurbVariable(su2double val_psinu_inf, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -4079,13 +4079,13 @@ class CAdjTurbVariable : public CVariable { * \brief Set the Eddy Viscosity Sensitivity of the problem. * \param[in] val_EddyViscSens - Eddy Viscosity Sensitivity. */ - void SetEddyViscSens(double *val_EddyViscSens, unsigned short numTotalVar); + void SetEddyViscSens(su2double *val_EddyViscSens, unsigned short numTotalVar); /*! * \brief Get the Eddy Viscosity Sensitivity of the problem. * \return Pointer to the Eddy Viscosity Sensitivity. */ - double *GetEddyViscSens(void); + su2double *GetEddyViscSens(void); }; /*! @@ -4108,9 +4108,9 @@ class CLinPotentialVariable : public CVariable { */ class CLinEulerVariable : public CVariable { private: - double *DeltaU; /*!< \brief Vector of the linearized variables. */ - double *ForceProj_Vector; /*!< \brief Vector d. */ - double DeltaPressure; /*!< \brief Linearized pressure variable. */ + su2double *DeltaU; /*!< \brief Vector of the linearized variables. */ + su2double *ForceProj_Vector; /*!< \brief Vector d. */ + su2double DeltaPressure; /*!< \brief Linearized pressure variable. */ public: @@ -4128,7 +4128,7 @@ class CLinEulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CLinEulerVariable(double val_deltarho, double *val_deltavel, double val_deltae, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CLinEulerVariable(su2double val_deltarho, su2double *val_deltavel, su2double val_deltae, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \overload @@ -4137,7 +4137,7 @@ class CLinEulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CLinEulerVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CLinEulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -4148,32 +4148,32 @@ class CLinEulerVariable : public CVariable { * \brief Set the value of the linearized velocity. * \param[in] val_deltavel - Value of the linearized velocity. */ - void SetDeltaVel_Old(double *val_deltavel); + void SetDeltaVel_Old(su2double *val_deltavel); /*! * \brief Set the value of the force projection vector. * \param[in] val_ForceProj_Vector - Pointer to the force projection vector. */ - void SetForceProj_Vector(double *val_ForceProj_Vector); + void SetForceProj_Vector(su2double *val_ForceProj_Vector); /*! * \brief Get the value of the force projection vector. * \return Pointer to the force projection vector. */ - double *GetForceProj_Vector(void); + su2double *GetForceProj_Vector(void); /*! * \brief Set the value of the linearized pressure. * \param[in] val_velocity - Value of the velocity. * \param[in] Gamma - The ratio of specific heats. */ - void SetDeltaPressure(double *val_velocity, double Gamma); + void SetDeltaPressure(su2double *val_velocity, su2double Gamma); /*! * \brief Get the value of the linearized pressure. * \return Value of the linearized pressure. */ - double GetDeltaPressure(void); + su2double GetDeltaPressure(void); }; /*! @@ -4216,7 +4216,7 @@ class CAdjLevelSetVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjLevelSetVariable(double val_levelset, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjLevelSetVariable(su2double val_levelset, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -4236,16 +4236,16 @@ class CTNE2EulerVariable : public CVariable { protected: bool ionization; /*!< \brief Presence of charged species in gas mixture. */ unsigned short nSpecies; /*!< \brief Number of species in the gas mixture. */ - double Velocity2; /*!< \brief Square of the velocity vector. */ - double Precond_Beta; /*!< \brief Low Mach number preconditioner value, Beta. */ + su2double Velocity2; /*!< \brief Square of the velocity vector. */ + su2double Precond_Beta; /*!< \brief Low Mach number preconditioner value, Beta. */ /*--- Primitive variable definition ---*/ - double *Primitive; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */ - double **Gradient_Primitive; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */ - double *Limiter_Primitive; /*!< \brief Limiter of the primitive variables (T, vx, vy, vz, P, rho). */ - double *dPdU; /*!< \brief Partial derivative of pressure w.r.t. conserved variables. */ - double *dTdU; /*!< \brief Partial derivative of temperature w.r.t. conserved variables. */ - double *dTvedU; /*!< \brief Partial derivative of vib.-el. temperature w.r.t. conserved variables. */ + su2double *Primitive; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */ + su2double **Gradient_Primitive; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */ + su2double *Limiter_Primitive; /*!< \brief Limiter of the primitive variables (T, vx, vy, vz, P, rho). */ + su2double *dPdU; /*!< \brief Partial derivative of pressure w.r.t. conserved variables. */ + su2double *dTdU; /*!< \brief Partial derivative of temperature w.r.t. conserved variables. */ + su2double *dTvedU; /*!< \brief Partial derivative of vib.-el. temperature w.r.t. conserved variables. */ unsigned short RHOS_INDEX, T_INDEX, TVE_INDEX, VEL_INDEX, P_INDEX, RHO_INDEX, H_INDEX, A_INDEX, RHOCVTR_INDEX, RHOCVVE_INDEX; @@ -4281,9 +4281,9 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_nvarprimgrad - Number of primitive gradient variables. * \param[in] config - Definition of the particular problem. */ - CTNE2EulerVariable(double val_pressure, double *val_massfrac, - double *val_mach, double val_temperature, - double val_temperature_ve, unsigned short val_nDim, + CTNE2EulerVariable(su2double val_pressure, su2double *val_massfrac, + su2double *val_mach, su2double val_temperature, + su2double val_temperature_ve, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, unsigned short val_nvarprimgrad, CConfig *config); @@ -4294,7 +4294,7 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CTNE2EulerVariable(double *val_solution, unsigned short val_nDim, + CTNE2EulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, unsigned short val_nvarprimgrad, CConfig *config); @@ -4314,7 +4314,7 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to add to the gradient of the primitive variables. */ - void AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + void AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Subtract val_value to the gradient of the primitive variables. @@ -4322,7 +4322,7 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value to subtract to the gradient of the primitive variables. */ - void SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + void SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Get the value of the primitive variables gradient. @@ -4330,7 +4330,7 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \return Value of the primitive variables gradient. */ - double GetGradient_Primitive(unsigned short val_var, unsigned short val_dim); + su2double GetGradient_Primitive(unsigned short val_var, unsigned short val_dim); /*! * \brief Set the gradient of the primitive variables. @@ -4338,13 +4338,13 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_dim - Index of the dimension. * \param[in] val_value - Value of the gradient. */ - void SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value); + void SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value); /*! * \brief Get the value of the primitive variables gradient. * \return Value of the primitive variables gradient. */ - double **GetGradient_Primitive(void); + su2double **GetGradient_Primitive(void); /*! * \brief Set the value of the velocity*velocity. @@ -4382,34 +4382,34 @@ class CTNE2EulerVariable : public CVariable { /*! * \brief Calculates vib.-el. energy per mass, \f$e^{vib-el}_s\f$, for input species (not including KE) */ - double CalcEve(double *V, CConfig *config, unsigned short val_Species); + su2double CalcEve(su2double *V, CConfig *config, unsigned short val_Species); /*! * \brief Calculates enthalpy per mass, \f$h^{vib-el}_s\f$, for input species (not including KE) */ - double CalcHs(double *V, CConfig *config, unsigned short val_Species); + su2double CalcHs(su2double *V, CConfig *config, unsigned short val_Species); /*! * \brief Calculates enthalpy per mass, \f$C^{vib-el}_{v_s}\f$, for input species (not including KE) */ - double CalcCvve(double val_Tve, CConfig *config, unsigned short val_Species); + su2double CalcCvve(su2double val_Tve, CConfig *config, unsigned short val_Species); /*! * \brief Calculates partial derivative of pressure w.r.t. conserved variables \f$\frac{\partial P}{\partial U}\f$ * \param[in] config - Configuration settings * \param[in] dPdU - Passed-by-reference array to assign the derivatives */ - void CalcdPdU(double *V, CConfig *config, double *dPdU); + void CalcdPdU(su2double *V, CConfig *config, su2double *dPdU); /*! * \brief Set partial derivative of temperature w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$ */ - void CalcdTdU(double *V, CConfig *config, double *dTdU); + void CalcdTdU(su2double *V, CConfig *config, su2double *dTdU); /*! * \brief Set partial derivative of vib.-el. temperature w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$ */ - void CalcdTvedU(double *V, CConfig *config, double *dTvedU); + void CalcdTvedU(su2double *V, CConfig *config, su2double *dTvedU); /*! * \brief Set partial derivative of pressure w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$ @@ -4424,17 +4424,17 @@ class CTNE2EulerVariable : public CVariable { /*! * \brief Set partial derivative of pressure w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$ */ - double *GetdPdU(void); + su2double *GetdPdU(void); /*! * \brief Set partial derivative of temperature w.r.t. density \f$\frac{\partial T}{\partial \rho_s}\f$ */ - double *GetdTdU(void); + su2double *GetdTdU(void); /*! * \brief Set partial derivative of vib.-el. temperature w.r.t. density \f$\frac{\partial T^{V-E}}{\partial \rho_s}\f$ */ - double *GetdTvedU(void); + su2double *GetdTvedU(void); /*! * \brief Set all the primitive variables for compressible flows. @@ -4444,20 +4444,20 @@ class CTNE2EulerVariable : public CVariable { /*! * \brief Set all the conserved variables. */ - bool Cons2PrimVar(CConfig *config, double *U, double *V, double *dPdU, - double *dTdU, double *dTvedU); + bool Cons2PrimVar(CConfig *config, su2double *U, su2double *V, su2double *dPdU, + su2double *dTdU, su2double *dTvedU); /*! * \brief Set all the conserved variables. */ - void Prim2ConsVar(CConfig *config, double *V, double *U); + void Prim2ConsVar(CConfig *config, su2double *V, su2double *U); /*! * \brief Get the primitive variables. * \param[in] val_var - Index of the variable. * \return Value of the primitive variable for the index val_var. */ - double GetPrimitive(unsigned short val_var); + su2double GetPrimitive(unsigned short val_var); /*! * \brief Set the value of the primitive variables. @@ -4465,20 +4465,20 @@ class CTNE2EulerVariable : public CVariable { * \param[in] val_var - Index of the variable. * \return Set the value of the primitive variable for the index val_var. */ - void SetPrimitive(unsigned short val_var, double val_prim); + void SetPrimitive(unsigned short val_var, su2double val_prim); /*! * \brief Set the value of the primitive variables. * \param[in] val_prim - Primitive variables. * \return Set the value of the primitive variable for the index val_var. */ - void SetPrimitive(double *val_prim); + void SetPrimitive(su2double *val_prim); /*! * \brief Get the primitive variables of the problem. * \return Pointer to the primitive variable vector. */ - double *GetPrimitive(void); + su2double *GetPrimitive(void); /*! * \brief A virtual member. @@ -4490,133 +4490,133 @@ class CTNE2EulerVariable : public CVariable { * \brief Get the norm 2 of the velocity. * \return Norm 2 of the velocity vector. */ - double GetVelocity2(void); + su2double GetVelocity2(void); /*! * \brief Get the flow pressure. * \return Value of the flow pressure. */ - double GetPressure(void); + su2double GetPressure(void); /*! * \brief Get the speed of the sound. * \return Value of speed of the sound. */ - double GetSoundSpeed(void); + su2double GetSoundSpeed(void); /*! * \brief Get the enthalpy of the flow. * \return Value of the enthalpy of the flow. */ - double GetEnthalpy(void); + su2double GetEnthalpy(void); /*! * \brief Get the density of the flow. * \return Value of the density of the flow. */ - double GetDensity(void); + su2double GetDensity(void); /*! * \brief Get the mass fraction \f$\rho_s / \rho \f$ of species s. * \param[in] val_Species - Index of species s. * \return Value of the mass fraction of species s. */ - double GetMassFraction(unsigned short val_Species); + su2double GetMassFraction(unsigned short val_Species); /*! * \brief Get the energy of the flow. * \return Value of the energy of the flow. */ - double GetEnergy(void); + su2double GetEnergy(void); /*! * \brief Get the temperature of the flow. * \return Value of the temperature of the flow. */ - double GetTemperature(void); + su2double GetTemperature(void); /*! * \brief Sets the temperature of the flow. * \return Value of the temperature of the flow. */ - bool SetTemperature(double val_T); + bool SetTemperature(su2double val_T); /*! * \brief A virtual member. * \return Value of the vibrational-electronic temperature. */ - double GetTemperature_ve(void); + su2double GetTemperature_ve(void); /*! * \brief Sets the vibrational electronic temperature of the flow. * \return Value of the temperature of the flow. */ - bool SetTemperature_ve(double val_Tve); + bool SetTemperature_ve(su2double val_Tve); /*! * \brief Get the mixture specific heat at constant volume (trans.-rot.). * \return \f$\rho C^{t-r}_{v} \f$ */ - double GetRhoCv_tr(void); + su2double GetRhoCv_tr(void); /*! * \brief Get the mixture specific heat at constant volume (vib.-el.). * \return \f$\rho C^{v-e}_{v} \f$ */ - double GetRhoCv_ve(void); + su2double GetRhoCv_ve(void); /*! * \brief Get the velocity of the flow. * \param[in] val_dim - Index of the dimension. * \return Value of the velocity for the dimension val_dim. */ - double GetVelocity(unsigned short val_dim); + su2double GetVelocity(unsigned short val_dim); /*! * \brief Get the projected velocity in a unitary vector direction (compressible solver). * \param[in] val_vector - Direction of projection. * \return Value of the projected velocity. */ - double GetProjVel(double *val_vector); + su2double GetProjVel(su2double *val_vector); /*! * \brief Set the velocity vector from the old solution. * \param[in] val_velocity - Pointer to the velocity. */ - void SetVelocity_Old(double *val_velocity); + void SetVelocity_Old(su2double *val_velocity); /*! * \brief Get the value of the limiter. */ - double *GetLimiter_Primitive(void); + su2double *GetLimiter_Primitive(void); /*! * \brief Get the value of the primitive variables gradient. * \param[in] val_var - Index of the variable. * \return Value of the primitive variables gradient. */ - double GetLimiter_Primitive(unsigned short val_var); + su2double GetLimiter_Primitive(unsigned short val_var); /*! * \brief Set the value of the limiter. */ - void SetLimiter_Primitive(unsigned short val_var, double val_value); + void SetLimiter_Primitive(unsigned short val_var, su2double val_value); /*! * \brief Set the value of the limiter. */ - void SetLimiter(unsigned short val_var, double val_value); + void SetLimiter(unsigned short val_var, su2double val_value); /*! * \brief Get the value of the preconditioner Beta. * \return Value of the low Mach preconditioner variable Beta */ - double GetPreconditioner_Beta(); + su2double GetPreconditioner_Beta(); /*! * \brief Set the value of the preconditioner Beta. * \param[in] val_Beta Value of the low Mach preconditioner variable Beta */ - void SetPreconditioner_Beta(double val_Beta); + void SetPreconditioner_Beta(su2double val_Beta); /*! * \brief Retrieves the value of the species density in the primitive variable vector. @@ -4689,15 +4689,15 @@ class CTNE2EulerVariable : public CVariable { */ class CTNE2NSVariable : public CTNE2EulerVariable { private: - double Prandtl_Lam; /*!< \brief Laminar Prandtl number. */ - double Temperature_Ref; /*!< \brief Reference temperature of the fluid. */ - double Viscosity_Ref; /*!< \brief Reference viscosity of the fluid. */ - double Viscosity_Inf; /*!< \brief Viscosity of the fluid at the infinity. */ - double *DiffusionCoeff; /*!< \brief Diffusion coefficient of the mixture. */ - double LaminarViscosity; /*!< \brief Viscosity of the fluid. */ - double ThermalCond; /*!< \brief T-R thermal conductivity of the gas mixture. */ - double ThermalCond_ve; /*!< \brief V-E thermal conductivity of the gas mixture. */ - double Vorticity[3]; /*!< \brief Vorticity of the fluid. */ + su2double Prandtl_Lam; /*!< \brief Laminar Prandtl number. */ + su2double Temperature_Ref; /*!< \brief Reference temperature of the fluid. */ + su2double Viscosity_Ref; /*!< \brief Reference viscosity of the fluid. */ + su2double Viscosity_Inf; /*!< \brief Viscosity of the fluid at the infinity. */ + su2double *DiffusionCoeff; /*!< \brief Diffusion coefficient of the mixture. */ + su2double LaminarViscosity; /*!< \brief Viscosity of the fluid. */ + su2double ThermalCond; /*!< \brief T-R thermal conductivity of the gas mixture. */ + su2double ThermalCond_ve; /*!< \brief V-E thermal conductivity of the gas mixture. */ + su2double Vorticity[3]; /*!< \brief Vorticity of the fluid. */ public: @@ -4732,8 +4732,8 @@ class CTNE2NSVariable : public CTNE2EulerVariable { * \param[in] val_nvarprimgrad - Number of primitive gradient variables. * \param[in] config - Definition of the particular problem. */ - CTNE2NSVariable(double val_density, double *val_massfrac, double *val_velocity, - double val_temperature, double val_temperature_ve, unsigned short val_nDim, + CTNE2NSVariable(su2double val_density, su2double *val_massfrac, su2double *val_velocity, + su2double val_temperature, su2double val_temperature_ve, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, unsigned short val_nvarprimgrad, CConfig *config); @@ -4746,7 +4746,7 @@ class CTNE2NSVariable : public CTNE2EulerVariable { * \param[in] val_nvarprimgrad - Number of primitive gradient variables. * \param[in] config - Definition of the particular problem. */ - CTNE2NSVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, + CTNE2NSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, unsigned short val_nvarprimgrad, CConfig *config); @@ -4780,37 +4780,37 @@ class CTNE2NSVariable : public CTNE2EulerVariable { * \brief Get the species diffusion coefficient. * \return Value of the species diffusion coefficient. */ - double* GetDiffusionCoeff(void); + su2double* GetDiffusionCoeff(void); /*! * \brief Get the laminar viscosity of the flow. * \return Value of the laminar viscosity of the flow. */ - double GetLaminarViscosity(void); + su2double GetLaminarViscosity(void); /*! * \brief Get the thermal conductivity of the flow. * \return Value of the laminar viscosity of the flow. */ - double GetThermalConductivity(void); + su2double GetThermalConductivity(void); /*! * \brief Get the vib-el. thermal conductivity of the flow. * \return Value of the laminar viscosity of the flow. */ - double GetThermalConductivity_ve(void); + su2double GetThermalConductivity_ve(void); /*! * \brief Set the temperature at the wall */ - void SetWallTemperature(double temperature_wall); + void SetWallTemperature(su2double temperature_wall); /*! * \brief Get the value of the vorticity. * \param[in] val_dim - Index of the dimension. * \return Value of the vorticity. */ - double *GetVorticity(void); + su2double *GetVorticity(void); /*! * \brief Set all the primitive variables for compressible flows @@ -4830,12 +4830,12 @@ class CTNE2NSVariable : public CTNE2EulerVariable { class CAdjTNE2EulerVariable : public CVariable { protected: unsigned short nSpecies; - double *Psi; /*!< \brief Vector of the adjoint variables. */ - double *ForceProj_Vector; /*!< \brief Vector d. */ - double *ObjFuncSource; /*!< \brief Vector containing objective function sensitivity for discrete adjoint. */ - double *IntBoundary_Jump; /*!< \brief Interior boundary jump vector. */ - double *TS_Source; /*!< \brief Time spectral source term. */ - double Theta; /*!< \brief Theta variable. */ + su2double *Psi; /*!< \brief Vector of the adjoint variables. */ + su2double *ForceProj_Vector; /*!< \brief Vector d. */ + su2double *ObjFuncSource; /*!< \brief Vector containing objective function sensitivity for discrete adjoint. */ + su2double *IntBoundary_Jump; /*!< \brief Interior boundary jump vector. */ + su2double *TS_Source; /*!< \brief Time spectral source term. */ + su2double Theta; /*!< \brief Theta variable. */ bool incompressible; public: @@ -4854,8 +4854,8 @@ class CAdjTNE2EulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjTNE2EulerVariable(double *val_psirho, double *val_phi, - double val_psie, double val_psieve, + CAdjTNE2EulerVariable(su2double *val_psirho, su2double *val_phi, + su2double val_psie, su2double val_psieve, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); @@ -4866,7 +4866,7 @@ class CAdjTNE2EulerVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjTNE2EulerVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjTNE2EulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -4876,7 +4876,7 @@ class CAdjTNE2EulerVariable : public CVariable { /*! * \brief Set all the primitive variables for compressible flows. */ - bool SetPrimVar_Compressible(double SharpEdge_Distance, + bool SetPrimVar_Compressible(su2double SharpEdge_Distance, bool check, CConfig *config); @@ -4884,36 +4884,36 @@ class CAdjTNE2EulerVariable : public CVariable { * \brief Set the value of the adjoint velocity. * \param[in] val_phi - Value of the adjoint velocity. */ - void SetPhi_Old(double *val_phi); + void SetPhi_Old(su2double *val_phi); /*! * \brief Get the value of theta. */ - double GetTheta(void); + su2double GetTheta(void); /*! * \brief Set the value of the force projection vector. * \param[in] val_ForceProj_Vector - Pointer to the force projection vector. */ - void SetForceProj_Vector(double *val_ForceProj_Vector); + void SetForceProj_Vector(su2double *val_ForceProj_Vector); /*! * \brief Set the value of the objective function source. * \param[in] val_SetObjFuncSource - Pointer to the objective function source. */ - void SetObjFuncSource(double *val_SetObjFuncSource); + void SetObjFuncSource(su2double *val_SetObjFuncSource); /*! * \brief Get the value of the force projection vector. * \return Pointer to the force projection vector. */ - double *GetForceProj_Vector(void); + su2double *GetForceProj_Vector(void); /*! * \brief Get the value of the objective function source. * \param[in] val_SetObjFuncSource - Pointer to the objective function source. */ - double *GetObjFuncSource(void); + su2double *GetObjFuncSource(void); }; @@ -4943,8 +4943,8 @@ class CAdjTNE2NSVariable : public CAdjTNE2EulerVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjTNE2NSVariable(double *val_psirho, double *val_phi, - double val_psie, double val_psieve, + CAdjTNE2NSVariable(su2double *val_psirho, su2double *val_phi, + su2double val_psie, su2double val_psieve, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); @@ -4955,7 +4955,7 @@ class CAdjTNE2NSVariable : public CAdjTNE2EulerVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CAdjTNE2NSVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CAdjTNE2NSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. @@ -4966,24 +4966,24 @@ class CAdjTNE2NSVariable : public CAdjTNE2EulerVariable { * \brief Set the value of the adjoint velocity. * \param[in] val_phi - Value of the adjoint velocity. */ - void SetPhi_Old(double *val_phi); + void SetPhi_Old(su2double *val_phi); /*! * \brief Get the value of theta. */ - double GetTheta(void); + su2double GetTheta(void); /*! * \brief Set the value of the force projection vector. * \param[in] val_ForceProj_Vector - Pointer to the force projection vector. */ - void SetForceProj_Vector(double *val_ForceProj_Vector); + void SetForceProj_Vector(su2double *val_ForceProj_Vector); /*! * \brief Get the value of the force projection vector. * \return Pointer to the force projection vector. */ - double *GetForceProj_Vector(void); + su2double *GetForceProj_Vector(void); /*! * \brief Set the value of the force projection vector on the solution vector. @@ -5020,7 +5020,7 @@ class CTemplateVariable : public CVariable { * \param[in] val_nvar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ - CTemplateVariable(double val_potential, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + CTemplateVariable(su2double val_potential, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); /*! * \brief Destructor of the class. diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 6e1e928b3a3..17a923cb6d5 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -37,31 +37,31 @@ inline void CVariable::SetVelSolutionOldDVector(void) { } inline void CVariable::SetVelSolutionDVector(void) { } -inline void CVariable::SetTraction(unsigned short iVar, unsigned short jVar, double val_traction) { } +inline void CVariable::SetTraction(unsigned short iVar, unsigned short jVar, su2double val_traction) { } -inline void CVariable::AddTraction(unsigned short iVar, unsigned short jVar, double val_traction) { } +inline void CVariable::AddTraction(unsigned short iVar, unsigned short jVar, su2double val_traction) { } -inline double **CVariable::GetTraction(void) { return NULL; } +inline su2double **CVariable::GetTraction(void) { return NULL; } -inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, double val_stress) { } +inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } -inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, double val_stress) { } +inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } -inline double **CVariable::GetStress(void) { return NULL; } +inline su2double **CVariable::GetStress(void) { return NULL; } -inline void CVariable::SetStress_FEM(unsigned short iVar, double val_stress) { } +inline void CVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { } -inline void CVariable::AddStress_FEM(unsigned short iVar, double val_stress) { } +inline void CVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { } -inline double *CVariable::GetStress_FEM(void) { return NULL; } +inline su2double *CVariable::GetStress_FEM(void) { return NULL; } -inline void CVariable::SetVonMises_Stress(double val_stress) { } +inline void CVariable::SetVonMises_Stress(su2double val_stress) { } -inline double CVariable::GetVonMises_Stress(void) { return 0; } +inline su2double CVariable::GetVonMises_Stress(void) { return 0; } -inline void CVariable::SetFlow_Pressure(double val_pressure) { } +inline void CVariable::SetFlow_Pressure(su2double val_pressure) { } -inline double CVariable::GetFlow_Pressure(void) { return 0; } +inline su2double CVariable::GetFlow_Pressure(void) { return 0; } inline void CVariable::Initialize_Connectivity(void) { } @@ -69,255 +69,255 @@ inline void CVariable::Upgrade_Connectivity(void) { } inline unsigned short CVariable::Get_Connectivity(void) { return 0; } -inline void CVariable::Add_SurfaceLoad_Res(double *val_surfForce) { } +inline void CVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { } -inline double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} +inline su2double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} inline void CVariable::Clear_SurfaceLoad_Res(void) { } -inline void CVariable::Set_FlowTraction(double *val_flowTraction) { } +inline void CVariable::Set_FlowTraction(su2double *val_flowTraction) { } -inline void CVariable::Add_FlowTraction(double *val_flowTraction) { } +inline void CVariable::Add_FlowTraction(su2double *val_flowTraction) { } -inline double *CVariable::Get_FlowTraction(void) {return NULL;} +inline su2double *CVariable::Get_FlowTraction(void) {return NULL;} inline void CVariable::Clear_FlowTraction(void) { } -inline double CVariable::GetBetaInc2(void) { return 0; } +inline su2double CVariable::GetBetaInc2(void) { return 0; } -inline double CVariable::GetDiffLevelSet(void) { return 0; } +inline su2double CVariable::GetDiffLevelSet(void) { return 0; } -inline double CVariable::GetDensityInc(void) { return 0; } +inline su2double CVariable::GetDensityInc(void) { return 0; } -inline double CVariable::GetLevelSet(void) { return 0; } +inline su2double CVariable::GetLevelSet(void) { return 0; } -inline double CVariable::GetDistance(void) { return 0; } +inline su2double CVariable::GetDistance(void) { return 0; } -inline double CVariable::GetMassFraction(unsigned short val_Species) { return 0; } +inline su2double CVariable::GetMassFraction(unsigned short val_Species) { return 0; } inline void CVariable::SetNon_Physical(bool val_value) { Non_Physical = !val_value; } -inline double CVariable::GetNon_Physical(void) { return double(Non_Physical); } +inline su2double CVariable::GetNon_Physical(void) { return su2double(Non_Physical); } -inline void CVariable::SetSolution(unsigned short val_var, double val_solution) { Solution[val_var] = val_solution; } +inline void CVariable::SetSolution(unsigned short val_var, su2double val_solution) { Solution[val_var] = val_solution; } -inline void CVariable::Add_DeltaSolution(unsigned short val_var, double val_solution) { Solution[val_var] += val_solution; } +inline void CVariable::Add_DeltaSolution(unsigned short val_var, su2double val_solution) { Solution[val_var] += val_solution; } -inline void CVariable::SetUndivided_Laplacian(unsigned short val_var, double val_undivided_laplacian) { Undivided_Laplacian[val_var] = val_undivided_laplacian; } +inline void CVariable::SetUndivided_Laplacian(unsigned short val_var, su2double val_undivided_laplacian) { Undivided_Laplacian[val_var] = val_undivided_laplacian; } -inline void CVariable::SetAuxVar(double val_auxvar) { AuxVar = val_auxvar; } +inline void CVariable::SetAuxVar(su2double val_auxvar) { AuxVar = val_auxvar; } -inline void CVariable::SetSolution_Old(unsigned short val_var, double val_solution_old) { Solution_Old[val_var] = val_solution_old; } +inline void CVariable::SetSolution_Old(unsigned short val_var, su2double val_solution_old) { Solution_Old[val_var] = val_solution_old; } -inline void CVariable::SetLimiter(unsigned short val_var, double val_limiter) { Limiter[val_var] = val_limiter; } +inline void CVariable::SetLimiter(unsigned short val_var, su2double val_limiter) { Limiter[val_var] = val_limiter; } -inline void CVariable::SetLimiterPrimitive(unsigned short val_species, unsigned short val_var, double val_limiter) { } +inline void CVariable::SetLimiterPrimitive(unsigned short val_species, unsigned short val_var, su2double val_limiter) { } -inline double CVariable::GetLimiterPrimitive(unsigned short val_species, unsigned short val_var) { return 0.0; } +inline su2double CVariable::GetLimiterPrimitive(unsigned short val_species, unsigned short val_var) { return 0.0; } -inline void CVariable::SetSolution_Max(unsigned short val_var, double val_solution) { Solution_Max[val_var] = val_solution; } +inline void CVariable::SetSolution_Max(unsigned short val_var, su2double val_solution) { Solution_Max[val_var] = val_solution; } -inline void CVariable::SetSolution_Min(unsigned short val_var, double val_solution) { Solution_Min[val_var] = val_solution; } +inline void CVariable::SetSolution_Min(unsigned short val_var, su2double val_solution) { Solution_Min[val_var] = val_solution; } -inline void CVariable::SetAuxVarGradient(unsigned short iDim, double val_gradient) { Grad_AuxVar[iDim] = val_gradient; } +inline void CVariable::SetAuxVarGradient(unsigned short iDim, su2double val_gradient) { Grad_AuxVar[iDim] = val_gradient; } -inline double *CVariable::GetSolution(void) { return Solution; } +inline su2double *CVariable::GetSolution(void) { return Solution; } -inline double *CVariable::GetSolution_Old(void) { return Solution_Old; } +inline su2double *CVariable::GetSolution_Old(void) { return Solution_Old; } -inline double *CVariable::GetSolution_time_n(void) { return Solution_time_n; } +inline su2double *CVariable::GetSolution_time_n(void) { return Solution_time_n; } -inline double *CVariable::GetSolution_time_n1(void) { return Solution_time_n1; } +inline su2double *CVariable::GetSolution_time_n1(void) { return Solution_time_n1; } -inline double CVariable::GetAuxVar(void) { return AuxVar; } +inline su2double CVariable::GetAuxVar(void) { return AuxVar; } -inline double *CVariable::GetUndivided_Laplacian(void) { return Undivided_Laplacian; } +inline su2double *CVariable::GetUndivided_Laplacian(void) { return Undivided_Laplacian; } -inline double CVariable::GetUndivided_Laplacian(unsigned short val_var) { return Undivided_Laplacian[val_var]; } +inline su2double CVariable::GetUndivided_Laplacian(unsigned short val_var) { return Undivided_Laplacian[val_var]; } -inline double CVariable::GetSolution(unsigned short val_var) { return Solution[val_var]; } +inline su2double CVariable::GetSolution(unsigned short val_var) { return Solution[val_var]; } -inline double CVariable::GetSolution_Old(unsigned short val_var) { return Solution_Old[val_var]; } +inline su2double CVariable::GetSolution_Old(unsigned short val_var) { return Solution_Old[val_var]; } -inline double *CVariable::GetResidual_Sum(void) { return Residual_Sum; } +inline su2double *CVariable::GetResidual_Sum(void) { return Residual_Sum; } -inline double *CVariable::GetResidual_Old(void) { return Residual_Old; } +inline su2double *CVariable::GetResidual_Old(void) { return Residual_Old; } -inline void CVariable::SetGradient(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient[val_var][val_dim] = val_value; } +inline void CVariable::SetGradient(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient[val_var][val_dim] = val_value; } -inline void CVariable::AddGradient(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient[val_var][val_dim] += val_value; } +inline void CVariable::AddGradient(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient[val_var][val_dim] += val_value; } -inline void CVariable::SubtractGradient(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient[val_var][val_dim] -= val_value; } +inline void CVariable::SubtractGradient(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient[val_var][val_dim] -= val_value; } -inline void CVariable::AddAuxVarGradient(unsigned short val_dim, double val_value) { Grad_AuxVar[val_dim] += val_value; } +inline void CVariable::AddAuxVarGradient(unsigned short val_dim, su2double val_value) { Grad_AuxVar[val_dim] += val_value; } -inline void CVariable::SubtractAuxVarGradient(unsigned short val_dim, double val_value) { Grad_AuxVar[val_dim] -= val_value; } +inline void CVariable::SubtractAuxVarGradient(unsigned short val_dim, su2double val_value) { Grad_AuxVar[val_dim] -= val_value; } -inline double CVariable::GetGradient(unsigned short val_var, unsigned short val_dim) { return Gradient[val_var][val_dim]; } +inline su2double CVariable::GetGradient(unsigned short val_var, unsigned short val_dim) { return Gradient[val_var][val_dim]; } -inline double CVariable::GetLimiter(unsigned short val_var) { return Limiter[val_var]; } +inline su2double CVariable::GetLimiter(unsigned short val_var) { return Limiter[val_var]; } -inline double CVariable::GetSolution_Max(unsigned short val_var) { return Solution_Max[val_var]; } +inline su2double CVariable::GetSolution_Max(unsigned short val_var) { return Solution_Max[val_var]; } -inline double CVariable::GetSolution_Min(unsigned short val_var) { return Solution_Min[val_var]; } +inline su2double CVariable::GetSolution_Min(unsigned short val_var) { return Solution_Min[val_var]; } -inline double CVariable::GetPreconditioner_Beta() { return 0; } +inline su2double CVariable::GetPreconditioner_Beta() { return 0; } -inline void CVariable::SetPreconditioner_Beta( double val_Beta) { } +inline void CVariable::SetPreconditioner_Beta( su2double val_Beta) { } -inline double* CVariable::GetWindGust() { return 0; } +inline su2double* CVariable::GetWindGust() { return 0; } -inline void CVariable::SetWindGust( double* val_WindGust) {} +inline void CVariable::SetWindGust( su2double* val_WindGust) {} -inline double* CVariable::GetWindGustDer() { return 0; } +inline su2double* CVariable::GetWindGustDer() { return 0; } -inline void CVariable::SetWindGustDer( double* val_WindGustDer) {} +inline void CVariable::SetWindGustDer( su2double* val_WindGustDer) {} -inline double **CVariable::GetGradient(void) { return Gradient; } +inline su2double **CVariable::GetGradient(void) { return Gradient; } -inline double *CVariable::GetLimiter(void) { return Limiter; } +inline su2double *CVariable::GetLimiter(void) { return Limiter; } -inline double *CVariable::GetAuxVarGradient(void) { return Grad_AuxVar; } +inline su2double *CVariable::GetAuxVarGradient(void) { return Grad_AuxVar; } -inline double CVariable::GetAuxVarGradient(unsigned short val_dim) { return Grad_AuxVar[val_dim]; } +inline su2double CVariable::GetAuxVarGradient(unsigned short val_dim) { return Grad_AuxVar[val_dim]; } -inline double *CVariable::GetResTruncError(void) { return Res_TruncError; } +inline su2double *CVariable::GetResTruncError(void) { return Res_TruncError; } -inline void CVariable::SetDelta_Time(double val_delta_time) { Delta_Time = val_delta_time; } +inline void CVariable::SetDelta_Time(su2double val_delta_time) { Delta_Time = val_delta_time; } -inline void CVariable::SetDelta_Time(double val_delta_time, unsigned short iSpecies) { } +inline void CVariable::SetDelta_Time(su2double val_delta_time, unsigned short iSpecies) { } -inline double CVariable::GetDelta_Time(void) { return Delta_Time; } +inline su2double CVariable::GetDelta_Time(void) { return Delta_Time; } -inline double CVariable::GetDelta_Time(unsigned short iSpecies) { return 0;} +inline su2double CVariable::GetDelta_Time(unsigned short iSpecies) { return 0;} -inline void CVariable::SetMax_Lambda(double val_max_lambda) { Max_Lambda = val_max_lambda; } +inline void CVariable::SetMax_Lambda(su2double val_max_lambda) { Max_Lambda = val_max_lambda; } -inline void CVariable::SetMax_Lambda_Inv(double val_max_lambda) { Max_Lambda_Inv = val_max_lambda; } +inline void CVariable::SetMax_Lambda_Inv(su2double val_max_lambda) { Max_Lambda_Inv = val_max_lambda; } -inline void CVariable::SetMax_Lambda_Inv(double val_max_lambda, unsigned short val_species) { } +inline void CVariable::SetMax_Lambda_Inv(su2double val_max_lambda, unsigned short val_species) { } -inline void CVariable::SetMax_Lambda_Visc(double val_max_lambda) { Max_Lambda_Visc = val_max_lambda; } +inline void CVariable::SetMax_Lambda_Visc(su2double val_max_lambda) { Max_Lambda_Visc = val_max_lambda; } -inline void CVariable::SetMax_Lambda_Visc(double val_max_lambda, unsigned short val_species) { } +inline void CVariable::SetMax_Lambda_Visc(su2double val_max_lambda, unsigned short val_species) { } -inline void CVariable::SetLambda(double val_lambda) { Lambda = val_lambda; } +inline void CVariable::SetLambda(su2double val_lambda) { Lambda = val_lambda; } -inline void CVariable::SetLambda(double val_lambda, unsigned short iSpecies) {} +inline void CVariable::SetLambda(su2double val_lambda, unsigned short iSpecies) {} -inline void CVariable::AddMax_Lambda(double val_max_lambda) { Max_Lambda += val_max_lambda; } +inline void CVariable::AddMax_Lambda(su2double val_max_lambda) { Max_Lambda += val_max_lambda; } -inline void CVariable::AddMax_Lambda_Inv(double val_max_lambda) { Max_Lambda_Inv += val_max_lambda; } +inline void CVariable::AddMax_Lambda_Inv(su2double val_max_lambda) { Max_Lambda_Inv += val_max_lambda; } -inline void CVariable::AddMax_Lambda_Visc(double val_max_lambda) { Max_Lambda_Visc += val_max_lambda; } +inline void CVariable::AddMax_Lambda_Visc(su2double val_max_lambda) { Max_Lambda_Visc += val_max_lambda; } -inline void CVariable::AddLambda(double val_lambda) { Lambda += val_lambda; } +inline void CVariable::AddLambda(su2double val_lambda) { Lambda += val_lambda; } -inline void CVariable::AddLambda(double val_lambda, unsigned short iSpecies) {} +inline void CVariable::AddLambda(su2double val_lambda, unsigned short iSpecies) {} -inline double CVariable::GetMax_Lambda(void) { return Max_Lambda; } +inline su2double CVariable::GetMax_Lambda(void) { return Max_Lambda; } -inline double CVariable::GetMax_Lambda_Inv(void) { return Max_Lambda_Inv; } +inline su2double CVariable::GetMax_Lambda_Inv(void) { return Max_Lambda_Inv; } -inline double CVariable::GetMax_Lambda_Visc(void) { return Max_Lambda_Visc; } +inline su2double CVariable::GetMax_Lambda_Visc(void) { return Max_Lambda_Visc; } -inline double CVariable::GetLambda(void) { return Lambda; } +inline su2double CVariable::GetLambda(void) { return Lambda; } -inline double CVariable::GetLambda(unsigned short iSpecies) { return 0; } +inline su2double CVariable::GetLambda(unsigned short iSpecies) { return 0; } -inline double CVariable::GetSensor(void) { return Sensor; } +inline su2double CVariable::GetSensor(void) { return Sensor; } -inline double CVariable::GetSensor(unsigned short iSpecies) { return 0;} +inline su2double CVariable::GetSensor(unsigned short iSpecies) { return 0;} -inline void CVariable::AddMax_Lambda_Inv(double val_max_lambda, unsigned short iSpecies) { } +inline void CVariable::AddMax_Lambda_Inv(su2double val_max_lambda, unsigned short iSpecies) { } -inline void CVariable::AddMax_Lambda_Visc(double val_max_lambda, unsigned short iSpecies) { } +inline void CVariable::AddMax_Lambda_Visc(su2double val_max_lambda, unsigned short iSpecies) { } -inline void CVariable::SetSensor(double val_sensor) { Sensor = val_sensor; } +inline void CVariable::SetSensor(su2double val_sensor) { Sensor = val_sensor; } -inline void CVariable::SetSensor(double val_sensor, unsigned short val_iSpecies) {} +inline void CVariable::SetSensor(su2double val_sensor, unsigned short val_iSpecies) {} -inline double CVariable::GetDensity(void) { return 0; } +inline su2double CVariable::GetDensity(void) { return 0; } -inline double CVariable::GetDensity(unsigned short val_iSpecies) { return 0; } +inline su2double CVariable::GetDensity(unsigned short val_iSpecies) { return 0; } -inline double CVariable::GetEnergy(void) { return 0; } +inline su2double CVariable::GetEnergy(void) { return 0; } -inline double *CVariable::GetForceProj_Vector(void) { return NULL; } +inline su2double *CVariable::GetForceProj_Vector(void) { return NULL; } -inline double *CVariable::GetObjFuncSource(void) { return NULL; } +inline su2double *CVariable::GetObjFuncSource(void) { return NULL; } -inline double *CVariable::GetIntBoundary_Jump(void) { return NULL; } +inline su2double *CVariable::GetIntBoundary_Jump(void) { return NULL; } -inline double CVariable::GetEddyViscosity(void) { return 0; } +inline su2double CVariable::GetEddyViscosity(void) { return 0; } -inline double CVariable::GetEddyViscosityInc(void) { return 0; } +inline su2double CVariable::GetEddyViscosityInc(void) { return 0; } inline void CVariable::SetGammaEff(void) { } -inline void CVariable::SetGammaSep(double gamma_sep) { } +inline void CVariable::SetGammaSep(su2double gamma_sep) { } -inline double CVariable::GetIntermittency(void) { return 0; } +inline su2double CVariable::GetIntermittency(void) { return 0; } -inline double CVariable::GetEnthalpy(void) { return 0; } +inline su2double CVariable::GetEnthalpy(void) { return 0; } -inline double CVariable::GetPressure(void) { return 0; } +inline su2double CVariable::GetPressure(void) { return 0; } -inline double CVariable::GetPressureInc(void) { return 0; } +inline su2double CVariable::GetPressureInc(void) { return 0; } -inline double CVariable::GetDeltaPressure(void) { return 0; } +inline su2double CVariable::GetDeltaPressure(void) { return 0; } -inline double CVariable::GetProjVel(double *val_vector) { return 0; } +inline su2double CVariable::GetProjVel(su2double *val_vector) { return 0; } -inline double CVariable::GetProjVel(double *val_vector, unsigned short val_species) { return 0; } +inline su2double CVariable::GetProjVel(su2double *val_vector, unsigned short val_species) { return 0; } -inline double CVariable::GetSoundSpeed(void) { return 0; } +inline su2double CVariable::GetSoundSpeed(void) { return 0; } -inline double CVariable::GetTemperature(void) { return 0; } +inline su2double CVariable::GetTemperature(void) { return 0; } -inline double CVariable::GetTemperature_ve(void) { return 0; } +inline su2double CVariable::GetTemperature_ve(void) { return 0; } -inline double CVariable::GetRhoCv_tr(void) { return 0; } +inline su2double CVariable::GetRhoCv_tr(void) { return 0; } -inline double CVariable::GetRhoCv_ve(void) { return 0; } +inline su2double CVariable::GetRhoCv_ve(void) { return 0; } -inline double CVariable::GetVelocity(unsigned short val_dim) { return 0; } +inline su2double CVariable::GetVelocity(unsigned short val_dim) { return 0; } -inline double CVariable::GetVelocity2(void) { return 0; } +inline su2double CVariable::GetVelocity2(void) { return 0; } -inline double CVariable::GetVelocity2(unsigned short val_species) { return 0;} +inline su2double CVariable::GetVelocity2(unsigned short val_species) { return 0;} -inline double CVariable::GetLaminarViscosity(void) { return 0; } +inline su2double CVariable::GetLaminarViscosity(void) { return 0; } -inline double CVariable::GetLaminarViscosityInc(void) { return 0; } +inline su2double CVariable::GetLaminarViscosityInc(void) { return 0; } -inline double CVariable::GetLaminarViscosity(unsigned short iSpecies) { return 0; } +inline su2double CVariable::GetLaminarViscosity(unsigned short iSpecies) { return 0; } -inline double* CVariable::GetDiffusionCoeff(void) { return NULL; } +inline su2double* CVariable::GetDiffusionCoeff(void) { return NULL; } -inline double CVariable::GetThermalConductivity(void) { return 0; } +inline su2double CVariable::GetThermalConductivity(void) { return 0; } -inline double CVariable::GetSpecificHeatCp(void) { return 0; } +inline su2double CVariable::GetSpecificHeatCp(void) { return 0; } -inline double CVariable::GetThermalConductivity_ve(void) { return 0; } +inline su2double CVariable::GetThermalConductivity_ve(void) { return 0; } -inline double* CVariable::GetVorticity(void) { return 0; } +inline su2double* CVariable::GetVorticity(void) { return 0; } -inline double CVariable::GetStrainMag(void) { return 0; } +inline su2double CVariable::GetStrainMag(void) { return 0; } -inline void CVariable::SetForceProj_Vector(double *val_ForceProj_Vector) { } +inline void CVariable::SetForceProj_Vector(su2double *val_ForceProj_Vector) { } -inline void CVariable::SetObjFuncSource(double *val_ObjFuncSource) { } +inline void CVariable::SetObjFuncSource(su2double *val_ObjFuncSource) { } -inline void CVariable::SetIntBoundary_Jump(double *val_IntBoundary_Jump) { } +inline void CVariable::SetIntBoundary_Jump(su2double *val_IntBoundary_Jump) { } inline void CVariable::SetEnthalpy(void) { } -inline bool CVariable::SetPrimVar_Compressible(double SharpEdge_Distance, bool check, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_Compressible(su2double SharpEdge_Distance, bool check, CConfig *config) { return true; } -inline bool CVariable::SetPrimVar_Incompressible(double SharpEdge_Distance, bool check, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_Incompressible(su2double SharpEdge_Distance, bool check, CConfig *config) { return true; } -inline bool CVariable::SetPrimVar_FreeSurface(double SharpEdge_Distance, bool check, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_FreeSurface(su2double SharpEdge_Distance, bool check, CConfig *config) { return true; } inline bool CVariable::SetPrimVar_Compressible(CConfig *config) { return true; } @@ -325,115 +325,115 @@ inline bool CVariable::SetPrimVar_Compressible(CFluidModel *FluidModel) { return inline void CVariable::SetSecondaryVar_Compressible(CFluidModel *FluidModel) { } -inline bool CVariable::SetPrimVar_Compressible(double eddy_visc, double turb_ke, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_Compressible(su2double eddy_visc, su2double turb_ke, CConfig *config) { return true; } -inline bool CVariable::SetPrimVar_Compressible(double eddy_visc, double turb_ke, CFluidModel *FluidModel) { return true; } +inline bool CVariable::SetPrimVar_Compressible(su2double eddy_visc, su2double turb_ke, CFluidModel *FluidModel) { return true; } -inline bool CVariable::SetPrimVar_Incompressible(double Density_Inf, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_Incompressible(su2double Density_Inf, CConfig *config) { return true; } inline bool CVariable::SetPrimVar_FreeSurface(CConfig *config) { return true; } -inline bool CVariable::SetPrimVar_Incompressible(double Density_Inf, double Viscosity_Inf, double eddy_visc, double turb_ke, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_Incompressible(su2double Density_Inf, su2double Viscosity_Inf, su2double eddy_visc, su2double turb_ke, CConfig *config) { return true; } -inline bool CVariable::SetPrimVar_FreeSurface(double eddy_visc, double turb_ke, CConfig *config) { return true; } +inline bool CVariable::SetPrimVar_FreeSurface(su2double eddy_visc, su2double turb_ke, CConfig *config) { return true; } -inline double CVariable::GetPrimitive(unsigned short val_var) { return 0; } +inline su2double CVariable::GetPrimitive(unsigned short val_var) { return 0; } -inline double *CVariable::GetPrimitive(void) { return NULL; } +inline su2double *CVariable::GetPrimitive(void) { return NULL; } -inline void CVariable::SetPrimitive(unsigned short val_var, double val_prim) { } +inline void CVariable::SetPrimitive(unsigned short val_var, su2double val_prim) { } -inline void CVariable::SetPrimitive(double *val_prim) { } +inline void CVariable::SetPrimitive(su2double *val_prim) { } -inline double CVariable::GetSecondary(unsigned short val_var) { return 0; } +inline su2double CVariable::GetSecondary(unsigned short val_var) { return 0; } -inline double *CVariable::GetSecondary(void) { return NULL; } +inline su2double *CVariable::GetSecondary(void) { return NULL; } -inline void CVariable::SetSecondary(unsigned short val_var, double val_secondary) { } +inline void CVariable::SetSecondary(unsigned short val_var, su2double val_secondary) { } -inline void CVariable::SetSecondary(double *val_prim) { } +inline void CVariable::SetSecondary(su2double *val_prim) { } -inline bool CVariable::Cons2PrimVar(CConfig *config, double *U, double *V, - double *val_dPdU, double *val_dTdU, - double *val_dTvedU) { return false; } +inline bool CVariable::Cons2PrimVar(CConfig *config, su2double *U, su2double *V, + su2double *val_dPdU, su2double *val_dTdU, + su2double *val_dTvedU) { return false; } -inline void CVariable::Prim2ConsVar(CConfig *config, double *V, double *U) { return; } +inline void CVariable::Prim2ConsVar(CConfig *config, su2double *V, su2double *U) { return; } -inline void CVariable::SetBetaInc2(double val_betainc2) { } +inline void CVariable::SetBetaInc2(su2double val_betainc2) { } -inline void CVariable::SetDensityInc(double val_density) { } +inline void CVariable::SetDensityInc(su2double val_density) { } inline void CVariable::SetPressureInc(void) { } inline void CVariable::SetVelocityInc(void) { } -inline void CVariable::SetPhi_Old(double *val_phi) { } +inline void CVariable::SetPhi_Old(su2double *val_phi) { } -inline void CVariable::SetDiffLevelSet(double val_difflevelset) { } +inline void CVariable::SetDiffLevelSet(su2double val_difflevelset) { } -inline void CVariable::SetdPdrho_e(double dPdrho_e) { } +inline void CVariable::SetdPdrho_e(su2double dPdrho_e) { } -inline void CVariable::SetdPde_rho(double dPde_rho) { } +inline void CVariable::SetdPde_rho(su2double dPde_rho) { } -inline void CVariable::SetdTdrho_e(double dTdrho_e) { } +inline void CVariable::SetdTdrho_e(su2double dTdrho_e) { } -inline void CVariable::SetdTde_rho(double dTde_rho) { } +inline void CVariable::SetdTde_rho(su2double dTde_rho) { } -inline void CVariable::Setdmudrho_T(double dmudrho_T) { } +inline void CVariable::Setdmudrho_T(su2double dmudrho_T) { } -inline void CVariable::SetdmudT_rho(double dmudT_rho) { } +inline void CVariable::SetdmudT_rho(su2double dmudT_rho) { } -inline void CVariable::Setdktdrho_T(double dktdrho_T) { } +inline void CVariable::Setdktdrho_T(su2double dktdrho_T) { } -inline void CVariable::SetdktdT_rho(double dktdT_rho) { } +inline void CVariable::SetdktdT_rho(su2double dktdT_rho) { } -inline bool CVariable::SetPressure(double Gamma) { return false; } +inline bool CVariable::SetPressure(su2double Gamma) { return false; } inline bool CVariable::SetPressure(CConfig *config) { return false; } -inline bool CVariable::SetPressure(double Gamma, double turb_ke) { return false; } +inline bool CVariable::SetPressure(su2double Gamma, su2double turb_ke) { return false; } inline void CVariable::SetPressure() { } -inline double *CVariable::GetdPdU() { return NULL; } +inline su2double *CVariable::GetdPdU() { return NULL; } -inline double *CVariable::GetdTdU() { return NULL; } +inline su2double *CVariable::GetdTdU() { return NULL; } -inline double *CVariable::GetdTvedU() { return NULL; } +inline su2double *CVariable::GetdTvedU() { return NULL; } -inline double CVariable::CalcEve(double *V, CConfig *config, unsigned short val_Species) { return 0; } +inline su2double CVariable::CalcEve(su2double *V, CConfig *config, unsigned short val_Species) { return 0; } -inline double CVariable::CalcHs(double *V, CConfig *config, unsigned short val_Species) { return 0; } +inline su2double CVariable::CalcHs(su2double *V, CConfig *config, unsigned short val_Species) { return 0; } -inline double CVariable::CalcCvve(double val_Tve, CConfig *config, unsigned short val_Species) { return 0; } +inline su2double CVariable::CalcCvve(su2double val_Tve, CConfig *config, unsigned short val_Species) { return 0; } -inline void CVariable::CalcdPdU(double *V, CConfig *config, double *dPdU) { } +inline void CVariable::CalcdPdU(su2double *V, CConfig *config, su2double *dPdU) { } -inline void CVariable::CalcdTdU(double *V, CConfig *config, double *dTdU) { } +inline void CVariable::CalcdTdU(su2double *V, CConfig *config, su2double *dTdU) { } -inline void CVariable::CalcdTvedU(double *V, CConfig *config, double *dTvedU) { } +inline void CVariable::CalcdTvedU(su2double *V, CConfig *config, su2double *dTvedU) { } -inline void CVariable::SetDeltaPressure(double *val_velocity, double Gamma) { } +inline void CVariable::SetDeltaPressure(su2double *val_velocity, su2double Gamma) { } inline bool CVariable::SetSoundSpeed(CConfig *config) { return false; } inline bool CVariable::SetSoundSpeed() { return false; } -inline bool CVariable::SetSoundSpeed(double Gamma) { return false; } +inline bool CVariable::SetSoundSpeed(su2double Gamma) { return false; } -inline bool CVariable::SetTemperature(double Gas_Constant) { return false; } +inline bool CVariable::SetTemperature(su2double Gas_Constant) { return false; } -inline bool CVariable::SetTemperature_ve(double val_Tve) {return false; } +inline bool CVariable::SetTemperature_ve(su2double val_Tve) {return false; } inline bool CVariable::SetTemperature(CConfig *config) { return false; } inline void CVariable::SetPrimitive(CConfig *config) { } -inline void CVariable::SetPrimitive(CConfig *config, double *Coord) { } +inline void CVariable::SetPrimitive(CConfig *config, su2double *Coord) { } -inline void CVariable::SetWallTemperature(double Temperature_Wall) { } +inline void CVariable::SetWallTemperature(su2double Temperature_Wall) { } -inline void CVariable::SetWallTemperature(double* Temperature_Wall) { } +inline void CVariable::SetWallTemperature(su2double* Temperature_Wall) { } inline void CVariable::SetThermalCoeff(CConfig *config) { } @@ -441,27 +441,27 @@ inline void CVariable::SetVelocity(void) { } inline void CVariable::SetVelocity2(void) { } -inline void CVariable::SetVelocity_Old(double *val_velocity) { } +inline void CVariable::SetVelocity_Old(su2double *val_velocity) { } -inline void CVariable::SetVelocityInc_Old(double *val_velocity) { } +inline void CVariable::SetVelocityInc_Old(su2double *val_velocity) { } inline void CVariable::SetVel_ResTruncError_Zero(unsigned short iSpecies) { } -inline void CVariable::SetLaminarViscosity(double laminarViscosity) { } +inline void CVariable::SetLaminarViscosity(su2double laminarViscosity) { } inline void CVariable::SetLaminarViscosity(CConfig *config) { } -inline void CVariable::SetLaminarViscosityInc(double val_laminar_viscosity_inc) { } +inline void CVariable::SetLaminarViscosityInc(su2double val_laminar_viscosity_inc) { } -inline void CVariable::SetEddyViscosity(double eddy_visc) { } +inline void CVariable::SetEddyViscosity(su2double eddy_visc) { } -inline void CVariable::SetEddyViscosityInc(double eddy_visc) { } +inline void CVariable::SetEddyViscosityInc(su2double eddy_visc) { } -inline void CVariable::SetThermalConductivity(double thermalConductivity) { } +inline void CVariable::SetThermalConductivity(su2double thermalConductivity) { } inline void CVariable::SetThermalConductivity(CConfig *config) { } -inline void CVariable::SetSpecificHeatCp(double Cp) { } +inline void CVariable::SetSpecificHeatCp(su2double Cp) { } inline bool CVariable::SetVorticity(bool val_limiter) { return false; } @@ -469,55 +469,55 @@ inline bool CVariable::SetStrainMag(bool val_limiter) { return false; } inline void CVariable::SetGradient_PrimitiveZero(unsigned short val_primvar) { } -inline void CVariable::AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { } +inline void CVariable::AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { } -inline void CVariable::SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { } +inline void CVariable::SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { } -inline double CVariable::GetGradient_Primitive(unsigned short val_var, unsigned short val_dim) { return 0; } +inline su2double CVariable::GetGradient_Primitive(unsigned short val_var, unsigned short val_dim) { return 0; } -inline double CVariable::GetLimiter_Primitive(unsigned short val_var) { return 0; } +inline su2double CVariable::GetLimiter_Primitive(unsigned short val_var) { return 0; } -inline void CVariable::SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { } +inline void CVariable::SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { } -inline void CVariable::SetLimiter_Primitive(unsigned short val_var, double val_value) { } +inline void CVariable::SetLimiter_Primitive(unsigned short val_var, su2double val_value) { } -inline double **CVariable::GetGradient_Primitive(void) { return NULL; } +inline su2double **CVariable::GetGradient_Primitive(void) { return NULL; } -inline double *CVariable::GetLimiter_Primitive(void) { return NULL; } +inline su2double *CVariable::GetLimiter_Primitive(void) { return NULL; } inline void CVariable::SetGradient_SecondaryZero(unsigned short val_secondaryvar) { } -inline void CVariable::AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value) { } +inline void CVariable::AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value) { } -inline void CVariable::SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value) { } +inline void CVariable::SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value) { } -inline double CVariable::GetGradient_Secondary(unsigned short val_var, unsigned short val_dim) { return 0; } +inline su2double CVariable::GetGradient_Secondary(unsigned short val_var, unsigned short val_dim) { return 0; } -inline double CVariable::GetLimiter_Secondary(unsigned short val_var) { return 0; } +inline su2double CVariable::GetLimiter_Secondary(unsigned short val_var) { return 0; } -inline void CVariable::SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value) { } +inline void CVariable::SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value) { } -inline void CVariable::SetLimiter_Secondary(unsigned short val_var, double val_value) { } +inline void CVariable::SetLimiter_Secondary(unsigned short val_var, su2double val_value) { } -inline double **CVariable::GetGradient_Secondary(void) { return NULL; } +inline su2double **CVariable::GetGradient_Secondary(void) { return NULL; } -inline double *CVariable::GetLimiter_Secondary(void) { return NULL; } +inline su2double *CVariable::GetLimiter_Secondary(void) { return NULL; } -inline void CVariable::SetBlendingFunc(double val_viscosity, double val_dist, double val_density) { } +inline void CVariable::SetBlendingFunc(su2double val_viscosity, su2double val_dist, su2double val_density) { } -inline double CVariable::GetF1blending(void) { return 0; } +inline su2double CVariable::GetF1blending(void) { return 0; } -inline double CVariable::GetF2blending(void) { return 0; } +inline su2double CVariable::GetF2blending(void) { return 0; } -inline double CVariable::GetmuT() { return 0;} +inline su2double CVariable::GetmuT() { return 0;} -inline void CVariable::SetmuT(double val_muT) { } +inline void CVariable::SetmuT(su2double val_muT) { } -inline double* CVariable::GetSolution_Direct() { return NULL; } +inline su2double* CVariable::GetSolution_Direct() { return NULL; } -inline void CVariable::SetSolution_Direct(double *val_solution_direct) { } +inline void CVariable::SetSolution_Direct(su2double *val_solution_direct) { } -inline void CVariable::SetTimeSpectral_Source(unsigned short val_var, double val_source) { } +inline void CVariable::SetTimeSpectral_Source(unsigned short val_var, su2double val_source) { } inline unsigned short CVariable::GetRhosIndex(void) { return 0; } @@ -539,93 +539,93 @@ inline unsigned short CVariable::GetRhoCvtrIndex(void) { return 0; } inline unsigned short CVariable::GetRhoCvveIndex(void) { return 0; } -inline double CVariable::GetTimeSpectral_Source(unsigned short val_var) { return 0; } +inline su2double CVariable::GetTimeSpectral_Source(unsigned short val_var) { return 0; } -inline void CVariable::SetEddyViscSens(double *val_EddyViscSens, unsigned short numTotalVar) { } +inline void CVariable::SetEddyViscSens(su2double *val_EddyViscSens, unsigned short numTotalVar) { } -inline double *CVariable::GetEddyViscSens(void) { return NULL; } +inline su2double *CVariable::GetEddyViscSens(void) { return NULL; } inline void CVariable::SetSolution_time_n(void) { } -inline void CVariable::SetSolution_Vel(double *val_solution_vel) { } +inline void CVariable::SetSolution_Vel(su2double *val_solution_vel) { } -inline void CVariable::SetSolution_Vel(unsigned short val_var, double val_solution_vel) { } +inline void CVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { } -inline void CVariable::SetSolution_Vel_time_n(double *val_solution_vel_time_n) { } +inline void CVariable::SetSolution_Vel_time_n(su2double *val_solution_vel_time_n) { } inline void CVariable::SetSolution_Vel_time_n(void) { } -inline void CVariable::SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n) { } +inline void CVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { } -inline double CVariable::GetSolution_time_n(unsigned short val_var) { return 0; } +inline su2double CVariable::GetSolution_time_n(unsigned short val_var) { return 0; } -inline double CVariable::GetSolution_Vel(unsigned short val_var) { return 0; } +inline su2double CVariable::GetSolution_Vel(unsigned short val_var) { return 0; } -inline double *CVariable::GetSolution_Vel(void) { return NULL; } +inline su2double *CVariable::GetSolution_Vel(void) { return NULL; } -inline double CVariable::GetSolution_Vel_time_n(unsigned short val_var) { return 0; } +inline su2double CVariable::GetSolution_Vel_time_n(unsigned short val_var) { return 0; } -inline double *CVariable::GetSolution_Vel_time_n(void) { return NULL; } +inline su2double *CVariable::GetSolution_Vel_time_n(void) { return NULL; } -inline void CVariable::SetSolution_Accel(double *val_solution_accel) { } +inline void CVariable::SetSolution_Accel(su2double *val_solution_accel) { } -inline void CVariable::SetSolution_Accel(unsigned short val_var, double val_solution_accel) { } +inline void CVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { } -inline void CVariable::SetSolution_Accel_time_n(double *val_solution_accel_time_n) { } +inline void CVariable::SetSolution_Accel_time_n(su2double *val_solution_accel_time_n) { } inline void CVariable::SetSolution_Accel_time_n(void) { } -inline void CVariable::SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n) { } +inline void CVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { } -inline double CVariable::GetSolution_Accel(unsigned short val_var) { return 0; } +inline su2double CVariable::GetSolution_Accel(unsigned short val_var) { return 0; } -inline double *CVariable::GetSolution_Accel(void) { return NULL; } +inline su2double *CVariable::GetSolution_Accel(void) { return NULL; } -inline double CVariable::GetSolution_Accel_time_n(unsigned short val_var) { return 0; } +inline su2double CVariable::GetSolution_Accel_time_n(unsigned short val_var) { return 0; } -inline double *CVariable::GetSolution_Accel_time_n(void) { return NULL; } +inline su2double *CVariable::GetSolution_Accel_time_n(void) { return NULL; } -inline void CVariable::SetSolution_Pred(double *val_solution_pred){ } +inline void CVariable::SetSolution_Pred(su2double *val_solution_pred){ } inline void CVariable::SetSolution_Pred(void){ } -inline double CVariable::GetSolution_Pred(unsigned short val_var){ return 0.0; } +inline su2double CVariable::GetSolution_Pred(unsigned short val_var){ return 0.0; } -inline double *CVariable::GetSolution_Pred(void){ return NULL; } +inline su2double *CVariable::GetSolution_Pred(void){ return NULL; } -inline void CVariable::SetSolution_Pred_Old(double *val_solution_pred_Old){ } +inline void CVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ } inline void CVariable::SetSolution_Pred_Old(void){ } -inline double CVariable::GetSolution_Pred_Old(unsigned short val_var){ return 0.0; } +inline su2double CVariable::GetSolution_Pred_Old(unsigned short val_var){ return 0.0; } -inline double *CVariable::GetSolution_Pred_Old(void){ return NULL; } +inline su2double *CVariable::GetSolution_Pred_Old(void){ return NULL; } -inline double CEulerVariable::GetDensity(void) { return Solution[0]; } +inline su2double CEulerVariable::GetDensity(void) { return Solution[0]; } -inline double CEulerVariable::GetDensityInc(void) { return Primitive[nDim+1]; } +inline su2double CEulerVariable::GetDensityInc(void) { return Primitive[nDim+1]; } -inline double CEulerVariable::GetLevelSet(void) { return Primitive[nDim+5]; } +inline su2double CEulerVariable::GetLevelSet(void) { return Primitive[nDim+5]; } -inline double CEulerVariable::GetDistance(void) { return Primitive[nDim+6]; } +inline su2double CEulerVariable::GetDistance(void) { return Primitive[nDim+6]; } -inline double CEulerVariable::GetBetaInc2(void) { return Primitive[nDim+2]; } +inline su2double CEulerVariable::GetBetaInc2(void) { return Primitive[nDim+2]; } -inline double CEulerVariable::GetEnergy(void) { return Solution[nVar-1]/Solution[0]; }; +inline su2double CEulerVariable::GetEnergy(void) { return Solution[nVar-1]/Solution[0]; }; -inline double CEulerVariable::GetEnthalpy(void) { return Primitive[nDim+3]; } +inline su2double CEulerVariable::GetEnthalpy(void) { return Primitive[nDim+3]; } -inline double CEulerVariable::GetPressure(void) { return Primitive[nDim+1]; } +inline su2double CEulerVariable::GetPressure(void) { return Primitive[nDim+1]; } -inline double CEulerVariable::GetPressureInc(void) { return Primitive[0]; } +inline su2double CEulerVariable::GetPressureInc(void) { return Primitive[0]; } -inline double CEulerVariable::GetSoundSpeed(void) { return Primitive[nDim+4]; } +inline su2double CEulerVariable::GetSoundSpeed(void) { return Primitive[nDim+4]; } -inline double CEulerVariable::GetTemperature(void) { return Primitive[0]; } +inline su2double CEulerVariable::GetTemperature(void) { return Primitive[0]; } -inline double CEulerVariable::GetVelocity(unsigned short val_dim) { return Primitive[val_dim+1]; } +inline su2double CEulerVariable::GetVelocity(unsigned short val_dim) { return Primitive[val_dim+1]; } -inline double CEulerVariable::GetVelocity2(void) { return Velocity2; } +inline su2double CEulerVariable::GetVelocity2(void) { return Velocity2; } inline bool CEulerVariable::SetDensity(void) { Primitive[nDim+2] = Solution[0]; @@ -633,9 +633,9 @@ inline bool CEulerVariable::SetDensity(void) { else return true; } -inline void CEulerVariable::SetDensityInc(double val_density) { Primitive[nDim+1] = val_density; } +inline void CEulerVariable::SetDensityInc(su2double val_density) { Primitive[nDim+1] = val_density; } -inline bool CEulerVariable::SetPressure(double pressure) { +inline bool CEulerVariable::SetPressure(su2double pressure) { Primitive[nDim+1] = pressure; if (Primitive[nDim+1] > 0.0) return false; else return true; @@ -661,10 +661,10 @@ inline void CEulerVariable::SetVelocityInc(void) { inline void CEulerVariable::SetEnthalpy(void) { Primitive[nDim+3] = (Solution[nVar-1] + Primitive[nDim+1]) / Solution[0]; } -inline void CEulerVariable::SetBetaInc2(double val_betainc2) { Primitive[nDim+2] = val_betainc2; } +inline void CEulerVariable::SetBetaInc2(su2double val_betainc2) { Primitive[nDim+2] = val_betainc2; } -inline bool CEulerVariable::SetSoundSpeed(double soundspeed2) { - double radical = soundspeed2; +inline bool CEulerVariable::SetSoundSpeed(su2double soundspeed2) { + su2double radical = soundspeed2; if (radical < 0.0) return true; else { Primitive[nDim+4] = sqrt(radical); @@ -672,217 +672,217 @@ inline bool CEulerVariable::SetSoundSpeed(double soundspeed2) { } } -inline bool CEulerVariable::SetTemperature(double temperature) { +inline bool CEulerVariable::SetTemperature(su2double temperature) { Primitive[0] = temperature; if (Primitive[0] > 0.0) return false; else return true; } -inline void CEulerVariable::SetdPdrho_e(double dPdrho_e) { +inline void CEulerVariable::SetdPdrho_e(su2double dPdrho_e) { Secondary[0] = dPdrho_e; } -inline void CEulerVariable::SetdPde_rho(double dPde_rho) { +inline void CEulerVariable::SetdPde_rho(su2double dPde_rho) { Secondary[1] = dPde_rho; } -inline double CEulerVariable::GetPrimitive(unsigned short val_var) { return Primitive[val_var]; } +inline su2double CEulerVariable::GetPrimitive(unsigned short val_var) { return Primitive[val_var]; } -inline void CEulerVariable::SetPrimitive(unsigned short val_var, double val_prim) { Primitive[val_var] = val_prim; } +inline void CEulerVariable::SetPrimitive(unsigned short val_var, su2double val_prim) { Primitive[val_var] = val_prim; } -inline void CEulerVariable::SetPrimitive(double *val_prim) { +inline void CEulerVariable::SetPrimitive(su2double *val_prim) { for (unsigned short iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = val_prim[iVar]; } -inline double *CEulerVariable::GetPrimitive(void) { return Primitive; } +inline su2double *CEulerVariable::GetPrimitive(void) { return Primitive; } -inline double CEulerVariable::GetSecondary(unsigned short val_var) { return Secondary[val_var]; } +inline su2double CEulerVariable::GetSecondary(unsigned short val_var) { return Secondary[val_var]; } -inline void CEulerVariable::SetSecondary(unsigned short val_var, double val_secondary) { Secondary[val_var] = val_secondary; } +inline void CEulerVariable::SetSecondary(unsigned short val_var, su2double val_secondary) { Secondary[val_var] = val_secondary; } -inline void CEulerVariable::SetSecondary(double *val_secondary) { +inline void CEulerVariable::SetSecondary(su2double *val_secondary) { for (unsigned short iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = val_secondary[iVar]; } -inline double *CEulerVariable::GetSecondary(void) { return Secondary; } +inline su2double *CEulerVariable::GetSecondary(void) { return Secondary; } -inline void CEulerVariable::SetVelocity_Old(double *val_velocity) { +inline void CEulerVariable::SetVelocity_Old(su2double *val_velocity) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_velocity[iDim]*Solution[0]; } -inline void CEulerVariable::SetVelocityInc_Old(double *val_velocity) { +inline void CEulerVariable::SetVelocityInc_Old(su2double *val_velocity) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_velocity[iDim]*Primitive[nDim+1]; } -inline void CEulerVariable::AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Primitive[val_var][val_dim] += val_value; } +inline void CEulerVariable::AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Primitive[val_var][val_dim] += val_value; } -inline void CEulerVariable::SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Primitive[val_var][val_dim] -= val_value; } +inline void CEulerVariable::SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Primitive[val_var][val_dim] -= val_value; } -inline double CEulerVariable::GetGradient_Primitive(unsigned short val_var, unsigned short val_dim) { return Gradient_Primitive[val_var][val_dim]; } +inline su2double CEulerVariable::GetGradient_Primitive(unsigned short val_var, unsigned short val_dim) { return Gradient_Primitive[val_var][val_dim]; } -inline double CEulerVariable::GetLimiter_Primitive(unsigned short val_var) { return Limiter_Primitive[val_var]; } +inline su2double CEulerVariable::GetLimiter_Primitive(unsigned short val_var) { return Limiter_Primitive[val_var]; } -inline void CEulerVariable::SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Primitive[val_var][val_dim] = val_value; } +inline void CEulerVariable::SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Primitive[val_var][val_dim] = val_value; } -inline void CEulerVariable::SetLimiter_Primitive(unsigned short val_var, double val_value) { Limiter_Primitive[val_var] = val_value; } +inline void CEulerVariable::SetLimiter_Primitive(unsigned short val_var, su2double val_value) { Limiter_Primitive[val_var] = val_value; } -inline double **CEulerVariable::GetGradient_Primitive(void) { return Gradient_Primitive; } +inline su2double **CEulerVariable::GetGradient_Primitive(void) { return Gradient_Primitive; } -inline double *CEulerVariable::GetLimiter_Primitive(void) { return Limiter_Primitive; } +inline su2double *CEulerVariable::GetLimiter_Primitive(void) { return Limiter_Primitive; } -inline void CEulerVariable::AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Secondary[val_var][val_dim] += val_value; } +inline void CEulerVariable::AddGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Secondary[val_var][val_dim] += val_value; } -inline void CEulerVariable::SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Secondary[val_var][val_dim] -= val_value; } +inline void CEulerVariable::SubtractGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Secondary[val_var][val_dim] -= val_value; } -inline double CEulerVariable::GetGradient_Secondary(unsigned short val_var, unsigned short val_dim) { return Gradient_Secondary[val_var][val_dim]; } +inline su2double CEulerVariable::GetGradient_Secondary(unsigned short val_var, unsigned short val_dim) { return Gradient_Secondary[val_var][val_dim]; } -inline double CEulerVariable::GetLimiter_Secondary(unsigned short val_var) { return Limiter_Secondary[val_var]; } +inline su2double CEulerVariable::GetLimiter_Secondary(unsigned short val_var) { return Limiter_Secondary[val_var]; } -inline void CEulerVariable::SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Secondary[val_var][val_dim] = val_value; } +inline void CEulerVariable::SetGradient_Secondary(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Secondary[val_var][val_dim] = val_value; } -inline void CEulerVariable::SetLimiter_Secondary(unsigned short val_var, double val_value) { Limiter_Secondary[val_var] = val_value; } +inline void CEulerVariable::SetLimiter_Secondary(unsigned short val_var, su2double val_value) { Limiter_Secondary[val_var] = val_value; } -inline double **CEulerVariable::GetGradient_Secondary(void) { return Gradient_Secondary; } +inline su2double **CEulerVariable::GetGradient_Secondary(void) { return Gradient_Secondary; } -inline double *CEulerVariable::GetLimiter_Secondary(void) { return Limiter_Secondary; } +inline su2double *CEulerVariable::GetLimiter_Secondary(void) { return Limiter_Secondary; } -inline void CEulerVariable::SetTimeSpectral_Source(unsigned short val_var, double val_source) { TS_Source[val_var] = val_source; } +inline void CEulerVariable::SetTimeSpectral_Source(unsigned short val_var, su2double val_source) { TS_Source[val_var] = val_source; } -inline double CEulerVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } +inline su2double CEulerVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } -inline double CEulerVariable::GetPreconditioner_Beta() { return Precond_Beta; } +inline su2double CEulerVariable::GetPreconditioner_Beta() { return Precond_Beta; } -inline void CEulerVariable::SetPreconditioner_Beta(double val_Beta) { Precond_Beta = val_Beta; } +inline void CEulerVariable::SetPreconditioner_Beta(su2double val_Beta) { Precond_Beta = val_Beta; } -inline void CEulerVariable::SetWindGust( double* val_WindGust) { +inline void CEulerVariable::SetWindGust( su2double* val_WindGust) { for (unsigned short iDim = 0; iDim < nDim; iDim++) WindGust[iDim] = val_WindGust[iDim];} -inline double* CEulerVariable::GetWindGust() { return WindGust;} +inline su2double* CEulerVariable::GetWindGust() { return WindGust;} -inline void CEulerVariable::SetWindGustDer( double* val_WindGustDer) { +inline void CEulerVariable::SetWindGustDer( su2double* val_WindGustDer) { for (unsigned short iDim = 0; iDim < nDim+1; iDim++) WindGustDer[iDim] = val_WindGustDer[iDim];} -inline double* CEulerVariable::GetWindGustDer() { return WindGustDer;} +inline su2double* CEulerVariable::GetWindGustDer() { return WindGustDer;} -inline double CNSVariable::GetEddyViscosity(void) { return Primitive[nDim+6]; } +inline su2double CNSVariable::GetEddyViscosity(void) { return Primitive[nDim+6]; } -inline double CNSVariable::GetEddyViscosityInc(void) { return Primitive[nDim+4]; } +inline su2double CNSVariable::GetEddyViscosityInc(void) { return Primitive[nDim+4]; } -inline double CNSVariable::GetLaminarViscosity(void) { return Primitive[nDim+5]; } +inline su2double CNSVariable::GetLaminarViscosity(void) { return Primitive[nDim+5]; } -inline double CNSVariable::GetLaminarViscosityInc(void) { return Primitive[nDim+3]; } +inline su2double CNSVariable::GetLaminarViscosityInc(void) { return Primitive[nDim+3]; } -inline double CNSVariable::GetThermalConductivity(void) { return Primitive[nDim+7]; } +inline su2double CNSVariable::GetThermalConductivity(void) { return Primitive[nDim+7]; } -inline double CNSVariable::GetSpecificHeatCp(void) { return Primitive[nDim+8]; } +inline su2double CNSVariable::GetSpecificHeatCp(void) { return Primitive[nDim+8]; } -inline double* CNSVariable::GetVorticity(void) { return Vorticity; } +inline su2double* CNSVariable::GetVorticity(void) { return Vorticity; } -inline double CNSVariable::GetStrainMag(void) { return StrainMag; } +inline su2double CNSVariable::GetStrainMag(void) { return StrainMag; } -inline void CNSVariable::SetLaminarViscosity(double laminarViscosity) { +inline void CNSVariable::SetLaminarViscosity(su2double laminarViscosity) { Primitive[nDim+5] = laminarViscosity; } -inline void CNSVariable::SetThermalConductivity(double thermalConductivity) { +inline void CNSVariable::SetThermalConductivity(su2double thermalConductivity) { Primitive[nDim+7] = thermalConductivity; } -inline void CNSVariable::SetSpecificHeatCp(double Cp) { +inline void CNSVariable::SetSpecificHeatCp(su2double Cp) { Primitive[nDim+8] = Cp; } -inline void CNSVariable::SetdTdrho_e(double dTdrho_e) { +inline void CNSVariable::SetdTdrho_e(su2double dTdrho_e) { Secondary[2] = dTdrho_e; } -inline void CNSVariable::SetdTde_rho(double dTde_rho) { +inline void CNSVariable::SetdTde_rho(su2double dTde_rho) { Secondary[3] = dTde_rho; } -inline void CNSVariable::Setdmudrho_T(double dmudrho_T) { +inline void CNSVariable::Setdmudrho_T(su2double dmudrho_T) { Secondary[4] = dmudrho_T; } -inline void CNSVariable::SetdmudT_rho(double dmudT_rho) { +inline void CNSVariable::SetdmudT_rho(su2double dmudT_rho) { Secondary[5] = dmudT_rho; } -inline void CNSVariable::Setdktdrho_T(double dktdrho_T) { +inline void CNSVariable::Setdktdrho_T(su2double dktdrho_T) { Secondary[6] = dktdrho_T; } -inline void CNSVariable::SetdktdT_rho(double dktdT_rho) { +inline void CNSVariable::SetdktdT_rho(su2double dktdT_rho) { Secondary[7] = dktdT_rho; } -inline void CNSVariable::SetLaminarViscosityInc(double val_laminar_viscosity_inc) { Primitive[nDim+3] = val_laminar_viscosity_inc; } +inline void CNSVariable::SetLaminarViscosityInc(su2double val_laminar_viscosity_inc) { Primitive[nDim+3] = val_laminar_viscosity_inc; } -inline void CNSVariable::SetEddyViscosity(double eddy_visc) { Primitive[nDim+6] = eddy_visc; } +inline void CNSVariable::SetEddyViscosity(su2double eddy_visc) { Primitive[nDim+6] = eddy_visc; } -inline void CNSVariable::SetEddyViscosityInc(double eddy_visc) { Primitive[nDim+4] = eddy_visc; } +inline void CNSVariable::SetEddyViscosityInc(su2double eddy_visc) { Primitive[nDim+4] = eddy_visc; } -inline void CNSVariable::SetWallTemperature(double Temperature_Wall ) { Primitive[0] = Temperature_Wall; } +inline void CNSVariable::SetWallTemperature(su2double Temperature_Wall ) { Primitive[0] = Temperature_Wall; } -inline double CTransLMVariable::GetIntermittency() { return Solution[0]; } +inline su2double CTransLMVariable::GetIntermittency() { return Solution[0]; } -inline void CTransLMVariable::SetGammaSep(double gamma_sep_in) {gamma_sep = gamma_sep_in;} +inline void CTransLMVariable::SetGammaSep(su2double gamma_sep_in) {gamma_sep = gamma_sep_in;} -inline double *CAdjEulerVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } +inline su2double *CAdjEulerVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } -inline double *CAdjEulerVariable::GetObjFuncSource(void) { return ObjFuncSource; } +inline su2double *CAdjEulerVariable::GetObjFuncSource(void) { return ObjFuncSource; } -inline double *CAdjEulerVariable::GetIntBoundary_Jump(void) { return IntBoundary_Jump; } +inline su2double *CAdjEulerVariable::GetIntBoundary_Jump(void) { return IntBoundary_Jump; } -inline void CAdjEulerVariable::SetForceProj_Vector(double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } +inline void CAdjEulerVariable::SetForceProj_Vector(su2double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } -inline void CAdjEulerVariable::SetObjFuncSource(double *val_ObjFuncSource) { for (unsigned short iVar = 0; iVar < nVar; iVar++) ObjFuncSource[iVar] = val_ObjFuncSource[iVar]; } +inline void CAdjEulerVariable::SetObjFuncSource(su2double *val_ObjFuncSource) { for (unsigned short iVar = 0; iVar < nVar; iVar++) ObjFuncSource[iVar] = val_ObjFuncSource[iVar]; } -inline void CAdjEulerVariable::SetIntBoundary_Jump(double *val_IntBoundary_Jump) { for (unsigned short iVar = 0; iVar < nVar; iVar++) IntBoundary_Jump[iVar] = val_IntBoundary_Jump[iVar]; } +inline void CAdjEulerVariable::SetIntBoundary_Jump(su2double *val_IntBoundary_Jump) { for (unsigned short iVar = 0; iVar < nVar; iVar++) IntBoundary_Jump[iVar] = val_IntBoundary_Jump[iVar]; } -inline void CAdjEulerVariable::SetPhi_Old(double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1]=val_phi[iDim]; }; +inline void CAdjEulerVariable::SetPhi_Old(su2double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1]=val_phi[iDim]; }; -inline void CAdjEulerVariable::SetTimeSpectral_Source(unsigned short val_var, double val_source) { TS_Source[val_var] = val_source; } +inline void CAdjEulerVariable::SetTimeSpectral_Source(unsigned short val_var, su2double val_source) { TS_Source[val_var] = val_source; } -inline double CAdjEulerVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } +inline su2double CAdjEulerVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } -inline double *CAdjNSVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } +inline su2double *CAdjNSVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } -inline void CAdjNSVariable::SetForceProj_Vector(double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } +inline void CAdjNSVariable::SetForceProj_Vector(su2double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } -inline void CAdjNSVariable::SetPhi_Old(double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_phi[iDim]; }; +inline void CAdjNSVariable::SetPhi_Old(su2double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_phi[iDim]; }; inline void CAdjNSVariable::SetVelSolutionOldDVector(void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = ForceProj_Vector[iDim]; }; inline void CAdjNSVariable::SetVelSolutionDVector(void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution[iDim+1] = ForceProj_Vector[iDim]; }; -inline double *CLinEulerVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } +inline su2double *CLinEulerVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } -inline void CLinEulerVariable::SetForceProj_Vector(double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } +inline void CLinEulerVariable::SetForceProj_Vector(su2double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } -inline void CLinEulerVariable::SetDeltaVel_Old(double *val_deltavel) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1]=val_deltavel[iDim]; }; +inline void CLinEulerVariable::SetDeltaVel_Old(su2double *val_deltavel) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1]=val_deltavel[iDim]; }; -inline double CLinEulerVariable::GetDeltaPressure(void) { return DeltaPressure; } +inline su2double CLinEulerVariable::GetDeltaPressure(void) { return DeltaPressure; } -inline void CFEAVariable::SetStress(unsigned short iVar, unsigned short jVar, double val_stress) { Stress[iVar][jVar] = val_stress; } +inline void CFEAVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] = val_stress; } -inline void CFEAVariable::AddStress(unsigned short iVar, unsigned short jVar, double val_stress) { Stress[iVar][jVar] += val_stress; } +inline void CFEAVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] += val_stress; } -inline double **CFEAVariable::GetStress(void) { return Stress; } +inline su2double **CFEAVariable::GetStress(void) { return Stress; } -inline void CFEAVariable::SetVonMises_Stress(double val_stress) { VonMises_Stress = val_stress; } +inline void CFEAVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } -inline double CFEAVariable::GetVonMises_Stress(void) { return VonMises_Stress; } +inline su2double CFEAVariable::GetVonMises_Stress(void) { return VonMises_Stress; } -inline void CFEAVariable::SetFlow_Pressure(double val_pressure) { Flow_Pressure = val_pressure; } +inline void CFEAVariable::SetFlow_Pressure(su2double val_pressure) { Flow_Pressure = val_pressure; } -inline double CFEAVariable::GetFlow_Pressure(void) { return Flow_Pressure; } +inline su2double CFEAVariable::GetFlow_Pressure(void) { return Flow_Pressure; } inline void CFEAVariable::Initialize_Connectivity(void) { nAttachedElements = 0; } @@ -890,34 +890,34 @@ inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } -inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, double val_stress) { Stress[iVar] = val_stress; } +inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] = val_stress; } -inline void CFEM_ElasVariable::AddStress_FEM(unsigned short iVar, double val_stress) { Stress[iVar] += val_stress; } +inline void CFEM_ElasVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] += val_stress; } -inline double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } +inline su2double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } -inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(double *val_surfForce) { +inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] += val_surfForce[iVar]; } -inline double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} +inline su2double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; } -inline void CFEM_ElasVariable::Set_FlowTraction(double *val_flowTraction) { +inline void CFEM_ElasVariable::Set_FlowTraction(su2double *val_flowTraction) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = val_flowTraction[iVar]; } -inline void CFEM_ElasVariable::Add_FlowTraction(double *val_flowTraction) { +inline void CFEM_ElasVariable::Add_FlowTraction(su2double *val_flowTraction) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] += val_flowTraction[iVar]; } -inline double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} +inline su2double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} inline void CFEM_ElasVariable::Clear_FlowTraction(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = 0.0; @@ -927,238 +927,238 @@ inline void CFEM_ElasVariable::SetSolution_time_n(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = Solution[iVar]; } -inline void CFEM_ElasVariable::SetSolution_time_n(double *val_solution_time_n) { +inline void CFEM_ElasVariable::SetSolution_time_n(su2double *val_solution_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Vel(unsigned short val_var, double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } +inline void CFEM_ElasVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } -inline void CFEM_ElasVariable::SetSolution_Vel(double *val_solution_vel) { +inline void CFEM_ElasVariable::SetSolution_Vel(su2double *val_solution_vel) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel[iVar] = val_solution_vel[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } inline void CFEM_ElasVariable::SetSolution_Vel_time_n(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = Solution_Vel[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Vel_time_n(double *val_solution_vel_time_n) { +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(su2double *val_solution_vel_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = val_solution_vel_time_n[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Accel(unsigned short val_var, double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } +inline void CFEM_ElasVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } -inline void CFEM_ElasVariable::SetSolution_Accel(double *val_solution_accel) { +inline void CFEM_ElasVariable::SetSolution_Accel(su2double *val_solution_accel) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel[iVar] = val_solution_accel[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } inline void CFEM_ElasVariable::SetSolution_Accel_time_n(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = Solution_Accel[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Accel_time_n(double *val_solution_accel_time_n) { +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(su2double *val_solution_accel_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Pred(double *val_solution_pred){ Solution_Pred = val_solution_pred; } +inline void CFEM_ElasVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } inline void CFEM_ElasVariable::SetSolution_Pred(void){ for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; } -inline void CFEM_ElasVariable::SetSolution_Pred_Old(double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } +inline void CFEM_ElasVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } inline void CFEM_ElasVariable::SetSolution_Pred_Old(void){ for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred_Old[iVar] = Solution_Pred[iVar]; } -inline double CFEM_ElasVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } -inline double *CFEM_ElasVariable::GetSolution_Vel(void) { return Solution_Vel; } +inline su2double *CFEM_ElasVariable::GetSolution_Vel(void) { return Solution_Vel; } -inline double CFEM_ElasVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } -inline double *CFEM_ElasVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } +inline su2double *CFEM_ElasVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } -inline double CFEM_ElasVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } -inline double *CFEM_ElasVariable::GetSolution_Accel(void) { return Solution_Accel; } +inline su2double *CFEM_ElasVariable::GetSolution_Accel(void) { return Solution_Accel; } -inline double CFEM_ElasVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } -inline double *CFEM_ElasVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } +inline su2double *CFEM_ElasVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } -inline double CFEM_ElasVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } -inline double *CFEM_ElasVariable::GetSolution_Pred(void){ return Solution_Pred; } +inline su2double *CFEM_ElasVariable::GetSolution_Pred(void){ return Solution_Pred; } -inline double CFEM_ElasVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } -inline double *CFEM_ElasVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } +inline su2double *CFEM_ElasVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } -inline double CFEM_ElasVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } +inline su2double CFEM_ElasVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } -inline void CFEM_ElasVariable::SetVonMises_Stress(double val_stress) { VonMises_Stress = val_stress; } +inline void CFEM_ElasVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } -inline double CFEM_ElasVariable::GetVonMises_Stress(void) { return VonMises_Stress; } +inline su2double CFEM_ElasVariable::GetVonMises_Stress(void) { return VonMises_Stress; } -inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] = val_traction; } +inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, su2double val_traction) { Traction[iVar][jVar] = val_traction; } -inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short jVar, double val_traction) { Traction[iVar][jVar] += val_traction; } +inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short jVar, su2double val_traction) { Traction[iVar][jVar] += val_traction; } -inline double **CFEABoundVariable::GetTraction(void) { return Traction; } +inline su2double **CFEABoundVariable::GetTraction(void) { return Traction; } -inline void CFEAVariable::SetSolution_Vel(unsigned short val_var, double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } +inline void CFEAVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } -inline void CFEAVariable::SetSolution_Vel_time_n(unsigned short val_var, double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } +inline void CFEAVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } -inline double CFEAVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } +inline su2double CFEAVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } -inline double CFEAVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } +inline su2double CFEAVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } -inline double *CFEAVariable::GetSolution_Vel(void) { return Solution_Vel; } +inline su2double *CFEAVariable::GetSolution_Vel(void) { return Solution_Vel; } -inline double CFEAVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } +inline su2double CFEAVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } -inline double *CFEAVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } +inline su2double *CFEAVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } -inline void CFEAVariable::SetSolution_Accel(unsigned short val_var, double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } +inline void CFEAVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } -inline void CFEAVariable::SetSolution_Accel_time_n(unsigned short val_var, double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } +inline void CFEAVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } -inline double CFEAVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } +inline su2double CFEAVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } -inline double *CFEAVariable::GetSolution_Accel(void) { return Solution_Accel; } +inline su2double *CFEAVariable::GetSolution_Accel(void) { return Solution_Accel; } -inline double CFEAVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } +inline su2double CFEAVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } -inline double *CFEAVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } +inline su2double *CFEAVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } -inline void CFEAVariable::SetSolution_Pred(double *val_solution_pred){ Solution_Pred = val_solution_pred; } +inline void CFEAVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } -inline double CFEAVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } +inline su2double CFEAVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } -inline double *CFEAVariable::GetSolution_Pred(void){ return Solution_Pred; } +inline su2double *CFEAVariable::GetSolution_Pred(void){ return Solution_Pred; } -inline void CFEAVariable::SetSolution_Pred_Old(double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } +inline void CFEAVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } -inline double CFEAVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } +inline su2double CFEAVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } -inline double *CFEAVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } +inline su2double *CFEAVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } -inline double* CWaveVariable::GetSolution_Direct() { return Solution_Direct;} +inline su2double* CWaveVariable::GetSolution_Direct() { return Solution_Direct;} -inline void CWaveVariable::SetSolution_Direct(double *val_solution_direct) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Direct[iVar] += val_solution_direct[iVar];} +inline void CWaveVariable::SetSolution_Direct(su2double *val_solution_direct) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Direct[iVar] += val_solution_direct[iVar];} -inline double* CPotentialVariable::GetChargeDensity() { return Charge_Density;} +inline su2double* CPotentialVariable::GetChargeDensity() { return Charge_Density;} -inline void CPotentialVariable::SetChargeDensity(double positive_charge, double negative_charge) {Charge_Density[0] = positive_charge; Charge_Density[1] = negative_charge;} +inline void CPotentialVariable::SetChargeDensity(su2double positive_charge, su2double negative_charge) {Charge_Density[0] = positive_charge; Charge_Density[1] = negative_charge;} -inline double* CHeatVariable::GetSolution_Direct() { return Solution_Direct;} +inline su2double* CHeatVariable::GetSolution_Direct() { return Solution_Direct;} -inline void CHeatVariable::SetSolution_Direct(double *val_solution_direct) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Direct[iVar] += val_solution_direct[iVar];} +inline void CHeatVariable::SetSolution_Direct(su2double *val_solution_direct) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Direct[iVar] += val_solution_direct[iVar];} -inline void CTurbSAVariable::SetTimeSpectral_Source(unsigned short val_var, double val_source) { TS_Source[val_var] = val_source; } +inline void CTurbSAVariable::SetTimeSpectral_Source(unsigned short val_var, su2double val_source) { TS_Source[val_var] = val_source; } -inline double CTurbSAVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } +inline su2double CTurbSAVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } -inline void CTurbMLVariable::SetTimeSpectral_Source(unsigned short val_var, double val_source) { TS_Source[val_var] = val_source; } +inline void CTurbMLVariable::SetTimeSpectral_Source(unsigned short val_var, su2double val_source) { TS_Source[val_var] = val_source; } -inline double CTurbMLVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } +inline su2double CTurbMLVariable::GetTimeSpectral_Source(unsigned short val_var) { return TS_Source[val_var]; } -inline double CTurbSSTVariable::GetF1blending() { return F1; } +inline su2double CTurbSSTVariable::GetF1blending() { return F1; } -inline double CTurbSSTVariable::GetF2blending() { return F2; } +inline su2double CTurbSSTVariable::GetF2blending() { return F2; } -inline double CTurbSSTVariable::GetCrossDiff() { return CDkw; } +inline su2double CTurbSSTVariable::GetCrossDiff() { return CDkw; } -inline void CAdjTurbVariable::SetEddyViscSens(double *val_EddyViscSens, unsigned short numTotalVar) { +inline void CAdjTurbVariable::SetEddyViscSens(su2double *val_EddyViscSens, unsigned short numTotalVar) { for (unsigned short iVar = 0; iVar < numTotalVar; iVar++) { EddyViscSens[iVar] = val_EddyViscSens[iVar];} } -inline double *CAdjTurbVariable::GetEddyViscSens(void) { return EddyViscSens; } +inline su2double *CAdjTurbVariable::GetEddyViscSens(void) { return EddyViscSens; } -inline double CTNE2EulerVariable::GetDensity(void) { return Primitive[RHO_INDEX]; } +inline su2double CTNE2EulerVariable::GetDensity(void) { return Primitive[RHO_INDEX]; } -inline double CTNE2EulerVariable::GetMassFraction(unsigned short val_Species) { +inline su2double CTNE2EulerVariable::GetMassFraction(unsigned short val_Species) { return Primitive[RHOS_INDEX+val_Species] / Primitive[RHO_INDEX]; } -inline double CTNE2EulerVariable::GetEnergy(void) { return Solution[nSpecies+nDim]/Primitive[RHO_INDEX]; }; +inline su2double CTNE2EulerVariable::GetEnergy(void) { return Solution[nSpecies+nDim]/Primitive[RHO_INDEX]; }; -inline double CTNE2EulerVariable::GetEnthalpy(void) { return Primitive[H_INDEX]; } +inline su2double CTNE2EulerVariable::GetEnthalpy(void) { return Primitive[H_INDEX]; } -inline double CTNE2EulerVariable::GetPressure(void) { return Primitive[P_INDEX]; } +inline su2double CTNE2EulerVariable::GetPressure(void) { return Primitive[P_INDEX]; } -inline double CTNE2EulerVariable::GetSoundSpeed(void) { return Primitive[A_INDEX]; } +inline su2double CTNE2EulerVariable::GetSoundSpeed(void) { return Primitive[A_INDEX]; } -inline double CTNE2EulerVariable::GetTemperature(void) { return Primitive[T_INDEX]; } +inline su2double CTNE2EulerVariable::GetTemperature(void) { return Primitive[T_INDEX]; } -inline bool CTNE2EulerVariable::SetTemperature(double val_T) { Primitive[T_INDEX] = val_T; return false; } +inline bool CTNE2EulerVariable::SetTemperature(su2double val_T) { Primitive[T_INDEX] = val_T; return false; } -inline double CTNE2EulerVariable::GetTemperature_ve(void) { return Primitive[TVE_INDEX]; } +inline su2double CTNE2EulerVariable::GetTemperature_ve(void) { return Primitive[TVE_INDEX]; } -inline bool CTNE2EulerVariable::SetTemperature_ve(double val_Tve) { Primitive[TVE_INDEX] = val_Tve; return false; } +inline bool CTNE2EulerVariable::SetTemperature_ve(su2double val_Tve) { Primitive[TVE_INDEX] = val_Tve; return false; } -inline double CTNE2EulerVariable::GetRhoCv_tr(void) { return Primitive[RHOCVTR_INDEX]; } +inline su2double CTNE2EulerVariable::GetRhoCv_tr(void) { return Primitive[RHOCVTR_INDEX]; } -inline double CTNE2EulerVariable::GetRhoCv_ve(void) { return Primitive[RHOCVVE_INDEX]; } +inline su2double CTNE2EulerVariable::GetRhoCv_ve(void) { return Primitive[RHOCVVE_INDEX]; } -inline double* CTNE2EulerVariable::GetdPdU(void) { return dPdU; } +inline su2double* CTNE2EulerVariable::GetdPdU(void) { return dPdU; } -inline double* CTNE2EulerVariable::GetdTdU(void) { return dTdU; } +inline su2double* CTNE2EulerVariable::GetdTdU(void) { return dTdU; } -inline double* CTNE2EulerVariable::GetdTvedU(void) { return dTvedU; } +inline su2double* CTNE2EulerVariable::GetdTvedU(void) { return dTvedU; } -inline double CTNE2EulerVariable::GetVelocity(unsigned short val_dim) { return Primitive[VEL_INDEX+val_dim]; } +inline su2double CTNE2EulerVariable::GetVelocity(unsigned short val_dim) { return Primitive[VEL_INDEX+val_dim]; } -inline double CTNE2EulerVariable::GetVelocity2(void) { return Velocity2; } +inline su2double CTNE2EulerVariable::GetVelocity2(void) { return Velocity2; } inline void CTNE2EulerVariable::SetEnthalpy(void) { Primitive[H_INDEX] = (Solution[nSpecies+nDim] + Primitive[P_INDEX]) / Primitive[RHO_INDEX]; } -inline double CTNE2EulerVariable::GetPrimitive(unsigned short val_var) { return Primitive[val_var]; } +inline su2double CTNE2EulerVariable::GetPrimitive(unsigned short val_var) { return Primitive[val_var]; } -inline void CTNE2EulerVariable::SetPrimitive(unsigned short val_var, double val_prim) { Primitive[val_var] = val_prim; } +inline void CTNE2EulerVariable::SetPrimitive(unsigned short val_var, su2double val_prim) { Primitive[val_var] = val_prim; } -inline void CTNE2EulerVariable::SetPrimitive(double *val_prim) { +inline void CTNE2EulerVariable::SetPrimitive(su2double *val_prim) { for (unsigned short iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = val_prim[iVar]; } -inline double *CTNE2EulerVariable::GetPrimitive(void) { return Primitive; } +inline su2double *CTNE2EulerVariable::GetPrimitive(void) { return Primitive; } -inline void CTNE2EulerVariable::SetVelocity_Old(double *val_velocity) { +inline void CTNE2EulerVariable::SetVelocity_Old(su2double *val_velocity) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[nSpecies+iDim] = val_velocity[iDim]*Primitive[RHO_INDEX]; } -inline void CTNE2EulerVariable::AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Primitive[val_var][val_dim] += val_value; } +inline void CTNE2EulerVariable::AddGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Primitive[val_var][val_dim] += val_value; } -inline void CTNE2EulerVariable::SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Primitive[val_var][val_dim] -= val_value; } +inline void CTNE2EulerVariable::SubtractGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Primitive[val_var][val_dim] -= val_value; } -inline double CTNE2EulerVariable::GetGradient_Primitive(unsigned short val_var, unsigned short val_dim) { return Gradient_Primitive[val_var][val_dim]; } +inline su2double CTNE2EulerVariable::GetGradient_Primitive(unsigned short val_var, unsigned short val_dim) { return Gradient_Primitive[val_var][val_dim]; } -inline void CTNE2EulerVariable::SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, double val_value) { Gradient_Primitive[val_var][val_dim] = val_value; } +inline void CTNE2EulerVariable::SetGradient_Primitive(unsigned short val_var, unsigned short val_dim, su2double val_value) { Gradient_Primitive[val_var][val_dim] = val_value; } -inline double **CTNE2EulerVariable::GetGradient_Primitive(void) { return Gradient_Primitive; } +inline su2double **CTNE2EulerVariable::GetGradient_Primitive(void) { return Gradient_Primitive; } -inline double *CTNE2EulerVariable::GetLimiter_Primitive(void) { return Limiter_Primitive; } +inline su2double *CTNE2EulerVariable::GetLimiter_Primitive(void) { return Limiter_Primitive; } -inline double CTNE2EulerVariable::GetLimiter_Primitive(unsigned short val_var) { return Limiter_Primitive[val_var]; } +inline su2double CTNE2EulerVariable::GetLimiter_Primitive(unsigned short val_var) { return Limiter_Primitive[val_var]; } -inline void CTNE2EulerVariable::SetLimiter_Primitive(unsigned short val_var, double val_value) { Limiter_Primitive[val_var] = val_value; } +inline void CTNE2EulerVariable::SetLimiter_Primitive(unsigned short val_var, su2double val_value) { Limiter_Primitive[val_var] = val_value; } -inline void CTNE2EulerVariable::SetLimiter(unsigned short val_var, double val_value) { Limiter[val_var] = val_value; } +inline void CTNE2EulerVariable::SetLimiter(unsigned short val_var, su2double val_value) { Limiter[val_var] = val_value; } -inline double CTNE2EulerVariable::GetPreconditioner_Beta() { return Precond_Beta; } +inline su2double CTNE2EulerVariable::GetPreconditioner_Beta() { return Precond_Beta; } -inline void CTNE2EulerVariable::SetPreconditioner_Beta(double val_Beta) { Precond_Beta = val_Beta; } +inline void CTNE2EulerVariable::SetPreconditioner_Beta(su2double val_Beta) { Precond_Beta = val_Beta; } inline unsigned short CTNE2EulerVariable::GetRhosIndex(void) { return RHOS_INDEX; } @@ -1180,38 +1180,38 @@ inline unsigned short CTNE2EulerVariable::GetRhoCvtrIndex(void) { return RHOCVTR inline unsigned short CTNE2EulerVariable::GetRhoCvveIndex(void) { return RHOCVVE_INDEX; } -inline double* CTNE2NSVariable::GetDiffusionCoeff(void) { return DiffusionCoeff; } +inline su2double* CTNE2NSVariable::GetDiffusionCoeff(void) { return DiffusionCoeff; } -inline double CTNE2NSVariable::GetLaminarViscosity(void) { return LaminarViscosity; } +inline su2double CTNE2NSVariable::GetLaminarViscosity(void) { return LaminarViscosity; } -inline double CTNE2NSVariable::GetThermalConductivity(void) { return ThermalCond; } +inline su2double CTNE2NSVariable::GetThermalConductivity(void) { return ThermalCond; } -inline double CTNE2NSVariable::GetThermalConductivity_ve(void) { return ThermalCond_ve; } +inline su2double CTNE2NSVariable::GetThermalConductivity_ve(void) { return ThermalCond_ve; } -inline double* CTNE2NSVariable::GetVorticity(void) { return Vorticity; } +inline su2double* CTNE2NSVariable::GetVorticity(void) { return Vorticity; } -inline void CTNE2NSVariable::SetWallTemperature(double Temperature_Wall ) { Primitive[T_INDEX] = Temperature_Wall; } +inline void CTNE2NSVariable::SetWallTemperature(su2double Temperature_Wall ) { Primitive[T_INDEX] = Temperature_Wall; } -inline void CAdjTNE2EulerVariable::SetPhi_Old(double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1]=val_phi[iDim]; }; +inline void CAdjTNE2EulerVariable::SetPhi_Old(su2double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1]=val_phi[iDim]; }; -inline double *CAdjTNE2EulerVariable::GetObjFuncSource(void) { return ObjFuncSource; } +inline su2double *CAdjTNE2EulerVariable::GetObjFuncSource(void) { return ObjFuncSource; } -inline void CAdjTNE2EulerVariable::SetObjFuncSource(double *val_ObjFuncSource) { for (unsigned short iVar = 0; iVar < nVar; iVar++) ObjFuncSource[iVar] = val_ObjFuncSource[iVar]; } +inline void CAdjTNE2EulerVariable::SetObjFuncSource(su2double *val_ObjFuncSource) { for (unsigned short iVar = 0; iVar < nVar; iVar++) ObjFuncSource[iVar] = val_ObjFuncSource[iVar]; } -inline double *CAdjTNE2EulerVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } +inline su2double *CAdjTNE2EulerVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } -inline void CAdjTNE2EulerVariable::SetForceProj_Vector(double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } +inline void CAdjTNE2EulerVariable::SetForceProj_Vector(su2double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } -inline double CAdjTNE2EulerVariable::GetTheta(void) { return Theta; } +inline su2double CAdjTNE2EulerVariable::GetTheta(void) { return Theta; } -inline void CAdjTNE2NSVariable::SetPhi_Old(double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_phi[iDim]; }; +inline void CAdjTNE2NSVariable::SetPhi_Old(su2double *val_phi) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_phi[iDim]; }; -inline double* CAdjTNE2NSVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } +inline su2double* CAdjTNE2NSVariable::GetForceProj_Vector(void) { return ForceProj_Vector; } -inline void CAdjTNE2NSVariable::SetForceProj_Vector(double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } +inline void CAdjTNE2NSVariable::SetForceProj_Vector(su2double *val_ForceProj_Vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = val_ForceProj_Vector[iDim]; } inline void CAdjTNE2NSVariable::SetVelSolutionDVector(void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution[iDim+1] = ForceProj_Vector[iDim]; }; inline void CAdjTNE2NSVariable::SetVelSolutionOldDVector(void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = ForceProj_Vector[iDim]; }; -inline double CAdjTNE2NSVariable::GetTheta(void) { return Theta; } +inline su2double CAdjTNE2NSVariable::GetTheta(void) { return Theta; } diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 9216f9170e8..454dc1af1cc 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -36,7 +36,7 @@ using namespace std; int main(int argc, char *argv[]) { bool StopCalc = false; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; unsigned long ExtIter = 0; unsigned short iMesh, iZone, iSol, nZone, nDim; char config_file_name[MAX_STRING_SIZE]; @@ -49,7 +49,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI int *bptr, bl; - MPI_Init(&argc, &argv); + SU2_MPI::Init(&argc, &argv); MPI_Buffer_attach( malloc(BUFSIZE), BUFSIZE ); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -293,7 +293,7 @@ int main(int argc, char *argv[]) { /*--- Set up a timer for performance benchmarking (preprocessing time is not included) ---*/ #ifndef HAVE_MPI - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #else StartTime = MPI_Wtime(); #endif @@ -412,7 +412,7 @@ int main(int argc, char *argv[]) { wall clock time required. ---*/ #ifndef HAVE_MPI - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #else StopTime = MPI_Wtime(); #endif @@ -564,7 +564,7 @@ int main(int argc, char *argv[]) { wall clock time required. ---*/ #ifndef HAVE_MPI - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #else StopTime = MPI_Wtime(); #endif diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 33294fdb825..06c406eef78 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -579,7 +579,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, nVar_Heat = 0, nVar_Lin_Flow = 0; - double *constants = NULL; + su2double *constants = NULL; bool euler, adj_euler, lin_euler, diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index 15c7e7e5092..86993af9a6e 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -52,65 +52,65 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } - NodalExtrap = new double*[nNodes]; + NodalExtrap = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalExtrap[iNode] = new double[nGaussPoints]; + NodalExtrap[iNode] = new su2double[nGaussPoints]; } - NodalStress = new double*[nNodes]; + NodalStress = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalStress[iNode] = new double[3]; + NodalStress[iNode] = new su2double[3]; } /*--- Initialize structure for current and reference configuration ---*/ /*--- TODO: Initialize structures depending on the kind of problem ---*/ - CurrentCoord = new double*[nNodes]; + CurrentCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - CurrentCoord [iNode] = new double[nDim]; + CurrentCoord [iNode] = new su2double[nDim]; } - RefCoord = new double*[nNodes]; + RefCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - RefCoord [iNode] = new double[nDim]; + RefCoord [iNode] = new su2double[nDim]; } - GaussWeight = new double [nGaussPoints]; + GaussWeight = new su2double [nGaussPoints]; - GaussCoord = new double*[nGaussPoints]; + GaussCoord = new su2double*[nGaussPoints]; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - GaussCoord [iGauss] = new double[nDim]; + GaussCoord [iGauss] = new su2double[nDim]; } GaussCoord[0][0] = 0.333333333333333; GaussCoord[0][1] = 0.333333333333333; GaussWeight[0] = 0.5; //TODO: Check if all of these structures may be moved to the common structure (avoids repetition). //TODO: this structure should only be initialized if the problem is dynamic - Mab = new double *[nNodes]; + Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Mab[iNode] = new double [nNodes]; + Mab[iNode] = new su2double [nNodes]; } - Kab = new double **[nNodes]; + Kab = new su2double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kab [iNode] = new double*[nNodes]; + Kab [iNode] = new su2double*[nNodes]; for (jNode = 0; jNode < nNodes; jNode++){ - Kab [iNode][jNode] = new double[nDimSq]; + Kab [iNode][jNode] = new su2double[nDimSq]; } } //TODO: these structures should only be initialized if the problem is nonlinear - Ks_ab = new double *[nNodes]; + Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Ks_ab[iNode] = new double [nNodes]; + Ks_ab[iNode] = new su2double [nNodes]; } - Kt_a = new double *[nNodes]; + Kt_a = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kt_a[iNode] = new double [nDim]; + Kt_a[iNode] = new su2double [nDim]; } - double Xi, Eta, val_Ni; + su2double Xi, Eta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ Xi = GaussCoord[iGauss][0]; Eta = GaussCoord[iGauss][1]; @@ -168,10 +168,10 @@ CTRIA1::~CTRIA1(void) { void CTRIA1::ComputeGrad_Linear(void){ - double Xi, Eta; - double Jacobian[2][2], dNiXj[3][2]; - double detJac, GradNi_Xj; - double ad[2][2]; + su2double Xi, Eta; + su2double Jacobian[2][2], dNiXj[3][2]; + su2double detJac, GradNi_Xj; + su2double ad[2][2]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -235,10 +235,10 @@ void CTRIA1::ComputeGrad_Linear(void){ void CTRIA1::ComputeGrad_NonLinear(void){ - double Xi, Eta; - double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[3][2]; - double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; - double ad_Ref[2][2], ad_Curr[2][2]; + su2double Xi, Eta; + su2double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[3][2]; + su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + su2double ad_Ref[2][2], ad_Curr[2][2]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -335,33 +335,33 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } - NodalExtrap = new double*[nNodes]; + NodalExtrap = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalExtrap[iNode] = new double[nGaussPoints]; + NodalExtrap[iNode] = new su2double[nGaussPoints]; } - NodalStress = new double*[nNodes]; + NodalStress = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalStress[iNode] = new double[3]; + NodalStress[iNode] = new su2double[3]; } /*--- Initialize structure for current and reference configuration ---*/ - CurrentCoord = new double*[nNodes]; + CurrentCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - CurrentCoord [iNode] = new double[nDim]; + CurrentCoord [iNode] = new su2double[nDim]; } - RefCoord = new double*[nNodes]; + RefCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - RefCoord [iNode] = new double[nDim]; + RefCoord [iNode] = new su2double[nDim]; } - GaussWeight = new double [nGaussPoints]; + GaussWeight = new su2double [nGaussPoints]; - GaussCoord = new double*[nGaussPoints]; + GaussCoord = new su2double*[nGaussPoints]; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - GaussCoord [iGauss] = new double[nDim]; + GaussCoord [iGauss] = new su2double[nDim]; } GaussCoord[0][0] = -0.577350269189626; GaussCoord[0][1] = -0.577350269189626; GaussWeight[0] = 1.0; @@ -370,32 +370,32 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) GaussCoord[3][0] = -0.577350269189626; GaussCoord[3][1] = 0.577350269189626; GaussWeight[3] = 1.0; //TODO: this structure should only be initialized if the problem is dynamic - Mab = new double *[nNodes]; + Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Mab[iNode] = new double [nNodes]; + Mab[iNode] = new su2double [nNodes]; } - Kab = new double **[nNodes]; + Kab = new su2double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kab [iNode] = new double*[nNodes]; + Kab [iNode] = new su2double*[nNodes]; for (jNode = 0; jNode < nNodes; jNode++){ - Kab [iNode][jNode] = new double[nDimSq]; + Kab [iNode][jNode] = new su2double[nDimSq]; } } //TODO: these structures should only be initialized if the problem is nonlinear - Ks_ab = new double *[nNodes]; + Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Ks_ab[iNode] = new double [nNodes]; + Ks_ab[iNode] = new su2double [nNodes]; } - Kt_a = new double *[nNodes]; + Kt_a = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kt_a[iNode] = new double [nDim]; + Kt_a[iNode] = new su2double [nDim]; } /*--- Store the shape functions (they only need to be computed once) ---*/ - double Xi, Eta, val_Ni; + su2double Xi, Eta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ Xi = GaussCoord[iGauss][0]; Eta = GaussCoord[iGauss][1]; @@ -412,7 +412,7 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) // NodalExtrap[2][0] = 0.133974596215561; NodalExtrap[2][1] = -0.500000000000000; NodalExtrap[2][2] = 1.86602540378444; NodalExtrap[2][3] = -0.500000000000000; // NodalExtrap[3][0] = -0.500000000000000; NodalExtrap[3][1] = 0.133974596215561; NodalExtrap[3][2] = -0.500000000000000; NodalExtrap[3][3] = 1.86602540378444; - double ExtrapCoord[4][2]; + su2double ExtrapCoord[4][2]; ExtrapCoord[0][0] = -1.732050807568877; ExtrapCoord[0][1] = -1.732050807568877; ExtrapCoord[1][0] = 1.732050807568877; ExtrapCoord[1][1] = -1.732050807568877; @@ -470,10 +470,10 @@ CQUAD4::~CQUAD4(void) { void CQUAD4::ComputeGrad_Linear(void){ - double Xi, Eta; - double Jacobian[2][2], dNiXj[4][2]; - double detJac, GradNi_Xj; - double ad[2][2]; + su2double Xi, Eta; + su2double Jacobian[2][2], dNiXj[4][2]; + su2double detJac, GradNi_Xj; + su2double ad[2][2]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -538,10 +538,10 @@ void CQUAD4::ComputeGrad_Linear(void){ void CQUAD4::ComputeGrad_NonLinear(void){ - double Xi, Eta; - double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[4][2]; - double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; - double ad_Ref[2][2], ad_Curr[2][2]; + su2double Xi, Eta; + su2double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[4][2]; + su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + su2double ad_Ref[2][2], ad_Curr[2][2]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -642,20 +642,20 @@ CQUAD4P1::CQUAD4P1(unsigned short val_nDim, CConfig *config) for (iGauss = 0; iGauss < nGaussPointsP; iGauss++) { GaussPointP[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } - GaussWeightP = new double [nGaussPointsP]; + GaussWeightP = new su2double [nGaussPointsP]; - GaussCoordP = new double*[nGaussPointsP]; + GaussCoordP = new su2double*[nGaussPointsP]; for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ - GaussCoordP [iGauss] = new double[nDim]; + GaussCoordP [iGauss] = new su2double[nDim]; } GaussCoordP[0][0] = 0.0; GaussCoordP[0][1] = 0.0; GaussWeightP[0] = 4.0; - Kk_ab = new double **[nNodes]; + Kk_ab = new su2double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kk_ab [iNode] = new double*[nNodes]; + Kk_ab [iNode] = new su2double*[nNodes]; for (jNode = 0; jNode < nNodes; jNode++){ - Kk_ab [iNode][jNode] = new double[nDimSq]; + Kk_ab [iNode][jNode] = new su2double[nDimSq]; } } @@ -687,10 +687,10 @@ CQUAD4P1::~CQUAD4P1(void) { void CQUAD4P1::ComputeGrad_Pressure(void){ - double Xi, Eta; - double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[4][2]; - double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; - double ad_Ref[2][2], ad_Curr[2][2]; + su2double Xi, Eta; + su2double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[4][2]; + su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + su2double ad_Ref[2][2], ad_Curr[2][2]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ @@ -787,64 +787,64 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } - NodalExtrap = new double*[nNodes]; + NodalExtrap = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalExtrap[iNode] = new double[nGaussPoints]; + NodalExtrap[iNode] = new su2double[nGaussPoints]; } - NodalStress = new double*[nNodes]; + NodalStress = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalStress[iNode] = new double[6]; + NodalStress[iNode] = new su2double[6]; } /*--- Initialize structure for current and reference configuration ---*/ - CurrentCoord = new double*[nNodes]; + CurrentCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - CurrentCoord [iNode] = new double[nDim]; + CurrentCoord [iNode] = new su2double[nDim]; } - RefCoord = new double*[nNodes]; + RefCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - RefCoord [iNode] = new double[nDim]; + RefCoord [iNode] = new su2double[nDim]; } - GaussWeight = new double [nGaussPoints]; + GaussWeight = new su2double [nGaussPoints]; - GaussCoord = new double*[nGaussPoints]; + GaussCoord = new su2double*[nGaussPoints]; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - GaussCoord [iGauss] = new double[nDim]; + GaussCoord [iGauss] = new su2double[nDim]; } GaussCoord[0][0] = 0.25; GaussCoord[0][1] = 0.25; GaussCoord[0][2] = 0.25; GaussWeight[0] = 0.166666666666666; //TODO: this structure should only be initialized if the problem is dynamic - Mab = new double *[nNodes]; + Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Mab[iNode] = new double [nNodes]; + Mab[iNode] = new su2double [nNodes]; } - Kab = new double **[nNodes]; + Kab = new su2double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kab [iNode] = new double*[nNodes]; + Kab [iNode] = new su2double*[nNodes]; for (jNode = 0; jNode < nNodes; jNode++){ - Kab [iNode][jNode] = new double[nDimSq]; + Kab [iNode][jNode] = new su2double[nDimSq]; } } //TODO: these structures should only be initialized if the problem is nonlinear - Ks_ab = new double *[nNodes]; + Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Ks_ab[iNode] = new double [nNodes]; + Ks_ab[iNode] = new su2double [nNodes]; } - Kt_a = new double *[nNodes]; + Kt_a = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kt_a[iNode] = new double [nDim]; + Kt_a[iNode] = new su2double [nDim]; } /*--- Store the shape functions (they only need to be computed once) ---*/ - double Xi, Eta, Zeta, val_Ni; + su2double Xi, Eta, Zeta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ Xi = GaussCoord[iGauss][0]; Eta = GaussCoord[iGauss][1]; @@ -902,10 +902,10 @@ CTETRA1::~CTETRA1(void) { void CTETRA1::ComputeGrad_Linear(void){ - double Xi, Eta, Zeta; - double Jacobian[3][3], dNiXj[4][3]; - double detJac, GradNi_Xj; - double ad[3][3]; + su2double Xi, Eta, Zeta; + su2double Jacobian[3][3], dNiXj[4][3]; + su2double detJac, GradNi_Xj; + su2double ad[3][3]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -976,10 +976,10 @@ void CTETRA1::ComputeGrad_Linear(void){ void CTETRA1::ComputeGrad_NonLinear(void){ - double Xi, Eta, Zeta; - double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[4][3]; - double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; - double ad_Ref[3][3], ad_Curr[3][3]; + su2double Xi, Eta, Zeta; + su2double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[4][3]; + su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + su2double ad_Ref[3][3], ad_Curr[3][3]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -1088,33 +1088,33 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) GaussPoint[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } - NodalExtrap = new double*[nNodes]; + NodalExtrap = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalExtrap[iNode] = new double[nGaussPoints]; + NodalExtrap[iNode] = new su2double[nGaussPoints]; } - NodalStress = new double*[nNodes]; + NodalStress = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++) { - NodalStress[iNode] = new double[6]; + NodalStress[iNode] = new su2double[6]; } /*--- Initialize structure for current and reference configuration ---*/ - CurrentCoord = new double*[nNodes]; + CurrentCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - CurrentCoord [iNode] = new double[nDim]; + CurrentCoord [iNode] = new su2double[nDim]; } - RefCoord = new double*[nNodes]; + RefCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - RefCoord [iNode] = new double[nDim]; + RefCoord [iNode] = new su2double[nDim]; } - GaussWeight = new double [nGaussPoints]; + GaussWeight = new su2double [nGaussPoints]; - GaussCoord = new double*[nGaussPoints]; + GaussCoord = new su2double*[nGaussPoints]; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - GaussCoord [iGauss] = new double[nDim]; + GaussCoord [iGauss] = new su2double[nDim]; } GaussCoord[0][0] = -0.577350269189626; GaussCoord[0][1] = -0.577350269189626; GaussCoord[0][2] = -0.577350269189626; GaussWeight[0] = 1.0; @@ -1127,33 +1127,33 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) GaussCoord[7][0] = -0.577350269189626; GaussCoord[7][1] = 0.577350269189626; GaussCoord[7][2] = 0.577350269189626; GaussWeight[7] = 1.0; //TODO: this structure should only be initialized if the problem is dynamic - Mab = new double *[nNodes]; + Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Mab[iNode] = new double [nNodes]; + Mab[iNode] = new su2double [nNodes]; } - Kab = new double **[nNodes]; + Kab = new su2double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kab [iNode] = new double*[nNodes]; + Kab [iNode] = new su2double*[nNodes]; for (jNode = 0; jNode < nNodes; jNode++){ - Kab [iNode][jNode] = new double[nDimSq]; + Kab [iNode][jNode] = new su2double[nDimSq]; } } //TODO: these structures should only be initialized if the problem is nonlinear - Ks_ab = new double *[nNodes]; + Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Ks_ab[iNode] = new double [nNodes]; + Ks_ab[iNode] = new su2double [nNodes]; } - Kt_a = new double *[nNodes]; + Kt_a = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kt_a[iNode] = new double [nDim]; + Kt_a[iNode] = new su2double [nDim]; } /*--- Store the shape functions (they only need to be computed once) ---*/ - double Xi, Eta, Zeta, val_Ni; + su2double Xi, Eta, Zeta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ Xi = GaussCoord[iGauss][0]; Eta = GaussCoord[iGauss][1]; @@ -1170,7 +1170,7 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) } - double ExtrapCoord[8][3]; + su2double ExtrapCoord[8][3]; ExtrapCoord[0][0] = -1.732050807568877; ExtrapCoord[0][1] = -1.732050807568877; ExtrapCoord[0][2] = -1.732050807568877; ExtrapCoord[1][0] = 1.732050807568877; ExtrapCoord[1][1] = -1.732050807568877; ExtrapCoord[1][2] = -1.732050807568877; @@ -1238,10 +1238,10 @@ CHEXA8::~CHEXA8(void) { void CHEXA8::ComputeGrad_Linear(void){ - double Xi, Eta, Zeta; - double Jacobian[3][3], dNiXj[8][3]; - double detJac, GradNi_Xj; - double ad[3][3]; + su2double Xi, Eta, Zeta; + su2double Jacobian[3][3], dNiXj[8][3]; + su2double detJac, GradNi_Xj; + su2double ad[3][3]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -1340,10 +1340,10 @@ void CHEXA8::ComputeGrad_Linear(void){ void CHEXA8::ComputeGrad_NonLinear(void){ - double Xi, Eta, Zeta; - double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[8][3]; - double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; - double ad_Ref[3][3], ad_Curr[3][3]; + su2double Xi, Eta, Zeta; + su2double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[8][3]; + su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + su2double ad_Ref[3][3], ad_Curr[3][3]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -1480,20 +1480,20 @@ CHEXA8P1::CHEXA8P1(unsigned short val_nDim, CConfig *config) for (iGauss = 0; iGauss < nGaussPointsP; iGauss++) { GaussPointP[iGauss] = new CGaussVariable(iGauss, nDim, nNodes); } - GaussWeightP = new double [nGaussPointsP]; + GaussWeightP = new su2double [nGaussPointsP]; - GaussCoordP = new double*[nGaussPointsP]; + GaussCoordP = new su2double*[nGaussPointsP]; for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ - GaussCoordP [iGauss] = new double[nDim]; + GaussCoordP [iGauss] = new su2double[nDim]; } GaussCoordP[0][0] = 0.0; GaussCoordP[0][1] = 0.0; GaussCoordP[0][1] = 0.0; GaussWeightP[0] = 8.0; - Kk_ab = new double **[nNodes]; + Kk_ab = new su2double **[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ - Kk_ab [iNode] = new double*[nNodes]; + Kk_ab [iNode] = new su2double*[nNodes]; for (jNode = 0; jNode < nNodes; jNode++){ - Kk_ab [iNode][jNode] = new double[nDimSq]; + Kk_ab [iNode][jNode] = new su2double[nDimSq]; } } @@ -1524,10 +1524,10 @@ CHEXA8P1::~CHEXA8P1(void) { void CHEXA8P1::ComputeGrad_Pressure(void){ - double Xi, Eta, Zeta; - double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[8][3]; - double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; - double ad_Ref[3][3], ad_Curr[3][3]; + su2double Xi, Eta, Zeta; + su2double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[8][3]; + su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; + su2double ad_Ref[3][3], ad_Curr[3][3]; unsigned short iNode, iDim, jDim, iGauss; for (iGauss = 0; iGauss < nGaussPointsP; iGauss++){ diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index b85bff8b53b..5c6d18e09f6 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -120,7 +120,7 @@ CElement::~CElement(void) { } -void CElement::Add_Kab(double **val_Kab, unsigned short nodeA, unsigned short nodeB){ +void CElement::Add_Kab(su2double **val_Kab, unsigned short nodeA, unsigned short nodeB){ unsigned short iDim, jDim; @@ -131,7 +131,7 @@ void CElement::Add_Kab(double **val_Kab, unsigned short nodeA, unsigned short no } } -void CElement::Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short nodeB){ +void CElement::Add_Kab_T(su2double **val_Kab, unsigned short nodeA, unsigned short nodeB){ unsigned short iDim, jDim; @@ -142,7 +142,7 @@ void CElement::Add_Kab_T(double **val_Kab, unsigned short nodeA, unsigned short } } -void CElement::Set_Kk_ab(double **val_Kk_ab, unsigned short nodeA, unsigned short nodeB){ +void CElement::Set_Kk_ab(su2double **val_Kk_ab, unsigned short nodeA, unsigned short nodeB){ unsigned short iDim, jDim; @@ -153,7 +153,7 @@ void CElement::Set_Kk_ab(double **val_Kk_ab, unsigned short nodeA, unsigned shor } } -void CElement::Add_Kt_a(double *val_Kt_a, unsigned short nodeA){ +void CElement::Add_Kt_a(su2double *val_Kt_a, unsigned short nodeA){ unsigned short iDim; diff --git a/SU2_CFD/src/fluid_model_pig.cpp b/SU2_CFD/src/fluid_model_pig.cpp index 7a62c93fd0f..c618a09b43c 100755 --- a/SU2_CFD/src/fluid_model_pig.cpp +++ b/SU2_CFD/src/fluid_model_pig.cpp @@ -38,7 +38,7 @@ CIdealGas::CIdealGas() : CFluidModel() { } -CIdealGas::CIdealGas(double gamma, double R ) : CFluidModel() { +CIdealGas::CIdealGas(su2double gamma, su2double R ) : CFluidModel() { Gamma = gamma; Gamma_Minus_One = Gamma - 1.0; Gas_Constant = R; @@ -50,7 +50,7 @@ CIdealGas::~CIdealGas(void) { } -void CIdealGas::SetTDState_rhoe (double rho, double e ) { +void CIdealGas::SetTDState_rhoe (su2double rho, su2double e ) { Density = rho; StaticEnergy = e; @@ -65,37 +65,37 @@ void CIdealGas::SetTDState_rhoe (double rho, double e ) { } -void CIdealGas::SetTDState_PT (double P, double T ) { - double e = T*Gas_Constant/Gamma_Minus_One; - double rho = P/(T*Gas_Constant); +void CIdealGas::SetTDState_PT (su2double P, su2double T ) { + su2double e = T*Gas_Constant/Gamma_Minus_One; + su2double rho = P/(T*Gas_Constant); SetTDState_rhoe(rho, e); } -void CIdealGas::SetTDState_Prho (double P, double rho ) { - double e = P/(Gamma_Minus_One*rho); +void CIdealGas::SetTDState_Prho (su2double P, su2double rho ) { + su2double e = P/(Gamma_Minus_One*rho); SetTDState_rhoe(rho, e); } -void CIdealGas::SetEnergy_Prho (double P, double rho ) { +void CIdealGas::SetEnergy_Prho (su2double P, su2double rho ) { StaticEnergy = P/(rho*Gamma_Minus_One); } -void CIdealGas::SetTDState_hs (double h, double s ) { +void CIdealGas::SetTDState_hs (su2double h, su2double s ) { - double T = h*Gamma_Minus_One/Gas_Constant/Gamma; - double e = h/Gamma; - double v = exp(-1/Gamma_Minus_One*log(T) + s/Gas_Constant); + su2double T = h*Gamma_Minus_One/Gas_Constant/Gamma; + su2double e = h/Gamma; + su2double v = exp(-1/Gamma_Minus_One*log(T) + s/Gas_Constant); SetTDState_rhoe(1/v, e); } -void CIdealGas::SetTDState_rhoT (double rho, double T ) { +void CIdealGas::SetTDState_rhoT (su2double rho, su2double T ) { - double e = T*Gas_Constant/Gamma_Minus_One; + su2double e = T*Gas_Constant/Gamma_Minus_One; SetTDState_rhoe(rho, e); } diff --git a/SU2_CFD/src/fluid_model_ppr.cpp b/SU2_CFD/src/fluid_model_ppr.cpp index 5cac451f06a..9147ef26b1c 100755 --- a/SU2_CFD/src/fluid_model_ppr.cpp +++ b/SU2_CFD/src/fluid_model_ppr.cpp @@ -36,7 +36,7 @@ CPengRobinson::CPengRobinson() : CIdealGas() { TstarCrit = 0.0; } -CPengRobinson::CPengRobinson(double gamma, double R, double Pstar, double Tstar, double w) : CIdealGas(gamma, R) { +CPengRobinson::CPengRobinson(su2double gamma, su2double R, su2double Pstar, su2double Tstar, su2double w) : CIdealGas(gamma, R) { a = 0.45724*Gas_Constant*Gas_Constant*Tstar*Tstar/Pstar; b = 0.0778*Gas_Constant*Tstar/Pstar; @@ -54,14 +54,14 @@ CPengRobinson::CPengRobinson(double gamma, double R, double Pstar, double Tstar, CPengRobinson::~CPengRobinson(void) { } -double CPengRobinson::alpha2(double T) { +su2double CPengRobinson::alpha2(su2double T) { return ( 1 + k*(1 - sqrt(T/TstarCrit)))*( 1 + k*(1 - sqrt(T/TstarCrit))); } -double CPengRobinson::T_v_h(double v, double h) { - double fv, A, B, C, T, d; - double sqrt2=sqrt(2.0); +su2double CPengRobinson::T_v_h(su2double v, su2double h) { + su2double fv, A, B, C, T, d; + su2double sqrt2=sqrt(2.0); d = (v*v+2*b*v-b*b); fv = atanh( b*sqrt2 / (v + b)); @@ -75,10 +75,10 @@ double CPengRobinson::T_v_h(double v, double h) { return T*T; } -void CPengRobinson::SetTDState_rhoe (double rho, double e ) { +void CPengRobinson::SetTDState_rhoe (su2double rho, su2double e ) { - double DpDd_T, DpDT_d, DeDd_T, Cv; - double A, B, C, sqrt2, fv, a2T, rho2; + su2double DpDd_T, DpDT_d, DeDd_T, Cv; + su2double A, B, C, sqrt2, fv, a2T, rho2; Density = rho; StaticEnergy = e; @@ -125,11 +125,11 @@ void CPengRobinson::SetTDState_rhoe (double rho, double e ) { } -void CPengRobinson::SetTDState_PT (double P, double T ) { - double toll= 1e-6; - double A, B, Z, DZ=1.0, F, F1; - double rho, fv, e; - double sqrt2=sqrt(2); +void CPengRobinson::SetTDState_PT (su2double P, su2double T ) { + su2double toll= 1e-6; + su2double A, B, Z, DZ=1.0, F, F1; + su2double rho, fv, e; + su2double sqrt2=sqrt(2); unsigned short nmax = 20, count=0; A= a*alpha2(T)*P/(T*Gas_Constant)/(T*Gas_Constant); @@ -162,7 +162,7 @@ void CPengRobinson::SetTDState_PT (double P, double T ) { SetTDState_rhoe(rho, e); } -void CPengRobinson::SetTDState_Prho (double P, double rho ) { +void CPengRobinson::SetTDState_Prho (su2double P, su2double rho ) { SetEnergy_Prho(P, rho); @@ -170,13 +170,13 @@ void CPengRobinson::SetTDState_Prho (double P, double rho ) { } -void CPengRobinson::SetTDState_hs (double h, double s ) { +void CPengRobinson::SetTDState_hs (su2double h, su2double s ) { - double T, fv, sqrt2=sqrt(2.0), A; - double f, v; - double x1, x2, xmid, dx, fx1, fx2, fmid, rtb; - double toll = 1e-9, FACTOR=0.2; - double cons_s, cons_h; + su2double T, fv, sqrt2=sqrt(2.0), A; + su2double f, v; + su2double x1, x2, xmid, dx, fx1, fx2, fmid, rtb; + su2double toll = 1e-9, FACTOR=0.2; + su2double cons_s, cons_h; unsigned short countrtb=0, NTRY=10, ITMAX=100; A = Gas_Constant / Gamma_Minus_One; @@ -274,10 +274,10 @@ void CPengRobinson::SetTDState_hs (double h, double s ) { } -void CPengRobinson::SetEnergy_Prho (double P, double rho) { +void CPengRobinson::SetEnergy_Prho (su2double P, su2double rho) { - double ad; - double A, B, C, T, vb1, vb2; + su2double ad; + su2double A, B, C, T, vb1, vb2; vb1 = (1/rho -b); vb2 = (1/rho/rho + 2*b/rho - b*b); @@ -296,8 +296,8 @@ void CPengRobinson::SetEnergy_Prho (double P, double rho) { } -void CPengRobinson::SetTDState_rhoT (double rho, double T) { - double fv, e; +void CPengRobinson::SetTDState_rhoT (su2double rho, su2double T) { + su2double fv, e; fv = atanh( rho * b * sqrt(2)/(1 + rho*b)); e = T*Gas_Constant/Gamma_Minus_One - a*(k+1)*sqrt( alpha2(T) ) / ( b*sqrt(2) ) * fv; diff --git a/SU2_CFD/src/fluid_model_pvdw.cpp b/SU2_CFD/src/fluid_model_pvdw.cpp index 45768d5d721..6e79fe31d79 100755 --- a/SU2_CFD/src/fluid_model_pvdw.cpp +++ b/SU2_CFD/src/fluid_model_pvdw.cpp @@ -37,7 +37,7 @@ CVanDerWaalsGas::CVanDerWaalsGas() : CIdealGas() { } -CVanDerWaalsGas::CVanDerWaalsGas(double gamma, double R, double Pstar, double Tstar): CIdealGas(gamma, R) { +CVanDerWaalsGas::CVanDerWaalsGas(su2double gamma, su2double R, su2double Pstar, su2double Tstar): CIdealGas(gamma, R) { a = 27.0/64.0*Gas_Constant*Gas_Constant*Tstar*Tstar/Pstar; b = 1.0/8.0*Gas_Constant*Tstar/Pstar; Zed = 1.0; @@ -48,7 +48,7 @@ CVanDerWaalsGas::CVanDerWaalsGas(double gamma, double R, double Pstar, double Ts CVanDerWaalsGas::~CVanDerWaalsGas(void) { } -void CVanDerWaalsGas::SetTDState_rhoe (double rho, double e ) { +void CVanDerWaalsGas::SetTDState_rhoe (su2double rho, su2double e ) { Density = rho; StaticEnergy = e; @@ -68,10 +68,10 @@ void CVanDerWaalsGas::SetTDState_rhoe (double rho, double e ) { } -void CVanDerWaalsGas::SetTDState_PT (double P, double T ) { - double toll= 1e-5; +void CVanDerWaalsGas::SetTDState_PT (su2double P, su2double T ) { + su2double toll= 1e-5; unsigned short nmax = 20, count=0; - double A, B, Z, DZ=1.0, F, F1; + su2double A, B, Z, DZ=1.0, F, F1; A= a*P/(T*Gas_Constant)/(T*Gas_Constant); B= b*P/(T*Gas_Constant); @@ -103,14 +103,14 @@ void CVanDerWaalsGas::SetTDState_PT (double P, double T ) { Density = P/(Zed*Gas_Constant*T); - double e = T*Gas_Constant/Gamma_Minus_One - a*Density; + su2double e = T*Gas_Constant/Gamma_Minus_One - a*Density; SetTDState_rhoe(Density, e); // cout <<"After "<< Pressure <<" "<< Temperature << endl; } -void CVanDerWaalsGas::SetTDState_Prho (double P, double rho ) { +void CVanDerWaalsGas::SetTDState_Prho (su2double P, su2double rho ) { SetEnergy_Prho(P, rho); @@ -118,13 +118,13 @@ void CVanDerWaalsGas::SetTDState_Prho (double P, double rho ) { } -void CVanDerWaalsGas::SetTDState_hs (double h, double s ) { +void CVanDerWaalsGas::SetTDState_hs (su2double h, su2double s ) { - double v, T, rho, f, fmid, rtb; - double x1,x2,xmid, dx, fx1, fx2; - double toll = 1e-5, FACTOR=0.2; + su2double v, T, rho, f, fmid, rtb; + su2double x1,x2,xmid, dx, fx1, fx2; + su2double toll = 1e-5, FACTOR=0.2; unsigned short count=0, NTRY=10, ITMAX=100; - double cons_s, cons_h; + su2double cons_s, cons_h; // cout <<"Before "<< h <<" "<< s << endl; @@ -210,15 +210,15 @@ void CVanDerWaalsGas::SetTDState_hs (double h, double s ) { } -void CVanDerWaalsGas::SetEnergy_Prho (double P, double rho ) { - double T = (P+rho*rho*a)*(1-rho*b)/(rho*Gas_Constant); +void CVanDerWaalsGas::SetEnergy_Prho (su2double P, su2double rho ) { + su2double T = (P+rho*rho*a)*(1-rho*b)/(rho*Gas_Constant); StaticEnergy = T*Gas_Constant/Gamma_Minus_One - rho*a; } -void CVanDerWaalsGas::SetTDState_rhoT (double rho, double T) { +void CVanDerWaalsGas::SetTDState_rhoT (su2double rho, su2double T) { - double e = T*Gas_Constant/Gamma_Minus_One - a*rho; + su2double e = T*Gas_Constant/Gamma_Minus_One - a*rho; SetTDState_rhoe(rho, e); } diff --git a/SU2_CFD/src/gauss_structure.cpp b/SU2_CFD/src/gauss_structure.cpp index e625e9d3702..953a9d6e8fd 100644 --- a/SU2_CFD/src/gauss_structure.cpp +++ b/SU2_CFD/src/gauss_structure.cpp @@ -44,20 +44,20 @@ CGaussVariable::CGaussVariable(void) { CGaussVariable::CGaussVariable(unsigned short val_iGauss, unsigned short val_nDim, unsigned short val_nNodes) { - GradNi_Xj = new double* [val_nNodes]; + GradNi_Xj = new su2double* [val_nNodes]; for (unsigned short iNode = 0; iNode < val_nNodes; iNode++) - GradNi_Xj[iNode] = new double [val_nDim]; + GradNi_Xj[iNode] = new su2double [val_nDim]; - GradNi_xj = new double* [val_nNodes]; + GradNi_xj = new su2double* [val_nNodes]; for (unsigned short iNode = 0; iNode < val_nNodes; iNode++) - GradNi_xj[iNode] = new double [val_nDim]; + GradNi_xj[iNode] = new su2double [val_nDim]; J_X = 0.0; J_x = 0.0; iGaussPoint = val_iGauss; - Ni = new double [val_nNodes]; + Ni = new su2double [val_nNodes]; } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 5c40fabdf05..eb8eed8444f 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -38,7 +38,7 @@ CIntegration::CIntegration(CConfig *config) { Convergence = false; Convergence_FSI = false; Convergence_FullMG = false; - Cauchy_Serie = new double [config->GetCauchy_Elems()+1]; + Cauchy_Serie = new su2double [config->GetCauchy_Elems()+1]; } CIntegration::~CIntegration(void) { @@ -451,7 +451,7 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co } void CIntegration::Convergence_Monitoring(CGeometry *geometry, CConfig *config, unsigned long Iteration, - double monitor, unsigned short iMesh) { + su2double monitor, unsigned short iMesh) { unsigned short iCounter; int rank = MASTER_NODE; @@ -552,7 +552,7 @@ void CIntegration::Convergence_Monitoring(CGeometry *geometry, CConfig *config, /*--- Convergence criteria ---*/ sbuf_conv[0] = Convergence; - MPI_Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); /*-- Compute global convergence criteria in the master node --*/ @@ -562,7 +562,7 @@ void CIntegration::Convergence_Monitoring(CGeometry *geometry, CConfig *config, else sbuf_conv[0] = 0; } - MPI_Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); if (sbuf_conv[0] == 1) { Convergence = true; Convergence_FullMG = true; } else { Convergence = false; Convergence_FullMG = false; } @@ -615,7 +615,7 @@ void CIntegration::SetDualTime_Solver(CGeometry *geometry, CSolver *solver, CCon /*--- Also communicate plunge and pitch to the master node. Needed for output in case of parallel run ---*/ #ifdef HAVE_MPI - double plunge, pitch, *plunge_all = NULL, *pitch_all = NULL; + su2double plunge, pitch, *plunge_all = NULL, *pitch_all = NULL; unsigned short iMarker, iMarker_Monitoring; unsigned long iProcessor, owner, *owner_all = NULL; @@ -627,8 +627,8 @@ void CIntegration::SetDualTime_Solver(CGeometry *geometry, CSolver *solver, CCon /*--- Only if mater node allocate memory ---*/ if (rank == MASTER_NODE) { - plunge_all = new double[nProcessor]; - pitch_all = new double[nProcessor]; + plunge_all = new su2double[nProcessor]; + pitch_all = new su2double[nProcessor]; owner_all = new unsigned long[nProcessor]; } @@ -649,9 +649,9 @@ void CIntegration::SetDualTime_Solver(CGeometry *geometry, CSolver *solver, CCon pitch = config->GetAeroelastic_pitch(iMarker_Monitoring); /*--- Gather the data on the master node. ---*/ - MPI_Gather(&plunge, 1, MPI_DOUBLE, plunge_all, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(&pitch, 1, MPI_DOUBLE, pitch_all, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(&owner, 1, MPI_UNSIGNED_LONG, owner_all, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(&plunge, 1, MPI_DOUBLE, plunge_all, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(&pitch, 1, MPI_DOUBLE, pitch_all, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(&owner, 1, MPI_UNSIGNED_LONG, owner_all, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); /*--- Set plunge and pitch on the master node ---*/ if (rank == MASTER_NODE) { @@ -694,7 +694,7 @@ void CIntegration::SetStructural_Solver(CGeometry *geometry, CSolver *solver, CC if (fsi){ - double WAitk=0.0; + su2double WAitk=0.0; WAitk = solver->GetWAitken_Dyn(); solver->SetWAitken_Dyn_tn1(WAitk); @@ -721,7 +721,7 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, if (fsi){ - double WAitk=0.0; + su2double WAitk=0.0; WAitk = solver->GetWAitken_Dyn(); solver->SetWAitken_Dyn_tn1(WAitk); @@ -732,8 +732,8 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, void CIntegration::Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *config, CSolver *solver, unsigned long iFSIIter) { - double Reference_UTOL, Reference_RTOL, Reference_ETOL; - double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Reference_UTOL, Reference_RTOL, Reference_ETOL; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; bool Already_Converged = Convergence; @@ -763,16 +763,16 @@ void CIntegration::Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *conf void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig *fea_config, CSolver *fea_solver, unsigned long iFSIIter) { unsigned short iCounter; - double FEA_check[2] = {0.0, 0.0}; - double magResidualFSI, logResidualFSI_initial, logResidualFSI; - double magResidualFSI_criteria, logResidualFSI_criteria; + su2double FEA_check[2] = {0.0, 0.0}; + su2double magResidualFSI, logResidualFSI_initial, logResidualFSI; + su2double magResidualFSI_criteria, logResidualFSI_criteria; unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *dispPred, *dispPred_Old; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); - double deltaU, deltaURad, deltaURes; + su2double *dispPred, *dispPred_Old; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); + su2double deltaU, deltaURad, deltaURes; magResidualFSI_criteria = fea_config->GetOrderMagResidualFSI(); logResidualFSI_criteria = fea_config->GetMinLogResidualFSI(); diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 12092312d65..5420e3a9828 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -43,7 +43,7 @@ void CMultiGridIntegration::MultiGrid_Iteration(CGeometry ***geometry, unsigned long Iteration, unsigned short iZone) { unsigned short FinestMesh, iMGLevel; - double monitor = 1.0; + su2double monitor = 1.0; bool FullMG = false; const bool restart = (config[iZone]->GetRestart() || config[iZone]->GetRestart_Flow()); @@ -246,11 +246,11 @@ void CMultiGridIntegration::GetProlongated_Correction(unsigned short RunTime_EqS CGeometry *geo_coarse, CConfig *config) { unsigned long Point_Fine, Point_Coarse, iVertex; unsigned short Boundary, iMarker, iChildren, iVar; - double Area_Parent, Area_Children, *Solution_Fine, *Solution_Coarse; + su2double Area_Parent, Area_Children, *Solution_Fine, *Solution_Coarse; const unsigned short nVar = sol_coarse->GetnVar(); - double *Solution = new double[nVar]; + su2double *Solution = new su2double[nVar]; for (Point_Coarse = 0; Point_Coarse < geo_coarse->GetnPointDomain(); Point_Coarse++) { @@ -317,8 +317,8 @@ void CMultiGridIntegration::GetProlongated_Correction(unsigned short RunTime_EqS } void CMultiGridIntegration::SmoothProlongated_Correction (unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, - unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config) { - double *Residual_Old, *Residual_Sum, *Residual, *Residual_i, *Residual_j; + unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config) { + su2double *Residual_Old, *Residual_Sum, *Residual, *Residual_i, *Residual_j; unsigned short iVar, iSmooth, iMarker, nneigh; unsigned long iEdge, iPoint, jPoint, iVertex; @@ -326,7 +326,7 @@ void CMultiGridIntegration::SmoothProlongated_Correction (unsigned short RunTime if (val_nSmooth > 0) { - Residual = new double [nVar]; + Residual = new su2double [nVar]; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { Residual_Old = solver->LinSysRes.GetBlock(iPoint); @@ -362,7 +362,7 @@ void CMultiGridIntegration::SmoothProlongated_Correction (unsigned short RunTime Residual_Old = solver->node[iPoint]->GetResidual_Old(); for (iVar = 0; iVar < nVar; iVar++) { Residual[iVar] =(Residual_Old[iVar] + val_smooth_coeff*Residual_Sum[iVar]) - /(1.0 + val_smooth_coeff*double(nneigh)); + /(1.0 + val_smooth_coeff*su2double(nneigh)); } solver->LinSysRes.SetBlock(iPoint, Residual); } @@ -383,8 +383,8 @@ void CMultiGridIntegration::SmoothProlongated_Correction (unsigned short RunTime } void CMultiGridIntegration::Smooth_Solution(unsigned short RunTime_EqSystem, CSolver *solver, CGeometry *geometry, - unsigned short val_nSmooth, double val_smooth_coeff, CConfig *config) { - double *Solution_Old, *Solution_Sum, *Solution, *Solution_i, *Solution_j; + unsigned short val_nSmooth, su2double val_smooth_coeff, CConfig *config) { + su2double *Solution_Old, *Solution_Sum, *Solution, *Solution_i, *Solution_j; unsigned short iVar, iSmooth, iMarker, nneigh; unsigned long iEdge, iPoint, jPoint, iVertex; @@ -392,7 +392,7 @@ void CMultiGridIntegration::Smooth_Solution(unsigned short RunTime_EqSystem, CSo if (val_nSmooth > 0) { - Solution = new double [nVar]; + Solution = new su2double [nVar]; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { Solution_Old = solver->node[iPoint]->GetSolution(); @@ -428,7 +428,7 @@ void CMultiGridIntegration::Smooth_Solution(unsigned short RunTime_EqSystem, CSo Solution_Old = solver->node[iPoint]->GetResidual_Old(); for (iVar = 0; iVar < nVar; iVar++) { Solution[iVar] =(Solution_Old[iVar] + val_smooth_coeff*Solution_Sum[iVar]) - /(1.0 + val_smooth_coeff*double(nneigh)); + /(1.0 + val_smooth_coeff*su2double(nneigh)); } solver->node[iPoint]->SetSolution(Solution); } @@ -452,12 +452,12 @@ void CMultiGridIntegration::Smooth_Solution(unsigned short RunTime_EqSystem, CSo void CMultiGridIntegration::SetProlongated_Correction(CSolver *sol_fine, CGeometry *geo_fine, CConfig *config, unsigned short iMesh) { unsigned long Point_Fine; unsigned short iVar; - double *Solution_Fine, *Residual_Fine; + su2double *Solution_Fine, *Residual_Fine; const unsigned short nVar = sol_fine->GetnVar(); - double factor = config->GetDamp_Correc_Prolong(); //pow(config->GetDamp_Correc_Prolong(), iMesh+1); + su2double factor = config->GetDamp_Correc_Prolong(); //pow(config->GetDamp_Correc_Prolong(), iMesh+1); - double *Solution = new double [nVar]; + su2double *Solution = new su2double [nVar]; for (Point_Fine = 0; Point_Fine < geo_fine->GetnPointDomain(); Point_Fine++) { Residual_Fine = sol_fine->LinSysRes.GetBlock(Point_Fine); @@ -492,12 +492,12 @@ void CMultiGridIntegration::SetProlongated_Solution(unsigned short RunTime_EqSys void CMultiGridIntegration::SetForcing_Term(CSolver *sol_fine, CSolver *sol_coarse, CGeometry *geo_fine, CGeometry *geo_coarse, CConfig *config, unsigned short iMesh) { unsigned long Point_Fine, Point_Coarse, iVertex; unsigned short iMarker, iVar, iChildren; - double *Residual_Fine; + su2double *Residual_Fine; const unsigned short nVar = sol_coarse->GetnVar(); - double factor = config->GetDamp_Res_Restric(); //pow(config->GetDamp_Res_Restric(), iMesh); + su2double factor = config->GetDamp_Res_Restric(); //pow(config->GetDamp_Res_Restric(), iMesh); - double *Residual = new double[nVar]; + su2double *Residual = new su2double[nVar]; for (Point_Coarse = 0; Point_Coarse < geo_coarse->GetnPointDomain(); Point_Coarse++) { sol_coarse->node[Point_Coarse]->SetRes_TruncErrorZero(); @@ -544,11 +544,11 @@ void CMultiGridIntegration::SetResidual_Term(CGeometry *geometry, CSolver *solve void CMultiGridIntegration::SetRestricted_Residual(CSolver *sol_fine, CSolver *sol_coarse, CGeometry *geo_fine, CGeometry *geo_coarse, CConfig *config) { unsigned long iVertex, Point_Fine, Point_Coarse; unsigned short iMarker, iVar, iChildren; - double *Residual_Fine; + su2double *Residual_Fine; const unsigned short nVar = sol_coarse->GetnVar(); - double *Residual = new double[nVar]; + su2double *Residual = new su2double[nVar]; for (Point_Coarse = 0; Point_Coarse < geo_coarse->GetnPointDomain(); Point_Coarse++) { sol_coarse->node[Point_Coarse]->SetRes_TruncErrorZero(); @@ -583,14 +583,14 @@ void CMultiGridIntegration::SetRestricted_Residual(CSolver *sol_fine, CSolver *s void CMultiGridIntegration::SetRestricted_Solution(unsigned short RunTime_EqSystem, CSolver *sol_fine, CSolver *sol_coarse, CGeometry *geo_fine, CGeometry *geo_coarse, CConfig *config) { unsigned long iVertex, Point_Fine, Point_Coarse; unsigned short iMarker, iVar, iChildren, iDim; - double Area_Parent, Area_Children, *Solution_Fine, *Grid_Vel, Vector[3]; + su2double Area_Parent, Area_Children, *Solution_Fine, *Grid_Vel, Vector[3]; const unsigned short SolContainer_Position = config->GetContainerPosition(RunTime_EqSystem); const unsigned short nVar = sol_coarse->GetnVar(); const unsigned short nDim = geo_fine->GetnDim(); const bool grid_movement = config->GetGrid_Movement(); - double *Solution = new double[nVar]; + su2double *Solution = new su2double[nVar]; /*--- Compute coarse solution from fine solution ---*/ @@ -664,14 +664,14 @@ void CMultiGridIntegration::SetRestricted_Gradient(unsigned short RunTime_EqSyst CGeometry *geo_coarse, CConfig *config) { unsigned long Point_Fine, Point_Coarse; unsigned short iVar, iDim, iChildren; - double Area_Parent, Area_Children, **Gradient_fine; + su2double Area_Parent, Area_Children, **Gradient_fine; const unsigned short nDim = geo_coarse->GetnDim(); const unsigned short nVar = sol_coarse->GetnVar(); - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double [nDim]; + Gradient[iVar] = new su2double [nDim]; for (Point_Coarse = 0; Point_Coarse < geo_coarse->GetnPoint(); Point_Coarse++) { Area_Parent = geo_coarse->node[Point_Coarse]->GetVolume(); @@ -700,7 +700,7 @@ void CMultiGridIntegration::SetRestricted_Gradient(unsigned short RunTime_EqSyst void CMultiGridIntegration::NonDimensional_Parameters(CGeometry **geometry, CSolver ***solver_container, CNumerics ****numerics_container, CConfig *config, unsigned short FinestMesh, unsigned short RunTime_EqSystem, unsigned long Iteration, - double *monitor) { + su2double *monitor) { const unsigned short nDim = geometry[FinestMesh]->GetnDim(); @@ -846,7 +846,7 @@ CSingleGridIntegration::~CSingleGridIntegration(void) { } void CSingleGridIntegration::SingleGrid_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { unsigned short iMesh; - double monitor = 0.0; + su2double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); @@ -902,11 +902,11 @@ void CSingleGridIntegration::SingleGrid_Iteration(CGeometry ***geometry, CSolver void CSingleGridIntegration::SetRestricted_Solution(unsigned short RunTime_EqSystem, CSolver *sol_fine, CSolver *sol_coarse, CGeometry *geo_fine, CGeometry *geo_coarse, CConfig *config) { unsigned long Point_Fine, Point_Coarse; unsigned short iVar, iChildren; - double Area_Parent, Area_Children, *Solution_Fine, *Solution; + su2double Area_Parent, Area_Children, *Solution_Fine, *Solution; unsigned short nVar = sol_coarse->GetnVar(); - Solution = new double[nVar]; + Solution = new su2double[nVar]; /*--- Compute coarse solution from fine solution ---*/ @@ -940,7 +940,7 @@ void CSingleGridIntegration::SetRestricted_EddyVisc(unsigned short RunTime_EqSys unsigned long iVertex, Point_Fine, Point_Coarse; unsigned short iMarker, iChildren; - double Area_Parent, Area_Children, EddyVisc_Fine, EddyVisc; + su2double Area_Parent, Area_Children, EddyVisc_Fine, EddyVisc; /*--- Compute coarse Eddy Viscosity from fine solution ---*/ @@ -992,7 +992,7 @@ CStructuralIntegration::~CStructuralIntegration(void) { } void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { unsigned short iMesh; - double monitor = 0.0; + su2double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); @@ -1028,7 +1028,7 @@ void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { - double monitor = 0.0; + su2double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 0c9130f55ec..e3cd4a9c085 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -35,7 +35,7 @@ void MeanFlowIteration(COutput *output, CIntegration ***integration_container, C CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; bool time_spectral = (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL); @@ -226,7 +226,7 @@ void AdjMeanFlowIteration(COutput *output, CIntegration ***integration_container CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **volume_grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; bool time_spectral = (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL); @@ -245,7 +245,7 @@ void AdjMeanFlowIteration(COutput *output, CIntegration ***integration_container for (iZone = 0; iZone < nZone; iZone++) { if (((grid_movement && ExtIter == 0) || config_container[ZONE_0]->GetUnsteady_Simulation()) && !time_spectral) { - int Direct_Iter = int(config_container[iZone]->GetUnst_AdjointIter()) - int(ExtIter) - 1; + int Direct_Iter = SU2_TYPE::Int(config_container[iZone]->GetUnst_AdjointIter()) - SU2_TYPE::Int(ExtIter) - 1; if (rank == MASTER_NODE && iZone == ZONE_0 && config_container[iZone]->GetUnsteady_Simulation()) cout << endl << " Loading flow solution from direct iteration " << Direct_Iter << "." << endl; solver_container[iZone][MESH_0][FLOW_SOL]->LoadRestart(geometry_container[iZone], solver_container[iZone], config_container[iZone], Direct_Iter); @@ -554,7 +554,7 @@ void WaveIteration(COutput *output, CIntegration ***integration_container, CGeom CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); @@ -601,7 +601,7 @@ void HeatIteration(COutput *output, CIntegration ***integration_container, CGeom CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); @@ -672,7 +672,7 @@ void PoissonIteration(COutput *output, CIntegration ***integration_container, CG void FEAIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); @@ -717,8 +717,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; - double loadIncrement; + su2double Physical_dt, Physical_t; + su2double loadIncrement; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); @@ -963,7 +963,7 @@ void FluidStructureIteration(COutput *output, CIntegration ***integration_contai CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned long iFluidIt, unsigned long nFluidIt) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh; unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); @@ -1208,11 +1208,11 @@ void SetWind_GustField(CConfig *config_container, CGeometry **geometry_container /*--- Gust Parameters from config ---*/ unsigned short Gust_Type = config_container->GetGust_Type(); - double xbegin = config_container->GetGust_Begin_Loc(); // Location at which the gust begins. - double L = config_container->GetGust_WaveLength(); // Gust size - double tbegin = config_container->GetGust_Begin_Time(); // Physical time at which the gust begins. - double gust_amp = config_container->GetGust_Ampl(); // Gust amplitude - double n = config_container->GetGust_Periods(); // Number of gust periods + su2double xbegin = config_container->GetGust_Begin_Loc(); // Location at which the gust begins. + su2double L = config_container->GetGust_WaveLength(); // Gust size + su2double tbegin = config_container->GetGust_Begin_Time(); // Physical time at which the gust begins. + su2double gust_amp = config_container->GetGust_Ampl(); // Gust amplitude + su2double n = config_container->GetGust_Periods(); // Number of gust periods unsigned short GustDir = config_container->GetGust_Dir(); // Gust direction /*--- Variables needed to compute the gust ---*/ @@ -1221,26 +1221,26 @@ void SetWind_GustField(CConfig *config_container, CGeometry **geometry_container unsigned long iPoint; unsigned short iMGlevel, nMGlevel = config_container->GetnMGLevels(); - double x, y, x_gust, dgust_dx, dgust_dy, dgust_dt; - double *Gust, *GridVel; + su2double x, y, x_gust, dgust_dx, dgust_dy, dgust_dt; + su2double *Gust, *GridVel; unsigned short Kind_Grid_Movement = config_container->GetKind_GridMovement(ZONE_0); - double NewGridVel[3] = {0.0,0.0,0.0}; - double GustDer[3] = {0.0,0.0,0.0}; + su2double NewGridVel[3] = {0.0,0.0,0.0}; + su2double GustDer[3] = {0.0,0.0,0.0}; - double Physical_dt = config_container->GetDelta_UnstTime(); + su2double Physical_dt = config_container->GetDelta_UnstTime(); unsigned long ExtIter = config_container->GetExtIter(); - double Physical_t = ExtIter*Physical_dt; + su2double Physical_t = ExtIter*Physical_dt; - double Uinf = solver_container[MESH_0][FLOW_SOL]->GetVelocity_Inf(0); // Assumption gust moves at infinity velocity + su2double Uinf = solver_container[MESH_0][FLOW_SOL]->GetVelocity_Inf(0); // Assumption gust moves at infinity velocity - Gust = new double [nDim]; + Gust = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) { Gust[iDim] = 0.0; } // Vortex variables unsigned long nVortex = 0; - std::vector x0, y0, vort_strenth, r_core; //vortex is positive in clockwise direction. + std::vector x0, y0, vort_strenth, r_core; //vortex is positive in clockwise direction. if (Gust_Type == VORTEX) { InitializeVortexDistribution(nVortex, x0, y0, vort_strenth, r_core); } @@ -1332,9 +1332,9 @@ void SetWind_GustField(CConfig *config_container, CGeometry **geometry_container /*--- Use vortex distribution ---*/ // Algebraic vortex equation. for (unsigned long i=0; i& x0, vector& y0, vector& vort_strength, vector& r_core) { +void InitializeVortexDistribution(unsigned long &nVortex, vector& x0, vector& y0, vector& vort_strength, vector& r_core) { /*--- Read in Vortex Distribution ---*/ std::string line; std::ifstream file; - double x_temp, y_temp, vort_strength_temp, r_core_temp; + su2double x_temp, y_temp, vort_strength_temp, r_core_temp; file.open("vortex_distribution.txt"); /*--- In case there is no vortex file ---*/ if (file.fail()) { @@ -1693,8 +1693,8 @@ void SetGrid_Movement(CGeometry **geometry_container, CSurfaceMovement *surface_ /*--- Update the coordinates of the grid using the linear elasticity solution. ---*/ for (iPoint = 0; iPoint < geometry_container[MESH_0]->GetnPoint(); iPoint++) { - double *U_time_nM1 = solver_container[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_time_n1(); - double *U_time_n = solver_container[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_time_n(); + su2double *U_time_nM1 = solver_container[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_time_n1(); + su2double *U_time_n = solver_container[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_time_n(); for (iDim = 0; iDim < geometry_container[MESH_0]->GetnDim(); iDim++) geometry_container[MESH_0]->node[iPoint]->AddCoord(iDim, U_time_n[iDim] - U_time_nM1[iDim]); @@ -1736,20 +1736,20 @@ void SetTimeSpectral(CGeometry ***geometry_container, CSolver ****solver_contain } /*--- Retrieve values from the config file ---*/ - double *U = new double[nVar]; - double *U_old = new double[nVar]; - double *Psi = new double[nVar]; - double *Psi_old = new double[nVar]; - double *Source = new double[nVar]; - double deltaU, deltaPsi; + su2double *U = new su2double[nVar]; + su2double *U_old = new su2double[nVar]; + su2double *Psi = new su2double[nVar]; + su2double *Psi_old = new su2double[nVar]; + su2double *Source = new su2double[nVar]; + su2double deltaU, deltaPsi; /*--- Compute period of oscillation ---*/ - double period = config_container[ZONE_0]->GetTimeSpectral_Period(); + su2double period = config_container[ZONE_0]->GetTimeSpectral_Period(); /*--- allocate dynamic memory for D ---*/ - double **D = new double*[nZone]; + su2double **D = new su2double*[nZone]; for (kZone = 0; kZone < nZone; kZone++) { - D[kZone] = new double[nZone]; + D[kZone] = new su2double[nZone]; } /*--- Build the time-spectral operator matrix ---*/ @@ -1864,8 +1864,8 @@ void SetTimeSpectral(CGeometry ***geometry_container, CSolver ****solver_contain /*--- Extra variables needed if we have a turbulence model. ---*/ unsigned short nVar_Turb = solver_container[ZONE_0][MESH_0][TURB_SOL]->GetnVar(); - double *U_Turb = new double[nVar_Turb]; - double *Source_Turb = new double[nVar_Turb]; + su2double *U_Turb = new su2double[nVar_Turb]; + su2double *Source_Turb = new su2double[nVar_Turb]; /*--- Loop over only the finest mesh level (turbulence is always solved on the original grid only). ---*/ @@ -1905,22 +1905,22 @@ void SetTimeSpectral(CGeometry ***geometry_container, CSolver ****solver_contain ofstream mean_TS_Flow_file; /*--- MPI Send/Recv buffers ---*/ - double *sbuf_force = NULL, *rbuf_force = NULL; + su2double *sbuf_force = NULL, *rbuf_force = NULL; /*--- Other variables ---*/ unsigned short nVar_Force = 8; unsigned long current_iter = config_container[ZONE_0]->GetExtIter(); /*--- Allocate memory for send buffer ---*/ - sbuf_force = new double[nVar_Force]; + sbuf_force = new su2double[nVar_Force]; - double *averages = new double[nVar_Force]; + su2double *averages = new su2double[nVar_Force]; for (iVar = 0; iVar < nVar_Force; iVar++) averages[iVar] = 0; /*--- Allocate memory for receive buffer ---*/ if (rank == MASTER_NODE) { - rbuf_force = new double[nVar_Force]; + rbuf_force = new su2double[nVar_Force]; TS_Flow_file.precision(15); TS_Flow_file.open("TS_force_coefficients.csv", ios::out); @@ -1965,7 +1965,7 @@ void SetTimeSpectral(CGeometry ***geometry_container, CSolver ****solver_contain /*--- Increment the total contributions from each zone, dividing by nZone as you go ---*/ for (iVar = 0; iVar < nVar_Force; iVar++) { - averages[iVar] += (1.0/double(nZone))*rbuf_force[iVar]; + averages[iVar] += (1.0/su2double(nZone))*rbuf_force[iVar]; } } } @@ -1992,7 +1992,7 @@ void SetTimeSpectral(CGeometry ***geometry_container, CSolver ****solver_contain } -void ComputeTimeSpectral_Operator(double **D, double period, unsigned short nZone) { +void ComputeTimeSpectral_Operator(su2double **D, su2double period, unsigned short nZone) { unsigned short kZone, jZone; @@ -2032,38 +2032,38 @@ void SetTimeSpectral_Velocities(CGeometry ***geometry_container, unsigned short iZone, jDegree, iDim, iMGlevel; unsigned short nDim = geometry_container[ZONE_0][MESH_0]->GetnDim(); - double angular_interval = 2.0*PI_NUMBER/(double)(nZone); - double *Coord; + su2double angular_interval = 2.0*PI_NUMBER/(su2double)(nZone); + su2double *Coord; unsigned long iPoint; /*--- Compute period of oscillation & compute time interval using nTimeInstances ---*/ - double period = config_container[ZONE_0]->GetTimeSpectral_Period(); - double deltaT = period/(double)(config_container[ZONE_0]->GetnTimeInstances()); + su2double period = config_container[ZONE_0]->GetTimeSpectral_Period(); + su2double deltaT = period/(su2double)(config_container[ZONE_0]->GetnTimeInstances()); /*--- allocate dynamic memory for angular positions (these are the abscissas) ---*/ - double *angular_positions = new double [nZone]; + su2double *angular_positions = new su2double [nZone]; for (iZone = 0; iZone < nZone; iZone++) { angular_positions[iZone] = iZone*angular_interval; } /*--- find the highest-degree trigonometric polynomial allowed by the Nyquist criterion---*/ - double high_degree = (nZone-1)/2.0; + su2double high_degree = (nZone-1)/2.0; int highest_degree = (int)(high_degree); /*--- allocate dynamic memory for a given point's coordinates ---*/ - double **coords = new double *[nZone]; + su2double **coords = new su2double *[nZone]; for (iZone = 0; iZone < nZone; iZone++) { - coords[iZone] = new double [nDim]; + coords[iZone] = new su2double [nDim]; } /*--- allocate dynamic memory for vectors of Fourier coefficients ---*/ - double *a_coeffs = new double [highest_degree+1]; - double *b_coeffs = new double [highest_degree+1]; + su2double *a_coeffs = new su2double [highest_degree+1]; + su2double *b_coeffs = new su2double [highest_degree+1]; /*--- allocate dynamic memory for the interpolated positions and velocities ---*/ - double *fitted_coords = new double [nZone]; - double *fitted_velocities = new double [nZone]; + su2double *fitted_coords = new su2double [nZone]; + su2double *fitted_velocities = new su2double [nZone]; /*--- Loop over all grid levels ---*/ for (iMGlevel = 0; iMGlevel <= config_container[ZONE_0]->GetnMGLevels(); iMGlevel++) { @@ -2092,8 +2092,8 @@ void SetTimeSpectral_Velocities(CGeometry ***geometry_container, a_coeffs[jDegree] = 0; b_coeffs[jDegree] = 0; for (iZone = 0; iZone < nZone; iZone++) { - a_coeffs[jDegree] = a_coeffs[jDegree] + (2.0/(double)nZone)*cos(jDegree*angular_positions[iZone])*coords[iZone][iDim]; - b_coeffs[jDegree] = b_coeffs[jDegree] + (2.0/(double)nZone)*sin(jDegree*angular_positions[iZone])*coords[iZone][iDim]; + a_coeffs[jDegree] = a_coeffs[jDegree] + (2.0/(su2double)nZone)*cos(jDegree*angular_positions[iZone])*coords[iZone][iDim]; + b_coeffs[jDegree] = b_coeffs[jDegree] + (2.0/(su2double)nZone)*sin(jDegree*angular_positions[iZone])*coords[iZone][iDim]; } } diff --git a/SU2_CFD/src/numerics_adjoint_levelset.cpp b/SU2_CFD/src/numerics_adjoint_levelset.cpp index 4f0df6aff88..4819f6918c1 100644 --- a/SU2_CFD/src/numerics_adjoint_levelset.cpp +++ b/SU2_CFD/src/numerics_adjoint_levelset.cpp @@ -33,8 +33,8 @@ CUpwLin_AdjLevelSet::CUpwLin_AdjLevelSet(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_AdjLevelSet() == EULER_IMPLICIT); - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } @@ -45,11 +45,11 @@ CUpwLin_AdjLevelSet::~CUpwLin_AdjLevelSet(void) { } -void CUpwLin_AdjLevelSet::ComputeResidual (double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, - double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CUpwLin_AdjLevelSet::ComputeResidual (su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim; - double proj_conv_flux_i = 0.0, proj_conv_flux_j = 0.0, proj_conv_flux_ij = 0.0; + su2double proj_conv_flux_i = 0.0, proj_conv_flux_j = 0.0, proj_conv_flux_ij = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = U_i[iDim+1]/DensityInc_i; @@ -76,4 +76,4 @@ CSourcePieceWise_AdjLevelSet::CSourcePieceWise_AdjLevelSet(unsigned short val_nD CSourcePieceWise_AdjLevelSet::~CSourcePieceWise_AdjLevelSet(void) { } -void CSourcePieceWise_AdjLevelSet::ComputeResidual(double *val_residual, CConfig *config) {} +void CSourcePieceWise_AdjLevelSet::ComputeResidual(su2double *val_residual, CConfig *config) {} diff --git a/SU2_CFD/src/numerics_adjoint_mean.cpp b/SU2_CFD/src/numerics_adjoint_mean.cpp index 1185eb5f982..daf852578e7 100644 --- a/SU2_CFD/src/numerics_adjoint_mean.cpp +++ b/SU2_CFD/src/numerics_adjoint_mean.cpp @@ -38,22 +38,22 @@ CUpwRoe_AdjFlow::CUpwRoe_AdjFlow(unsigned short val_nDim, unsigned short val_nVa Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Residual_Roe = new double [nVar]; - RoeVelocity = new double [nDim]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - Lambda = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; - ProjFlux_i = new double*[nVar]; - ProjFlux_j = new double*[nVar]; - Proj_ModJac_Tensor = new double*[nVar]; + Residual_Roe = new su2double [nVar]; + RoeVelocity = new su2double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + Lambda = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; + ProjFlux_i = new su2double*[nVar]; + ProjFlux_j = new su2double*[nVar]; + Proj_ModJac_Tensor = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; - ProjFlux_i[iVar] = new double[nVar]; - ProjFlux_j[iVar] = new double[nVar]; - Proj_ModJac_Tensor[iVar] = new double[nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; + ProjFlux_i[iVar] = new su2double[nVar]; + ProjFlux_j[iVar] = new su2double[nVar]; + Proj_ModJac_Tensor[iVar] = new su2double[nVar]; } } @@ -80,8 +80,8 @@ CUpwRoe_AdjFlow::~CUpwRoe_AdjFlow(void) { } -void CUpwRoe_AdjFlow::ComputeResidual (double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, - double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CUpwRoe_AdjFlow::ComputeResidual (su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Compute the area ---*/ @@ -189,7 +189,7 @@ void CUpwRoe_AdjFlow::ComputeResidual (double *val_residual_i, double *val_resid /*--- Contribution to velocity projection due to grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; Q -= ProjGridVel; @@ -240,7 +240,7 @@ void CUpwRoe_AdjFlow::ComputeResidual (double *val_residual_i, double *val_resid /*--- Flux contribution due to grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -319,7 +319,7 @@ void CUpwRoe_AdjFlow::ComputeResidual (double *val_residual_i, double *val_resid /*--- Jacobian contribution due to grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -340,21 +340,21 @@ CUpwRoeArtComp_AdjFlow::CUpwRoeArtComp_AdjFlow(unsigned short val_nDim, unsigned implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); - MeanVelocity = new double [nDim]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - Lambda = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; - Proj_Jac_Tensor_i = new double*[nVar]; - Proj_Jac_Tensor_j = new double*[nVar]; - Proj_ModJac_Tensor = new double*[nVar]; + MeanVelocity = new su2double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + Lambda = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; + Proj_Jac_Tensor_i = new su2double*[nVar]; + Proj_Jac_Tensor_j = new su2double*[nVar]; + Proj_ModJac_Tensor = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; - Proj_Jac_Tensor_i[iVar] = new double[nVar]; - Proj_Jac_Tensor_j[iVar] = new double[nVar]; - Proj_ModJac_Tensor[iVar] = new double[nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; + Proj_Jac_Tensor_i[iVar] = new su2double[nVar]; + Proj_Jac_Tensor_j[iVar] = new su2double[nVar]; + Proj_ModJac_Tensor[iVar] = new su2double[nVar]; } } @@ -380,8 +380,8 @@ CUpwRoeArtComp_AdjFlow::~CUpwRoeArtComp_AdjFlow(void) { } -void CUpwRoeArtComp_AdjFlow::ComputeResidual (double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, - double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CUpwRoeArtComp_AdjFlow::ComputeResidual (su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Compute face area ---*/ @@ -498,10 +498,10 @@ CCentJST_AdjFlow::CCentJST_AdjFlow(unsigned short val_nDim, unsigned short val_n grid_movement = config->GetGrid_Movement(); - Diff_Psi = new double [nVar]; Diff_Lapl = new double [nVar]; - Und_Lapl_i = new double [nVar]; Und_Lapl_j = new double [nVar]; - Velocity_i = new double [nDim]; Velocity_j = new double [nDim]; - MeanPhi = new double [nDim]; + Diff_Psi = new su2double [nVar]; Diff_Lapl = new su2double [nVar]; + Und_Lapl_i = new su2double [nVar]; Und_Lapl_j = new su2double [nVar]; + Velocity_i = new su2double [nDim]; Velocity_j = new su2double [nDim]; + MeanPhi = new su2double [nDim]; Param_p = 0.3; Param_Kappa_2 = config->GetKappa_2nd_AdjFlow(); @@ -518,8 +518,8 @@ CCentJST_AdjFlow::~CCentJST_AdjFlow(void) { delete [] MeanPhi; } -void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, +void CCentJST_AdjFlow::ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Mean Values ---*/ @@ -552,7 +552,7 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Flux contributions due to grid movement at point i ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; val_resconv_i[0] -= ProjGridVel*MeanPsiRho; @@ -587,7 +587,7 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Jacobian contributions due to grid movement at point i ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -619,7 +619,7 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Flux contributions due to grid motion at point j ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; val_resconv_j[0] += ProjGridVel*MeanPsiRho; @@ -654,7 +654,7 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Jacobian contributions due to grid motion at point j ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -674,7 +674,7 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Adjustment to projected velocity due to grid motion ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; } @@ -692,7 +692,7 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - double sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); + su2double sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); sc4 = sc2*sc2/4.0; Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; Epsilon_4 = max(0.0, Param_Kappa_4-Epsilon_2)*sc4; @@ -704,10 +704,10 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi val_resvisc_i[iVar] = -Residual; val_resvisc_j[iVar] = Residual; if (implicit) { - val_Jacobian_ii[iVar][iVar] -= Epsilon_2 + double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; - val_Jacobian_ij[iVar][iVar] += Epsilon_2 + double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; - val_Jacobian_ji[iVar][iVar] += Epsilon_2 + double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; - val_Jacobian_jj[iVar][iVar] -= Epsilon_2 + double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_ii[iVar][iVar] -= Epsilon_2 + su2double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_ij[iVar][iVar] += Epsilon_2 + su2double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_ji[iVar][iVar] += Epsilon_2 + su2double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_jj[iVar][iVar] -= Epsilon_2 + su2double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; } } @@ -715,14 +715,14 @@ void CCentJST_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi CCentJSTArtComp_AdjFlow::CCentJSTArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { - Diff_Psi = new double [nVar]; Diff_Lapl = new double [nVar]; - Und_Lapl_i = new double [nVar]; Und_Lapl_j = new double [nVar]; - Velocity_i = new double [nDim]; Velocity_j = new double [nDim]; - Proj_Jac_Tensor_i = new double*[nVar]; - Proj_Jac_Tensor_j = new double*[nVar]; + Diff_Psi = new su2double [nVar]; Diff_Lapl = new su2double [nVar]; + Und_Lapl_i = new su2double [nVar]; Und_Lapl_j = new su2double [nVar]; + Velocity_i = new su2double [nDim]; Velocity_j = new su2double [nDim]; + Proj_Jac_Tensor_i = new su2double*[nVar]; + Proj_Jac_Tensor_j = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Proj_Jac_Tensor_i[iVar] = new double[nVar]; - Proj_Jac_Tensor_j[iVar] = new double[nVar]; + Proj_Jac_Tensor_i[iVar] = new su2double[nVar]; + Proj_Jac_Tensor_j[iVar] = new su2double[nVar]; } Param_p = 0.3; @@ -747,8 +747,8 @@ CCentJSTArtComp_AdjFlow::~CCentJSTArtComp_AdjFlow(void) { } -void CCentJSTArtComp_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, +void CCentJSTArtComp_AdjFlow::ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Set the variables at point i ---*/ @@ -809,7 +809,7 @@ void CCentJSTArtComp_AdjFlow::ComputeResidual (double *val_resconv_i, double *va Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); sc4 = sc2*sc2/4.0; Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; @@ -822,10 +822,10 @@ void CCentJSTArtComp_AdjFlow::ComputeResidual (double *val_resconv_i, double *va val_resvisc_j[iVar] = Residual; if (implicit) { - val_Jacobian_ii[iVar][iVar] -= Epsilon_2 + Epsilon_4*double(Neighbor_i+1)*StretchingFactor*MeanLambda; - val_Jacobian_ij[iVar][iVar] += Epsilon_2 + Epsilon_4*double(Neighbor_j+1)*StretchingFactor*MeanLambda; - val_Jacobian_ji[iVar][iVar] += Epsilon_2 + Epsilon_4*double(Neighbor_i+1)*StretchingFactor*MeanLambda; - val_Jacobian_jj[iVar][iVar] -= Epsilon_2 + Epsilon_4*double(Neighbor_j+1)*StretchingFactor*MeanLambda; + val_Jacobian_ii[iVar][iVar] -= Epsilon_2 + Epsilon_4*su2double(Neighbor_i+1)*StretchingFactor*MeanLambda; + val_Jacobian_ij[iVar][iVar] += Epsilon_2 + Epsilon_4*su2double(Neighbor_j+1)*StretchingFactor*MeanLambda; + val_Jacobian_ji[iVar][iVar] += Epsilon_2 + Epsilon_4*su2double(Neighbor_i+1)*StretchingFactor*MeanLambda; + val_Jacobian_jj[iVar][iVar] -= Epsilon_2 + Epsilon_4*su2double(Neighbor_j+1)*StretchingFactor*MeanLambda; } } @@ -836,8 +836,8 @@ CCentLax_AdjFlow::CCentLax_AdjFlow(unsigned short val_nDim, unsigned short val_n Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Diff_Psi = new double [nVar]; MeanPhi = new double [nDim]; - Velocity_i = new double [nDim]; Velocity_j = new double [nDim]; + Diff_Psi = new su2double [nVar]; MeanPhi = new su2double [nDim]; + Velocity_i = new su2double [nDim]; Velocity_j = new su2double [nDim]; implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -855,8 +855,8 @@ CCentLax_AdjFlow::~CCentLax_AdjFlow(void) { } -void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, +void CCentLax_AdjFlow::ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Mean value of the adjoint variables ---*/ @@ -887,7 +887,7 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Flux contributions due to grid motion at point i ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; val_resconv_i[0] -= ProjGridVel*MeanPsiRho; @@ -920,7 +920,7 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Jacobian contributions due to grid motion at point i ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -950,7 +950,7 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Flux contributions due to grid movement at point j ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; val_resconv_j[0] += ProjGridVel*MeanPsiRho; @@ -983,7 +983,7 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Jacobian contributions due to grid movement at point j ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -999,7 +999,7 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Adjustment to projected velocity due to grid motion ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; ProjVelocity_i -= ProjGridVel; @@ -1016,8 +1016,8 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_0 = Param_Kappa_0*sc2*double(nDim)/3.0; + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_0 = Param_Kappa_0*sc2*su2double(nDim)/3.0; /*--- Artifical dissipation evaluation ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -1040,13 +1040,13 @@ void CCentLax_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvi CCentLaxArtComp_AdjFlow::CCentLaxArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { - Diff_Psi = new double [nVar]; MeanPhi = new double [nDim]; - Velocity_i = new double [nDim]; Velocity_j = new double [nDim]; - Proj_Jac_Tensor_i = new double*[nVar]; - Proj_Jac_Tensor_j = new double*[nVar]; + Diff_Psi = new su2double [nVar]; MeanPhi = new su2double [nDim]; + Velocity_i = new su2double [nDim]; Velocity_j = new su2double [nDim]; + Proj_Jac_Tensor_i = new su2double*[nVar]; + Proj_Jac_Tensor_j = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Proj_Jac_Tensor_i[iVar] = new double[nVar]; - Proj_Jac_Tensor_j[iVar] = new double[nVar]; + Proj_Jac_Tensor_i[iVar] = new su2double[nVar]; + Proj_Jac_Tensor_j[iVar] = new su2double[nVar]; } implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -1069,8 +1069,8 @@ CCentLaxArtComp_AdjFlow::~CCentLaxArtComp_AdjFlow(void) { } -void CCentLaxArtComp_AdjFlow::ComputeResidual (double *val_resconv_i, double *val_resvisc_i, double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, +void CCentLaxArtComp_AdjFlow::ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Set the variables at point i ---*/ @@ -1129,8 +1129,8 @@ void CCentLaxArtComp_AdjFlow::ComputeResidual (double *val_resconv_i, double *va Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_0 = Param_Kappa_0*sc2*double(nDim)/3.0; + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_0 = Param_Kappa_0*sc2*su2double(nDim)/3.0; /*--- Artifical dissipation evaluation ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -1159,14 +1159,14 @@ CAvgGrad_AdjFlow::CAvgGrad_AdjFlow(unsigned short val_nDim, unsigned short val_n Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - Mean_Velocity = new double [nDim]; - Mean_GradPhi = new double* [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + Mean_Velocity = new su2double [nDim]; + Mean_GradPhi = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Mean_GradPhi[iDim] = new double [nDim]; - Mean_GradPsiE = new double [nDim]; - Edge_Vector = new double [nDim]; + Mean_GradPhi[iDim] = new su2double [nDim]; + Mean_GradPsiE = new su2double [nDim]; + Edge_Vector = new su2double [nDim]; } @@ -1180,15 +1180,15 @@ CAvgGrad_AdjFlow::~CAvgGrad_AdjFlow(void) { delete [] Mean_GradPhi[iDim]; } -void CAvgGrad_AdjFlow::ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CAvgGrad_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim, jDim; - double sq_vel_i, Energy_i, ViscDens_i, XiDens_i, + su2double sq_vel_i, Energy_i, ViscDens_i, XiDens_i, sq_vel_j, Energy_j, ViscDens_j, XiDens_j, dist_ij_2, dPhiE_dn; - double Prandtl_Lam = config->GetPrandtl_Lam(); - double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); /*--- States in point i ---*/ @@ -1270,21 +1270,21 @@ CAvgGradCorrected_AdjFlow::CAvgGradCorrected_AdjFlow(unsigned short val_nDim, un Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - Mean_Velocity = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + Mean_Velocity = new su2double [nDim]; - Mean_GradPsiVar = new double* [nVar]; + Mean_GradPsiVar = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) - Mean_GradPsiVar[iVar] = new double [nDim]; + Mean_GradPsiVar[iVar] = new su2double [nDim]; - Edge_Vector = new double [nDim]; - Proj_Mean_GradPsiVar_Edge = new double [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradPsiVar_Edge = new su2double [nVar]; - Mean_GradPhi = new double* [nDim]; + Mean_GradPhi = new su2double* [nDim]; for (unsigned short iDim = 0; iDim < nDim; iDim++) - Mean_GradPhi[iDim] = new double [nDim]; - Mean_GradPsiE = new double [nDim]; + Mean_GradPhi[iDim] = new su2double [nDim]; + Mean_GradPsiE = new su2double [nDim]; } @@ -1307,15 +1307,15 @@ CAvgGradCorrected_AdjFlow::~CAvgGradCorrected_AdjFlow(void) { } -void CAvgGradCorrected_AdjFlow::ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CAvgGradCorrected_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { unsigned short iVar, iDim, jDim; - double Density_i, sq_vel_i, Energy_i, SoundSpeed_i, Pressure_i, ViscDens_i, XiDens_i, + su2double Density_i, sq_vel_i, Energy_i, SoundSpeed_i, Pressure_i, ViscDens_i, XiDens_i, Density_j, sq_vel_j, Energy_j, SoundSpeed_j, Pressure_j, ViscDens_j, XiDens_j, dist_ij_2, dPhiE_dn; - double Prandtl_Lam = config->GetPrandtl_Lam(); - double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); /*--- States in point i ---*/ @@ -1410,14 +1410,14 @@ CAvgGradCorrectedArtComp_AdjFlow::CAvgGradCorrectedArtComp_AdjFlow(unsigned shor implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - PsiVar_i = new double [nVar]; - PsiVar_j = new double [nVar]; - Proj_Mean_GradPsiVar_Edge = new double [nVar]; - Edge_Vector = new double [nDim]; + PsiVar_i = new su2double [nVar]; + PsiVar_j = new su2double [nVar]; + Proj_Mean_GradPsiVar_Edge = new su2double [nVar]; + Edge_Vector = new su2double [nDim]; - Mean_GradPsiVar = new double* [nVar]; + Mean_GradPsiVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradPsiVar[iVar] = new double [nDim]; + Mean_GradPsiVar[iVar] = new su2double [nDim]; } @@ -1434,7 +1434,7 @@ CAvgGradCorrectedArtComp_AdjFlow::~CAvgGradCorrectedArtComp_AdjFlow(void) { } -void CAvgGradCorrectedArtComp_AdjFlow::ComputeResidual(double *val_residual_i, double *val_residual_j, double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CAvgGradCorrectedArtComp_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -1527,11 +1527,11 @@ CAvgGradArtComp_AdjFlow::CAvgGradArtComp_AdjFlow(unsigned short val_nDim, unsign implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /*--- Incompressible flow, primitive variables nDim+1, (P, vx, vy, vz) ---*/ - Mean_GradPsiVar = new double* [nVar]; + Mean_GradPsiVar = new su2double* [nVar]; /*--- Incompressible flow, gradient primitive variables nDim+1, (P, vx, vy, vz) ---*/ for (iVar = 0; iVar < nVar; iVar++) - Mean_GradPsiVar[iVar] = new double [nDim]; + Mean_GradPsiVar[iVar] = new su2double [nDim]; } @@ -1543,9 +1543,9 @@ CAvgGradArtComp_AdjFlow::~CAvgGradArtComp_AdjFlow(void) { } -void CAvgGradArtComp_AdjFlow::ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CAvgGradArtComp_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -1620,26 +1620,26 @@ CSourceViscous_AdjFlow::CSourceViscous_AdjFlow(unsigned short val_nDim, unsigned Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity = new double [nVar]; - GradDensity = new double [nDim]; - GradInvDensity = new double [nDim]; - dPoDensity2 = new double [nDim]; - alpha = new double [nDim]; - beta = new double [nDim]; - Sigma_5_vec = new double [nDim]; + Velocity = new su2double [nVar]; + GradDensity = new su2double [nDim]; + GradInvDensity = new su2double [nDim]; + dPoDensity2 = new su2double [nDim]; + alpha = new su2double [nDim]; + beta = new su2double [nDim]; + Sigma_5_vec = new su2double [nDim]; - GradVel_o_Rho = new double* [nDim]; - sigma = new double* [nDim]; - Sigma_phi = new double* [nDim]; - Sigma_5_Tensor = new double* [nDim]; - Sigma = new double* [nDim]; + GradVel_o_Rho = new su2double* [nDim]; + sigma = new su2double* [nDim]; + Sigma_phi = new su2double* [nDim]; + Sigma_5_Tensor = new su2double* [nDim]; + Sigma = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) { - GradVel_o_Rho[iDim] = new double [nDim]; - sigma[iDim] = new double [nDim]; - Sigma_phi[iDim] = new double [nDim]; - Sigma_5_Tensor[iDim] = new double [nDim]; - Sigma[iDim] = new double [nDim]; + GradVel_o_Rho[iDim] = new su2double [nDim]; + sigma[iDim] = new su2double [nDim]; + Sigma_phi[iDim] = new su2double [nDim]; + Sigma_5_Tensor[iDim] = new su2double [nDim]; + Sigma[iDim] = new su2double [nDim]; } } @@ -1671,26 +1671,26 @@ CSourceViscous_AdjFlow::~CSourceViscous_AdjFlow(void) { } -void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *config) { +void CSourceViscous_AdjFlow::ComputeResidual (su2double *val_residual, CConfig *config) { unsigned short iDim, jDim; -// double Temperature = V_i[0]; - double Pressure = V_i[nDim+1]; - double Density = V_i[nDim+2]; -// double Enthalpy = V_i[nDim+3]; - double Laminar_Viscosity = V_i[nDim+5]; - double Eddy_Viscosity = V_i[nDim+6]; - -// double Energy = Enthalpy - Pressure/Density; - double invDensity = 1.0/Density; - double invDensitysq = invDensity*invDensity; - double invDensitycube = invDensitysq*invDensity; - double Prandtl_Lam = config->GetPrandtl_Lam(); - double Prandtl_Turb = config->GetPrandtl_Turb(); - double mu_tot_1 = Laminar_Viscosity + Eddy_Viscosity; - double mu_tot_2 = Laminar_Viscosity/Prandtl_Lam + Eddy_Viscosity/Prandtl_Turb; -// double Gas_Constant = config->GetGas_ConstantND(); +// su2double Temperature = V_i[0]; + su2double Pressure = V_i[nDim+1]; + su2double Density = V_i[nDim+2]; +// su2double Enthalpy = V_i[nDim+3]; + su2double Laminar_Viscosity = V_i[nDim+5]; + su2double Eddy_Viscosity = V_i[nDim+6]; + +// su2double Energy = Enthalpy - Pressure/Density; + su2double invDensity = 1.0/Density; + su2double invDensitysq = invDensity*invDensity; + su2double invDensitycube = invDensitysq*invDensity; + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double mu_tot_1 = Laminar_Viscosity + Eddy_Viscosity; + su2double mu_tot_2 = Laminar_Viscosity/Prandtl_Lam + Eddy_Viscosity/Prandtl_Turb; +// su2double Gas_Constant = config->GetGas_ConstantND(); /*--- Required gradients of the flow variables, point j ---*/ @@ -1718,7 +1718,7 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con /*--- Definition of tensors and derivatives of velocity over density ---*/ - double div_vel = 0.0, div_phi = 0.0, vel_gradpsi5 = 0.0; + su2double div_vel = 0.0, div_phi = 0.0, vel_gradpsi5 = 0.0; for (iDim = 0; iDim < nDim; iDim++) { div_vel += PrimVar_Grad_i[iDim+1][iDim]; div_phi += PsiVar_Grad_i[iDim+1][iDim]; @@ -1745,7 +1745,7 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con /*--- Vector-Tensors products ---*/ - double gradT_gradpsi5 = 0.0, sigma_gradpsi = 0.0, vel_sigma_gradpsi5 = 0.0; + su2double gradT_gradpsi5 = 0.0, sigma_gradpsi = 0.0, vel_sigma_gradpsi5 = 0.0; for (iDim = 0; iDim < nDim; iDim++) { gradT_gradpsi5 += PrimVar_Grad_i[0][iDim]*PsiVar_Grad_i[nVar-1][iDim]; for (jDim = 0; jDim < nDim; jDim++) { @@ -1756,7 +1756,7 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con /*--- Residuals ---*/ - double alpha_gradpsi5 = 0.0, beta_gradpsi5 = 0.0, Sigma_gradvel_o_rho = 0.0, Sigma5_vel_gradvel = 0.0, sq_vel = 0.0; + su2double alpha_gradpsi5 = 0.0, beta_gradpsi5 = 0.0, Sigma_gradvel_o_rho = 0.0, Sigma5_vel_gradvel = 0.0, sq_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { alpha_gradpsi5 += alpha[iDim]*PsiVar_Grad_i[nVar-1][iDim]; beta_gradpsi5 += beta[iDim]*PsiVar_Grad_i[nVar-1][iDim]; @@ -1789,17 +1789,17 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con if (config->GetKind_Solver() != ADJ_RANS) { -// double Temperature_Ref = config->GetTemperature_Ref(); -// double Temperature_Dim = Temperature*Temperature_Ref; +// su2double Temperature_Ref = config->GetTemperature_Ref(); +// su2double Temperature_Dim = Temperature*Temperature_Ref; // -// double S = 0.0; +// su2double S = 0.0; // if (config->GetSystemMeasurements() == SI) { S = 110.4; } // if (config->GetSystemMeasurements() == US) { S = 198.72; } -// double dVisc_T = ((Laminar_Viscosity)/(2.0*Temperature_Dim*(Temperature_Dim + S)))*(Temperature_Dim + 3.0*S)*Temperature_Ref; +// su2double dVisc_T = ((Laminar_Viscosity)/(2.0*Temperature_Dim*(Temperature_Dim + S)))*(Temperature_Dim + 3.0*S)*Temperature_Ref; // -// double Cp = (Gamma/Gamma_Minus_One)*Gas_Constant; -// double kappa_psi = (sigma_gradpsi + vel_sigma_gradpsi5)/mu_tot_1; -// double theta = (kappa_psi + Cp/Prandtl_Lam*gradT_gradpsi5)*dVisc_T*Gamma_Minus_One/(Gas_Constant*Density); +// su2double Cp = (Gamma/Gamma_Minus_One)*Gas_Constant; +// su2double kappa_psi = (sigma_gradpsi + vel_sigma_gradpsi5)/mu_tot_1; +// su2double theta = (kappa_psi + Cp/Prandtl_Lam*gradT_gradpsi5)*dVisc_T*Gamma_Minus_One/(Gas_Constant*Density); // // val_residual[0] += (theta*(sq_vel-Energy))*Volume; // for (iDim = 0; iDim < nDim; iDim++) @@ -1814,16 +1814,16 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con // // /*--- Closure constants ---*/ // -// double cv1_3 = 7.1*7.1*7.1; -// double k2 = 0.41*0.41; -// double cb1 = 0.1355; -// double cw2 = 0.3; -// double cw3_6 = pow(2.0,6.0); -// double sigma = 2./3.; -// double cb2 = 0.622; -// double cw1 = cb1/k2+(1+cb2)/sigma; +// su2double cv1_3 = 7.1*7.1*7.1; +// su2double k2 = 0.41*0.41; +// su2double cb1 = 0.1355; +// su2double cw2 = 0.3; +// su2double cw3_6 = pow(2.0,6.0); +// su2double sigma = 2./3.; +// su2double cb2 = 0.622; +// su2double cw1 = cb1/k2+(1+cb2)/sigma; // -// double nu, Ji, Ji_2, Ji_3, fv1; +// su2double nu, Ji, Ji_2, Ji_3, fv1; // nu = Laminar_Viscosity/Density; // Ji = TurbVar_i[0]/nu; // Ji_2 = Ji*Ji; @@ -1832,20 +1832,20 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con // // /*--- Contributions due to variation of viscosities ---*/ // -// double Temperature_Ref = config->GetTemperature_Ref(); -// double Temperature_Dim = Temperature*Temperature_Ref; +// su2double Temperature_Ref = config->GetTemperature_Ref(); +// su2double Temperature_Dim = Temperature*Temperature_Ref; // -// double S = 0.0; +// su2double S = 0.0; // if (config->GetSystemMeasurements() == SI) { S = 110.4; } // if (config->GetSystemMeasurements() == US) { S = 198.72; } -// double dVisc_T = ((Laminar_Viscosity)/(2.0*Temperature_Dim*(Temperature_Dim + S)))*(Temperature_Dim + 3.0*S)*Temperature_Ref; +// su2double dVisc_T = ((Laminar_Viscosity)/(2.0*Temperature_Dim*(Temperature_Dim + S)))*(Temperature_Dim + 3.0*S)*Temperature_Ref; // -// double Cp = (Gamma/Gamma_Minus_One)*Gas_Constant; -// double kappa_psi = (sigma_gradpsi + vel_sigma_gradpsi5)/mu_tot_1 + Cp/Prandtl_Turb*gradT_gradpsi5; -// double cv1_const = 3.0*cv1_3/(Ji_3+cv1_3); -// double theta = (kappa_psi*(1.0-Eddy_Viscosity/Laminar_Viscosity*cv1_const) - +// su2double Cp = (Gamma/Gamma_Minus_One)*Gas_Constant; +// su2double kappa_psi = (sigma_gradpsi + vel_sigma_gradpsi5)/mu_tot_1 + Cp/Prandtl_Turb*gradT_gradpsi5; +// su2double cv1_const = 3.0*cv1_3/(Ji_3+cv1_3); +// su2double theta = (kappa_psi*(1.0-Eddy_Viscosity/Laminar_Viscosity*cv1_const) - // Cp/Prandtl_Turb*gradT_gradpsi5*(1.0-Prandtl_Turb/Prandtl_Lam))*dVisc_T*Gamma_Minus_One/(Gas_Constant*Density); -// double xi = kappa_psi*(1.0+cv1_const)*Eddy_Viscosity/Density; +// su2double xi = kappa_psi*(1.0+cv1_const)*Eddy_Viscosity/Density; // // val_residual[0] += (theta*(sq_vel-Energy) + xi)*Volume; // for (iDim = 0; iDim < nDim; iDim++) @@ -1855,10 +1855,10 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con // /*--- Coupling residuals ---*/ // // if (dist_i > 0.0) { -// double fv2, Omega, Shat, dist_0_2, one_o_oneplusJifv1; -// double r, g, g_6, glim, fw; -// double dfw_g, dg_r, dr_nuhat, dr_Shat; -// double dShat_fv2, dfv2_fv1, dfv1_Ji, dJi_nu, dJi_nuhat, dfv2_Ji; +// su2double fv2, Omega, Shat, dist_0_2, one_o_oneplusJifv1; +// su2double r, g, g_6, glim, fw; +// su2double dfw_g, dg_r, dr_nuhat, dr_Shat; +// su2double dShat_fv2, dfv2_fv1, dfv1_Ji, dJi_nu, dJi_nuhat, dfv2_Ji; // // /*--- Vorticity ---*/ // Omega = (PrimVar_Grad_i[1][1]-PrimVar_Grad_i[2][0])*(PrimVar_Grad_i[1][1]-PrimVar_Grad_i[2][0]); @@ -1891,17 +1891,17 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con // // /*--- Terms 1 & 2: -Fcv\B7nabla(TurbPsi_i) - Fs\B7TurbPsi_i ---*/ // -// double gradTurbVar_gradTurbPsi = 0, vel_gradTurbPsi = 0; +// su2double gradTurbVar_gradTurbPsi = 0, vel_gradTurbPsi = 0; // for (iDim = 0; iDim < nDim; iDim++) { // gradTurbVar_gradTurbPsi += TurbVar_Grad_i[0][iDim]*TurbPsi_Grad_i[0][iDim]; // vel_gradTurbPsi += V_i[iDim+1]*TurbPsi_Grad_i[0][iDim]; // } // -// double alpha_coeff = Gamma_Minus_One/(Gas_Constant*Density)*dVisc_T; -// double beta_coeff = alpha_coeff*(sq_vel-Energy)-Laminar_Viscosity_i/Density; -// double Fs_coeff = TurbPsi_i[0]*(cb1*TurbVar_i[0]-cw1*TurbVar_i[0]*TurbVar_i[0]/dist_0_2*dfw_g*dg_r*dr_Shat)* +// su2double alpha_coeff = Gamma_Minus_One/(Gas_Constant*Density)*dVisc_T; +// su2double beta_coeff = alpha_coeff*(sq_vel-Energy)-Laminar_Viscosity_i/Density; +// su2double Fs_coeff = TurbPsi_i[0]*(cb1*TurbVar_i[0]-cw1*TurbVar_i[0]*TurbVar_i[0]/dist_0_2*dfw_g*dg_r*dr_Shat)* // dShat_fv2*(dfv2_Ji+dfv2_fv1*dfv1_Ji)*dJi_nu; -// double Gamma = Fs_coeff - gradTurbVar_gradTurbPsi/sigma; +// su2double Gamma = Fs_coeff - gradTurbVar_gradTurbPsi/sigma; // // val_residual[0] -= (Gamma*beta_coeff - TurbVar_i[0]*vel_gradTurbPsi)/Density*Volume; // for (iDim = 0; iDim < nDim; iDim++) @@ -1910,7 +1910,7 @@ void CSourceViscous_AdjFlow::ComputeResidual (double *val_residual, CConfig *con // // // this should improve stability (when commented): // /*--- Terms 3: -partial{T^s}_GradVel x GradN ---*/ -// // double Ms_coeff = (cb1*TurbVar_i[0]-cw1*TurbVar_i[0]*TurbVar_i[0]/dist_0_2*dfw_g*dg_r*dr_Shat); +// // su2double Ms_coeff = (cb1*TurbVar_i[0]-cw1*TurbVar_i[0]*TurbVar_i[0]/dist_0_2*dfw_g*dg_r*dr_Shat); // // Ms_coeff *= TurbPsi_i[0]/(Omega + TURB_EPS); // // // // for (iDim = 0; iDim < nDim; iDim++) { @@ -1932,14 +1932,14 @@ CSourceConservative_AdjFlow::CSourceConservative_AdjFlow(unsigned short val_nDim Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity = new double [nDim]; - Residual_i = new double [nVar]; - Residual_j = new double [nVar]; - Mean_Residual = new double [nVar]; + Velocity = new su2double [nDim]; + Residual_i = new su2double [nVar]; + Residual_j = new su2double [nVar]; + Mean_Residual = new su2double [nVar]; - Mean_PrimVar_Grad = new double* [nVar]; + Mean_PrimVar_Grad = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) - Mean_PrimVar_Grad[iVar] = new double [nDim]; + Mean_PrimVar_Grad[iVar] = new su2double [nDim]; } CSourceConservative_AdjFlow::~CSourceConservative_AdjFlow(void) { @@ -1953,19 +1953,19 @@ CSourceConservative_AdjFlow::~CSourceConservative_AdjFlow(void) { delete [] Mean_PrimVar_Grad; } -void CSourceConservative_AdjFlow::ComputeResidual (double *val_residual, CConfig *config) { +void CSourceConservative_AdjFlow::ComputeResidual (su2double *val_residual, CConfig *config) { unsigned short iDim, jDim, iVar; - double rho, nu, Ji, fv1, fv2, Omega, Shat, dist_sq, Ji_2, Ji_3, one_o_oneplusJifv1; - double r, g, g_6, glim, dfw_g, dg_r, dr_nuhat, dr_Shat, Ms_coeff, invOmega; - - double cv1_3 = 7.1*7.1*7.1; - double k2 = 0.41*0.41; - double cb1 = 0.1355; - double cw2 = 0.3; - double cw3_6 = pow(2.0,6.0); - double sigma = 2./3.; - double cb2 = 0.622; - double cw1 = cb1/k2+(1+cb2)/sigma; + su2double rho, nu, Ji, fv1, fv2, Omega, Shat, dist_sq, Ji_2, Ji_3, one_o_oneplusJifv1; + su2double r, g, g_6, glim, dfw_g, dg_r, dr_nuhat, dr_Shat, Ms_coeff, invOmega; + + su2double cv1_3 = 7.1*7.1*7.1; + su2double k2 = 0.41*0.41; + su2double cb1 = 0.1355; + su2double cw2 = 0.3; + su2double cw3_6 = pow(2.0,6.0); + su2double sigma = 2./3.; + su2double cb2 = 0.622; + su2double cw1 = cb1/k2+(1+cb2)/sigma; for (iVar = 0; iVar < nVar; iVar++) { Residual_i[iVar] = 0.0; @@ -2093,10 +2093,10 @@ CSourceRotatingFrame_AdjFlow::CSourceRotatingFrame_AdjFlow(unsigned short val_nD CSourceRotatingFrame_AdjFlow::~CSourceRotatingFrame_AdjFlow(void) { } -void CSourceRotatingFrame_AdjFlow::ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config) { +void CSourceRotatingFrame_AdjFlow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) { unsigned short iDim, iVar, jVar; - double Omega[3] = {0,0,0}, Phi[3] = {0,0,0}; + su2double Omega[3] = {0,0,0}, Phi[3] = {0,0,0}; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); /*--- Retrieve the angular velocity vector from config. ---*/ @@ -2151,10 +2151,10 @@ CSourceAxisymmetric_AdjFlow::CSourceAxisymmetric_AdjFlow(unsigned short val_nDim CSourceAxisymmetric_AdjFlow::~CSourceAxisymmetric_AdjFlow(void) { } -void CSourceAxisymmetric_AdjFlow::ComputeResidual(double *val_residual, double **Jacobian_ii, CConfig *config) { +void CSourceAxisymmetric_AdjFlow::ComputeResidual(su2double *val_residual, su2double **Jacobian_ii, CConfig *config) { - double yinv; - double Jacobian_Axisymmetric[4][4]; + su2double yinv; + su2double Jacobian_Axisymmetric[4][4]; if (Coord_i[1] > 0.0) yinv = 1.0/Coord_i[1]; else yinv = 0.0; diff --git a/SU2_CFD/src/numerics_adjoint_tne2.cpp b/SU2_CFD/src/numerics_adjoint_tne2.cpp index b93aed7d931..5a75bb5a8cc 100644 --- a/SU2_CFD/src/numerics_adjoint_tne2.cpp +++ b/SU2_CFD/src/numerics_adjoint_tne2.cpp @@ -48,23 +48,23 @@ CUpwRoe_AdjTNE2::CUpwRoe_AdjTNE2(unsigned short val_nDim, nDim = val_nDim; nSpecies = config->GetnSpecies(); - UnitNormal = new double[nDim]; - MeanU = new double[nVar]; - MeanV = new double[nPrimVar]; - MeandPdU = new double[nVar]; - DiffPsi = new double[nVar]; - Lambda = new double[nVar]; - Ai = new double* [nVar]; - Aj = new double* [nVar]; - P = new double* [nVar]; - invP = new double* [nVar]; - PLPinv = new double* [nVar]; + UnitNormal = new su2double[nDim]; + MeanU = new su2double[nVar]; + MeanV = new su2double[nPrimVar]; + MeandPdU = new su2double[nVar]; + DiffPsi = new su2double[nVar]; + Lambda = new su2double[nVar]; + Ai = new su2double* [nVar]; + Aj = new su2double* [nVar]; + P = new su2double* [nVar]; + invP = new su2double* [nVar]; + PLPinv = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) { - Ai[iVar] = new double [nVar]; - Aj[iVar] = new double [nVar]; - P[iVar] = new double [nVar]; - invP[iVar] = new double [nVar]; - PLPinv[iVar] = new double [nVar]; + Ai[iVar] = new su2double [nVar]; + Aj[iVar] = new su2double [nVar]; + P[iVar] = new su2double [nVar]; + invP[iVar] = new su2double [nVar]; + PLPinv[iVar] = new su2double [nVar]; } } @@ -91,17 +91,17 @@ CUpwRoe_AdjTNE2::~CUpwRoe_AdjTNE2(void) { } -void CUpwRoe_AdjTNE2::ComputeResidual (double *val_residual_i, - double *val_residual_j, - double **val_Jacobian_ii, - double **val_Jacobian_ij, - double **val_Jacobian_ji, - double **val_Jacobian_jj, +void CUpwRoe_AdjTNE2::ComputeResidual (su2double *val_residual_i, + su2double *val_residual_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim, iVar, jVar, kVar; - double Area, ProjVel; - double MeanSoundSpeed; + su2double Area, ProjVel; + su2double MeanSoundSpeed; /*--- Roe flux: Fij = (Fi + Fj)/2 - 1/2*P|Lam|P^-1 * (Uj - Ui) ---*/ // Notes: @@ -227,21 +227,21 @@ CUpwSW_AdjTNE2::CUpwSW_AdjTNE2(unsigned short val_nDim, nDim = val_nDim; nSpecies = config->GetnSpecies(); - UnitNormal = new double[nDim]; - DiffPsi = new double[nVar]; - Lambda_i = new double[nVar]; - Lambda_j = new double[nVar]; - Ai = new double* [nVar]; - Aj = new double* [nVar]; - P = new double* [nVar]; - invP = new double* [nVar]; - PLPinv = new double* [nVar]; + UnitNormal = new su2double[nDim]; + DiffPsi = new su2double[nVar]; + Lambda_i = new su2double[nVar]; + Lambda_j = new su2double[nVar]; + Ai = new su2double* [nVar]; + Aj = new su2double* [nVar]; + P = new su2double* [nVar]; + invP = new su2double* [nVar]; + PLPinv = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) { - Ai[iVar] = new double [nVar]; - Aj[iVar] = new double [nVar]; - P[iVar] = new double [nVar]; - invP[iVar] = new double [nVar]; - PLPinv[iVar] = new double [nVar]; + Ai[iVar] = new su2double [nVar]; + Aj[iVar] = new su2double [nVar]; + P[iVar] = new su2double [nVar]; + invP[iVar] = new su2double [nVar]; + PLPinv[iVar] = new su2double [nVar]; } } @@ -264,16 +264,16 @@ CUpwSW_AdjTNE2::~CUpwSW_AdjTNE2(void) { delete [] PLPinv; } -void CUpwSW_AdjTNE2::ComputeResidual (double *val_residual_i, - double *val_residual_j, - double **val_Jacobian_ii, - double **val_Jacobian_ij, - double **val_Jacobian_ji, - double **val_Jacobian_jj, +void CUpwSW_AdjTNE2::ComputeResidual (su2double *val_residual_i, + su2double *val_residual_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim, iVar, jVar, kVar; - double Area, ProjVel_i, ProjVel_j; + su2double Area, ProjVel_i, ProjVel_j; /*--- Roe flux: Fij = (Fi + Fj)/2 - 1/2*P|Lam|P^-1 * (Uj - Ui) ---*/ // Notes: @@ -419,10 +419,10 @@ CCentJST_AdjTNE2::CCentJST_AdjTNE2(unsigned short val_nDim, unsigned short val_n grid_movement = config->GetGrid_Movement(); rotating_frame = config->GetRotating_Frame(); - Diff_Psi = new double [nVar]; Diff_Lapl = new double [nVar]; - Und_Lapl_i = new double [nVar]; Und_Lapl_j = new double [nVar]; - Velocity_i = new double [nDim]; Velocity_j = new double [nDim]; - MeanPhi = new double [nDim]; + Diff_Psi = new su2double [nVar]; Diff_Lapl = new su2double [nVar]; + Und_Lapl_i = new su2double [nVar]; Und_Lapl_j = new su2double [nVar]; + Velocity_i = new su2double [nDim]; Velocity_j = new su2double [nDim]; + MeanPhi = new su2double [nDim]; Param_p = 0.3; Param_Kappa_2 = config->GetKappa_2nd_AdjTNE2(); @@ -438,10 +438,10 @@ CCentJST_AdjTNE2::~CCentJST_AdjTNE2(void) { delete [] MeanPhi; } -void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvisc_i, - double *val_resconv_j, double *val_resvisc_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, +void CCentJST_AdjTNE2::ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, + su2double *val_resconv_j, su2double *val_resvisc_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { /*--- Mean Values ---*/ @@ -471,7 +471,7 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Flux contributions due to grid movement at point i (TDE) ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; val_resconv_i[0] -= ProjGridVel*MeanPsiRho; @@ -504,7 +504,7 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Jacobian contributions due to grid movement at point i (TDE) ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -534,7 +534,7 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Flux contributions due to grid movement at point j (TDE) ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; val_resconv_j[0] += ProjGridVel*MeanPsiRho; @@ -567,7 +567,7 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Jacobian contributions due to grid movement at point j (TDE) ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; for (iVar = 0; iVar < nVar; iVar++) { @@ -585,7 +585,7 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi /*--- Adjustment to projected velocity due to mesh motion (TDE) ---*/ if (grid_movement) { - double ProjGridVel_i = 0.0; double ProjGridVel_j = 0.0; double ProjGridVel = 0.0; + su2double ProjGridVel_i = 0.0; su2double ProjGridVel_j = 0.0; su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*Normal[iDim]; ProjGridVel_i += GridVel_i[iDim]*Normal[iDim]; @@ -604,7 +604,7 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi Phi_j = pow(Lambda_j/(4.0*MeanLambda+EPS), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j+EPS); - double sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); + su2double sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); sc4 = sc2*sc2/4.0; Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; Epsilon_4 = max(0.0, Param_Kappa_4-Epsilon_2)*sc4; @@ -615,10 +615,10 @@ void CCentJST_AdjTNE2::ComputeResidual (double *val_resconv_i, double *val_resvi val_resvisc_i[iVar] = -Residual; val_resvisc_j[iVar] = Residual; if (implicit) { - val_Jacobian_ii[iVar][iVar] -= Epsilon_2 + double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; - val_Jacobian_ij[iVar][iVar] += Epsilon_2 + double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; - val_Jacobian_ji[iVar][iVar] += Epsilon_2 + double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; - val_Jacobian_jj[iVar][iVar] -= Epsilon_2 + double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_ii[iVar][iVar] -= Epsilon_2 + su2double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_ij[iVar][iVar] += Epsilon_2 + su2double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_ji[iVar][iVar] += Epsilon_2 + su2double(Neighbor_i+1)*Epsilon_4*StretchingFactor*MeanLambda; + val_Jacobian_jj[iVar][iVar] -= Epsilon_2 + su2double(Neighbor_j+1)*Epsilon_4*StretchingFactor*MeanLambda; } } } @@ -640,14 +640,14 @@ CCentLax_AdjTNE2::CCentLax_AdjTNE2(unsigned short val_nDim, nPrimVar = val_nPrimVar; nPrimVarGrad = val_nPrimVarGrad; - DiffPsi = new double [nVar]; - MeanPsi = new double [nVar]; + DiffPsi = new su2double [nVar]; + MeanPsi = new su2double [nVar]; - Proj_Jac_Tensor_i = new double*[nVar]; - Proj_Jac_Tensor_j = new double*[nVar]; + Proj_Jac_Tensor_i = new su2double*[nVar]; + Proj_Jac_Tensor_j = new su2double*[nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) { - Proj_Jac_Tensor_i[iVar] = new double [nVar]; - Proj_Jac_Tensor_j[iVar] = new double [nVar]; + Proj_Jac_Tensor_i[iVar] = new su2double [nVar]; + Proj_Jac_Tensor_j[iVar] = new su2double [nVar]; } Param_p = 0.3; @@ -668,22 +668,22 @@ CCentLax_AdjTNE2::~CCentLax_AdjTNE2(void) { delete [] Proj_Jac_Tensor_j; } -void CCentLax_AdjTNE2::ComputeResidual (double *val_resconv_i, - double *val_resvisc_i, - double *val_resconv_j, - double *val_resvisc_j, - double **val_Jacobian_ii, - double **val_Jacobian_ij, - double **val_Jacobian_ji, - double **val_Jacobian_jj, +void CCentLax_AdjTNE2::ComputeResidual (su2double *val_resconv_i, + su2double *val_resvisc_i, + su2double *val_resconv_j, + su2double *val_resvisc_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim, iVar, jVar; - double ProjVel_i, ProjVel_j; - double Phi_i, Phi_j; - double Local_Lambda_i, Local_Lambda_j, MeanLambda; - double Residual; - double StretchingFactor, sc2, Epsilon_0; + su2double ProjVel_i, ProjVel_j; + su2double Phi_i, Phi_j; + su2double Local_Lambda_i, Local_Lambda_j, MeanLambda; + su2double Residual; + su2double StretchingFactor, sc2, Epsilon_0; /*--- Initialize the residuals ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -747,8 +747,8 @@ void CCentLax_AdjTNE2::ComputeResidual (double *val_resconv_i, Phi_j = pow(Lambda_j/(4.0*MeanLambda+EPS), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j+EPS); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_0 = Param_Kappa_0*sc2*double(nDim)/3.0; + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_0 = Param_Kappa_0*sc2*su2double(nDim)/3.0; /*--- Artifical dissipation evaluation ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -782,21 +782,21 @@ CAvgGrad_AdjTNE2::CAvgGrad_AdjTNE2(unsigned short val_nDim, nSpecies = config->GetnSpecies(); nVar = val_nVar; - vel = new double[nDim]; - vel_i = new double[nDim]; - vel_j = new double[nDim]; - Mean_GradPhi = new double* [nDim]; + vel = new su2double[nDim]; + vel_i = new su2double[nDim]; + vel_j = new su2double[nDim]; + Mean_GradPhi = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Mean_GradPhi[iDim] = new double [nDim]; - Mean_GradPsiE = new double [nDim]; - Mean_GradPsiEve = new double [nDim]; - Edge_Vector = new double [nDim]; + Mean_GradPhi[iDim] = new su2double [nDim]; + Mean_GradPsiE = new su2double [nDim]; + Mean_GradPsiEve = new su2double [nDim]; + Edge_Vector = new su2double [nDim]; - SigmaPhi = new double*[nDim]; - SigmaPsiE = new double*[nDim]; + SigmaPhi = new su2double*[nDim]; + SigmaPsiE = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - SigmaPhi[iDim] = new double[nDim]; - SigmaPsiE[iDim] = new double[nDim]; + SigmaPhi[iDim] = new su2double[nDim]; + SigmaPsiE[iDim] = new su2double[nDim]; } } @@ -821,20 +821,20 @@ CAvgGrad_AdjTNE2::~CAvgGrad_AdjTNE2(void) { } -void CAvgGrad_AdjTNE2::ComputeResidual(double *val_residual_i, - double *val_residual_j, - double **val_Jacobian_ii, - double **val_Jacobian_ij, - double **val_Jacobian_ji, - double **val_Jacobian_jj, +void CAvgGrad_AdjTNE2::ComputeResidual(su2double *val_residual_i, + su2double *val_residual_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim, jDim, iVar, jVar; - double mu_i, mu_j, ktr_i, ktr_j, kve_i, kve_j; - double rho_i, rho_j, un; - double GdotPhi, GPsiEdotVel, GPsiEdotn, GPsiEvedotn; - double dij, theta, thetax, thetay, thetaz, etax, etay, etaz; + su2double mu_i, mu_j, ktr_i, ktr_j, kve_i, kve_j; + su2double rho_i, rho_j, un; + su2double GdotPhi, GPsiEdotVel, GPsiEdotn, GPsiEvedotn; + su2double dij, theta, thetax, thetay, thetaz, etax, etay, etaz; /*--- Initialize residuals ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -1117,55 +1117,55 @@ CSource_AdjTNE2::CSource_AdjTNE2(unsigned short val_nDim, nPrimVar = val_nPrimVar; nPrimVarGrad = val_nPrimVarGrad; - rhos = new double[nSpecies]; - vel = new double[nDim]; - - GInvRho = new double[nDim]; - GVeloRho = new double*[nDim]; - GPhiGInvRho = new double[nDim]; - GPsiEZetaTau = new double[nDim]; - tau = new double*[nDim]; - eta = new double*[nDim]; - pi = new double*[nDim]; - zeta = new double*[nDim]; + rhos = new su2double[nSpecies]; + vel = new su2double[nDim]; + + GInvRho = new su2double[nDim]; + GVeloRho = new su2double*[nDim]; + GPhiGInvRho = new su2double[nDim]; + GPsiEZetaTau = new su2double[nDim]; + tau = new su2double*[nDim]; + eta = new su2double*[nDim]; + pi = new su2double*[nDim]; + zeta = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - GVeloRho[iDim] = new double[nDim]; - tau[iDim] = new double[nDim]; - eta[iDim] = new double[nDim]; - pi[iDim] = new double[nDim]; - zeta[iDim] = new double[nDim]; + GVeloRho[iDim] = new su2double[nDim]; + tau[iDim] = new su2double[nDim]; + eta[iDim] = new su2double[nDim]; + pi[iDim] = new su2double[nDim]; + zeta[iDim] = new su2double[nDim]; } - Av2 = new double *[nVar]; - Av3 = new double *[nVar]; - Av4 = new double *[nVar]; + Av2 = new su2double *[nVar]; + Av3 = new su2double *[nVar]; + Av4 = new su2double *[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Av2[iVar] = new double[nVar]; - Av3[iVar] = new double[nVar]; - Av4[iVar] = new double[nVar]; + Av2[iVar] = new su2double[nVar]; + Av3[iVar] = new su2double[nVar]; + Av4[iVar] = new su2double[nVar]; } // unsigned short iDim; // -// Velocity = new double [nVar]; -// GradDensity = new double [nDim]; -// GradInvDensity = new double [nDim]; -// dPoDensity2 = new double [nDim]; -// alpha = new double [nDim]; -// beta = new double [nDim]; -// Sigma_5_vec = new double [nDim]; +// Velocity = new su2double [nVar]; +// GradDensity = new su2double [nDim]; +// GradInvDensity = new su2double [nDim]; +// dPoDensity2 = new su2double [nDim]; +// alpha = new su2double [nDim]; +// beta = new su2double [nDim]; +// Sigma_5_vec = new su2double [nDim]; // -// GradVel_o_Rho = new double* [nDim]; -// sigma = new double* [nDim]; -// Sigma_phi = new double* [nDim]; -// Sigma_5_Tensor = new double* [nDim]; -// Sigma = new double* [nDim]; +// GradVel_o_Rho = new su2double* [nDim]; +// sigma = new su2double* [nDim]; +// Sigma_phi = new su2double* [nDim]; +// Sigma_5_Tensor = new su2double* [nDim]; +// Sigma = new su2double* [nDim]; // for (iDim = 0; iDim < nDim; iDim++) { -// GradVel_o_Rho[iDim] = new double [nDim]; -// sigma[iDim] = new double [nDim]; -// Sigma_phi[iDim] = new double [nDim]; -// Sigma_5_Tensor[iDim] = new double [nDim]; -// Sigma[iDim] = new double [nDim]; +// GradVel_o_Rho[iDim] = new su2double [nDim]; +// sigma[iDim] = new su2double [nDim]; +// Sigma_phi[iDim] = new su2double [nDim]; +// Sigma_5_Tensor[iDim] = new su2double [nDim]; +// Sigma[iDim] = new su2double [nDim]; // } } @@ -1222,13 +1222,13 @@ CSource_AdjTNE2::~CSource_AdjTNE2(void) { // delete [] Sigma_5_vec; } -void CSource_AdjTNE2::ComputeSourceViscous (double *val_residual, CConfig *config) { +void CSource_AdjTNE2::ComputeSourceViscous (su2double *val_residual, CConfig *config) { unsigned short iDim, jDim, iSpecies, iVar, jVar; - double rho, sqvel, rhoCvtr, rhoCvve, Cvtrs, Cvves, *Ms, *xi, Ru; - double div_vel, div_velorho, velGInvRho, GPhiEta, GPsiEvelPi; - double mu2, mu3, mu4; - double **GPsi; + su2double rho, sqvel, rhoCvtr, rhoCvve, Cvtrs, Cvves, *Ms, *xi, Ru; + su2double div_vel, div_velorho, velGInvRho, GPhiEta, GPsiEvelPi; + su2double mu2, mu3, mu4; + su2double **GPsi; /*--- Initialize arrays ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -1412,14 +1412,14 @@ void CSource_AdjTNE2::ComputeSourceViscous (double *val_residual, CConfig *confi // Gamma = config->GetGamma(); // Gamma_Minus_One = Gamma - 1.0; // -// Velocity = new double [nDim]; -// Residual_i = new double [nVar]; -// Residual_j = new double [nVar]; -// Mean_Residual = new double [nVar]; +// Velocity = new su2double [nDim]; +// Residual_i = new su2double [nVar]; +// Residual_j = new su2double [nVar]; +// Mean_Residual = new su2double [nVar]; // -// Mean_PrimVar_Grad = new double* [nVar]; +// Mean_PrimVar_Grad = new su2double* [nVar]; // for (unsigned short iVar = 0; iVar < nVar; iVar++) -// Mean_PrimVar_Grad[iVar] = new double [nDim]; +// Mean_PrimVar_Grad[iVar] = new su2double [nDim]; //} // //CSourceConservative_AdjFlow::~CSourceConservative_AdjFlow(void) { @@ -1433,21 +1433,21 @@ void CSource_AdjTNE2::ComputeSourceViscous (double *val_residual, CConfig *confi // delete [] Mean_PrimVar_Grad; //} -void CSource_AdjTNE2::ComputeSourceConservative (double *val_residual, +void CSource_AdjTNE2::ComputeSourceConservative (su2double *val_residual, CConfig *config) { // unsigned short iDim, jDim, iVar; -// double rho, nu, Ji, fv1, fv2, Omega, Shat, dist_sq, Ji_2, Ji_3, one_o_oneplusJifv1; -// double r, g, g_6, glim, dfw_g, dg_r, dr_nuhat, dr_Shat, Ms_coeff, invOmega; +// su2double rho, nu, Ji, fv1, fv2, Omega, Shat, dist_sq, Ji_2, Ji_3, one_o_oneplusJifv1; +// su2double r, g, g_6, glim, dfw_g, dg_r, dr_nuhat, dr_Shat, Ms_coeff, invOmega; // // /*--- CLOUSURE CONSTANTS ---*/ -// double cv1_3 = 7.1*7.1*7.1; -// double k2 = 0.41*0.41; -// double cb1 = 0.1355; -// double cw2 = 0.3; -// double cw3_6 = pow(2.0,6.0); -// double sigma = 2./3.; -// double cb2 = 0.622; -// double cw1 = cb1/k2+(1+cb2)/sigma; +// su2double cv1_3 = 7.1*7.1*7.1; +// su2double k2 = 0.41*0.41; +// su2double cb1 = 0.1355; +// su2double cw2 = 0.3; +// su2double cw3_6 = pow(2.0,6.0); +// su2double sigma = 2./3.; +// su2double cb2 = 0.622; +// su2double cw1 = cb1/k2+(1+cb2)/sigma; // // for (iVar = 0; iVar < nVar; iVar++) { // Residual_i[iVar] = 0.0; diff --git a/SU2_CFD/src/numerics_adjoint_turbulent.cpp b/SU2_CFD/src/numerics_adjoint_turbulent.cpp index 54608b018db..add602dbfc9 100644 --- a/SU2_CFD/src/numerics_adjoint_turbulent.cpp +++ b/SU2_CFD/src/numerics_adjoint_turbulent.cpp @@ -35,28 +35,28 @@ CUpwLin_AdjTurb::CUpwLin_AdjTurb(unsigned short val_nDim, unsigned short val_nVa Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity_i = new double [nDim]; + Velocity_i = new su2double [nDim]; } CUpwLin_AdjTurb::~CUpwLin_AdjTurb(void) { delete [] Velocity_i; } -void CUpwLin_AdjTurb::ComputeResidual (double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwLin_AdjTurb::ComputeResidual (su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); /*--- Non-conservative term --> -\nabla \psi_\mu B^{cv} B^{cv} = -v ---*/ unsigned short iDim; - double proj_conv_flux = 0; + su2double proj_conv_flux = 0; for (iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = U_i[iDim+1]/U_i[0]; proj_conv_flux += Velocity_i[iDim]*Normal[iDim]; // projection of convective flux at iPoint } - double psinu0 = TurbPsi_i[0]; - double psinu1; + su2double psinu0 = TurbPsi_i[0]; + su2double psinu1; if (proj_conv_flux > 0) psinu1 = psinu0 + proj_conv_flux; else @@ -73,8 +73,8 @@ CUpwSca_AdjTurb::CUpwSca_AdjTurb(unsigned short val_nDim, unsigned short val_nVa Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } CUpwSca_AdjTurb::~CUpwSca_AdjTurb(void) { @@ -82,9 +82,9 @@ CUpwSca_AdjTurb::~CUpwSca_AdjTurb(void) { delete [] Velocity_j; } -void CUpwSca_AdjTurb::ComputeResidual (double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CUpwSca_AdjTurb::ComputeResidual (su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); @@ -92,8 +92,8 @@ void CUpwSca_AdjTurb::ComputeResidual (double *val_residual_i, double *val_resid B^{cv} = -\nabla \hat{nu}/\sigma + v ---*/ unsigned short iDim; - double proj_conv_flux_i = 0, proj_conv_flux_j = 0, proj_conv_flux_ij = 0; - double sigma = 2./3.; + su2double proj_conv_flux_i = 0, proj_conv_flux_j = 0, proj_conv_flux_ij = 0; + su2double sigma = 2./3.; for (iDim = 0; iDim < nDim; iDim++) { Velocity_i[iDim] = U_i[iDim+1]/U_i[0]; @@ -118,13 +118,13 @@ CAvgGradCorrected_AdjTurb::CAvgGradCorrected_AdjTurb(unsigned short val_nDim, un Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Edge_Vector = new double [nDim]; - Mean_GradTurbPsi = new double* [nVar]; - Proj_Mean_GradTurbPsi_Kappa = new double [nVar]; - Proj_Mean_GradTurbPsi_Edge = new double [nVar]; - Proj_Mean_GradTurbPsi_Corrected = new double [nVar]; + Edge_Vector = new su2double [nDim]; + Mean_GradTurbPsi = new su2double* [nVar]; + Proj_Mean_GradTurbPsi_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbPsi_Edge = new su2double [nVar]; + Proj_Mean_GradTurbPsi_Corrected = new su2double [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbPsi[iVar] = new double [nDim]; + Mean_GradTurbPsi[iVar] = new su2double [nDim]; } CAvgGradCorrected_AdjTurb::~CAvgGradCorrected_AdjTurb(void) { @@ -138,15 +138,15 @@ CAvgGradCorrected_AdjTurb::~CAvgGradCorrected_AdjTurb(void) { delete [] Mean_GradTurbPsi; } -void CAvgGradCorrected_AdjTurb::ComputeResidual(double *val_residual, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CAvgGradCorrected_AdjTurb::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); - double sigma = 2./3.; - double nu_i, nu_j, nu_e; - double dist_ij_2 = 0; - double proj_vector_ij = 0; + su2double sigma = 2./3.; + su2double nu_i, nu_j, nu_e; + su2double dist_ij_2 = 0; + su2double proj_vector_ij = 0; unsigned short iVar, iDim; /*--- Compute mean effective viscosity ---*/ @@ -188,16 +188,16 @@ void CAvgGradCorrected_AdjTurb::ComputeResidual(double *val_residual, double **v } -void CAvgGradCorrected_AdjTurb::ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CAvgGradCorrected_AdjTurb::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); - double sigma = 2./3.; - double nu_i, nu_j, nu_e_i, nu_e_j; - double dist_ij_2 = 0; - double proj_vector_ij = 0; + su2double sigma = 2./3.; + su2double nu_i, nu_j, nu_e_i, nu_e_j; + su2double dist_ij_2 = 0; + su2double proj_vector_ij = 0; unsigned short iVar, iDim; /*--- Compute mean effective viscosity ---*/ @@ -248,13 +248,13 @@ CAvgGrad_AdjTurb::CAvgGrad_AdjTurb(unsigned short val_nDim, unsigned short val_n Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Edge_Vector = new double [nDim]; - Mean_GradTurbPsi = new double* [nVar]; - Proj_Mean_GradTurbPsi_Kappa = new double [nVar]; - Proj_Mean_GradTurbPsi_Edge = new double [nVar]; - Proj_Mean_GradTurbPsi_Corrected = new double [nVar]; + Edge_Vector = new su2double [nDim]; + Mean_GradTurbPsi = new su2double* [nVar]; + Proj_Mean_GradTurbPsi_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbPsi_Edge = new su2double [nVar]; + Proj_Mean_GradTurbPsi_Corrected = new su2double [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbPsi[iVar] = new double [nDim]; + Mean_GradTurbPsi[iVar] = new su2double [nDim]; } CAvgGrad_AdjTurb::~CAvgGrad_AdjTurb(void) { @@ -268,15 +268,15 @@ CAvgGrad_AdjTurb::~CAvgGrad_AdjTurb(void) { delete [] Mean_GradTurbPsi; } -void CAvgGrad_AdjTurb::ComputeResidual(double *val_residual, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CAvgGrad_AdjTurb::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); - double sigma = 2./3.; - double nu_i, nu_j, nu_e; - double dist_ij_2 = 0; - double proj_vector_ij = 0; + su2double sigma = 2./3.; + su2double nu_i, nu_j, nu_e; + su2double dist_ij_2 = 0; + su2double proj_vector_ij = 0; unsigned short iVar, iDim; /*--- Compute mean effective viscosity ---*/ @@ -314,16 +314,16 @@ void CAvgGrad_AdjTurb::ComputeResidual(double *val_residual, double **val_Jacobi } -void CAvgGrad_AdjTurb::ComputeResidual(double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, - double **val_Jacobian_ji, double **val_Jacobian_jj, CConfig *config) { +void CAvgGrad_AdjTurb::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); - double sigma = 2./3.; - double nu_i, nu_j, nu_e_i, nu_e_j; - double dist_ij_2 = 0; - double proj_vector_ij = 0; + su2double sigma = 2./3.; + su2double nu_i, nu_j, nu_e_i, nu_e_j; + su2double dist_ij_2 = 0; + su2double proj_vector_ij = 0; unsigned short iVar, iDim; /*--- Compute mean effective viscosity ---*/ @@ -370,10 +370,10 @@ CSourcePieceWise_AdjTurb::CSourcePieceWise_AdjTurb(unsigned short val_nDim, unsi Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity = new double [nDim]; - tau = new double* [nDim]; + Velocity = new su2double [nDim]; + tau = new su2double* [nDim]; for (unsigned short iDim = 0; iDim < nDim; iDim++) - tau[iDim] = new double [nDim]; + tau[iDim] = new su2double [nDim]; } CSourcePieceWise_AdjTurb::~CSourcePieceWise_AdjTurb(void) { @@ -384,11 +384,11 @@ CSourcePieceWise_AdjTurb::~CSourcePieceWise_AdjTurb(void) { delete [] tau; } -void CSourcePieceWise_AdjTurb::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CSourcePieceWise_AdjTurb::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { unsigned short iDim, jDim; bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); - double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); val_residual[0] = 0.0; if (implicit) @@ -397,13 +397,13 @@ void CSourcePieceWise_AdjTurb::ComputeResidual(double *val_residual, double **va if (dist_i > 0.0) { /*--- Computation of Vorticity and Divergence of velocity ---*/ - double div_vel = 0; + su2double div_vel = 0; for (iDim = 0; iDim < nDim; iDim++) { Velocity[iDim] = U_i[iDim+1]/U_i[0]; div_vel += PrimVar_Grad_i[iDim+1][iDim]; } - double Vorticity = (PrimVar_Grad_i[2][0]-PrimVar_Grad_i[1][1])*(PrimVar_Grad_i[2][0]-PrimVar_Grad_i[1][1]); + su2double Vorticity = (PrimVar_Grad_i[2][0]-PrimVar_Grad_i[1][1])*(PrimVar_Grad_i[2][0]-PrimVar_Grad_i[1][1]); if (nDim == 3) Vorticity += ( (PrimVar_Grad_i[3][1]-PrimVar_Grad_i[2][2])*(PrimVar_Grad_i[3][1]-PrimVar_Grad_i[2][2]) + (PrimVar_Grad_i[1][2]-PrimVar_Grad_i[3][0])*(PrimVar_Grad_i[1][2]-PrimVar_Grad_i[3][0]) ); @@ -411,22 +411,22 @@ void CSourcePieceWise_AdjTurb::ComputeResidual(double *val_residual, double **va /*--- FIRST PART: -Bs*TurbPsi_i ---*/ /*--- CLOUSURE CONSTANTS ---*/ - double cv1 = 7.1; - double cv1_3 = cv1*cv1*cv1; - double k = 0.41; - double k2 = k*k; - double cb1 = 0.1355; - double cw2 = 0.3; - double cw3_6 = pow(2.0,6.0); - double sigma = 2./3.; - double cb2 = 0.622; - double cw1 = cb1/k2+(1+cb2)/sigma; + su2double cv1 = 7.1; + su2double cv1_3 = cv1*cv1*cv1; + su2double k = 0.41; + su2double k2 = k*k; + su2double cb1 = 0.1355; + su2double cw2 = 0.3; + su2double cw3_6 = pow(2.0,6.0); + su2double sigma = 2./3.; + su2double cb2 = 0.622; + su2double cw1 = cb1/k2+(1+cb2)/sigma; - double nu, Ji, fv1, fv2, Shat, dist_0_2, Ji_2, Ji_3, one_o_oneplusJifv1; - double r, g, g_6, glim, fw; - double dTs_nuhat, dTs_Shat, dShat_nuhat, dTs_fw, dfw_g, dg_r, dr_nuhat, dr_Shat; - double dShat_fv2, dfv2_fv1, dfv1_Ji, dJi_nuhat, dfv2_Ji; - double Bs; + su2double nu, Ji, fv1, fv2, Shat, dist_0_2, Ji_2, Ji_3, one_o_oneplusJifv1; + su2double r, g, g_6, glim, fw; + su2double dTs_nuhat, dTs_Shat, dShat_nuhat, dTs_fw, dfw_g, dg_r, dr_nuhat, dr_Shat; + su2double dShat_fv2, dfv2_fv1, dfv1_Ji, dJi_nuhat, dfv2_Ji; + su2double Bs; dist_0_2 = dist_i*dist_i; nu = Laminar_Viscosity_i/U_i[0]; @@ -471,7 +471,7 @@ void CSourcePieceWise_AdjTurb::ComputeResidual(double *val_residual, double **va val_Jacobian_i[0][0] = -Bs*Volume; /*---SECOND PART: \partial_nu_hat mu^k F^{vk} cdot \grad Psi ---*/ - double dEddyVisc_nuhat; + su2double dEddyVisc_nuhat; if (!config->GetFrozen_Visc()) dEddyVisc_nuhat = U_i[0]*fv1*(1.0 + 3.0*cv1_3/(Ji_3+cv1_3)); else @@ -483,9 +483,9 @@ void CSourcePieceWise_AdjTurb::ComputeResidual(double *val_residual, double **va tau[iDim][iDim] -= TWO3*div_vel; } - double Gas_Constant = config->GetGas_ConstantND(); - double Cp = (Gamma/Gamma_Minus_One)*Gas_Constant; - double tau_gradphi = 0.0, vel_tau_gradpsi5 = 0.0, gradT_gradpsi5 = 0.0; + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double Cp = (Gamma/Gamma_Minus_One)*Gas_Constant; + su2double tau_gradphi = 0.0, vel_tau_gradpsi5 = 0.0, gradT_gradpsi5 = 0.0; for (iDim = 0; iDim < nDim; iDim++) { gradT_gradpsi5 += PrimVar_Grad_i[0][iDim]*PsiVar_Grad_i[nVar-1][iDim]; @@ -509,7 +509,7 @@ CSourceConservative_AdjTurb::CSourceConservative_AdjTurb(unsigned short val_nDim CSourceConservative_AdjTurb::~CSourceConservative_AdjTurb(void) { } -void CSourceConservative_AdjTurb::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CSourceConservative_AdjTurb::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- SOURCE term --> \nabla ( \psi_\mu \B7 E^{s} ) E^{s} = 2 c_{b2}/\sigma \nabla \hat{nu} ---*/ @@ -517,10 +517,10 @@ void CSourceConservative_AdjTurb::ComputeResidual(double *val_residual, double * unsigned short iDim; bool implicit = (config->GetKind_TimeIntScheme_AdjTurb() == EULER_IMPLICIT); - double cb2 = 0.622; - double sigma = 2./3.; - double coeff = 2.0*cb2/sigma; - double E_ij, proj_TurbVar_Grad_i, proj_TurbVar_Grad_j; + su2double cb2 = 0.622; + su2double sigma = 2./3.; + su2double coeff = 2.0*cb2/sigma; + su2double E_ij, proj_TurbVar_Grad_i, proj_TurbVar_Grad_j; E_ij = 0.0; proj_TurbVar_Grad_i = 0.0; proj_TurbVar_Grad_j = 0.0; for (iDim = 0; iDim < nDim; iDim++) { diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index 43b6988e2a3..733e1867109 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -43,13 +43,13 @@ CGalerkin_FEA::CGalerkin_FEA(unsigned short val_nDim, unsigned short val_nVar, C CGalerkin_FEA::~CGalerkin_FEA(void) { } -void CGalerkin_FEA::PressInt_Linear(double CoordCorners[4][3], double *tn_e, double Fnodal[12]) { +void CGalerkin_FEA::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]) { if (nDim == 2){ - double a[3], b[3], Length_Elem, GaussPoint[2]; + su2double a[3], b[3], Length_Elem, GaussPoint[2]; unsigned short iDim, iGauss, nGP=2; - double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; + su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; for (iDim = 0; iDim < nDim; iDim++) { a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; @@ -87,11 +87,11 @@ void CGalerkin_FEA::PressInt_Linear(double CoordCorners[4][3], double *tn_e, dou } -void CGalerkin_FEA::ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3][3], double Tau_1[3][3], double FviscNodal[4]) { +void CGalerkin_FEA::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { - double a[3], Length_Elem, Normal_Elem[2], Normal_Elem_Unit[2], GaussPoint[2]; - double TauElem_0[3], TauElem_1[3]; - double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; + su2double a[3], Length_Elem, Normal_Elem[2], Normal_Elem_Unit[2], GaussPoint[2]; + su2double TauElem_0[3], TauElem_1[3]; + su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; unsigned short iDim, jDim, iGauss, nGP=2; for (iDim = 0; iDim < nDim; iDim++) { @@ -148,11 +148,11 @@ void CGalerkin_FEA::ViscTermInt_Linear(double CoordCorners[2][2], double Tau_0[3 -double CGalerkin_FEA::ShapeFunc_Triangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -209,11 +209,11 @@ double CGalerkin_FEA::ShapeFunc_Triangle(double Xi, double Eta, double CoordCorn } -double CGalerkin_FEA::ShapeFunc_Rectangle(double Xi, double Eta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -272,11 +272,11 @@ double CGalerkin_FEA::ShapeFunc_Rectangle(double Xi, double Eta, double CoordCor } -double CGalerkin_FEA::ShapeFunc_Tetra(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -342,15 +342,15 @@ double CGalerkin_FEA::ShapeFunc_Tetra(double Xi, double Eta, double Zeta, double } -double CGalerkin_FEA::ShapeFunc_Pyram(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ - double Den = 4.0*(1.0 - Zeta); + su2double Den = 4.0*(1.0 - Zeta); DShapeFunction[0][3] = (-Xi+Eta+Zeta-1.0)*(-Xi-Eta+Zeta-1.0)/Den; DShapeFunction[1][3] = (-Xi-Eta+Zeta-1.0)*(Xi-Eta+Zeta-1.0)/Den; @@ -430,11 +430,11 @@ double CGalerkin_FEA::ShapeFunc_Pyram(double Xi, double Eta, double Zeta, double } -double CGalerkin_FEA::ShapeFunc_Prism(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -504,11 +504,11 @@ double CGalerkin_FEA::ShapeFunc_Prism(double Xi, double Eta, double Zeta, double } -double CGalerkin_FEA::ShapeFunc_Hexa(double Xi, double Eta, double Zeta, double CoordCorners[8][3], double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; - double c0, c1, c2, xsj; - double xs[3][3], ad[3][3]; + su2double c0, c1, c2, xsj; + su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ @@ -605,14 +605,14 @@ double CGalerkin_FEA::ShapeFunc_Hexa(double Xi, double Eta, double Zeta, double } -void CGalerkin_FEA::SetFEA_StiffMatrix2D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { +void CGalerkin_FEA::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - double B_Matrix[3][8], D_Matrix[3][3], Aux_Matrix[8][3]; - double Xi = 0.0, Eta = 0.0, Det = 0.0; + su2double B_Matrix[3][8], D_Matrix[3][3], Aux_Matrix[8][3]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[4][3], Weight[4]; + su2double Location[4][3], Weight[4]; unsigned short nVar = 2; for (iVar = 0; iVar < nNodes*nVar; iVar++) { @@ -704,14 +704,14 @@ void CGalerkin_FEA::SetFEA_StiffMatrix2D(double **StiffMatrix_Elem, double Coord } -void CGalerkin_FEA::SetFEA_StiffMatrix3D(double **StiffMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes) { +void CGalerkin_FEA::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { - double B_Matrix[6][24], D_Matrix[6][6], Aux_Matrix[24][6]; - double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; + su2double B_Matrix[6][24], D_Matrix[6][6], Aux_Matrix[24][6]; + su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[8][3], Weight[8]; + su2double Location[8][3], Weight[8]; unsigned short nVar = 3; @@ -831,15 +831,15 @@ void CGalerkin_FEA::SetFEA_StiffMatrix3D(double **StiffMatrix_Elem, double Coord } -void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { +void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - double B_Matrix[3][8], D_Matrix[3][3], N_Matrix[2][8], Aux_Matrix[8][3]; - double Xi = 0.0, Eta = 0.0, Det = 0.0; + su2double B_Matrix[3][8], D_Matrix[3][3], N_Matrix[2][8], Aux_Matrix[8][3]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[4][3], Weight[4]; + su2double Location[4][3], Weight[4]; unsigned short nVar = 2; for (iVar = 0; iVar < nNodes*nVar; iVar++) { @@ -953,15 +953,15 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(double **StiffMatrix_Elem, double * } -void CGalerkin_FEA::SetFEA_StiffMassMatrix3D(double **StiffMatrix_Elem, double **MassMatrix_Elem, double CoordCorners[8][3], unsigned short nNodes) { +void CGalerkin_FEA::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { - double B_Matrix[6][24], D_Matrix[6][6], N_Matrix[3][24], Aux_Matrix[24][6]; - double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; + su2double B_Matrix[6][24], D_Matrix[6][6], N_Matrix[3][24], Aux_Matrix[24][6]; + su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[8][3], Weight[8]; + su2double Location[8][3], Weight[8]; unsigned short nVar = 3; @@ -1107,17 +1107,17 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix3D(double **StiffMatrix_Elem, double * } -void CGalerkin_FEA::SetFEA_DeadLoad2D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity){ +void CGalerkin_FEA::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity){ - double N_Matrix[2][8], Aux_Vector[2], DeadLoad_Elem[80]; - double Xi = 0.0, Eta = 0.0, Det = 0.0; + su2double N_Matrix[2][8], Aux_Vector[2], DeadLoad_Elem[80]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[4][3], Weight[4]; + su2double Location[4][3], Weight[4]; unsigned short nVar2D = 2; - double gravity; + su2double gravity; gravity=9.80665; @@ -1185,20 +1185,20 @@ void CGalerkin_FEA::SetFEA_DeadLoad2D(double *DeadLoadVector_Elem, double CoordC } -void CGalerkin_FEA::SetFEA_DeadLoad3D(double *DeadLoadVector_Elem, double CoordCorners[8][3], unsigned short nNodes, double matDensity){ +void CGalerkin_FEA::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity){ } -void CGalerkin_FEA::GetFEA_StressNodal2D(double StressNodal[8][3], double DispElement[8], double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { +void CGalerkin_FEA::GetFEA_StressNodal2D(su2double StressNodal[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - double B_Matrix[3][8], D_Matrix[3][3], StrainVector[3]; - double Xi = 0.0, Eta = 0.0, Det = 0.0; + su2double B_Matrix[3][8], D_Matrix[3][3], StrainVector[3]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iNodal, nNodal = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[4][3]; + su2double Location[4][3]; unsigned short nVar = 2; /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ @@ -1287,15 +1287,15 @@ void CGalerkin_FEA::GetFEA_StressNodal2D(double StressNodal[8][3], double DispEl } -void CGalerkin_FEA::GetFEA_StressNodal3D(double StressNodal[8][6], double DispElement[24], double CoordCorners[8][3], unsigned short nNodes) { +void CGalerkin_FEA::GetFEA_StressNodal3D(su2double StressNodal[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { - double B_Matrix[6][24], D_Matrix[6][6], StrainVector[6]; - double Xi = 0.0, Eta = 0.0, Zeta=0.0, Det = 0.0; + su2double B_Matrix[6][24], D_Matrix[6][6], StrainVector[6]; + su2double Xi = 0.0, Eta = 0.0, Zeta=0.0, Det = 0.0; unsigned short iNode, iVar, jVar, kVar, iNodal, nNodal = 0; - double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - double Location[8][3]; + su2double Location[8][3]; unsigned short nVar = 3; diff --git a/SU2_CFD/src/numerics_direct_mean.cpp b/SU2_CFD/src/numerics_direct_mean.cpp index 7ed466b32a6..331ec68d5af 100644 --- a/SU2_CFD/src/numerics_direct_mean.cpp +++ b/SU2_CFD/src/numerics_direct_mean.cpp @@ -45,12 +45,12 @@ CCentJST_Flow::CCentJST_Flow(unsigned short val_nDim, unsigned short val_nVar, C Param_Kappa_4 = config->GetKappa_4th_Flow(); /*--- Allocate some structures ---*/ - Diff_U = new double [nVar]; - Diff_Lapl = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux = new double [nVar]; + Diff_U = new su2double [nVar]; + Diff_Lapl = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux = new su2double [nVar]; } @@ -63,10 +63,10 @@ CCentJST_Flow::~CCentJST_Flow(void) { delete [] ProjFlux; } -void CCentJST_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, +void CCentJST_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; + su2double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; /*--- Pressure, density, enthalpy, energy, and velocity at points i and j ---*/ @@ -171,7 +171,7 @@ void CCentJST_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_ Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); sc4 = sc2*sc2/4.0; Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; @@ -186,8 +186,8 @@ void CCentJST_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_ if (implicit) { - cte_0 = (Epsilon_2 + Epsilon_4*double(Neighbor_i+1))*StretchingFactor*MeanLambda; - cte_1 = (Epsilon_2 + Epsilon_4*double(Neighbor_j+1))*StretchingFactor*MeanLambda; + cte_0 = (Epsilon_2 + Epsilon_4*su2double(Neighbor_i+1))*StretchingFactor*MeanLambda; + cte_1 = (Epsilon_2 + Epsilon_4*su2double(Neighbor_j+1))*StretchingFactor*MeanLambda; for (iVar = 0; iVar < (nVar-1); iVar++) { val_Jacobian_i[iVar][iVar] += cte_0; @@ -227,12 +227,12 @@ CCentJST_KE_Flow::CCentJST_KE_Flow(unsigned short val_nDim, unsigned short val_n Param_Kappa_4 = config->GetKappa_4th_Flow(); /*--- Allocate some structures ---*/ - Diff_U = new double [nVar]; - Diff_Lapl = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux = new double [nVar]; + Diff_U = new su2double [nVar]; + Diff_Lapl = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux = new su2double [nVar]; } @@ -245,10 +245,10 @@ CCentJST_KE_Flow::~CCentJST_KE_Flow(void) { delete [] ProjFlux; } -void CCentJST_KE_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, +void CCentJST_KE_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; + su2double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; /*--- Pressure, density, enthalpy, energy, and velocity at points i and j ---*/ @@ -352,7 +352,7 @@ void CCentJST_KE_Flow::ComputeResidual(double *val_residual, double **val_Jacobi Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); sc4 = sc2*sc2/4.0; Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; @@ -405,11 +405,11 @@ CCentLax_Flow::CCentLax_Flow(unsigned short val_nDim, unsigned short val_nVar, C Param_Kappa_0 = config->GetKappa_1st_Flow(); /*--- Allocate some structures ---*/ - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux = new double [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux = new su2double [nVar]; } @@ -422,10 +422,10 @@ CCentLax_Flow::~CCentLax_Flow(void) { } -void CCentLax_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, +void CCentLax_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; + su2double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; /*--- Pressure, density, enthalpy, energy, and velocity at points i and j ---*/ @@ -527,8 +527,8 @@ void CCentLax_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_ Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc0 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_0 = Param_Kappa_0*sc0*double(nDim)/3.0; + sc0 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_0 = Param_Kappa_0*sc0*su2double(nDim)/3.0; /*--- Compute viscous part of the residual ---*/ @@ -572,17 +572,17 @@ CUpwCUSP_Flow::CUpwCUSP_Flow(unsigned short val_nDim, unsigned short val_nVar, C grid_movement = config->GetGrid_Movement(); /*--- Allocate some structures ---*/ - Diff_U = new double [nVar]; - Diff_Flux = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux = new double [nVar]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Jacobian = new double* [nVar]; + Diff_U = new su2double [nVar]; + Diff_Flux = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux = new su2double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Jacobian = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian[iVar] = new double [nVar]; + Jacobian[iVar] = new su2double [nVar]; } } @@ -600,7 +600,7 @@ CUpwCUSP_Flow::~CUpwCUSP_Flow(void) { } } -void CUpwCUSP_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, +void CUpwCUSP_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Pressure, density, enthalpy, energy, and velocity at points i and j ---*/ @@ -758,21 +758,21 @@ CUpwAUSM_Flow::CUpwAUSM_Flow(unsigned short val_nDim, unsigned short val_nVar, C Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - RoeVelocity = new double [nDim]; - delta_vel = new double [nDim]; - delta_wave = new double [nVar]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + delta_vel = new su2double [nDim]; + delta_wave = new su2double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -797,7 +797,7 @@ CUpwAUSM_Flow::~CUpwAUSM_Flow(void) { } -void CUpwAUSM_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwAUSM_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Face area (norm or the normal vector) ---*/ Area = 0.0; @@ -927,21 +927,21 @@ CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, C Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - RoeVelocity = new double [nDim]; - delta_vel = new double [nDim]; - delta_wave = new double [nVar]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + delta_vel = new su2double [nDim]; + delta_wave = new su2double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -967,7 +967,7 @@ CUpwHLLC_Flow::~CUpwHLLC_Flow(void) { } -void CUpwHLLC_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwHLLC_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Face area (norm or the normal vector) ---*/ @@ -1155,55 +1155,55 @@ void CUpwHLLC_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_ #ifdef CHECK -int UgpWithCvCompFlow::calcEulerFluxMatrices_HLLC(double (*val_Jacobian_i)[5], double (*val_Jacobian_j)[5], double (*val_Jacobian_i_Scal)[6], double (*val_Jacobian_j_Scal)[6], - const double Density_i, const double *uL, const double pL, const double TL, const double h0, const double RL, const double gammaL, const double *scalL, const double kL, - const double Density_j, const double *uR, const double pR, const double TR, const double h1, const double RR, const double gammaR, const double *scalR, const double kR, - const double area, const double *nVec, const int nScal, const double surfVeloc) +int UgpWithCvCompFlow::calcEulerFluxMatrices_HLLC(su2double (*val_Jacobian_i)[5], su2double (*val_Jacobian_j)[5], su2double (*val_Jacobian_i_Scal)[6], su2double (*val_Jacobian_j_Scal)[6], + const su2double Density_i, const su2double *uL, const su2double pL, const su2double TL, const su2double h0, const su2double RL, const su2double gammaL, const su2double *scalL, const su2double kL, + const su2double Density_j, const su2double *uR, const su2double pR, const su2double TR, const su2double h1, const su2double RR, const su2double gammaR, const su2double *scalR, const su2double kR, + const su2double area, const su2double *nVec, const int nScal, const su2double surfVeloc) { - double unL = vecDotVec3d(uL, nVec); - double uLuL = vecDotVec3d(uL, uL); - double cL = sqrt(gammaL*pL/Density_i); - double hL = gammaL/(gammaL-1.0)*pL/Density_i + 0.5*uLuL + kL; - // double hL = h0 + 0.5*uLuL + kL; - double eL = hL*Density_i-pL; + su2double unL = vecDotVec3d(uL, nVec); + su2double uLuL = vecDotVec3d(uL, uL); + su2double cL = sqrt(gammaL*pL/Density_i); + su2double hL = gammaL/(gammaL-1.0)*pL/Density_i + 0.5*uLuL + kL; + // su2double hL = h0 + 0.5*uLuL + kL; + su2double eL = hL*Density_i-pL; - double unR = vecDotVec3d(uR, nVec); - double uRuR = vecDotVec3d(uR, uR); - double cR = sqrt(gammaR*pR/Density_j); - double hR = gammaR/(gammaR-1.0)*pR/Density_j + 0.5*uRuR + kR; - // double hR = h1 + 0.5*uRuR + kR; - double eR = hR*Density_j-pR; + su2double unR = vecDotVec3d(uR, nVec); + su2double uRuR = vecDotVec3d(uR, uR); + su2double cR = sqrt(gammaR*pR/Density_j); + su2double hR = gammaR/(gammaR-1.0)*pR/Density_j + 0.5*uRuR + kR; + // su2double hR = h1 + 0.5*uRuR + kR; + su2double eR = hR*Density_j-pR; // Roe's aveaging - double Rrho = sqrt(Density_j/Density_i); - double tmp = 1.0/(1.0+Rrho); - double velRoe[3]; + su2double Rrho = sqrt(Density_j/Density_i); + su2double tmp = 1.0/(1.0+Rrho); + su2double velRoe[3]; for (int i=0; i<3; i++) velRoe[i] = tmp*(uL[i] + uR[i]*Rrho); - double uRoe = vecDotVec3d(velRoe, nVec); - double hRoe = tmp*(hL + hR*Rrho); + su2double uRoe = vecDotVec3d(velRoe, nVec); + su2double hRoe = tmp*(hL + hR*Rrho); - // double cRoe = sqrt((gammaL-1.0)*(hRoe- 0.5*vecDotVec3d(velRoe, velRoe))); - double gamPdivRho = tmp*((gammaL*pL/Density_i+0.5*(gammaL-1.0)*uLuL) + (gammaR*pR/Density_j+0.5*(gammaR-1.0)*uRuR)*Rrho); - double cRoe = sqrt(gamPdivRho - ((gammaL+gammaR)*0.5-1.0)*0.5*vecDotVec3d(velRoe, velRoe)); + // su2double cRoe = sqrt((gammaL-1.0)*(hRoe- 0.5*vecDotVec3d(velRoe, velRoe))); + su2double gamPdivRho = tmp*((gammaL*pL/Density_i+0.5*(gammaL-1.0)*uLuL) + (gammaR*pR/Density_j+0.5*(gammaR-1.0)*uRuR)*Rrho); + su2double cRoe = sqrt(gamPdivRho - ((gammaL+gammaR)*0.5-1.0)*0.5*vecDotVec3d(velRoe, velRoe)); // speed of sound at L and R - double sL = min(uRoe-cRoe, unL-cL); - double sR = max(uRoe+cRoe, unR+cR); + su2double sL = min(uRoe-cRoe, unL-cL); + su2double sR = max(uRoe+cRoe, unR+cR); // speed of contact surface - double sM = (pL-pR-Density_i*unL*(sL-unL)+Density_j*unR*(sR-unR))/(Density_j*(sR-unR)-Density_i*(sL-unL)); + su2double sM = (pL-pR-Density_i*unL*(sL-unL)+Density_j*unR*(sR-unR))/(Density_j*(sR-unR)-Density_i*(sL-unL)); // pressure at right and left (pR=pL) side of contact surface - double pStar = Density_j*(unR-sR)*(unR-sM)+pR; + su2double pStar = Density_j*(unR-sR)*(unR-sM)+pR; if (sM >= 0.0) { if (sL > 0.0) { - double nVecArea[3]; + su2double nVecArea[3]; for (int i=0; i<3; i++) nVecArea[i] = nVec[i]*area; calcJacobianA(val_Jacobian_i, uL, pL, Density_i, nVecArea, 0.5*(gammaL+gammaR), 0.0); @@ -1215,21 +1215,21 @@ int UgpWithCvCompFlow::calcEulerFluxMatrices_HLLC(double (*val_Jacobian_i)[5], d } else { - double invSLmSs = 1.0/(sL-sM); - double sLmuL = sL-unL; - double rhoSL = Density_i*sLmuL*invSLmSs; - double rhouSL[3]; + su2double invSLmSs = 1.0/(sL-sM); + su2double sLmuL = sL-unL; + su2double rhoSL = Density_i*sLmuL*invSLmSs; + su2double rhouSL[3]; for (int i=0; i<3; i++) rhouSL[i] = (Density_i*uL[i]*sLmuL+(pStar-pL)*nVec[i])*invSLmSs; - double eSL = (sLmuL*eL-pL*unL+pStar*sM)*invSLmSs; - double gammaLM1 = (gammaL-1.0); - double gammaRM1 = (gammaR-1.0); - double invrhotld = 1.0/(Density_j*(sR-unR)-Density_i*(sL-unL)); + su2double eSL = (sLmuL*eL-pL*unL+pStar*sM)*invSLmSs; + su2double gammaLM1 = (gammaL-1.0); + su2double gammaRM1 = (gammaR-1.0); + su2double invrhotld = 1.0/(Density_j*(sR-unR)-Density_i*(sL-unL)); - double dSMdUL[5], dSMdUR[5]; - double dpsdUL[5], dpsdUR[5]; + su2double dSMdUL[5], dSMdUR[5]; + su2double dpsdUL[5], dpsdUR[5]; dSMdUL[0] = -unL*unL + uLuL*gammaLM1/2.0 + sM*sL; dSMdUL[1] = nVec[0]*(2.0*unL-sL-sM) - gammaLM1*uL[0]; @@ -1287,19 +1287,19 @@ int UgpWithCvCompFlow::calcEulerFluxMatrices_HLLC(double (*val_Jacobian_i)[5], d if (sR >= 0.0) { - double invSRmSs = 1.0/(sR-sM); - double sRmuR = sR-unR; - double rhoSR = Density_j*sRmuR*invSRmSs; - double rhouSR[3]; + su2double invSRmSs = 1.0/(sR-sM); + su2double sRmuR = sR-unR; + su2double rhoSR = Density_j*sRmuR*invSRmSs; + su2double rhouSR[3]; for (int i=0; i<3; i++) rhouSR[i] = (Density_j*uR[i]*sRmuR+(pStar-pR)*nVec[i])*invSRmSs; - double eSR = (sRmuR*eR-pR*unR+pStar*sM)*invSRmSs; - double gammaLM1 = (gammaL-1.0); - double gammaRM1 = (gammaR-1.0); - double invrhotld = 1.0/(Density_j*(sR-unR)-Density_i*(sL-unL)); + su2double eSR = (sRmuR*eR-pR*unR+pStar*sM)*invSRmSs; + su2double gammaLM1 = (gammaL-1.0); + su2double gammaRM1 = (gammaR-1.0); + su2double invrhotld = 1.0/(Density_j*(sR-unR)-Density_i*(sL-unL)); - double dSMdUL[5], dSMdUR[5]; - double dpsdUL[5], dpsdUR[5]; + su2double dSMdUL[5], dSMdUR[5]; + su2double dpsdUL[5], dpsdUR[5]; dSMdUL[0] = -unL*unL + uLuL*gammaLM1/2.0 + sM*sL; dSMdUL[1] = nVec[0]*(2.0*unL-sL-sM) - gammaLM1*uL[0]; @@ -1352,7 +1352,7 @@ int UgpWithCvCompFlow::calcEulerFluxMatrices_HLLC(double (*val_Jacobian_i)[5], d else { - double nVecArea[3]; + su2double nVecArea[3]; for (int i=0; i<3; i++) nVecArea[i] = nVec[i]*area; calcJacobianA(val_Jacobian_j, uR, pR, Density_j, nVecArea, 0.5*(gammaL+gammaR), 0.0); @@ -1366,15 +1366,15 @@ int UgpWithCvCompFlow::calcEulerFluxMatrices_HLLC(double (*val_Jacobian_i)[5], d } -void UgpWithCvCompFlow::calcSubSonicJacobeanHLLC(double (*AL)[5], double (*AR)[5], - double Density_i, const double *uL, double pL, double eL, double qL, double psiL, double SL, - double rhoSL, double *rhouSL, double eSL, - double *dSMdUL, double *dSMdUR, double *dpsdUL, double *dpsdUR, double SM, double pS, - double gamma, const double *nV) // nV is not normalized +void UgpWithCvCompFlow::calcSubSonicJacobeanHLLC(su2double (*AL)[5], su2double (*AR)[5], + su2double Density_i, const su2double *uL, su2double pL, su2double eL, su2double qL, su2double psiL, su2double SL, + su2double rhoSL, su2double *rhouSL, su2double eSL, + su2double *dSMdUL, su2double *dSMdUR, su2double *dpsdUL, su2double *dpsdUR, su2double SM, su2double pS, + su2double gamma, const su2double *nV) // nV is not normalized { - double gammaMinus1 = (gamma-1.0); - double omL = 1.0/(SL-SM); + su2double gammaMinus1 = (gamma-1.0); + su2double omL = 1.0/(SL-SM); AL[0][0] = SL + rhoSL*dSMdUL[0]; AL[0][1] = -nV[0] + rhoSL*dSMdUL[1]; @@ -1418,19 +1418,19 @@ void UgpWithCvCompFlow::calcSubSonicJacobeanHLLC(double (*AL)[5], double (*AR)[5 } -void UgpWithCvCompFlow::calcJacobianA(double (*A)[5], const double *vel, double pp, double rrho, const double *nV, double gamma, double surfVeloc) // nV is not normalized +void UgpWithCvCompFlow::calcJacobianA(su2double (*A)[5], const su2double *vel, su2double pp, su2double rrho, const su2double *nV, su2double gamma, su2double surfVeloc) // nV is not normalized { - double kapm1 = (gamma - 1.0); + su2double kapm1 = (gamma - 1.0); - double nVel[3]; + su2double nVel[3]; nVel[0] = vel[0]*nV[0]; nVel[1] = vel[1]*nV[1]; nVel[2] = vel[2]*nV[2]; - double U_k = nVel[0]+nVel[1]+nVel[2]; - double vSquHlf = 0.5*vecDotVec3d(vel, vel); - double c = sqrt(gamma*pp/rrho); - double inv_kap_m1 = 1.0/kapm1; + su2double U_k = nVel[0]+nVel[1]+nVel[2]; + su2double vSquHlf = 0.5*vecDotVec3d(vel, vel); + su2double c = sqrt(gamma*pp/rrho); + su2double inv_kap_m1 = 1.0/kapm1; A[0][0] =-surfVeloc; A[0][1] = nV[0]; @@ -1477,21 +1477,21 @@ CUpwRoe_Flow::CUpwRoe_Flow(unsigned short val_nDim, unsigned short val_nVar, CCo Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - RoeVelocity = new double [nDim]; - delta_vel = new double [nDim]; - delta_wave = new double [nVar]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + delta_vel = new su2double [nDim]; + delta_wave = new su2double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -1516,10 +1516,10 @@ CUpwRoe_Flow::~CUpwRoe_Flow(void) { } -void CUpwRoe_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwRoe_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; - double ProjGridVel = 0.0; + su2double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; + su2double ProjGridVel = 0.0; /*--- Face area (norm or the normal vector) ---*/ @@ -1750,21 +1750,21 @@ CUpwGeneralRoe_Flow::CUpwGeneralRoe_Flow(unsigned short val_nDim, unsigned short grid_movement = config->GetGrid_Movement(); - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - RoeVelocity = new double [nDim]; - delta_vel = new double [nDim]; - delta_wave = new double [nVar]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + delta_vel = new su2double [nDim]; + delta_wave = new su2double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -1789,9 +1789,9 @@ CUpwGeneralRoe_Flow::~CUpwGeneralRoe_Flow(void) { } -void CUpwGeneralRoe_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwGeneralRoe_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; + su2double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; /*--- Face area (norm or the normal vector) ---*/ @@ -1878,7 +1878,7 @@ void CUpwGeneralRoe_Flow::ComputeResidual(double *val_residual, double **val_Jac /*--- Projected velocity adjustment due to mesh motion ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*UnitNormal[iDim]; } @@ -2003,8 +2003,8 @@ void CUpwGeneralRoe_Flow::ComputeResidual(double *val_residual, double **val_Jac void CUpwGeneralRoe_Flow::ComputeRoeAverage() { - double delta_rhoStaticEnergy, err_P, s, D;//, stateSeparationLimit; - // double tol = 10-6; + su2double delta_rhoStaticEnergy, err_P, s, D;//, stateSeparationLimit; + // su2double tol = 10-6; // R = sqrt(fabs(Density_j/Density_i)); RoeDensity = R*Density_i; @@ -2047,29 +2047,29 @@ CUpwMSW_Flow::CUpwMSW_Flow(unsigned short val_nDim, unsigned short val_nVar, CCo implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); /*--- Allocate arrays ---*/ - Diff_U = new double [nVar]; - Fc_i = new double [nVar]; - Fc_j = new double [nVar]; - Lambda_i = new double [nVar]; - Lambda_j = new double [nVar]; - - u_i = new double [nDim]; - u_j = new double [nDim]; - ust_i = new double [nDim]; - ust_j = new double [nDim]; - Vst_i = new double [nPrimVar]; - Vst_j = new double [nPrimVar]; - Ust_i = new double [nVar]; - Ust_j = new double [nVar]; - - Velst_i = new double [nDim]; - Velst_j = new double [nDim]; - - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Fc_i = new su2double [nVar]; + Fc_j = new su2double [nVar]; + Lambda_i = new su2double [nVar]; + Lambda_j = new su2double [nVar]; + + u_i = new su2double [nDim]; + u_j = new su2double [nDim]; + ust_i = new su2double [nDim]; + ust_j = new su2double [nDim]; + Vst_i = new su2double [nPrimVar]; + Vst_j = new su2double [nPrimVar]; + Ust_i = new su2double [nVar]; + Ust_j = new su2double [nVar]; + + Velst_i = new su2double [nDim]; + Velst_j = new su2double [nDim]; + + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -2102,16 +2102,16 @@ CUpwMSW_Flow::~CUpwMSW_Flow(void) { } -void CUpwMSW_Flow::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CUpwMSW_Flow::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { unsigned short iDim, iVar, jVar, kVar; - double P_i, P_j; - double ProjVel_i, ProjVel_j, ProjVelst_i, ProjVelst_j; - double sqvel_i, sqvel_j; - double alpha, w, dp, onemw; - double Proj_ModJac_Tensor_i, Proj_ModJac_Tensor_j; + su2double P_i, P_j; + su2double ProjVel_i, ProjVel_j, ProjVelst_i, ProjVelst_j; + su2double sqvel_i, sqvel_j; + su2double alpha, w, dp, onemw; + su2double Proj_ModJac_Tensor_i, Proj_ModJac_Tensor_j; /*--- Set parameters in the numerical method ---*/ alpha = 6.0; @@ -2265,25 +2265,25 @@ CUpwTurkel_Flow::CUpwTurkel_Flow(unsigned short val_nDim, unsigned short val_nVa Beta_min = config->GetminTurkelBeta(); Beta_max = config->GetmaxTurkelBeta(); - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - RoeVelocity = new double [nDim]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - absPeJac = new double* [nVar]; - invRinvPe = new double* [nVar]; - R_Tensor = new double* [nVar]; - Matrix = new double* [nVar]; - Art_Visc = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + absPeJac = new su2double* [nVar]; + invRinvPe = new su2double* [nVar]; + R_Tensor = new su2double* [nVar]; + Matrix = new su2double* [nVar]; + Art_Visc = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - absPeJac[iVar] = new double [nVar]; - invRinvPe[iVar] = new double [nVar]; - Matrix[iVar] = new double [nVar]; - Art_Visc[iVar] = new double [nVar]; - R_Tensor[iVar] = new double [nVar]; + absPeJac[iVar] = new su2double [nVar]; + invRinvPe[iVar] = new su2double [nVar]; + Matrix[iVar] = new su2double [nVar]; + Art_Visc[iVar] = new su2double [nVar]; + R_Tensor[iVar] = new su2double [nVar]; } } @@ -2312,9 +2312,9 @@ CUpwTurkel_Flow::~CUpwTurkel_Flow(void) { } -void CUpwTurkel_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwTurkel_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; + su2double U_i[5] = {0.0,0.0,0.0,0.0,0.0}, U_j[5] = {0.0,0.0,0.0,0.0,0.0}; /*--- Face area (norm or the normal vector) ---*/ @@ -2384,7 +2384,7 @@ void CUpwTurkel_Flow::ComputeResidual(double *val_residual, double **val_Jacobia /*--- Projected velocity adjustment due to mesh motion ---*/ if (grid_movement) { - double ProjGridVel = 0.0; + su2double ProjGridVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { ProjGridVel += 0.5*(GridVel_i[iDim]+GridVel_j[iDim])*UnitNormal[iDim]; } @@ -2489,20 +2489,20 @@ CUpwArtComp_Flow::CUpwArtComp_Flow(unsigned short val_nDim, unsigned short val_n gravity = config->GetGravityForce(); Froude = config->GetFroude(); - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -2527,7 +2527,7 @@ CUpwArtComp_Flow::~CUpwArtComp_Flow(void) { } -void CUpwArtComp_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwArtComp_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Face area (norm or the normal vector) ---*/ @@ -2636,20 +2636,20 @@ CUpwArtComp_FreeSurf_Flow::CUpwArtComp_FreeSurf_Flow(unsigned short val_nDim, un gravity = config->GetGravityForce(); Froude = config->GetFroude(); - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -2674,7 +2674,7 @@ CUpwArtComp_FreeSurf_Flow::~CUpwArtComp_FreeSurf_Flow(void) { } -void CUpwArtComp_FreeSurf_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwArtComp_FreeSurf_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Compute face area ---*/ @@ -2707,7 +2707,7 @@ void CUpwArtComp_FreeSurf_Flow::ComputeResidual(double *val_residual, double **v ProjVelocity += MeanVelocity[iDim]*Normal[iDim]; } - double epsilon = config->GetFreeSurface_Thickness(), Delta = 0.0; + su2double epsilon = config->GetFreeSurface_Thickness(), Delta = 0.0; if (LevelSet_i < -epsilon) Delta = 0.0; if (fabs(LevelSet_i) <= epsilon) Delta = 0.5*(1.0+cos(PI_NUMBER*LevelSet_i/epsilon))/epsilon; if (LevelSet_i > epsilon) Delta = 0.0; @@ -2740,8 +2740,8 @@ void CUpwArtComp_FreeSurf_Flow::ComputeResidual(double *val_residual, double **v /*--- Flow eigenvalues ---*/ - double a = MeanBetaInc2/MeanDensityInc, b = MeanLevelSet/MeanDensityInc, c = dMeanDensityInc; - double e = (2.0 - b*c)*ProjVelocity, f = sqrt(4.0*a*Area*Area + e*e); + su2double a = MeanBetaInc2/MeanDensityInc, b = MeanLevelSet/MeanDensityInc, c = dMeanDensityInc; + su2double e = (2.0 - b*c)*ProjVelocity, f = sqrt(4.0*a*Area*Area + e*e); if (nDim == 2) { Lambda[0] = ProjVelocity; @@ -2814,12 +2814,12 @@ CCentJSTArtComp_Flow::CCentJSTArtComp_Flow(unsigned short val_nDim, unsigned sho Param_Kappa_4 = config->GetKappa_4th_Flow(); /*--- Allocate some structures ---*/ - Diff_U = new double [nVar]; - Diff_Lapl = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux = new double [nVar]; + Diff_U = new su2double [nVar]; + Diff_Lapl = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux = new su2double [nVar]; } @@ -2834,10 +2834,10 @@ CCentJSTArtComp_Flow::~CCentJSTArtComp_Flow(void) { } -void CCentJSTArtComp_Flow::ComputeResidual(double *val_residual, - double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CCentJSTArtComp_Flow::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[4] = {0.0,0.0,0.0,0.0}, U_j[4] = {0.0,0.0,0.0,0.0}; + su2double U_i[4] = {0.0,0.0,0.0,0.0}, U_j[4] = {0.0,0.0,0.0,0.0}; /*--- Primitive variables at point i and j ---*/ @@ -2911,7 +2911,7 @@ void CCentJSTArtComp_Flow::ComputeResidual(double *val_residual, Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); sc4 = sc2*sc2/4.0; Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; @@ -2923,8 +2923,8 @@ void CCentJSTArtComp_Flow::ComputeResidual(double *val_residual, val_residual[iVar] += (Epsilon_2*Diff_U[iVar] - Epsilon_4*Diff_Lapl[iVar])*StretchingFactor*MeanLambda; if (implicit) { - cte_0 = (Epsilon_2 + Epsilon_4*double(Neighbor_i+1))*StretchingFactor*MeanLambda; - cte_1 = (Epsilon_2 + Epsilon_4*double(Neighbor_j+1))*StretchingFactor*MeanLambda; + cte_0 = (Epsilon_2 + Epsilon_4*su2double(Neighbor_i+1))*StretchingFactor*MeanLambda; + cte_1 = (Epsilon_2 + Epsilon_4*su2double(Neighbor_j+1))*StretchingFactor*MeanLambda; for (iVar = 0; iVar < nVar; iVar++) { val_Jacobian_i[iVar][iVar] += cte_0; @@ -2949,11 +2949,11 @@ CCentLaxArtComp_Flow::CCentLaxArtComp_Flow(unsigned short val_nDim, unsigned sho Param_Kappa_0 = config->GetKappa_1st_Flow(); /*--- Allocate some structures ---*/ - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - ProjFlux = new double [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + ProjFlux = new su2double [nVar]; } @@ -2967,10 +2967,10 @@ CCentLaxArtComp_Flow::~CCentLaxArtComp_Flow(void) { } -void CCentLaxArtComp_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, +void CCentLaxArtComp_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { - double U_i[4] = {0.0,0.0,0.0,0.0}, U_j[4] = {0.0,0.0,0.0,0.0}; + su2double U_i[4] = {0.0,0.0,0.0,0.0}, U_j[4] = {0.0,0.0,0.0,0.0}; /*--- Conservative variables at point i and j ---*/ @@ -3044,8 +3044,8 @@ void CCentLaxArtComp_Flow::ComputeResidual(double *val_residual, double **val_Ja Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc0 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_0 = Param_Kappa_0*sc0*double(nDim)/3.0; + sc0 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_0 = Param_Kappa_0*sc0*su2double(nDim)/3.0; /*--- Compute viscous part of the residual ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -3064,13 +3064,13 @@ CAvgGrad_Flow::CAvgGrad_Flow(unsigned short val_nDim, unsigned short val_nVar, C implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - PrimVar_i = new double [nDim+3]; - PrimVar_j = new double [nDim+3]; - Mean_PrimVar = new double [nDim+3]; + PrimVar_i = new su2double [nDim+3]; + PrimVar_j = new su2double [nDim+3]; + Mean_PrimVar = new su2double [nDim+3]; - Mean_GradPrimVar = new double* [nDim+1]; + Mean_GradPrimVar = new su2double* [nDim+1]; for (iVar = 0; iVar < nDim+1; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; } @@ -3085,7 +3085,7 @@ CAvgGrad_Flow::~CAvgGrad_Flow(void) { } -void CAvgGrad_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CAvgGrad_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -3162,15 +3162,15 @@ CGeneralAvgGrad_Flow::CGeneralAvgGrad_Flow(unsigned short val_nDim, unsigned sho implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /*--- Compressible flow, primitive variables nDim+3, (vx, vy, vz, P, rho, h) ---*/ - PrimVar_i = new double [nDim+4]; - PrimVar_j = new double [nDim+4]; - Mean_PrimVar = new double [nDim+4]; - Mean_SecVar = new double [2]; + PrimVar_i = new su2double [nDim+4]; + PrimVar_j = new su2double [nDim+4]; + Mean_PrimVar = new su2double [nDim+4]; + Mean_SecVar = new su2double [2]; /*--- Compressible flow, primitive gradient variables nDim+3, (T, vx, vy, vz) ---*/ - Mean_GradPrimVar = new double* [nDim+1]; + Mean_GradPrimVar = new su2double* [nDim+1]; for (iVar = 0; iVar < nDim+1; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; } CGeneralAvgGrad_Flow::~CGeneralAvgGrad_Flow(void) { @@ -3187,7 +3187,7 @@ CGeneralAvgGrad_Flow::~CGeneralAvgGrad_Flow(void) { } -void CGeneralAvgGrad_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CGeneralAvgGrad_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Normalized normal vector ---*/ Area = 0.0; @@ -3271,12 +3271,12 @@ CAvgGradArtComp_Flow::CAvgGradArtComp_Flow(unsigned short val_nDim, unsigned sho /*--- Incompressible flow, primitive variables nDim+1, (P, vx, vy, vz) ---*/ - Mean_GradPrimVar = new double* [nVar]; + Mean_GradPrimVar = new su2double* [nVar]; /*--- Incompressible flow, gradient primitive variables nDim+1, (P, vx, vy, vz) ---*/ for (iVar = 0; iVar < nVar; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; } @@ -3288,8 +3288,8 @@ CAvgGradArtComp_Flow::~CAvgGradArtComp_Flow(void) { } -void CAvgGradArtComp_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CAvgGradArtComp_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -3357,15 +3357,15 @@ CAvgGradCorrected_Flow::CAvgGradCorrected_Flow(unsigned short val_nDim, unsigned implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); limiter = config->GetViscous_Limiter_Flow(); - PrimVar_i = new double [nDim+3]; - PrimVar_j = new double [nDim+3]; - Mean_PrimVar = new double [nDim+3]; + PrimVar_i = new su2double [nDim+3]; + PrimVar_j = new su2double [nDim+3]; + Mean_PrimVar = new su2double [nDim+3]; - Proj_Mean_GradPrimVar_Edge = new double [nDim+1]; - Mean_GradPrimVar = new double* [nDim+1]; + Proj_Mean_GradPrimVar_Edge = new su2double [nDim+1]; + Mean_GradPrimVar = new su2double* [nDim+1]; for (iVar = 0; iVar < nDim+1; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; - Edge_Vector = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; + Edge_Vector = new su2double [nDim]; } CAvgGradCorrected_Flow::~CAvgGradCorrected_Flow(void) { @@ -3380,7 +3380,7 @@ CAvgGradCorrected_Flow::~CAvgGradCorrected_Flow(void) { delete [] Mean_GradPrimVar; } -void CAvgGradCorrected_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CAvgGradCorrected_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -3479,18 +3479,18 @@ void CAvgGradCorrected_Flow::ComputeResidual(double *val_residual, double **val_ // implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); // // /*--- Compressible flow, primitive variables nDim+3, (T, vx, vy, vz, P, rho) ---*/ -// PrimVar_i = new double [nDim+3]; -// PrimVar_j = new double [nDim+3]; -// Mean_PrimVar = new double [nDim+3]; -// Mean_SecVar = new double [8]; +// PrimVar_i = new su2double [nDim+3]; +// PrimVar_j = new su2double [nDim+3]; +// Mean_PrimVar = new su2double [nDim+3]; +// Mean_SecVar = new su2double [8]; // // /*--- Compressible flow, primitive gradient variables nDim+1, (T, vx, vy, vz) ---*/ -// Proj_Mean_GradPrimVar_Edge = new double [nDim+1]; -// Mean_GradPrimVar = new double* [nDim+1]; +// Proj_Mean_GradPrimVar_Edge = new su2double [nDim+1]; +// Mean_GradPrimVar = new su2double* [nDim+1]; // for (iVar = 0; iVar < nDim+1; iVar++) -// Mean_GradPrimVar[iVar] = new double [nDim]; +// Mean_GradPrimVar[iVar] = new su2double [nDim]; // -// Edge_Vector = new double [nDim]; +// Edge_Vector = new su2double [nDim]; // //} // @@ -3509,7 +3509,7 @@ void CAvgGradCorrected_Flow::ComputeResidual(double *val_residual, double **val_ // //} // -//void CGeneralAvgGradCorrected_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +//void CGeneralAvgGradCorrected_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { // // /*--- Normalized normal vector ---*/ // @@ -3609,18 +3609,18 @@ CGeneralAvgGradCorrected_Flow::CGeneralAvgGradCorrected_Flow(unsigned short val_ implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /*--- Compressible flow, primitive variables nDim+3, (vx, vy, vz, P, rho, h) ---*/ - PrimVar_i = new double [nDim+4]; - PrimVar_j = new double [nDim+4]; - Mean_PrimVar = new double [nDim+4]; - Mean_SecVar = new double [2]; + PrimVar_i = new su2double [nDim+4]; + PrimVar_j = new su2double [nDim+4]; + Mean_PrimVar = new su2double [nDim+4]; + Mean_SecVar = new su2double [2]; /*--- Compressible flow, primitive gradient variables nDim+1, (T, vx, vy, vz) ---*/ - Proj_Mean_GradPrimVar_Edge = new double [nDim+1]; - Mean_GradPrimVar = new double* [nDim+1]; + Proj_Mean_GradPrimVar_Edge = new su2double [nDim+1]; + Mean_GradPrimVar = new su2double* [nDim+1]; for (iVar = 0; iVar < nDim+1; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; - Edge_Vector = new double [nDim]; + Edge_Vector = new su2double [nDim]; } @@ -3639,7 +3639,7 @@ CGeneralAvgGradCorrected_Flow::~CGeneralAvgGradCorrected_Flow(void) { } -void CGeneralAvgGradCorrected_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CGeneralAvgGradCorrected_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -3738,14 +3738,14 @@ CAvgGradCorrectedArtComp_Flow::CAvgGradCorrectedArtComp_Flow(unsigned short val_ implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - PrimVar_i = new double [nVar]; - PrimVar_j = new double [nVar]; - Proj_Mean_GradPrimVar_Edge = new double [nVar]; - Edge_Vector = new double [nDim]; + PrimVar_i = new su2double [nVar]; + PrimVar_j = new su2double [nVar]; + Proj_Mean_GradPrimVar_Edge = new su2double [nVar]; + Edge_Vector = new su2double [nDim]; - Mean_GradPrimVar = new double* [nVar]; + Mean_GradPrimVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; } @@ -3762,7 +3762,7 @@ CAvgGradCorrectedArtComp_Flow::~CAvgGradCorrectedArtComp_Flow(void) { } -void CAvgGradCorrectedArtComp_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CAvgGradCorrectedArtComp_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { /*--- Normalized normal vector ---*/ @@ -3854,7 +3854,7 @@ CSourceGravity::CSourceGravity(unsigned short val_nDim, unsigned short val_nVar, CSourceGravity::~CSourceGravity(void) { } -void CSourceGravity::ComputeResidual(double *val_residual, CConfig *config) { +void CSourceGravity::ComputeResidual(su2double *val_residual, CConfig *config) { unsigned short iVar; for (iVar = 0; iVar < nVar; iVar++) @@ -3887,10 +3887,10 @@ CSourceRotatingFrame_Flow::CSourceRotatingFrame_Flow(unsigned short val_nDim, un CSourceRotatingFrame_Flow::~CSourceRotatingFrame_Flow(void) { } -void CSourceRotatingFrame_Flow::ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config) { +void CSourceRotatingFrame_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) { unsigned short iDim, iVar, jVar; - double Omega[3] = {0,0,0}, Momentum[3] = {0,0,0}; + su2double Omega[3] = {0,0,0}, Momentum[3] = {0,0,0}; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); /*--- Retrieve the angular velocity vector from config. ---*/ @@ -3949,9 +3949,9 @@ CSourceAxisymmetric_Flow::CSourceAxisymmetric_Flow(unsigned short val_nDim, unsi CSourceAxisymmetric_Flow::~CSourceAxisymmetric_Flow(void) { } -void CSourceAxisymmetric_Flow::ComputeResidual(double *val_residual, double **Jacobian_i, CConfig *config) { +void CSourceAxisymmetric_Flow::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, CConfig *config) { - double yinv, Pressure_i, Enthalpy_i, Velocity_i, sq_vel; + su2double yinv, Pressure_i, Enthalpy_i, Velocity_i, sq_vel; unsigned short iDim; bool implicit = (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT); @@ -4018,9 +4018,9 @@ CSourceWindGust::CSourceWindGust(unsigned short val_nDim, unsigned short val_nVa CSourceWindGust::~CSourceWindGust(void) { } -void CSourceWindGust::ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config) { +void CSourceWindGust::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) { - double u_gust, v_gust, du_gust_dx, du_gust_dy, du_gust_dt, dv_gust_dx, dv_gust_dy, dv_gust_dt, smx, smy, se, rho, u, v, p; + su2double u_gust, v_gust, du_gust_dx, du_gust_dy, du_gust_dt, dv_gust_dx, dv_gust_dy, dv_gust_dt, smx, smy, se, rho, u, v, p; unsigned short GustDir = config->GetGust_Dir(); //Gust direction u_gust = WindGust_i[0]; diff --git a/SU2_CFD/src/numerics_direct_poisson.cpp b/SU2_CFD/src/numerics_direct_poisson.cpp index 1c3c9cd3e26..ae9b262b3f6 100644 --- a/SU2_CFD/src/numerics_direct_poisson.cpp +++ b/SU2_CFD/src/numerics_direct_poisson.cpp @@ -38,9 +38,9 @@ CGalerkin_Flow::CGalerkin_Flow(unsigned short val_nDim, unsigned short val_nVar, CGalerkin_Flow::~CGalerkin_Flow(void) { } -void CGalerkin_Flow::ComputeResidual(double **val_stiffmatrix_elem, CConfig *config) { +void CGalerkin_Flow::ComputeResidual(su2double **val_stiffmatrix_elem, CConfig *config) { - double a[4], b[4], c[4], d[4], Area, B_Matrix[4][4]; + su2double a[4], b[4], c[4], d[4], Area, B_Matrix[4][4]; unsigned short iVar, jVar; if (nDim == 2) { @@ -77,7 +77,7 @@ void CGalerkin_Flow::ComputeResidual(double **val_stiffmatrix_elem, CConfig *con } if (nDim == 3) { - double Volume = 0.0; + su2double Volume = 0.0; Volume -= Determinant_3x3(Coord_1[0], Coord_1[1], Coord_1[2], Coord_2[0], Coord_2[1], Coord_2[2], Coord_3[0], Coord_3[1], Coord_3[2]); Volume += Determinant_3x3(Coord_0[0], Coord_0[1], Coord_0[2], Coord_2[0], Coord_2[1], Coord_2[2], Coord_3[0], Coord_3[1], Coord_3[2]); Volume -= Determinant_3x3(Coord_0[0], Coord_0[1], Coord_0[2], Coord_1[0], Coord_1[1], Coord_1[2], Coord_3[0], Coord_3[1], Coord_3[2]); diff --git a/SU2_CFD/src/numerics_direct_tne2.cpp b/SU2_CFD/src/numerics_direct_tne2.cpp index 78bafbd435c..4e37e94a98d 100644 --- a/SU2_CFD/src/numerics_direct_tne2.cpp +++ b/SU2_CFD/src/numerics_direct_tne2.cpp @@ -51,20 +51,20 @@ CUpwRoe_TNE2::CUpwRoe_TNE2(unsigned short val_nDim, unsigned short val_nVar, nSpecies = config->GetnSpecies(); /*--- Allocate arrays ---*/ - Diff_U = new double [nVar]; - RoeU = new double[nVar]; - RoeV = new double[nPrimVar]; - RoedPdU = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + RoeU = new su2double[nVar]; + RoeV = new su2double[nPrimVar]; + RoedPdU = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; // var = new CTNE2EulerVariable(nDim, nVar, nPrimVar, nPrimVarGrad, config); } @@ -89,9 +89,9 @@ CUpwRoe_TNE2::~CUpwRoe_TNE2(void) { // delete [] var; } -void CUpwRoe_TNE2::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, +void CUpwRoe_TNE2::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { unsigned short iDim, iSpecies, iVar, jVar, kVar; @@ -214,32 +214,32 @@ CUpwMSW_TNE2::CUpwMSW_TNE2(unsigned short val_nDim, nSpecies = config->GetnSpecies(); /*--- Allocate arrays ---*/ - Diff_U = new double [nVar]; - Fc_i = new double [nVar]; - Fc_j = new double [nVar]; - Lambda_i = new double [nVar]; - Lambda_j = new double [nVar]; - - rhos_i = new double [nSpecies]; - rhos_j = new double [nSpecies]; - rhosst_i = new double [nSpecies]; - rhosst_j = new double [nSpecies]; - u_i = new double [nDim]; - u_j = new double [nDim]; - ust_i = new double [nDim]; - ust_j = new double [nDim]; - Vst_i = new double [nPrimVar]; - Vst_j = new double [nPrimVar]; - Ust_i = new double [nVar]; - Ust_j = new double [nVar]; - dPdUst_i = new double [nVar]; - dPdUst_j = new double [nVar]; - - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Fc_i = new su2double [nVar]; + Fc_j = new su2double [nVar]; + Lambda_i = new su2double [nVar]; + Lambda_j = new su2double [nVar]; + + rhos_i = new su2double [nSpecies]; + rhos_j = new su2double [nSpecies]; + rhosst_i = new su2double [nSpecies]; + rhosst_j = new su2double [nSpecies]; + u_i = new su2double [nDim]; + u_j = new su2double [nDim]; + ust_i = new su2double [nDim]; + ust_j = new su2double [nDim]; + Vst_i = new su2double [nPrimVar]; + Vst_j = new su2double [nPrimVar]; + Ust_i = new su2double [nVar]; + Ust_j = new su2double [nVar]; + dPdUst_i = new su2double [nVar]; + dPdUst_j = new su2double [nVar]; + + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } // var = new CTNE2EulerVariable(nDim, nVar, nPrimVar, nPrimVarGrad, config); @@ -277,16 +277,16 @@ CUpwMSW_TNE2::~CUpwMSW_TNE2(void) { // delete [] var; } -void CUpwMSW_TNE2::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CUpwMSW_TNE2::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { unsigned short iDim, iSpecies, iVar, jVar, kVar; - double P_i, P_j; - double ProjVel_i, ProjVel_j, ProjVelst_i, ProjVelst_j; - double sqvel_i, sqvel_j; - double epsilon, alpha, w, dp, onemw; - double Proj_ModJac_Tensor_i, Proj_ModJac_Tensor_j; + su2double P_i, P_j; + su2double ProjVel_i, ProjVel_j, ProjVelst_i, ProjVelst_j; + su2double sqvel_i, sqvel_j; + su2double epsilon, alpha, w, dp, onemw; + su2double Proj_ModJac_Tensor_i, Proj_ModJac_Tensor_j; /*--- Set parameters in the numerical method ---*/ epsilon = 0.0; @@ -443,18 +443,18 @@ CUpwAUSM_TNE2::CUpwAUSM_TNE2(unsigned short val_nDim, unsigned short val_nVar, nDim = val_nDim; nSpecies = config->GetnSpecies(); - FcL = new double [nVar]; - FcR = new double [nVar]; - dmLP = new double [nVar]; - dmRM = new double [nVar]; - dpLP = new double [nVar]; - dpRM = new double [nVar]; - daL = new double [nVar]; - daR = new double [nVar]; - rhos_i = new double [nSpecies]; - rhos_j = new double [nSpecies]; - u_i = new double [nDim]; - u_j = new double [nDim]; + FcL = new su2double [nVar]; + FcR = new su2double [nVar]; + dmLP = new su2double [nVar]; + dmRM = new su2double [nVar]; + dpLP = new su2double [nVar]; + dpRM = new su2double [nVar]; + daL = new su2double [nVar]; + daR = new su2double [nVar]; + rhos_i = new su2double [nSpecies]; + rhos_j = new su2double [nSpecies]; + u_i = new su2double [nDim]; + u_j = new su2double [nDim]; } CUpwAUSM_TNE2::~CUpwAUSM_TNE2(void) { @@ -470,17 +470,17 @@ CUpwAUSM_TNE2::~CUpwAUSM_TNE2(void) { delete [] u_j; } -void CUpwAUSM_TNE2::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, +void CUpwAUSM_TNE2::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config ) { unsigned short iDim, iVar, jVar, iSpecies, nHeavy, nEl; - double rho_i, rho_j, rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j; - double Cvtrs; - double Ru, rho_el_i, rho_el_j, *Ms, *xi; -// double dPdrhoE_i, dPdrhoE_j, dPdrhoEve_i, dPdrhoEve_j; - double e_ve_i, e_ve_j; + su2double rho_i, rho_j, rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j; + su2double Cvtrs; + su2double Ru, rho_el_i, rho_el_j, *Ms, *xi; +// su2double dPdrhoE_i, dPdrhoE_j, dPdrhoEve_i, dPdrhoEve_j; + su2double e_ve_i, e_ve_j; Area = 0; for (iDim = 0; iDim < nDim; iDim++) @@ -541,30 +541,30 @@ void CUpwAUSM_TNE2::ComputeResidual(double *val_residual, } /*--- Calculate L/R Mach numbers ---*/ - double mL = ProjVel_i/a_i; - double mR = ProjVel_j/a_j; + su2double mL = ProjVel_i/a_i; + su2double mR = ProjVel_j/a_j; /*--- Calculate split numerical fluxes ---*/ - double mLP; + su2double mLP; if (fabs(mL) <= 1.0) mLP = 0.25*(mL+1.0)*(mL+1.0); else mLP = 0.5*(mL+fabs(mL)); - double mRM; + su2double mRM; if (fabs(mR) <= 1.0) mRM = -0.25*(mR-1.0)*(mR-1.0); else mRM = 0.5*(mR-fabs(mR)); - double mF = mLP + mRM; + su2double mF = mLP + mRM; - double pLP; + su2double pLP; if (fabs(mL) <= 1.0) pLP = 0.25*P_i*(mL+1.0)*(mL+1.0)*(2.0-mL); else pLP = 0.5*P_i*(mL+fabs(mL))/mL; - double pRM; + su2double pRM; if (fabs(mR) <= 1.0) pRM = 0.25*P_j*(mR-1.0)*(mR-1.0)*(2.0+mR); else pRM = 0.5*P_j*(mR-fabs(mR))/mR; - double pF = pLP + pRM; - double Phi = fabs(mF); + su2double pF = pLP + pRM; + su2double Phi = fabs(mF); /*--- Assign left & right convective vectors ---*/ for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { @@ -832,34 +832,34 @@ CUpwAUSMPWplus_TNE2::CUpwAUSMPWplus_TNE2(unsigned short val_nDim, nDim = val_nDim; nSpecies = config->GetnSpecies(); - FcL = new double [nVar]; - FcR = new double [nVar]; - dmLdL = new double [nVar]; - dmLdR = new double [nVar]; - dmRdL = new double [nVar]; - dmRdR = new double [nVar]; - dmLPdL = new double [nVar]; - dmLPdR = new double [nVar]; - dmRMdL = new double [nVar]; - dmRMdR = new double [nVar]; - dmbLPdL = new double [nVar]; - dmbLPdR = new double [nVar]; - dmbRMdL = new double [nVar]; - dmbRMdR = new double [nVar]; - dpLPdL = new double [nVar]; - dpLPdR = new double [nVar]; - dpRMdL = new double [nVar]; - dpRMdR = new double [nVar]; - dHnL = new double [nVar]; - dHnR = new double [nVar]; - daL = new double [nVar]; - daR = new double [nVar]; - rhos_i = new double [nSpecies]; - rhos_j = new double [nSpecies]; - u_i = new double [nDim]; - u_j = new double [nDim]; - dPdU_i = new double [nVar]; - dPdU_j = new double [nVar]; + FcL = new su2double [nVar]; + FcR = new su2double [nVar]; + dmLdL = new su2double [nVar]; + dmLdR = new su2double [nVar]; + dmRdL = new su2double [nVar]; + dmRdR = new su2double [nVar]; + dmLPdL = new su2double [nVar]; + dmLPdR = new su2double [nVar]; + dmRMdL = new su2double [nVar]; + dmRMdR = new su2double [nVar]; + dmbLPdL = new su2double [nVar]; + dmbLPdR = new su2double [nVar]; + dmbRMdL = new su2double [nVar]; + dmbRMdR = new su2double [nVar]; + dpLPdL = new su2double [nVar]; + dpLPdR = new su2double [nVar]; + dpRMdL = new su2double [nVar]; + dpRMdR = new su2double [nVar]; + dHnL = new su2double [nVar]; + dHnR = new su2double [nVar]; + daL = new su2double [nVar]; + daR = new su2double [nVar]; + rhos_i = new su2double [nSpecies]; + rhos_j = new su2double [nSpecies]; + u_i = new su2double [nDim]; + u_j = new su2double [nDim]; + dPdU_i = new su2double [nVar]; + dPdU_j = new su2double [nVar]; } CUpwAUSMPWplus_TNE2::~CUpwAUSMPWplus_TNE2(void) { @@ -893,22 +893,22 @@ CUpwAUSMPWplus_TNE2::~CUpwAUSMPWplus_TNE2(void) { delete [] dPdU_j; } -void CUpwAUSMPWplus_TNE2::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, +void CUpwAUSMPWplus_TNE2::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config ) { // NOTE: OSCILLATOR DAMPER "f" NOT IMPLEMENTED!!! unsigned short iDim, jDim, iVar, jVar, iSpecies, nHeavy, nEl; - double rho_i, rho_j, rhoEve_i, rhoEve_j, P_i, P_j, h_i, h_j; - double rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j; - double aij, atl, gtl_i, gtl_j, sqVi, sqVj, Hnorm; - double ProjVel_i, ProjVel_j; - double rhoRi, rhoRj, Ru, rho_el_i, rho_el_j, *Ms, *xi; - double w, fL, fR, alpha; - double mL, mR, mLP, mRM, mF, mbLP, mbRM, pLP, pRM, ps; - double fact, gam, dV2L, dV2R; + su2double rho_i, rho_j, rhoEve_i, rhoEve_j, P_i, P_j, h_i, h_j; + su2double rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j; + su2double aij, atl, gtl_i, gtl_j, sqVi, sqVj, Hnorm; + su2double ProjVel_i, ProjVel_j; + su2double rhoRi, rhoRj, Ru, rho_el_i, rho_el_j, *Ms, *xi; + su2double w, fL, fR, alpha; + su2double mL, mR, mLP, mRM, mF, mbLP, mbRM, pLP, pRM, ps; + su2double fact, gam, dV2L, dV2R; alpha = 3.0/16.0; @@ -1096,7 +1096,7 @@ void CUpwAUSMPWplus_TNE2::ComputeResidual(double *val_residual, // //debug: // cout << "sqVi before: " << sqVi << endl; // //check sqV routine w/ conserved: -// double rVi, delta; +// su2double rVi, delta; // rVi = 0.0; // for (iDim = 0; iDim < nDim; iDim++) { // rVi += rho_i*u_i[iDim]*UnitNormal[iDim]; @@ -1332,11 +1332,11 @@ CCentLax_TNE2::CCentLax_TNE2(unsigned short val_nDim, Param_Kappa_0 = config->GetKappa_1st_TNE2(); /*--- Allocate some structures ---*/ - Diff_U = new double[nVar]; - MeanU = new double[nVar]; - MeanV = new double[nPrimVar]; - MeandPdU = new double[nVar]; - ProjFlux = new double [nVar]; + Diff_U = new su2double[nVar]; + MeanU = new su2double[nVar]; + MeanV = new su2double[nPrimVar]; + MeandPdU = new su2double[nVar]; + ProjFlux = new su2double [nVar]; // var = new CTNE2EulerVariable(nDim, nVar, nPrimVar, nPrimVarGrad, config); } @@ -1349,15 +1349,15 @@ CCentLax_TNE2::~CCentLax_TNE2(void) { delete [] ProjFlux; } -void CCentLax_TNE2::ComputeResidual(double *val_resconv, - double *val_resvisc, - double **val_Jacobian_i, - double **val_Jacobian_j, +void CCentLax_TNE2::ComputeResidual(su2double *val_resconv, + su2double *val_resvisc, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { unsigned short iDim, iSpecies, iVar; - double rho_i, rho_j, h_i, h_j, a_i, a_j; - double ProjVel_i, ProjVel_j, Ru; + su2double rho_i, rho_j, h_i, h_j, a_i, a_j; + su2double ProjVel_i, ProjVel_j, Ru; /*--- Calculate geometrical quantities ---*/ Area = 0; @@ -1421,8 +1421,8 @@ void CCentLax_TNE2::ComputeResidual(double *val_resconv, Phi_j = pow(Lambda_j/(4.0*MeanLambda+EPS), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j+EPS); - sc0 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_0 = Param_Kappa_0*sc0*double(nDim)/3.0; + sc0 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_0 = Param_Kappa_0*sc0*su2double(nDim)/3.0; /*--- Compute viscous part of the residual ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -1472,16 +1472,16 @@ CAvgGrad_TNE2::CAvgGrad_TNE2(unsigned short val_nDim, nPrimVarGrad = val_nPrimVarGrad; /*--- Compressible flow, primitive variables nDim+3, (T, vx, vy, vz, P, rho) ---*/ - PrimVar_i = new double [nPrimVar]; - PrimVar_j = new double [nPrimVar]; - Mean_PrimVar = new double [nPrimVar]; + PrimVar_i = new su2double [nPrimVar]; + PrimVar_j = new su2double [nPrimVar]; + Mean_PrimVar = new su2double [nPrimVar]; - Mean_Diffusion_Coeff = new double[nSpecies]; + Mean_Diffusion_Coeff = new su2double[nSpecies]; /*--- Compressible flow, primitive gradient variables nDim+3, (T, vx, vy, vz) ---*/ - Mean_GradPrimVar = new double* [nPrimVarGrad]; + Mean_GradPrimVar = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; } CAvgGrad_TNE2::~CAvgGrad_TNE2(void) { @@ -1496,9 +1496,9 @@ CAvgGrad_TNE2::~CAvgGrad_TNE2(void) { delete [] Mean_GradPrimVar; } -void CAvgGrad_TNE2::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, +void CAvgGrad_TNE2::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { unsigned short iSpecies; @@ -1582,19 +1582,19 @@ CAvgGradCorrected_TNE2::CAvgGradCorrected_TNE2(unsigned short val_nDim, nPrimVarGrad = val_nPrimVarGrad; /*--- Compressible flow, primitive variables nDim+3, (T, vx, vy, vz, P, rho) ---*/ - PrimVar_i = new double [nPrimVar]; - PrimVar_j = new double [nPrimVar]; - Mean_PrimVar = new double [nPrimVar]; + PrimVar_i = new su2double [nPrimVar]; + PrimVar_j = new su2double [nPrimVar]; + Mean_PrimVar = new su2double [nPrimVar]; - Mean_Diffusion_Coeff = new double[nSpecies]; + Mean_Diffusion_Coeff = new su2double[nSpecies]; /*--- Compressible flow, primitive gradient variables nDim+3, (T, vx, vy, vz) ---*/ - Mean_GradPrimVar = new double* [nPrimVarGrad]; + Mean_GradPrimVar = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - Mean_GradPrimVar[iVar] = new double [nDim]; + Mean_GradPrimVar[iVar] = new su2double [nDim]; - Proj_Mean_GradPrimVar_Edge = new double[nPrimVarGrad]; - Edge_Vector = new double[3]; + Proj_Mean_GradPrimVar_Edge = new su2double[nPrimVarGrad]; + Edge_Vector = new su2double[3]; } CAvgGradCorrected_TNE2::~CAvgGradCorrected_TNE2(void) { @@ -1613,13 +1613,13 @@ CAvgGradCorrected_TNE2::~CAvgGradCorrected_TNE2(void) { delete [] Edge_Vector; } -void CAvgGradCorrected_TNE2::ComputeResidual(double *val_residual, - double **val_Jacobian_i, - double **val_Jacobian_j, +void CAvgGradCorrected_TNE2::ComputeResidual(su2double *val_residual, + su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { unsigned short iSpecies; - double dist_ij_2; + su2double dist_ij_2; /*--- Normalized normal vector ---*/ Area = 0; @@ -1719,22 +1719,22 @@ CSource_TNE2::CSource_TNE2(unsigned short val_nDim, nDim = val_nDim; nSpecies = config->GetnSpecies(); - X = new double[nSpecies]; - RxnConstantTable = new double*[6]; + X = new su2double[nSpecies]; + RxnConstantTable = new su2double*[6]; for (unsigned short iVar = 0; iVar < 6; iVar++) - RxnConstantTable[iVar] = new double[5]; + RxnConstantTable[iVar] = new su2double[5]; /*--- Allocate arrays ---*/ alphak = new int[nSpecies]; betak = new int[nSpecies]; - A = new double[5]; - eves = new double[nSpecies]; - Cvvs = new double[nSpecies]; - Cves = new double[nSpecies]; - dkf = new double[nVar]; - dkb = new double[nVar]; - dRfok = new double[nVar]; - dRbok = new double[nVar]; + A = new su2double[5]; + eves = new su2double[nSpecies]; + Cvvs = new su2double[nSpecies]; + Cves = new su2double[nSpecies]; + dkf = new su2double[nVar]; + dkb = new su2double[nVar]; + dRfok = new su2double[nVar]; + dRbok = new su2double[nVar]; // var = new CTNE2EulerVariable(nDim, nVar, nPrimVar, nPrimVarGrad, config); @@ -1762,11 +1762,11 @@ CSource_TNE2::~CSource_TNE2(void) { } -void CSource_TNE2::GetKeqConstants(double *A, unsigned short val_Reaction, +void CSource_TNE2::GetKeqConstants(su2double *A, unsigned short val_Reaction, CConfig *config) { unsigned short ii, iSpecies, iIndex, tbl_offset; - double N, pwr; - double *Ms; + su2double N, pwr; + su2double *Ms; /*--- Acquire database constants from CConfig ---*/ Ms = config->GetMolar_Mass(); @@ -1783,7 +1783,7 @@ void CSource_TNE2::GetKeqConstants(double *A, unsigned short val_Reaction, pwr = floor(log10(N)); /*--- Bound the interpolation to table limit values ---*/ - iIndex = int(pwr) - tbl_offset; + iIndex = SU2_TYPE::Int(pwr) - tbl_offset; if (iIndex <= 0) { for (ii = 0; ii < 5; ii++) A[ii] = RxnConstantTable[0][ii]; @@ -1802,24 +1802,24 @@ void CSource_TNE2::GetKeqConstants(double *A, unsigned short val_Reaction, return; } -void CSource_TNE2::ComputeChemistry(double *val_residual, - double **val_Jacobian_i, +void CSource_TNE2::ComputeChemistry(su2double *val_residual, + su2double **val_Jacobian_i, CConfig *config) { /*--- Nonequilibrium chemistry ---*/ unsigned short iSpecies, jSpecies, ii, iReaction, nReactions, iVar, jVar; unsigned short *nElStates, nHeavy, nEl, nEve; int ***RxnMap; - double T_min, epsilon; - double T, Tve, Thf, Thb, Trxnf, Trxnb, Keq, Cf, eta, theta, kf, kb; - double rho, u, v, w, rhoCvtr, rhoCvve, P; - double *Ms, *thetav, **thetae, **g, fwdRxn, bkwRxn, alpha, Ru; - double *Tcf_a, *Tcf_b, *Tcb_a, *Tcb_b; - double *hf, *Tref, *xi; - double af, bf, ab, bb, coeff; - double dThf, dThb; - -// double *wdot = new double[nSpecies]; + su2double T_min, epsilon; + su2double T, Tve, Thf, Thb, Trxnf, Trxnb, Keq, Cf, eta, theta, kf, kb; + su2double rho, u, v, w, rhoCvtr, rhoCvve, P; + su2double *Ms, *thetav, **thetae, **g, fwdRxn, bkwRxn, alpha, Ru; + su2double *Tcf_a, *Tcf_b, *Tcb_a, *Tcb_b; + su2double *hf, *Tref, *xi; + su2double af, bf, ab, bb, coeff; + su2double dThf, dThb; + +// su2double *wdot = new su2double[nSpecies]; // for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) // wdot[iSpecies] = 0.0; @@ -2056,8 +2056,8 @@ void CSource_TNE2::ComputeChemistry(double *val_residual, -void CSource_TNE2::ComputeVibRelaxation(double *val_residual, - double **val_Jacobian_i, +void CSource_TNE2::ComputeVibRelaxation(su2double *val_residual, + su2double **val_Jacobian_i, CConfig *config) { /*--- Trans.-rot. & vibrational energy exchange via inelastic collisions ---*/ @@ -2067,13 +2067,13 @@ void CSource_TNE2::ComputeVibRelaxation(double *val_residual, // Note: Park limiting cross section unsigned short iSpecies, jSpecies, iVar, jVar; unsigned short nEv, nHeavy, nEl, *nElStates; - double rhos, evib, P, T, Tve, u, v, w, rhoCvtr, rhoCvve, Ru, conc, N; - double Qtv, estar, tau, tauMW, tauP; - double tau_sr, mu, A_sr, B_sr, num, denom; - double thoTve, exptv; - double thoT, expt, Cvvs, Cvvst; - double sigma, ws; - double *Ms, *thetav, **thetae, **g, *Tref, *hf, *xi; + su2double rhos, evib, P, T, Tve, u, v, w, rhoCvtr, rhoCvve, Ru, conc, N; + su2double Qtv, estar, tau, tauMW, tauP; + su2double tau_sr, mu, A_sr, B_sr, num, denom; + su2double thoTve, exptv; + su2double thoT, expt, Cvvs, Cvvst; + su2double sigma, ws; + su2double *Ms, *thetav, **thetae, **g, *Tref, *hf, *xi; /*--- Initialize residual and Jacobian arrays ---*/ for (iVar = 0; iVar < nVar; iVar++) { diff --git a/SU2_CFD/src/numerics_direct_transition.cpp b/SU2_CFD/src/numerics_direct_transition.cpp index c16934cb162..66def81a66c 100644 --- a/SU2_CFD/src/numerics_direct_transition.cpp +++ b/SU2_CFD/src/numerics_direct_transition.cpp @@ -39,8 +39,8 @@ CUpwLin_TransLM::CUpwLin_TransLM(unsigned short val_nDim, unsigned short val_nVa Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } @@ -49,7 +49,7 @@ CUpwLin_TransLM::~CUpwLin_TransLM(void) { delete [] Velocity_j; } -void CUpwLin_TransLM::ComputeResidual (double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwLin_TransLM::ComputeResidual (su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { Density_i = U_i[0]; @@ -86,8 +86,8 @@ CUpwSca_TransLM::CUpwSca_TransLM(unsigned short val_nDim, unsigned short val_nVa Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } CUpwSca_TransLM::~CUpwSca_TransLM(void) { @@ -95,7 +95,7 @@ CUpwSca_TransLM::~CUpwSca_TransLM(void) { delete [] Velocity_j; } -void CUpwSca_TransLM::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwSca_TransLM::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { q_ij = 0; for (iDim = 0; iDim < nDim; iDim++) { @@ -133,12 +133,12 @@ CAvgGrad_TransLM::CAvgGrad_TransLM(unsigned short val_nDim, unsigned short val_n sigma = 2./3.; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTransVar_Kappa = new double [nVar]; - Proj_Mean_GradTransVar_Edge = new double [nVar]; - Mean_GradTransVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTransVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTransVar_Edge = new su2double [nVar]; + Mean_GradTransVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTransVar[iVar] = new double [nDim]; + Mean_GradTransVar[iVar] = new su2double [nDim]; } CAvgGrad_TransLM::~CAvgGrad_TransLM(void) { @@ -153,17 +153,17 @@ CAvgGrad_TransLM::~CAvgGrad_TransLM(void) { delete [] Mean_GradTransVar; } -void CAvgGrad_TransLM::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGrad_TransLM::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { - double Density_Grad_i[nDim], Density_Grad_j[nDim], Conservative_Grad_i[nDim], Conservative_Grad_j[nDim]; - double Primitive_Grad_i[nDim], Primitive_Grad_j[nDim]; + su2double Density_Grad_i[nDim], Density_Grad_j[nDim], Conservative_Grad_i[nDim], Conservative_Grad_j[nDim]; + su2double Primitive_Grad_i[nDim], Primitive_Grad_j[nDim]; /*--- Intermediate values for combining viscosities ---*/ - double Inter_Viscosity_i, Inter_Viscosity_j, REth_Viscosity_i, REth_Viscosity_j, Inter_Viscosity_Mean, REth_Viscosity_Mean; + su2double Inter_Viscosity_i, Inter_Viscosity_j, REth_Viscosity_i, REth_Viscosity_j, Inter_Viscosity_Mean, REth_Viscosity_Mean; /*--- Model constants---*/ - double sigmaf = 1.0; - double sigma_thetat = 2.0; + su2double sigmaf = 1.0; + su2double sigma_thetat = 2.0; /*--- Get density ---*/ Density_i = U_i[0]; @@ -232,13 +232,13 @@ CAvgGradCorrected_TransLM::CAvgGradCorrected_TransLM(unsigned short val_nDim, un sigma = 2./3.; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Proj_Mean_GradTurbVar_Corrected = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Proj_Mean_GradTurbVar_Corrected = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } CAvgGradCorrected_TransLM::~CAvgGradCorrected_TransLM(void) { @@ -254,7 +254,7 @@ CAvgGradCorrected_TransLM::~CAvgGradCorrected_TransLM(void) { delete [] Mean_GradTurbVar; } -void CAvgGradCorrected_TransLM::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGradCorrected_TransLM::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { // switch (config->GetKind_Turb_Model()) { // case SA : @@ -335,7 +335,7 @@ CSourcePieceWise_TransLM::CSourcePieceWise_TransLM(unsigned short val_nDim, unsi CSourcePieceWise_TransLM::~CSourcePieceWise_TransLM(void) { } -void CSourcePieceWise_TransLM::ComputeResidual_TransLM(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config, double &gamma_sep) { +void CSourcePieceWise_TransLM::ComputeResidual_TransLM(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config, su2double &gamma_sep) { //************************************************// // Please do not delete //SU2_CPP2C comment lines // //************************************************// @@ -355,16 +355,16 @@ void CSourcePieceWise_TransLM::ComputeResidual_TransLM(double *val_residual, dou //SU2_CPP2C DECL_LIST END /*-- Local intermediate variables --*/ - double rey_tc, flen, re_v, strain, f_onset1, f_onset2, f_onset3, f_onset, f_turb, tu; + su2double rey_tc, flen, re_v, strain, f_onset1, f_onset2, f_onset3, f_onset, f_turb, tu; - double prod, des; - double f_lambda, re_theta = 0.0, re_theta_lim, r_t; - double Velocity_Mag = 0.0, du_ds, theta, lambda, time_scale, var1, f_theta; - double f_reattach; - double dU_dx, dU_dy, dU_dz = 0.0; + su2double prod, des; + su2double f_lambda, re_theta = 0.0, re_theta_lim, r_t; + su2double Velocity_Mag = 0.0, du_ds, theta, lambda, time_scale, var1, f_theta; + su2double f_reattach; + su2double dU_dx, dU_dy, dU_dz = 0.0; //SU2_CPP2C COMMENT START - double val_residuald[2], TransVar_id[2]; + su2double val_residuald[2], TransVar_id[2]; //SU2_CPP2C COMMENT END @@ -544,28 +544,28 @@ void CSourcePieceWise_TransLM::ComputeResidual_TransLM(double *val_residual, dou } -void CSourcePieceWise_TransLM::CSourcePieceWise_TransLM__ComputeResidual_TransLM_d(double *TransVar_i, double *TransVar_id, double *val_residual, double *val_residuald, CConfig *config) +void CSourcePieceWise_TransLM::CSourcePieceWise_TransLM__ComputeResidual_TransLM_d(su2double *TransVar_i, su2double *TransVar_id, su2double *val_residual, su2double *val_residuald, CConfig *config) { - double rey_tc, flen, re_v, strain, f_onset1, f_onset2, f_onset3, f_onset, + su2double rey_tc, flen, re_v, strain, f_onset1, f_onset2, f_onset3, f_onset, f_turb, tu; - double rey_tcd, f_onset1d, f_onset2d, f_onsetd; - double prod, des; - double prodd, desd; - double f_lambda, re_theta = 0.0, re_theta_lim, r_t; - double Velocity_Mag = 0.0, du_ds, theta, lambda, time_scale, + su2double rey_tcd, f_onset1d, f_onset2d, f_onsetd; + su2double prod, des; + su2double prodd, desd; + su2double f_lambda, re_theta = 0.0, re_theta_lim, r_t; + su2double Velocity_Mag = 0.0, du_ds, theta, lambda, time_scale, var1, f_theta; - double var1d, f_thetad; - double dU_dx, dU_dy, dU_dz = 0.0; - double result1; - double result1d; - double arg1; - double arg1d; - double result2; - double x2; - double x1; - double x1d; - double y1; - double y1d; + su2double var1d, f_thetad; + su2double dU_dx, dU_dy, dU_dz = 0.0; + su2double result1; + su2double result1d; + su2double arg1; + su2double arg1d; + su2double result2; + su2double x2; + su2double x1; + su2double x1d; + su2double y1; + su2double y1d; val_residuald[0] = 0.0; val_residual[0] = 0.0; val_residuald[1] = 0.0; @@ -680,7 +680,7 @@ void CSourcePieceWise_TransLM::CSourcePieceWise_TransLM__ComputeResidual_TransLM /*-- Fixed-point iterations to solve REth correlation --*/ f_lambda = 1.; { - double x3; + su2double x3; for (int iter = 0; iter < 10; ++iter) { if (tu <= 1.3) re_theta = f_lambda*(1173.51-589.428*tu+0.2196/(tu*tu)); diff --git a/SU2_CFD/src/numerics_direct_turbulent.cpp b/SU2_CFD/src/numerics_direct_turbulent.cpp index 8d26f5776c4..5e4d4a5e73a 100644 --- a/SU2_CFD/src/numerics_direct_turbulent.cpp +++ b/SU2_CFD/src/numerics_direct_turbulent.cpp @@ -38,8 +38,8 @@ CUpwSca_TurbSA::CUpwSca_TurbSA(unsigned short val_nDim, unsigned short val_nVar, incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); grid_movement = config->GetGrid_Movement(); - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } @@ -50,7 +50,7 @@ CUpwSca_TurbSA::~CUpwSca_TurbSA(void) { } -void CUpwSca_TurbSA::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwSca_TurbSA::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { q_ij = 0.0; @@ -86,12 +86,12 @@ CAvgGrad_TurbSA::CAvgGrad_TurbSA(unsigned short val_nDim, unsigned short val_nVa sigma = 2./3.; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -106,7 +106,7 @@ CAvgGrad_TurbSA::~CAvgGrad_TurbSA(void) { } -void CAvgGrad_TurbSA::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGrad_TurbSA::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -167,12 +167,12 @@ CAvgGrad_TurbSA_Neg::CAvgGrad_TurbSA_Neg(unsigned short val_nDim, unsigned short cn1 = 16.0; fn = 0.0; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -187,7 +187,7 @@ CAvgGrad_TurbSA_Neg::~CAvgGrad_TurbSA_Neg(void) { } -void CAvgGrad_TurbSA_Neg::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGrad_TurbSA_Neg::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -259,13 +259,13 @@ CAvgGradCorrected_TurbSA::CAvgGradCorrected_TurbSA(unsigned short val_nDim, unsi sigma = 2./3.; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Proj_Mean_GradTurbVar_Corrected = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Proj_Mean_GradTurbVar_Corrected = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -281,7 +281,7 @@ CAvgGradCorrected_TurbSA::~CAvgGradCorrected_TurbSA(void) { } -void CAvgGradCorrected_TurbSA::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGradCorrected_TurbSA::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -348,13 +348,13 @@ CAvgGradCorrected_TurbSA_Neg::CAvgGradCorrected_TurbSA_Neg(unsigned short val_nD cn1 = 16.0; fn = 0.0; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Proj_Mean_GradTurbVar_Corrected = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Proj_Mean_GradTurbVar_Corrected = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -370,7 +370,7 @@ CAvgGradCorrected_TurbSA_Neg::~CAvgGradCorrected_TurbSA_Neg(void) { } -void CAvgGradCorrected_TurbSA_Neg::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGradCorrected_TurbSA_Neg::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -463,7 +463,7 @@ CSourcePieceWise_TurbSA::CSourcePieceWise_TurbSA(unsigned short val_nDim, unsign CSourcePieceWise_TurbSA::~CSourcePieceWise_TurbSA(void) { } -void CSourcePieceWise_TurbSA::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CSourcePieceWise_TurbSA::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; @@ -583,7 +583,7 @@ CSourcePieceWise_TurbSA_Neg::~CSourcePieceWise_TurbSA_Neg(void) { } -void CSourcePieceWise_TurbSA_Neg::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CSourcePieceWise_TurbSA_Neg::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; @@ -722,8 +722,8 @@ CUpwSca_TurbSST::CUpwSca_TurbSST(unsigned short val_nDim, unsigned short val_nVa incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); grid_movement = config->GetGrid_Movement(); - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } @@ -734,7 +734,7 @@ CUpwSca_TurbSST::~CUpwSca_TurbSST(void) { } -void CUpwSca_TurbSST::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwSca_TurbSST::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; @@ -777,7 +777,7 @@ void CUpwSca_TurbSST::ComputeResidual(double *val_residual, double **val_Jacobia } -CAvgGrad_TurbSST::CAvgGrad_TurbSST(unsigned short val_nDim, unsigned short val_nVar, double *constants, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { +CAvgGrad_TurbSST::CAvgGrad_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double *constants, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { unsigned short iVar; @@ -789,13 +789,13 @@ CAvgGrad_TurbSST::CAvgGrad_TurbSST(unsigned short val_nDim, unsigned short val_n sigma_k2 = constants[1]; sigma_om2 = constants[3]; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Normal = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Proj_Mean_GradTurbVar_Corrected = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Normal = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Proj_Mean_GradTurbVar_Corrected = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -813,10 +813,10 @@ CAvgGrad_TurbSST::~CAvgGrad_TurbSST(void) { } -void CAvgGrad_TurbSST::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGrad_TurbSST::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { - double sigma_kine_i, sigma_kine_j, sigma_omega_i, sigma_omega_j; - double diff_i_kine, diff_i_omega, diff_j_kine, diff_j_omega; + su2double sigma_kine_i, sigma_kine_j, sigma_omega_i, sigma_omega_j; + su2double diff_i_kine, diff_i_omega, diff_j_kine, diff_j_omega; if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -880,7 +880,7 @@ void CAvgGrad_TurbSST::ComputeResidual(double *val_residual, double **Jacobian_i } -CAvgGradCorrected_TurbSST::CAvgGradCorrected_TurbSST(unsigned short val_nDim, unsigned short val_nVar, double *constants, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { +CAvgGradCorrected_TurbSST::CAvgGradCorrected_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double *constants, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { unsigned short iVar; @@ -892,13 +892,13 @@ CAvgGradCorrected_TurbSST::CAvgGradCorrected_TurbSST(unsigned short val_nDim, un sigma_k2 = constants[1]; sigma_om2 = constants[3]; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Normal = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Proj_Mean_GradTurbVar_Corrected = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Normal = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Proj_Mean_GradTurbVar_Corrected = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -916,10 +916,10 @@ CAvgGradCorrected_TurbSST::~CAvgGradCorrected_TurbSST(void) { } -void CAvgGradCorrected_TurbSST::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGradCorrected_TurbSST::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { - double sigma_kine_i, sigma_kine_j, sigma_omega_i, sigma_omega_j; - double diff_i_kine, diff_i_omega, diff_j_kine, diff_j_omega; + su2double sigma_kine_i, sigma_kine_j, sigma_omega_i, sigma_omega_j; + su2double diff_i_kine, diff_i_omega, diff_j_kine, diff_j_omega; if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -985,7 +985,7 @@ void CAvgGradCorrected_TurbSST::ComputeResidual(double *val_residual, double **J } -CSourcePieceWise_TurbSST::CSourcePieceWise_TurbSST(unsigned short val_nDim, unsigned short val_nVar, double *constants, +CSourcePieceWise_TurbSST::CSourcePieceWise_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double *constants, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -1003,11 +1003,11 @@ CSourcePieceWise_TurbSST::CSourcePieceWise_TurbSST(unsigned short val_nDim, unsi CSourcePieceWise_TurbSST::~CSourcePieceWise_TurbSST(void) { } -void CSourcePieceWise_TurbSST::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CSourcePieceWise_TurbSST::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { unsigned short iDim; - double alfa_blended, beta_blended; - double diverg, pk, pw, zeta; + su2double alfa_blended, beta_blended; + su2double diverg, pk, pw, zeta; if (incompressible) { Density_i = V_i[nDim+1]; @@ -1072,8 +1072,8 @@ CUpwSca_TurbML::CUpwSca_TurbML(unsigned short val_nDim, unsigned short val_nVar, incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); grid_movement = config->GetGrid_Movement(); - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; } @@ -1084,7 +1084,7 @@ CUpwSca_TurbML::~CUpwSca_TurbML(void) { } -void CUpwSca_TurbML::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CUpwSca_TurbML::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { q_ij = 0.0; @@ -1123,12 +1123,12 @@ CAvgGrad_TurbML::CAvgGrad_TurbML(unsigned short val_nDim, unsigned short val_nVa sigma = 2./3.; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -1144,7 +1144,7 @@ CAvgGrad_TurbML::~CAvgGrad_TurbML(void) { } -void CAvgGrad_TurbML::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGrad_TurbML::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -1204,13 +1204,13 @@ CAvgGradCorrected_TurbML::CAvgGradCorrected_TurbML(unsigned short val_nDim, unsi sigma = 2./3.; - Edge_Vector = new double [nDim]; - Proj_Mean_GradTurbVar_Kappa = new double [nVar]; - Proj_Mean_GradTurbVar_Edge = new double [nVar]; - Proj_Mean_GradTurbVar_Corrected = new double [nVar]; - Mean_GradTurbVar = new double* [nVar]; + Edge_Vector = new su2double [nDim]; + Proj_Mean_GradTurbVar_Kappa = new su2double [nVar]; + Proj_Mean_GradTurbVar_Edge = new su2double [nVar]; + Proj_Mean_GradTurbVar_Corrected = new su2double [nVar]; + Mean_GradTurbVar = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Mean_GradTurbVar[iVar] = new double [nDim]; + Mean_GradTurbVar[iVar] = new su2double [nDim]; } @@ -1227,7 +1227,7 @@ CAvgGradCorrected_TurbML::~CAvgGradCorrected_TurbML(void) { } -void CAvgGradCorrected_TurbML::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { +void CAvgGradCorrected_TurbML::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Density_j = V_j[nDim+1]; @@ -1286,7 +1286,7 @@ void CAvgGradCorrected_TurbML::ComputeResidual(double *val_residual, double **Ja CSourcePieceWise_TurbML::CSourcePieceWise_TurbML(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { - double *uinf = config->GetVelocity_FreeStreamND(); + su2double *uinf = config->GetVelocity_FreeStreamND(); for (unsigned short i = 0; i < nDim; i++) { uInfinity += uinf[i] * uinf[i]; } @@ -1307,22 +1307,22 @@ CSourcePieceWise_TurbML::CSourcePieceWise_TurbML(unsigned short val_nDim, unsign nResidual = 4; nJacobian = 1; - SAResidual = new double[nResidual]; - SANondimResidual = new double[nResidual]; - Residual = new double[nResidual]; - NondimResidual = new double[nResidual]; - ResidualDiff = new double[nResidual]; - NondimResidualDiff = new double[nResidual]; + SAResidual = new su2double[nResidual]; + SANondimResidual = new su2double[nResidual]; + Residual = new su2double[nResidual]; + NondimResidual = new su2double[nResidual]; + ResidualDiff = new su2double[nResidual]; + NondimResidualDiff = new su2double[nResidual]; - SAJacobian = new double[nJacobian]; + SAJacobian = new su2double[nJacobian]; - //testResidual = new double[nResidual]; - //testJacobian = new double[nJacobian]; - DUiDXj = new double*[nDim]; + //testResidual = new su2double[nResidual]; + //testJacobian = new su2double[nJacobian]; + DUiDXj = new su2double*[nDim]; for (int i=0; i < nDim; i++) { - DUiDXj[i] = new double[nDim]; + DUiDXj[i] = new su2double[nDim]; } - DNuhatDXj = new double[nDim]; + DNuhatDXj = new su2double[nDim]; // Construct the nnet string readFile = config->GetML_Turb_Model_File(); @@ -1363,7 +1363,7 @@ CSourcePieceWise_TurbML::~CSourcePieceWise_TurbML(void) { delete SANondimInputs; } -void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CSourcePieceWise_TurbML::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { if (incompressible) { Density_i = V_i[nDim+1]; Laminar_Viscosity_i = V_i[nDim+3]; @@ -1412,33 +1412,33 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val fw = SAOtherOutputs->fw; // Need the individual terms of the NuHat Norm - double dNuHatDXBar = DNuhatDXj[0] / sqrt(SANondimInputs->SourceNondim); - double dNuHatDYBar = DNuhatDXj[1] / sqrt(SANondimInputs->SourceNondim); - double dUDXBar = DUiDXj[0][0] / SANondimInputs->OmegaNondim; - double dVDXBar = DUiDXj[1][0] / SANondimInputs->OmegaNondim; - double dUDYBar = DUiDXj[0][1] / SANondimInputs->OmegaNondim; - double dVDYBar = DUiDXj[1][1] / SANondimInputs->OmegaNondim; - double Turbulent_Kinematic_Viscosity = TurbVar_i[0]; - - double nuRef = 1.0; - double nu = Laminar_Viscosity_i / Density_i; - double nuscale = nu / nuRef; - double distalt = dist_i; - double nuhatalt = Turbulent_Kinematic_Viscosity / nuscale; - double omega = SANondimInputs->OmegaBar * SANondimInputs->OmegaNondim; - double omegaalt = omega / nuscale; - double nuhatgradmagalt = SANondimInputs->NuHatGradNorm / (nuscale * nuscale); - double omeganondimeralt = (1/distalt) * (nuhatalt / distalt); - double sourcenondimeralt = (nuhatalt / distalt) * (nuhatalt / distalt); - double nondim_nuhatgradmagalt = nuhatgradmagalt / sourcenondimeralt; - double nondimOmegaAlt = omegaalt / omeganondimeralt; - -// double Laminar_Kinematic_Viscosity = Laminar_Viscosity_i / Density_i; + su2double dNuHatDXBar = DNuhatDXj[0] / sqrt(SANondimInputs->SourceNondim); + su2double dNuHatDYBar = DNuhatDXj[1] / sqrt(SANondimInputs->SourceNondim); + su2double dUDXBar = DUiDXj[0][0] / SANondimInputs->OmegaNondim; + su2double dVDXBar = DUiDXj[1][0] / SANondimInputs->OmegaNondim; + su2double dUDYBar = DUiDXj[0][1] / SANondimInputs->OmegaNondim; + su2double dVDYBar = DUiDXj[1][1] / SANondimInputs->OmegaNondim; + su2double Turbulent_Kinematic_Viscosity = TurbVar_i[0]; + + su2double nuRef = 1.0; + su2double nu = Laminar_Viscosity_i / Density_i; + su2double nuscale = nu / nuRef; + su2double distalt = dist_i; + su2double nuhatalt = Turbulent_Kinematic_Viscosity / nuscale; + su2double omega = SANondimInputs->OmegaBar * SANondimInputs->OmegaNondim; + su2double omegaalt = omega / nuscale; + su2double nuhatgradmagalt = SANondimInputs->NuHatGradNorm / (nuscale * nuscale); + su2double omeganondimeralt = (1/distalt) * (nuhatalt / distalt); + su2double sourcenondimeralt = (nuhatalt / distalt) * (nuhatalt / distalt); + su2double nondim_nuhatgradmagalt = nuhatgradmagalt / sourcenondimeralt; + su2double nondimOmegaAlt = omegaalt / omeganondimeralt; + +// su2double Laminar_Kinematic_Viscosity = Laminar_Viscosity_i / Density_i; int nInputMLVariables = 0; int nOutputMLVariables = 0; - double* netInput = NULL; - double* netOutput = NULL; + su2double* netInput = NULL; + su2double* netOutput = NULL; if (featureset.compare("SA") == 0) { // Set the output equal to the spalart allmaras output. @@ -1449,8 +1449,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("nondim_production") == 0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->Chi; netInput[1] = SANondimInputs->OmegaBar; @@ -1477,8 +1477,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("nondim_production_log") == 0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = log10(SANondimInputs->Chi); netInput[1] = log10(SANondimInputs->OmegaBar); @@ -1506,8 +1506,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("nondim_production_logchi") == 0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = log10(SANondimInputs->Chi); netInput[1] = SANondimInputs->OmegaBar; @@ -1529,8 +1529,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val // cout <<"In production" << endl; nInputMLVariables = 3; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->SourceNondim; netInput[1] = SANondimInputs->Chi; @@ -1563,8 +1563,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->Chi; netInput[1] = SANondimInputs->OmegaBar; @@ -1583,8 +1583,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("destruction") ==0) { nInputMLVariables = 3; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->SourceNondim; netInput[1] = SANondimInputs->Chi; @@ -1606,8 +1606,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("nondim_crossproduction") ==0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->Chi; netInput[1] = SANondimInputs->NuHatGradNormBar; @@ -1630,8 +1630,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("cross_production") ==0) { nInputMLVariables = 3; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->SourceNondim; netInput[1] = SANondimInputs->Chi; @@ -1653,8 +1653,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("nondim_source") ==0) { nInputMLVariables = 3; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->Chi; netInput[1] = SANondimInputs->OmegaBar; @@ -1675,8 +1675,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("source") ==0) { nInputMLVariables =4; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->SourceNondim; netInput[1] = SANondimInputs->Chi; @@ -1700,8 +1700,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("source_alt") ==0) { nInputMLVariables =4; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = sourcenondimeralt; netInput[1] = SANondimInputs->Chi; @@ -1727,8 +1727,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("source_dim_alt") == 0) { nInputMLVariables = 4; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; @@ -1757,8 +1757,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("source_all") ==0) { nInputMLVariables = 8; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; netInput[0] = SANondimInputs->SourceNondim; netInput[1] = SANondimInputs->Chi; @@ -1787,11 +1787,11 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val throw("doesn't work"); nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; - double chi = SANondimInputs->Chi; - double omegaBar = SANondimInputs->OmegaBar; + su2double chi = SANondimInputs->Chi; + su2double omegaBar = SANondimInputs->OmegaBar; // Karthik nondimensionalizes by d / vhat whereas I do by /(v + vhat) omegaBar *= 1 + 1/chi; @@ -1800,8 +1800,8 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val MLModel->Predict(netInput, netOutput); - double safw = SAOtherOutputs->fw; - double newfw = netOutput[0]; + su2double safw = SAOtherOutputs->fw; + su2double newfw = netOutput[0]; if (newfw < -1) { newfw = 1; } @@ -1809,9 +1809,9 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val newfw = 6; } // The output is the value of fw. Need to replace the destruction term with the new computation - double turbKinVisc = SAInputs->Turbulent_Kinematic_Viscosity; - double dist2 = SAInputs->dist * SAInputs->dist; - double newdestruction = SAConstants->cw1 * (newfw +safw) * turbKinVisc * turbKinVisc / dist2; + su2double turbKinVisc = SAInputs->Turbulent_Kinematic_Viscosity; + su2double dist2 = SAInputs->dist * SAInputs->dist; + su2double newdestruction = SAConstants->cw1 * (newfw +safw) * turbKinVisc * turbKinVisc / dist2; for (int i= 0; i < nResidual; i++) { Residual[i] = SAResidual[i]; @@ -1827,11 +1827,11 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("fw_hifi_2") ==0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; - double chi = SANondimInputs->Chi; - double omegaBar = SANondimInputs->OmegaBar; + su2double chi = SANondimInputs->Chi; + su2double omegaBar = SANondimInputs->OmegaBar; // Karthik nondimensionalizes by d / vhat whereas I do by /(v + vhat) omegaBar *= 1 + 1/chi; @@ -1840,12 +1840,12 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val MLModel->Predict(netInput, netOutput); - double safw = SAOtherOutputs->fw; - double newfw = netOutput[0]; + su2double safw = SAOtherOutputs->fw; + su2double newfw = netOutput[0]; // The output is the value of fw. Need to replace the destruction term with the new computation - double turbKinVisc = SAInputs->Turbulent_Kinematic_Viscosity; - double dist2 = SAInputs->dist * SAInputs->dist; - double newdestruction = SAConstants->cw1 * (newfw +safw) * turbKinVisc * turbKinVisc / dist2; + su2double turbKinVisc = SAInputs->Turbulent_Kinematic_Viscosity; + su2double dist2 = SAInputs->dist * SAInputs->dist; + su2double newdestruction = SAConstants->cw1 * (newfw +safw) * turbKinVisc * turbKinVisc / dist2; for (int i= 0; i < nResidual; i++) { Residual[i] = SAResidual[i]; @@ -1861,17 +1861,17 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("fw") == 0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; - double chi = SANondimInputs->Chi; - double omegaBar = SANondimInputs->OmegaBar; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; + su2double chi = SANondimInputs->Chi; + su2double omegaBar = SANondimInputs->OmegaBar; netInput[0] = chi; netInput[1] = omegaBar; MLModel->Predict(netInput, netOutput); // The output is fw. Replicate the destruction term. - double fw_ml = netOutput[0]; - double mul_dest = SAConstants->cw1 * fw_ml; + su2double fw_ml = netOutput[0]; + su2double mul_dest = SAConstants->cw1 * fw_ml; Residual[0] = SAResidual[0]; Residual[1] = mul_dest * Turbulent_Kinematic_Viscosity * Turbulent_Kinematic_Viscosity / (dist_i * dist_i); Residual[2] = SAResidual[2]; @@ -1883,17 +1883,17 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("mul_destruction") == 0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; - double chi = SANondimInputs->Chi; - double omegaBar = SANondimInputs->OmegaBar; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; + su2double chi = SANondimInputs->Chi; + su2double omegaBar = SANondimInputs->OmegaBar; netInput[0] = chi; netInput[1] = omegaBar; MLModel->Predict(netInput, netOutput); // The output is a multiplier to the destruction term. Replicate the // destruction term - double mul_dest = netOutput[0]; + su2double mul_dest = netOutput[0]; Residual[0] = SAResidual[0]; Residual[1] = mul_dest * Turbulent_Kinematic_Viscosity * Turbulent_Kinematic_Viscosity / (dist_i * dist_i); Residual[2] = SAResidual[2]; @@ -1905,16 +1905,16 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } else if (featureset.compare("mul_production") ==0) { nInputMLVariables = 2; nOutputMLVariables = 1; - netInput = new double[nInputMLVariables]; - netOutput = new double[nOutputMLVariables]; - double chi = SANondimInputs->Chi; - double omegaBar = SANondimInputs->OmegaBar; + netInput = new su2double[nInputMLVariables]; + netOutput = new su2double[nOutputMLVariables]; + su2double chi = SANondimInputs->Chi; + su2double omegaBar = SANondimInputs->OmegaBar; netInput[0] = chi; netInput[1] = omegaBar; MLModel->Predict(netInput, netOutput); // The output is a multiplier to the destruction term. Replicate the // production term - double mul_prod = netOutput[0]; + su2double mul_prod = netOutput[0]; Residual[0] = mul_prod * Turbulent_Kinematic_Viscosity * SAOtherOutputs->Omega; Residual[1] = SAResidual[1]; Residual[2] = SAResidual[2]; @@ -1943,18 +1943,18 @@ void CSourcePieceWise_TurbML::ComputeResidual(double *val_residual, double **val } // Compute Shivaji Medida's BL vs. Wake equation - double strainRateMag = 0; + su2double strainRateMag = 0; for (int i= 0; i < nDim; i++) { for (int j = 0; j < nDim; j++) { - double sij = 0.5 * (DUiDXj[i][j] + DUiDXj[j][i]); + su2double sij = 0.5 * (DUiDXj[i][j] + DUiDXj[j][i]); strainRateMag += 2 * (sij * sij); } } strainRateMag = sqrt(strainRateMag); - double ReS = Density_i * strainRateMag * dist_i * dist_i / (0.09 * Laminar_Viscosity_i); + su2double ReS = Density_i * strainRateMag * dist_i * dist_i / (0.09 * Laminar_Viscosity_i); fWake = exp(- (1e-10 * ReS * ReS)); - double magU = 0; + su2double magU = 0; for (unsigned short i = 0; i < nDim; i++) { magU += V_i[1+i] * V_i[1+i]; } diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 4008acf48cd..53a161e2a53 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -42,44 +42,44 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa unsigned short iVar; - KAux_ab = new double* [nDim]; + KAux_ab = new su2double* [nDim]; for (iVar = 0; iVar < nDim; iVar++) { - KAux_ab[iVar] = new double[nDim]; + KAux_ab[iVar] = new su2double[nDim]; } if (nDim == 2){ - Ba_Mat = new double* [3]; - Bb_Mat = new double* [3]; - D_Mat = new double* [3]; - Ni_Vec = new double [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - GradNi_Ref_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - GradNi_Curr_Mat = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + Ba_Mat = new su2double* [3]; + Bb_Mat = new su2double* [3]; + D_Mat = new su2double* [3]; + Ni_Vec = new su2double [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + GradNi_Ref_Mat = new su2double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + GradNi_Curr_Mat = new su2double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ for (iVar = 0; iVar < 3; iVar++) { - Ba_Mat[iVar] = new double[nDim]; - Bb_Mat[iVar] = new double[nDim]; - D_Mat[iVar] = new double[3]; + Ba_Mat[iVar] = new su2double[nDim]; + Bb_Mat[iVar] = new su2double[nDim]; + D_Mat[iVar] = new su2double[3]; } for (iVar = 0; iVar < 4; iVar++) { - GradNi_Ref_Mat[iVar] = new double[nDim]; - GradNi_Curr_Mat[iVar] = new double[nDim]; + GradNi_Ref_Mat[iVar] = new su2double[nDim]; + GradNi_Curr_Mat[iVar] = new su2double[nDim]; } } else if (nDim == 3){ - Ba_Mat = new double* [6]; - Bb_Mat = new double* [6]; - D_Mat = new double* [6]; - Ni_Vec = new double [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - GradNi_Ref_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - GradNi_Curr_Mat = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + Ba_Mat = new su2double* [6]; + Bb_Mat = new su2double* [6]; + D_Mat = new su2double* [6]; + Ni_Vec = new su2double [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + GradNi_Ref_Mat = new su2double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + GradNi_Curr_Mat = new su2double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ for (iVar = 0; iVar < 6; iVar++) { - Ba_Mat[iVar] = new double[nDim]; - Bb_Mat[iVar] = new double[nDim]; - D_Mat[iVar] = new double[6]; + Ba_Mat[iVar] = new su2double[nDim]; + Bb_Mat[iVar] = new su2double[nDim]; + D_Mat[iVar] = new su2double[6]; } for (iVar = 0; iVar < 8; iVar++) { - GradNi_Ref_Mat[iVar] = new double[nDim]; - GradNi_Curr_Mat[iVar] = new double[nDim]; + GradNi_Ref_Mat[iVar] = new su2double[nDim]; + GradNi_Curr_Mat[iVar] = new su2double[nDim]; } } } @@ -131,9 +131,9 @@ void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ unsigned short iDim; unsigned short bDim; - double Weight, Jac_X; + su2double Weight, Jac_X; - double val_Mab; + su2double val_Mab; element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ element->ComputeGrad_Linear(); /*--- Need to compute the gradients to obtain the Jacobian: TODO: this may be improved (another method only to compute J_X) ---*/ diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index cb90e82b454..98a92bdcd38 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -36,12 +36,12 @@ CFEM_LinearElasticity::CFEM_LinearElasticity(unsigned short val_nDim, unsigned s unsigned short iVar; if (nDim == 2){ - nodalDisplacement = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - for (iVar = 0; iVar < 4; iVar++) nodalDisplacement[iVar] = new double[nDim]; + nodalDisplacement = new su2double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + for (iVar = 0; iVar < 4; iVar++) nodalDisplacement[iVar] = new su2double[nDim]; } else if (nDim == 3){ - nodalDisplacement = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - for (iVar = 0; iVar < 8; iVar++) nodalDisplacement[iVar] = new double[nDim]; + nodalDisplacement = new su2double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + for (iVar = 0; iVar < 8; iVar++) nodalDisplacement[iVar] = new su2double[nDim]; } @@ -63,9 +63,9 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ unsigned short iDim; unsigned short bDim; - double Weight, Jac_X; + su2double Weight, Jac_X; - double AuxMatrix[3][6]; + su2double AuxMatrix[3][6]; /*--- Initialize auxiliary matrices ---*/ @@ -207,10 +207,10 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ unsigned short iDim; unsigned short bDim; - double Weight, Jac_X; + su2double Weight, Jac_X; /*--- Auxiliary vector ---*/ - double Strain[6], Stress[6]; + su2double Strain[6], Stress[6]; /*--- Initialize auxiliary matrices ---*/ diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index fb87947c891..d2386e118f7 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -35,29 +35,29 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsi unsigned short iVar; - F_Mat = new double *[3]; - b_Mat = new double *[3]; - Stress_Tensor = new double *[3]; + F_Mat = new su2double *[3]; + b_Mat = new su2double *[3]; + Stress_Tensor = new su2double *[3]; for (iVar = 0; iVar < 3; iVar++){ - F_Mat[iVar] = new double [3]; - b_Mat[iVar] = new double [3]; - Stress_Tensor[iVar] = new double [3]; + F_Mat[iVar] = new su2double [3]; + b_Mat[iVar] = new su2double [3]; + Stress_Tensor[iVar] = new su2double [3]; } - KAux_t_a = new double [nDim]; + KAux_t_a = new su2double [nDim]; - KAux_P_ab = new double* [nDim]; + KAux_P_ab = new su2double* [nDim]; for (iVar = 0; iVar < nDim; iVar++) { - KAux_P_ab[iVar] = new double[nDim]; + KAux_P_ab[iVar] = new su2double[nDim]; } if (nDim == 2){ - currentCoord = new double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ - for (iVar = 0; iVar < 4; iVar++) currentCoord[iVar] = new double[nDim]; + currentCoord = new su2double* [4]; /*--- As of now, 4 is the maximum number of nodes for 2D problems ---*/ + for (iVar = 0; iVar < 4; iVar++) currentCoord[iVar] = new su2double[nDim]; } else if (nDim == 3){ - currentCoord = new double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ - for (iVar = 0; iVar < 8; iVar++) currentCoord[iVar] = new double[nDim]; + currentCoord = new su2double* [8]; /*--- As of now, 8 is the maximum number of nodes for 3D problems ---*/ + for (iVar = 0; iVar < 8; iVar++) currentCoord[iVar] = new su2double[nDim]; } J_F = 0.0; @@ -107,12 +107,12 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ unsigned short iNode, jNode, nNode; unsigned short iDim, bDim; - double Ks_Aux_ab; + su2double Ks_Aux_ab; - double Weight, Jac_X, Jac_x; + su2double Weight, Jac_X, Jac_x; - double AuxMatrixKc[3][6]; - double AuxMatrixKs[3]; + su2double AuxMatrixKc[3][6]; + su2double AuxMatrixKs[3]; /*--- Initialize auxiliary matrices ---*/ @@ -326,13 +326,13 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ unsigned short iVar, jVar; unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; - double Weight, Jac_X, Jac_x; + su2double Weight, Jac_X, Jac_x; unsigned short iDim ; - double GradNi_Mat_Term; - double Vol_current, Vol_reference; - double Avg_kappa; - double el_Pressure; + su2double GradNi_Mat_Term; + su2double Vol_current, Vol_reference; + su2double Avg_kappa; + su2double el_Pressure; /*--- Under integration of the pressure term, if the calculations assume incompressibility or near incompressibility ---*/ @@ -426,11 +426,11 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ unsigned short iNode, jNode, nNode; unsigned short iDim, bDim; - double Ks_Aux_ab; + su2double Ks_Aux_ab; - double Weight, Jac_X, Jac_x; + su2double Weight, Jac_X, Jac_x; - double AuxMatrixKt[3]; + su2double AuxMatrixKt[3]; /*--- Initialize auxiliary matrices ---*/ @@ -538,9 +538,9 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ unsigned short iNode, jNode, nNode; unsigned short iDim, bDim; - double Ks_Aux_ab; + su2double Ks_Aux_ab; - double Weight, Jac_X, Jac_x; + su2double Weight, Jac_X, Jac_x; element->clearStress(); /*--- TODO: put these two together ---*/ element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ @@ -661,8 +661,8 @@ CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { - double Mu_p, Lambda_p; - double dij; + su2double Mu_p, Lambda_p; + su2double dij; /*--- This can be done in a better way ---*/ if (J_F != 0.0){ @@ -691,8 +691,8 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { unsigned short iVar,jVar; - double Mu_J, Lambda_J; - double dij; + su2double Mu_J, Lambda_J; + su2double dij; /*--- This can be done in a better way ---*/ if (J_F != 0.0){ @@ -723,8 +723,8 @@ CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { unsigned short iVar; - double dij, el_P; - double Ib = 0.0, Jft; + su2double dij, el_P; + su2double Ib = 0.0, Jft; /*--- First invariant of b -> Ib = tr(b) ---*/ for (iVar = 0; iVar < 3; iVar++){ @@ -820,8 +820,8 @@ void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element) { unsigned short iDim,jDim; - double dij, el_P; - double Ib = 0.0, Jft; + su2double dij, el_P; + su2double Ib = 0.0, Jft; /*--- First invariant of b -> Ib = tr(b) ---*/ for (iDim = 0; iDim < 3; iDim++){ diff --git a/SU2_CFD/src/numerics_linearized_mean.cpp b/SU2_CFD/src/numerics_linearized_mean.cpp index b58ca70c468..f38b95dee1d 100644 --- a/SU2_CFD/src/numerics_linearized_mean.cpp +++ b/SU2_CFD/src/numerics_linearized_mean.cpp @@ -40,23 +40,23 @@ CCentJST_LinFlow::CCentJST_LinFlow(unsigned short val_nDim, unsigned short val_n Param_p = 0.3; Param_Kappa_4 = config->GetKappa_4th_LinFlow(); - Diff_DeltaU = new double [nVar]; - Diff_Lapl = new double [nVar]; - Und_Lapl_i = new double [nVar]; - Und_Lapl_j = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - MeanDeltaVel = new double [nDim]; - MeanJacobian = new double* [nVar]; + Diff_DeltaU = new su2double [nVar]; + Diff_Lapl = new su2double [nVar]; + Und_Lapl_i = new su2double [nVar]; + Und_Lapl_j = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + MeanDeltaVel = new su2double [nDim]; + MeanJacobian = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - MeanJacobian[iVar] = new double [nVar]; - Jacobian_i = new double* [nVar]; + MeanJacobian[iVar] = new su2double [nVar]; + Jacobian_i = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Jacobian_j[iVar] = new double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } CCentJST_LinFlow::~CCentJST_LinFlow(void) { @@ -80,8 +80,8 @@ CCentJST_LinFlow::~CCentJST_LinFlow(void) { delete [] Jacobian_j; } -void CCentJST_LinFlow::ComputeResidual (double *val_resconv, double *val_resvisc, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CCentJST_LinFlow::ComputeResidual (su2double *val_resconv, su2double *val_resvisc, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { /*--- Mean Values of the linealized variables ---*/ MeanDeltaRho = 0.5*(DeltaU_i[0]+DeltaU_j[0]); @@ -153,7 +153,7 @@ void CCentJST_LinFlow::ComputeResidual (double *val_resconv, double *val_resvisc Phi_j = pow(0.5*max(0.0,(Lambda_j - MeanLambda)/(MeanLambda)), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc4 = 9.0/(double(Neighbor_i*(1+Neighbor_i))) + 9.0/(double(Neighbor_j*(1+Neighbor_j))); + sc4 = 9.0/(su2double(Neighbor_i*(1+Neighbor_i))) + 9.0/(su2double(Neighbor_j*(1+Neighbor_j))); Epsilon_4 = Param_Kappa_4*sc4; @@ -172,20 +172,20 @@ CCentLax_LinFlow::CCentLax_LinFlow(unsigned short val_nDim, unsigned short val_n Param_p = 0.3; Param_Kappa_0 = config->GetKappa_1st_LinFlow(); - Diff_DeltaU = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - MeanVelocity = new double [nDim]; - MeanDeltaVel = new double [nDim]; - MeanJacobian = new double* [nVar]; + Diff_DeltaU = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + MeanVelocity = new su2double [nDim]; + MeanDeltaVel = new su2double [nDim]; + MeanJacobian = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - MeanJacobian[iVar] = new double [nVar]; - Jacobian_i = new double* [nVar]; + MeanJacobian[iVar] = new su2double [nVar]; + Jacobian_i = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Jacobian_j[iVar] = new double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } CCentLax_LinFlow::~CCentLax_LinFlow(void) { @@ -207,8 +207,8 @@ CCentLax_LinFlow::~CCentLax_LinFlow(void) { delete [] Jacobian_j; } -void CCentLax_LinFlow::ComputeResidual (double *val_resconv, double *val_resvisc, double **val_Jacobian_i, - double **val_Jacobian_j, CConfig *config) { +void CCentLax_LinFlow::ComputeResidual (su2double *val_resconv, su2double *val_resvisc, su2double **val_Jacobian_i, + su2double **val_Jacobian_j, CConfig *config) { /*--- Mean Values of the linealized variables ---*/ MeanDeltaRho = 0.5*(DeltaU_i[0]+DeltaU_j[0]); @@ -278,8 +278,8 @@ void CCentLax_LinFlow::ComputeResidual (double *val_resconv, double *val_resvisc Phi_j = pow(Lambda_j/(4.0*MeanLambda), Param_p); StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j); - sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); - Epsilon_i = Param_Kappa_0*sc2*double(nDim)/3.0; + sc2 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j)); + Epsilon_i = Param_Kappa_0*sc2*su2double(nDim)/3.0; /*--- Evaluate artificial dissipation ---*/ for (iVar = 0; iVar < nVar; iVar++) diff --git a/SU2_CFD/src/numerics_machine_learning.cpp b/SU2_CFD/src/numerics_machine_learning.cpp index b461a13e362..a3e23dff28e 100644 --- a/SU2_CFD/src/numerics_machine_learning.cpp +++ b/SU2_CFD/src/numerics_machine_learning.cpp @@ -80,10 +80,10 @@ CScaler::CScaler() {} CScaler::~CScaler() {} CNormalScaler::CNormalScaler() {} -CNormalScaler::CNormalScaler(int dim, double *mu, double *sigma) { +CNormalScaler::CNormalScaler(int dim, su2double *mu, su2double *sigma) { this->dim = dim; - this->mu = new double[dim]; - this->sigma = new double[dim]; + this->mu = new su2double[dim]; + this->sigma = new su2double[dim]; for (int i=0; i < dim; i++) { this->mu[i] = mu[i]; this->sigma[i] = sigma[i]; @@ -104,7 +104,7 @@ CNormalScaler::CNormalScaler(Json::Value json) { if (muSize != nDim) { cout << "musize and Dim mismatch" << endl; } - double *mu = new double[muSize]; + su2double *mu = new su2double[muSize]; for (int i = 0; i < nDim; i++) { mu[i] = muVal[i].asDouble(); } @@ -115,7 +115,7 @@ CNormalScaler::CNormalScaler(Json::Value json) { cout << "sigmasize and and Dim mismatch" << endl; } - double * sigma = new double[sigmaSize]; + su2double * sigma = new su2double[sigmaSize]; for (int i = 0; i < nDim; i++) { sigma[i] = sigmaVal[i].asDouble(); } @@ -129,13 +129,13 @@ CNormalScaler::CNormalScaler(Json::Value json) { #endif -void CNormalScaler::Scale(double * inputs) { +void CNormalScaler::Scale(su2double * inputs) { for (int i=0; iMulScale; - double * second = &inputs[1]; + su2double * second = &inputs[1]; this->InnerScaler->Scale(second); return; } -void CMulInputScaler::Unscale(double * inputs) { +void CMulInputScaler::Unscale(su2double * inputs) { inputs[0] *= this->MulScale; - double * second = &inputs[1]; + su2double * second = &inputs[1]; this->InnerScaler->Unscale(second); return; } CMulOutputScaler::CMulOutputScaler() {} CMulOutputScaler::~CMulOutputScaler() {} -void CMulOutputScaler::Scale(double * outputs) { +void CMulOutputScaler::Scale(su2double * outputs) { outputs[0] /= this->MulScale; return; } @@ -182,7 +182,7 @@ CMulOutputScaler::CMulOutputScaler(Json::Value json) { } #endif -void CMulOutputScaler::Unscale(double * outputs) { +void CMulOutputScaler::Unscale(su2double * outputs) { outputs[0] *= this->MulScale; return; } @@ -196,9 +196,9 @@ CTanhActivator::CTanhActivator(Json::Value json) { } #endif CTanhActivator::~CTanhActivator() {} -double CTanhActivator::Activate(double sum) { +su2double CTanhActivator::Activate(su2double sum) { //cout << "In CTanhActivator" << endl; - double val = 1.7159 * tanh(2.0/3.0 *sum); + su2double val = 1.7159 * tanh(2.0/3.0 *sum); //cout << "Done CTanhActivator" << endl; return val; } @@ -211,7 +211,7 @@ CLinearActivator::CLinearActivator(Json::Value) { CLinearActivator::~CLinearActivator() {} -double CLinearActivator::Activate(double sum) { +su2double CLinearActivator::Activate(su2double sum) { // cout << "In CLinear Activate" << endl; return sum; } @@ -241,8 +241,8 @@ CSumNeuron::~CSumNeuron() { delete this->activator; } -double CSumNeuron::Combine(double *parameters, int nParameters, double *inputs, int nInputs) { - double combination = 0; +su2double CSumNeuron::Combine(su2double *parameters, int nParameters, su2double *inputs, int nInputs) { + su2double combination = 0; for (int i = 0; i < nInputs; i++) { combination += inputs[i] * parameters[i]; } @@ -253,7 +253,7 @@ double CSumNeuron::Combine(double *parameters, int nParameters, double *inputs, return combination; } -double CSumNeuron::Activate(double combination) { +su2double CSumNeuron::Activate(su2double combination) { return this->activator->Activate(combination); } @@ -279,8 +279,8 @@ CMulPredictor::CMulPredictor(Json::Value json) { CMulPredictor::~CMulPredictor() {} -void CMulPredictor::Predict(double * input, double * output) { - double * secondInput = &input[1]; +void CMulPredictor::Predict(su2double * input, su2double * output) { + su2double * secondInput = &input[1]; this->Inner->Predict(secondInput, output); for (int i = 0; i < this->OutputDim(); i++) { output[i] *= input[0]; @@ -310,7 +310,7 @@ CNeurNet::CNeurNet(Json::Value json) { this->nNeuronsInLayer = new int[nLayers]; this->nParameters = new int *[nLayers]; this->neurons = new CNeuron **[nLayers]; - this->parameters = new double**[nLayers]; + this->parameters = new su2double**[nLayers]; // Per layer, get the number of neurons in the layer and then read in the neurons for (int i = 0; i < nLayers; i++) { @@ -329,7 +329,7 @@ CNeurNet::CNeurNet(Json::Value json) { } this->neurons[i] = new CNeuron *[neuronsInLayer]; this->nParameters[i] = new int[neuronsInLayer]; - this->parameters[i] = new double *[neuronsInLayer]; + this->parameters[i] = new su2double *[neuronsInLayer]; // Loop over all the neurons in the layer and add the parameters and neuron itself for (int j = 0; j < neuronsInLayer; j++) { @@ -338,10 +338,10 @@ CNeurNet::CNeurNet(Json::Value json) { // get the parameters int nParametersInNeuron = parameterLayer[j].size(); this->nParameters[i][j] = nParametersInNeuron; - this->parameters[i][j] = new double [nParametersInNeuron]; + this->parameters[i][j] = new su2double [nParametersInNeuron]; for (int k = 0; k < nParametersInNeuron; k++) { - double val = parameterLayer[j][k].asDouble(); + su2double val = parameterLayer[j][k].asDouble(); this->parameters[i][j][k] = val; /* long *ptrFloatAsInt =(long *)( &val); @@ -389,17 +389,17 @@ CNeurNet::~CNeurNet() { delete [] this->nParameters; } -void CNeurNet::processLayer(double * input, int nInput, CNeuron **neurons, double **parameters, int nNeurons, int * nParameters, double *output) { +void CNeurNet::processLayer(su2double * input, int nInput, CNeuron **neurons, su2double **parameters, int nNeurons, int * nParameters, su2double *output) { for (int i = 0; i < nNeurons; i++) { - double combination = neurons[i]->Combine(parameters[i], nParameters[i], input, nInput); + su2double combination = neurons[i]->Combine(parameters[i], nParameters[i], input, nInput); output[i] = neurons[i]->Activate(combination); } return; } -void CNeurNet::Predict(double * input, double * output) { - double * prevTmpOutput = new double[this->maxNeurons]; - double *tmpOutput = new double[this->maxNeurons]; +void CNeurNet::Predict(su2double * input, su2double * output) { + su2double * prevTmpOutput = new su2double[this->maxNeurons]; + su2double *tmpOutput = new su2double[this->maxNeurons]; int nLayers = this->nLayers; @@ -423,7 +423,7 @@ void CNeurNet::Predict(double * input, double * output) { cout << "First layer tmp output" << endl; for (int i = 0; i < this->nNeuronsInLayer[0]; i++) { cout << tmpOutput[i] << endl; - double tmp = tmpOutput[i]; + su2double tmp = tmpOutput[i]; long *ptrFloatAsInt =(long *)( &tmp); cout << hex; cout << *ptrFloatAsInt << endl; @@ -434,7 +434,7 @@ void CNeurNet::Predict(double * input, double * output) { // Middle layers use the previous output as input for (int i= 1; i < nLayers -1; i++) { - double *tmp; + su2double *tmp; tmp = prevTmpOutput; prevTmpOutput = tmpOutput; tmpOutput = tmp; @@ -511,20 +511,20 @@ CScalePredictor::CScalePredictor(string filename) { for (int i = 0; i < nTestInputs; i++) { int nInputs = testInputs[i].size(); int nOutputs = testOutputs[i].size(); - double *input = new double[nInputs]; - double *output = new double[nOutputs]; + su2double *input = new su2double[nInputs]; + su2double *output = new su2double[nOutputs]; for (int j = 0; j < nInputs; j++) { input[j] = testInputs[i][j].asDouble(); } for (int j=0; j < nOutputs; j++) { output[j] = testOutputs[i][j].asDouble(); } - double *predOutput = new double[nOutputs]; + su2double *predOutput = new su2double[nOutputs]; this->Predict(input, predOutput); bool mismatch = 0; for (int j = 0; j < nOutputs; j++) { - double max = abs(output[j]); + su2double max = abs(output[j]); if (predOutput[j] > max) { max = abs(predOutput[j]); } @@ -565,7 +565,7 @@ CScalePredictor::~CScalePredictor() { delete this->OutputScaler; return; } -void CScalePredictor::Predict(double *input, double *output) { +void CScalePredictor::Predict(su2double *input, su2double *output) { // Scale the input this->InputScaler->Scale(input); @@ -579,22 +579,22 @@ void CScalePredictor::Predict(double *input, double *output) { CSANondimInputs::CSANondimInputs(int nDim) { this->nDim = nDim; - this->DNuHatDXBar = new double[nDim]; + this->DNuHatDXBar = new su2double[nDim]; }; CSANondimInputs::~CSANondimInputs() { delete [] this->DNuHatDXBar; }; void CSANondimInputs::Set(SpalartAllmarasInputs* sainputs) { - double kin_visc = sainputs->Laminar_Viscosity / sainputs->Density; + su2double kin_visc = sainputs->Laminar_Viscosity / sainputs->Density; this->Chi = sainputs->Turbulent_Kinematic_Viscosity / kin_visc; - double nuSum = sainputs->Turbulent_Kinematic_Viscosity + kin_visc; - double dist = sainputs->dist; + su2double nuSum = sainputs->Turbulent_Kinematic_Viscosity + kin_visc; + su2double dist = sainputs->dist; if (dist < 1e-10) { dist = 1e-10; } - double distSq = dist* dist; + su2double distSq = dist* dist; this->OmegaNondim = 1.0 / ( distSq / (nuSum) ); this->OmegaBar = sainputs->Omega / this->OmegaNondim; @@ -611,7 +611,7 @@ void CSANondimInputs::Set(SpalartAllmarasInputs* sainputs) { exit(EXIT_FAILURE); } - double * turbViscGrad = sainputs->GetTurbKinViscGradient(); + su2double * turbViscGrad = sainputs->GetTurbKinViscGradient(); this->NuHatGradNorm = 0; for (int i = 0; i < this->nDim; i++) { this->DNuHatDXBar[i] = turbViscGrad[i] / this->NuGradNondim; @@ -619,13 +619,13 @@ void CSANondimInputs::Set(SpalartAllmarasInputs* sainputs) { } this->NuHatGradNormBar = this->NuHatGradNorm / this->SourceNondim; }; -void CSANondimInputs::NondimensionalizeSource(int nResidual, double * source) { +void CSANondimInputs::NondimensionalizeSource(int nResidual, su2double * source) { for (int i = 0; i < nResidual; i++) { source[i] /= this->SourceNondim; } } -void CSANondimInputs::DimensionalizeSource(int nResidual, double * source) { +void CSANondimInputs::DimensionalizeSource(int nResidual, su2double * source) { for (int i = 0; i < nResidual; i++) { // cout << "pre" << source[i] << endl; diff --git a/SU2_CFD/src/numerics_machine_learning_turbulent.cpp b/SU2_CFD/src/numerics_machine_learning_turbulent.cpp index 84c91b9aa63..0235ffeb1ef 100644 --- a/SU2_CFD/src/numerics_machine_learning_turbulent.cpp +++ b/SU2_CFD/src/numerics_machine_learning_turbulent.cpp @@ -53,18 +53,18 @@ SpalartAllmarasInputs::SpalartAllmarasInputs(int nDim) { init(nDim, 1e-10); } -void SpalartAllmarasInputs::init(int nDim, double limiter) { +void SpalartAllmarasInputs::init(int nDim, su2double limiter) { this->nDim = nDim; this->limiter = limiter; - DUiDXj = new double*[nDim]; + DUiDXj = new su2double*[nDim]; for (int i = 0; i < nDim; i++) { - DUiDXj[i] = new double[nDim]; + DUiDXj[i] = new su2double[nDim]; } - DTurb_Kin_Visc_DXj = new double[nDim]; + DTurb_Kin_Visc_DXj = new su2double[nDim]; return; } -SpalartAllmarasInputs::SpalartAllmarasInputs(int nDim, double limiter) { +SpalartAllmarasInputs::SpalartAllmarasInputs(int nDim, su2double limiter) { init(nDim, limiter); } @@ -80,18 +80,18 @@ int SpalartAllmarasInputs::GetNumDim() { return nDim; } -double SpalartAllmarasInputs::GetLimiter() { +su2double SpalartAllmarasInputs::GetLimiter() { return limiter; } -double** SpalartAllmarasInputs::GetMeanFlowGradient() { +su2double** SpalartAllmarasInputs::GetMeanFlowGradient() { return DUiDXj; } -double* SpalartAllmarasInputs::GetTurbKinViscGradient() { +su2double* SpalartAllmarasInputs::GetTurbKinViscGradient() { return DTurb_Kin_Visc_DXj; } -void SpalartAllmarasInputs::Set(double** DUiDXj, double* DTurb_Kin_Visc_DXj, bool rotating_frame, bool transition, double dist, double Laminar_Viscosity, double Density, double Turbulent_Kinematic_Viscosity, double intermittency) { +void SpalartAllmarasInputs::Set(su2double** DUiDXj, su2double* DTurb_Kin_Visc_DXj, bool rotating_frame, bool transition, su2double dist, su2double Laminar_Viscosity, su2double Density, su2double Turbulent_Kinematic_Viscosity, su2double intermittency) { for (int i=0; i nDim; i++) { for (int j = 0; j < this->nDim; j++) { this->DUiDXj[i][j] = DUiDXj[i][j]; @@ -116,11 +116,11 @@ void SpalartAllmarasInputs::Set(double** DUiDXj, double* DTurb_Kin_Visc_DXj, boo Does not include the volume term */ -void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasConstants* constants, double* output_residual, double* output_jacobian, SpalartAllmarasOtherOutputs* otherOutput) { - double dist = inputs->dist; // Wall distance +void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasConstants* constants, su2double* output_residual, su2double* output_jacobian, SpalartAllmarasOtherOutputs* otherOutput) { + su2double dist = inputs->dist; // Wall distance int nDim = inputs->GetNumDim(); // Limit if too close to the wall - double limiter = inputs->GetLimiter(); + su2double limiter = inputs->GetLimiter(); int nResidOutputs = 4; int nJacOutputs = 1; if (dist < limiter) { @@ -133,25 +133,25 @@ void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasCon return; } - double **DUiDXj = inputs->GetMeanFlowGradient(); - double Vorticity = ComputeVorticity(nDim, DUiDXj); - double Omega = sqrt(Vorticity); + su2double **DUiDXj = inputs->GetMeanFlowGradient(); + su2double Vorticity = ComputeVorticity(nDim, DUiDXj); + su2double Omega = sqrt(Vorticity); otherOutput->Omega = Omega; - double StrainMag; - double Laminar_Viscosity = inputs->Laminar_Viscosity; - double Density = inputs->Density; - double Turbulent_Kinematic_Viscosity = inputs->Turbulent_Kinematic_Viscosity; + su2double StrainMag; + su2double Laminar_Viscosity = inputs->Laminar_Viscosity; + su2double Density = inputs->Density; + su2double Turbulent_Kinematic_Viscosity = inputs->Turbulent_Kinematic_Viscosity; bool transition = inputs->transition; - double intermittency = inputs->intermittency; + su2double intermittency = inputs->intermittency; - double div, dist_2, Laminar_Kinematic_Viscosity, J, J_2, J_3, + su2double div, dist_2, Laminar_Kinematic_Viscosity, J, J_2, J_3, fv1, fv2, S, inv_k2_d2, Shat, inv_Shat, r, g, g_6, glim, fw, norm2_Grad, dfv1, dfv2, dr, dg, dfw; - double Production, Destruction, CrossProduction; - double *DTurb_Kin_Visc_DXj = inputs->GetTurbKinViscGradient(); - double dShat; + su2double Production, Destruction, CrossProduction; + su2double *DTurb_Kin_Visc_DXj = inputs->GetTurbKinViscGradient(); + su2double dShat; // Correction for rotating frame if (inputs->rotating_frame) { @@ -189,7 +189,7 @@ void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasCon Production *= intermittency; } - double limitOmega = max(Omega, 1.0e-10); + su2double limitOmega = max(Omega, 1.0e-10); otherOutput->mul_production = constants->cb1 * (1 + Turbulent_Kinematic_Viscosity * inv_k2_d2 * fv2 / limitOmega); // cout << "mul prod = " << otherOutput->mul_production << endl; // cout << "omega = " << Omega << endl; @@ -213,7 +213,7 @@ void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasCon g = r + constants->cw2*(pow(r,6.0)-r); g_6 = pow(g,6.0); - double cw3_6 = constants->cw3_6; + su2double cw3_6 = constants->cw3_6; glim = pow((1.0+cw3_6)/(g_6+cw3_6),1.0/6.0); fw = g*glim; @@ -272,8 +272,8 @@ void SpalartAllmarasSourceTerm(SpalartAllmarasInputs* inputs, SpalartAllmarasCon }; -double ComputeVorticity(int nDim, double** DUiDXj) { - double Vorticity = (DUiDXj[1][0]-DUiDXj[0][1])*(DUiDXj[1][0]-DUiDXj[0][1]); +su2double ComputeVorticity(int nDim, su2double** DUiDXj) { + su2double Vorticity = (DUiDXj[1][0]-DUiDXj[0][1])*(DUiDXj[1][0]-DUiDXj[0][1]); if (nDim == 3) { Vorticity += ( (DUiDXj[2][1]-DUiDXj[1][2])*(DUiDXj[2][1]-DUiDXj[1][2]) + (DUiDXj[0][2]-DUiDXj[2][0])*(DUiDXj[0][2]-DUiDXj[2][0])); } diff --git a/SU2_CFD/src/numerics_structure.cpp b/SU2_CFD/src/numerics_structure.cpp index 24b77be12c8..757888d99f9 100644 --- a/SU2_CFD/src/numerics_structure.cpp +++ b/SU2_CFD/src/numerics_structure.cpp @@ -46,19 +46,19 @@ CNumerics::CNumerics(unsigned short val_nDim, unsigned short val_nVar, Prandtl_Turb = config->GetPrandtl_Turb(); Gas_Constant = config->GetGas_ConstantND(); - UnitNormal = new double [nDim]; - UnitNormald = new double [nDim]; + UnitNormal = new su2double [nDim]; + UnitNormald = new su2double [nDim]; - Normal = new double [nDim]; - Flux_Tensor = new double* [nVar]; + Normal = new su2double [nDim]; + Flux_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < (nVar); iVar++) - Flux_Tensor[iVar] = new double [nDim]; + Flux_Tensor[iVar] = new su2double [nDim]; - tau = new double* [nDim]; - delta = new double* [nDim]; + tau = new su2double* [nDim]; + delta = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) { - tau[iDim] = new double [nDim]; - delta[iDim] = new double [nDim]; + tau[iDim] = new su2double [nDim]; + delta[iDim] = new su2double [nDim]; } for (iDim = 0; iDim < nDim; iDim++) { @@ -68,11 +68,11 @@ CNumerics::CNumerics(unsigned short val_nDim, unsigned short val_nVar, } } - U_n = new double [nVar]; - U_nM1 = new double [nVar]; - U_nP1 = new double [nVar]; + U_n = new su2double [nVar]; + U_nM1 = new su2double [nVar]; + U_nP1 = new su2double [nVar]; - Proj_Flux_Tensor = new double [nVar]; + Proj_Flux_Tensor = new su2double [nVar]; turb_ke_i = 0.0; turb_ke_j = 0.0; @@ -93,29 +93,29 @@ CNumerics::CNumerics(unsigned short val_nDim, unsigned short val_nVar, (config->GetKind_Solver() == ADJ_TNE2_EULER) || (config->GetKind_Solver() == ADJ_TNE2_NAVIER_STOKES) ) { nSpecies = nVar - nDim - 2; - Ys = new double[nSpecies]; - dFdYi = new double *[nSpecies]; - dFdYj = new double *[nSpecies]; + Ys = new su2double[nSpecies]; + dFdYi = new su2double *[nSpecies]; + dFdYj = new su2double *[nSpecies]; for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - dFdYi[iSpecies] = new double[nSpecies]; - dFdYj[iSpecies] = new double[nSpecies]; + dFdYi[iSpecies] = new su2double[nSpecies]; + dFdYj[iSpecies] = new su2double[nSpecies]; } - sumdFdYih = new double[nSpecies]; - sumdFdYjh = new double[nSpecies]; - sumdFdYieve = new double[nSpecies]; - sumdFdYjeve = new double[nSpecies]; + sumdFdYih = new su2double[nSpecies]; + sumdFdYjh = new su2double[nSpecies]; + sumdFdYieve = new su2double[nSpecies]; + sumdFdYjeve = new su2double[nSpecies]; - Diffusion_Coeff_i = new double[nSpecies]; - Diffusion_Coeff_j = new double[nSpecies]; + Diffusion_Coeff_i = new su2double[nSpecies]; + Diffusion_Coeff_j = new su2double[nSpecies]; unsigned short nPrimVar = nSpecies+nDim+8; unsigned short nPrimVarGrad = nSpecies+nDim+8; var = new CTNE2EulerVariable(nDim, nVar, nPrimVar, nPrimVarGrad, config); } - Vector = new double[nDim]; + Vector = new su2double[nDim]; - l = new double [nDim]; - m = new double [nDim]; + l = new su2double [nDim]; + m = new su2double [nDim]; } @@ -172,8 +172,8 @@ CNumerics::~CNumerics(void) { } -void CNumerics::GetInviscidFlux(double val_density, double *val_velocity, - double val_pressure, double val_enthalpy) { +void CNumerics::GetInviscidFlux(su2double val_density, su2double *val_velocity, + su2double val_pressure, su2double val_enthalpy) { if (nDim == 3) { Flux_Tensor[0][0] = val_density*val_velocity[0]; Flux_Tensor[1][0] = Flux_Tensor[0][0]*val_velocity[0]+val_pressure; @@ -207,14 +207,14 @@ void CNumerics::GetInviscidFlux(double val_density, double *val_velocity, } } -void CNumerics::GetInviscidProjFlux(double *val_density, - double *val_velocity, - double *val_pressure, - double *val_enthalpy, - double *val_normal, - double *val_Proj_Flux) { +void CNumerics::GetInviscidProjFlux(su2double *val_density, + su2double *val_velocity, + su2double *val_pressure, + su2double *val_enthalpy, + su2double *val_normal, + su2double *val_Proj_Flux) { - double rhou, rhov, rhow; + su2double rhou, rhov, rhow; if (nDim == 2) { @@ -260,16 +260,16 @@ void CNumerics::GetInviscidProjFlux(double *val_density, } -void CNumerics::GetInviscidProjFlux(double *val_U, - double *val_V, - double *val_normal, - double *val_Proj_Flux) { +void CNumerics::GetInviscidProjFlux(su2double *val_U, + su2double *val_V, + su2double *val_normal, + su2double *val_Proj_Flux) { unsigned short iSpecies, iVar; - double rho, u, v, w, rhoEve, P, H; - double *rhos; + su2double rho, u, v, w, rhoEve, P, H; + su2double *rhos; /*--- Allocate arrays ---*/ - rhos = new double[nSpecies]; + rhos = new su2double[nSpecies]; /*--- Initialize vectors ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -391,13 +391,13 @@ void CNumerics::GetInviscidProjFlux(double *val_U, delete [] rhos; } -void CNumerics::GetInviscidArtCompProjFlux(double *val_density, - double *val_velocity, - double *val_pressure, - double *val_betainc2, - double *val_normal, - double *val_Proj_Flux) { - double rhou, rhov, rhow; +void CNumerics::GetInviscidArtCompProjFlux(su2double *val_density, + su2double *val_velocity, + su2double *val_pressure, + su2double *val_betainc2, + su2double *val_normal, + su2double *val_Proj_Flux) { + su2double rhou, rhov, rhow; if (nDim == 2) { rhou = (*val_density)*val_velocity[0]; @@ -420,10 +420,10 @@ void CNumerics::GetInviscidArtCompProjFlux(double *val_density, } -void CNumerics::GetInviscidArtComp_FreeSurf_ProjFlux(double *val_density, double *val_velocity, double *val_pressure, double *val_betainc2, - double *val_levelset, double *val_normal, double *val_Proj_Flux) { +void CNumerics::GetInviscidArtComp_FreeSurf_ProjFlux(su2double *val_density, su2double *val_velocity, su2double *val_pressure, su2double *val_betainc2, + su2double *val_levelset, su2double *val_normal, su2double *val_Proj_Flux) { - double rhou, rhov, rhow, ProjVel; + su2double rhou, rhov, rhow, ProjVel; if (nDim == 2) { rhou = (*val_density)*val_velocity[0]; @@ -450,12 +450,12 @@ void CNumerics::GetInviscidArtComp_FreeSurf_ProjFlux(double *val_density, double } -void CNumerics::GetInviscidProjJac(double *val_velocity, double *val_energy, - double *val_normal, double val_scale, - double **val_Proj_Jac_Tensor) { +void CNumerics::GetInviscidProjJac(su2double *val_velocity, su2double *val_energy, + su2double *val_normal, su2double val_scale, + su2double **val_Proj_Jac_Tensor) { unsigned short iDim, jDim; - double sqvel, proj_vel, phi, a1, a2; + su2double sqvel, proj_vel, phi, a1, a2; sqvel = 0.0, proj_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { @@ -488,12 +488,12 @@ void CNumerics::GetInviscidProjJac(double *val_velocity, double *val_energy, } -void CNumerics::GetInviscidProjJac(double *val_velocity, double *val_enthalpy, - double *val_chi, double *val_kappa, - double *val_normal, double val_scale, - double **val_Proj_Jac_Tensor) { +void CNumerics::GetInviscidProjJac(su2double *val_velocity, su2double *val_enthalpy, + su2double *val_chi, su2double *val_kappa, + su2double *val_normal, su2double val_scale, + su2double **val_Proj_Jac_Tensor) { unsigned short iDim, jDim; - double sqvel, proj_vel, phi, a1, a2; + su2double sqvel, proj_vel, phi, a1, a2; sqvel = 0.0, proj_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { @@ -524,16 +524,16 @@ void CNumerics::GetInviscidProjJac(double *val_velocity, double *val_enthalpy, val_Proj_Jac_Tensor[nDim+1][nDim+1] = val_scale*(a2+1)*proj_vel; } -void CNumerics::GetInviscidProjJac(double *val_U, double *val_V, - double *val_dPdU, double *val_normal, - double val_scale, - double **val_Proj_Jac_Tensor) { +void CNumerics::GetInviscidProjJac(su2double *val_U, su2double *val_V, + su2double *val_dPdU, su2double *val_normal, + su2double val_scale, + su2double **val_Proj_Jac_Tensor) { unsigned short iDim, iVar, jVar, iSpecies, jSpecies; - double proj_vel, rho, u, v, w, rhoEve, H; - double *rhos; + su2double proj_vel, rho, u, v, w, rhoEve, H; + su2double *rhos; - rhos = new double[nSpecies]; + rhos = new su2double[nSpecies]; /*--- Initialize the Jacobian tensor ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -620,10 +620,10 @@ void CNumerics::GetInviscidProjJac(double *val_U, double *val_V, } -void CNumerics::GetInviscidArtCompProjJac(double *val_density, double *val_velocity, double *val_betainc2, double *val_normal, - double val_scale, double **val_Proj_Jac_Tensor) { +void CNumerics::GetInviscidArtCompProjJac(su2double *val_density, su2double *val_velocity, su2double *val_betainc2, su2double *val_normal, + su2double val_scale, su2double **val_Proj_Jac_Tensor) { unsigned short iDim; - double proj_vel; + su2double proj_vel; proj_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) @@ -666,10 +666,10 @@ void CNumerics::GetInviscidArtCompProjJac(double *val_density, double *val_veloc } -void CNumerics::GetInviscidArtComp_FreeSurf_ProjJac(double *val_density, double *val_ddensity, double *val_velocity, double *val_betainc2, double *val_levelset, double *val_normal, - double val_scale, double **val_Proj_Jac_Tensor) { +void CNumerics::GetInviscidArtComp_FreeSurf_ProjJac(su2double *val_density, su2double *val_ddensity, su2double *val_velocity, su2double *val_betainc2, su2double *val_levelset, su2double *val_normal, + su2double val_scale, su2double **val_Proj_Jac_Tensor) { - double a = 0.0, b = 0.0, c = 0.0, d = 0.0, nx = 0.0, ny = 0.0, nz = 0.0, u = 0.0, v = 0.0, w = 0.0; + su2double a = 0.0, b = 0.0, c = 0.0, d = 0.0, nx = 0.0, ny = 0.0, nz = 0.0, u = 0.0, v = 0.0, w = 0.0; a = (*val_betainc2)/(*val_density); b = (*val_levelset)/(*val_density); @@ -745,7 +745,7 @@ void CNumerics::GetInviscidArtComp_FreeSurf_ProjJac(double *val_density, double } -void CNumerics::SetPastSol (double *val_u_nM1, double *val_u_n, double *val_u_nP1) { +void CNumerics::SetPastSol (su2double *val_u_nM1, su2double *val_u_n, su2double *val_u_nP1) { unsigned short iVar; for (iVar = 0; iVar < nVar; iVar++) { @@ -755,17 +755,17 @@ void CNumerics::SetPastSol (double *val_u_nM1, double *val_u_n, double *val_u_nP } } -void CNumerics::SetPastVolume (double val_volume_nM1, double val_volume_n, double val_volume_nP1) { +void CNumerics::SetPastVolume (su2double val_volume_nM1, su2double val_volume_n, su2double val_volume_nP1) { Volume_nM1 = val_volume_nM1; Volume_n = val_volume_n; Volume_nP1 = val_volume_nP1; } -void CNumerics::GetPMatrix(double *val_density, double *val_velocity, - double *val_soundspeed, double *val_normal, double **val_p_tensor) { +void CNumerics::GetPMatrix(su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_normal, su2double **val_p_tensor) { - double sqvel, rhooc, rhoxc, c2; + su2double sqvel, rhooc, rhoxc, c2; rhooc = *val_density / *val_soundspeed, rhoxc = *val_density * *val_soundspeed, @@ -834,10 +834,10 @@ void CNumerics::GetPMatrix(double *val_density, double *val_velocity, } -void CNumerics::GetPMatrix(double *val_density, double *val_velocity, - double *val_soundspeed, double *val_enthalpy, double *val_chi, double *val_kappa, double *val_normal, double **val_p_tensor) { +void CNumerics::GetPMatrix(su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_enthalpy, su2double *val_chi, su2double *val_kappa, su2double *val_normal, su2double **val_p_tensor) { - double sqvel, rhooc, rhoxc, c2, zeta; + su2double sqvel, rhooc, rhoxc, c2, zeta; rhooc = *val_density / *val_soundspeed, rhoxc = *val_density * *val_soundspeed, @@ -904,15 +904,15 @@ void CNumerics::GetPMatrix(double *val_density, double *val_velocity, } -void CNumerics::GetPMatrix(double *U, double *V, double *val_dPdU, - double *val_normal, double *l, double *m, - double **val_p_tensor) { +void CNumerics::GetPMatrix(su2double *U, su2double *V, su2double *val_dPdU, + su2double *val_normal, su2double *l, su2double *m, + su2double **val_p_tensor) { // P matrix is equivalent to the L matrix in Gnoffo unsigned short iSpecies, iDim, iVar, jVar; - double sqvel, rho, a, a2, eve; - double vU, vV, vW; + su2double sqvel, rho, a, a2, eve; + su2double vU, vV, vW; /*--- Initialize the P matrix to zero ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -992,10 +992,10 @@ void CNumerics::GetPMatrix(double *U, double *V, double *val_dPdU, } } -void CNumerics::GetPMatrix_inv(double *val_density, double *val_velocity, - double *val_soundspeed, double *val_normal, double **val_invp_tensor) { +void CNumerics::GetPMatrix_inv(su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_normal, su2double **val_invp_tensor) { - double rhoxc, c2, gm1, k0orho, k1orho, gm1_o_c2, gm1_o_rhoxc, sqvel; + su2double rhoxc, c2, gm1, k0orho, k1orho, gm1_o_c2, gm1_o_rhoxc, sqvel; rhoxc = *val_density * *val_soundspeed; c2 = *val_soundspeed * *val_soundspeed; @@ -1067,10 +1067,10 @@ void CNumerics::GetPMatrix_inv(double *val_density, double *val_velocity, } } -void CNumerics::GetPMatrix_inv(double **val_invp_tensor, double *val_density, double *val_velocity, - double *val_soundspeed, double *val_chi, double *val_kappa, double *val_normal) { +void CNumerics::GetPMatrix_inv(su2double **val_invp_tensor, su2double *val_density, su2double *val_velocity, + su2double *val_soundspeed, su2double *val_chi, su2double *val_kappa, su2double *val_normal) { - double rhoxc, c2, k0orho, k1orho, sqvel, k_o_c2, k_o_rhoxc, dp_drho; + su2double rhoxc, c2, k0orho, k1orho, sqvel, k_o_c2, k_o_rhoxc, dp_drho; rhoxc = *val_density * *val_soundspeed; c2 = *val_soundspeed * *val_soundspeed; @@ -1141,13 +1141,13 @@ void CNumerics::GetPMatrix_inv(double **val_invp_tensor, double *val_density, do } -void CNumerics::GetPMatrix_inv(double *U, double *V, double *val_dPdU, - double *val_normal, double *l, double *m, - double **val_invp_tensor) { +void CNumerics::GetPMatrix_inv(su2double *U, su2double *V, su2double *val_dPdU, + su2double *val_normal, su2double *l, su2double *m, + su2double **val_invp_tensor) { unsigned short iSpecies, jSpecies, iDim, iVar, jVar; - double rho, a, a2, eve; - double vU, vV, vW; + su2double rho, a, a2, eve; + su2double vU, vV, vW; for (iVar = 0; iVar < nVar; iVar++) for (jVar = 0; jVar < nVar; jVar++) @@ -1226,12 +1226,12 @@ void CNumerics::GetPMatrix_inv(double *U, double *V, double *val_dPdU, } } -void CNumerics::GetinvRinvPe(double Beta2, double val_enthalpy, - double val_soundspeed, double val_density, - double* val_velocity, double **invRinvPe) { +void CNumerics::GetinvRinvPe(su2double Beta2, su2double val_enthalpy, + su2double val_soundspeed, su2double val_density, + su2double* val_velocity, su2double **invRinvPe) { - double sqvel; - double factor = 1.0/(val_soundspeed*val_soundspeed*Beta2); + su2double sqvel; + su2double factor = 1.0/(val_soundspeed*val_soundspeed*Beta2); if (nDim == 2) { @@ -1296,11 +1296,11 @@ void CNumerics::GetinvRinvPe(double Beta2, double val_enthalpy, } -void CNumerics::GetRMatrix(double val_pressure, double val_soundspeed, double val_density, double* val_velocity, double **R_Matrix) { +void CNumerics::GetRMatrix(su2double val_pressure, su2double val_soundspeed, su2double val_density, su2double* val_velocity, su2double **R_Matrix) { - double sqvel; - //double factor = 1.0/(val_soundspeed*val_soundspeed*1); - double gm1 = Gamma - 1.0; + su2double sqvel; + //su2double factor = 1.0/(val_soundspeed*val_soundspeed*1); + su2double gm1 = Gamma - 1.0; if (nDim == 2) { @@ -1365,10 +1365,10 @@ void CNumerics::GetRMatrix(double val_pressure, double val_soundspeed, double va } -void CNumerics::GetPrecondJacobian(double Beta2, double r_hat, double s_hat, double t_hat, double rB2a2, double* Lambda, double *val_normal, - double **val_absPeJac) { +void CNumerics::GetPrecondJacobian(su2double Beta2, su2double r_hat, su2double s_hat, su2double t_hat, su2double rB2a2, su2double* Lambda, su2double *val_normal, + su2double **val_absPeJac) { - double lam1, lam2, lam3, lam4; + su2double lam1, lam2, lam3, lam4; lam1 = Lambda[0]; lam2 = Lambda[1]; lam3 = Lambda[2]; lam4 = Lambda[3]; if (nDim == 2) { @@ -1396,7 +1396,7 @@ void CNumerics::GetPrecondJacobian(double Beta2, double r_hat, double s_hat, dou } else { - double lam5 = Lambda[4]; + su2double lam5 = Lambda[4]; val_absPeJac[0][0] = lam4*s_hat/(2.0*t_hat) - lam5*r_hat/(2.0*t_hat); val_absPeJac[0][1] = -lam4*rB2a2*val_normal[0]/(2.0*t_hat) + lam5*rB2a2*val_normal[0]/(2.0*t_hat); @@ -1432,9 +1432,9 @@ void CNumerics::GetPrecondJacobian(double Beta2, double r_hat, double s_hat, dou } -void CNumerics::GetPArtCompMatrix(double *val_density, double *val_velocity, double *val_betainc2, - double *val_normal, double **val_p_tensor) { - double a, a2, Projvel, area2, sx, sy, sz = 0.0, u, v, w = 0.0, factor = 0.0; +void CNumerics::GetPArtCompMatrix(su2double *val_density, su2double *val_velocity, su2double *val_betainc2, + su2double *val_normal, su2double **val_p_tensor) { + su2double a, a2, Projvel, area2, sx, sy, sz = 0.0, u, v, w = 0.0, factor = 0.0; sx = val_normal[0]; sy = val_normal[1]; u = val_velocity[0]; v = val_velocity[1]; if (nDim == 3) { sz = val_normal[2]; w = val_velocity[2]; } @@ -1480,9 +1480,9 @@ void CNumerics::GetPArtCompMatrix(double *val_density, double *val_velocity, dou } -void CNumerics::GetPArtCompMatrix_inv(double *val_density, double *val_velocity, double *val_betainc2, - double *val_normal, double **val_invp_tensor) { - double a, a2, Projvel, area2, sx, sy, sz = 0.0, u, v, w = 0.0; +void CNumerics::GetPArtCompMatrix_inv(su2double *val_density, su2double *val_velocity, su2double *val_betainc2, + su2double *val_normal, su2double **val_invp_tensor) { + su2double a, a2, Projvel, area2, sx, sy, sz = 0.0, u, v, w = 0.0; sx = val_normal[0]; sy = val_normal[1]; u = val_velocity[0]; v = val_velocity[1]; if (nDim == 3) { sz = val_normal[2]; w = val_velocity[2];} @@ -1527,9 +1527,9 @@ void CNumerics::GetPArtCompMatrix_inv(double *val_density, double *val_velocity, } -void CNumerics::GetPArtComp_FreeSurf_Matrix(double *val_density, double *val_ddensity, double *val_velocity, double *val_betainc2, double *val_levelset, double *val_normal, double **val_p_tensor) { +void CNumerics::GetPArtComp_FreeSurf_Matrix(su2double *val_density, su2double *val_ddensity, su2double *val_velocity, su2double *val_betainc2, su2double *val_levelset, su2double *val_normal, su2double **val_p_tensor) { - double a = 0.0, b = 0.0, c = 0.0, d = 0.0, area2 = 0.0, e2 = 0.0, f = 0.0, nx = 0.0, ny = 0.0, nz = 0.0, u = 0.0, v = 0.0, w = 0.0; + su2double a = 0.0, b = 0.0, c = 0.0, d = 0.0, area2 = 0.0, e2 = 0.0, f = 0.0, nx = 0.0, ny = 0.0, nz = 0.0, u = 0.0, v = 0.0, w = 0.0; a = (*val_betainc2)/(*val_density); b = (*val_levelset)/(*val_density); @@ -1604,10 +1604,10 @@ void CNumerics::GetPArtComp_FreeSurf_Matrix(double *val_density, double *val_dde } -void CNumerics::GetPArtComp_FreeSurf_Matrix_inv(double *val_density, double *val_ddensity, double *val_velocity, double *val_betainc2, double *val_levelset, - double *val_normal, double **val_invp_tensor) { +void CNumerics::GetPArtComp_FreeSurf_Matrix_inv(su2double *val_density, su2double *val_ddensity, su2double *val_velocity, su2double *val_betainc2, su2double *val_levelset, + su2double *val_normal, su2double **val_invp_tensor) { - double a = 0.0, b = 0.0, c = 0.0, d = 0.0, area2 = 0.0, e2 = 0.0, f = 0.0, nx = 0.0, ny = 0.0, nz = 0.0, u = 0.0, v = 0.0, w = 0.0; + su2double a = 0.0, b = 0.0, c = 0.0, d = 0.0, area2 = 0.0, e2 = 0.0, f = 0.0, nx = 0.0, ny = 0.0, nz = 0.0, u = 0.0, v = 0.0, w = 0.0; a = (*val_betainc2)/(*val_density); b = (*val_levelset)/(*val_density); @@ -1682,9 +1682,9 @@ void CNumerics::GetPArtComp_FreeSurf_Matrix_inv(double *val_density, double *val } -void CNumerics::GetJacInviscidLambda_fabs(double *val_velocity, double val_soundspeed, - double *val_normal, double *val_Lambda_Vector) { - double ProjVelocity = 0; +void CNumerics::GetJacInviscidLambda_fabs(su2double *val_velocity, su2double val_soundspeed, + su2double *val_normal, su2double *val_Lambda_Vector) { + su2double ProjVelocity = 0; for (unsigned short iDim = 0; iDim < nDim; iDim++) ProjVelocity += val_velocity[iDim]*val_normal[iDim]; @@ -1705,21 +1705,21 @@ void CNumerics::GetJacInviscidLambda_fabs(double *val_velocity, double val_sound } } -void CNumerics::GetAdjViscousFlux_Jac(double Pressure_i, double Pressure_j, double Density_i, double Density_j, - double ViscDens_i, double ViscDens_j, double *Velocity_i, double *Velocity_j, - double sq_vel_i, double sq_vel_j, - double XiDens_i, double XiDens_j, double **Mean_GradPhi, double *Mean_GradPsiE, - double dPhiE_dn, double *Normal, double *Edge_Vector, double dist_ij_2, double *val_residual_i, double *val_residual_j, - double **val_Jacobian_ii, double **val_Jacobian_ij, double **val_Jacobian_ji, - double **val_Jacobian_jj, bool implicit) { +void CNumerics::GetAdjViscousFlux_Jac(su2double Pressure_i, su2double Pressure_j, su2double Density_i, su2double Density_j, + su2double ViscDens_i, su2double ViscDens_j, su2double *Velocity_i, su2double *Velocity_j, + su2double sq_vel_i, su2double sq_vel_j, + su2double XiDens_i, su2double XiDens_j, su2double **Mean_GradPhi, su2double *Mean_GradPsiE, + su2double dPhiE_dn, su2double *Normal, su2double *Edge_Vector, su2double dist_ij_2, su2double *val_residual_i, su2double *val_residual_j, + su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, bool implicit) { - double Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz, + su2double Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz, Sigma_xx5, Sigma_yy5, Sigma_zz5, Sigma_xy5, Sigma_xz5, Sigma_yz5, Sigma_5, eta_xx, eta_yy, eta_zz, eta_xy, eta_xz, eta_yz; - double dSigmaxx_phi1, dSigmayy_phi1, dSigmazz_phi1, dSigmaxy_phi1, dSigmaxz_phi1, dSigmayz_phi1; - double dSigmaxx_phi2, dSigmayy_phi2, dSigmazz_phi2, dSigmaxy_phi2, dSigmaxz_phi2, dSigmayz_phi2; - double dSigmaxx_phi3, dSigmayy_phi3, dSigmazz_phi3, dSigmaxy_phi3, dSigmaxz_phi3, dSigmayz_phi3; - double dSigma5_psi5; + su2double dSigmaxx_phi1, dSigmayy_phi1, dSigmazz_phi1, dSigmaxy_phi1, dSigmaxz_phi1, dSigmayz_phi1; + su2double dSigmaxx_phi2, dSigmayy_phi2, dSigmazz_phi2, dSigmaxy_phi2, dSigmaxz_phi2, dSigmayz_phi2; + su2double dSigmaxx_phi3, dSigmayy_phi3, dSigmazz_phi3, dSigmaxy_phi3, dSigmaxz_phi3, dSigmayz_phi3; + su2double dSigma5_psi5; unsigned short iVar, jVar; if (nDim == 3) { @@ -2057,14 +2057,14 @@ void CNumerics::GetAdjViscousFlux_Jac(double Pressure_i, double Pressure_j, doub } -void CNumerics::GetViscousFlux(double *val_primvar, double **val_gradprimvar, - double val_laminar_viscosity, double val_eddy_viscosity, double val_mach_inf) { +void CNumerics::GetViscousFlux(su2double *val_primvar, su2double **val_gradprimvar, + su2double val_laminar_viscosity, su2double val_eddy_viscosity, su2double val_mach_inf) { - double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; - double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; - double heat_flux_factor = Cp * (val_laminar_viscosity/Prandtl_Lam + val_eddy_viscosity/Prandtl_Turb); + su2double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; + su2double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; + su2double heat_flux_factor = Cp * (val_laminar_viscosity/Prandtl_Lam + val_eddy_viscosity/Prandtl_Turb); - double div_vel = 0.0; + su2double div_vel = 0.0; for (unsigned short iDim = 0 ; iDim < nDim; iDim++) div_vel += val_gradprimvar[iDim+1][iDim]; @@ -2116,15 +2116,15 @@ void CNumerics::GetViscousFlux(double *val_primvar, double **val_gradprimvar, -void CNumerics::GetViscousProjFlux(double *val_primvar, - double **val_gradprimvar, double val_turb_ke, - double *val_normal, - double val_laminar_viscosity, - double val_eddy_viscosity) { +void CNumerics::GetViscousProjFlux(su2double *val_primvar, + su2double **val_gradprimvar, su2double val_turb_ke, + su2double *val_normal, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity) { unsigned short iVar, iDim, jDim; - double total_viscosity, heat_flux_factor, div_vel, Cp, Density; + su2double total_viscosity, heat_flux_factor, div_vel, Cp, Density; Density = val_primvar[nDim+2]; total_viscosity = val_laminar_viscosity + val_eddy_viscosity; @@ -2178,16 +2178,16 @@ void CNumerics::GetViscousProjFlux(double *val_primvar, } } -void CNumerics::GetViscousProjFlux(double *val_primvar, - double **val_gradprimvar, double val_turb_ke, - double *val_normal, - double val_laminar_viscosity, - double val_eddy_viscosity, - double val_thermal_conductivity, - double val_heat_capacity_cp) { +void CNumerics::GetViscousProjFlux(su2double *val_primvar, + su2double **val_gradprimvar, su2double val_turb_ke, + su2double *val_normal, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity, + su2double val_thermal_conductivity, + su2double val_heat_capacity_cp) { unsigned short iVar, iDim, jDim; - double total_viscosity, heat_flux_factor, div_vel, Density; + su2double total_viscosity, heat_flux_factor, div_vel, Density; Density = val_primvar[nDim+2]; total_viscosity = val_laminar_viscosity + val_eddy_viscosity; @@ -2248,24 +2248,24 @@ void CNumerics::GetViscousProjFlux(double *val_primvar, } -void CNumerics::GetViscousProjFlux(double *val_primvar, - double **val_gradprimvar, - double *val_normal, - double *val_diffusioncoeff, - double val_viscosity, - double val_therm_conductivity, - double val_therm_conductivity_ve, +void CNumerics::GetViscousProjFlux(su2double *val_primvar, + su2double **val_gradprimvar, + su2double *val_normal, + su2double *val_diffusioncoeff, + su2double val_viscosity, + su2double val_therm_conductivity, + su2double val_therm_conductivity_ve, CConfig *config) { bool ionization; unsigned short iSpecies, iVar, iDim, jDim, nHeavy; - double *Ds, *V, **GY, **GV, mu, ktr, kve, div_vel; - double Ys, rho, eve, hs; + su2double *Ds, *V, **GY, **GV, mu, ktr, kve, div_vel; + su2double Ys, rho, eve, hs; /*--- Allocate ---*/ - GY = new double*[nSpecies]; + GY = new su2double*[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - GY[iSpecies] = new double[nDim]; + GY[iSpecies] = new su2double[nDim]; } /*--- Initialize ---*/ @@ -2364,10 +2364,10 @@ void CNumerics::GetViscousProjFlux(double *val_primvar, } -void CNumerics::GetViscousArtCompProjFlux(double **val_gradprimvar, double *val_normal, double val_laminar_viscosity, - double val_eddy_viscosity) { +void CNumerics::GetViscousArtCompProjFlux(su2double **val_gradprimvar, su2double *val_normal, su2double val_laminar_viscosity, + su2double val_eddy_viscosity) { unsigned short iVar, iDim; - double total_viscosity; + su2double total_viscosity; total_viscosity = (val_laminar_viscosity + val_eddy_viscosity); @@ -2405,12 +2405,12 @@ void CNumerics::GetViscousArtCompProjFlux(double **val_gradprimvar, double *val_ } } -void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, double val_laminar_viscosity, - double val_eddy_viscosity, double val_dist_ij, double *val_normal, double val_dS, - double *val_Proj_Visc_Flux, double **val_Proj_Jac_Tensor_i, double **val_Proj_Jac_Tensor_j) { +void CNumerics::GetViscousProjJacs(su2double *val_Mean_PrimVar, su2double val_laminar_viscosity, + su2double val_eddy_viscosity, su2double val_dist_ij, su2double *val_normal, su2double val_dS, + su2double *val_Proj_Visc_Flux, su2double **val_Proj_Jac_Tensor_i, su2double **val_Proj_Jac_Tensor_j) { unsigned short iDim, iVar, jVar; - double theta = 0.0, sqvel = 0.0, proj_viscousflux_vel = 0.0; + su2double theta = 0.0, sqvel = 0.0, proj_viscousflux_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { theta += val_normal[iDim]*val_normal[iDim]; @@ -2418,16 +2418,16 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, double val_laminar_ proj_viscousflux_vel += val_Proj_Visc_Flux[iDim+1]*val_Mean_PrimVar[iDim+1]; } - double phi = 0.5*(Gamma-1.0)*sqvel; - double Density = val_Mean_PrimVar[nDim+2]; - double Pressure = val_Mean_PrimVar[nDim+1]; - double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; - double heat_flux_factor = val_laminar_viscosity/Prandtl_Lam + val_eddy_viscosity/Prandtl_Turb; - double cpoR = Gamma/(Gamma-1.0); // cp over R - double factor = total_viscosity*val_dS/(Density*val_dist_ij); - double phi_rho = -cpoR*heat_flux_factor*Pressure/(Density*Density); - double phi_p = cpoR*heat_flux_factor/(Density); - double rhoovisc = Density/(total_viscosity); // rho over viscosity + su2double phi = 0.5*(Gamma-1.0)*sqvel; + su2double Density = val_Mean_PrimVar[nDim+2]; + su2double Pressure = val_Mean_PrimVar[nDim+1]; + su2double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; + su2double heat_flux_factor = val_laminar_viscosity/Prandtl_Lam + val_eddy_viscosity/Prandtl_Turb; + su2double cpoR = Gamma/(Gamma-1.0); // cp over R + su2double factor = total_viscosity*val_dS/(Density*val_dist_ij); + su2double phi_rho = -cpoR*heat_flux_factor*Pressure/(Density*Density); + su2double phi_p = cpoR*heat_flux_factor/(Density); + su2double rhoovisc = Density/(total_viscosity); // rho over viscosity for (unsigned short iVar = 0; iVar < nVar; iVar++) { for (unsigned short jVar = 0; jVar < nVar; jVar++) { @@ -2438,13 +2438,13 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, double val_laminar_ if (nDim == 2) { - double thetax = theta + val_normal[0]*val_normal[0]/3.0; - double thetay = theta + val_normal[1]*val_normal[1]/3.0; + su2double thetax = theta + val_normal[0]*val_normal[0]/3.0; + su2double thetay = theta + val_normal[1]*val_normal[1]/3.0; - double etaz = val_normal[0]*val_normal[1]/3.0; + su2double etaz = val_normal[0]*val_normal[1]/3.0; - double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz; - double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay; + su2double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz; + su2double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay; val_Proj_Jac_Tensor_i[0][0] = 0.0; val_Proj_Jac_Tensor_i[0][1] = 0.0; @@ -2480,17 +2480,17 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, double val_laminar_ } else { - double thetax = theta + val_normal[0]*val_normal[0]/3.0; - double thetay = theta + val_normal[1]*val_normal[1]/3.0; - double thetaz = theta + val_normal[2]*val_normal[2]/3.0; + su2double thetax = theta + val_normal[0]*val_normal[0]/3.0; + su2double thetay = theta + val_normal[1]*val_normal[1]/3.0; + su2double thetaz = theta + val_normal[2]*val_normal[2]/3.0; - double etax = val_normal[1]*val_normal[2]/3.0; - double etay = val_normal[0]*val_normal[2]/3.0; - double etaz = val_normal[0]*val_normal[1]/3.0; + su2double etax = val_normal[1]*val_normal[2]/3.0; + su2double etay = val_normal[0]*val_normal[2]/3.0; + su2double etaz = val_normal[0]*val_normal[1]/3.0; - double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz + val_Mean_PrimVar[3]*etay; - double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay + val_Mean_PrimVar[3]*etax; - double piz = val_Mean_PrimVar[1]*etay + val_Mean_PrimVar[2]*etax + val_Mean_PrimVar[3]*thetaz; + su2double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz + val_Mean_PrimVar[3]*etay; + su2double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay + val_Mean_PrimVar[3]*etax; + su2double piz = val_Mean_PrimVar[1]*etay + val_Mean_PrimVar[2]*etax + val_Mean_PrimVar[3]*thetaz; val_Proj_Jac_Tensor_i[0][0] = 0.0; val_Proj_Jac_Tensor_i[0][1] = 0.0; @@ -2545,18 +2545,18 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, double val_laminar_ } -void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, - double **val_gradprimvar, - double *val_Mean_SecVar, - double val_laminar_viscosity, - double val_eddy_viscosity, - double val_thermal_conductivity, - double val_heat_capacity_cp, - double val_dist_ij, - double *val_normal, double val_dS, - double *val_Proj_Visc_Flux, - double **val_Proj_Jac_Tensor_i, - double **val_Proj_Jac_Tensor_j) { +void CNumerics::GetViscousProjJacs(su2double *val_Mean_PrimVar, + su2double **val_gradprimvar, + su2double *val_Mean_SecVar, + su2double val_laminar_viscosity, + su2double val_eddy_viscosity, + su2double val_thermal_conductivity, + su2double val_heat_capacity_cp, + su2double val_dist_ij, + su2double *val_normal, su2double val_dS, + su2double *val_Proj_Visc_Flux, + su2double **val_Proj_Jac_Tensor_i, + su2double **val_Proj_Jac_Tensor_j) { /* Viscous flux Jacobians for arbitrary equations of state */ @@ -2564,29 +2564,29 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, //order of secondary:dTdrho_e, dTde_rho unsigned short iDim, iVar, jVar; - double sqvel = 0.0, theta= 0.0, proj_viscousflux_vel= 0.0; + su2double sqvel = 0.0, theta= 0.0, proj_viscousflux_vel= 0.0; for (iDim = 0; iDim < nDim; iDim++) { theta += val_normal[iDim]*val_normal[iDim]; sqvel += val_Mean_PrimVar[iDim+1]*val_Mean_PrimVar[iDim+1]; proj_viscousflux_vel += val_Proj_Visc_Flux[iDim+1]*val_Mean_PrimVar[iDim+1]; } - double rho = val_Mean_PrimVar[nDim+2]; - double P= val_Mean_PrimVar[nDim+1]; - double h= val_Mean_PrimVar[nDim+3]; - double dTdrho_e= val_Mean_SecVar[0]; - double dTde_rho= val_Mean_SecVar[1]; + su2double rho = val_Mean_PrimVar[nDim+2]; + su2double P= val_Mean_PrimVar[nDim+1]; + su2double h= val_Mean_PrimVar[nDim+3]; + su2double dTdrho_e= val_Mean_SecVar[0]; + su2double dTde_rho= val_Mean_SecVar[1]; - double dTdu0= dTdrho_e + dTde_rho*(-(h-P/rho) + sqvel)*(1/rho); - double dTdu1= dTde_rho*(-val_Mean_PrimVar[1])*(1/rho); - double dTdu2= dTde_rho*(-val_Mean_PrimVar[2])*(1/rho); - double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; - double total_conductivity = val_thermal_conductivity + val_heat_capacity_cp*val_eddy_viscosity/Prandtl_Turb; + su2double dTdu0= dTdrho_e + dTde_rho*(-(h-P/rho) + sqvel)*(1/rho); + su2double dTdu1= dTde_rho*(-val_Mean_PrimVar[1])*(1/rho); + su2double dTdu2= dTde_rho*(-val_Mean_PrimVar[2])*(1/rho); + su2double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; + su2double total_conductivity = val_thermal_conductivity + val_heat_capacity_cp*val_eddy_viscosity/Prandtl_Turb; - double factor1 = total_viscosity*val_dS/(rho*val_dist_ij); - double factor2 = total_conductivity*val_dS/val_dist_ij; + su2double factor1 = total_viscosity*val_dS/(rho*val_dist_ij); + su2double factor2 = total_conductivity*val_dS/val_dist_ij; for (unsigned short iVar = 0; iVar < nVar; iVar++) { @@ -2600,15 +2600,15 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, /* 2D Jacobian: (Fv1, Fv2, Fv3, Fv4) --> (T, vx, vy, rho) */ - double dTdu3= dTde_rho*(1/rho); + su2double dTdu3= dTde_rho*(1/rho); - double thetax = theta + val_normal[0]*val_normal[0]/3.0; - double thetay = theta + val_normal[1]*val_normal[1]/3.0; + su2double thetax = theta + val_normal[0]*val_normal[0]/3.0; + su2double thetay = theta + val_normal[1]*val_normal[1]/3.0; - double etaz = val_normal[0]*val_normal[1]/3.0; + su2double etaz = val_normal[0]*val_normal[1]/3.0; - double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz; - double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay; + su2double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz; + su2double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay; val_Proj_Jac_Tensor_i[0][0] = 0.0; val_Proj_Jac_Tensor_i[0][1] = 0.0; @@ -2635,7 +2635,7 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, for (jVar = 0; jVar < nVar; jVar++) val_Proj_Jac_Tensor_j[iVar][jVar] = -val_Proj_Jac_Tensor_i[iVar][jVar]; - double factor = 0.5/rho; + su2double factor = 0.5/rho; val_Proj_Jac_Tensor_i[3][0] -= factor*proj_viscousflux_vel; val_Proj_Jac_Tensor_j[3][0] -= factor*proj_viscousflux_vel; val_Proj_Jac_Tensor_i[3][1] += factor*val_Proj_Visc_Flux[1]; @@ -2649,20 +2649,20 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, } else { - double dTdu3= dTde_rho*(-val_Mean_PrimVar[3])*(1/rho); - double dTdu4= dTde_rho*(1/rho); + su2double dTdu3= dTde_rho*(-val_Mean_PrimVar[3])*(1/rho); + su2double dTdu4= dTde_rho*(1/rho); - double thetax = theta + val_normal[0]*val_normal[0]/3.0; - double thetay = theta + val_normal[1]*val_normal[1]/3.0; - double thetaz = theta + val_normal[2]*val_normal[2]/3.0; + su2double thetax = theta + val_normal[0]*val_normal[0]/3.0; + su2double thetay = theta + val_normal[1]*val_normal[1]/3.0; + su2double thetaz = theta + val_normal[2]*val_normal[2]/3.0; - double etax = val_normal[1]*val_normal[2]/3.0; - double etay = val_normal[0]*val_normal[2]/3.0; - double etaz = val_normal[0]*val_normal[1]/3.0; + su2double etax = val_normal[1]*val_normal[2]/3.0; + su2double etay = val_normal[0]*val_normal[2]/3.0; + su2double etaz = val_normal[0]*val_normal[1]/3.0; - double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz + val_Mean_PrimVar[3]*etay; - double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay + val_Mean_PrimVar[3]*etax; - double piz = val_Mean_PrimVar[1]*etay + val_Mean_PrimVar[2]*etax + val_Mean_PrimVar[3]*thetaz; + su2double pix = val_Mean_PrimVar[1]*thetax + val_Mean_PrimVar[2]*etaz + val_Mean_PrimVar[3]*etay; + su2double piy = val_Mean_PrimVar[1]*etaz + val_Mean_PrimVar[2]*thetay + val_Mean_PrimVar[3]*etax; + su2double piz = val_Mean_PrimVar[1]*etay + val_Mean_PrimVar[2]*etax + val_Mean_PrimVar[3]*thetaz; val_Proj_Jac_Tensor_i[0][0] = 0.0; val_Proj_Jac_Tensor_i[0][1] = 0.0; @@ -2698,7 +2698,7 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, for (jVar = 0; jVar < nVar; jVar++) val_Proj_Jac_Tensor_j[iVar][jVar] = -val_Proj_Jac_Tensor_i[iVar][jVar]; - double factor = 0.5/rho; + su2double factor = 0.5/rho; val_Proj_Jac_Tensor_i[4][0] -= factor*proj_viscousflux_vel; val_Proj_Jac_Tensor_j[4][0] -= factor*proj_viscousflux_vel; val_Proj_Jac_Tensor_i[4][1] += factor*val_Proj_Visc_Flux[1]; @@ -2721,18 +2721,18 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, -//void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, -// double **val_gradprimvar, -// double *val_Mean_SecVar, -// double val_laminar_viscosity, -// double val_eddy_viscosity, -// double val_thermal_conductivity, -// double val_heat_capacity_cp, -// double val_dist_ij, -// double *val_normal, double val_dS, -// double *val_Proj_Visc_Flux, -// double **val_Proj_Jac_Tensor_i, -// double **val_Proj_Jac_Tensor_j) { +//void CNumerics::GetViscousProjJacs(su2double *val_Mean_PrimVar, +// su2double **val_gradprimvar, +// su2double *val_Mean_SecVar, +// su2double val_laminar_viscosity, +// su2double val_eddy_viscosity, +// su2double val_thermal_conductivity, +// su2double val_heat_capacity_cp, +// su2double val_dist_ij, +// su2double *val_normal, su2double val_dS, +// su2double *val_Proj_Visc_Flux, +// su2double **val_Proj_Jac_Tensor_i, +// su2double **val_Proj_Jac_Tensor_j) { // // /* Viscous flux Jacobians for arbitrary equations of state */ // @@ -2740,35 +2740,35 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, // // order of secondary: dPdrho_e, dPde_rho, dTdrho_e, dTde_rho, dmudrho_T, dmudT_rho, dktdrho_T, dktdT_rho // // unsigned short iDim, iVar, jVar; -// double **val_Proj_Jac_Tensor_i_P, **val_Proj_Jac_Tensor_j_P; -// double **val_Jac_PC; +// su2double **val_Proj_Jac_Tensor_i_P, **val_Proj_Jac_Tensor_j_P; +// su2double **val_Jac_PC; // -// double sqvel = 0.0; +// su2double sqvel = 0.0; // for (iDim = 0; iDim < nDim; iDim++) { // sqvel += val_Mean_PrimVar[iDim+1]*val_Mean_PrimVar[iDim+1]; // } // -// double vx = val_Mean_PrimVar[1]; -// double vy = val_Mean_PrimVar[2]; -// double vz = val_Mean_PrimVar[3]; -// double rho = val_Mean_PrimVar[nDim+2]; -// double P = val_Mean_PrimVar[nDim+1]; -// double dmudrho_T = val_Mean_SecVar[4]; -// double dmudT_rho = val_Mean_SecVar[5]; -// double dktdrho_T = val_Mean_SecVar[6]; -// double dktdT_rho = val_Mean_SecVar[7]; +// su2double vx = val_Mean_PrimVar[1]; +// su2double vy = val_Mean_PrimVar[2]; +// su2double vz = val_Mean_PrimVar[3]; +// su2double rho = val_Mean_PrimVar[nDim+2]; +// su2double P = val_Mean_PrimVar[nDim+1]; +// su2double dmudrho_T = val_Mean_SecVar[4]; +// su2double dmudT_rho = val_Mean_SecVar[5]; +// su2double dktdrho_T = val_Mean_SecVar[6]; +// su2double dktdT_rho = val_Mean_SecVar[7]; // -// double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; -// double total_conductivity = val_thermal_conductivity + val_heat_capacity_cp*val_eddy_viscosity/Prandtl_Turb; +// su2double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; +// su2double total_conductivity = val_thermal_conductivity + val_heat_capacity_cp*val_eddy_viscosity/Prandtl_Turb; // -// val_Proj_Jac_Tensor_i_P = new double* [nVar]; -// val_Proj_Jac_Tensor_j_P = new double* [nVar]; -// val_Jac_PC = new double* [nVar]; +// val_Proj_Jac_Tensor_i_P = new su2double* [nVar]; +// val_Proj_Jac_Tensor_j_P = new su2double* [nVar]; +// val_Jac_PC = new su2double* [nVar]; // // for (unsigned short iVar = 0; iVar < nVar; iVar++) { -// val_Proj_Jac_Tensor_i_P[iVar] = new double [nVar]; -// val_Proj_Jac_Tensor_j_P[iVar] = new double [nVar]; -// val_Jac_PC[iVar] = new double [nVar]; +// val_Proj_Jac_Tensor_i_P[iVar] = new su2double [nVar]; +// val_Proj_Jac_Tensor_j_P[iVar] = new su2double [nVar]; +// val_Jac_PC[iVar] = new su2double [nVar]; // } // // for (unsigned short iVar = 0; iVar < nVar; iVar++) { @@ -2785,9 +2785,9 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, // // /* 2D Jacobian: (Fv1, Fv2, Fv3, Fv4) --> (T, vx, vy, rho) */ // -// double factor1 = 4.0/3.0*pow(val_normal[0],2) + pow(val_normal[1],2); -// double factor2 = 1.0/3.0*val_normal[0]*val_normal[1]; -// double factor3 = 4.0/3.0*pow(val_normal[1],2) + pow(val_normal[0],2); +// su2double factor1 = 4.0/3.0*pow(val_normal[0],2) + pow(val_normal[1],2); +// su2double factor2 = 1.0/3.0*val_normal[0]*val_normal[1]; +// su2double factor3 = 4.0/3.0*pow(val_normal[1],2) + pow(val_normal[0],2); // // val_Proj_Jac_Tensor_i_P[0][0] = 0.0; // val_Proj_Jac_Tensor_i_P[0][1] = 0.0; @@ -2809,8 +2809,8 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, // val_Proj_Jac_Tensor_i_P[3][2] = vx*val_Proj_Jac_Tensor_i_P[1][2] + vy*val_Proj_Jac_Tensor_i_P[2][2]; // val_Proj_Jac_Tensor_i_P[3][3] = vx*val_Proj_Jac_Tensor_i_P[1][3] + vy*val_Proj_Jac_Tensor_i_P[2][3]; // -// double etax = pow(val_normal[0],2)/val_dist_ij; -// double etay = pow(val_normal[1],2)/val_dist_ij; +// su2double etax = pow(val_normal[0],2)/val_dist_ij; +// su2double etay = pow(val_normal[1],2)/val_dist_ij; // val_Proj_Jac_Tensor_i_P[3][0] += -total_conductivity*etax + 0.5*val_normal[0]*dktdT_rho*val_gradprimvar[0][0] - total_conductivity*etay + 0.5*val_normal[1]*dktdT_rho*val_gradprimvar[0][1]; // val_Proj_Jac_Tensor_i_P[3][1] += 1.0/2.0*val_Proj_Visc_Flux[1]; // val_Proj_Jac_Tensor_i_P[3][2] += 1.0/2.0*val_Proj_Visc_Flux[2]; @@ -2848,19 +2848,19 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, // // /* 3D Jacobian: (Fv1, Fv2, Fv3, Fv4, Fv5) --> (T, vx, vy, vz, rho) */ // -//// double factor1 = 4.0/3.0*pow(val_normal[0],2) + pow(val_normal[1],2) + pow(val_normal[2],2); -//// double factor2 = 1.0/3.0*val_normal[0]*val_normal[1]; -//// double factor3 = 1.0/3.0*val_normal[0]*val_normal[2]; -//// double factor4 = pow(val_normal[0],2) + 4.0/3.0*pow(val_normal[1],2) + pow(val_normal[2],2); -//// double factor5 = 1.0/3.0*val_normal[1]*val_normal[2]; -//// double factor6 = pow(val_normal[0],2) + pow(val_normal[1],2) + 4.0/3.0*pow(val_normal[2],2); +//// su2double factor1 = 4.0/3.0*pow(val_normal[0],2) + pow(val_normal[1],2) + pow(val_normal[2],2); +//// su2double factor2 = 1.0/3.0*val_normal[0]*val_normal[1]; +//// su2double factor3 = 1.0/3.0*val_normal[0]*val_normal[2]; +//// su2double factor4 = pow(val_normal[0],2) + 4.0/3.0*pow(val_normal[1],2) + pow(val_normal[2],2); +//// su2double factor5 = 1.0/3.0*val_normal[1]*val_normal[2]; +//// su2double factor6 = pow(val_normal[0],2) + pow(val_normal[1],2) + 4.0/3.0*pow(val_normal[2],2); // -// double thetax = 4.0/3.0*pow(val_normal[0],2) + pow(val_normal[1],2) + pow(val_normal[2],2); -// double thetay = pow(val_normal[0],2) + 4.0/3.0*pow(val_normal[1],2) + pow(val_normal[2],2); -// double thetaz = pow(val_normal[0],2) + pow(val_normal[1],2) + 4.0/3.0*pow(val_normal[2],2); -// double pix = 1.0/3.0*val_normal[0]*val_normal[1]; -// double piy = 1.0/3.0*val_normal[0]*val_normal[2]; -// double piz = 1.0/3.0*val_normal[1]*val_normal[2]; +// su2double thetax = 4.0/3.0*pow(val_normal[0],2) + pow(val_normal[1],2) + pow(val_normal[2],2); +// su2double thetay = pow(val_normal[0],2) + 4.0/3.0*pow(val_normal[1],2) + pow(val_normal[2],2); +// su2double thetaz = pow(val_normal[0],2) + pow(val_normal[1],2) + 4.0/3.0*pow(val_normal[2],2); +// su2double pix = 1.0/3.0*val_normal[0]*val_normal[1]; +// su2double piy = 1.0/3.0*val_normal[0]*val_normal[2]; +// su2double piz = 1.0/3.0*val_normal[1]*val_normal[2]; // // val_Proj_Jac_Tensor_i_P[0][0] = 0.0; // val_Proj_Jac_Tensor_i_P[0][1] = 0.0; @@ -2892,9 +2892,9 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, // val_Proj_Jac_Tensor_i_P[4][3] = vx*val_Proj_Jac_Tensor_i_P[1][3] + vy*val_Proj_Jac_Tensor_i_P[2][3] + vz*val_Proj_Jac_Tensor_i_P[3][3]; // val_Proj_Jac_Tensor_i_P[4][4] = vx*val_Proj_Jac_Tensor_i_P[1][4] + vy*val_Proj_Jac_Tensor_i_P[2][4] + vz*val_Proj_Jac_Tensor_i_P[3][4]; // -// double etax = pow(val_normal[0],2)/val_dist_ij; -// double etay = pow(val_normal[1],2)/val_dist_ij; -// double etaz = pow(val_normal[2],2)/val_dist_ij; +// su2double etax = pow(val_normal[0],2)/val_dist_ij; +// su2double etay = pow(val_normal[1],2)/val_dist_ij; +// su2double etaz = pow(val_normal[2],2)/val_dist_ij; // val_Proj_Jac_Tensor_i_P[4][0] += -total_conductivity*etax - total_conductivity*etay - total_conductivity*etaz; // val_Proj_Jac_Tensor_i_P[4][1] += 1.0/2.0*val_Proj_Visc_Flux[1]; // val_Proj_Jac_Tensor_i_P[4][2] += 1.0/2.0*val_Proj_Visc_Flux[2]; @@ -2944,23 +2944,23 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, // //} -void CNumerics::GetPrimitive2Conservative (double *val_Mean_PrimVar, double *val_Mean_SecVar, double **val_Jac_PC) { +void CNumerics::GetPrimitive2Conservative (su2double *val_Mean_PrimVar, su2double *val_Mean_SecVar, su2double **val_Jac_PC) { unsigned short iVar, jVar, iDim; // order of primitives: T, vx, vy, vz, P, rho, h, c, MuLam, MuEddy, kt, Cp // order of secondary: dPdrho_e, dPde_rho, dTdrho_e, dTde_rho, dmudrho_T, dmudT_rho, dktdrho_T, dktdT_rho - double vx = val_Mean_PrimVar[1]; - double vy = val_Mean_PrimVar[2]; - double vz = val_Mean_PrimVar[3]; - double rho = val_Mean_PrimVar[nDim+2]; - double P = val_Mean_PrimVar[nDim+1]; - double e = val_Mean_PrimVar[nDim+3] - P/rho; - double dTdrho_e = val_Mean_SecVar[2]; - double dTde_rho = val_Mean_SecVar[3]; + su2double vx = val_Mean_PrimVar[1]; + su2double vy = val_Mean_PrimVar[2]; + su2double vz = val_Mean_PrimVar[3]; + su2double rho = val_Mean_PrimVar[nDim+2]; + su2double P = val_Mean_PrimVar[nDim+1]; + su2double e = val_Mean_PrimVar[nDim+3] - P/rho; + su2double dTdrho_e = val_Mean_SecVar[2]; + su2double dTde_rho = val_Mean_SecVar[3]; - double sqvel = 0.0; + su2double sqvel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { sqvel += val_Mean_PrimVar[iDim+1]*val_Mean_PrimVar[iDim+1]; @@ -3032,27 +3032,27 @@ void CNumerics::GetPrimitive2Conservative (double *val_Mean_PrimVar, double *val } } -void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, - double *val_diffusion_coeff, - double val_laminar_viscosity, - double val_thermal_conductivity, - double val_thermal_conductivity_ve, - double val_dist_ij, - double *val_normal, double val_dS, - double *val_Fv, - double **val_Jac_i, - double **val_Jac_j, CConfig *config) { +void CNumerics::GetViscousProjJacs(su2double *val_Mean_PrimVar, + su2double *val_diffusion_coeff, + su2double val_laminar_viscosity, + su2double val_thermal_conductivity, + su2double val_thermal_conductivity_ve, + su2double val_dist_ij, + su2double *val_normal, su2double val_dS, + su2double *val_Fv, + su2double **val_Jac_i, + su2double **val_Jac_j, CConfig *config) { bool ionization; unsigned short iDim, iSpecies, jSpecies, iVar, jVar, kVar, nHeavy; - double rho, u, v, w, Tve, *xi, *Ms; - double rho_i, rho_j, u_i, u_j, v_i, v_j, w_i, w_j; - double mu, ktr, kve, *Ds, dij, Ru, eve, hs; - double theta, thetax, thetay, thetaz; - double etax, etay, etaz; - double pix, piy, piz; - double pix_i, piy_i, piz_i, pix_j, piy_j, piz_j; - double sumY, sumFvCtri, sumFvCtrj, sumFvCvei, sumFvCvej; + su2double rho, u, v, w, Tve, *xi, *Ms; + su2double rho_i, rho_j, u_i, u_j, v_i, v_j, w_i, w_j; + su2double mu, ktr, kve, *Ds, dij, Ru, eve, hs; + su2double theta, thetax, thetay, thetaz; + su2double etax, etay, etaz; + su2double pix, piy, piz; + su2double pix_i, piy_i, piz_i, pix_j, piy_j, piz_j; + su2double sumY, sumFvCtri, sumFvCtrj, sumFvCvei, sumFvCvej; if (nDim == 2) { cout << "Viscous Proj Jacobian not available in 2D!!!" << endl; @@ -3344,26 +3344,26 @@ void CNumerics::GetViscousProjJacs(double *val_Mean_PrimVar, + sumFvCvei*dTvedU_i[nSpecies+4]/2; } -void CNumerics::GetViscousArtCompProjJacs(double val_laminar_viscosity, - double val_eddy_viscosity, double val_dist_ij, double *val_normal, double val_dS, - double **val_Proj_Jac_Tensor_i, double **val_Proj_Jac_Tensor_j) { +void CNumerics::GetViscousArtCompProjJacs(su2double val_laminar_viscosity, + su2double val_eddy_viscosity, su2double val_dist_ij, su2double *val_normal, su2double val_dS, + su2double **val_Proj_Jac_Tensor_i, su2double **val_Proj_Jac_Tensor_j) { unsigned short iDim, iVar, jVar; - double theta = 0.0; + su2double theta = 0.0; for (iDim = 0; iDim < nDim; iDim++) theta += val_normal[iDim]*val_normal[iDim]; - double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; - double factor = total_viscosity/(val_dist_ij)*val_dS; + su2double total_viscosity = val_laminar_viscosity + val_eddy_viscosity; + su2double factor = total_viscosity/(val_dist_ij)*val_dS; if (nDim == 3) { - double thetax = theta + val_normal[0]*val_normal[0]/3.0; - double thetay = theta + val_normal[1]*val_normal[1]/3.0; - double thetaz = theta + val_normal[2]*val_normal[2]/3.0; + su2double thetax = theta + val_normal[0]*val_normal[0]/3.0; + su2double thetay = theta + val_normal[1]*val_normal[1]/3.0; + su2double thetaz = theta + val_normal[2]*val_normal[2]/3.0; - double etax = val_normal[1]*val_normal[2]/3.0; - double etay = val_normal[0]*val_normal[2]/3.0; - double etaz = val_normal[0]*val_normal[1]/3.0; + su2double etax = val_normal[1]*val_normal[2]/3.0; + su2double etay = val_normal[0]*val_normal[2]/3.0; + su2double etaz = val_normal[0]*val_normal[1]/3.0; val_Proj_Jac_Tensor_i[0][0] = 0.0; val_Proj_Jac_Tensor_i[0][1] = 0.0; @@ -3389,9 +3389,9 @@ void CNumerics::GetViscousArtCompProjJacs(double val_laminar_viscosity, } if (nDim == 2) { - double thetax = theta + val_normal[0]*val_normal[0]/3.0; - double thetay = theta + val_normal[1]*val_normal[1]/3.0; - double etaz = val_normal[0]*val_normal[1]/3.0; + su2double thetax = theta + val_normal[0]*val_normal[0]/3.0; + su2double thetay = theta + val_normal[1]*val_normal[1]/3.0; + su2double etaz = val_normal[0]*val_normal[1]/3.0; val_Proj_Jac_Tensor_i[0][0] = 0.0; val_Proj_Jac_Tensor_i[0][1] = 0.0; @@ -3410,9 +3410,9 @@ void CNumerics::GetViscousArtCompProjJacs(double val_laminar_viscosity, } -void CNumerics::CreateBasis(double *val_Normal) { +void CNumerics::CreateBasis(su2double *val_Normal) { unsigned short iDim; - double modm, modl; + su2double modm, modl; /*--- Define l as a vector in the plane normal to the supplied vector ---*/ l[0] = 0.0; diff --git a/SU2_CFD/src/numerics_template.cpp b/SU2_CFD/src/numerics_template.cpp index 9e612a240a5..b70ebb9451e 100644 --- a/SU2_CFD/src/numerics_template.cpp +++ b/SU2_CFD/src/numerics_template.cpp @@ -38,21 +38,21 @@ CConvective_Template::CConvective_Template(unsigned short val_nDim, unsigned sho Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - Diff_U = new double [nVar]; - Velocity_i = new double [nDim]; - Velocity_j = new double [nDim]; - RoeVelocity = new double [nDim]; - delta_vel = new double [nDim]; - delta_wave = new double [nVar]; - ProjFlux_i = new double [nVar]; - ProjFlux_j = new double [nVar]; - Lambda = new double [nVar]; - Epsilon = new double [nVar]; - P_Tensor = new double* [nVar]; - invP_Tensor = new double* [nVar]; + Diff_U = new su2double [nVar]; + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + delta_vel = new su2double [nDim]; + delta_wave = new su2double [nVar]; + ProjFlux_i = new su2double [nVar]; + ProjFlux_j = new su2double [nVar]; + Lambda = new su2double [nVar]; + Epsilon = new su2double [nVar]; + P_Tensor = new su2double* [nVar]; + invP_Tensor = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double [nVar]; - invP_Tensor[iVar] = new double [nVar]; + P_Tensor[iVar] = new su2double [nVar]; + invP_Tensor[iVar] = new su2double [nVar]; } } @@ -77,7 +77,7 @@ CConvective_Template::~CConvective_Template(void) { delete [] invP_Tensor; } -void CConvective_Template::ComputeResidual(double *val_residual, double **val_Jacobian_i, double **val_Jacobian_j, CConfig *config) { +void CConvective_Template::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { Area = 0; for (iDim = 0; iDim < nDim; iDim++) @@ -225,10 +225,10 @@ CSource_Template::~CSource_Template(void) { } -void CSource_Template::ComputeResidual(double *val_residual, double **val_Jacobian_i, CConfig *config) {} +void CSource_Template::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config) {} CViscous_Template::CViscous_Template(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { } CViscous_Template::~CViscous_Template(void) { } -void CViscous_Template::ComputeResidual(double *val_residual, double **Jacobian_i, double **Jacobian_j, CConfig *config) { } +void CViscous_Template::ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) { } diff --git a/SU2_CFD/src/output_fieldview.cpp b/SU2_CFD/src/output_fieldview.cpp index c09ce8fbb2a..39f7dc2eceb 100644 --- a/SU2_CFD/src/output_fieldview.cpp +++ b/SU2_CFD/src/output_fieldview.cpp @@ -69,7 +69,7 @@ void COutput::SetFieldViewASCII(CConfig *config, CGeometry *geometry, unsigned s if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS || Kind_Solver == ADJ_EULER || Kind_Solver == ADJ_NAVIER_STOKES || Kind_Solver == ADJ_RANS) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } @@ -77,21 +77,21 @@ void COutput::SetFieldViewASCII(CConfig *config, CGeometry *geometry, unsigned s if (config->GetKind_SU2() == SU2_SOL) { val_iZone = iExtIter; } - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.uns", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.uns", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.uns", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.uns", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.uns", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.uns", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.uns", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.uns", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.uns", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.uns", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if (int(iExtIter) < 10) sprintf (buffer, "_0000%d.uns", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.uns", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.uns", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.uns", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.uns", int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) < 10) SPRINTF (buffer, "_0000%d.uns", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.uns", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.uns", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.uns", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.uns", SU2_TYPE::Int(iExtIter)); } - else { sprintf (buffer, ".uns"); } + else { SPRINTF (buffer, ".uns"); } strcat(cstr, buffer); @@ -160,7 +160,7 @@ void COutput::SetFieldViewASCII(CConfig *config, CGeometry *geometry, unsigned s for (unsigned short iField = 1+nDim; iField < config->fields.size(); iField++) { - /*--- Remove all double-quote characters ---*/ + /*--- Remove all su2double-quote characters ---*/ FieldName = config->fields[iField]; @@ -504,7 +504,7 @@ void COutput::SetFieldViewBinary(CConfig *config, CGeometry *geometry, unsigned if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS || Kind_Solver == ADJ_EULER || Kind_Solver == ADJ_NAVIER_STOKES || Kind_Solver == ADJ_RANS) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } @@ -512,21 +512,21 @@ void COutput::SetFieldViewBinary(CConfig *config, CGeometry *geometry, unsigned if (config->GetKind_SU2() == SU2_SOL) { val_iZone = iExtIter; } - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.uns", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.uns", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.uns", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.uns", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.uns", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.uns", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.uns", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.uns", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.uns", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.uns", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if (int(iExtIter) < 10) sprintf (buffer, "_0000%d.uns", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.uns", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.uns", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.uns", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.uns", int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) < 10) SPRINTF (buffer, "_0000%d.uns", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.uns", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.uns", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.uns", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.uns", SU2_TYPE::Int(iExtIter)); } - else { sprintf (buffer, ".uns"); } + else { SPRINTF (buffer, ".uns"); } strcat(cstr, buffer); diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index ec07ef51f09..3565556b3bd 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -87,39 +87,39 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s /*--- Special cases where a number needs to be appended to the file name. ---*/ if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } /*--- Special cases where a number needs to be appended to the file name. ---*/ if (((Kind_Solver == ADJ_EULER) || (Kind_Solver == ADJ_NAVIER_STOKES) || (Kind_Solver == ADJ_RANS)) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.vtk", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.vtk", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.vtk", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.vtk", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.vtk", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.vtk", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.vtk", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.vtk", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.vtk", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.vtk", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if (int(iExtIter) < 10) sprintf (buffer, "_0000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.vtk", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.vtk", int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) < 10) SPRINTF (buffer, "_0000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.vtk", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.vtk", SU2_TYPE::Int(iExtIter)); } else if (config->GetDynamic_Analysis() && config->GetWrt_Dynamic()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.vtk", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.vtk", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.vtk", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.vtk", SU2_TYPE::Int(iExtIter)); } else { - sprintf (buffer, ".vtk"); + SPRINTF (buffer, ".vtk"); } strcat(cstr, buffer); @@ -330,7 +330,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s variables with the appropriate string tags stored in the config class. ---*/ for (unsigned short iField = 1; iField < config->fields.size(); iField++) { - double output_variable = true; + su2double output_variable = true; size_t found = config->fields[iField].find("\"x\""); if (found!=string::npos) output_variable = false; found = config->fields[iField].find("\"y\""); @@ -841,39 +841,39 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign /*--- Special cases where a number needs to be appended to the file name. ---*/ if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } /*--- Special cases where a number needs to be appended to the file name. ---*/ if (((Kind_Solver == ADJ_EULER) || (Kind_Solver == ADJ_NAVIER_STOKES) || (Kind_Solver == ADJ_RANS)) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.vtk", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.vtk", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.vtk", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.vtk", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.vtk", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.vtk", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.vtk", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.vtk", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.vtk", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.vtk", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if (int(iExtIter) < 10) sprintf (buffer, "_0000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.vtk", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.vtk", int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) < 10) SPRINTF (buffer, "_0000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.vtk", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.vtk", SU2_TYPE::Int(iExtIter)); } else if (config->GetDynamic_Analysis() && config->GetWrt_Dynamic()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.vtk", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.vtk", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.vtk", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.vtk", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.vtk", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.vtk", SU2_TYPE::Int(iExtIter)); } else { - sprintf (buffer, ".vtk"); + SPRINTF (buffer, ".vtk"); } strcat(cstr, buffer); @@ -1088,7 +1088,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign variables with the appropriate string tags stored in the config class. ---*/ for (unsigned short iField = 1; iField < config->fields.size(); iField++) { - double output_variable = true; + su2double output_variable = true; size_t found = config->fields[iField].find("\"x\""); if (found!=string::npos) output_variable = false; found = config->fields[iField].find("\"y\""); diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 79491a3016b..d3e8fbc8ee6 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -80,8 +80,8 @@ void COutput::SetSurfaceCSV_Flow(CConfig *config, CGeometry *geometry, unsigned short iMarker; unsigned long iPoint, iVertex, Global_Index; - double PressCoeff = 0.0, SkinFrictionCoeff, HeatFlux; - double xCoord = 0.0, yCoord = 0.0, zCoord = 0.0, Mach, Pressure; + su2double PressCoeff = 0.0, SkinFrictionCoeff, HeatFlux; + su2double xCoord = 0.0, yCoord = 0.0, zCoord = 0.0, Mach, Pressure; char cstr[200]; unsigned short solver = config->GetKind_Solver(); @@ -96,21 +96,21 @@ void COutput::SetSurfaceCSV_Flow(CConfig *config, CGeometry *geometry, strcpy (cstr, config->GetSurfFlowCoeff_FileName().c_str()); if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.csv", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.csv", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.csv", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.csv", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".csv"); + SPRINTF (buffer, ".csv"); strcat (cstr, buffer); SurfFlow_file.precision(15); @@ -202,34 +202,34 @@ void COutput::SetSurfaceCSV_Flow(CConfig *config, CGeometry *geometry, Buffer_Send_nVertex[0] = nLocalVertex_Surface; if (rank == MASTER_NODE) Buffer_Recv_nVertex = new unsigned long [nProcessor]; - MPI_Allreduce(&nLocalVertex_Surface, &MaxLocalVertex_Surface, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(&Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertex, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Surface, &MaxLocalVertex_Surface, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(&Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertex, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); /*--- Send and Recv buffers ---*/ - double *Buffer_Send_Coord_x = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_Coord_x = NULL; + su2double *Buffer_Send_Coord_x = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_Coord_x = NULL; - double *Buffer_Send_Coord_y = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_Coord_y = NULL; + su2double *Buffer_Send_Coord_y = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_Coord_y = NULL; - double *Buffer_Send_Coord_z = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_Coord_z = NULL; + su2double *Buffer_Send_Coord_z = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_Coord_z = NULL; - double *Buffer_Send_Press = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_Press = NULL; + su2double *Buffer_Send_Press = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_Press = NULL; - double *Buffer_Send_CPress = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_CPress = NULL; + su2double *Buffer_Send_CPress = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_CPress = NULL; - double *Buffer_Send_Mach = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_Mach = NULL; + su2double *Buffer_Send_Mach = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_Mach = NULL; - double *Buffer_Send_SkinFriction = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_SkinFriction = NULL; + su2double *Buffer_Send_SkinFriction = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_SkinFriction = NULL; - double *Buffer_Send_HeatTransfer = new double [MaxLocalVertex_Surface]; - double *Buffer_Recv_HeatTransfer = NULL; + su2double *Buffer_Send_HeatTransfer = new su2double [MaxLocalVertex_Surface]; + su2double *Buffer_Recv_HeatTransfer = NULL; unsigned long *Buffer_Send_GlobalIndex = new unsigned long [MaxLocalVertex_Surface]; unsigned long *Buffer_Recv_GlobalIndex = NULL; @@ -237,14 +237,14 @@ void COutput::SetSurfaceCSV_Flow(CConfig *config, CGeometry *geometry, /*--- Prepare the receive buffers on the master node only. ---*/ if (rank == MASTER_NODE) { - Buffer_Recv_Coord_x = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Recv_Coord_y = new double [nProcessor*MaxLocalVertex_Surface]; - if (nDim == 3) Buffer_Recv_Coord_z = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Recv_Press = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Recv_CPress = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Recv_Mach = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Recv_SkinFriction = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Recv_HeatTransfer = new double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_Coord_x = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_Coord_y = new su2double [nProcessor*MaxLocalVertex_Surface]; + if (nDim == 3) Buffer_Recv_Coord_z = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_Press = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_CPress = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_Mach = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_SkinFriction = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Recv_HeatTransfer = new su2double [nProcessor*MaxLocalVertex_Surface]; Buffer_Recv_GlobalIndex = new unsigned long [nProcessor*MaxLocalVertex_Surface]; } @@ -290,19 +290,19 @@ void COutput::SetSurfaceCSV_Flow(CConfig *config, CGeometry *geometry, /*--- Send the information to the master node ---*/ - MPI_Gather(Buffer_Send_Coord_x, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Coord_x, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Coord_y, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Coord_y, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (nDim == 3) MPI_Gather(Buffer_Send_Coord_z, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Coord_z, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Press, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Press, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_CPress, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_CPress, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (solver == EULER) MPI_Gather(Buffer_Send_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if ((solver == NAVIER_STOKES) || (solver == RANS)) MPI_Gather(Buffer_Send_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (solver == TNE2_EULER) MPI_Gather(Buffer_Send_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Coord_x, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Coord_x, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Coord_y, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Coord_y, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (nDim == 3) SU2_MPI::Gather(Buffer_Send_Coord_z, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Coord_z, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Press, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Press, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_CPress, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_CPress, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (solver == EULER) SU2_MPI::Gather(Buffer_Send_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if ((solver == NAVIER_STOKES) || (solver == RANS)) SU2_MPI::Gather(Buffer_Send_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (solver == TNE2_EULER) SU2_MPI::Gather(Buffer_Send_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_Mach, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); if (solver == TNE2_NAVIER_STOKES) { - MPI_Gather(Buffer_Send_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_HeatTransfer, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_HeatTransfer, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_SkinFriction, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_HeatTransfer, MaxLocalVertex_Surface, MPI_DOUBLE, Buffer_Recv_HeatTransfer, MaxLocalVertex_Surface, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); } - MPI_Gather(Buffer_Send_GlobalIndex, MaxLocalVertex_Surface, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, MaxLocalVertex_Surface, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_GlobalIndex, MaxLocalVertex_Surface, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, MaxLocalVertex_Surface, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); /*--- The master node unpacks the data and writes the surface CSV file ---*/ @@ -316,21 +316,21 @@ void COutput::SetSurfaceCSV_Flow(CConfig *config, CGeometry *geometry, /*--- Write file name with extension if unsteady ---*/ strcpy (cstr, filename.c_str()); if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.csv", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.csv", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.csv", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.csv", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".csv"); + SPRINTF (buffer, ".csv"); strcat (cstr, buffer); SurfFlow_file.precision(15); @@ -433,7 +433,7 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve #ifndef HAVE_MPI unsigned long iPoint, iVertex, Global_Index; - double *Solution, xCoord, yCoord, zCoord; + su2double *Solution, xCoord, yCoord, zCoord; unsigned short iMarker; char cstr[200], buffer[50]; ofstream SurfAdj_file; @@ -442,21 +442,21 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve strcpy (cstr, config->GetSurfAdjCoeff_FileName().c_str()); if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.csv", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.csv", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.csv", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.csv", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".csv"); + SPRINTF (buffer, ".csv"); strcat(cstr, buffer); SurfAdj_file.precision(15); @@ -522,7 +522,7 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); unsigned short nDim = geometry->GetnDim(), iMarker; - double *Solution, *Normal, *d, *Coord; + su2double *Solution, *Normal, *d, *Coord; unsigned long Buffer_Send_nVertex[1], iVertex, iPoint, nVertex_Surface = 0, nLocalVertex_Surface = 0, MaxLocalVertex_Surface = 0, nBuffer_Scalar; unsigned long *Buffer_Receive_nVertex = NULL; @@ -542,19 +542,19 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve Buffer_Send_nVertex[0] = nLocalVertex_Surface; - MPI_Allreduce(&nLocalVertex_Surface, &MaxLocalVertex_Surface, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(&Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Surface, &MaxLocalVertex_Surface, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(&Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - double *Buffer_Send_Coord_x = new double[MaxLocalVertex_Surface]; - double *Buffer_Send_Coord_y= new double[MaxLocalVertex_Surface]; - double *Buffer_Send_Coord_z= new double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Coord_x = new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Coord_y= new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Coord_z= new su2double[MaxLocalVertex_Surface]; unsigned long *Buffer_Send_GlobalPoint= new unsigned long[MaxLocalVertex_Surface]; - double *Buffer_Send_Sensitivity= new double[MaxLocalVertex_Surface]; - double *Buffer_Send_PsiRho= new double[MaxLocalVertex_Surface]; - double *Buffer_Send_Phi_x= new double[MaxLocalVertex_Surface]; - double *Buffer_Send_Phi_y= new double[MaxLocalVertex_Surface]; - double *Buffer_Send_Phi_z= new double[MaxLocalVertex_Surface]; - double *Buffer_Send_PsiE= new double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Sensitivity= new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_PsiRho= new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Phi_x= new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Phi_y= new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_Phi_z= new su2double[MaxLocalVertex_Surface]; + su2double *Buffer_Send_PsiE= new su2double[MaxLocalVertex_Surface]; nVertex_Surface = 0; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) @@ -592,37 +592,37 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve } } - double *Buffer_Receive_Coord_x = NULL, *Buffer_Receive_Coord_y = NULL, *Buffer_Receive_Coord_z = NULL, *Buffer_Receive_Sensitivity = NULL, + su2double *Buffer_Receive_Coord_x = NULL, *Buffer_Receive_Coord_y = NULL, *Buffer_Receive_Coord_z = NULL, *Buffer_Receive_Sensitivity = NULL, *Buffer_Receive_PsiRho = NULL, *Buffer_Receive_Phi_x = NULL, *Buffer_Receive_Phi_y = NULL, *Buffer_Receive_Phi_z = NULL, *Buffer_Receive_PsiE = NULL; unsigned long *Buffer_Receive_GlobalPoint = NULL; if (rank == MASTER_NODE) { - Buffer_Receive_Coord_x = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Receive_Coord_y = new double [nProcessor*MaxLocalVertex_Surface]; - if (nDim == 3) Buffer_Receive_Coord_z = new double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_Coord_x = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_Coord_y = new su2double [nProcessor*MaxLocalVertex_Surface]; + if (nDim == 3) Buffer_Receive_Coord_z = new su2double [nProcessor*MaxLocalVertex_Surface]; Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Surface]; - Buffer_Receive_Sensitivity = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Receive_PsiRho = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Receive_Phi_x = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Receive_Phi_y = new double [nProcessor*MaxLocalVertex_Surface]; - if (nDim == 3) Buffer_Receive_Phi_z = new double [nProcessor*MaxLocalVertex_Surface]; - Buffer_Receive_PsiE = new double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_Sensitivity = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_PsiRho = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_Phi_x = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_Phi_y = new su2double [nProcessor*MaxLocalVertex_Surface]; + if (nDim == 3) Buffer_Receive_Phi_z = new su2double [nProcessor*MaxLocalVertex_Surface]; + Buffer_Receive_PsiE = new su2double [nProcessor*MaxLocalVertex_Surface]; } nBuffer_Scalar = MaxLocalVertex_Surface; /*--- Send the information to the Master node ---*/ - MPI_Gather(Buffer_Send_Coord_x, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Coord_x, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Coord_y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Coord_y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (nDim == 3) MPI_Gather(Buffer_Send_Coord_z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Coord_z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_GlobalPoint, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Sensitivity, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Sensitivity, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_PsiRho, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_PsiRho, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Phi_x, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Phi_x, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Phi_y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Phi_y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (nDim == 3) MPI_Gather(Buffer_Send_Phi_z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Phi_z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_PsiE, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_PsiE, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Coord_x, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Coord_x, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Coord_y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Coord_y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (nDim == 3) SU2_MPI::Gather(Buffer_Send_Coord_z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Coord_z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_GlobalPoint, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Sensitivity, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Sensitivity, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_PsiRho, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_PsiRho, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Phi_x, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Phi_x, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Phi_y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Phi_y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (nDim == 3) SU2_MPI::Gather(Buffer_Send_Phi_z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_Phi_z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_PsiE, nBuffer_Scalar, MPI_DOUBLE, Buffer_Receive_PsiE, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); /*--- The master node is the one who writes the surface files ---*/ if (rank == MASTER_NODE) { @@ -635,21 +635,21 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve strcpy (cstr, filename.c_str()); if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.csv", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.csv", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.csv", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.csv", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.csv", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".csv"); + SPRINTF (buffer, ".csv"); strcat (cstr, buffer); SurfAdj_file.open(cstr, ios::out); @@ -849,9 +849,9 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { /*--- Allocate the coordinates data structure. ---*/ - Coords = new double*[nDim]; + Coords = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - Coords[iDim] = new double[nGlobal_Poin]; + Coords[iDim] = new su2double[nGlobal_Poin]; } /*--- Loop over the mesh to collect the coords of the local points ---*/ @@ -945,9 +945,9 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { /*--- Communicate the total number of nodes on this domain. ---*/ - MPI_Gather(&Buffer_Send_nPoin, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Gather(&Buffer_Send_nPoin, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nPoin, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); if (rank == MASTER_NODE) { nGlobal_Doma = 0; @@ -959,14 +959,14 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { /*--- Send and Recv buffers. ---*/ - double *Buffer_Send_X = new double[MaxLocalPoint]; - double *Buffer_Recv_X = NULL; + su2double *Buffer_Send_X = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_X = NULL; - double *Buffer_Send_Y = new double[MaxLocalPoint]; - double *Buffer_Recv_Y = NULL; + su2double *Buffer_Send_Y = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Y = NULL; - double *Buffer_Send_Z, *Buffer_Recv_Z = NULL; - if (nDim == 3) Buffer_Send_Z = new double[MaxLocalPoint]; + su2double *Buffer_Send_Z, *Buffer_Recv_Z = NULL; + if (nDim == 3) Buffer_Send_Z = new su2double[MaxLocalPoint]; unsigned long *Buffer_Send_GlobalIndex = new unsigned long[MaxLocalPoint]; unsigned long *Buffer_Recv_GlobalIndex = NULL; @@ -975,9 +975,9 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { if (rank == MASTER_NODE) { - Buffer_Recv_X = new double[nProcessor*MaxLocalPoint]; - Buffer_Recv_Y = new double[nProcessor*MaxLocalPoint]; - if (nDim == 3) Buffer_Recv_Z = new double[nProcessor*MaxLocalPoint]; + Buffer_Recv_X = new su2double[nProcessor*MaxLocalPoint]; + Buffer_Recv_Y = new su2double[nProcessor*MaxLocalPoint]; + if (nDim == 3) Buffer_Recv_Z = new su2double[nProcessor*MaxLocalPoint]; Buffer_Recv_GlobalIndex = new unsigned long[nProcessor*MaxLocalPoint]; /*--- Sum total number of nodes to be written and allocate arrays ---*/ @@ -985,9 +985,9 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) { nGlobal_Poin += Buffer_Recv_nPoin[iProcessor]; } - Coords = new double*[nDim]; + Coords = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - Coords[iDim] = new double[nGlobal_Poin]; + Coords[iDim] = new su2double[nGlobal_Poin]; } } @@ -997,7 +997,7 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { by the master and sorted by global index in one large n-dim. array. ---*/ /*--- Loop over this partition to collect the coords of the local points. ---*/ - double *Coords_Local; jPoint = 0; + su2double *Coords_Local; jPoint = 0; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Check for halos and write only if requested ---*/ @@ -1030,12 +1030,12 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { /*--- Gather the coordinate data on the master node using MPI. ---*/ - MPI_Gather(Buffer_Send_X, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_X, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_X, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_X, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Y, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Y, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); if (nDim == 3) { - MPI_Gather(Buffer_Send_Z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Z, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Z, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); } - MPI_Gather(Buffer_Send_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); /*--- The master node unpacks and sorts this variable by global index ---*/ @@ -1147,8 +1147,8 @@ void COutput::MergeVolumetricConnectivity(CConfig *config, CGeometry *geometry, if (rank == MASTER_NODE) Buffer_Recv_nElem = new unsigned long[size]; #ifdef HAVE_MPI - MPI_Allreduce(&nLocalElem, &MaxLocalElem, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(&Buffer_Send_nElem, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nElem, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalElem, &MaxLocalElem, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(&Buffer_Send_nElem, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nElem, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else MaxLocalElem = nLocalElem; Buffer_Recv_nElem[0] = Buffer_Send_nElem[0]; @@ -1207,9 +1207,9 @@ void COutput::MergeVolumetricConnectivity(CConfig *config, CGeometry *geometry, Buffer_Send_nAddedPeriodic[0] = nAddedPeriodic; #ifdef HAVE_MPI - MPI_Allreduce(&nAddedPeriodic, &maxAddedPeriodic, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Allreduce(&nAddedPeriodic, &maxAddedPeriodic, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(&Buffer_Send_nAddedPeriodic, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Allgather(&Buffer_Send_nAddedPeriodic, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nAddedPeriodic, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else maxAddedPeriodic = nAddedPeriodic; @@ -1228,7 +1228,7 @@ void COutput::MergeVolumetricConnectivity(CConfig *config, CGeometry *geometry, have a copy of the global index values for all added periodic points. ---*/ #ifdef HAVE_MPI - MPI_Allgather(Buffer_Send_AddedPeriodic, maxAddedPeriodic, MPI_UNSIGNED_LONG, + SU2_MPI::Allgather(Buffer_Send_AddedPeriodic, maxAddedPeriodic, MPI_UNSIGNED_LONG, Buffer_Recv_AddedPeriodic, maxAddedPeriodic, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else @@ -1323,8 +1323,8 @@ void COutput::MergeVolumetricConnectivity(CConfig *config, CGeometry *geometry, /*--- Gather the element connectivity information. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, Buffer_Recv_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, Buffer_Recv_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Elem[iPoint] = Buffer_Send_Elem[iPoint]; for (iPoint = 0; iPoint < MaxLocalElem; iPoint++) Buffer_Recv_Halo[iPoint] = Buffer_Send_Halo[iPoint]; @@ -1516,8 +1516,8 @@ void COutput::MergeSurfaceConnectivity(CConfig *config, CGeometry *geometry, uns if (rank == MASTER_NODE) Buffer_Recv_nElem = new unsigned long[size]; #ifdef HAVE_MPI - MPI_Allreduce(&nLocalElem, &MaxLocalElem, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(&Buffer_Send_nElem, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nElem, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalElem, &MaxLocalElem, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(&Buffer_Send_nElem, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nElem, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else MaxLocalElem = nLocalElem; Buffer_Recv_nElem[0] = Buffer_Send_nElem[0]; @@ -1576,9 +1576,9 @@ void COutput::MergeSurfaceConnectivity(CConfig *config, CGeometry *geometry, uns Buffer_Send_nAddedPeriodic[0] = nAddedPeriodic; #ifdef HAVE_MPI - MPI_Allreduce(&nAddedPeriodic, &maxAddedPeriodic, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Allreduce(&nAddedPeriodic, &maxAddedPeriodic, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(&Buffer_Send_nAddedPeriodic, 1, MPI_UNSIGNED_LONG, + SU2_MPI::Allgather(&Buffer_Send_nAddedPeriodic, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nAddedPeriodic, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else maxAddedPeriodic = nAddedPeriodic; @@ -1597,7 +1597,7 @@ void COutput::MergeSurfaceConnectivity(CConfig *config, CGeometry *geometry, uns have a copy of the global index values for all added periodic points. ---*/ #ifdef HAVE_MPI - MPI_Allgather(Buffer_Send_AddedPeriodic, maxAddedPeriodic, MPI_UNSIGNED_LONG, + SU2_MPI::Allgather(Buffer_Send_AddedPeriodic, maxAddedPeriodic, MPI_UNSIGNED_LONG, Buffer_Recv_AddedPeriodic, maxAddedPeriodic, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else @@ -1693,8 +1693,8 @@ void COutput::MergeSurfaceConnectivity(CConfig *config, CGeometry *geometry, uns /*--- Gather the element connectivity information. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, Buffer_Recv_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_Elem, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, Buffer_Recv_Halo, MaxLocalElem, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Elem[iPoint] = Buffer_Send_Elem[iPoint]; for (iPoint = 0; iPoint < MaxLocalElem; iPoint++) Buffer_Recv_Halo[iPoint] = Buffer_Send_Halo[iPoint]; @@ -1811,9 +1811,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv iVar_FEA_Stress = 0, iVar_FEA_Stress_3D = 0, iVar_FEA_Extra = 0; unsigned long iPoint = 0, jPoint = 0, iVertex = 0, iMarker = 0; - double Gas_Constant, Mach2Vel, Mach_Motion, RefDensity, RefPressure = 0.0, factor = 0.0; + su2double Gas_Constant, Mach2Vel, Mach_Motion, RefDensity, RefPressure = 0.0, factor = 0.0; - double *Aux_Frict = NULL, *Aux_Heat = NULL, *Aux_yPlus = NULL, *Aux_Sens = NULL; + su2double *Aux_Frict = NULL, *Aux_Heat = NULL, *Aux_yPlus = NULL, *Aux_Sens = NULL; unsigned short CurrentIndex; int SendRecv, RecvFrom, *Local_Halo; @@ -1845,9 +1845,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv unsigned short iDim; unsigned short nDim = geometry->GetnDim(); - double RefAreaCoeff = config->GetRefAreaCoeff(); - double Gamma = config->GetGamma(); - double RefVel2, *Normal, Area; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double Gamma = config->GetGamma(); + su2double RefVel2, *Normal, Area; /*--- Set the non-dimensionalization ---*/ if (flow) { @@ -2025,8 +2025,8 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv if (rank == MASTER_NODE) Buffer_Recv_nPoint = new unsigned long[size]; #ifdef HAVE_MPI - MPI_Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(&Buffer_Send_nPoint, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nPoint, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(&Buffer_Send_nPoint, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nPoint, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else MaxLocalPoint = nLocalPoint; Buffer_Recv_nPoint[0] = Buffer_Send_nPoint[0]; @@ -2036,14 +2036,14 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Send and Recv buffers. ---*/ - double *Buffer_Send_Var = new double[MaxLocalPoint]; - double *Buffer_Recv_Var = NULL; + su2double *Buffer_Send_Var = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Var = NULL; - double *Buffer_Send_Res = new double[MaxLocalPoint]; - double *Buffer_Recv_Res = NULL; + su2double *Buffer_Send_Res = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Res = NULL; - double *Buffer_Send_Vol = new double[MaxLocalPoint]; - double *Buffer_Recv_Vol = NULL; + su2double *Buffer_Send_Vol = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Vol = NULL; unsigned long *Buffer_Send_GlobalIndex = new unsigned long[MaxLocalPoint]; unsigned long *Buffer_Recv_GlobalIndex = NULL; @@ -2051,24 +2051,24 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Auxiliary vectors for surface coefficients ---*/ if ((Kind_Solver == NAVIER_STOKES) || (Kind_Solver == RANS)) { - Aux_Frict = new double[geometry->GetnPoint()]; - Aux_Heat = new double[geometry->GetnPoint()]; - Aux_yPlus = new double[geometry->GetnPoint()]; + Aux_Frict = new su2double[geometry->GetnPoint()]; + Aux_Heat = new su2double[geometry->GetnPoint()]; + Aux_yPlus = new su2double[geometry->GetnPoint()]; } if ((Kind_Solver == ADJ_EULER) || (Kind_Solver == ADJ_NAVIER_STOKES) || (Kind_Solver == ADJ_RANS) || (Kind_Solver == ADJ_TNE2_EULER) || (Kind_Solver == ADJ_TNE2_NAVIER_STOKES) ) { - Aux_Sens = new double[geometry->GetnPoint()]; + Aux_Sens = new su2double[geometry->GetnPoint()]; } /*--- Prepare the receive buffers in the master node only. ---*/ if (rank == MASTER_NODE) { - Buffer_Recv_Var = new double[size*MaxLocalPoint]; - Buffer_Recv_Res = new double[size*MaxLocalPoint]; - Buffer_Recv_Vol = new double[size*MaxLocalPoint]; + Buffer_Recv_Var = new su2double[size*MaxLocalPoint]; + Buffer_Recv_Res = new su2double[size*MaxLocalPoint]; + Buffer_Recv_Vol = new su2double[size*MaxLocalPoint]; Buffer_Recv_GlobalIndex = new unsigned long[size*MaxLocalPoint]; /*--- Sum total number of nodes to be written and allocate arrays ---*/ @@ -2076,9 +2076,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv for (iProcessor = 0; iProcessor < size; iProcessor++) { nGlobal_Poin += Buffer_Recv_nPoint[iProcessor]; } - Data = new double*[nVar_Total]; + Data = new su2double*[nVar_Total]; for (iVar = 0; iVar < nVar_Total; iVar++) { - Data[iVar] = new double[nGlobal_Poin]; + Data[iVar] = new su2double[nGlobal_Poin]; } } @@ -2142,7 +2142,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2150,7 +2150,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv if (config->GetWrt_Limiters()) { #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; #endif @@ -2158,7 +2158,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv if (config->GetWrt_Residuals()) { #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; #endif @@ -2168,7 +2168,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv if (iVar == 0) { #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_GlobalIndex[iPoint] = Buffer_Send_GlobalIndex[iPoint]; #endif @@ -2222,7 +2222,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Loop over this partition to collect the current variable ---*/ - jPoint = 0; double *Grid_Vel; + jPoint = 0; su2double *Grid_Vel; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Check for halos & write only if requested ---*/ @@ -2242,10 +2242,10 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); if (geometry->GetnDim() == 3) { - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); } #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; @@ -2301,7 +2301,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2364,9 +2364,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -2426,7 +2426,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2480,7 +2480,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; #endif @@ -2556,9 +2556,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -2617,7 +2617,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2668,7 +2668,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2720,7 +2720,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2765,7 +2765,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2810,7 +2810,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2855,7 +2855,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2904,7 +2904,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2950,7 +2950,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -2994,7 +2994,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -3039,7 +3039,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -3116,8 +3116,8 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -3151,7 +3151,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Loop over this partition to collect the current variable ---*/ - jPoint = 0; double **Stress; + jPoint = 0; su2double **Stress; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Check for halos & write only if requested ---*/ @@ -3174,9 +3174,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -3212,7 +3212,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Loop over this partition to collect the current variable ---*/ - jPoint = 0; double *Stress; + jPoint = 0; su2double *Stress; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Check for halos & write only if requested ---*/ @@ -3235,9 +3235,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -3273,7 +3273,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Loop over this partition to collect the current variable ---*/ - jPoint = 0; double **Stress; + jPoint = 0; su2double **Stress; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Check for halos & write only if requested ---*/ @@ -3296,9 +3296,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -3335,7 +3335,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Loop over this partition to collect the current variable ---*/ - jPoint = 0; double *Stress; + jPoint = 0; su2double *Stress; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Check for halos & write only if requested ---*/ @@ -3358,9 +3358,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; @@ -3415,7 +3415,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -3471,7 +3471,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Gather the data on the master node. ---*/ #ifdef HAVE_MPI - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); #else for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; #endif @@ -3575,9 +3575,9 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve if (!Local_Halo[iPoint]) nTotalPoints++; nGlobal_Poin = nTotalPoints; - Data = new double*[nVar_Total]; + Data = new su2double*[nVar_Total]; for (iVar = 0; iVar < nVar_Total; iVar++) { - Data[iVar] = new double[nGlobal_Poin]; + Data[iVar] = new su2double[nGlobal_Poin]; } /*--- Loop over all points in the mesh, but only write data @@ -3662,15 +3662,15 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve if (rank == MASTER_NODE) Buffer_Recv_nPoint = new unsigned long[nProcessor]; - MPI_Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(&Buffer_Send_nPoint, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nPoint, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalPoint, &MaxLocalPoint, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(&Buffer_Send_nPoint, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nPoint, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); nBuffer_Scalar = MaxLocalPoint; /*--- Send and Recv buffers. ---*/ - double *Buffer_Send_Var = new double[MaxLocalPoint]; - double *Buffer_Recv_Var = NULL; + su2double *Buffer_Send_Var = new su2double[MaxLocalPoint]; + su2double *Buffer_Recv_Var = NULL; unsigned long *Buffer_Send_GlobalIndex = new unsigned long[MaxLocalPoint]; unsigned long *Buffer_Recv_GlobalIndex = NULL; @@ -3678,7 +3678,7 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve /*--- Prepare the receive buffers in the master node only. ---*/ if (rank == MASTER_NODE) { - Buffer_Recv_Var = new double[nProcessor*MaxLocalPoint]; + Buffer_Recv_Var = new su2double[nProcessor*MaxLocalPoint]; Buffer_Recv_GlobalIndex = new unsigned long[nProcessor*MaxLocalPoint]; /*--- Sum total number of nodes to be written and allocate arrays ---*/ @@ -3686,9 +3686,9 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) { nGlobal_Poin += Buffer_Recv_nPoint[iProcessor]; } - Data = new double*[nVar_Total]; + Data = new su2double*[nVar_Total]; for (iVar = 0; iVar < nVar_Total; iVar++) { - Data[iVar] = new double[nGlobal_Poin]; + Data[iVar] = new su2double[nGlobal_Poin]; } } @@ -3721,9 +3721,9 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve /*--- Gather the data on the master node. ---*/ - MPI_Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); if (iVar == 0) { - MPI_Gather(Buffer_Send_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, Buffer_Recv_GlobalIndex, nBuffer_Scalar, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); } /*--- The master node unpacks and sorts this variable by global index ---*/ @@ -3781,9 +3781,9 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - filename = config->GetUnsteady_FileName(filename, int(val_iZone)); + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(val_iZone)); } else if (config->GetWrt_Unsteady()) { - filename = config->GetUnsteady_FileName(filename, int(iExtIter)); + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file and write the solution. ---*/ @@ -4030,19 +4030,19 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { if (config->GetWrt_Unsteady() && config->GetRestart()) { long iExtIter = config->GetUnst_RestartIter(); - if (int(iExtIter) < 10) sprintf (buffer, "_0000%d", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d", int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) < 10) SPRINTF (buffer, "_0000%d", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d", SU2_TYPE::Int(iExtIter)); strcat(cstr, buffer); } if ((config->GetOutput_FileFormat() == TECPLOT) || - (config->GetOutput_FileFormat() == FIELDVIEW)) sprintf (buffer, ".dat"); + (config->GetOutput_FileFormat() == FIELDVIEW)) SPRINTF (buffer, ".dat"); else if ((config->GetOutput_FileFormat() == TECPLOT_BINARY) || - (config->GetOutput_FileFormat() == FIELDVIEW_BINARY)) sprintf (buffer, ".plt"); - else if (config->GetOutput_FileFormat() == PARAVIEW) sprintf (buffer, ".csv"); + (config->GetOutput_FileFormat() == FIELDVIEW_BINARY)) SPRINTF (buffer, ".plt"); + else if (config->GetOutput_FileFormat() == PARAVIEW) SPRINTF (buffer, ".csv"); strcat(cstr, buffer); ConvHist_file->open(cstr, ios::out); @@ -4091,10 +4091,10 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char flow_resid[]= ",\"Res_Flow[0]\",\"Res_Flow[1]\",\"Res_Flow[2]\",\"Res_Flow[3]\",\"Res_Flow[4]\""; char adj_flow_resid[]= ",\"Res_AdjFlow[0]\",\"Res_AdjFlow[1]\",\"Res_AdjFlow[2]\",\"Res_AdjFlow[3]\",\"Res_AdjFlow[4]\""; switch (config->GetKind_Turb_Model()) { - case SA: sprintf (turb_resid, ",\"Res_Turb[0]\""); break; - case SA_NEG: sprintf (turb_resid, ",\"Res_Turb[0]\""); break; - case ML: sprintf (turb_resid, ",\"Res_Turb[0]\""); break; - case SST: sprintf (turb_resid, ",\"Res_Turb[0]\",\"Res_Turb[1]\""); break; + case SA: SPRINTF (turb_resid, ",\"Res_Turb[0]\""); break; + case SA_NEG: SPRINTF (turb_resid, ",\"Res_Turb[0]\""); break; + case ML: SPRINTF (turb_resid, ",\"Res_Turb[0]\""); break; + case SST: SPRINTF (turb_resid, ",\"Res_Turb[0]\",\"Res_Turb[1]\""); break; } char adj_turb_resid[]= ",\"Res_AdjTurb[0]\""; char levelset_resid[]= ",\"Res_LevelSet\""; @@ -4201,7 +4201,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, CConfig **config, CIntegration ***integration, bool DualTime_Iteration, - double timeused, + su2double timeused, unsigned short val_iZone) { bool output_1d = config[val_iZone]->GetWrt_1D_Output(); @@ -4249,11 +4249,11 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, heat_coeff[1000], fea_coeff[1000], fem_coeff[1000], wave_resid[1000], heat_resid[1000], fea_resid[1000], fem_resid[1000], end[1000], oneD_outputs[1000], massflow_outputs[1000]; - double dummy = 0.0, *Coord; + su2double dummy = 0.0, *Coord; unsigned short iVar, iMarker, iMarker_Monitoring; unsigned long LinSolvIter = 0, iPointMaxResid; - double timeiter = timeused/double(iExtIter+1); + su2double timeiter = timeused/su2double(iExtIter+1); unsigned short nDim = geometry[val_iZone][FinestMesh]->GetnDim(); unsigned short nSpecies = config[val_iZone]->GetnSpecies(); @@ -4295,34 +4295,34 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Initialize variables to store information from all domains (direct solution) ---*/ - double Total_CLift = 0.0, Total_CDrag = 0.0, Total_CSideForce = 0.0, Total_CMx = 0.0, Total_CMy = 0.0, Total_CMz = 0.0, Total_CEff = 0.0, + su2double Total_CLift = 0.0, Total_CDrag = 0.0, Total_CSideForce = 0.0, Total_CMx = 0.0, Total_CMy = 0.0, Total_CMz = 0.0, Total_CEff = 0.0, Total_CEquivArea = 0.0, Total_CNearFieldOF = 0.0, Total_CFx = 0.0, Total_CFy = 0.0, Total_CFz = 0.0, Total_CMerit = 0.0, Total_CT = 0.0, Total_CQ = 0.0, Total_CFreeSurface = 0.0, Total_CWave = 0.0, Total_CHeat = 0.0, Total_CpDiff = 0.0, Total_HeatFluxDiff = 0.0, Total_CFEA = 0.0, Total_Heat = 0.0, Total_MaxHeat = 0.0, Total_Mdot = 0.0, Total_CFEM = 0.0; - double OneD_AvgStagPress = 0.0, OneD_AvgMach = 0.0, OneD_AvgTemp = 0.0, OneD_MassFlowRate = 0.0, + su2double OneD_AvgStagPress = 0.0, OneD_AvgMach = 0.0, OneD_AvgTemp = 0.0, OneD_MassFlowRate = 0.0, OneD_FluxAvgPress = 0.0, OneD_FluxAvgDensity = 0.0, OneD_FluxAvgVelocity = 0.0, OneD_FluxAvgEntalpy = 0.0; /*--- Initialize variables to store information from all domains (adjoint solution) ---*/ - double Total_Sens_Geo = 0.0, Total_Sens_Mach = 0.0, Total_Sens_AoA = 0.0; - double Total_Sens_Press = 0.0, Total_Sens_Temp = 0.0; + su2double Total_Sens_Geo = 0.0, Total_Sens_Mach = 0.0, Total_Sens_AoA = 0.0; + su2double Total_Sens_Press = 0.0, Total_Sens_Temp = 0.0; /*--- Residual arrays ---*/ - double *residual_flow = NULL, + su2double *residual_flow = NULL, *residual_turbulent = NULL, *residual_transition = NULL, *residual_TNE2 = NULL, *residual_levelset = NULL; - double *residual_adjflow = NULL, + su2double *residual_adjflow = NULL, *residual_adjturbulent = NULL, *residual_adjTNE2 = NULL, *residual_adjlevelset = NULL; - double *residual_wave = NULL; - double *residual_fea = NULL; - double *residual_fem = NULL; - double *residual_heat = NULL; + su2double *residual_wave = NULL; + su2double *residual_fea = NULL; + su2double *residual_fem = NULL; + su2double *residual_heat = NULL; /*--- Coefficients Monitored arrays ---*/ - double *aeroelastic_plunge = NULL, + su2double *aeroelastic_plunge = NULL, *aeroelastic_pitch = NULL, *Surface_CLift = NULL, *Surface_CDrag = NULL, @@ -4377,34 +4377,34 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (freesurface) nVar_AdjLevelSet = 1; /*--- Allocate memory for the residual ---*/ - residual_flow = new double[nVar_Flow]; - residual_turbulent = new double[nVar_Turb]; - residual_transition = new double[nVar_Trans]; - residual_TNE2 = new double[nVar_TNE2]; - residual_levelset = new double[nVar_LevelSet]; - residual_wave = new double[nVar_Wave]; - residual_fea = new double[nVar_FEA]; - residual_heat = new double[nVar_Heat]; - residual_fem = new double[nVar_FEM]; - - residual_adjflow = new double[nVar_AdjFlow]; - residual_adjturbulent = new double[nVar_AdjTurb]; - residual_adjTNE2 = new double[nVar_AdjTNE2]; - residual_adjlevelset = new double[nVar_AdjLevelSet]; + residual_flow = new su2double[nVar_Flow]; + residual_turbulent = new su2double[nVar_Turb]; + residual_transition = new su2double[nVar_Trans]; + residual_TNE2 = new su2double[nVar_TNE2]; + residual_levelset = new su2double[nVar_LevelSet]; + residual_wave = new su2double[nVar_Wave]; + residual_fea = new su2double[nVar_FEA]; + residual_heat = new su2double[nVar_Heat]; + residual_fem = new su2double[nVar_FEM]; + + residual_adjflow = new su2double[nVar_AdjFlow]; + residual_adjturbulent = new su2double[nVar_AdjTurb]; + residual_adjTNE2 = new su2double[nVar_AdjTNE2]; + residual_adjlevelset = new su2double[nVar_AdjLevelSet]; /*--- Allocate memory for the coefficients being monitored ---*/ - aeroelastic_plunge = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - aeroelastic_pitch = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CLift = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CDrag = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CSideForce = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CEff = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFx = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFy = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFz = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMx = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMy = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMz = new double[config[ZONE_0]->GetnMarker_Monitoring()]; + aeroelastic_plunge = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + aeroelastic_pitch = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CLift = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CDrag = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CSideForce = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CEff = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFx = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFy = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFz = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMx = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMy = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMz = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; /*--- Write information from nodes ---*/ switch (config[val_iZone]->GetKind_Solver()) { @@ -4742,10 +4742,10 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (!DualTime_Iteration) { /*--- Write the begining of the history file ---*/ - sprintf (begin, "%12d", int(iExtIter)); + SPRINTF (begin, "%12d", SU2_TYPE::Int(iExtIter)); /*--- Write the end of the history file ---*/ - sprintf (end, ", %12.10f, %12.10f, %12.10f\n", double(LinSolvIter), config[val_iZone]->GetCFL(MESH_0), timeused/60.0); + SPRINTF (end, ", %12.10f, %12.10f, %12.10f\n", su2double(LinSolvIter), config[val_iZone]->GetCFL(MESH_0), timeused/60.0); /*--- Write the solution and residual of the history file ---*/ switch (config[val_iZone]->GetKind_Solver()) { @@ -4754,44 +4754,44 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: /*--- Direct coefficients ---*/ - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff); if (isothermal) - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_Heat, Total_MaxHeat); if (equiv_area) - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CEquivArea, Total_CNearFieldOF); + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CEquivArea, Total_CNearFieldOF); if (inv_design) { - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CpDiff); + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CpDiff); Total_CpDiff = solver_container[val_iZone][FinestMesh][FLOW_SOL]->GetTotal_CpDiff(); if (isothermal) { - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_Heat, Total_MaxHeat, Total_CpDiff, Total_HeatFluxDiff); + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_Heat, Total_MaxHeat, Total_CpDiff, Total_HeatFluxDiff); } } if (rotating_frame) - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CMerit, Total_CT, Total_CQ); if (freesurface) { - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CFreeSurface); } // if (fluid_structure) -// sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, +// SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, // Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_CFEA); if (aeroelastic) { for (iMarker_Monitoring = 0; iMarker_Monitoring < config[ZONE_0]->GetnMarker_Monitoring(); iMarker_Monitoring++) { //Append one by one the surface coeff to aeroelastic coeff. (Think better way do this, maybe use string) if (iMarker_Monitoring == 0) { - sprintf(aeroelastic_coeff, ", %12.10f", aeroelastic_plunge[iMarker_Monitoring]); + SPRINTF(aeroelastic_coeff, ", %12.10f", aeroelastic_plunge[iMarker_Monitoring]); } else { - sprintf(surface_coeff, ", %12.10f", aeroelastic_plunge[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", aeroelastic_plunge[iMarker_Monitoring]); strcat(aeroelastic_coeff, surface_coeff); } - sprintf(surface_coeff, ", %12.10f", aeroelastic_pitch[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", aeroelastic_pitch[iMarker_Monitoring]); strcat(aeroelastic_coeff, surface_coeff); } } @@ -4800,29 +4800,29 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, for (iMarker_Monitoring = 0; iMarker_Monitoring < config[ZONE_0]->GetnMarker_Monitoring(); iMarker_Monitoring++) { //Append one by one the surface coeff to monitoring coeff. (Think better way do this, maybe use string) if (iMarker_Monitoring == 0) { - sprintf(monitoring_coeff, ", %12.10f", Surface_CLift[iMarker_Monitoring]); + SPRINTF(monitoring_coeff, ", %12.10f", Surface_CLift[iMarker_Monitoring]); } else { - sprintf(surface_coeff, ", %12.10f", Surface_CLift[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CLift[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); } - sprintf(surface_coeff, ", %12.10f", Surface_CDrag[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CDrag[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CSideForce[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CSideForce[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CEff[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CEff[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CFx[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CFx[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CFy[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CFy[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CFz[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CFz[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CMx[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CMx[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CMy[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CMy[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); - sprintf(surface_coeff, ", %12.10f", Surface_CMz[iMarker_Monitoring]); + SPRINTF(surface_coeff, ", %12.10f", Surface_CMz[iMarker_Monitoring]); strcat(monitoring_coeff, surface_coeff); } } @@ -4830,68 +4830,68 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Flow residual ---*/ if (nDim == 2) { - if (compressible) sprintf (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), log10 (residual_flow[3]), dummy); - if (incompressible || freesurface) sprintf (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), dummy, dummy); + if (compressible) SPRINTF (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), log10 (residual_flow[3]), dummy); + if (incompressible || freesurface) SPRINTF (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), dummy, dummy); } else { - if (compressible) sprintf (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), log10 (residual_flow[3]), log10 (residual_flow[4]) ); - if (incompressible || freesurface) sprintf (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), log10 (residual_flow[3]), dummy); + if (compressible) SPRINTF (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), log10 (residual_flow[3]), log10 (residual_flow[4]) ); + if (incompressible || freesurface) SPRINTF (flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_flow[0]), log10 (residual_flow[1]), log10 (residual_flow[2]), log10 (residual_flow[3]), dummy); } /*--- Turbulent residual ---*/ if (turbulent) { switch(nVar_Turb) { - case 1: sprintf (turb_resid, ", %12.10f", log10 (residual_turbulent[0])); break; - case 2: sprintf (turb_resid, ", %12.10f, %12.10f", log10(residual_turbulent[0]), log10(residual_turbulent[1])); break; + case 1: SPRINTF (turb_resid, ", %12.10f", log10 (residual_turbulent[0])); break; + case 2: SPRINTF (turb_resid, ", %12.10f, %12.10f", log10(residual_turbulent[0]), log10(residual_turbulent[1])); break; } } /*---- Averaged stagnation pressure at an exit ---- */ if (output_1d) { - sprintf( oneD_outputs, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", OneD_AvgStagPress, OneD_AvgMach, OneD_AvgTemp, OneD_MassFlowRate, OneD_FluxAvgPress, OneD_FluxAvgDensity, OneD_FluxAvgVelocity, OneD_FluxAvgEntalpy); + SPRINTF( oneD_outputs, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", OneD_AvgStagPress, OneD_AvgMach, OneD_AvgTemp, OneD_MassFlowRate, OneD_FluxAvgPress, OneD_FluxAvgDensity, OneD_FluxAvgVelocity, OneD_FluxAvgEntalpy); } if (output_massflow and !output_1d) { - sprintf(massflow_outputs,", %12.10f", Total_Mdot); + SPRINTF(massflow_outputs,", %12.10f", Total_Mdot); } /*--- Transition residual ---*/ if (transition) { - sprintf (trans_resid, ", %12.10f, %12.10f", log10(residual_transition[0]), log10(residual_transition[1])); + SPRINTF (trans_resid, ", %12.10f, %12.10f", log10(residual_transition[0]), log10(residual_transition[1])); } /*--- Free surface residual ---*/ if (freesurface) { - sprintf (levelset_resid, ", %12.10f", log10 (residual_levelset[0])); + SPRINTF (levelset_resid, ", %12.10f", log10 (residual_levelset[0])); } /*--- Fluid structure residual ---*/ // if (fluid_structure) { -// if (nDim == 2) sprintf (levelset_resid, ", %12.10f, %12.10f, 0.0", log10 (residual_fea[0]), log10 (residual_fea[1])); -// else sprintf (levelset_resid, ", %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), log10 (residual_fea[1]), log10 (residual_fea[2])); +// if (nDim == 2) SPRINTF (levelset_resid, ", %12.10f, %12.10f, 0.0", log10 (residual_fea[0]), log10 (residual_fea[1])); +// else SPRINTF (levelset_resid, ", %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), log10 (residual_fea[1]), log10 (residual_fea[2])); // } if (adjoint) { /*--- Adjoint coefficients ---*/ - sprintf (adjoint_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, 0.0", Total_Sens_Geo, Total_Sens_Mach, Total_Sens_AoA, Total_Sens_Press, Total_Sens_Temp); + SPRINTF (adjoint_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, 0.0", Total_Sens_Geo, Total_Sens_Mach, Total_Sens_AoA, Total_Sens_Press, Total_Sens_Temp); /*--- Adjoint flow residuals ---*/ if (nDim == 2) { - if (compressible) sprintf (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, 0.0", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]), log10 (residual_adjflow[3]) ); - if (incompressible || freesurface) sprintf (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, 0.0, 0.0", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]) ); + if (compressible) SPRINTF (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, 0.0", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]), log10 (residual_adjflow[3]) ); + if (incompressible || freesurface) SPRINTF (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, 0.0, 0.0", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]) ); } else { - if (compressible) sprintf (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]), log10 (residual_adjflow[3]), log10 (residual_adjflow[4]) ); - if (incompressible || freesurface) sprintf (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, 0.0", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]), log10 (residual_adjflow[3]) ); + if (compressible) SPRINTF (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]), log10 (residual_adjflow[3]), log10 (residual_adjflow[4]) ); + if (incompressible || freesurface) SPRINTF (adj_flow_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, 0.0", log10 (residual_adjflow[0]), log10 (residual_adjflow[1]), log10 (residual_adjflow[2]), log10 (residual_adjflow[3]) ); } /*--- Adjoint turbulent residuals ---*/ if (turbulent) if (!config[val_iZone]->GetFrozen_Visc()) - sprintf (adj_turb_resid, ", %12.10f", log10 (residual_adjturbulent[0])); + SPRINTF (adj_turb_resid, ", %12.10f", log10 (residual_adjturbulent[0])); /*--- Adjoint free surface residuals ---*/ - if (freesurface) sprintf (adj_levelset_resid, ", %12.10f", log10 (residual_adjlevelset[0])); + if (freesurface) SPRINTF (adj_levelset_resid, ", %12.10f", log10 (residual_adjlevelset[0])); } break; @@ -4902,25 +4902,25 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Direct coefficients ---*/ if (config[val_iZone]->GetKind_Solver() == TNE2_NAVIER_STOKES) { if (!(inv_design)) - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_Heat, Total_MaxHeat); else - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff, Total_Heat, Total_MaxHeat, Total_HeatFluxDiff); } else - sprintf (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", + SPRINTF (direct_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", Total_CLift, Total_CDrag, Total_CSideForce, Total_CMx, Total_CMy, Total_CMz, Total_CFx, Total_CFy, Total_CFz, Total_CEff); /*--- Direct problem residual ---*/ for (iVar = 0; iVar < nSpecies+nDim+2; iVar++) { - sprintf (resid_aux, ", %12.10f", log10 (residual_TNE2[iVar])); + SPRINTF (resid_aux, ", %12.10f", log10 (residual_TNE2[iVar])); if (iVar == 0) strcpy(flow_resid, resid_aux); else strcat(flow_resid, resid_aux); } @@ -4928,11 +4928,11 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (adjoint) { /*--- Adjoint coefficients ---*/ - sprintf (adjoint_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, 0.0", Total_Sens_Geo, Total_Sens_Mach, Total_Sens_AoA, Total_Sens_Press, Total_Sens_Temp); + SPRINTF (adjoint_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, 0.0", Total_Sens_Geo, Total_Sens_Mach, Total_Sens_AoA, Total_Sens_Press, Total_Sens_Temp); /*--- Adjoint flow residuals ---*/ for (iVar = 0; iVar < nSpecies+nDim+2; iVar++) { - sprintf (resid_aux, ", %12.10f", log10 (residual_adjTNE2[iVar])); + SPRINTF (resid_aux, ", %12.10f", log10 (residual_adjTNE2[iVar])); if (iVar == 0) strcpy(adj_flow_resid, resid_aux); else strcat(adj_flow_resid, resid_aux); } @@ -4942,35 +4942,35 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, case WAVE_EQUATION: - sprintf (direct_coeff, ", %12.10f", Total_CWave); - sprintf (wave_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_wave[0]), log10 (residual_wave[1]), dummy, dummy, dummy ); + SPRINTF (direct_coeff, ", %12.10f", Total_CWave); + SPRINTF (wave_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_wave[0]), log10 (residual_wave[1]), dummy, dummy, dummy ); break; case HEAT_EQUATION: - sprintf (direct_coeff, ", %12.10f", Total_CHeat); - sprintf (heat_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_heat[0]), dummy, dummy, dummy, dummy ); + SPRINTF (direct_coeff, ", %12.10f", Total_CHeat); + SPRINTF (heat_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_heat[0]), dummy, dummy, dummy, dummy ); break; case LINEAR_ELASTICITY: - sprintf (direct_coeff, ", %12.10f", Total_CFEA); - sprintf (fea_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), dummy, dummy, dummy, dummy ); + SPRINTF (direct_coeff, ", %12.10f", Total_CFEA); + SPRINTF (fea_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), dummy, dummy, dummy, dummy ); break; case FEM_ELASTICITY: - sprintf (direct_coeff, ", %12.10f", Total_CFEM); + SPRINTF (direct_coeff, ", %12.10f", Total_CFEM); /*--- FEM residual ---*/ if (nDim == 2) { - if (linear_analysis) sprintf (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), dummy, dummy, dummy); - if (nonlinear_analysis) sprintf (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), log10 (residual_fem[2]), dummy, dummy); + if (linear_analysis) SPRINTF (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), dummy, dummy, dummy); + if (nonlinear_analysis) SPRINTF (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), log10 (residual_fem[2]), dummy, dummy); } else { - sprintf (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), log10 (residual_fem[2]), dummy, dummy); + SPRINTF (fem_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fem[0]), log10 (residual_fem[1]), log10 (residual_fem[2]), dummy, dummy); } break; @@ -5678,7 +5678,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, void COutput::SetCFL_Number(CSolver ****solver_container, CConfig **config, unsigned short val_iZone) { - double CFLFactor = 1.0, power = 1.0, CFL = 0.0, CFLMin = 0.0, CFLMax = 0.0, Div = 1.0, Diff = 0.0, MGFactor[100]; + su2double CFLFactor = 1.0, power = 1.0, CFL = 0.0, CFLMin = 0.0, CFLMax = 0.0, Div = 1.0, Diff = 0.0, MGFactor[100]; unsigned short iMesh; unsigned short FinestMesh = config[val_iZone]->GetFinestMesh(); @@ -5783,7 +5783,7 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, /*--- Initialize variables to store information from all domains (direct solution) ---*/ - double Total_CLift = 0.0, Total_CDrag = 0.0, Total_CSideForce = 0.0, Total_CMx = 0.0, Total_CMy = 0.0, Total_CMz = 0.0, Total_CEff = 0.0, Total_CFx = 0.0, Total_CFy = 0.0, Total_CFz = 0.0, + su2double Total_CLift = 0.0, Total_CDrag = 0.0, Total_CSideForce = 0.0, Total_CMx = 0.0, Total_CMy = 0.0, Total_CMz = 0.0, Total_CEff = 0.0, Total_CFx = 0.0, Total_CFy = 0.0, Total_CFz = 0.0, Inv_CLift = 0.0, Inv_CDrag = 0.0, Inv_CSideForce = 0.0, Inv_CMx = 0.0, Inv_CMy = 0.0, Inv_CMz = 0.0, Inv_CEff = 0.0, Inv_CFx = 0.0, Inv_CFy = 0.0, Inv_CFz = 0.0, *Surface_CLift = NULL, *Surface_CDrag = NULL, *Surface_CSideForce = NULL, *Surface_CEff = NULL, *Surface_CFx = NULL, *Surface_CFy = NULL, *Surface_CFz = NULL, *Surface_CMx = NULL, *Surface_CMy = NULL, *Surface_CMz = NULL, *Surface_CLift_Inv = NULL, *Surface_CDrag_Inv = NULL, *Surface_CSideForce_Inv = NULL, *Surface_CEff_Inv = NULL, *Surface_CFx_Inv = NULL, *Surface_CFy_Inv = NULL, *Surface_CFz_Inv = NULL, *Surface_CMx_Inv = NULL, *Surface_CMy_Inv = NULL, *Surface_CMz_Inv = NULL; @@ -5792,27 +5792,27 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, /*--- Allocate memory for the coefficients being monitored ---*/ - Surface_CLift = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CDrag = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CSideForce = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CEff = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFx = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFy = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFz = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMx = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMy = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMz = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - - Surface_CLift_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CDrag_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CSideForce_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CEff_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFx_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFy_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CFz_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMx_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMy_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; - Surface_CMz_Inv = new double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CLift = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CDrag = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CSideForce = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CEff = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFx = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFy = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFz = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMx = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMy = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMz = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + + Surface_CLift_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CDrag_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CSideForce_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CEff_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFx_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFy_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CFz_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMx_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMy_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; + Surface_CMz_Inv = new su2double[config[ZONE_0]->GetnMarker_Monitoring()]; /*--- Flow solution coefficients ---*/ @@ -6195,21 +6195,21 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Total CL: "; Breakdown_file.width(11); Breakdown_file << Total_CLift; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CLift*100.0)/(Total_CLift+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CLift*100.0)/(Total_CLift+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CLift; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CLift*100.0)/(Total_CLift+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CLift*100.0)/(Total_CLift+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CLift-Inv_CLift << endl; Breakdown_file << "Total CD: "; Breakdown_file.width(11); Breakdown_file << Total_CDrag; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CDrag*100.0)/(Total_CDrag+EPS)) << "%): ";; + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CDrag*100.0)/(Total_CDrag+EPS)) << "%): ";; Breakdown_file.width(11); Breakdown_file << Inv_CDrag; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CDrag*100.0)/(Total_CDrag+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CDrag*100.0)/(Total_CDrag+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CDrag-Inv_CDrag << endl; @@ -6217,11 +6217,11 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Total CSF: "; Breakdown_file.width(11); Breakdown_file << Total_CSideForce; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CSideForce*100.0)/(Total_CSideForce+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CSideForce*100.0)/(Total_CSideForce+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CSideForce; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CSideForce*100.0)/(Total_CSideForce+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CSideForce*100.0)/(Total_CSideForce+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CSideForce-Inv_CSideForce << endl; } @@ -6229,11 +6229,11 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Total CL/CD: "; Breakdown_file.width(11); Breakdown_file << Total_CEff; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CEff*100.0)/(Total_CEff+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CEff*100.0)/(Total_CEff+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CEff; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CEff*100.0)/(Total_CEff+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CEff*100.0)/(Total_CEff+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CEff-Inv_CEff << endl; @@ -6241,22 +6241,22 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Total CMx: "; Breakdown_file.width(11); Breakdown_file << Total_CMx; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CMx*100.0)/(Total_CMx+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CMx*100.0)/(Total_CMx+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CMx; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CMx*100.0)/(Total_CMx+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CMx*100.0)/(Total_CMx+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CMx-Inv_CMx << endl; Breakdown_file << "Total CMy: "; Breakdown_file.width(11); Breakdown_file << Total_CMy; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CMy*100.0)/(Total_CMy+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CMy*100.0)/(Total_CMy+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CMy; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CMy*100.0)/(Total_CMy+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CMy*100.0)/(Total_CMy+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CMy-Inv_CMy << endl; } @@ -6264,33 +6264,33 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Total CMz: "; Breakdown_file.width(11); Breakdown_file << Total_CMz; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CMz*100.0)/(Total_CMz+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CMz*100.0)/(Total_CMz+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CMz; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CMz*100.0)/(Total_CMz+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CMz*100.0)/(Total_CMz+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CMz-Inv_CMz << endl; Breakdown_file << "Total CFx: "; Breakdown_file.width(11); Breakdown_file << Total_CFx; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CFx*100.0)/(Total_CFx+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CFx*100.0)/(Total_CFx+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CFx; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CFx*100.0)/(Total_CFx+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CFx*100.0)/(Total_CFx+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CFx-Inv_CFx << endl; Breakdown_file << "Total CFy: "; Breakdown_file.width(11); Breakdown_file << Total_CFy; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CFy*100.0)/(Total_CFy+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CFy*100.0)/(Total_CFy+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CFy; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CFy*100.0)/(Total_CFy+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CFy*100.0)/(Total_CFy+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CFy-Inv_CFy << endl; @@ -6298,11 +6298,11 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Total CFz: "; Breakdown_file.width(11); Breakdown_file << Total_CFz; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Inv_CFz*100.0)/(Total_CFz+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Inv_CFz*100.0)/(Total_CFz+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Inv_CFz; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Inv_CFz*100.0)/(Total_CFz+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Inv_CFz*100.0)/(Total_CFz+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Total_CFz-Inv_CFz << endl; } @@ -6314,56 +6314,56 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "Surface name: " << config[val_iZone]->GetMarker_Monitoring(iMarker_Monitoring) << endl << endl; Breakdown_file << "Total CL ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CLift[iMarker_Monitoring]*100.0)/(Total_CLift+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CLift[iMarker_Monitoring]*100.0)/(Total_CLift+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CLift[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CLift_Inv[iMarker_Monitoring]*100.0)/(Surface_CLift[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CLift_Inv[iMarker_Monitoring]*100.0)/(Surface_CLift[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CLift_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CLift_Inv[iMarker_Monitoring]*100.0)/(Surface_CLift[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CLift_Inv[iMarker_Monitoring]*100.0)/(Surface_CLift[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CLift[iMarker_Monitoring]-Surface_CLift_Inv[iMarker_Monitoring] << endl; Breakdown_file << "Total CD ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CDrag[iMarker_Monitoring]*100.0)/(Total_CDrag+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CDrag[iMarker_Monitoring]*100.0)/(Total_CDrag+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CDrag[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CDrag_Inv[iMarker_Monitoring]*100.0)/(Surface_CDrag[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CDrag_Inv[iMarker_Monitoring]*100.0)/(Surface_CDrag[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CDrag_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CDrag_Inv[iMarker_Monitoring]*100.0)/(Surface_CDrag[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CDrag_Inv[iMarker_Monitoring]*100.0)/(Surface_CDrag[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CDrag[iMarker_Monitoring]-Surface_CDrag_Inv[iMarker_Monitoring] << endl; if (nDim == 3) { Breakdown_file << "Total CSF ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CSideForce[iMarker_Monitoring]*100.0)/(Total_CSideForce+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CSideForce[iMarker_Monitoring]*100.0)/(Total_CSideForce+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CSideForce[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CSideForce_Inv[iMarker_Monitoring]*100.0)/(Surface_CSideForce[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CSideForce_Inv[iMarker_Monitoring]*100.0)/(Surface_CSideForce[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CSideForce_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CSideForce_Inv[iMarker_Monitoring]*100.0)/(Surface_CSideForce[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CSideForce_Inv[iMarker_Monitoring]*100.0)/(Surface_CSideForce[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CSideForce[iMarker_Monitoring]-Surface_CSideForce_Inv[iMarker_Monitoring] << endl; } Breakdown_file << "Total CL/CD ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CEff[iMarker_Monitoring]*100.0)/(Total_CEff+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CEff[iMarker_Monitoring]*100.0)/(Total_CEff+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CEff[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CEff_Inv[iMarker_Monitoring]*100.0)/(Surface_CEff[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CEff_Inv[iMarker_Monitoring]*100.0)/(Surface_CEff[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CEff_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CEff_Inv[iMarker_Monitoring]*100.0)/(Surface_CEff[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CEff_Inv[iMarker_Monitoring]*100.0)/(Surface_CEff[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CEff[iMarker_Monitoring]-Surface_CEff_Inv[iMarker_Monitoring] << endl; @@ -6371,82 +6371,82 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, if (nDim == 3) { Breakdown_file << "Total CMx ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CMx[iMarker_Monitoring]*100.0)/(Total_CMx+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CMx[iMarker_Monitoring]*100.0)/(Total_CMx+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMx[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CMx_Inv[iMarker_Monitoring]*100.0)/(Surface_CMx[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CMx_Inv[iMarker_Monitoring]*100.0)/(Surface_CMx[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMx_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CMx_Inv[iMarker_Monitoring]*100.0)/(Surface_CMx[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CMx_Inv[iMarker_Monitoring]*100.0)/(Surface_CMx[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMx[iMarker_Monitoring]-Surface_CMx_Inv[iMarker_Monitoring] << endl; Breakdown_file << "Total CMy ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CMy[iMarker_Monitoring]*100.0)/(Total_CMy+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CMy[iMarker_Monitoring]*100.0)/(Total_CMy+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMy[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CMy_Inv[iMarker_Monitoring]*100.0)/(Surface_CMy[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CMy_Inv[iMarker_Monitoring]*100.0)/(Surface_CMy[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMy_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CMy_Inv[iMarker_Monitoring]*100.0)/(Surface_CMy[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CMy_Inv[iMarker_Monitoring]*100.0)/(Surface_CMy[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMy[iMarker_Monitoring]-Surface_CMy_Inv[iMarker_Monitoring] << endl; } Breakdown_file << "Total CMz ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CMz[iMarker_Monitoring]*100.0)/(Total_CMz+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CMz[iMarker_Monitoring]*100.0)/(Total_CMz+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMz[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CMz_Inv[iMarker_Monitoring]*100.0)/(Surface_CMz[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CMz_Inv[iMarker_Monitoring]*100.0)/(Surface_CMz[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMz_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CMz_Inv[iMarker_Monitoring]*100.0)/(Surface_CMz[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CMz_Inv[iMarker_Monitoring]*100.0)/(Surface_CMz[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CMz[iMarker_Monitoring]-Surface_CMz_Inv[iMarker_Monitoring] << endl; Breakdown_file << "Total CFx ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CFx[iMarker_Monitoring]*100.0)/(Total_CFx+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CFx[iMarker_Monitoring]*100.0)/(Total_CFx+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFx[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CFx_Inv[iMarker_Monitoring]*100.0)/(Surface_CFx[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CFx_Inv[iMarker_Monitoring]*100.0)/(Surface_CFx[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFx_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CFx_Inv[iMarker_Monitoring]*100.0)/(Surface_CFx[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CFx_Inv[iMarker_Monitoring]*100.0)/(Surface_CFx[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFx[iMarker_Monitoring]-Surface_CFx_Inv[iMarker_Monitoring] << endl; Breakdown_file << "Total CFy ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CFy[iMarker_Monitoring]*100.0)/(Total_CFy+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CFy[iMarker_Monitoring]*100.0)/(Total_CFy+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFy[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CFy_Inv[iMarker_Monitoring]*100.0)/(Surface_CFy[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CFy_Inv[iMarker_Monitoring]*100.0)/(Surface_CFy[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFy_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CFy_Inv[iMarker_Monitoring]*100.0)/(Surface_CFy[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CFy_Inv[iMarker_Monitoring]*100.0)/(Surface_CFy[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFy[iMarker_Monitoring]-Surface_CFy_Inv[iMarker_Monitoring] << endl; if (nDim == 3) { Breakdown_file << "Total CFz ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CFz[iMarker_Monitoring]*100.0)/(Total_CFz+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CFz[iMarker_Monitoring]*100.0)/(Total_CFz+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFz[iMarker_Monitoring]; Breakdown_file << " | Pressure Component ("; - Breakdown_file.width(5); Breakdown_file << int((Surface_CFz_Inv[iMarker_Monitoring]*100.0)/(Surface_CFz[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int((Surface_CFz_Inv[iMarker_Monitoring]*100.0)/(Surface_CFz[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFz_Inv[iMarker_Monitoring]; Breakdown_file << " | Friction Component ("; - Breakdown_file.width(5); Breakdown_file << int(100.0-(Surface_CFz_Inv[iMarker_Monitoring]*100.0)/(Surface_CFz[iMarker_Monitoring]+EPS)); + Breakdown_file.width(5); Breakdown_file << SU2_TYPE::Int(100.0-(Surface_CFz_Inv[iMarker_Monitoring]*100.0)/(Surface_CFz[iMarker_Monitoring]+EPS)); Breakdown_file << "%): "; Breakdown_file.width(11); Breakdown_file << Surface_CFz[iMarker_Monitoring]-Surface_CFz_Inv[iMarker_Monitoring] << endl; } @@ -6691,8 +6691,8 @@ void COutput::SetResult_Files(CSolver ****solver_container, CGeometry ***geometr file was written). ---*/ #ifdef HAVE_MPI - MPI_Bcast(&wrote_base_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&wrote_surf_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&wrote_base_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&wrote_surf_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); #endif } @@ -6863,11 +6863,11 @@ void COutput::SetBaselineResult_Files(CSolver **solver, CGeometry **geometry, CC else filename = config[iZone]->GetAdj_FileName(); if (size > 1) { - sprintf (buffer_char, "_%d", int(rank+1)); + SPRINTF (buffer_char, "_%d", SU2_TYPE::Int(rank+1)); filename = filename + buffer_char; } - sprintf (buffer_char, ".dat"); + SPRINTF (buffer_char, ".dat"); strcpy(out_file, filename.c_str()); strcat(out_file, buffer_char); SetTecplotASCII_LowMemory(config[iZone], geometry[iZone], solver, out_file, false); } @@ -6882,11 +6882,11 @@ void COutput::SetBaselineResult_Files(CSolver **solver, CGeometry **geometry, CC else filename = config[iZone]->GetSurfAdjCoeff_FileName(); if (size > 1) { - sprintf (buffer_char, "_%d", int(rank+1)); + SPRINTF (buffer_char, "_%d", SU2_TYPE::Int(rank+1)); filename = filename + buffer_char; } - sprintf (buffer_char, ".dat"); + SPRINTF (buffer_char, ".dat"); strcpy(out_file, filename.c_str()); strcat(out_file, buffer_char); SetTecplotASCII_LowMemory(config[iZone], geometry[iZone], solver, out_file, true); } @@ -6897,7 +6897,7 @@ void COutput::SetBaselineResult_Files(CSolver **solver, CGeometry **geometry, CC file was written). ---*/ #ifdef HAVE_MPI - MPI_Bcast(&wrote_base_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&wrote_base_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); #endif } @@ -6976,7 +6976,7 @@ void COutput::SetMesh_Files(CGeometry **geometry, CConfig **config, unsigned sho file was written). ---*/ #ifdef HAVE_MPI - MPI_Bcast(&wrote_base_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&wrote_base_file, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); #endif } @@ -6985,7 +6985,7 @@ void COutput::SetMesh_Files(CGeometry **geometry, CConfig **config, unsigned sho void COutput::SetMassFlowRate(CSolver *solver_container, CGeometry *geometry, CConfig *config) { unsigned short iDim, iMarker_monitor, iMarker; unsigned long iVertex, iPoint; - double Vector[3], Total_Mdot=0.0; + su2double Vector[3], Total_Mdot=0.0; unsigned short nDim = geometry->GetnDim(); for (iMarker = 0; iMarker< config->GetnMarker_All(); iMarker++) { @@ -7006,8 +7006,8 @@ void COutput::SetMassFlowRate(CSolver *solver_container, CGeometry *geometry, CC #ifdef HAVE_MPI /*--- Add AllBound information using all the nodes ---*/ - double My_Total_Mdot = Total_Mdot; Total_Mdot = 0.0; - MPI_Allreduce(&My_Total_Mdot, &Total_Mdot, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + su2double My_Total_Mdot = Total_Mdot; Total_Mdot = 0.0; + SU2_MPI::Allreduce(&My_Total_Mdot, &Total_Mdot, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif /*--- Set the output: reusing same variable from OneDimensionalOutput code ---*/ solver_container->SetOneD_MassFlowRate(Total_Mdot); @@ -7017,7 +7017,7 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr unsigned long iVertex, iPoint; unsigned short iDim, iMarker, Out1D; - double *Normal = NULL, Area = 0.0, OverArea = 0.0, UnitaryNormal[3], + su2double *Normal = NULL, Area = 0.0, OverArea = 0.0, UnitaryNormal[3], Stag_Pressure, Mach, Temperature, Pressure = 0.0, Density = 0.0, Velocity2, Enthalpy, RhoU, U,// local values at each node (Velocity2 = V^2). U = normal velocity SumPressure = 0.0, SumStagPressure = 0.0, SumArea = 0.0, SumMach = 0.0, SumTemperature = 0.0, SumForUref = 0.0, SumRhoU = 0.0, SumEnthalpy = 0.0,// sum of (local value ) * (dA) (integral) AveragePressure = 0.0, AverageMach = 0.0, AverageTemperature = 0.0, MassFlowRate = 0.0, // Area Averaged value ( sum / A ) @@ -7026,7 +7026,7 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); - double Gamma = config->GetGamma(); + su2double Gamma = config->GetGamma(); unsigned short nDim = geometry->GetnDim(); @@ -7113,23 +7113,23 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr /*--- Add AllBound information using all the nodes ---*/ - double My_AveragePressure = AveragePressure; AveragePressure = 0.0; - double My_AverageMach = AverageMach; AverageMach = 0.0; - double My_AverageTemperature = AverageTemperature; AverageTemperature = 0.0; - double My_MassFlowRate = MassFlowRate; MassFlowRate = 0.0; - double My_PressureRef = PressureRef; PressureRef = 0.0; - double My_VelocityRef = VelocityRef; VelocityRef = 0.0; - double My_EnthalpyRef = EnthalpyRef; EnthalpyRef = 0.0; - double My_DensityRef = DensityRef; DensityRef = 0.0; - - MPI_Allreduce(&My_AveragePressure, &AveragePressure, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_AverageMach, &AverageMach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_AverageTemperature, &AverageTemperature, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_MassFlowRate, &MassFlowRate, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_PressureRef, &PressureRef, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_VelocityRef, &VelocityRef, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_EnthalpyRef , &EnthalpyRef , 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&My_DensityRef , &DensityRef , 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + su2double My_AveragePressure = AveragePressure; AveragePressure = 0.0; + su2double My_AverageMach = AverageMach; AverageMach = 0.0; + su2double My_AverageTemperature = AverageTemperature; AverageTemperature = 0.0; + su2double My_MassFlowRate = MassFlowRate; MassFlowRate = 0.0; + su2double My_PressureRef = PressureRef; PressureRef = 0.0; + su2double My_VelocityRef = VelocityRef; VelocityRef = 0.0; + su2double My_EnthalpyRef = EnthalpyRef; EnthalpyRef = 0.0; + su2double My_DensityRef = DensityRef; DensityRef = 0.0; + + SU2_MPI::Allreduce(&My_AveragePressure, &AveragePressure, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_AverageMach, &AverageMach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_AverageTemperature, &AverageTemperature, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_MassFlowRate, &MassFlowRate, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_PressureRef, &PressureRef, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_VelocityRef, &VelocityRef, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_EnthalpyRef , &EnthalpyRef , 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&My_DensityRef , &DensityRef , 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif @@ -7151,9 +7151,9 @@ void COutput::SetForceSections(CSolver *solver_container, CGeometry *geometry, C short iSection, nSection; unsigned long iVertex, iPoint; - double *Plane_P0, *Plane_Normal, MinPlane, MaxPlane, *CPressure, MinXCoord, MaxXCoord, Force[3], ForceInviscid[3], + su2double *Plane_P0, *Plane_Normal, MinPlane, MaxPlane, *CPressure, MinXCoord, MaxXCoord, Force[3], ForceInviscid[3], MomentInviscid[3] = {0.0,0.0,0.0}, MomentDist[3] = {0.0,0.0,0.0}, RefDensity, RefPressure, RefAreaCoeff, *Velocity_Inf, Gas_Constant, Mach2Vel, Mach_Motion, Gamma, RefVel2 = 0.0, factor, NDPressure, *Origin, RefLengthMoment, Alpha, Beta, CDrag_Inv, CLift_Inv, CMy_Inv; - vector Xcoord_Airfoil, Ycoord_Airfoil, Zcoord_Airfoil, Pressure_Airfoil; + vector Xcoord_Airfoil, Ycoord_Airfoil, Zcoord_Airfoil, Pressure_Airfoil; string Marker_Tag, Slice_Filename, Slice_Ext; ofstream Cp_File; unsigned short iDim; @@ -7163,9 +7163,9 @@ void COutput::SetForceSections(CSolver *solver_container, CGeometry *geometry, C bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); - Plane_P0 = new double [3]; - Plane_Normal = new double [3]; - CPressure = new double[geometry->GetnPoint()]; + Plane_P0 = new su2double [3]; + Plane_Normal = new su2double [3]; + CPressure = new su2double[geometry->GetnPoint()]; /*--- Compute some reference quantities and necessary values ---*/ RefDensity = solver_container->GetDensity_Inf(); @@ -7223,7 +7223,7 @@ void COutput::SetForceSections(CSolver *solver_container, CGeometry *geometry, C Plane_Normal[2] = 0.0; Plane_P0[2] = 0.0; Plane_Normal[config->GetAxis_Orientation()] = 1.0; - Plane_P0[config->GetAxis_Orientation()] = MinPlane + iSection*(MaxPlane - MinPlane)/double(nSection-1); + Plane_P0[config->GetAxis_Orientation()] = MinPlane + iSection*(MaxPlane - MinPlane)/su2double(nSection-1); /*--- Compute the airfoil sections (note that we feed in the Cp) ---*/ @@ -7349,7 +7349,7 @@ void COutput::SetCp_InverseDesign(CSolver *solver_container, CGeometry *geometry unsigned short iMarker, icommas, Boundary, iDim; unsigned long iVertex, iPoint, (*Point2Vertex)[2], nPointLocal = 0, nPointGlobal = 0; - double XCoord, YCoord, ZCoord, Pressure, PressureCoeff = 0, Cp, CpTarget, *Normal = NULL, Area, PressDiff; + su2double XCoord, YCoord, ZCoord, Pressure, PressureCoeff = 0, Cp, CpTarget, *Normal = NULL, Area, PressDiff; bool *PointInDomain; string text_line, surfCp_filename; ifstream Surface_file; @@ -7358,7 +7358,7 @@ void COutput::SetCp_InverseDesign(CSolver *solver_container, CGeometry *geometry nPointLocal = geometry->GetnPoint(); #ifdef HAVE_MPI - MPI_Allreduce(&nPointLocal, &nPointGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nPointLocal, &nPointGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else nPointGlobal = nPointLocal; #endif @@ -7410,14 +7410,14 @@ void COutput::SetCp_InverseDesign(CSolver *solver_container, CGeometry *geometry if ((config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) || (config->GetUnsteady_Simulation() == TIME_SPECTRAL)) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.dat", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.dat", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".dat"); + SPRINTF (buffer, ".dat"); strcat (cstr, buffer); @@ -7491,8 +7491,8 @@ void COutput::SetCp_InverseDesign(CSolver *solver_container, CGeometry *geometry } #ifdef HAVE_MPI - double MyPressDiff = PressDiff; PressDiff = 0.0; - MPI_Allreduce(&MyPressDiff, &PressDiff, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + su2double MyPressDiff = PressDiff; PressDiff = 0.0; + SU2_MPI::Allreduce(&MyPressDiff, &PressDiff, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif /*--- Update the total Cp difference coeffient ---*/ @@ -7507,7 +7507,7 @@ void COutput::SetHeat_InverseDesign(CSolver *solver_container, CGeometry *geomet unsigned short iMarker, icommas, Boundary, iDim; unsigned long iVertex, iPoint, (*Point2Vertex)[2], nPointLocal = 0, nPointGlobal = 0; - double XCoord, YCoord, ZCoord, PressureCoeff, HeatFlux = 0.0, HeatFluxDiff, HeatFluxTarget, *Normal = NULL, Area, + su2double XCoord, YCoord, ZCoord, PressureCoeff, HeatFlux = 0.0, HeatFluxDiff, HeatFluxTarget, *Normal = NULL, Area, Pressure, Cf; bool *PointInDomain; string text_line, surfHeatFlux_filename; @@ -7517,7 +7517,7 @@ void COutput::SetHeat_InverseDesign(CSolver *solver_container, CGeometry *geomet nPointLocal = geometry->GetnPoint(); #ifdef HAVE_MPI - MPI_Allreduce(&nPointLocal, &nPointGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nPointLocal, &nPointGlobal, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else nPointGlobal = nPointLocal; #endif @@ -7568,14 +7568,14 @@ void COutput::SetHeat_InverseDesign(CSolver *solver_container, CGeometry *geomet if ((config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) || (config->GetUnsteady_Simulation() == TIME_SPECTRAL)) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.dat", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.dat", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(iExtIter)); } else - sprintf (buffer, ".dat"); + SPRINTF (buffer, ".dat"); strcat (cstr, buffer); @@ -7649,8 +7649,8 @@ void COutput::SetHeat_InverseDesign(CSolver *solver_container, CGeometry *geomet } #ifdef HAVE_MPI - double MyHeatFluxDiff = HeatFluxDiff; HeatFluxDiff = 0.0; - MPI_Allreduce(&MyHeatFluxDiff, &HeatFluxDiff, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + su2double MyHeatFluxDiff = HeatFluxDiff; HeatFluxDiff = 0.0; + SU2_MPI::Allreduce(&MyHeatFluxDiff, &HeatFluxDiff, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif /*--- Update the total HeatFlux difference coeffient ---*/ @@ -7666,7 +7666,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, ofstream EquivArea_file, FuncGrad_file; unsigned short iMarker = 0, iDim; short *AzimuthalAngle = NULL; - double Gamma, auxXCoord, auxYCoord, auxZCoord, InverseDesign = 0.0, DeltaX, Coord_i, Coord_j, jp1Coord, *Coord = NULL, MeanFuntion, + su2double Gamma, auxXCoord, auxYCoord, auxZCoord, InverseDesign = 0.0, DeltaX, Coord_i, Coord_j, jp1Coord, *Coord = NULL, MeanFuntion, *Face_Normal = NULL, auxArea, auxPress, Mach, Beta, R_Plane, Pressure_Inf, ModVelocity_Inf, Velocity_Inf[3], factor, *Xcoord = NULL, *Ycoord = NULL, *Zcoord = NULL, *Pressure = NULL, *FaceArea = NULL, *EquivArea = NULL, *TargetArea = NULL, *NearFieldWeight = NULL, @@ -7676,12 +7676,12 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, unsigned short iPhiAngle; ofstream NearFieldEA_file; ifstream TargetEA_file; - double XCoordBegin_OF = config->GetEA_IntLimit(0); - double XCoordEnd_OF = config->GetEA_IntLimit(1); + su2double XCoordBegin_OF = config->GetEA_IntLimit(0); + su2double XCoordEnd_OF = config->GetEA_IntLimit(1); unsigned short nDim = geometry->GetnDim(); - double AoA = -(config->GetAoA()*PI_NUMBER/180.0); - double EAScaleFactor = config->GetEA_ScaleFactor(); // The EA Obj. Func. should be ~ force based Obj. Func. + su2double AoA = -(config->GetAoA()*PI_NUMBER/180.0); + su2double EAScaleFactor = config->GetEA_ScaleFactor(); // The EA Obj. Func. should be ~ force based Obj. Func. int rank = MESH_0; @@ -7720,18 +7720,18 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Create an array with all the coordinates, points, pressures, face area, equivalent area, and nearfield weight ---*/ - Xcoord = new double[nVertex_NearField]; - Ycoord = new double[nVertex_NearField]; - Zcoord = new double[nVertex_NearField]; + Xcoord = new su2double[nVertex_NearField]; + Ycoord = new su2double[nVertex_NearField]; + Zcoord = new su2double[nVertex_NearField]; AzimuthalAngle = new short[nVertex_NearField]; IdPoint = new unsigned long[nVertex_NearField]; IdDomain = new unsigned long[nVertex_NearField]; - Pressure = new double[nVertex_NearField]; - FaceArea = new double[nVertex_NearField]; - EquivArea = new double[nVertex_NearField]; - TargetArea = new double[nVertex_NearField]; - NearFieldWeight = new double[nVertex_NearField]; - Weight = new double[nVertex_NearField]; + Pressure = new su2double[nVertex_NearField]; + FaceArea = new su2double[nVertex_NearField]; + EquivArea = new su2double[nVertex_NearField]; + TargetArea = new su2double[nVertex_NearField]; + NearFieldWeight = new su2double[nVertex_NearField]; + Weight = new su2double[nVertex_NearField]; /*--- Copy the boundary information to an array ---*/ @@ -7758,17 +7758,17 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Rotate the nearfield cylinder (AoA) only 3D ---*/ - double YcoordRot = Ycoord[nVertex_NearField]; - double ZcoordRot = Xcoord[nVertex_NearField]*sin(AoA) + Zcoord[nVertex_NearField]*cos(AoA); + su2double YcoordRot = Ycoord[nVertex_NearField]; + su2double ZcoordRot = Xcoord[nVertex_NearField]*sin(AoA) + Zcoord[nVertex_NearField]*cos(AoA); /*--- Compute the Azimuthal angle (resolution of degress in the Azimuthal angle)---*/ - double AngleDouble; short AngleInt; + su2double AngleDouble; short AngleInt; AngleDouble = fabs(atan(-YcoordRot/ZcoordRot)*180.0/PI_NUMBER); /*--- Fix an azimuthal line due to misalignments of the near-field ---*/ - double FixAzimuthalLine = config->GetFixAzimuthalLine(); + su2double FixAzimuthalLine = config->GetFixAzimuthalLine(); if ((AngleDouble >= FixAzimuthalLine - 0.1) && (AngleDouble <= FixAzimuthalLine + 0.1)) AngleDouble = FixAzimuthalLine - 0.1; @@ -7820,32 +7820,32 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Send Near-Field vertex information --*/ - MPI_Allreduce(&nLocalVertex_NearField, &nVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_NearField, &MaxLocalVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NearField, &nVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_NearField, &MaxLocalVertex_NearField, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); delete [] Buffer_Send_nVertex; - double *Buffer_Send_Xcoord = new double[MaxLocalVertex_NearField]; - double *Buffer_Send_Ycoord = new double[MaxLocalVertex_NearField]; - double *Buffer_Send_Zcoord = new double[MaxLocalVertex_NearField]; + su2double *Buffer_Send_Xcoord = new su2double[MaxLocalVertex_NearField]; + su2double *Buffer_Send_Ycoord = new su2double[MaxLocalVertex_NearField]; + su2double *Buffer_Send_Zcoord = new su2double[MaxLocalVertex_NearField]; unsigned long *Buffer_Send_IdPoint = new unsigned long [MaxLocalVertex_NearField]; - double *Buffer_Send_Pressure = new double [MaxLocalVertex_NearField]; - double *Buffer_Send_FaceArea = new double[MaxLocalVertex_NearField]; + su2double *Buffer_Send_Pressure = new su2double [MaxLocalVertex_NearField]; + su2double *Buffer_Send_FaceArea = new su2double[MaxLocalVertex_NearField]; - double *Buffer_Receive_Xcoord = NULL; - double *Buffer_Receive_Ycoord = NULL; - double *Buffer_Receive_Zcoord = NULL; + su2double *Buffer_Receive_Xcoord = NULL; + su2double *Buffer_Receive_Ycoord = NULL; + su2double *Buffer_Receive_Zcoord = NULL; unsigned long *Buffer_Receive_IdPoint = NULL; - double *Buffer_Receive_Pressure = NULL; - double *Buffer_Receive_FaceArea = NULL; + su2double *Buffer_Receive_Pressure = NULL; + su2double *Buffer_Receive_FaceArea = NULL; if (rank == MASTER_NODE) { - Buffer_Receive_Xcoord = new double[nProcessor*MaxLocalVertex_NearField]; - Buffer_Receive_Ycoord = new double[nProcessor*MaxLocalVertex_NearField]; - Buffer_Receive_Zcoord = new double[nProcessor*MaxLocalVertex_NearField]; + Buffer_Receive_Xcoord = new su2double[nProcessor*MaxLocalVertex_NearField]; + Buffer_Receive_Ycoord = new su2double[nProcessor*MaxLocalVertex_NearField]; + Buffer_Receive_Zcoord = new su2double[nProcessor*MaxLocalVertex_NearField]; Buffer_Receive_IdPoint = new unsigned long[nProcessor*MaxLocalVertex_NearField]; - Buffer_Receive_Pressure = new double[nProcessor*MaxLocalVertex_NearField]; - Buffer_Receive_FaceArea = new double[nProcessor*MaxLocalVertex_NearField]; + Buffer_Receive_Pressure = new su2double[nProcessor*MaxLocalVertex_NearField]; + Buffer_Receive_FaceArea = new su2double[nProcessor*MaxLocalVertex_NearField]; } unsigned long nBuffer_Xcoord = MaxLocalVertex_NearField; @@ -7885,12 +7885,12 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Send all the information --*/ - MPI_Gather(Buffer_Send_Xcoord, nBuffer_Xcoord, MPI_DOUBLE, Buffer_Receive_Xcoord, nBuffer_Xcoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Ycoord, nBuffer_Ycoord, MPI_DOUBLE, Buffer_Receive_Ycoord, nBuffer_Ycoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Zcoord, nBuffer_Zcoord, MPI_DOUBLE, Buffer_Receive_Zcoord, nBuffer_Zcoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_IdPoint, nBuffer_IdPoint, MPI_UNSIGNED_LONG, Buffer_Receive_IdPoint, nBuffer_IdPoint, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_Pressure, nBuffer_Pressure, MPI_DOUBLE, Buffer_Receive_Pressure, nBuffer_Pressure, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - MPI_Gather(Buffer_Send_FaceArea, nBuffer_FaceArea, MPI_DOUBLE, Buffer_Receive_FaceArea, nBuffer_FaceArea, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Xcoord, nBuffer_Xcoord, MPI_DOUBLE, Buffer_Receive_Xcoord, nBuffer_Xcoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Ycoord, nBuffer_Ycoord, MPI_DOUBLE, Buffer_Receive_Ycoord, nBuffer_Ycoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Zcoord, nBuffer_Zcoord, MPI_DOUBLE, Buffer_Receive_Zcoord, nBuffer_Zcoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_IdPoint, nBuffer_IdPoint, MPI_UNSIGNED_LONG, Buffer_Receive_IdPoint, nBuffer_IdPoint, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Pressure, nBuffer_Pressure, MPI_DOUBLE, Buffer_Receive_Pressure, nBuffer_Pressure, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_FaceArea, nBuffer_FaceArea, MPI_DOUBLE, Buffer_Receive_FaceArea, nBuffer_FaceArea, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); delete [] Buffer_Send_Xcoord; delete [] Buffer_Send_Ycoord; delete [] Buffer_Send_Zcoord; @@ -7900,18 +7900,18 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, if (rank == MASTER_NODE) { - Xcoord = new double[nVertex_NearField]; - Ycoord = new double[nVertex_NearField]; - Zcoord = new double[nVertex_NearField]; + Xcoord = new su2double[nVertex_NearField]; + Ycoord = new su2double[nVertex_NearField]; + Zcoord = new su2double[nVertex_NearField]; AzimuthalAngle = new short[nVertex_NearField]; IdPoint = new unsigned long[nVertex_NearField]; IdDomain = new unsigned long[nVertex_NearField]; - Pressure = new double[nVertex_NearField]; - FaceArea = new double[nVertex_NearField]; - EquivArea = new double[nVertex_NearField]; - TargetArea = new double[nVertex_NearField]; - NearFieldWeight = new double[nVertex_NearField]; - Weight = new double[nVertex_NearField]; + Pressure = new su2double[nVertex_NearField]; + FaceArea = new su2double[nVertex_NearField]; + EquivArea = new su2double[nVertex_NearField]; + TargetArea = new su2double[nVertex_NearField]; + NearFieldWeight = new su2double[nVertex_NearField]; + Weight = new su2double[nVertex_NearField]; nVertex_NearField = 0; for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) @@ -7928,17 +7928,17 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Rotate the nearfield cylinder ---*/ - double YcoordRot = Ycoord[nVertex_NearField]; - double ZcoordRot = Xcoord[nVertex_NearField]*sin(AoA) + Zcoord[nVertex_NearField]*cos(AoA); + su2double YcoordRot = Ycoord[nVertex_NearField]; + su2double ZcoordRot = Xcoord[nVertex_NearField]*sin(AoA) + Zcoord[nVertex_NearField]*cos(AoA); /*--- Compute the Azimuthal angle ---*/ - double AngleDouble; short AngleInt; + su2double AngleDouble; short AngleInt; AngleDouble = fabs(atan(-YcoordRot/ZcoordRot)*180.0/PI_NUMBER); /*--- Fix an azimuthal line due to misalignments of the near-field ---*/ - double FixAzimuthalLine = config->GetFixAzimuthalLine(); + su2double FixAzimuthalLine = config->GetFixAzimuthalLine(); if ((AngleDouble >= FixAzimuthalLine - 0.1) && (AngleDouble <= FixAzimuthalLine + 0.1)) AngleDouble = FixAzimuthalLine - 0.1; @@ -7986,17 +7986,17 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Create vectors and distribute the values among the different PhiAngle queues ---*/ - vector > Xcoord_PhiAngle; Xcoord_PhiAngle.resize(PhiAngleList.size()); - vector > Ycoord_PhiAngle; Ycoord_PhiAngle.resize(PhiAngleList.size()); - vector > Zcoord_PhiAngle; Zcoord_PhiAngle.resize(PhiAngleList.size()); + vector > Xcoord_PhiAngle; Xcoord_PhiAngle.resize(PhiAngleList.size()); + vector > Ycoord_PhiAngle; Ycoord_PhiAngle.resize(PhiAngleList.size()); + vector > Zcoord_PhiAngle; Zcoord_PhiAngle.resize(PhiAngleList.size()); vector > IdPoint_PhiAngle; IdPoint_PhiAngle.resize(PhiAngleList.size()); vector > IdDomain_PhiAngle; IdDomain_PhiAngle.resize(PhiAngleList.size()); - vector > Pressure_PhiAngle; Pressure_PhiAngle.resize(PhiAngleList.size()); - vector > FaceArea_PhiAngle; FaceArea_PhiAngle.resize(PhiAngleList.size()); - vector > EquivArea_PhiAngle; EquivArea_PhiAngle.resize(PhiAngleList.size()); - vector > TargetArea_PhiAngle; TargetArea_PhiAngle.resize(PhiAngleList.size()); - vector > NearFieldWeight_PhiAngle; NearFieldWeight_PhiAngle.resize(PhiAngleList.size()); - vector > Weight_PhiAngle; Weight_PhiAngle.resize(PhiAngleList.size()); + vector > Pressure_PhiAngle; Pressure_PhiAngle.resize(PhiAngleList.size()); + vector > FaceArea_PhiAngle; FaceArea_PhiAngle.resize(PhiAngleList.size()); + vector > EquivArea_PhiAngle; EquivArea_PhiAngle.resize(PhiAngleList.size()); + vector > TargetArea_PhiAngle; TargetArea_PhiAngle.resize(PhiAngleList.size()); + vector > NearFieldWeight_PhiAngle; NearFieldWeight_PhiAngle.resize(PhiAngleList.size()); + vector > Weight_PhiAngle; Weight_PhiAngle.resize(PhiAngleList.size()); /*--- Distribute the values among the different PhiAngles ---*/ @@ -8086,8 +8086,8 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, NearFieldEA_file << endl; for (iVertex = 0; iVertex < EquivArea_PhiAngle[0].size(); iVertex++) { - double XcoordRot = Xcoord_PhiAngle[0][iVertex]*cos(AoA) - Zcoord_PhiAngle[0][iVertex]*sin(AoA); - double XcoordRot_init = Xcoord_PhiAngle[0][0]*cos(AoA) - Zcoord_PhiAngle[0][0]*sin(AoA); + su2double XcoordRot = Xcoord_PhiAngle[0][iVertex]*cos(AoA) - Zcoord_PhiAngle[0][iVertex]*sin(AoA); + su2double XcoordRot_init = Xcoord_PhiAngle[0][0]*cos(AoA) - Zcoord_PhiAngle[0][0]*sin(AoA); if (config->GetSystemMeasurements() == US) NearFieldEA_file << scientific << (XcoordRot - XcoordRot_init) * 12.0; @@ -8107,7 +8107,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, this first implementation requires a complete table (same as the original EA table). so... no interpolation. ---*/ - vector > TargetArea_PhiAngle_Trans; + vector > TargetArea_PhiAngle_Trans; TargetEA_file.open("TargetEA.dat", ios::in); if (TargetEA_file.fail()) { @@ -8132,7 +8132,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, string line; getline(TargetEA_file, line); istringstream is(line); - vector row; + vector row; unsigned short iter = 0; while (is.good()) { @@ -8141,7 +8141,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, istringstream js(token); - double data; + su2double data; js >> data; /*--- The first element in the table is the coordinate (in or m)---*/ @@ -8161,7 +8161,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Divide by the number of Phi angles in the nearfield ---*/ - double PhiFactor = 1.0/double(PhiAngleList.size()); + su2double PhiFactor = 1.0/su2double(PhiAngleList.size()); /*--- Evaluate the objective function ---*/ @@ -8171,8 +8171,8 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, Weight_PhiAngle[iPhiAngle][iVertex] = 1.0; Coord_i = Xcoord_PhiAngle[iPhiAngle][iVertex]; - double Difference = EquivArea_PhiAngle[iPhiAngle][iVertex]-TargetArea_PhiAngle[iPhiAngle][iVertex]; - double percentage = fabs(Difference)*100/fabs(TargetArea_PhiAngle[iPhiAngle][iVertex]); + su2double Difference = EquivArea_PhiAngle[iPhiAngle][iVertex]-TargetArea_PhiAngle[iPhiAngle][iVertex]; + su2double percentage = fabs(Difference)*100/fabs(TargetArea_PhiAngle[iPhiAngle][iVertex]); if ((percentage < 0.1) || (Coord_i < XCoordBegin_OF) || (Coord_i > XCoordEnd_OF)) Difference = 0.0; @@ -8190,8 +8190,8 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, Coord_j = Xcoord_PhiAngle[iPhiAngle][jVertex]; Weight_PhiAngle[iPhiAngle][iVertex] = 1.0; - double Difference = EquivArea_PhiAngle[iPhiAngle][jVertex]-TargetArea_PhiAngle[iPhiAngle][jVertex]; - double percentage = fabs(Difference)*100/fabs(TargetArea_PhiAngle[iPhiAngle][jVertex]); + su2double Difference = EquivArea_PhiAngle[iPhiAngle][jVertex]-TargetArea_PhiAngle[iPhiAngle][jVertex]; + su2double percentage = fabs(Difference)*100/fabs(TargetArea_PhiAngle[iPhiAngle][jVertex]); if ((percentage < 0.1) || (Coord_j < XCoordBegin_OF) || (Coord_j > XCoordEnd_OF)) Difference = 0.0; @@ -8214,8 +8214,8 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, EquivArea_file << fixed << "ZONE T= \"F=" << PhiAngleList[iPhiAngle] << " deg.\"" << endl; for (iVertex = 0; iVertex < Xcoord_PhiAngle[iPhiAngle].size(); iVertex++) { - double XcoordRot = Xcoord_PhiAngle[0][iVertex]*cos(AoA) - Zcoord_PhiAngle[0][iVertex]*sin(AoA); - double XcoordRot_init = Xcoord_PhiAngle[0][0]*cos(AoA) - Zcoord_PhiAngle[0][0]*sin(AoA); + su2double XcoordRot = Xcoord_PhiAngle[0][iVertex]*cos(AoA) - Zcoord_PhiAngle[0][iVertex]*sin(AoA); + su2double XcoordRot_init = Xcoord_PhiAngle[0][0]*cos(AoA) - Zcoord_PhiAngle[0][0]*sin(AoA); if (config->GetSystemMeasurements() == US) EquivArea_file << scientific << (XcoordRot - XcoordRot_init) * 12.0; @@ -8240,7 +8240,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, FuncGrad_file << endl; for (iVertex = 0; iVertex < NearFieldWeight_PhiAngle[0].size(); iVertex++) { - double XcoordRot = Xcoord_PhiAngle[0][iVertex]*cos(AoA) - Zcoord_PhiAngle[0][iVertex]*sin(AoA); + su2double XcoordRot = Xcoord_PhiAngle[0][iVertex]*cos(AoA) - Zcoord_PhiAngle[0][iVertex]*sin(AoA); FuncGrad_file << scientific << XcoordRot; for (iPhiAngle = 0; iPhiAngle < PhiAngleList.size(); iPhiAngle++) FuncGrad_file << scientific << "\t" << NearFieldWeight_PhiAngle[iPhiAngle][iVertex]; @@ -8268,7 +8268,7 @@ void COutput::SetEquivalentArea(CSolver *solver_container, CGeometry *geometry, /*--- Send the value of the NearField coefficient to all the processors ---*/ - MPI_Bcast(&InverseDesign, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&InverseDesign, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); /*--- Store the value of the NearField coefficient ---*/ diff --git a/SU2_CFD/src/output_su2.cpp b/SU2_CFD/src/output_su2.cpp index 24c69aed714..93da18f8c7b 100644 --- a/SU2_CFD/src/output_su2.cpp +++ b/SU2_CFD/src/output_su2.cpp @@ -36,7 +36,7 @@ void COutput::SetSU2_MeshASCII(CConfig *config, CGeometry *geometry) { char cstr[MAX_STRING_SIZE], out_file[MAX_STRING_SIZE]; unsigned long iElem, iPoint, iElem_Bound, nElem_Bound_, vnodes_edge[2], vnodes_triangle[3], vnodes_quad[4], iNode, nElem; unsigned short iMarker, iDim, nDim = geometry->GetnDim(), iChar, iPeriodic, nPeriodic = 0, VTK_Type, nMarker_; - double *center, *angles, *transl; + su2double *center, *angles, *transl; ofstream output_file; ifstream input_file; string Grid_Marker, text_line, Marker_Tag, str; diff --git a/SU2_CFD/src/output_tecplot.cpp b/SU2_CFD/src/output_tecplot.cpp index 0ebfd60a82d..f9a25537d05 100644 --- a/SU2_CFD/src/output_tecplot.cpp +++ b/SU2_CFD/src/output_tecplot.cpp @@ -87,7 +87,7 @@ void COutput::SetTecplotASCII(CConfig *config, CGeometry *geometry, CSolver **so if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS || Kind_Solver == ADJ_EULER || Kind_Solver == ADJ_NAVIER_STOKES || Kind_Solver == ADJ_RANS) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { - sprintf (buffer, "_%d", int(val_iZone)); + SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); } @@ -95,21 +95,21 @@ void COutput::SetTecplotASCII(CConfig *config, CGeometry *geometry, CSolver **so if (config->GetKind_SU2() == SU2_SOL) { val_iZone = iExtIter; } - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.dat", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.dat", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.dat", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.dat", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.dat", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(val_iZone)); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - if (int(iExtIter) < 10) sprintf (buffer, "_0000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.dat", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.dat", int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) < 10) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(iExtIter)); } - else { sprintf (buffer, ".dat"); } + else { SPRINTF (buffer, ".dat"); } strcat(cstr, buffer); @@ -280,12 +280,12 @@ void COutput::SetTecplotASCII(CConfig *config, CGeometry *geometry, CSolver **so /*--- Write the header ---*/ Tecplot_File << "ZONE "; if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { - Tecplot_File << "STRANDID="<GetUnsteady_Simulation() == TIME_SPECTRAL) { /*--- Compute period of oscillation & compute time interval using nTimeInstances ---*/ - double period = config->GetTimeSpectral_Period(); - double deltaT = period/(double)(config->GetnTimeInstances()); - Tecplot_File << "STRANDID="<GetTimeSpectral_Period(); + su2double deltaT = period/(su2double)(config->GetnTimeInstances()); + Tecplot_File << "STRANDID="<GetKind_TimeIntScheme_AdjLevelSet() == EULER_IMPLICIT) { /*--- Point to point Jacobians ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } - Jacobian_ii = new double* [nVar]; - Jacobian_ij = new double* [nVar]; - Jacobian_ji = new double* [nVar]; - Jacobian_jj = new double* [nVar]; + Jacobian_ii = new su2double* [nVar]; + Jacobian_ij = new su2double* [nVar]; + Jacobian_ji = new su2double* [nVar]; + Jacobian_jj = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ii[iVar] = new double [nVar]; - Jacobian_ij[iVar] = new double [nVar]; - Jacobian_ji[iVar] = new double [nVar]; - Jacobian_jj[iVar] = new double [nVar]; + Jacobian_ii[iVar] = new su2double [nVar]; + Jacobian_ij[iVar] = new su2double [nVar]; + Jacobian_ji[iVar] = new su2double [nVar]; + Jacobian_jj[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ @@ -123,13 +123,13 @@ CAdjLevelSetSolver::CAdjLevelSetSolver(CGeometry *geometry, CConfig *config, uns /*--- Computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } } @@ -220,7 +220,7 @@ CAdjLevelSetSolver::~CAdjLevelSetSolver(void) { } void CAdjLevelSetSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -243,8 +243,8 @@ void CAdjLevelSetSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -255,7 +255,7 @@ void CAdjLevelSetSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -334,7 +334,7 @@ void CAdjLevelSetSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) void CAdjLevelSetSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; #ifdef HAVE_MPI @@ -358,8 +358,8 @@ void CAdjLevelSetSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig * nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -370,7 +370,7 @@ void CAdjLevelSetSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig * #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -448,7 +448,7 @@ void CAdjLevelSetSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig * void CAdjLevelSetSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; #ifdef HAVE_MPI @@ -456,9 +456,9 @@ void CAdjLevelSetSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig MPI_Status status; #endif - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { @@ -476,8 +476,8 @@ void CAdjLevelSetSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -489,7 +489,7 @@ void CAdjLevelSetSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -587,7 +587,7 @@ void CAdjLevelSetSolver::Preprocessing(CGeometry *geometry, CSolver **solver_con } void CAdjLevelSetSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { - double *LevelSet_var_i, *LevelSet_var_j, *U_i, *U_j, **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j, DensityInc_i, DensityInc_j; + su2double *LevelSet_var_i, *LevelSet_var_j, *U_i, *U_j, **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j, DensityInc_i, DensityInc_j; unsigned long iEdge, iPoint, jPoint; unsigned short iDim, iVar; @@ -658,10 +658,10 @@ void CAdjLevelSetSolver::Source_Residual(CGeometry *geometry, CSolver **solver_c CConfig *config, unsigned short iMesh) { // unsigned short iVar, iDim; // unsigned long iPoint; -// double epsilon, DeltaDirac, lambda, dRho_dPhi, dMud_Phi, Vol, DiffLevelSet, LevelSet, *AdjMeanFlow, **AdjLevelSetGradient, **AdjMeanFlowGradient, +// su2double epsilon, DeltaDirac, lambda, dRho_dPhi, dMud_Phi, Vol, DiffLevelSet, LevelSet, *AdjMeanFlow, **AdjLevelSetGradient, **AdjMeanFlowGradient, // Density, Velocity[3] = {0.0,0.0,0.0}, ProjAdj, dFc_dRho[3][4], ProjFlux; // -// double Froude2 = config->GetFroude()*config->GetFroude(); +// su2double Froude2 = config->GetFroude()*config->GetFroude(); // // for (iVar = 0; iVar < nVar; iVar++) // Residual[iVar] = 0; @@ -744,14 +744,14 @@ void CAdjLevelSetSolver::Source_Template(CGeometry *geometry, CSolver **solver_c void CAdjLevelSetSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; + su2double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - U_domain = new double[solver_container[FLOW_SOL]->GetnVar()]; - U_wall = new double[solver_container[FLOW_SOL]->GetnVar()]; - LevelSet_domain = new double[1]; - LevelSet_wall = new double[1]; + U_domain = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + U_wall = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + LevelSet_domain = new su2double[1]; + LevelSet_wall = new su2double[1]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -791,14 +791,14 @@ void CAdjLevelSetSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_cont CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; + su2double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - U_domain = new double[solver_container[FLOW_SOL]->GetnVar()]; - U_wall = new double[solver_container[FLOW_SOL]->GetnVar()]; - LevelSet_domain = new double[1]; - LevelSet_wall = new double[1]; + U_domain = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + U_wall = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + LevelSet_domain = new su2double[1]; + LevelSet_wall = new su2double[1]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -837,14 +837,14 @@ void CAdjLevelSetSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_cont void CAdjLevelSetSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; + su2double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - U_domain = new double[solver_container[FLOW_SOL]->GetnVar()]; - U_wall = new double[solver_container[FLOW_SOL]->GetnVar()]; - LevelSet_domain = new double[1]; - LevelSet_wall = new double[1]; + U_domain = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + U_wall = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + LevelSet_domain = new su2double[1]; + LevelSet_wall = new su2double[1]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -883,14 +883,14 @@ void CAdjLevelSetSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_ void CAdjLevelSetSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; + su2double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - U_domain = new double[solver_container[FLOW_SOL]->GetnVar()]; - U_wall = new double[solver_container[FLOW_SOL]->GetnVar()]; - LevelSet_domain = new double[1]; - LevelSet_wall = new double[1]; + U_domain = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + U_wall = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + LevelSet_domain = new su2double[1]; + LevelSet_wall = new su2double[1]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -929,14 +929,14 @@ void CAdjLevelSetSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_cont void CAdjLevelSetSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; + su2double *U_domain, *U_wall, *LevelSet_domain, *LevelSet_wall; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - U_domain = new double[solver_container[FLOW_SOL]->GetnVar()]; - U_wall = new double[solver_container[FLOW_SOL]->GetnVar()]; - LevelSet_domain = new double[1]; - LevelSet_wall = new double[1]; + U_domain = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + U_wall = new su2double[solver_container[FLOW_SOL]->GetnVar()]; + LevelSet_domain = new su2double[1]; + LevelSet_wall = new su2double[1]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -995,7 +995,7 @@ void CAdjLevelSetSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_contain void CAdjLevelSetSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { unsigned long iPoint; - double Delta = 0.0, Vol; + su2double Delta = 0.0, Vol; /*--- Set maximum residual to zero ---*/ @@ -1054,7 +1054,7 @@ void CAdjLevelSetSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver ** void CAdjLevelSetSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem) { unsigned long iPoint; - double *U_time_nM1, *U_time_n, *U_time_nP1, Volume_nM1, Volume_n, Volume_nP1, TimeStep; + su2double *U_time_nM1, *U_time_n, *U_time_nP1, Volume_nM1, Volume_n, Volume_nP1, TimeStep; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool Grid_Movement = config->GetGrid_Movement(); diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 6f0491c89a6..754a7bd03f5 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -55,7 +55,7 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned unsigned short iDim, iVar, iMarker, nLineLets; ifstream restart_file; string filename, AdjExt; - double dull_val; + su2double dull_val; bool restart = config->GetRestart(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -98,52 +98,52 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned node = new CVariable*[nPoint]; /*--- Define some auxiliary vectors related to the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; - Res_Visc_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; - Res_Conv_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; - Res_Visc_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Res_Conv_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; + Res_Visc_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; + Res_Conv_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; + Res_Visc_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary arrays related to the flow solution ---*/ - FlowPrimVar_i = new double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_i[iVar] = 0.0; - FlowPrimVar_j = new double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_j[iVar] = 0.0; + FlowPrimVar_i = new su2double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_i[iVar] = 0.0; + FlowPrimVar_j = new su2double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Define some auxiliary vectors related to the undivided lapalacian ---*/ if (config->GetKind_ConvNumScheme_AdjFlow() == SPACE_CENTERED) { - iPoint_UndLapl = new double [nPoint]; - jPoint_UndLapl = new double [nPoint]; + iPoint_UndLapl = new su2double [nPoint]; + jPoint_UndLapl = new su2double [nPoint]; } /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; /*--- Point to point Jacobians. These are always defined because they are also used for sensitivity calculations. ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); @@ -151,15 +151,15 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Jacobians and vector structures for implicit computations ---*/ if (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT) { - Jacobian_ii = new double* [nVar]; - Jacobian_ij = new double* [nVar]; - Jacobian_ji = new double* [nVar]; - Jacobian_jj = new double* [nVar]; + Jacobian_ii = new su2double* [nVar]; + Jacobian_ij = new su2double* [nVar]; + Jacobian_ji = new su2double* [nVar]; + Jacobian_jj = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ii[iVar] = new double [nVar]; - Jacobian_ij[iVar] = new double [nVar]; - Jacobian_ji[iVar] = new double [nVar]; - Jacobian_jj[iVar] = new double [nVar]; + Jacobian_ii[iVar] = new su2double [nVar]; + Jacobian_ij[iVar] = new su2double [nVar]; + Jacobian_ji[iVar] = new su2double [nVar]; + Jacobian_jj[iVar] = new su2double [nVar]; } if (rank == MASTER_NODE) @@ -173,9 +173,9 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned } if (axisymmetric) { - Jacobian_Axisymmetric = new double* [nVar]; + Jacobian_Axisymmetric = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Jacobian_Axisymmetric[iVar] = new double [nVar]; + Jacobian_Axisymmetric[iVar] = new su2double [nVar]; } } else { if (rank == MASTER_NODE) @@ -185,25 +185,25 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Sensitivity definition and coefficient in all the markers ---*/ - CSensitivity = new double* [nMarker]; + CSensitivity = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CSensitivity[iMarker] = new double [geometry->nVertex[iMarker]]; + CSensitivity[iMarker] = new su2double [geometry->nVertex[iMarker]]; } - Sens_Geo = new double[nMarker]; - Sens_Mach = new double[nMarker]; - Sens_AoA = new double[nMarker]; - Sens_Press = new double[nMarker]; - Sens_Temp = new double[nMarker]; + Sens_Geo = new su2double[nMarker]; + Sens_Mach = new su2double[nMarker]; + Sens_AoA = new su2double[nMarker]; + Sens_Press = new su2double[nMarker]; + Sens_Temp = new su2double[nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { Sens_Geo[iMarker] = 0.0; @@ -217,7 +217,7 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Adjoint flow at the inifinity, initialization stuff ---*/ PsiRho_Inf = 0.0; PsiE_Inf = 0.0; - Phi_Inf = new double [nDim]; + Phi_Inf = new su2double [nDim]; Phi_Inf[0] = 0.0; Phi_Inf[1] = 0.0; if (nDim == 3) Phi_Inf[2] = 0.0; @@ -350,7 +350,7 @@ void CAdjEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_contain void CAdjEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -373,8 +373,8 @@ void CAdjEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -386,7 +386,7 @@ void CAdjEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -466,7 +466,7 @@ void CAdjEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { void CAdjEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI @@ -490,8 +490,8 @@ void CAdjEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -503,7 +503,7 @@ void CAdjEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -582,7 +582,7 @@ void CAdjEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) void CAdjEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; #ifdef HAVE_MPI @@ -606,8 +606,8 @@ void CAdjEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *con nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -619,7 +619,7 @@ void CAdjEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *con #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -698,7 +698,7 @@ void CAdjEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *con void CAdjEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; #ifdef HAVE_MPI @@ -706,9 +706,9 @@ void CAdjEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *co MPI_Status status; #endif - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; for (iMarker = 0; iMarker < nMarker; iMarker++) { @@ -726,8 +726,8 @@ void CAdjEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *co nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -740,7 +740,7 @@ void CAdjEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *co #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -821,7 +821,7 @@ void CAdjEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *co void CAdjEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Undivided_Laplacian = NULL, *Buffer_Send_Undivided_Laplacian = NULL; #ifdef HAVE_MPI @@ -845,8 +845,8 @@ void CAdjEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig * nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Undivided_Laplacian = new double [nBufferR_Vector]; - Buffer_Send_Undivided_Laplacian = new double[nBufferS_Vector]; + Buffer_Receive_Undivided_Laplacian = new su2double [nBufferR_Vector]; + Buffer_Send_Undivided_Laplacian = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -858,7 +858,7 @@ void CAdjEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig * #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Undivided_Laplacian, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -937,7 +937,7 @@ void CAdjEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig * void CAdjEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *config) { unsigned short iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; + su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -960,8 +960,8 @@ void CAdjEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *c nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Lambda = new double [nBufferR_Vector]; - Buffer_Send_Lambda = new double[nBufferS_Vector]; + Buffer_Receive_Lambda = new su2double [nBufferR_Vector]; + Buffer_Send_Lambda = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -972,7 +972,7 @@ void CAdjEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *c #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1005,7 +1005,7 @@ void CAdjEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *c void CAdjEulerSolver::SetForceProj_Vector(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - double *ForceProj_Vector, x = 0.0, y = 0.0, z = 0.0, *Normal, CD, CL, Cp, CpTarget, + su2double *ForceProj_Vector, x = 0.0, y = 0.0, z = 0.0, *Normal, CD, CL, Cp, CpTarget, CT, CQ, x_origin, y_origin, z_origin, WDrag, Area, invCD, CLCD2, invCQ, CTRCQ2; unsigned short iMarker; unsigned long iVertex, iPoint; @@ -1016,12 +1016,12 @@ void CAdjEulerSolver::SetForceProj_Vector(CGeometry *geometry, CSolver **solver_ MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - double Alpha = (config->GetAoA()*PI_NUMBER)/180.0; - double Beta = (config->GetAoS()*PI_NUMBER)/180.0; - double RefLengthMoment = config->GetRefLengthMoment(); - double *RefOriginMoment = config->GetRefOriginMoment(0); + su2double Alpha = (config->GetAoA()*PI_NUMBER)/180.0; + su2double Beta = (config->GetAoS()*PI_NUMBER)/180.0; + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double *RefOriginMoment = config->GetRefOriginMoment(0); - ForceProj_Vector = new double[nDim]; + ForceProj_Vector = new su2double[nDim]; /*--- Compute coefficients needed for objective function evaluation. ---*/ @@ -1152,27 +1152,27 @@ void CAdjEulerSolver::SetForceProj_Vector(CGeometry *geometry, CSolver **solver_ void CAdjEulerSolver::SetIntBoundary_Jump(CGeometry *geometry, CSolver **solver_container, CConfig *config) { unsigned short iMarker, iVar, jVar, kVar, iDim, jDim, iIndex; unsigned long iVertex, iPoint, iPointNearField, nPointNearField = 0; - double factor = 1.0, AngleDouble, data, aux, *IntBound_Vector, *coord, *FlowSolution, WeightSB, MinDist = 1E6, Dist, DerivativeOF = 0.0, *Normal, Area, UnitNormal[3], velocity[3], Energy, Rho, sqvel, proj_vel, phi, a1, a2; - double **A, **M, **AM, *b; + su2double factor = 1.0, AngleDouble, data, aux, *IntBound_Vector, *coord, *FlowSolution, WeightSB, MinDist = 1E6, Dist, DerivativeOF = 0.0, *Normal, Area, UnitNormal[3], velocity[3], Energy, Rho, sqvel, proj_vel, phi, a1, a2; + su2double **A, **M, **AM, *b; short AngleInt = 0, IndexNF_inv[180], iColumn; ifstream index_file; string text_line; - vector > NearFieldWeight; - vector CoordNF; + vector > NearFieldWeight; + vector CoordNF; vector IndexNF; - IntBound_Vector = new double [nVar]; + IntBound_Vector = new su2double [nVar]; /*--- Allocate vectors and matrices ---*/ - b = new double [nVar]; - A = new double* [nVar]; - M = new double* [nVar]; - AM = new double* [nVar]; + b = new su2double [nVar]; + A = new su2double* [nVar]; + M = new su2double* [nVar]; + AM = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - A[iVar] = new double [nVar]; - M[iVar] = new double [nVar]; - AM[iVar] = new double [nVar]; + A[iVar] = new su2double [nVar]; + M[iVar] = new su2double [nVar]; + AM[iVar] = new su2double [nVar]; } /*--- If equivalent area objective function, read the value of @@ -1198,11 +1198,11 @@ void CAdjEulerSolver::SetIntBoundary_Jump(CGeometry *geometry, CSolver **solver_ if (nPointNearField == 0) { is >> data; // The first column is related with the coordinate - while (is.good()) { is >> data; IndexNF.push_back(int(data)); } + while (is.good()) { is >> data; IndexNF.push_back(SU2_TYPE::Int(data)); } } else { is >> data; CoordNF.push_back(data); // The first column is the point coordinate - vector row; + vector row; while (is.good()) { is >> data; row.push_back(data); } NearFieldWeight.push_back(row); } @@ -1248,7 +1248,7 @@ void CAdjEulerSolver::SetIntBoundary_Jump(CGeometry *geometry, CSolver **solver_ WeightSB = 1.0-config->GetWeightCd(); - double AoA, XcoordRot = 0.0, YcoordRot = 0.0, ZcoordRot = 0.0; + su2double AoA, XcoordRot = 0.0, YcoordRot = 0.0, ZcoordRot = 0.0; if (nDim == 2) XcoordRot = coord[0]; if (nDim == 3) { @@ -1274,7 +1274,7 @@ void CAdjEulerSolver::SetIntBoundary_Jump(CGeometry *geometry, CSolver **solver_ /*--- Fix an azimuthal line due to misalignments of the near-field ---*/ - double FixAzimuthalLine = config->GetFixAzimuthalLine(); + su2double FixAzimuthalLine = config->GetFixAzimuthalLine(); if ((AngleDouble >= FixAzimuthalLine - 0.1) && (AngleDouble <= FixAzimuthalLine + 0.1)) AngleDouble = FixAzimuthalLine - 0.1; @@ -1455,7 +1455,7 @@ void CAdjEulerSolver::SetIntBoundary_Jump(CGeometry *geometry, CSolver **solver_ void CAdjEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { unsigned long iPoint, Point_Fine; unsigned short iMesh, iChildren, iVar; - double LevelSet, Area_Children, Area_Parent, LevelSet_Fine, *Solution, *Solution_Fine; + su2double LevelSet, Area_Children, Area_Parent, LevelSet_Fine, *Solution, *Solution_Fine; bool restart = config->GetRestart(); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -1504,7 +1504,7 @@ void CAdjEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solve /*--- If restart solution, then interpolate the flow solution to all the multigrid levels, this is important with the dual time strategy ---*/ if (restart) { - Solution = new double[nVar]; + Solution = new su2double[nVar]; for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++) { for (iPoint = 0; iPoint < geometry[iMesh]->GetnPoint(); iPoint++) { Area_Parent = geometry[iMesh]->node[iPoint]->GetVolume(); @@ -1540,7 +1540,7 @@ void CAdjEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solve void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) { unsigned long iPoint, ErrorCounter = 0; - double SharpEdge_Distance; + su2double SharpEdge_Distance; bool RightSol = true; #ifdef HAVE_MPI @@ -1625,7 +1625,7 @@ void CAdjEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif if (iMesh == MESH_0) config->SetNonphysical_Points(ErrorCounter); } @@ -1715,7 +1715,7 @@ void CAdjEulerSolver::Centered_Residual(CGeometry *geometry, CSolver **solver_co void CAdjEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { - double **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j, *Limiter_i = NULL, + su2double **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j, *Limiter_i = NULL, *Limiter_j = NULL, *Psi_i = NULL, *Psi_j = NULL, *V_i, *V_j, Non_Physical = 1.0; unsigned long iEdge, iPoint, jPoint; unsigned short iDim, iVar; @@ -1849,7 +1849,7 @@ void CAdjEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_cont if (time_spectral) { - double Volume, Source; + su2double Volume, Source; /*--- loop over points ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -1913,9 +1913,9 @@ void CAdjEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_cont // if (freesurface) { // for (iPoint = 0; iPoint < nPointDomain; iPoint++) { // - // double Volume = geometry->node[iPoint]->GetVolume(); - // double **Gradient = solver_container[ADJLEVELSET_SOL]->node[iPoint]->GetGradient(); - // double coeff = solver_container[LEVELSET_SOL]->node[iPoint]->GetSolution(0) / solver_container[FLOW_SOL]->node[iPoint]->GetDensityInc(); + // su2double Volume = geometry->node[iPoint]->GetVolume(); + // su2double **Gradient = solver_container[ADJLEVELSET_SOL]->node[iPoint]->GetGradient(); + // su2double coeff = solver_container[LEVELSET_SOL]->node[iPoint]->GetSolution(0) / solver_container[FLOW_SOL]->node[iPoint]->GetDensityInc(); // // Residual[0] = 0.0; // for (iDim = 0; iDim < nDim; iDim++) { @@ -1936,9 +1936,9 @@ void CAdjEulerSolver::Source_Template(CGeometry *geometry, CSolver **solver_cont void CAdjEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *config) { unsigned long iPoint, jPoint, iEdge; unsigned short iVar; - double *Diff; + su2double *Diff; - Diff = new double[nVar]; + Diff = new su2double[nVar]; for (iPoint = 0; iPoint < nPointDomain; iPoint++) node[iPoint]->SetUnd_LaplZero(); @@ -1982,9 +1982,9 @@ void CAdjEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *confi unsigned long Point_Normal = 0, iVertex; unsigned short iMarker; - double *Psi_mirror; + su2double *Psi_mirror; - Psi_mirror = new double[nVar]; + Psi_mirror = new su2double[nVar]; /*--- Loop over all boundaries and include an extra contribution from a halo node. Find the nearest normal, interior point @@ -2030,7 +2030,7 @@ void CAdjEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *confi void CAdjEulerSolver::SetDissipation_Switch(CGeometry *geometry, CConfig *config) { unsigned long iPoint; - double SharpEdge_Distance, eps, ds, scale, Sensor, Param_Kappa_2, Param_Kappa_4; + su2double SharpEdge_Distance, eps, ds, scale, Sensor, Param_Kappa_2, Param_Kappa_4; eps = config->GetLimiterCoeff()*config->GetRefElemLength(); Param_Kappa_2 = config->GetKappa_2nd_AdjFlow(); @@ -2054,13 +2054,13 @@ void CAdjEulerSolver::SetDissipation_Switch(CGeometry *geometry, CConfig *config } - // double dx = 0.1; - // double LimK = 0.03; - // double eps2 = pow((LimK*dx),3); + // su2double dx = 0.1; + // su2double LimK = 0.03; + // su2double eps2 = pow((LimK*dx),3); // // unsigned long iPoint, jPoint; // unsigned short iNeigh, nNeigh, iDim; - // double **Gradient_i, *Coord_i, *Coord_j, diff_coord, dist_ij, r_u, r_u_ij, + // su2double **Gradient_i, *Coord_i, *Coord_j, diff_coord, dist_ij, r_u, r_u_ij, // du_max, du_min, u_ij, *Solution_i, *Solution_j, dp, dm; // // @@ -2115,11 +2115,11 @@ void CAdjEulerSolver::SetDissipation_Switch(CGeometry *geometry, CConfig *config void CAdjEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep) { - double *Residual, *Res_TruncError, Vol, Delta, Res; + su2double *Residual, *Res_TruncError, Vol, Delta, Res; unsigned short iVar; unsigned long iPoint; - double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); + su2double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); for (iVar = 0; iVar < nVar; iVar++) { SetRes_RMS(iVar, 0.0); @@ -2152,7 +2152,7 @@ void CAdjEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver } void CAdjEulerSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - double *local_Residual, *local_Res_TruncError, Vol, Delta, Res; + su2double *local_Residual, *local_Res_TruncError, Vol, Delta, Res; unsigned short iVar; unsigned long iPoint; @@ -2190,7 +2190,7 @@ void CAdjEulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **sol unsigned short iVar; unsigned long iPoint, total_index; - double Delta, *local_Res_TruncError, Vol; + su2double Delta, *local_Res_TruncError, Vol; /*--- Set maximum residual to zero ---*/ @@ -2275,22 +2275,22 @@ void CAdjEulerSolver::Inviscid_Sensitivity(CGeometry *geometry, CSolver **solver unsigned long iVertex, iPoint, Neigh; unsigned short iPos, jPos; unsigned short iDim, iMarker, iNeigh; - double *d = NULL, *Normal = NULL, *Psi = NULL, *U = NULL, Enthalpy, conspsi = 0.0, Mach_Inf, + su2double *d = NULL, *Normal = NULL, *Psi = NULL, *U = NULL, Enthalpy, conspsi = 0.0, Mach_Inf, Area, **PrimVar_Grad = NULL, **ConsVar_Grad = NULL, *ConsPsi_Grad = NULL, ConsPsi, d_press, grad_v, Beta2, v_gradconspsi, UnitNormal[3], *GridVel = NULL, LevelSet, Target_LevelSet, eps, r, ru, rv, rw, rE, p, T, dp_dr, dp_dru, dp_drv, dp_drw, dp_drE, dH_dr, dH_dru, dH_drv, dH_drw, dH_drE, H, *USens, D[3][3], Dd[3], scale = 1.0; - double RefVel2, RefDensity, Mach2Vel, *Velocity_Inf, factor; + su2double RefVel2, RefDensity, Mach2Vel, *Velocity_Inf, factor; - USens = new double[nVar]; + USens = new su2double[nVar]; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool grid_movement = config->GetGrid_Movement(); - double RefAreaCoeff = config->GetRefAreaCoeff(); - double Mach_Motion = config->GetMach_Motion(); + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double Mach_Motion = config->GetMach_Motion(); unsigned short ObjFunc = config->GetKind_ObjFunc(); if (config->GetSystemMeasurements() == US) scale = 1.0/12.0; @@ -2706,17 +2706,17 @@ void CAdjEulerSolver::Inviscid_Sensitivity(CGeometry *geometry, CSolver **solver #ifdef HAVE_MPI - double MyTotal_Sens_Geo = Total_Sens_Geo; Total_Sens_Geo = 0.0; - double MyTotal_Sens_Mach = Total_Sens_Mach; Total_Sens_Mach = 0.0; - double MyTotal_Sens_AoA = Total_Sens_AoA; Total_Sens_AoA = 0.0; - double MyTotal_Sens_Press = Total_Sens_Press; Total_Sens_Press = 0.0; - double MyTotal_Sens_Temp = Total_Sens_Temp; Total_Sens_Temp = 0.0; + su2double MyTotal_Sens_Geo = Total_Sens_Geo; Total_Sens_Geo = 0.0; + su2double MyTotal_Sens_Mach = Total_Sens_Mach; Total_Sens_Mach = 0.0; + su2double MyTotal_Sens_AoA = Total_Sens_AoA; Total_Sens_AoA = 0.0; + su2double MyTotal_Sens_Press = Total_Sens_Press; Total_Sens_Press = 0.0; + su2double MyTotal_Sens_Temp = Total_Sens_Temp; Total_Sens_Temp = 0.0; - MPI_Allreduce(&MyTotal_Sens_Geo, &Total_Sens_Geo, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_Mach, &Total_Sens_Mach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_AoA, &Total_Sens_AoA, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_Press, &Total_Sens_Press, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_Temp, &Total_Sens_Temp, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Geo, &Total_Sens_Geo, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Mach, &Total_Sens_Mach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_AoA, &Total_Sens_AoA, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Press, &Total_Sens_Press, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Temp, &Total_Sens_Temp, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif @@ -2726,7 +2726,7 @@ void CAdjEulerSolver::Inviscid_Sensitivity(CGeometry *geometry, CSolver **solver void CAdjEulerSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { unsigned short iMarker; unsigned long iVertex, jVertex, nVertex, iPoint; - double **A, *b, Sens, *ArchLength, *Coord_begin, *Coord_end, dist; + su2double **A, *b, Sens, *ArchLength, *Coord_begin, *Coord_end, dist; for (iMarker = 0; iMarker < nMarker; iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == EULER_WALL) { @@ -2734,11 +2734,11 @@ void CAdjEulerSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_c /*--- Allocate the linear system ---*/ - A = new double* [nVertex]; - b = new double [nVertex]; - ArchLength = new double [nVertex]; + A = new su2double* [nVertex]; + b = new su2double [nVertex]; + ArchLength = new su2double [nVertex]; for (iVertex = 0; iVertex < nVertex; iVertex++) { - A[iVertex] = new double [nVertex]; + A[iVertex] = new su2double [nVertex]; } /*--- Initialization ---*/ @@ -2763,7 +2763,7 @@ void CAdjEulerSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_c /*--- Remove the trailing edge effect ---*/ - double MinPosSens = 0.0; double MinNegSens = 0.0; + su2double MinPosSens = 0.0; su2double MinNegSens = 0.0; for (iVertex = 0; iVertex < nVertex; iVertex++) { Sens = CSensitivity[iMarker][iVertex]; if (ArchLength[iVertex] > ArchLength[nVertex-1]*0.01) { MinNegSens = Sens; break; } @@ -2789,8 +2789,8 @@ void CAdjEulerSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_c /*--- Set the mass matrix ---*/ - double Coeff = 0.0, BackDiff = 0.0, ForwDiff = 0.0, CentDiff = 0.0; - double epsilon = 5E-5; + su2double Coeff = 0.0, BackDiff = 0.0, ForwDiff = 0.0, CentDiff = 0.0; + su2double epsilon = 5E-5; for (iVertex = 0; iVertex < nVertex; iVertex++) { if ((iVertex != nVertex-1) && (iVertex != 0)) { @@ -2828,7 +2828,7 @@ void CAdjEulerSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_c /*--- Dirichlet boundary condition ---*/ - unsigned long iVertex = int(nVertex/2); + unsigned long iVertex = SU2_TYPE::Int(nVertex/2); A[iVertex][iVertex] = 1.0; A[iVertex][iVertex+1] = 0.0; A[iVertex][iVertex-1] = 0.0; @@ -2857,7 +2857,7 @@ void CAdjEulerSolver::Smooth_Sensitivity(CGeometry *geometry, CSolver **solver_c void CAdjEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, unsigned short iMesh, bool Output) { unsigned short iDim, iMarker, iVar; unsigned long iVertex, iPoint; - double Area, Flow_Dir[3], alpha; + su2double Area, Flow_Dir[3], alpha; unsigned short nMarker_EngineInflow = config->GetnMarker_EngineInflow(); unsigned short nMarker_EngineBleed = config->GetnMarker_EngineBleed(); @@ -2926,8 +2926,8 @@ void CAdjEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, void CAdjEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { unsigned long iVertex, iPoint; - double *d = NULL, *Normal, *U, *Psi_Aux, ProjVel = 0.0, bcn, vn = 0.0, Area, *UnitNormal; - double *Velocity, *Psi, Enthalpy = 0.0, sq_vel, phin, phis1, phis2, DensityInc = 0.0, BetaInc2 = 0.0; + su2double *d = NULL, *Normal, *U, *Psi_Aux, ProjVel = 0.0, bcn, vn = 0.0, Area, *UnitNormal; + su2double *Velocity, *Psi, Enthalpy = 0.0, sq_vel, phin, phis1, phis2, DensityInc = 0.0, BetaInc2 = 0.0; unsigned short iDim, iVar, jDim; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -2936,9 +2936,9 @@ void CAdjEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_contai bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool grid_movement = config->GetGrid_Movement(); - UnitNormal = new double[nDim]; - Velocity = new double[nDim]; - Psi = new double[nVar]; + UnitNormal = new su2double[nDim]; + Velocity = new su2double[nDim]; + Psi = new su2double[nVar]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); @@ -2982,8 +2982,8 @@ void CAdjEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_contai /*--- Extra boundary term for grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += GridVel[iDim]*UnitNormal[iDim]; phin -= Psi[nVar-1]*ProjGridVel; @@ -3008,8 +3008,8 @@ void CAdjEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_contai /*--- Flux adjustment for grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel -= GridVel[iDim]*Normal[iDim]; Residual[0] -= ProjGridVel*Psi[0]; @@ -3043,8 +3043,8 @@ void CAdjEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_contai /*--- Jacobian contribution due to grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel -= GridVel[iDim]*Normal[iDim]; Jacobian_ii[0][0] -= ProjGridVel; @@ -3129,7 +3129,7 @@ void CAdjEulerSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_contain CConfig *config, unsigned short val_marker) { unsigned long iVertex, iPoint; - double *Normal, ProjVel = 0.0, vn = 0.0, Area, *UnitNormal, + su2double *Normal, ProjVel = 0.0, vn = 0.0, Area, *UnitNormal, *V_domain, *V_sym, *Psi_domain, *Psi_sym, *Velocity, Enthalpy = 0.0, sq_vel, phin, phis1, phis2, NormalAdjVel; unsigned short iDim, iVar, jDim; @@ -3140,11 +3140,11 @@ void CAdjEulerSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_contain bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; - UnitNormal = new double[nDim]; - Velocity = new double[nDim]; - Psi_domain = new double[nVar]; - Psi_sym = new double[nVar]; + Normal = new su2double[nDim]; + UnitNormal = new su2double[nDim]; + Velocity = new su2double[nDim]; + Psi_domain = new su2double[nVar]; + Psi_sym = new su2double[nVar]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3187,8 +3187,8 @@ void CAdjEulerSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_contain /*--- Grid Movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) { ProjGridVel += GridVel[iDim]*UnitNormal[iDim]; } @@ -3218,8 +3218,8 @@ void CAdjEulerSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_contain /*--- Grid Movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel -= GridVel[iDim]*Normal[iDim]; Residual_i[0] -= ProjGridVel*Psi_domain[0]; @@ -3309,8 +3309,8 @@ void CAdjEulerSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_contain /*--- Contribution from grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel -= GridVel[iDim]*Normal[iDim]; Jacobian_ii[0][0] -= ProjGridVel; @@ -3342,13 +3342,13 @@ void CAdjEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solve unsigned long iVertex, iPoint, jPoint; unsigned short iDim, iVar, iMarker; - double *V_i, *V_j; + su2double *V_i, *V_j; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - double *Normal = new double[nDim]; - double *Psi_i = new double[nVar]; - double *Psi_j = new double[nVar]; + su2double *Normal = new su2double[nDim]; + su2double *Psi_i = new su2double[nVar]; + su2double *Psi_j = new su2double[nVar]; #ifndef HAVE_MPI @@ -3404,8 +3404,8 @@ void CAdjEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solve MPI_Comm_rank(MPI_COMM_WORLD, &rank); bool compute; - double *Buffer_Send_Psi = new double[nVar]; - double *Buffer_Receive_Psi = new double[nVar]; + su2double *Buffer_Send_Psi = new su2double[nVar]; + su2double *Buffer_Receive_Psi = new su2double[nVar]; /*--- Do the send process, by the moment we are sending each node individually, this must be changed ---*/ @@ -3439,11 +3439,11 @@ void CAdjEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solve for (iVar = 0; iVar < nVar; iVar++) Buffer_Send_Psi[iVar] = node[iPoint]->GetSolution(iVar); - MPI_Isend(Buffer_Send_Psi, nVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); + SU2_MPI::Isend(Buffer_Send_Psi, nVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - MPI_Waitall(1, send_req, send_stat); + SU2_MPI::Waitall(1, send_req, send_stat); } @@ -3473,11 +3473,11 @@ void CAdjEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solve if (jProcessor != rank) { - MPI_Irecv(Buffer_Receive_Psi, nVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); + SU2_MPI::Irecv(Buffer_Receive_Psi, nVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); /*--- Wait for the this set of non-blocking recv's to complete ---*/ - MPI_Waitall(1, recv_req, recv_stat); + SU2_MPI::Waitall(1, recv_req, recv_stat); } else { for (iVar = 0; iVar < nVar; iVar++) @@ -3540,18 +3540,18 @@ void CAdjEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solve unsigned long iVertex, iPoint, jPoint, Pin, Pout; unsigned short iDim, iVar, iMarker; - double *V_i, *V_j, *IntBoundary_Jump; + su2double *V_i, *V_j, *IntBoundary_Jump; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - double *Normal = new double[nDim]; - double *Psi_i = new double[nVar]; - double *Psi_j = new double[nVar]; - double *Psi_out = new double[nVar]; - double *Psi_in = new double[nVar]; - double *MeanPsi = new double[nVar]; - double *Psi_out_ghost = new double[nVar]; - double *Psi_in_ghost = new double[nVar]; + su2double *Normal = new su2double[nDim]; + su2double *Psi_i = new su2double[nVar]; + su2double *Psi_j = new su2double[nVar]; + su2double *Psi_out = new su2double[nVar]; + su2double *Psi_in = new su2double[nVar]; + su2double *MeanPsi = new su2double[nVar]; + su2double *Psi_out_ghost = new su2double[nVar]; + su2double *Psi_in_ghost = new su2double[nVar]; #ifndef HAVE_MPI @@ -3651,8 +3651,8 @@ void CAdjEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solve MPI_Comm_rank(MPI_COMM_WORLD, &rank); bool compute; - double *Buffer_Send_Psi = new double[nVar]; - double *Buffer_Receive_Psi = new double[nVar]; + su2double *Buffer_Send_Psi = new su2double[nVar]; + su2double *Buffer_Receive_Psi = new su2double[nVar]; /*--- Do the send process, by the moment we are sending each node individually, this must be changed ---*/ @@ -3687,11 +3687,11 @@ void CAdjEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solve MPI_Bsend(Buffer_Send_Psi, nVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD); - // MPI_Isend(Buffer_Send_Psi, nVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); + // SU2_MPI::Isend(Buffer_Send_Psi, nVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - // MPI_Waitall(1, send_req, send_stat); + // SU2_MPI::Waitall(1, send_req, send_stat); } @@ -3721,13 +3721,13 @@ void CAdjEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solve if (jProcessor != rank) { - MPI_Recv(Buffer_Receive_Psi, nVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); + SU2_MPI::Recv(Buffer_Receive_Psi, nVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); - // MPI_Irecv(Buffer_Receive_Psi, nVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); + // SU2_MPI::Irecv(Buffer_Receive_Psi, nVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); /*--- Wait for the this set of non-blocking recv's to complete ---*/ - // MPI_Waitall(1, recv_req, recv_stat); + // SU2_MPI::Waitall(1, recv_req, recv_stat); } else { @@ -3834,13 +3834,13 @@ void CAdjEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contain unsigned long iVertex, iPoint, Point_Normal; unsigned short iVar, iDim; - double *Normal, *V_domain, *V_infty, *Psi_domain, *Psi_infty; + su2double *Normal, *V_domain, *V_infty, *Psi_domain, *Psi_infty; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_infty = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_infty = new su2double[nVar]; /*--- Loop over all the vertices ---*/ @@ -3939,15 +3939,15 @@ void CAdjEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_ CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double Area, UnitNormal[3]; - double *V_inlet, *V_domain, *Normal, *Psi_domain, *Psi_inlet; + su2double Area, UnitNormal[3]; + su2double *V_inlet, *V_domain, *Normal, *Psi_domain, *Psi_inlet; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_inlet = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_inlet = new su2double[nVar]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -4062,15 +4062,15 @@ void CAdjEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double Area, UnitNormal[3]; - double *V_outlet, *V_domain, *Normal, *Psi_domain, *Psi_outlet; + su2double Area, UnitNormal[3]; + su2double *V_outlet, *V_domain, *Normal, *Psi_domain, *Psi_outlet; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_outlet = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_outlet = new su2double[nVar]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -4182,9 +4182,9 @@ void CAdjEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double Velocity[3], bcn, phin, Area, UnitNormal[3], + su2double Velocity[3], bcn, phin, Area, UnitNormal[3], ProjGridVel, *GridVel; - double *V_inlet, *V_domain, *Normal, *Psi_domain, *Psi_inlet; + su2double *V_inlet, *V_domain, *Normal, *Psi_domain, *Psi_inlet; unsigned short Kind_Inlet = config->GetKind_Inlet(); bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -4194,8 +4194,8 @@ void CAdjEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, bool grid_movement = config->GetGrid_Movement(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_inlet = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_inlet = new su2double[nVar]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -4372,27 +4372,27 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double Pressure, P_Exit, Velocity[3], Velocity2 = 0.0; - double Density, Height; - double Vn = 0.0, SoundSpeed = 0.0, Mach_Exit, a1 = 0.0, LevelSet, Vn_Exit, Riemann, Entropy, Density_Outlet = 0.0; - double Area, UnitNormal[3]; - double *V_outlet, *V_domain, *Psi_domain, *Psi_outlet, *Normal; - double dpterm; + su2double Pressure, P_Exit, Velocity[3], Velocity2 = 0.0; + su2double Density, Height; + su2double Vn = 0.0, SoundSpeed = 0.0, Mach_Exit, a1 = 0.0, LevelSet, Vn_Exit, Riemann, Entropy, Density_Outlet = 0.0; + su2double Area, UnitNormal[3]; + su2double *V_outlet, *V_domain, *Psi_domain, *Psi_outlet, *Normal; + su2double dpterm; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool grid_movement = config->GetGrid_Movement(); - double FreeSurface_Zero = config->GetFreeSurface_Zero(); - double PressFreeSurface = solver_container[FLOW_SOL]->GetPressure_Inf(); - double epsilon = config->GetFreeSurface_Thickness(); - double RatioDensity = config->GetRatioDensity(); - double Froude = config->GetFroude(); + su2double FreeSurface_Zero = config->GetFreeSurface_Zero(); + su2double PressFreeSurface = solver_container[FLOW_SOL]->GetPressure_Inf(); + su2double epsilon = config->GetFreeSurface_Thickness(); + su2double RatioDensity = config->GetRatioDensity(); + su2double Froude = config->GetFroude(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Psi_domain = new double [nVar]; Psi_outlet = new double [nVar]; - Normal = new double[nDim]; + Psi_domain = new su2double [nVar]; Psi_outlet = new su2double [nVar]; + Normal = new su2double[nDim]; /*--- Loop over all the vertices ---*/ @@ -4482,8 +4482,8 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, /*--- Extra boundary term for grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += GridVel[iDim]*UnitNormal[iDim]; //Ubn = ProjGridVel; @@ -4530,8 +4530,8 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, /*--- Extra boundary term for grid movement ---*/ if (grid_movement) { - double ProjGridVel = 0.0; - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double ProjGridVel = 0.0; + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); for (iDim = 0; iDim < nDim; iDim++) ProjGridVel += GridVel[iDim]*UnitNormal[iDim]; // Ubn = ProjGridVel; @@ -4595,7 +4595,7 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, /*--- Adjoint flow solution at the outlet (hard-coded for size[3] again?) ---*/ Psi_outlet[2] = 0.0; - double coeff = (2.0*V_domain[1])/ solver_container[FLOW_SOL]->node[Point_Normal]->GetBetaInc2(); + su2double coeff = (2.0*V_domain[1])/ solver_container[FLOW_SOL]->node[Point_Normal]->GetBetaInc2(); Psi_outlet[1] = node[Point_Normal]->GetSolution(1); Psi_outlet[0] = -coeff*Psi_outlet[1]; @@ -4677,15 +4677,15 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, void CAdjEulerSolver::BC_Engine_Inflow(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { - double *Normal, *V_domain, *V_inflow, *Psi_domain, *Psi_inflow, P_Fan, Velocity[3], Velocity2, Density, Vn, UnitNormal[3], Area, a1; + su2double *Normal, *V_domain, *V_inflow, *Psi_domain, *Psi_inflow, P_Fan, Velocity[3], Velocity2, Density, Vn, UnitNormal[3], Area, a1; unsigned short iVar, iDim; unsigned long iVertex, iPoint; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_inflow = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_inflow = new su2double[nVar]; /*--- Loop over all the vertices ---*/ @@ -4778,15 +4778,15 @@ void CAdjEulerSolver::BC_Engine_Inflow(CGeometry *geometry, CSolver **solver_con void CAdjEulerSolver::BC_Engine_Bleed(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { - double *Normal, *V_domain, *V_inflow, *Psi_domain, *Psi_inflow, P_Fan, Velocity[3], Velocity2, Density, Vn, UnitNormal[3], Area, a1; + su2double *Normal, *V_domain, *V_inflow, *Psi_domain, *Psi_inflow, P_Fan, Velocity[3], Velocity2, Density, Vn, UnitNormal[3], Area, a1; unsigned short iVar, iDim; unsigned long iVertex, iPoint; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_inflow = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_inflow = new su2double[nVar]; /*--- Loop over all the vertices ---*/ @@ -4880,14 +4880,14 @@ void CAdjEulerSolver::BC_Engine_Bleed(CGeometry *geometry, CSolver **solver_cont void CAdjEulerSolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iVertex, iPoint, Point_Normal; - double Area, UnitNormal[3], *Normal, *V_domain, *V_exhaust, *Psi_domain, *Psi_exhaust; + su2double Area, UnitNormal[3], *Normal, *V_domain, *V_exhaust, *Psi_domain, *Psi_exhaust; unsigned short iVar, iDim; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - Normal = new double[nDim]; - Psi_domain = new double[nVar]; Psi_exhaust = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; Psi_exhaust = new su2double[nVar]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -4966,7 +4966,7 @@ void CAdjEulerSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver unsigned short iMesh, unsigned short RunTime_EqSystem) { unsigned short iVar, jVar; unsigned long iPoint; - double *U_time_nM1, *U_time_n, *U_time_nP1, Volume_nM1, Volume_n, Volume_nP1, TimeStep; + su2double *U_time_nM1, *U_time_n, *U_time_nP1, Volume_nM1, Volume_n, Volume_nP1, TimeStep; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool FlowEq = (RunTime_EqSystem == RUNTIME_FLOW_SYS); @@ -5038,7 +5038,7 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short unsigned short iDim, iVar, iMarker, nLineLets; ifstream restart_file; string filename, AdjExt; - double dull_val; + su2double dull_val; bool restart = config->GetRestart(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -5074,46 +5074,46 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Define some auxiliary arrays related to the residual ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; - Res_Visc_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; - Res_Conv_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; - Res_Visc_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Res_Conv_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; + Res_Visc_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; + Res_Conv_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; + Res_Visc_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; /*--- Define some auxiliary arrays related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary arrays related to the flow solution ---*/ - FlowPrimVar_i = new double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_i[iVar] = 0.0; - FlowPrimVar_j = new double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_j[iVar] = 0.0; + FlowPrimVar_i = new su2double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_i[iVar] = 0.0; + FlowPrimVar_j = new su2double[nDim+7]; for (iVar = 0; iVar < nDim+7; iVar++) FlowPrimVar_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Point to point Jacobians. These are always defined because they are also used for sensitivity calculations. ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Solution and residual vectors ---*/ @@ -5124,15 +5124,15 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Jacobians and vector structures for implicit computations ---*/ if (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT) { - Jacobian_ii = new double*[nVar]; - Jacobian_ij = new double*[nVar]; - Jacobian_ji = new double*[nVar]; - Jacobian_jj = new double*[nVar]; + Jacobian_ii = new su2double*[nVar]; + Jacobian_ij = new su2double*[nVar]; + Jacobian_ji = new su2double*[nVar]; + Jacobian_jj = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ii[iVar] = new double[nVar]; - Jacobian_ij[iVar] = new double[nVar]; - Jacobian_ji[iVar] = new double[nVar]; - Jacobian_jj[iVar] = new double[nVar]; + Jacobian_ii[iVar] = new su2double[nVar]; + Jacobian_ij[iVar] = new su2double[nVar]; + Jacobian_ji[iVar] = new su2double[nVar]; + Jacobian_jj[iVar] = new su2double[nVar]; } if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Adjoint N-S). MG level: " << iMesh <<"." << endl; @@ -5152,25 +5152,25 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Array structures for computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Sensitivity definition and coefficient on all markers ---*/ - CSensitivity = new double* [nMarker]; + CSensitivity = new su2double* [nMarker]; for (iMarker=0; iMarkernVertex[iMarker]]; + CSensitivity[iMarker] = new su2double [geometry->nVertex[iMarker]]; } - Sens_Geo = new double[nMarker]; - Sens_Mach = new double[nMarker]; - Sens_AoA = new double[nMarker]; - Sens_Press = new double[nMarker]; - Sens_Temp = new double[nMarker]; + Sens_Geo = new su2double[nMarker]; + Sens_Mach = new su2double[nMarker]; + Sens_AoA = new su2double[nMarker]; + Sens_Press = new su2double[nMarker]; + Sens_Temp = new su2double[nMarker]; /*--- Initialize sensitivities to zero ---*/ for (iMarker = 0; iMarker < nMarker; iMarker++) { @@ -5191,7 +5191,7 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short PsiE_Inf = -1.0; else PsiE_Inf = 0.0; - Phi_Inf = new double [nDim]; + Phi_Inf = new su2double [nDim]; Phi_Inf[0] = 0.0; Phi_Inf[1] = 0.0; if (nDim == 3) Phi_Inf[2] = 0.0; @@ -5296,7 +5296,7 @@ void CAdjNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) { unsigned long iPoint, ErrorCounter = 0; - double SharpEdge_Distance; + su2double SharpEdge_Distance; bool RightSol = true; #ifdef HAVE_MPI @@ -5377,7 +5377,7 @@ void CAdjNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif if (iMesh == MESH_0) config->SetNonphysical_Points(ErrorCounter); } @@ -5574,9 +5574,9 @@ void CAdjNSSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contain if (freesurface) { // for (iPoint = 0; iPoint < nPointDomain; iPoint++) { // -// double Volume = geometry->node[iPoint]->GetVolume(); -// double **Gradient = solver_container[ADJLEVELSET_SOL]->node[iPoint]->GetGradient(); -// double coeff = solver_container[LEVELSET_SOL]->node[iPoint]->GetSolution(0) / solver_container[FLOW_SOL]->node[iPoint]->GetDensityInc(); +// su2double Volume = geometry->node[iPoint]->GetVolume(); +// su2double **Gradient = solver_container[ADJLEVELSET_SOL]->node[iPoint]->GetGradient(); +// su2double coeff = solver_container[LEVELSET_SOL]->node[iPoint]->GetSolution(0) / solver_container[FLOW_SOL]->node[iPoint]->GetDensityInc(); // // Residual[0] = 0.0; // for (iDim = 0; iDim < nDim; iDim++) { @@ -5594,41 +5594,41 @@ void CAdjNSSolver::Viscous_Sensitivity(CGeometry *geometry, CSolver **solver_con unsigned long iVertex, iPoint; unsigned short iDim, jDim, iMarker, iPos, jPos; - double *d = NULL, **PsiVar_Grad = NULL, **PrimVar_Grad = NULL, div_phi, *Normal = NULL, Area, + su2double *d = NULL, **PsiVar_Grad = NULL, **PrimVar_Grad = NULL, div_phi, *Normal = NULL, Area, normal_grad_psi5, normal_grad_T, sigma_partial, Laminar_Viscosity = 0.0, heat_flux_factor, LevelSet, Target_LevelSet, temp_sens = 0.0, *Psi = NULL, *U = NULL, Enthalpy, **GridVel_Grad, gradPsi5_v, psi5_tau_partial, psi5_tau_grad_vel, source_v_1, Density, Pressure = 0.0, div_vel, val_turb_ke, vartheta, vartheta_partial, psi5_p_div_vel, Omega[3], rho_v[3], CrossProduct[3], delta[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}, r, ru, rv, rw, rE, p, T, dp_dr, dp_dru, dp_drv, dp_drw, dp_drE, dH_dr, dH_dru, dH_drv, dH_drw, dH_drE, H, D[3][3], Dd[3], Mach_Inf, eps, scale = 1.0; - double RefVel2, RefDensity, Mach2Vel, *Velocity_Inf, factor; + su2double RefVel2, RefDensity, Mach2Vel, *Velocity_Inf, factor; - double *USens = new double[nVar]; - double *UnitNormal = new double[nDim]; - double *normal_grad_vel = new double[nDim]; - double *tang_deriv_psi5 = new double[nDim]; - double *tang_deriv_T = new double[nDim]; - double **Sigma = new double* [nDim]; + su2double *USens = new su2double[nVar]; + su2double *UnitNormal = new su2double[nDim]; + su2double *normal_grad_vel = new su2double[nDim]; + su2double *tang_deriv_psi5 = new su2double[nDim]; + su2double *tang_deriv_T = new su2double[nDim]; + su2double **Sigma = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Sigma[iDim] = new double [nDim]; + Sigma[iDim] = new su2double [nDim]; - double *normal_grad_gridvel = new double[nDim]; - double *normal_grad_v_ux =new double[nDim]; - double **Sigma_Psi5v = new double* [nDim]; + su2double *normal_grad_gridvel = new su2double[nDim]; + su2double *normal_grad_v_ux =new su2double[nDim]; + su2double **Sigma_Psi5v = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Sigma_Psi5v[iDim] = new double [nDim]; - double **tau = new double* [nDim]; + Sigma_Psi5v[iDim] = new su2double [nDim]; + su2double **tau = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - tau[iDim] = new double [nDim]; - double *Velocity = new double[nDim]; + tau[iDim] = new su2double [nDim]; + su2double *Velocity = new su2double[nDim]; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool rotating_frame = config->GetRotating_Frame(); bool grid_movement = config->GetGrid_Movement(); - double RefAreaCoeff = config->GetRefAreaCoeff(); - double Mach_Motion = config->GetMach_Motion(); + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double Mach_Motion = config->GetMach_Motion(); unsigned short ObjFunc = config->GetKind_ObjFunc(); - double Gas_Constant = config->GetGas_ConstantND(); - double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; - double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; + su2double Prandtl_Lam = config->GetPrandtl_Lam(); if (config->GetSystemMeasurements() == US) scale = 1.0/12.0; else scale = 1.0; @@ -6170,17 +6170,17 @@ void CAdjNSSolver::Viscous_Sensitivity(CGeometry *geometry, CSolver **solver_con #ifdef HAVE_MPI - double MyTotal_Sens_Geo = Total_Sens_Geo; Total_Sens_Geo = 0.0; - double MyTotal_Sens_Mach = Total_Sens_Mach; Total_Sens_Mach = 0.0; - double MyTotal_Sens_AoA = Total_Sens_AoA; Total_Sens_AoA = 0.0; - double MyTotal_Sens_Press = Total_Sens_Press; Total_Sens_Press = 0.0; - double MyTotal_Sens_Temp = Total_Sens_Temp; Total_Sens_Temp = 0.0; + su2double MyTotal_Sens_Geo = Total_Sens_Geo; Total_Sens_Geo = 0.0; + su2double MyTotal_Sens_Mach = Total_Sens_Mach; Total_Sens_Mach = 0.0; + su2double MyTotal_Sens_AoA = Total_Sens_AoA; Total_Sens_AoA = 0.0; + su2double MyTotal_Sens_Press = Total_Sens_Press; Total_Sens_Press = 0.0; + su2double MyTotal_Sens_Temp = Total_Sens_Temp; Total_Sens_Temp = 0.0; - MPI_Allreduce(&MyTotal_Sens_Geo, &Total_Sens_Geo, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_Mach, &Total_Sens_Mach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_AoA, &Total_Sens_AoA, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_Press, &Total_Sens_Press, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyTotal_Sens_Temp, &Total_Sens_Temp, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Geo, &Total_Sens_Geo, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Mach, &Total_Sens_Mach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_AoA, &Total_Sens_AoA, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Press, &Total_Sens_Press, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Temp, &Total_Sens_Temp, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif @@ -6208,18 +6208,18 @@ void CAdjNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_contai unsigned short iDim, iVar, jVar, jDim; unsigned long iVertex, iPoint, total_index, Point_Normal; - double *d, l1psi, vartheta, Sigma_5, **PsiVar_Grad, phi[3]; - double sq_vel, ProjGridVel, Enthalpy = 0.0, *GridVel; - double ViscDens, XiDens, Density, Pressure = 0.0, dPhiE_dn; - double Laminar_Viscosity = 0.0, Eddy_Viscosity = 0.0; - double Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz; - double Sigma_xx5, Sigma_yy5, Sigma_zz5, Sigma_xy5, Sigma_xz5; - double Sigma_yz5, eta_xx, eta_yy, eta_zz, eta_xy, eta_xz, eta_yz; - double *Coord_i, *Coord_j, dist_ij_2; - double dSigmaxx_phi1, dSigmayy_phi1, dSigmazz_phi1, dSigmaxy_phi1, dSigmaxz_phi1, dSigmayz_phi1; - double dSigmaxx_phi2, dSigmayy_phi2, dSigmazz_phi2, dSigmaxy_phi2, dSigmaxz_phi2, dSigmayz_phi2; - double dSigmaxx_phi3, dSigmayy_phi3, dSigmazz_phi3, dSigmaxy_phi3, dSigmaxz_phi3, dSigmayz_phi3; - double dSigma5_psi5; + su2double *d, l1psi, vartheta, Sigma_5, **PsiVar_Grad, phi[3]; + su2double sq_vel, ProjGridVel, Enthalpy = 0.0, *GridVel; + su2double ViscDens, XiDens, Density, Pressure = 0.0, dPhiE_dn; + su2double Laminar_Viscosity = 0.0, Eddy_Viscosity = 0.0; + su2double Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz; + su2double Sigma_xx5, Sigma_yy5, Sigma_zz5, Sigma_xy5, Sigma_xz5; + su2double Sigma_yz5, eta_xx, eta_yy, eta_zz, eta_xy, eta_xz, eta_yz; + su2double *Coord_i, *Coord_j, dist_ij_2; + su2double dSigmaxx_phi1, dSigmayy_phi1, dSigmazz_phi1, dSigmaxy_phi1, dSigmaxz_phi1, dSigmayz_phi1; + su2double dSigmaxx_phi2, dSigmayy_phi2, dSigmazz_phi2, dSigmaxy_phi2, dSigmaxz_phi2, dSigmayz_phi2; + su2double dSigmaxx_phi3, dSigmayy_phi3, dSigmazz_phi3, dSigmaxy_phi3, dSigmaxz_phi3, dSigmayz_phi3; + su2double dSigma5_psi5; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -6227,20 +6227,20 @@ void CAdjNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_contai bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool grid_movement = config->GetGrid_Movement(); - double Prandtl_Lam = config->GetPrandtl_Lam(); - double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); - double *Psi = new double[nVar]; - double **Tau = new double*[nDim]; + su2double *Psi = new su2double[nVar]; + su2double **Tau = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) - Tau[iDim] = new double [nDim]; - double *Velocity = new double[nDim]; - double *Normal = new double[nDim]; - double *Edge_Vector = new double[nDim]; - double **GradPhi = new double*[nDim]; + Tau[iDim] = new su2double [nDim]; + su2double *Velocity = new su2double[nDim]; + su2double *Normal = new su2double[nDim]; + su2double *Edge_Vector = new su2double[nDim]; + su2double **GradPhi = new su2double*[nDim]; for (iDim = 0; iDim < nDim; iDim++) - GradPhi[iDim] = new double [nDim]; - double *GradPsiE = new double [nDim]; + GradPhi[iDim] = new su2double [nDim]; + su2double *GradPsiE = new su2double [nDim]; /*--- Loop over all of the vertices on this boundary marker ---*/ @@ -6592,30 +6592,30 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont unsigned long iVertex, iPoint, total_index; unsigned short iDim, iVar, jVar, jDim; - double *d, q, *U, l1psi, dVisc_T, rho, pressure, div_phi, + su2double *d, q, *U, l1psi, dVisc_T, rho, pressure, div_phi, force_stress, Sigma_5, **PsiVar_Grad, phi[3] = {0.0,0.0,0.0}; - double phis1, phis2, sq_vel, ProjVel, Enthalpy, *GridVel, phi_u, d_n; - double Energy, ViscDens, XiDens, Density, SoundSpeed, Pressure, dPhiE_dn, Laminar_Viscosity, Eddy_Viscosity, + su2double phis1, phis2, sq_vel, ProjVel, Enthalpy, *GridVel, phi_u, d_n; + su2double Energy, ViscDens, XiDens, Density, SoundSpeed, Pressure, dPhiE_dn, Laminar_Viscosity, Eddy_Viscosity, Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz, Sigma_xx5, Sigma_yy5, Sigma_zz5, Sigma_xy5, Sigma_xz5, Sigma_yz5, eta_xx, eta_yy, eta_zz, eta_xy, eta_xz, eta_yz; - double kGTdotn; + su2double kGTdotn; - double *Psi = new double[nVar]; - double **Tau = new double* [nDim]; + su2double *Psi = new su2double[nVar]; + su2double **Tau = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Tau[iDim] = new double [nDim]; - double *Velocity = new double[nDim]; - double *Normal = new double[nDim]; + Tau[iDim] = new su2double [nDim]; + su2double *Velocity = new su2double[nDim]; + su2double *Normal = new su2double[nDim]; - double **GradPhi = new double* [nDim]; + su2double **GradPhi = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - GradPhi[iDim] = new double [nDim]; - double *GradPsiE = new double [nDim]; - double *GradT;// = new double[nDim]; - double *GradP; - double *GradDens; - double *dPoRho2 = new double[nDim]; + GradPhi[iDim] = new su2double [nDim]; + su2double *GradPsiE = new su2double [nDim]; + su2double *GradT;// = new su2double[nDim]; + su2double *GradP; + su2double *GradDens; + su2double *dPoRho2 = new su2double[nDim]; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -6625,16 +6625,16 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX) || (config->GetKind_ObjFunc() == INVERSE_DESIGN_HEATFLUX)); - double Prandtl_Lam = config->GetPrandtl_Lam(); - double Prandtl_Turb = config->GetPrandtl_Turb(); - double Gas_Constant = config->GetGas_ConstantND(); - double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; - double Thermal_Conductivity; - double invrho3; - double Volume; - double mu2; - double gpsiAv2; - double gpsi5n; + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; + su2double Thermal_Conductivity; + su2double invrho3; + su2double Volume; + su2double mu2; + su2double gpsiAv2; + su2double gpsi5n; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { diff --git a/SU2_CFD/src/solver_adjoint_tne2.cpp b/SU2_CFD/src/solver_adjoint_tne2.cpp index f680743504a..9dd274e03c3 100644 --- a/SU2_CFD/src/solver_adjoint_tne2.cpp +++ b/SU2_CFD/src/solver_adjoint_tne2.cpp @@ -53,7 +53,7 @@ CAdjTNE2EulerSolver::CAdjTNE2EulerSolver(CGeometry *geometry, CConfig *config, u bool restart; unsigned long iPoint, index, iVertex; unsigned short iDim, iSpecies, iVar, iMarker, nLineLets; - double dull_val; + su2double dull_val; string text_line, mesh_filename; string filename, AdjExt; ifstream restart_file; @@ -94,49 +94,49 @@ CAdjTNE2EulerSolver::CAdjTNE2EulerSolver(CGeometry *geometry, CConfig *config, u node = new CVariable*[nPoint]; /*--- Define some auxiliary vectors related to the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; - Res_Visc_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; - Res_Conv_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; - Res_Visc_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Res_Conv_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; + Res_Visc_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; + Res_Conv_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; + Res_Visc_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Define some auxiliary vectors related to the undivided lapalacian ---*/ if (config->GetKind_ConvNumScheme_AdjTNE2() == SPACE_CENTERED) { - iPoint_UndLapl = new double [nPoint]; - jPoint_UndLapl = new double [nPoint]; + iPoint_UndLapl = new su2double [nPoint]; + jPoint_UndLapl = new su2double [nPoint]; } /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector_i = new double[nDim]; - Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; + Vector_j = new su2double[nDim]; /*--- Point to point Jacobians. These are always defined because they are also used for sensitivity calculations. ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); @@ -144,15 +144,15 @@ CAdjTNE2EulerSolver::CAdjTNE2EulerSolver(CGeometry *geometry, CConfig *config, u /*--- Allocate Jacobians for implicit time-stepping ---*/ if (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT) { - Jacobian_ii = new double* [nVar]; - Jacobian_ij = new double* [nVar]; - Jacobian_ji = new double* [nVar]; - Jacobian_jj = new double* [nVar]; + Jacobian_ii = new su2double* [nVar]; + Jacobian_ij = new su2double* [nVar]; + Jacobian_ji = new su2double* [nVar]; + Jacobian_jj = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ii[iVar] = new double [nVar]; - Jacobian_ij[iVar] = new double [nVar]; - Jacobian_ji[iVar] = new double [nVar]; - Jacobian_jj[iVar] = new double [nVar]; + Jacobian_ii[iVar] = new su2double [nVar]; + Jacobian_ij[iVar] = new su2double [nVar]; + Jacobian_ji[iVar] = new su2double [nVar]; + Jacobian_jj[iVar] = new su2double [nVar]; } if (rank == MASTER_NODE) @@ -174,26 +174,26 @@ CAdjTNE2EulerSolver::CAdjTNE2EulerSolver(CGeometry *geometry, CConfig *config, u if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Sensitivity arrays on boundaries ---*/ - CSensitivity = new double* [nMarker]; + CSensitivity = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CSensitivity[iMarker] = new double [geometry->nVertex[iMarker]]; + CSensitivity[iMarker] = new su2double [geometry->nVertex[iMarker]]; } - Sens_Geo = new double[nMarker]; - Sens_Mach = new double[nMarker]; - Sens_AoA = new double[nMarker]; - Sens_Press = new double[nMarker]; - Sens_Temp = new double[nMarker]; + Sens_Geo = new su2double[nMarker]; + Sens_Mach = new su2double[nMarker]; + Sens_AoA = new su2double[nMarker]; + Sens_Press = new su2double[nMarker]; + Sens_Temp = new su2double[nMarker]; /*--- Initialize sensitivity arrays ---*/ for (iMarker = 0; iMarker < nMarker; iMarker++) { @@ -207,8 +207,8 @@ CAdjTNE2EulerSolver::CAdjTNE2EulerSolver(CGeometry *geometry, CConfig *config, u } /*--- Adjoint flow at the inifinity, initialization stuff ---*/ - PsiRho_Inf = new double [nSpecies]; - Phi_Inf = new double [nDim]; + PsiRho_Inf = new su2double [nSpecies]; + Phi_Inf = new su2double [nDim]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) PsiRho_Inf[iSpecies] = 0.0; for (iDim = 0; iDim < nDim; iDim++) @@ -350,9 +350,9 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; - double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; + su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI MPI_Status status; @@ -372,8 +372,8 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -385,7 +385,7 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -474,9 +474,9 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; - double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; + su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI MPI_Status status; @@ -496,8 +496,8 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -509,7 +509,7 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -599,9 +599,9 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; - double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; + su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; #ifdef HAVE_MPI MPI_Status status; @@ -621,8 +621,8 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the limiter that should be sent ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -634,7 +634,7 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -723,13 +723,13 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; - double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; + su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI MPI_Status status; @@ -749,8 +749,8 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the gradient that should be sent ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -763,7 +763,7 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -854,10 +854,10 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; - double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double *Buffer_Receive_Undivided_Laplacian = NULL; - double *Buffer_Send_Undivided_Laplacian = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; + su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double *Buffer_Receive_Undivided_Laplacian = NULL; + su2double *Buffer_Send_Undivided_Laplacian = NULL; #ifdef HAVE_MPI MPI_Status status; @@ -877,8 +877,8 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Undivided_Laplacian = new double [nBufferR_Vector]; - Buffer_Send_Undivided_Laplacian = new double[nBufferS_Vector]; + Buffer_Receive_Undivided_Laplacian = new su2double [nBufferR_Vector]; + Buffer_Send_Undivided_Laplacian = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -890,7 +890,7 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Undivided_Laplacian, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -979,21 +979,21 @@ void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, bool ionization; unsigned short iMarker, iDim, nHeavy, nEl; unsigned long iVertex, iPoint; - double Alpha = (config->GetAoA()*PI_NUMBER)/180.0; - double Beta = (config->GetAoS()*PI_NUMBER)/180.0; - double RefAreaCoeff = config->GetRefAreaCoeff(); - double RefLengthMoment = config->GetRefLengthMoment(); - double *RefOriginMoment = config->GetRefOriginMoment(0); - double *ForceProj_Vector, x = 0.0, y = 0.0, z = 0.0, *Normal, C_d, C_l, C_t, C_q; - double x_origin, y_origin, z_origin, Area; - double RefVel2, RefDensity; + su2double Alpha = (config->GetAoA()*PI_NUMBER)/180.0; + su2double Beta = (config->GetAoS()*PI_NUMBER)/180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double *RefOriginMoment = config->GetRefOriginMoment(0); + su2double *ForceProj_Vector, x = 0.0, y = 0.0, z = 0.0, *Normal, C_d, C_l, C_t, C_q; + su2double x_origin, y_origin, z_origin, Area; + su2double RefVel2, RefDensity; int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - ForceProj_Vector = new double[nDim]; + ForceProj_Vector = new su2double[nDim]; /*--- Determine the number of heavy species ---*/ ionization = config->GetIonization(); @@ -1014,15 +1014,15 @@ void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, C_t = solver_container[TNE2_SOL]->GetTotal_CT(); C_q = solver_container[TNE2_SOL]->GetTotal_CQ(); #else - double *sbuf_force = new double[4]; - double *rbuf_force = new double[4]; + su2double *sbuf_force = new su2double[4]; + su2double *rbuf_force = new su2double[4]; sbuf_force[0] = solver_container[TNE2_SOL]->GetTotal_CDrag(); sbuf_force[1] = solver_container[TNE2_SOL]->GetTotal_CLift(); sbuf_force[2] = solver_container[TNE2_SOL]->GetTotal_CT(); sbuf_force[3] = solver_container[TNE2_SOL]->GetTotal_CQ(); - MPI_Reduce(sbuf_force, rbuf_force, 4, MPI_DOUBLE, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(rbuf_force, 4, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(sbuf_force, rbuf_force, 4, MPI_DOUBLE, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(rbuf_force, 4, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); C_d = rbuf_force[0]; C_l = rbuf_force[1]; @@ -1033,9 +1033,9 @@ void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, #endif /*--- Compute coefficients needed for objective function evaluation. ---*/ - double C_p = 1.0/(0.5*RefDensity*RefAreaCoeff*RefVel2); - double invCD = 1.0 / C_d; - double CLCD2 = C_l / (C_d*C_d); + su2double C_p = 1.0/(0.5*RefDensity*RefAreaCoeff*RefVel2); + su2double invCD = 1.0 / C_d; + su2double CLCD2 = C_l / (C_d*C_d); x_origin = RefOriginMoment[0]; y_origin = RefOriginMoment[1]; @@ -1146,15 +1146,15 @@ void CAdjTNE2EulerSolver::SetInitialCondition(CGeometry **geometry, unsigned long iPoint, Point_Fine; unsigned short iMesh, iChildren, iVar; - double Area_Children, Area_Parent; - double *Solution, *Solution_Fine; + su2double Area_Children, Area_Parent; + su2double *Solution, *Solution_Fine; bool restart = config->GetRestart(); /*--- If restart solution, then interpolate the flow solution to all the multigrid levels, this is important with the dual time strategy ---*/ if (restart) { - Solution = new double[nVar]; + Solution = new su2double[nVar]; for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++) { for (iPoint = 0; iPoint < geometry[iMesh]->GetnPoint(); iPoint++) { Area_Parent = geometry[iMesh]->node[iPoint]->GetVolume(); @@ -1185,7 +1185,7 @@ void CAdjTNE2EulerSolver::Preprocessing(CGeometry *geometry, bool implicit, second_order, center, center_jst, limiter, RightSol; unsigned long iPoint, ErrorCounter = 0; - double SharpEdge_Distance; + su2double SharpEdge_Distance; int rank; #ifndef HAVE_MPI @@ -1247,7 +1247,7 @@ void CAdjTNE2EulerSolver::Preprocessing(CGeometry *geometry, /*--- Error message ---*/ #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif if ((ErrorCounter != 0) && (rank == MASTER_NODE) && (iMesh == MESH_0)) cout <<"The solution contains "<< ErrorCounter << " non-physical points." << endl; @@ -1362,10 +1362,10 @@ void CAdjTNE2EulerSolver::Upwind_Residual(CGeometry *geometry, bool implicit, second_order, limiter; unsigned short iDim, iVar; unsigned long iEdge, iPoint, jPoint; - double **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j; - double *Limiter_i, *Limiter_j; - double *Psi_i, *Psi_j; - double *U_i, *U_j, *V_i, *V_j; + su2double **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j; + su2double *Limiter_i, *Limiter_j; + su2double *Psi_i, *Psi_j; + su2double *U_i, *U_j, *V_i, *V_j; /*--- Initialize ---*/ Limiter_i = NULL; @@ -1611,9 +1611,9 @@ void CAdjTNE2EulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *config) { unsigned long iPoint, jPoint, iEdge; unsigned short iVar; - double *Diff; + su2double *Diff; - Diff = new double[nVar]; + Diff = new su2double[nVar]; for (iPoint = 0; iPoint < nPointDomain; iPoint++) node[iPoint]->SetUnd_LaplZero(); @@ -1657,9 +1657,9 @@ void CAdjTNE2EulerSolver::SetUndivided_Laplacian(CGeometry *geometry, unsigned long Point_Normal = 0, iVertex; unsigned short iMarker; - double *Psi_mirror; + su2double *Psi_mirror; - Psi_mirror = new double[nVar]; + Psi_mirror = new su2double[nVar]; /*--- Loop over all boundaries and include an extra contribution from a halo node. Find the nearest normal, interior point @@ -1705,7 +1705,7 @@ void CAdjTNE2EulerSolver::SetUndivided_Laplacian(CGeometry *geometry, void CAdjTNE2EulerSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - double *local_Residual, Vol, Delta, Res; + su2double *local_Residual, Vol, Delta, Res; unsigned short iVar; unsigned long iPoint; @@ -1745,7 +1745,7 @@ void CAdjTNE2EulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CConfig *config) { unsigned short iVar; unsigned long iPoint, total_index, IterLinSol = 0; - double Delta, Vol; + su2double Delta, Vol; /*--- Set maximum residual to zero ---*/ @@ -1825,13 +1825,13 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, unsigned long iSpecies, iVar, jVar, iVertex, iPoint, Neigh; unsigned short iDim, iMarker, iNeigh; unsigned short P_INDEX, VEL_INDEX, RHO_INDEX, H_INDEX; - double *d, *Normal, *UnitNormal; - double *Psi, *U, *V, *dPdU, *USens; - double rho, rhou, rhov, rhow, rhoE, rhoEve, H, p; - double conspsi, Area; - double Mach_Inf; - double **PrimVar_Grad, **ConsVar_Grad, *ConsPsi_Grad; - double ConsPsi, d_press, grad_v, v_gradconspsi; + su2double *d, *Normal, *UnitNormal; + su2double *Psi, *U, *V, *dPdU, *USens; + su2double rho, rhou, rhov, rhow, rhoE, rhoEve, H, p; + su2double conspsi, Area; + su2double Mach_Inf; + su2double **PrimVar_Grad, **ConsVar_Grad, *ConsPsi_Grad; + su2double ConsPsi, d_press, grad_v, v_gradconspsi; /*--- Initialization ---*/ d = NULL; @@ -1844,8 +1844,8 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, ConsPsi_Grad = NULL; /*--- Allocate arrays ---*/ - UnitNormal = new double[nDim]; - USens = new double[nVar]; + UnitNormal = new su2double[nDim]; + USens = new su2double[nVar]; /*--- Initialize sensitivities to zero ---*/ Total_Sens_Geo = 0.0; @@ -2149,9 +2149,9 @@ void CAdjTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, bool implicit; unsigned short iDim, iVar, jVar; unsigned long iVertex, iPoint; - double *d, *Normal, Area, *UnitNormal, *Coord; - double *Psi, *Psi_Aux, phin, bcn; - double *U, *V, *dPdU; + su2double *d, *Normal, Area, *UnitNormal, *Coord; + su2double *Psi, *Psi_Aux, phin, bcn; + su2double *U, *V, *dPdU; /*--- Set booleans from config ---*/ implicit = (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT); @@ -2172,8 +2172,8 @@ void CAdjTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, d = NULL; /*--- Allocate arrays ---*/ - UnitNormal = new double[nDim]; - Psi = new double[nVar]; + UnitNormal = new su2double[nDim]; + Psi = new su2double[nVar]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); @@ -2251,9 +2251,9 @@ void CAdjTNE2EulerSolver::BC_Sym_Plane(CGeometry *geometry, bool implicit; unsigned short iDim, iVar, jVar; unsigned long iVertex, iPoint; - double *Normal, Area, *UnitNormal, *Coord; - double *Psi, *Psi_Aux, phin; - double *U, *V, *dPdU; + su2double *Normal, Area, *UnitNormal, *Coord; + su2double *Psi, *Psi_Aux, phin; + su2double *U, *V, *dPdU; /*--- Set booleans from config ---*/ implicit = (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT); @@ -2271,8 +2271,8 @@ void CAdjTNE2EulerSolver::BC_Sym_Plane(CGeometry *geometry, conv_numerics->SetRhoCvveIndex(solver_container[TNE2_SOL]->node[0]->GetRhoCvveIndex()); /*--- Allocate arrays ---*/ - UnitNormal = new double[nDim]; - Psi = new double[nVar]; + UnitNormal = new su2double[nDim]; + Psi = new su2double[nVar]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); @@ -2344,16 +2344,16 @@ void CAdjTNE2EulerSolver::BC_Far_Field(CGeometry *geometry, bool implicit; unsigned long iVertex, iPoint; unsigned short iVar, iDim; - double *Normal, *U_domain, *U_infty, *V_domain, *V_infty; - double *Psi_domain, *Psi_infty; + su2double *Normal, *U_domain, *U_infty, *V_domain, *V_infty; + su2double *Psi_domain, *Psi_infty; /*--- Set booleans from config settings ---*/ implicit = (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT); /*--- Allocate arrays ---*/ - Normal = new double[nDim]; - Psi_domain = new double[nVar]; - Psi_infty = new double[nVar]; + Normal = new su2double[nDim]; + Psi_domain = new su2double[nVar]; + Psi_infty = new su2double[nVar]; /*--- Pass structure of the primitive variable vector to CNumerics ---*/ conv_numerics->SetRhosIndex ( solver_container[TNE2_SOL]->node[0]->GetRhosIndex() ); @@ -2431,7 +2431,7 @@ CAdjTNE2NSSolver::CAdjTNE2NSSolver(CGeometry *geometry, bool restart; unsigned short iDim, iMarker, iSpecies, iVar, nLineLets; unsigned long iPoint, index, iVertex; - double dull_val; + su2double dull_val; string text_line, mesh_filename; string filename, AdjExt; ifstream restart_file; @@ -2460,39 +2460,39 @@ CAdjTNE2NSSolver::CAdjTNE2NSSolver(CGeometry *geometry, node = new CVariable*[nPoint]; /*--- Define some auxiliary arrays related to the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; - Res_Visc_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; - Res_Conv_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; - Res_Visc_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Res_Conv_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_i[iVar] = 0.0; + Res_Visc_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_i[iVar] = 0.0; + Res_Conv_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv_j[iVar] = 0.0; + Res_Visc_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc_j[iVar] = 0.0; /*--- Define some auxiliary arrays related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Point to point Jacobians. These are always defined because they are also used for sensitivity calculations. ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Solution and residual vectors ---*/ @@ -2502,15 +2502,15 @@ CAdjTNE2NSSolver::CAdjTNE2NSSolver(CGeometry *geometry, /*--- Jacobians and vector structures for implicit computations ---*/ if (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT) { - Jacobian_ii = new double* [nVar]; - Jacobian_ij = new double* [nVar]; - Jacobian_ji = new double* [nVar]; - Jacobian_jj = new double* [nVar]; + Jacobian_ii = new su2double* [nVar]; + Jacobian_ij = new su2double* [nVar]; + Jacobian_ji = new su2double* [nVar]; + Jacobian_jj = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ii[iVar] = new double [nVar]; - Jacobian_ij[iVar] = new double [nVar]; - Jacobian_ji[iVar] = new double [nVar]; - Jacobian_jj[iVar] = new double [nVar]; + Jacobian_ii[iVar] = new su2double [nVar]; + Jacobian_ij[iVar] = new su2double [nVar]; + Jacobian_ji[iVar] = new su2double [nVar]; + Jacobian_jj[iVar] = new su2double [nVar]; } if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Adjoint N-S). MG level: " << iMesh <<"." << endl; @@ -2531,26 +2531,26 @@ CAdjTNE2NSSolver::CAdjTNE2NSSolver(CGeometry *geometry, if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Sensitivity definition and coefficient on all markers ---*/ - CSensitivity = new double* [nMarker]; + CSensitivity = new su2double* [nMarker]; for (iMarker=0; iMarkernVertex[iMarker]]; + CSensitivity[iMarker] = new su2double [geometry->nVertex[iMarker]]; } - Sens_Geo = new double[nMarker]; - Sens_Mach = new double[nMarker]; - Sens_AoA = new double[nMarker]; - Sens_Press = new double[nMarker]; - Sens_Temp = new double[nMarker]; + Sens_Geo = new su2double[nMarker]; + Sens_Mach = new su2double[nMarker]; + Sens_AoA = new su2double[nMarker]; + Sens_Press = new su2double[nMarker]; + Sens_Temp = new su2double[nMarker]; /*--- Initialize sensitivities to zero ---*/ for (iMarker = 0; iMarker < nMarker; iMarker++) { @@ -2564,8 +2564,8 @@ CAdjTNE2NSSolver::CAdjTNE2NSSolver(CGeometry *geometry, } /*--- Initialize the adjoint variables to zero (infinity state) ---*/ - PsiRho_Inf = new double [nSpecies]; - Phi_Inf = new double [nDim]; + PsiRho_Inf = new su2double [nSpecies]; + Phi_Inf = new su2double [nDim]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) PsiRho_Inf[iSpecies] = 0.0; for (iDim = 0; iDim < nDim; iDim++) @@ -2715,7 +2715,7 @@ void CAdjTNE2NSSolver::Preprocessing(CGeometry *geometry, unsigned short RunTime_EqSystem, bool Output) { bool implicit, second_order, center, center_jst, limiter, RightSol; unsigned long iPoint, ErrorCounter; - double SharpEdge_Distance; + su2double SharpEdge_Distance; int rank; #ifndef HAVE_MPI @@ -2792,7 +2792,7 @@ void CAdjTNE2NSSolver::Preprocessing(CGeometry *geometry, /*--- Error message ---*/ #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif if ((ErrorCounter != 0) && (rank == MASTER_NODE) && (iMesh == MESH_0)) cout <<"The solution contains "<< ErrorCounter << " non-physical points." << endl; @@ -3051,46 +3051,46 @@ void CAdjTNE2NSSolver::Viscous_Sensitivity(CGeometry *geometry, unsigned short iDim, jDim, iMarker, iVar; //Geometry declarations - double Area, eps; - double *Normal, *UnitNormal; + su2double Area, eps; + su2double *Normal, *UnitNormal; Normal = NULL; UnitNormal = NULL; - UnitNormal = new double[nDim]; + UnitNormal = new su2double[nDim]; // Direct problem declarations unsigned short T_INDEX, TVE_INDEX, VEL_INDEX; - double rho, H; - double div_vel, dnT, dnTve; - double mu, ktr, kve; - double *U, *dnvel; - double **GradV, **sigma; + su2double rho, H; + su2double div_vel, dnT, dnTve; + su2double mu, ktr, kve; + su2double *U, *dnvel; + su2double **GradV, **sigma; U = NULL; GradV = NULL; - dnvel = new double [nDim]; - sigma = new double *[nDim]; + dnvel = new su2double [nDim]; + sigma = new su2double *[nDim]; for (iDim = 0; iDim < nDim; iDim++) - sigma[iDim] = new double[nDim]; + sigma[iDim] = new su2double[nDim]; // Adjoint problem declarations - double vartheta, dnPsiE, dnPsiEve, div_phi, GPsiEdotVel; - double B1, B21, B22, B23, B24, B31, B32, B33, B34; - double *Psi, *d; - double **GradPsi, **SigmaPhi, **SigmaPsiE; + su2double vartheta, dnPsiE, dnPsiEve, div_phi, GPsiEdotVel; + su2double B1, B21, B22, B23, B24, B31, B32, B33, B34; + su2double *Psi, *d; + su2double **GradPsi, **SigmaPhi, **SigmaPsiE; Psi = NULL; d = NULL; GradPsi = NULL; - SigmaPhi = new double *[nDim]; - SigmaPsiE = new double *[nDim]; + SigmaPhi = new su2double *[nDim]; + SigmaPsiE = new su2double *[nDim]; for (iDim = 0; iDim < nDim; iDim++) { - SigmaPhi[iDim] = new double[nDim]; - SigmaPsiE[iDim] = new double[nDim]; + SigmaPhi[iDim] = new su2double[nDim]; + SigmaPsiE[iDim] = new su2double[nDim]; } /*--- Initialize total sensitivites ---*/ @@ -3534,17 +3534,17 @@ void CAdjTNE2NSSolver::Viscous_Sensitivity(CGeometry *geometry, #ifdef HAVE_MPI - double MyTotal_Sens_Geo = Total_Sens_Geo; Total_Sens_Geo = 0.0; -// double MyTotal_Sens_Mach = Total_Sens_Mach; Total_Sens_Mach = 0.0; -// double MyTotal_Sens_AoA = Total_Sens_AoA; Total_Sens_AoA = 0.0; -// double MyTotal_Sens_Press = Total_Sens_Press; Total_Sens_Press = 0.0; -// double MyTotal_Sens_Temp = Total_Sens_Temp; Total_Sens_Temp = 0.0; + su2double MyTotal_Sens_Geo = Total_Sens_Geo; Total_Sens_Geo = 0.0; +// su2double MyTotal_Sens_Mach = Total_Sens_Mach; Total_Sens_Mach = 0.0; +// su2double MyTotal_Sens_AoA = Total_Sens_AoA; Total_Sens_AoA = 0.0; +// su2double MyTotal_Sens_Press = Total_Sens_Press; Total_Sens_Press = 0.0; +// su2double MyTotal_Sens_Temp = Total_Sens_Temp; Total_Sens_Temp = 0.0; - MPI_Allreduce(&MyTotal_Sens_Geo, &Total_Sens_Geo, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -// MPI_Allreduce(&MyTotal_Sens_Mach, &Total_Sens_Mach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -// MPI_Allreduce(&MyTotal_Sens_AoA, &Total_Sens_AoA, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -// MPI_Allreduce(&MyTotal_Sens_Press, &Total_Sens_Press, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -// MPI_Allreduce(&MyTotal_Sens_Temp, &Total_Sens_Temp, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyTotal_Sens_Geo, &Total_Sens_Geo, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// SU2_MPI::Allreduce(&MyTotal_Sens_Mach, &Total_Sens_Mach, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// SU2_MPI::Allreduce(&MyTotal_Sens_AoA, &Total_Sens_AoA, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// SU2_MPI::Allreduce(&MyTotal_Sens_Press, &Total_Sens_Press, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// SU2_MPI::Allreduce(&MyTotal_Sens_Temp, &Total_Sens_Temp, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif @@ -3579,44 +3579,44 @@ void CAdjTNE2NSSolver::BC_HeatFlux_Wall(CGeometry *geometry, bool implicit; unsigned short iDim, iVar, jVar; unsigned long iPoint, iVertex, total_index; - double ktr, kve; - double dnPsiE, dnPsiEve; - double *Normal, *d; - double *dPdU, *dTdU, *dTvedU; - double *Psi, *phi; - double **GradPsi; + su2double ktr, kve; + su2double dnPsiE, dnPsiEve; + su2double *Normal, *d; + su2double *dPdU, *dTdU, *dTvedU; + su2double *Psi, *phi; + su2double **GradPsi; // unsigned long iVertex, iPoint, total_index, Point_Normal; // unsigned short iDim, iVar, jVar, jDim; -// double *d, *U, l1psi, mu_dyn, Temp, dVisc_T, rho, pressure, div_phi, +// su2double *d, *U, l1psi, mu_dyn, Temp, dVisc_T, rho, pressure, div_phi, // force_stress, Sigma_5, **PsiVar_Grad, phi[3]; -// double phis1, phis2, sq_vel, ProjVel, Enthalpy, *GridVel, phi_u, d_n; -// double Energy, ViscDens, XiDens, Density, SoundSpeed, Pressure, dPhiE_dn, Laminar_Viscosity, Eddy_Viscosity, +// su2double phis1, phis2, sq_vel, ProjVel, Enthalpy, *GridVel, phi_u, d_n; +// su2double Energy, ViscDens, XiDens, Density, SoundSpeed, Pressure, dPhiE_dn, Laminar_Viscosity, Eddy_Viscosity, // Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz, // Sigma_xx5, Sigma_yy5, Sigma_zz5, Sigma_xy5, Sigma_xz5, // Sigma_yz5, eta_xx, eta_yy, eta_zz, eta_xy, eta_xz, eta_yz; // // -// double *Psi = new double[nVar]; -// double **Tau = new double* [nDim]; +// su2double *Psi = new su2double[nVar]; +// su2double **Tau = new su2double* [nDim]; // for (iDim = 0; iDim < nDim; iDim++) -// Tau[iDim] = new double [nDim]; -// double *Velocity = new double[nDim]; -// double *Normal = new double[nDim]; +// Tau[iDim] = new su2double [nDim]; +// su2double *Velocity = new su2double[nDim]; +// su2double *Normal = new su2double[nDim]; // -// double **GradPhi = new double* [nDim]; +// su2double **GradPhi = new su2double* [nDim]; // for (iDim = 0; iDim < nDim; iDim++) -// GradPhi[iDim] = new double [nDim]; -// double *GradPsiE = new double [nDim]; +// GradPhi[iDim] = new su2double [nDim]; +// su2double *GradPsiE = new su2double [nDim]; /*--- Set booleans ---*/ implicit = (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT); /*--- Allocate arrays ---*/ - Normal = new double[nDim]; - phi = new double[nDim]; - Psi = new double[nVar]; + Normal = new su2double[nDim]; + phi = new su2double[nDim]; + Psi = new su2double[nVar]; /*--- Loop over boundary points ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3777,13 +3777,13 @@ void CAdjTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, unsigned long iVertex, iPoint, total_index, Point_Normal; unsigned short iDim, iVar, jVar; unsigned short RHOS_INDEX, RHO_INDEX, T_INDEX, TVE_INDEX; - double *V, *dPdU, *d, q, dn; - double *GradT, *GradTve; - double ktr, kve, qtr, qve; - double Area; - double phi[3]; - double pnorm; - double *Psi, *Normal, UnitNormal[3]; + su2double *V, *dPdU, *d, q, dn; + su2double *GradT, *GradTve; + su2double ktr, kve, qtr, qve; + su2double Area; + su2double phi[3]; + su2double pnorm; + su2double *Psi, *Normal, UnitNormal[3]; /*--- Set booleans from CConfig specifications ---*/ implicit = (config->GetKind_TimeIntScheme_AdjTNE2() == EULER_IMPLICIT); @@ -3792,8 +3792,8 @@ void CAdjTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX)); /*--- Allocate arrays ---*/ - Psi = new double[nVar]; - Normal = new double[nDim]; + Psi = new su2double[nVar]; + Normal = new su2double[nDim]; /*--- Get primitive vector locators ---*/ RHOS_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhosIndex(); diff --git a/SU2_CFD/src/solver_adjoint_turbulent.cpp b/SU2_CFD/src/solver_adjoint_turbulent.cpp index 7a7e3afbab5..f8e012b15c8 100644 --- a/SU2_CFD/src/solver_adjoint_turbulent.cpp +++ b/SU2_CFD/src/solver_adjoint_turbulent.cpp @@ -56,35 +56,35 @@ CAdjTurbSolver::CAdjTurbSolver(CGeometry *geometry, CConfig *config, unsigned sh nPoint = geometry->GetnPoint(); nPointDomain = geometry->GetnPointDomain(); - Residual = new double [nVar]; Residual_RMS = new double[nVar]; - Residual_i = new double [nVar]; Residual_j = new double [nVar]; - Residual_Max = new double [nVar]; Point_Max = new unsigned long[nVar]; - Point_Max_Coord = new double*[nVar]; + Residual = new su2double [nVar]; Residual_RMS = new su2double[nVar]; + Residual_i = new su2double [nVar]; Residual_j = new su2double [nVar]; + Residual_Max = new su2double [nVar]; Point_Max = new unsigned long[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } - Solution = new double [nVar]; - Solution_i = new double [nVar]; - Solution_j = new double [nVar]; + Solution = new su2double [nVar]; + Solution_i = new su2double [nVar]; + Solution_j = new su2double [nVar]; /*--- Define some auxiliar vector related with the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; /*--- Define some auxiliar vector related with the flow solution ---*/ - FlowSolution_i = new double [nDim+2]; FlowSolution_j = new double [nDim+2]; + FlowSolution_i = new su2double [nDim+2]; FlowSolution_j = new su2double [nDim+2]; /*--- Point to point Jacobians ---*/ - Jacobian_ii = new double* [nVar]; - Jacobian_ij = new double* [nVar]; - Jacobian_ji = new double* [nVar]; - Jacobian_jj = new double* [nVar]; + Jacobian_ii = new su2double* [nVar]; + Jacobian_ij = new su2double* [nVar]; + Jacobian_ji = new su2double* [nVar]; + Jacobian_jj = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) { - Jacobian_ii[iVar] = new double [nVar]; - Jacobian_ij[iVar] = new double [nVar]; - Jacobian_ji[iVar] = new double [nVar]; - Jacobian_jj[iVar] = new double [nVar]; + Jacobian_ii[iVar] = new su2double [nVar]; + Jacobian_ij[iVar] = new su2double [nVar]; + Jacobian_ji[iVar] = new su2double [nVar]; + Jacobian_jj[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ @@ -103,13 +103,13 @@ CAdjTurbSolver::CAdjTurbSolver(CGeometry *geometry, CConfig *config, unsigned sh /*--- Computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar+1]; + cvector = new su2double* [nVar+1]; for (iVar = 0; iVar < nVar+1; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Far-Field values and initizalization ---*/ @@ -124,7 +124,7 @@ CAdjTurbSolver::CAdjTurbSolver(CGeometry *geometry, CConfig *config, unsigned sh } else { unsigned long index; - double dull_val; + su2double dull_val; string filename, AdjExt, text_line; ifstream restart_file; @@ -214,7 +214,7 @@ CAdjTurbSolver::~CAdjTurbSolver(void) { void CAdjTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -237,8 +237,8 @@ void CAdjTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -250,7 +250,7 @@ void CAdjTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -289,7 +289,7 @@ void CAdjTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { void CAdjTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -312,8 +312,8 @@ void CAdjTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -325,7 +325,7 @@ void CAdjTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -364,12 +364,12 @@ void CAdjTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) void CAdjTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI int send_to, receive_from; @@ -392,8 +392,8 @@ void CAdjTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *con nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -406,7 +406,7 @@ void CAdjTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *con #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -542,11 +542,11 @@ void CAdjTurbSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_containe conv_numerics->SetNormal(geometry->vertex[val_marker][iVertex]->GetNormal()); /*--- Set Conservative variables (for convection) ---*/ - double* U_i = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(); + su2double* U_i = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(); conv_numerics->SetConservative(U_i, NULL); /*--- Turbulent adjoint variables w/o reconstruction ---*/ - double* TurbPsi_i = node[iPoint]->GetSolution(); + su2double* TurbPsi_i = node[iPoint]->GetSolution(); conv_numerics->SetTurbAdjointVar(TurbPsi_i, NULL); /*--- Add Residuals and Jacobians ---*/ @@ -585,8 +585,8 @@ void CAdjTurbSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contain void CAdjTurbSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { unsigned long iEdge, iPoint, jPoint; - double *U_i, *U_j, *TurbPsi_i, *TurbPsi_j, **TurbVar_Grad_i, **TurbVar_Grad_j; -// double *Limiter_i = NULL, *Limiter_j = NULL, **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j; + su2double *U_i, *U_j, *TurbPsi_i, *TurbPsi_j, **TurbVar_Grad_i, **TurbVar_Grad_j; +// su2double *Limiter_i = NULL, *Limiter_j = NULL, **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j; // unsigned short iDim, iVar; bool second_order = ((config->GetSpatialOrder() == SECOND_ORDER) || (config->GetSpatialOrder() == SECOND_ORDER_LIMITER)); @@ -684,7 +684,7 @@ void CAdjTurbSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_conta void CAdjTurbSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh, unsigned short iRKStep) { unsigned long iEdge, iPoint, jPoint; - double *Coord_i, *Coord_j; + su2double *Coord_i, *Coord_j; for (iEdge = 0; iEdge < geometry->GetnEdge(); iEdge++) { @@ -729,8 +729,8 @@ void CAdjTurbSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_cont void CAdjTurbSolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, CConfig *config, unsigned short iMesh) { unsigned long iPoint; - double *U_i, **GradPrimVar_i, *TurbVar_i; - double **TurbVar_Grad_i, *TurbPsi_i, **PsiVar_Grad_i; // Gradients + su2double *U_i, **GradPrimVar_i, *TurbVar_i; + su2double **TurbVar_Grad_i, *TurbPsi_i, **PsiVar_Grad_i; // Gradients /*--- Piecewise source term ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -775,7 +775,7 @@ void CAdjTurbSolver::Source_Residual(CGeometry *geometry, CSolver **solver_conta } // /*--- Conservative Source Term ---*/ -// double **TurbVar_Grad_j; +// su2double **TurbVar_Grad_j; // unsigned long jPoint, iEdge; // // for (iEdge = 0; iEdge < geometry->GetnEdge(); iEdge++) { @@ -814,7 +814,7 @@ void CAdjTurbSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solv unsigned short iVar; unsigned long iPoint, total_index; - double Delta, Vol; + su2double Delta, Vol; /*--- Set maximum residual to zero ---*/ diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index af569855c14..54851ac2b48 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -38,7 +38,7 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { unsigned long iPoint; unsigned short iVar, jVar, iDim, NodesElement = 0, nLineLets; unsigned long nMarker, nElem; - double dull_val; + su2double dull_val; int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -66,25 +66,25 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Define some auxiliary vectors related to the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; /*--- Element aux stiffness matrix definition ---*/ - StiffMatrix_Elem = new double*[NodesElement*nDim]; + StiffMatrix_Elem = new su2double*[NodesElement*nDim]; for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - StiffMatrix_Elem[iVar] = new double [NodesElement*nDim]; + StiffMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; for (jVar = 0; jVar < NodesElement*nDim; jVar++) { StiffMatrix_Elem[iVar][jVar] = 0.0; } @@ -92,9 +92,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Node aux stiffness matrix definition ---*/ - StiffMatrix_Node = new double*[nVar]; + StiffMatrix_Node = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - StiffMatrix_Node[iVar] = new double [nVar]; + StiffMatrix_Node[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { StiffMatrix_Node[iVar][jVar] = 0.0; } @@ -102,9 +102,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Element aux mass matrix definition ---*/ - MassMatrix_Elem = new double*[NodesElement*nDim]; + MassMatrix_Elem = new su2double*[NodesElement*nDim]; for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - MassMatrix_Elem[iVar] = new double [NodesElement*nDim]; + MassMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; for (jVar = 0; jVar < NodesElement*nDim; jVar++) { MassMatrix_Elem[iVar][jVar] = 0.0; } @@ -112,9 +112,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Node aux mass matrix definition ---*/ - MassMatrix_Node = new double*[nVar]; + MassMatrix_Node = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_Node[iVar] = new double [nVar]; + MassMatrix_Node[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { MassMatrix_Node[iVar][jVar] = 0.0; } @@ -122,9 +122,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Node aux mass matrix definition ---*/ - MassMatrix_Node_Int = new double*[nVar]; + MassMatrix_Node_Int = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_Node_Int[iVar] = new double [nVar]; + MassMatrix_Node_Int[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { MassMatrix_Node_Int[iVar][jVar] = 0.0; } @@ -132,9 +132,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Element aux damping matrix definition ---*/ - DampMatrix_Elem = new double*[NodesElement*nDim]; + DampMatrix_Elem = new su2double*[NodesElement*nDim]; for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - DampMatrix_Elem[iVar] = new double [NodesElement*nDim]; + DampMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; for (jVar = 0; jVar < NodesElement*nDim; jVar++) { DampMatrix_Elem[iVar][jVar] = 0.0; } @@ -142,9 +142,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Node aux damping matrix definition ---*/ - DampMatrix_Node = new double*[nVar]; + DampMatrix_Node = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - DampMatrix_Node[iVar] = new double [nVar]; + DampMatrix_Node[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { DampMatrix_Node[iVar][jVar] = 0.0; } @@ -159,10 +159,10 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- DESTRUCT THIS! ---*/ /*--- Element aux dead load vector definition ---*/ - DeadLoadVector_Elem = new double [NodesElement*nDim]; + DeadLoadVector_Elem = new su2double [NodesElement*nDim]; /*--- Node aux dead load vector definition ---*/ - DeadLoadVector_Node = new double [nVar]; + DeadLoadVector_Node = new su2double [nVar]; /*--- Initialization of matrix structures ---*/ @@ -202,13 +202,13 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Computation of gradients by least squares ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (unsigned short iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; /*--- Check for a restart, initialize from zero otherwise ---*/ @@ -452,8 +452,8 @@ void CFEASolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_c void CFEASolver::Compute_IntegrationConstants(CConfig *config) { - double Delta_t= config->GetDelta_DynTime(); - double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); + su2double Delta_t= config->GetDelta_DynTime(); + su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); /*--- Integration constants for Newmark scheme ---*/ @@ -472,7 +472,7 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; unsigned long iElem, PointCorners[8]; - double CoordCorners[8][3]; + su2double CoordCorners[8][3]; form2d=config->GetElas2D_Formulation(); @@ -529,7 +529,7 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; unsigned long iElem, PointCorners[8]; - double CoordCorners[8][3]; + su2double CoordCorners[8][3]; form2d=config->GetElas2D_Formulation(); @@ -557,7 +557,7 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c /*--- This solves the problem but... why? ---*/ for (iVar = 0; iVar < nNodes*nDim; iVar++) { - StiffMatrix_Elem[iVar] = new double [nNodes*nDim]; + StiffMatrix_Elem[iVar] = new su2double [nNodes*nDim]; for (jVar = 0; jVar < nNodes*nDim; jVar++) { StiffMatrix_Elem[iVar][jVar] = 0.0; } @@ -655,15 +655,15 @@ void CFEASolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNu bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // TODO: Improve this bit (memory leak) - double **mIdentity, **mZeros; // Variables to delete blocks in the jacobian + su2double **mIdentity, **mZeros; // Variables to delete blocks in the jacobian - mIdentity = new double *[nDim]; // Number of rows, allocate memory for each + mIdentity = new su2double *[nDim]; // Number of rows, allocate memory for each for(int iMat=0; iMatGetDispl_Value(config->GetMarker_All_TagBound(val_marker)); + su2double TotalDispl = config->GetDispl_Value(config->GetMarker_All_TagBound(val_marker)); for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); @@ -886,13 +886,13 @@ void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_co void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - double a[3], b[3]; + su2double a[3], b[3]; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; - double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; + su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; unsigned short iDim; - double TotalLoad = config->GetLoad_Value(config->GetMarker_All_TagBound(val_marker)); + su2double TotalLoad = config->GetLoad_Value(config->GetMarker_All_TagBound(val_marker)); for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { @@ -954,24 +954,24 @@ void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - double a[3], b[3], AC[3], BD[3]; + su2double a[3], b[3], AC[3], BD[3]; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; unsigned short iDim; - double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); - double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); - double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); + su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); + su2double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); + su2double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); - double TotalLoad; + su2double TotalLoad; bool Gradual_Load = config->GetGradual_Load(); - double CurrentTime=config->GetCurrent_DynTime(); - double ModAmpl, NonModAmpl; + su2double CurrentTime=config->GetCurrent_DynTime(); + su2double ModAmpl, NonModAmpl; bool Ramp_Load = config->GetRamp_Load(); - double Ramp_Time = config->GetRamp_Time(); + su2double Ramp_Time = config->GetRamp_Time(); if (Ramp_Load){ ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; @@ -987,7 +987,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN } /*--- Compute the norm of the vector that was passed in the config file ---*/ - double Norm; + su2double Norm; if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); @@ -1025,7 +1025,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN b[iDim] = Coord_2[iDim]-Coord_0[iDim]; } - double Ni=0 , Nj=0, Nk=0; + su2double Ni=0 , Nj=0, Nk=0; Ni=a[1]*b[2]-a[2]*b[1]; Nj=-a[0]*b[2]+a[2]*b[0]; @@ -1045,7 +1045,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; } - double Ni=0 , Nj=0, Nk=0; + su2double Ni=0 , Nj=0, Nk=0; Ni=AC[1]*BD[2]-AC[2]*BD[1]; Nj=-AC[0]*BD[2]+AC[2]*BD[0]; @@ -1099,24 +1099,24 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - double a[3], b[3], AC[3], BD[3]; + su2double a[3], b[3], AC[3], BD[3]; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; unsigned short iDim; - double LoadAmplitude = config->GetLoad_Sine_Amplitude(config->GetMarker_All_TagBound(val_marker)); - double LoadFrequency = config->GetLoad_Sine_Frequency(config->GetMarker_All_TagBound(val_marker)); - double *Load_Dir_Local= config->GetLoad_Sine_Dir(config->GetMarker_All_TagBound(val_marker)); + su2double LoadAmplitude = config->GetLoad_Sine_Amplitude(config->GetMarker_All_TagBound(val_marker)); + su2double LoadFrequency = config->GetLoad_Sine_Frequency(config->GetMarker_All_TagBound(val_marker)); + su2double *Load_Dir_Local= config->GetLoad_Sine_Dir(config->GetMarker_All_TagBound(val_marker)); - double CurrentTime=config->GetCurrent_DynTime(); + su2double CurrentTime=config->GetCurrent_DynTime(); - double TotalLoad; + su2double TotalLoad; TotalLoad=LoadAmplitude*sin(2*PI_NUMBER*LoadFrequency*CurrentTime); /*--- Compute the norm of the vector that was passed in the config file ---*/ - double Norm; + su2double Norm; if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); @@ -1154,7 +1154,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C b[iDim] = Coord_2[iDim]-Coord_0[iDim]; } - double Ni=0 , Nj=0, Nk=0; + su2double Ni=0 , Nj=0, Nk=0; Ni=a[1]*b[2]-a[2]*b[1]; Nj=-a[0]*b[2]+a[2]*b[0]; @@ -1174,7 +1174,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; } - double Ni=0 , Nj=0, Nk=0; + su2double Ni=0 , Nj=0, Nk=0; Ni=AC[1]*BD[2]-AC[2]*BD[1]; Nj=-AC[0]*BD[2]+AC[2]*BD[0]; @@ -1239,12 +1239,12 @@ void CFEASolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, C void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics_container, unsigned short iMesh) { unsigned long iPoint, iElem; - double **Stress, VonMises_Stress, MaxVonMises_Stress = 0.0; - double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; + su2double **Stress, VonMises_Stress, MaxVonMises_Stress = 0.0; + su2double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; unsigned long PointCorners[8]; unsigned short nNodes=0, iNodes, iDim, jDim, form2d; - double CoordCorners[8][3], CoordGauss[8][3]; + su2double CoordCorners[8][3], CoordGauss[8][3]; /*--- Container of the shape functions ---*/ CNumerics *numerics; @@ -1310,7 +1310,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, if (nDim == 2) { - double StressNodal[8][3], DispElement[8]; + su2double StressNodal[8][3], DispElement[8]; /*--- Set the element displacements vector, from the global solution ---*/ @@ -1343,7 +1343,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, if (nDim == 3) { - double StressNodal[8][6], DispElement[24]; + su2double StressNodal[8][6], DispElement[24]; /*--- Set the element displacements vector, from the global solution ---*/ @@ -1454,8 +1454,8 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - MPI_Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #endif @@ -1478,7 +1478,7 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver unsigned long ExtIter = config->GetExtIter(); - double *PointTimeRes = NULL; + su2double *PointTimeRes = NULL; bool check = true; @@ -1593,7 +1593,7 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver } -// double checkJacobian; +// su2double checkJacobian; // unsigned long iNode, jNode; // unsigned short jVar; // @@ -1654,7 +1654,7 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - double check; + su2double check; } @@ -1841,7 +1841,7 @@ void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { unsigned short iMarker, icommas, iDim; unsigned long iVertex, iPoint, iExtIter; - double Pressure = 0.0, Dist, Coord[3]; + su2double Pressure = 0.0, Dist, Coord[3]; string text_line; string::size_type position; ifstream Surface_file; @@ -1880,13 +1880,13 @@ void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { if ((config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) || (config->GetUnsteady_Simulation() == TIME_SPECTRAL)) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.csv", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.csv", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.csv", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); } - else sprintf (buffer, ".csv"); + else SPRINTF (buffer, ".csv"); strcat (cstr, buffer); @@ -1948,11 +1948,11 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; unsigned long *nodeVertex, *donorVertex; - double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; - double factorForces; - double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; + su2double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; + su2double factorForces; + su2double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; - double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; + su2double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); @@ -1961,15 +1961,15 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || (flow_config->GetKind_Solver() == RANS) ); - double Pinf; + su2double Pinf; - double ModAmpl; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); + su2double ModAmpl; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); bool Ramp_Load = fea_config->GetRamp_Load(); - double Ramp_Time = fea_config->GetRamp_Time(); + su2double Ramp_Time = fea_config->GetRamp_Time(); if (CurrentTime <= Static_Time){ ModAmpl=0.0; @@ -2043,34 +2043,34 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); - nodePress = new double [nVertexFlow]; - nodeShearStress = new double [nVertexFlow]; + nodePress = new su2double [nVertexFlow]; + nodeShearStress = new su2double [nVertexFlow]; nodeVertex = new unsigned long [nVertexFlow]; donorVertex = new unsigned long [nVertexFlow]; - tn_e = new double [nVar*nDim]; + tn_e = new su2double [nVar*nDim]; - tn_f = new double* [nVertexFlow]; + tn_f = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - tn_f[iVertex] = new double[nDim]; + tn_f[iVertex] = new su2double[nDim]; } - normalsVertex = new double* [nVertexFlow]; + normalsVertex = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex[iVertex] = new double[nDim]; + normalsVertex[iVertex] = new su2double[nDim]; } - normalsVertex_Unit = new double* [nVertexFlow]; + normalsVertex_Unit = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex_Unit[iVertex] = new double[nDim]; + normalsVertex_Unit[iVertex] = new su2double[nDim]; } - double **Grad_PrimVar; - double Viscosity = 0.0, Density = 0.0; - double Tau[3][3]; - double div_vel, Delta; - double Area; - double Pn; + su2double **Grad_PrimVar; + su2double Viscosity = 0.0, Density = 0.0; + su2double Tau[3][3]; + su2double div_vel, Delta; + su2double Area; + su2double Pn; /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ @@ -2186,11 +2186,11 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; unsigned long *nodeVertex, *donorVertex; - double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; - double factorForces; - double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; + su2double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; + su2double factorForces; + su2double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; - double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; + su2double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); @@ -2199,15 +2199,15 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || (flow_config->GetKind_Solver() == RANS) ); - double Pinf; + su2double Pinf; - double ModAmpl; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); + su2double ModAmpl; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); bool Ramp_Load = fea_config->GetRamp_Load(); - double Ramp_Time = fea_config->GetRamp_Time(); + su2double Ramp_Time = fea_config->GetRamp_Time(); if (CurrentTime <= Static_Time){ ModAmpl=0.0; @@ -2284,29 +2284,29 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome nodeVertex = new unsigned long [nVertexFlow]; donorVertex = new unsigned long [nVertexFlow]; - tn_e = new double [nVar*nDim]; + tn_e = new su2double [nVar*nDim]; - tn_f = new double* [nVertexFlow]; + tn_f = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - tn_f[iVertex] = new double[nDim]; + tn_f[iVertex] = new su2double[nDim]; } - normalsVertex = new double* [nVertexFlow]; + normalsVertex = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex[iVertex] = new double[nDim]; + normalsVertex[iVertex] = new su2double[nDim]; } - normalsVertex_Unit = new double* [nVertexFlow]; + normalsVertex_Unit = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex_Unit[iVertex] = new double[nDim]; + normalsVertex_Unit[iVertex] = new su2double[nDim]; } - double **Grad_PrimVar; - double Viscosity = 0.0, Density = 0.0; - double Tau[3][3]; - double div_vel, Delta; - double Area; - double Pn; + su2double **Grad_PrimVar; + su2double Viscosity = 0.0, Density = 0.0; + su2double Tau[3][3]; + su2double div_vel, Delta; + su2double Area; + su2double Pn; /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ @@ -2422,13 +2422,13 @@ void CFEASolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_c unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *Coord, *VarCoord, *Displacement; + su2double *Coord, *VarCoord, *Displacement; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); - VarCoord = new double [nDim]; + VarCoord = new su2double [nDim]; for (iPoint=0; iPoint < nPoint; iPoint++){ @@ -2449,16 +2449,16 @@ void CFEASolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_c void CFEASolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { unsigned short predOrder=fea_config->GetPredictorOrder(); - double Delta_t= fea_config->GetDelta_DynTime(); + su2double Delta_t= fea_config->GetDelta_DynTime(); unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *solDisp, *solVel, *solVel_tn, *valPred, *checkPred; + su2double *solDisp, *solVel, *solVel_tn, *valPred, *checkPred; -// solDisp=new double [iDim]; -// solVel=new double [iDim]; -// solVel_tn=new double [iDim]; -// valPred=new double [iDim]; -// checkPred=new double [iDim]; +// solDisp=new su2double [iDim]; +// solVel=new su2double [iDim]; +// solVel_tn=new su2double [iDim]; +// valPred=new su2double [iDim]; +// checkPred=new su2double [iDim]; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -2505,23 +2505,23 @@ void CFEASolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fe unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; - double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; - double delta_deltaU[3] = {0.0, 0.0, 0.0}; - double numAitk, denAitk, WAitken; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); - double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; + su2double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; + su2double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; + su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; + su2double numAitk, denAitk, WAitken; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); + su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); WAitken=fea_config->GetAitkenStatRelax(); -// dispPred =new double [iDim]; -// dispPred_Old=new double [iDim]; -// dispCalc =new double [iDim]; -// dispCalc_Old=new double [iDim]; +// dispPred =new su2double [iDim]; +// dispPred_Old=new su2double [iDim]; +// dispCalc =new su2double [iDim]; +// dispCalc_Old=new su2double [iDim]; numAitk = 0.0; denAitk = 0.0; @@ -2616,13 +2616,13 @@ void CFEASolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_con unsigned long iPoint, iDim; unsigned long nPoint, nDim; unsigned short RelaxMethod_FSI; - double *dispPred, *dispCalc; - double WAitken; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); + su2double *dispPred, *dispCalc; + su2double WAitken; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); -// dispPred=new double [iDim]; -// dispCalc=new double [iDim]; +// dispPred=new su2double [iDim]; +// dispCalc=new su2double [iDim]; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -2679,10 +2679,10 @@ void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_co unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *valSolutionPred, *valSolution; + su2double *valSolutionPred, *valSolution; -// valSolutionPred=new double [iDim]; -// valSolution=new double [iDim]; +// valSolutionPred=new su2double [iDim]; +// valSolution=new su2double [iDim]; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); diff --git a/SU2_CFD/src/solver_direct_heat.cpp b/SU2_CFD/src/solver_direct_heat.cpp index 40abccc3a0d..f181ee80fc2 100644 --- a/SU2_CFD/src/solver_direct_heat.cpp +++ b/SU2_CFD/src/solver_direct_heat.cpp @@ -49,26 +49,26 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config) : CSolver() { node = new CVariable*[nPoint]; nVar = 1; - Residual = new double[nVar]; Residual_RMS = new double[nVar]; - Solution = new double[nVar]; - Res_Sour = new double[nVar]; - Residual_Max = new double[nVar]; Point_Max = new unsigned long[nVar]; - Point_Max_Coord = new double*[nVar]; + Residual = new su2double[nVar]; Residual_RMS = new su2double[nVar]; + Solution = new su2double[nVar]; + Res_Sour = new su2double[nVar]; + Residual_Max = new su2double[nVar]; Point_Max = new unsigned long[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Point to point stiffness matrix (only for triangles)---*/ - StiffMatrix_Elem = new double*[nDim+1]; + StiffMatrix_Elem = new su2double*[nDim+1]; for (iVar = 0; iVar < nDim+1; iVar++) { - StiffMatrix_Elem[iVar] = new double [nDim+1]; + StiffMatrix_Elem[iVar] = new su2double [nDim+1]; } - StiffMatrix_Node = new double*[nVar]; + StiffMatrix_Node = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - StiffMatrix_Node[iVar] = new double [nVar]; + StiffMatrix_Node[iVar] = new su2double [nVar]; } /*--- Initialization of matrix structures ---*/ @@ -92,7 +92,7 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Heat coefficient for all of the markers ---*/ - CHeat = new double[config->GetnMarker_All()]; + CHeat = new su2double[config->GetnMarker_All()]; Total_CHeat = 0.0; /*--- Check for a restart (not really used), initialize from zero otherwise ---*/ @@ -201,8 +201,8 @@ void CHeatSolver::Source_Residual(CGeometry *geometry, if (config->GetUnsteady_Simulation() != STEADY) { unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3 = 0; - double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, c[3] = {0.0,0.0,0.0}, d[3] = {0.0,0.0,0.0}, Area_Local = 0.0, Volume_Local = 0.0, Time_Num; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, c[3] = {0.0,0.0,0.0}, d[3] = {0.0,0.0,0.0}, Area_Local = 0.0, Volume_Local = 0.0, Time_Num; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; unsigned short iDim; /*--- Numerical time step (this system is uncoditional stable... a very big number can be used) ---*/ @@ -281,7 +281,7 @@ void CHeatSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_contain CConfig *config, unsigned short iMesh, unsigned short iRKStep) { unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3 = 0, total_index, iPoint; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3 = NULL; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3 = NULL; if (nDim == 2 ) { @@ -363,7 +363,7 @@ void CHeatSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_contain void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, total_index; - double Twall; + su2double Twall; /*--- Identify the boundary ---*/ @@ -401,10 +401,10 @@ void CHeatSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_con unsigned short iMesh, unsigned short RunTime_EqSystem) { unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3 = 0; - double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, c[3] = {0.0,0.0,0.0}, d[3] = {0.0,0.0,0.0}, Area_Local = 0.0, Volume_Local = 0.0, Time_Num; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, c[3] = {0.0,0.0,0.0}, d[3] = {0.0,0.0,0.0}, Area_Local = 0.0, Volume_Local = 0.0, Time_Num; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; unsigned short iDim, iVar; - double TimeJac = 0.0; + su2double TimeJac = 0.0; /*--- Numerical time step (this system is uncoditional stable... a very big number can be used) ---*/ Time_Num = config->GetDelta_UnstTimeND(); @@ -476,7 +476,7 @@ void CHeatSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_con } unsigned long iPoint, total_index; - double *U_time_nM1, *U_time_n, *U_time_nP1; + su2double *U_time_nM1, *U_time_n, *U_time_nP1; /*--- loop over points ---*/ diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index deaa92e12bc..7a318fa2d76 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -93,7 +93,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short unsigned long iPoint, index, counter_local = 0, counter_global = 0, iVertex; unsigned short iVar, iDim, iMarker, nLineLets; - double StaticEnergy, Density, Velocity2, Pressure, Temperature, dull_val; + su2double StaticEnergy, Density, Velocity2, Pressure, Temperature, dull_val; int Unst_RestartIter; ifstream restart_file; @@ -181,61 +181,61 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Define some auxiliary vectors related to the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv[iVar] = 0.0; - Res_Visc = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0; - Res_Sour = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Sour[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Res_Conv = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv[iVar] = 0.0; + Res_Visc = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0; + Res_Sour = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Sour[iVar] = 0.0; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Define some auxiliary vectors related to the primitive solution ---*/ - Primitive = new double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; - Primitive_i = new double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_i[iVar] = 0.0; - Primitive_j = new double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_j[iVar] = 0.0; + Primitive = new su2double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; + Primitive_i = new su2double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_i[iVar] = 0.0; + Primitive_j = new su2double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the Secondary solution ---*/ - Secondary = new double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = 0.0; - Secondary_i = new double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_i[iVar] = 0.0; - Secondary_j = new double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_j[iVar] = 0.0; + Secondary = new su2double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = 0.0; + Secondary_i = new su2double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_i[iVar] = 0.0; + Secondary_j = new su2double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the undivided lapalacian ---*/ if (config->GetKind_ConvNumScheme_Flow() == SPACE_CENTERED) { - iPoint_UndLapl = new double [nPoint]; - jPoint_UndLapl = new double [nPoint]; + iPoint_UndLapl = new su2double [nPoint]; + jPoint_UndLapl = new su2double [nPoint]; } /*--- Define some auxiliary vectors related to low-speed preconditioning ---*/ if (roe_turkel) { - LowMach_Precontioner = new double* [nVar]; + LowMach_Precontioner = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar ++) - LowMach_Precontioner[iVar] = new double[nVar]; + LowMach_Precontioner[iVar] = new su2double[nVar]; } /*--- Initialize the solution and right hand side vectors for storing @@ -249,11 +249,11 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short if (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT) { - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Euler). MG level: " << iMesh <<"." << endl; @@ -277,23 +277,23 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; - cvector = new double* [nPrimVarGrad]; + cvector = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Store the value of the characteristic primitive variables at the boundaries ---*/ - CharacPrimVar = new double** [nMarker]; + CharacPrimVar = new su2double** [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CharacPrimVar[iMarker] = new double* [geometry->nVertex[iMarker]]; + CharacPrimVar[iMarker] = new su2double* [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - CharacPrimVar[iMarker][iVertex] = new double [nPrimVar]; + CharacPrimVar[iMarker][iVertex] = new su2double [nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) { CharacPrimVar[iMarker][iVertex][iVar] = 0.0; } @@ -302,11 +302,11 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Force definition and coefficient arrays for all of the markers ---*/ - CPressure = new double* [nMarker]; - CPressureTarget = new double* [nMarker]; + CPressure = new su2double* [nMarker]; + CPressureTarget = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CPressure[iMarker] = new double [geometry->nVertex[iMarker]]; - CPressureTarget[iMarker] = new double [geometry->nVertex[iMarker]]; + CPressure[iMarker] = new su2double [geometry->nVertex[iMarker]]; + CPressureTarget[iMarker] = new su2double [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { CPressure[iMarker][iVertex] = 0.0; CPressureTarget[iMarker][iVertex] = 0.0; @@ -315,67 +315,67 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Non-dimensional coefficients ---*/ - ForceInviscid = new double[nDim]; - MomentInviscid = new double[3]; - CDrag_Inv = new double[nMarker]; - CLift_Inv = new double[nMarker]; - CSideForce_Inv = new double[nMarker]; - CMx_Inv = new double[nMarker]; - CMy_Inv = new double[nMarker]; - CMz_Inv = new double[nMarker]; - CEff_Inv = new double[nMarker]; - CFx_Inv = new double[nMarker]; - CFy_Inv = new double[nMarker]; - CFz_Inv = new double[nMarker]; - - Surface_CLift_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CDrag_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CSideForce_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CEff_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CFx_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CFy_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CFz_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CMx_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CMy_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CMz_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CLift = new double[config->GetnMarker_Monitoring()]; - Surface_CDrag = new double[config->GetnMarker_Monitoring()]; - Surface_CSideForce = new double[config->GetnMarker_Monitoring()]; - Surface_CEff = new double[config->GetnMarker_Monitoring()]; - Surface_CFx = new double[config->GetnMarker_Monitoring()]; - Surface_CFy = new double[config->GetnMarker_Monitoring()]; - Surface_CFz = new double[config->GetnMarker_Monitoring()]; - Surface_CMx = new double[config->GetnMarker_Monitoring()]; - Surface_CMy = new double[config->GetnMarker_Monitoring()]; - Surface_CMz = new double[config->GetnMarker_Monitoring()]; + ForceInviscid = new su2double[nDim]; + MomentInviscid = new su2double[3]; + CDrag_Inv = new su2double[nMarker]; + CLift_Inv = new su2double[nMarker]; + CSideForce_Inv = new su2double[nMarker]; + CMx_Inv = new su2double[nMarker]; + CMy_Inv = new su2double[nMarker]; + CMz_Inv = new su2double[nMarker]; + CEff_Inv = new su2double[nMarker]; + CFx_Inv = new su2double[nMarker]; + CFy_Inv = new su2double[nMarker]; + CFz_Inv = new su2double[nMarker]; + + Surface_CLift_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CDrag_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CSideForce_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CEff_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFx_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFy_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFz_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMx_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMy_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMz_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CLift = new su2double[config->GetnMarker_Monitoring()]; + Surface_CDrag = new su2double[config->GetnMarker_Monitoring()]; + Surface_CSideForce = new su2double[config->GetnMarker_Monitoring()]; + Surface_CEff = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFx = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFy = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFz = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMx = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMy = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMz = new su2double[config->GetnMarker_Monitoring()]; /*--- Rotorcraft coefficients ---*/ - CT_Inv = new double[nMarker]; - CQ_Inv = new double[nMarker]; - CMerit_Inv = new double[nMarker]; + CT_Inv = new su2double[nMarker]; + CQ_Inv = new su2double[nMarker]; + CMerit_Inv = new su2double[nMarker]; /*--- Supersonic coefficients ---*/ - CEquivArea_Inv = new double[nMarker]; - CNearFieldOF_Inv = new double[nMarker]; + CEquivArea_Inv = new su2double[nMarker]; + CNearFieldOF_Inv = new su2double[nMarker]; /*--- Engine simulation ---*/ - Inflow_MassFlow = new double[nMarker]; - Inflow_Pressure = new double[nMarker]; - Inflow_Mach = new double[nMarker]; - Inflow_Area = new double[nMarker]; + Inflow_MassFlow = new su2double[nMarker]; + Inflow_Pressure = new su2double[nMarker]; + Inflow_Mach = new su2double[nMarker]; + Inflow_Area = new su2double[nMarker]; - Exhaust_MassFlow = new double[nMarker]; - Exhaust_Pressure = new double[nMarker]; - Exhaust_Temperature = new double[nMarker]; - Exhaust_Area = new double[nMarker]; + Exhaust_MassFlow = new su2double[nMarker]; + Exhaust_Pressure = new su2double[nMarker]; + Exhaust_Temperature = new su2double[nMarker]; + Exhaust_Area = new su2double[nMarker]; - Bleed_MassFlow = new double[nMarker]; - Bleed_Pressure = new double[nMarker]; - Bleed_Temperature = new double[nMarker]; - Bleed_Area = new double[nMarker]; + Bleed_MassFlow = new su2double[nMarker]; + Bleed_Pressure = new su2double[nMarker]; + Bleed_Temperature = new su2double[nMarker]; + Bleed_Area = new su2double[nMarker]; /*--- Init total coefficients ---*/ @@ -419,7 +419,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short if (config->GetFixed_CL_Mode()) - Cauchy_Serie = new double [config->GetCauchy_Elems()+1]; + Cauchy_Serie = new su2double [config->GetCauchy_Elems()+1]; /*--- Check for a restart and set up the variables at each node appropriately. Coarse multigrid levels will be intitially set to @@ -441,11 +441,11 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short if (dual_time) { - if (adjoint) { Unst_RestartIter = int(config->GetUnst_AdjointIter()) - 1; } + if (adjoint) { Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) - Unst_RestartIter = int(config->GetUnst_RestartIter())-1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; else - Unst_RestartIter = int(config->GetUnst_RestartIter())-2; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } @@ -524,7 +524,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short #ifndef HAVE_MPI rbuf_NotMatching = sbuf_NotMatching; #else - MPI_Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); #endif if (rbuf_NotMatching != 0) { @@ -596,7 +596,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI - MPI_Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); #else counter_global = counter_local; #endif @@ -740,7 +740,7 @@ CEulerSolver::~CEulerSolver(void) { void CEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -763,8 +763,8 @@ void CEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -776,7 +776,7 @@ void CEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -856,7 +856,7 @@ void CEulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { void CEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI @@ -880,8 +880,8 @@ void CEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -893,7 +893,7 @@ void CEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -972,7 +972,7 @@ void CEulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { void CEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Undivided_Laplacian = NULL, *Buffer_Send_Undivided_Laplacian = NULL; #ifdef HAVE_MPI @@ -996,8 +996,8 @@ void CEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig *con nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Undivided_Laplacian = new double [nBufferR_Vector]; - Buffer_Send_Undivided_Laplacian = new double[nBufferS_Vector]; + Buffer_Receive_Undivided_Laplacian = new su2double [nBufferR_Vector]; + Buffer_Send_Undivided_Laplacian = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1009,7 +1009,7 @@ void CEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig *con #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Undivided_Laplacian, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1089,7 +1089,7 @@ void CEulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig *con void CEulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *config) { unsigned short iMarker, MarkerS, MarkerR, *Buffer_Receive_Neighbor = NULL, *Buffer_Send_Neighbor = NULL; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; + su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -1112,8 +1112,8 @@ void CEulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Lambda = new double [nBufferR_Vector]; - Buffer_Send_Lambda = new double[nBufferS_Vector]; + Buffer_Receive_Lambda = new su2double [nBufferR_Vector]; + Buffer_Send_Lambda = new su2double[nBufferS_Vector]; Buffer_Receive_Neighbor = new unsigned short [nBufferR_Vector]; Buffer_Send_Neighbor = new unsigned short[nBufferS_Vector]; @@ -1127,9 +1127,9 @@ void CEulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - MPI_Sendrecv(Buffer_Send_Neighbor, nBufferS_Vector, MPI_UNSIGNED_SHORT, send_to, 1, + SU2_MPI::Sendrecv(Buffer_Send_Neighbor, nBufferS_Vector, MPI_UNSIGNED_SHORT, send_to, 1, Buffer_Receive_Neighbor, nBufferR_Vector, MPI_UNSIGNED_SHORT, receive_from, 1, MPI_COMM_WORLD, &status); #else @@ -1168,7 +1168,7 @@ void CEulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *config) { void CEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *config) { unsigned short iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; + su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -1191,8 +1191,8 @@ void CEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *conf nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Lambda = new double [nBufferR_Vector]; - Buffer_Send_Lambda = new double[nBufferS_Vector]; + Buffer_Receive_Lambda = new su2double [nBufferR_Vector]; + Buffer_Send_Lambda = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1203,7 +1203,7 @@ void CEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *conf #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1238,12 +1238,12 @@ void CEulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *conf void CEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI int send_to, receive_from; @@ -1266,8 +1266,8 @@ void CEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *confi nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1280,7 +1280,7 @@ void CEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *confi #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1361,10 +1361,10 @@ void CEulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *confi void CEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; - double *Limiter = new double [nVar]; + su2double *Limiter = new su2double [nVar]; #ifdef HAVE_MPI int send_to, receive_from; @@ -1387,8 +1387,8 @@ void CEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1400,7 +1400,7 @@ void CEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1482,12 +1482,12 @@ void CEulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config void CEulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - double **Gradient = new double* [nPrimVarGrad]; + su2double **Gradient = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI int send_to, receive_from; @@ -1510,8 +1510,8 @@ void CEulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig *conf nBufferS_Vector = nVertexS*nPrimVarGrad*nDim; nBufferR_Vector = nVertexR*nPrimVarGrad*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1524,7 +1524,7 @@ void CEulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig *conf #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1605,10 +1605,10 @@ void CEulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig *conf void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; - double *Limiter = new double [nPrimVarGrad]; + su2double *Limiter = new su2double [nPrimVarGrad]; #ifdef HAVE_MPI int send_to, receive_from; @@ -1631,8 +1631,8 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi nBufferS_Vector = nVertexS*nPrimVarGrad; nBufferR_Vector = nVertexR*nPrimVarGrad; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1644,7 +1644,7 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1726,13 +1726,13 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi //void CEulerSolver::Set_MPI_Secondary_Gradient(CGeometry *geometry, CConfig *config) { // unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; // unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; -// double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, +// su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, // *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; // int send_to, receive_from; // -// double **Gradient = new double* [nSecondaryVarGrad]; +// su2double **Gradient = new su2double* [nSecondaryVarGrad]; // for (iVar = 0; iVar < nSecondaryVarGrad; iVar++) -// Gradient[iVar] = new double[nDim]; +// Gradient[iVar] = new su2double[nDim]; // //#ifdef HAVE_MPI // MPI_Status status; @@ -1752,8 +1752,8 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi // nBufferS_Vector = nVertexS*nSecondaryVarGrad*nDim; nBufferR_Vector = nVertexR*nSecondaryVarGrad*nDim; // // /*--- Allocate Receive and send buffers ---*/ -// Buffer_Receive_Gradient = new double [nBufferR_Vector]; -// Buffer_Send_Gradient = new double[nBufferS_Vector]; +// Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; +// Buffer_Send_Gradient = new su2double[nBufferS_Vector]; // // /*--- Copy the solution old that should be sended ---*/ // for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1766,7 +1766,7 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi //#ifdef HAVE_MPI // // /*--- Send/Receive information using Sendrecv ---*/ -// MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, +// SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, // Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); // //#else @@ -1848,10 +1848,10 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi //void CEulerSolver::Set_MPI_Secondary_Limiter(CGeometry *geometry, CConfig *config) { // unsigned short iVar, iMarker, MarkerS, MarkerR; // unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; -// double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; +// su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; // int send_to, receive_from; // -// double *Limiter = new double [nSecondaryVarGrad]; +// su2double *Limiter = new su2double [nSecondaryVarGrad]; // //#ifdef HAVE_MPI // MPI_Status status; @@ -1871,8 +1871,8 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi // nBufferS_Vector = nVertexS*nSecondaryVarGrad; nBufferR_Vector = nVertexR*nSecondaryVarGrad; // // /*--- Allocate Receive and send buffers ---*/ -// Buffer_Receive_Limit = new double [nBufferR_Vector]; -// Buffer_Send_Limit = new double[nBufferS_Vector]; +// Buffer_Receive_Limit = new su2double [nBufferR_Vector]; +// Buffer_Send_Limit = new su2double[nBufferS_Vector]; // // /*--- Copy the solution old that should be sended ---*/ // for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1884,7 +1884,7 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi //#ifdef HAVE_MPI // // /*--- Send/Receive information using Sendrecv ---*/ -// MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, +// SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, // Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); // //#else @@ -1930,7 +1930,7 @@ void CEulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *confi void CEulerSolver::SetNondimensionalization(CGeometry *geometry, CConfig *config, unsigned short iMesh) { - double Temperature_FreeStream = 0.0, Mach2Vel_FreeStream = 0.0, ModVel_FreeStream = 0.0, + su2double Temperature_FreeStream = 0.0, Mach2Vel_FreeStream = 0.0, ModVel_FreeStream = 0.0, Energy_FreeStream = 0.0, ModVel_FreeStreamND = 0.0, Velocity_Reynolds = 0.0, Omega_FreeStream = 0.0, Omega_FreeStreamND = 0.0, Viscosity_FreeStream = 0.0, Density_FreeStream = 0.0, Pressure_FreeStream = 0.0, Tke_FreeStream = 0.0, @@ -1952,10 +1952,10 @@ void CEulerSolver::SetNondimensionalization(CGeometry *geometry, CConfig *config /*--- Local variables ---*/ - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double Beta = config->GetAoS()*PI_NUMBER/180.0; - double Mach = config->GetMach(); - double Reynolds = config->GetReynolds(); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double Mach = config->GetMach(); + su2double Reynolds = config->GetReynolds(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -2620,7 +2620,7 @@ void CEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_c unsigned long iPoint, Point_Fine; unsigned short iMesh, iChildren, iVar, iDim; - double Density, Pressure, yFreeSurface, PressFreeSurface, Froude, yCoord, Velx, Vely, Velz, RhoVelx, RhoVely, RhoVelz, YCoord = 0.0, + su2double Density, Pressure, yFreeSurface, PressFreeSurface, Froude, yCoord, Velx, Vely, Velz, RhoVelx, RhoVely, RhoVelz, YCoord = 0.0, ZCoord = 0.0, DensityInc, ViscosityInc, Heaviside, LevelSet, lambda, Area_Children, Area_Parent, LevelSet_Fine, epsilon, *Solution_Fine, *Solution, PressRef, yCoordRef; @@ -2774,20 +2774,20 @@ void CEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_c if ((ExtIter == 0) && (!restart)) { - double Velocity_Box[3] = {0.0, 0.0, 0.0}, Velocity_BoxND[3] = {0.0, 0.0, 0.0}, Viscosity_Box, + su2double Velocity_Box[3] = {0.0, 0.0, 0.0}, Velocity_BoxND[3] = {0.0, 0.0, 0.0}, Viscosity_Box, Density_Box, Density_BoxND, Pressure_Box, Pressure_BoxND, ModVel_Box, ModVel_BoxND, Energy_BoxND, T_ref = 0.0, S = 0.0, Mu_ref = 0.0, *Coord, MinCoordValues[3], MaxCoordValues[3], *Subsonic_Engine_Box; - double Mach = 0.40; - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double Mach = 0.40; + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; - double Gamma_Minus_One = Gamma - 1.0; - double Gas_Constant = config->GetGas_Constant(); + su2double Gamma_Minus_One = Gamma - 1.0; + su2double Gas_Constant = config->GetGas_Constant(); - double Temperature_Box = config->GetTemperature_FreeStream(); - double Mach2Vel_Box = sqrt(Gamma*Gas_Constant*Temperature_Box); + su2double Temperature_Box = config->GetTemperature_FreeStream(); + su2double Mach2Vel_Box = sqrt(Gamma*Gas_Constant*Temperature_Box); for (iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) { @@ -2871,7 +2871,7 @@ void CEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_c if (restart && (ExtIter == 0)) { - Solution = new double[nVar]; + Solution = new su2double[nVar]; for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++) { for (iPoint = 0; iPoint < geometry[iMesh]->GetnPoint(); iPoint++) { Area_Parent = geometry[iMesh]->node[iPoint]->GetVolume(); @@ -2895,7 +2895,7 @@ void CEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_c if (rans) { unsigned short nVar_Turb = solver_container[MESH_0][TURB_SOL]->GetnVar(); - Solution = new double[nVar_Turb]; + Solution = new su2double[nVar_Turb]; for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++) { for (iPoint = 0; iPoint < geometry[iMesh]->GetnPoint(); iPoint++) { Area_Parent = geometry[iMesh]->node[iPoint]->GetVolume(); @@ -2941,11 +2941,11 @@ void CEulerSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_c /*--- Load an additional restart file for a 2nd-order restart ---*/ - solver_container[MESH_0][FLOW_SOL]->LoadRestart(geometry, solver_container, config, int(config->GetUnst_RestartIter()-1)); + solver_container[MESH_0][FLOW_SOL]->LoadRestart(geometry, solver_container, config, SU2_TYPE::Int(config->GetUnst_RestartIter()-1)); /*--- Load an additional restart file for the turbulence model ---*/ if (rans) - solver_container[MESH_0][TURB_SOL]->LoadRestart(geometry, solver_container, config, int(config->GetUnst_RestartIter()-1)); + solver_container[MESH_0][TURB_SOL]->LoadRestart(geometry, solver_container, config, SU2_TYPE::Int(config->GetUnst_RestartIter()-1)); /*--- Push back this new solution to time level N. ---*/ @@ -3083,7 +3083,7 @@ void CEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif if (iMesh == MESH_0) config->SetNonphysical_Points(ErrorCounter); } @@ -3096,12 +3096,12 @@ void CEulerSolver::Postprocessing(CGeometry *geometry, CSolver **solver_containe void CEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { - double *Normal, Area, Vol, Mean_SoundSpeed = 0.0, Mean_ProjVel = 0.0, Mean_BetaInc2, Lambda, Local_Delta_Time, Mean_DensityInc, Mean_LevelSet, + su2double *Normal, Area, Vol, Mean_SoundSpeed = 0.0, Mean_ProjVel = 0.0, Mean_BetaInc2, Lambda, Local_Delta_Time, Mean_DensityInc, Mean_LevelSet, Global_Delta_Time = 1E6, Global_Delta_UnstTimeND, ProjVel, ProjVel_i, ProjVel_j, Delta = 0.0, a, b, c, e, f; unsigned long iEdge, iVertex, iPoint, jPoint; unsigned short iDim, iMarker; - double epsilon = config->GetFreeSurface_Thickness(); + su2double epsilon = config->GetFreeSurface_Thickness(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -3161,8 +3161,8 @@ void CEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, /*--- Adjustment for grid movement ---*/ if (grid_movement) { - double *GridVel_i = geometry->node[iPoint]->GetGridVel(); - double *GridVel_j = geometry->node[jPoint]->GetGridVel(); + su2double *GridVel_i = geometry->node[iPoint]->GetGridVel(); + su2double *GridVel_j = geometry->node[jPoint]->GetGridVel(); ProjVel_i = 0.0; ProjVel_j = 0.0; for (iDim = 0; iDim < nDim; iDim++) { ProjVel_i += GridVel_i[iDim]*Normal[iDim]; @@ -3222,7 +3222,7 @@ void CEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, /*--- Adjustment for grid movement ---*/ if (grid_movement) { - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); ProjVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjVel += GridVel[iDim]*Normal[iDim]; @@ -3263,15 +3263,15 @@ void CEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, /*--- Compute the max and the min dt (in parallel) ---*/ if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Min_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Min_Delta_Time = rbuf_time; sbuf_time = Max_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Max_Delta_Time = rbuf_time; #endif } @@ -3280,10 +3280,10 @@ void CEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, if (config->GetUnsteady_Simulation() == TIME_STEPPING) { #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_Time = rbuf_time; #endif for (iPoint = 0; iPoint < nPointDomain; iPoint++) @@ -3297,10 +3297,10 @@ void CEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, Global_Delta_UnstTimeND = config->GetUnst_CFL()*Global_Delta_Time/config->GetCFL(iMesh); #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_UnstTimeND; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_UnstTimeND = rbuf_time; #endif config->SetDelta_UnstTimeND(Global_Delta_UnstTimeND); @@ -3380,7 +3380,7 @@ void CEulerSolver::Centered_Residual(CGeometry *geometry, CSolver **solver_conta void CEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { - double **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j, RoeVelocity[3] = {0.0,0.0,0.0}, R, sq_vel, RoeEnthalpy, + su2double **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j, RoeVelocity[3] = {0.0,0.0,0.0}, R, sq_vel, RoeEnthalpy, *V_i, *V_j, *S_i, *S_j, *Limiter_i = NULL, *Limiter_j = NULL, YDistance, GradHidrosPress, sqvel, Non_Physical = 1.0; unsigned long iEdge, iPoint, jPoint, counter_local = 0, counter_global = 0; unsigned short iDim, iVar; @@ -3573,7 +3573,7 @@ void CEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_contain if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI - MPI_Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); #else counter_global = counter_local; #endif @@ -3586,9 +3586,9 @@ void CEulerSolver::ComputeConsExtrapolation(CConfig *config) { unsigned short iDim; - double density_i = Primitive_i[nDim+2]; - double pressure_i = Primitive_i[nDim+1]; - double velocity2_i = 0.0; + su2double density_i = Primitive_i[nDim+2]; + su2double pressure_i = Primitive_i[nDim+1]; + su2double velocity2_i = 0.0; for (iDim = 0; iDim < nDim; iDim++) { velocity2_i += Primitive_i[iDim+1]*Primitive_i[iDim+1]; } @@ -3602,9 +3602,9 @@ void CEulerSolver::ComputeConsExtrapolation(CConfig *config) { Secondary_i[1]=FluidModel->GetdPde_rho(); - double density_j = Primitive_j[nDim+2]; - double pressure_j = Primitive_j[nDim+1]; - double velocity2_j = 0.0; + su2double density_j = Primitive_j[nDim+2]; + su2double pressure_j = Primitive_j[nDim+1]; + su2double velocity2_j = 0.0; for (iDim = 0; iDim < nDim; iDim++) { velocity2_j += Primitive_j[iDim+1]*Primitive_j[iDim+1]; } @@ -3727,8 +3727,8 @@ void CEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contain if (freesurface) { unsigned long iPoint; - double Vol, x_o, x_od, x, z, levelset, DampingFactor; - double factor = config->GetFreeSurface_Damping_Length(); + su2double Vol, x_o, x_od, x, z, levelset, DampingFactor; + su2double factor = config->GetFreeSurface_Damping_Length(); x_o = config->GetFreeSurface_Outlet(); x_od = x_o - factor*2.0*PI_NUMBER*config->GetFroude()*config->GetFroude(); @@ -3762,7 +3762,7 @@ void CEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contain if (time_spectral) { - double Volume, Source; + su2double Volume, Source; /*--- loop over points ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -3829,7 +3829,7 @@ void CEulerSolver::Source_Template(CGeometry *geometry, CSolver **solver_contain void CEulerSolver::SetMax_Eigenvalue(CGeometry *geometry, CConfig *config) { - double *Normal, Area, Mean_SoundSpeed = 0.0, Mean_ProjVel = 0.0, Mean_BetaInc2, Lambda, Mean_DensityInc, + su2double *Normal, Area, Mean_SoundSpeed = 0.0, Mean_ProjVel = 0.0, Mean_BetaInc2, Lambda, Mean_DensityInc, ProjVel, ProjVel_i, ProjVel_j, *GridVel, *GridVel_i, *GridVel_j; unsigned long iEdge, iVertex, iPoint, jPoint; unsigned short iDim, iMarker; @@ -3944,13 +3944,13 @@ void CEulerSolver::SetMax_Eigenvalue(CGeometry *geometry, CConfig *config) { void CEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *config) { unsigned long iPoint, jPoint, iEdge; - double Pressure_i = 0, Pressure_j = 0, *Diff; + su2double Pressure_i = 0, Pressure_j = 0, *Diff; unsigned short iVar; bool boundary_i, boundary_j; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); - Diff = new double[nVar]; + Diff = new su2double[nVar]; for (iPoint = 0; iPoint < nPointDomain; iPoint++) node[iPoint]->SetUnd_LaplZero(); @@ -4006,7 +4006,7 @@ void CEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *config) void CEulerSolver::SetDissipation_Switch(CGeometry *geometry, CConfig *config) { unsigned long iEdge, iPoint, jPoint; - double Pressure_i = 0.0, Pressure_j = 0.0; + su2double Pressure_i = 0.0, Pressure_j = 0.0; bool boundary_i, boundary_j; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -4075,21 +4075,21 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { unsigned long iVertex, iPoint; unsigned short iDim, iMarker, Boundary, Monitoring, iMarker_Monitoring; - double Pressure = 0.0, *Normal = NULL, MomentDist[3] = {0.0,0.0,0.0}, *Coord, Area, + su2double Pressure = 0.0, *Normal = NULL, MomentDist[3] = {0.0,0.0,0.0}, *Coord, Area, factor, NFPressOF, RefVel2, RefTemp, RefDensity, RefPressure, Mach2Vel, Mach_Motion, UnitNormal[3] = {0.0,0.0,0.0}, Force[3] = {0.0,0.0,0.0}; string Marker_Tag, Monitoring_Tag; #ifdef HAVE_MPI - double MyAllBound_CDrag_Inv, MyAllBound_CLift_Inv, MyAllBound_CSideForce_Inv, MyAllBound_CEff_Inv, MyAllBound_CMx_Inv, MyAllBound_CMy_Inv, MyAllBound_CMz_Inv, MyAllBound_CFx_Inv, MyAllBound_CFy_Inv, MyAllBound_CFz_Inv, MyAllBound_CT_Inv, MyAllBound_CQ_Inv, MyAllBound_CMerit_Inv, MyAllBound_CNearFieldOF_Inv, *MySurface_CLift_Inv = NULL, *MySurface_CDrag_Inv = NULL, *MySurface_CSideForce_Inv = NULL, *MySurface_CEff_Inv = NULL, *MySurface_CFx_Inv = NULL, *MySurface_CFy_Inv = NULL, *MySurface_CFz_Inv = NULL, *MySurface_CMx_Inv = NULL, *MySurface_CMy_Inv = NULL, *MySurface_CMz_Inv = NULL; + su2double MyAllBound_CDrag_Inv, MyAllBound_CLift_Inv, MyAllBound_CSideForce_Inv, MyAllBound_CEff_Inv, MyAllBound_CMx_Inv, MyAllBound_CMy_Inv, MyAllBound_CMz_Inv, MyAllBound_CFx_Inv, MyAllBound_CFy_Inv, MyAllBound_CFz_Inv, MyAllBound_CT_Inv, MyAllBound_CQ_Inv, MyAllBound_CMerit_Inv, MyAllBound_CNearFieldOF_Inv, *MySurface_CLift_Inv = NULL, *MySurface_CDrag_Inv = NULL, *MySurface_CSideForce_Inv = NULL, *MySurface_CEff_Inv = NULL, *MySurface_CFx_Inv = NULL, *MySurface_CFy_Inv = NULL, *MySurface_CFz_Inv = NULL, *MySurface_CMx_Inv = NULL, *MySurface_CMy_Inv = NULL, *MySurface_CMz_Inv = NULL; #endif - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double Beta = config->GetAoS()*PI_NUMBER/180.0; - double RefAreaCoeff = config->GetRefAreaCoeff(); - double RefLengthMoment = config->GetRefLengthMoment(); - double Gas_Constant = config->GetGas_ConstantND(); - double *Origin = config->GetRefOriginMoment(0); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double *Origin = config->GetRefOriginMoment(0); bool grid_movement = config->GetGrid_Movement(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -4325,33 +4325,33 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { MyAllBound_CMerit_Inv = AllBound_CMerit_Inv; AllBound_CMerit_Inv = 0.0; MyAllBound_CNearFieldOF_Inv = AllBound_CNearFieldOF_Inv; AllBound_CNearFieldOF_Inv = 0.0; - MPI_Allreduce(&MyAllBound_CDrag_Inv, &AllBound_CDrag_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CLift_Inv, &AllBound_CLift_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CSideForce_Inv, &AllBound_CSideForce_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CDrag_Inv, &AllBound_CDrag_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CLift_Inv, &AllBound_CLift_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CSideForce_Inv, &AllBound_CSideForce_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_CEff_Inv = AllBound_CLift_Inv / (AllBound_CDrag_Inv + EPS); - MPI_Allreduce(&MyAllBound_CMx_Inv, &AllBound_CMx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMy_Inv, &AllBound_CMy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMz_Inv, &AllBound_CMz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFx_Inv, &AllBound_CFx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFy_Inv, &AllBound_CFy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFz_Inv, &AllBound_CFz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CT_Inv, &AllBound_CT_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CQ_Inv, &AllBound_CQ_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMx_Inv, &AllBound_CMx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMy_Inv, &AllBound_CMy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMz_Inv, &AllBound_CMz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFx_Inv, &AllBound_CFx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFy_Inv, &AllBound_CFy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFz_Inv, &AllBound_CFz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CT_Inv, &AllBound_CT_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CQ_Inv, &AllBound_CQ_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_CMerit_Inv = AllBound_CT_Inv / (AllBound_CQ_Inv + EPS); - MPI_Allreduce(&MyAllBound_CNearFieldOF_Inv, &AllBound_CNearFieldOF_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CNearFieldOF_Inv, &AllBound_CNearFieldOF_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); /*--- Add the forces on the surfaces using all the nodes ---*/ - MySurface_CLift_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CDrag_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CSideForce_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CEff_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CFx_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CFy_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CFz_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CMx_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CMy_Inv = new double[config->GetnMarker_Monitoring()]; - MySurface_CMz_Inv = new double[config->GetnMarker_Monitoring()]; + MySurface_CLift_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CDrag_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CSideForce_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CEff_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CFx_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CFy_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CFz_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CMx_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CMy_Inv = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CMz_Inv = new su2double[config->GetnMarker_Monitoring()]; for (iMarker_Monitoring = 0; iMarker_Monitoring < config->GetnMarker_Monitoring(); iMarker_Monitoring++) { MySurface_CLift_Inv[iMarker_Monitoring] = Surface_CLift_Inv[iMarker_Monitoring]; @@ -4377,17 +4377,17 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { Surface_CMz_Inv[iMarker_Monitoring] = 0.0; } - MPI_Allreduce(MySurface_CLift_Inv, Surface_CLift_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CDrag_Inv, Surface_CDrag_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CSideForce_Inv, Surface_CSideForce_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CLift_Inv, Surface_CLift_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CDrag_Inv, Surface_CDrag_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CSideForce_Inv, Surface_CSideForce_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); for (iMarker_Monitoring = 0; iMarker_Monitoring < config->GetnMarker_Monitoring(); iMarker_Monitoring++) Surface_CEff_Inv[iMarker_Monitoring] = Surface_CLift_Inv[iMarker_Monitoring] / (Surface_CDrag_Inv[iMarker_Monitoring] + EPS); - MPI_Allreduce(MySurface_CFx_Inv, Surface_CFx_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CFy_Inv, Surface_CFy_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CFz_Inv, Surface_CFz_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CMx_Inv, Surface_CMx_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CMy_Inv, Surface_CMy_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CMz_Inv, Surface_CMz_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CFx_Inv, Surface_CFx_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CFy_Inv, Surface_CFy_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CFz_Inv, Surface_CFz_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CMx_Inv, Surface_CMx_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CMy_Inv, Surface_CMy_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CMz_Inv, Surface_CMz_Inv, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); delete [] MySurface_CLift_Inv; delete [] MySurface_CDrag_Inv; delete [] MySurface_CSideForce_Inv; delete [] MySurface_CEff_Inv; delete [] MySurface_CFx_Inv; delete [] MySurface_CFy_Inv; @@ -4432,11 +4432,11 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { void CEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep) { - double *Residual, *Res_TruncError, Vol, Delta, Res; + su2double *Residual, *Res_TruncError, Vol, Delta, Res; unsigned short iVar; unsigned long iPoint; - double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); + su2double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); bool adjoint = config->GetAdjoint(); for (iVar = 0; iVar < nVar; iVar++) { @@ -4476,7 +4476,7 @@ void CEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver_co } void CEulerSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - double *local_Residual, *local_Res_TruncError, Vol, Delta, Res; + su2double *local_Residual, *local_Res_TruncError, Vol, Delta, Res; unsigned short iVar; unsigned long iPoint; @@ -4521,7 +4521,7 @@ void CEulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver unsigned short iVar, jVar; unsigned long iPoint, total_index, IterLinSol = 0; - double Delta, *local_Res_TruncError, Vol; + su2double Delta, *local_Res_TruncError, Vol; bool adjoint = config->GetAdjoint(); bool roe_turkel = config->GetKind_Upwind_Flow() == TURKEL; @@ -4623,14 +4623,14 @@ void CEulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver void CEulerSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, CConfig *config) { unsigned long iPoint, jPoint, iEdge, iVertex; unsigned short iDim, iVar, iMarker; - double *PrimVar_Vertex, *PrimVar_i, *PrimVar_j, PrimVar_Average, + su2double *PrimVar_Vertex, *PrimVar_i, *PrimVar_j, PrimVar_Average, Partial_Gradient, Partial_Res, *Normal; /*--- Gradient primitive variables compressible (temp, vx, vy, vz, P, rho) Gradient primitive variables incompressible (rho, vx, vy, vz, beta) ---*/ - PrimVar_Vertex = new double [nPrimVarGrad]; - PrimVar_i = new double [nPrimVarGrad]; - PrimVar_j = new double [nPrimVarGrad]; + PrimVar_Vertex = new su2double [nPrimVarGrad]; + PrimVar_i = new su2double [nPrimVarGrad]; + PrimVar_j = new su2double [nPrimVarGrad]; /*--- Set Gradient_Primitive to zero ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) @@ -4700,7 +4700,7 @@ void CEulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, CConfig *config unsigned short iVar, iDim, jDim, iNeigh; unsigned long iPoint, jPoint; - double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, + su2double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, product, z11, z12, z13, z22, z23, z33, detR2; bool singular; @@ -4835,7 +4835,7 @@ void CEulerSolver::SetPrimitive_Limiter(CGeometry *geometry, CConfig *config) { unsigned long iEdge, iPoint, jPoint; unsigned short iVar, iDim; - double **Gradient_i, **Gradient_j, *Coord_i, *Coord_j, *Primitive_i, *Primitive_j, + su2double **Gradient_i, **Gradient_j, *Coord_i, *Coord_j, *Primitive_i, *Primitive_j, dave, LimK, eps2, eps1, dm, dp, du, y, limiter; /*--- Initialize solution max and solution min and the limiter in the entire domain --*/ @@ -5002,14 +5002,14 @@ void CEulerSolver::SetPrimitive_Limiter(CGeometry *geometry, CConfig *config) { //void CEulerSolver::SetSecondary_Gradient_GG(CGeometry *geometry, CConfig *config) { // unsigned long iPoint, jPoint, iEdge, iVertex; // unsigned short iDim, iVar, iMarker; -// double *SecondaryVar_Vertex, *SecondaryVar_i, *SecondaryVar_j, SecondaryVar_Average, +// su2double *SecondaryVar_Vertex, *SecondaryVar_i, *SecondaryVar_j, SecondaryVar_Average, // Partial_Gradient, Partial_Res, *Normal; // // /*--- Gradient Secondary variables compressible (temp, vx, vy, vz, P, rho) // Gradient Secondary variables incompressible (rho, vx, vy, vz, beta) ---*/ -// SecondaryVar_Vertex = new double [nSecondaryVarGrad]; -// SecondaryVar_i = new double [nSecondaryVarGrad]; -// SecondaryVar_j = new double [nSecondaryVarGrad]; +// SecondaryVar_Vertex = new su2double [nSecondaryVarGrad]; +// SecondaryVar_i = new su2double [nSecondaryVarGrad]; +// SecondaryVar_j = new su2double [nSecondaryVarGrad]; // // /*--- Set Gradient_Secondary to zero ---*/ // for (iPoint = 0; iPoint < nPointDomain; iPoint++) @@ -5079,7 +5079,7 @@ void CEulerSolver::SetPrimitive_Limiter(CGeometry *geometry, CConfig *config) { // // unsigned short iVar, iDim, jDim, iNeigh; // unsigned long iPoint, jPoint; -// double *SecondaryVar_i, *SecondaryVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, +// su2double *SecondaryVar_i, *SecondaryVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, // r23_b, r33, weight, product, z11, z12, z13, z22, z23, z33, detR2; // bool singular; // @@ -5214,7 +5214,7 @@ void CEulerSolver::SetPrimitive_Limiter(CGeometry *geometry, CConfig *config) { // // unsigned long iEdge, iPoint, jPoint; // unsigned short iVar, iDim; -// double **Gradient_i, **Gradient_j, *Coord_i, *Coord_j, *Secondary_i, *Secondary_j, +// su2double **Gradient_i, **Gradient_j, *Coord_i, *Coord_j, *Secondary_i, *Secondary_j, // dave, LimK, eps2, dm, dp, du, limiter; // // /*--- Initialize solution max and solution min in the entire domain --*/ @@ -5310,10 +5310,10 @@ void CEulerSolver::SetPrimitive_Limiter(CGeometry *geometry, CConfig *config) { void CEulerSolver::SetPreconditioner(CConfig *config, unsigned short iPoint) { unsigned short iDim, jDim, iVar, jVar; - double Beta, local_Mach, Beta2, rho, enthalpy, soundspeed, sq_vel; - double *U_i = NULL; - double Beta_min = config->GetminTurkelBeta(); - double Beta_max = config->GetmaxTurkelBeta(); + su2double Beta, local_Mach, Beta2, rho, enthalpy, soundspeed, sq_vel; + su2double *U_i = NULL; + su2double Beta_min = config->GetminTurkelBeta(); + su2double Beta_max = config->GetmaxTurkelBeta(); /*--- Variables to calculate the preconditioner parameter Beta ---*/ @@ -5362,10 +5362,10 @@ void CEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, un unsigned short iDim, iMarker, iMarker_EngineInflow, iMarker_EngineBleed, iMarker_EngineExhaust, iVar; unsigned long iVertex, iPoint; - double Pressure, Temperature, Velocity[3], Velocity2, MassFlow, Density, Energy, Area, + su2double Pressure, Temperature, Velocity[3], Velocity2, MassFlow, Density, Energy, Area, Mach, SoundSpeed, Flow_Dir[3], alpha; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); unsigned short nMarker_EngineInflow = config->GetnMarker_EngineInflow(); unsigned short nMarker_EngineBleed = config->GetnMarker_EngineBleed(); unsigned short nMarker_EngineExhaust = config->GetnMarker_EngineExhaust(); @@ -5506,15 +5506,15 @@ void CEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, un /*--- Copy to the appropriate structure ---*/ - double *Inflow_MassFlow_Local = new double [nMarker_EngineInflow]; - double *Inflow_Mach_Local = new double [nMarker_EngineInflow]; - double *Inflow_Pressure_Local = new double [nMarker_EngineInflow]; - double *Inflow_Area_Local = new double [nMarker_EngineInflow]; + su2double *Inflow_MassFlow_Local = new su2double [nMarker_EngineInflow]; + su2double *Inflow_Mach_Local = new su2double [nMarker_EngineInflow]; + su2double *Inflow_Pressure_Local = new su2double [nMarker_EngineInflow]; + su2double *Inflow_Area_Local = new su2double [nMarker_EngineInflow]; - double *Inflow_MassFlow_Total = new double [nMarker_EngineInflow]; - double *Inflow_Mach_Total = new double [nMarker_EngineInflow]; - double *Inflow_Pressure_Total = new double [nMarker_EngineInflow]; - double *Inflow_Area_Total = new double [nMarker_EngineInflow]; + su2double *Inflow_MassFlow_Total = new su2double [nMarker_EngineInflow]; + su2double *Inflow_Mach_Total = new su2double [nMarker_EngineInflow]; + su2double *Inflow_Pressure_Total = new su2double [nMarker_EngineInflow]; + su2double *Inflow_Area_Total = new su2double [nMarker_EngineInflow]; for (iMarker_EngineInflow = 0; iMarker_EngineInflow < nMarker_EngineInflow; iMarker_EngineInflow++) { Inflow_MassFlow_Local[iMarker_EngineInflow] = 0.0; @@ -5528,15 +5528,15 @@ void CEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, un Inflow_Area_Total[iMarker_EngineInflow] = 0.0; } - double *Bleed_MassFlow_Local = new double [nMarker_EngineBleed]; - double *Bleed_Temperature_Local = new double [nMarker_EngineBleed]; - double *Bleed_Pressure_Local = new double [nMarker_EngineBleed]; - double *Bleed_Area_Local = new double [nMarker_EngineBleed]; + su2double *Bleed_MassFlow_Local = new su2double [nMarker_EngineBleed]; + su2double *Bleed_Temperature_Local = new su2double [nMarker_EngineBleed]; + su2double *Bleed_Pressure_Local = new su2double [nMarker_EngineBleed]; + su2double *Bleed_Area_Local = new su2double [nMarker_EngineBleed]; - double *Bleed_MassFlow_Total = new double [nMarker_EngineBleed]; - double *Bleed_Temperature_Total = new double [nMarker_EngineBleed]; - double *Bleed_Pressure_Total = new double [nMarker_EngineBleed]; - double *Bleed_Area_Total = new double [nMarker_EngineBleed]; + su2double *Bleed_MassFlow_Total = new su2double [nMarker_EngineBleed]; + su2double *Bleed_Temperature_Total = new su2double [nMarker_EngineBleed]; + su2double *Bleed_Pressure_Total = new su2double [nMarker_EngineBleed]; + su2double *Bleed_Area_Total = new su2double [nMarker_EngineBleed]; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) { Bleed_MassFlow_Local[iMarker_EngineBleed] = 0.0; @@ -5550,15 +5550,15 @@ void CEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, un Bleed_Area_Total[iMarker_EngineBleed] = 0.0; } - double *Exhaust_MassFlow_Local = new double [nMarker_EngineExhaust]; - double *Exhaust_Temperature_Local = new double [nMarker_EngineExhaust]; - double *Exhaust_Pressure_Local = new double [nMarker_EngineExhaust]; - double *Exhaust_Area_Local = new double [nMarker_EngineExhaust]; + su2double *Exhaust_MassFlow_Local = new su2double [nMarker_EngineExhaust]; + su2double *Exhaust_Temperature_Local = new su2double [nMarker_EngineExhaust]; + su2double *Exhaust_Pressure_Local = new su2double [nMarker_EngineExhaust]; + su2double *Exhaust_Area_Local = new su2double [nMarker_EngineExhaust]; - double *Exhaust_MassFlow_Total = new double [nMarker_EngineExhaust]; - double *Exhaust_Temperature_Total = new double [nMarker_EngineExhaust]; - double *Exhaust_Pressure_Total = new double [nMarker_EngineExhaust]; - double *Exhaust_Area_Total = new double [nMarker_EngineExhaust]; + su2double *Exhaust_MassFlow_Total = new su2double [nMarker_EngineExhaust]; + su2double *Exhaust_Temperature_Total = new su2double [nMarker_EngineExhaust]; + su2double *Exhaust_Pressure_Total = new su2double [nMarker_EngineExhaust]; + su2double *Exhaust_Area_Total = new su2double [nMarker_EngineExhaust]; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) { Exhaust_MassFlow_Local[iMarker_EngineExhaust] = 0.0; @@ -5631,20 +5631,20 @@ void CEulerSolver::GetEngine_Properties(CGeometry *geometry, CConfig *config, un #ifdef HAVE_MPI - MPI_Allreduce(Inflow_MassFlow_Local, Inflow_MassFlow_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Inflow_Mach_Local, Inflow_Mach_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Inflow_Pressure_Local, Inflow_Pressure_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Inflow_Area_Local, Inflow_Area_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inflow_MassFlow_Local, Inflow_MassFlow_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inflow_Mach_Local, Inflow_Mach_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inflow_Pressure_Local, Inflow_Pressure_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inflow_Area_Local, Inflow_Area_Total, nMarker_EngineInflow, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Bleed_MassFlow_Local, Bleed_MassFlow_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Bleed_Temperature_Local, Bleed_Temperature_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Bleed_Pressure_Local, Bleed_Pressure_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Bleed_Area_Local, Bleed_Area_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Bleed_MassFlow_Local, Bleed_MassFlow_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Bleed_Temperature_Local, Bleed_Temperature_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Bleed_Pressure_Local, Bleed_Pressure_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Bleed_Area_Local, Bleed_Area_Total, nMarker_EngineBleed, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Exhaust_MassFlow_Local, Exhaust_MassFlow_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Exhaust_Temperature_Local, Exhaust_Temperature_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Exhaust_Pressure_Local, Exhaust_Pressure_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Exhaust_Area_Local, Exhaust_Area_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Exhaust_MassFlow_Local, Exhaust_MassFlow_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Exhaust_Temperature_Local, Exhaust_Temperature_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Exhaust_Pressure_Local, Exhaust_Pressure_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Exhaust_Area_Local, Exhaust_Area_Total, nMarker_EngineExhaust, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else @@ -5874,10 +5874,10 @@ void CEulerSolver::GetActuatorDisk_Properties(CGeometry *geometry, CConfig *conf unsigned short iDim, iMarker; unsigned long iVertex, iPoint; - double Pressure, Temperature, Velocity[3], Velocity2, MassFlow, Density, Energy, Area; + su2double Pressure, Temperature, Velocity[3], Velocity2, MassFlow, Density, Energy, Area; unsigned short iMarker_ActDiskInlet, iMarker_ActDiskOutlet; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); unsigned short nMarker_ActDiskInlet = config->GetnMarker_ActDisk_Inlet(); unsigned short nMarker_ActDiskOutlet = config->GetnMarker_ActDisk_Outlet(); @@ -5887,15 +5887,15 @@ void CEulerSolver::GetActuatorDisk_Properties(CGeometry *geometry, CConfig *conf MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - double *Inlet_MassFlow = new double [config->GetnMarker_All()]; - double *Inlet_Pressure = new double [config->GetnMarker_All()]; - double *Inlet_Temperature = new double [config->GetnMarker_All()]; - double *Inlet_Area = new double [config->GetnMarker_All()]; + su2double *Inlet_MassFlow = new su2double [config->GetnMarker_All()]; + su2double *Inlet_Pressure = new su2double [config->GetnMarker_All()]; + su2double *Inlet_Temperature = new su2double [config->GetnMarker_All()]; + su2double *Inlet_Area = new su2double [config->GetnMarker_All()]; - double *Outlet_MassFlow = new double [config->GetnMarker_All()]; - double *Outlet_Pressure = new double [config->GetnMarker_All()]; - double *Outlet_Temperature = new double [config->GetnMarker_All()]; - double *Outlet_Area = new double [config->GetnMarker_All()]; + su2double *Outlet_MassFlow = new su2double [config->GetnMarker_All()]; + su2double *Outlet_Pressure = new su2double [config->GetnMarker_All()]; + su2double *Outlet_Temperature = new su2double [config->GetnMarker_All()]; + su2double *Outlet_Area = new su2double [config->GetnMarker_All()]; /*--- Compute the numerical fan face Mach number, and the total area of the inflow ---*/ @@ -5986,15 +5986,15 @@ void CEulerSolver::GetActuatorDisk_Properties(CGeometry *geometry, CConfig *conf /*--- Copy to the appropriate structure ---*/ - double *Inlet_MassFlow_Local = new double [nMarker_ActDiskInlet]; - double *Inlet_Temperature_Local = new double [nMarker_ActDiskInlet]; - double *Inlet_Pressure_Local = new double [nMarker_ActDiskInlet]; - double *Inlet_Area_Local = new double [nMarker_ActDiskInlet]; + su2double *Inlet_MassFlow_Local = new su2double [nMarker_ActDiskInlet]; + su2double *Inlet_Temperature_Local = new su2double [nMarker_ActDiskInlet]; + su2double *Inlet_Pressure_Local = new su2double [nMarker_ActDiskInlet]; + su2double *Inlet_Area_Local = new su2double [nMarker_ActDiskInlet]; - double *Inlet_MassFlow_Total = new double [nMarker_ActDiskInlet]; - double *Inlet_Temperature_Total = new double [nMarker_ActDiskInlet]; - double *Inlet_Pressure_Total = new double [nMarker_ActDiskInlet]; - double *Inlet_Area_Total = new double [nMarker_ActDiskInlet]; + su2double *Inlet_MassFlow_Total = new su2double [nMarker_ActDiskInlet]; + su2double *Inlet_Temperature_Total = new su2double [nMarker_ActDiskInlet]; + su2double *Inlet_Pressure_Total = new su2double [nMarker_ActDiskInlet]; + su2double *Inlet_Area_Total = new su2double [nMarker_ActDiskInlet]; for (iMarker_ActDiskInlet = 0; iMarker_ActDiskInlet < nMarker_ActDiskInlet; iMarker_ActDiskInlet++) { Inlet_MassFlow_Local[iMarker_ActDiskInlet] = 0.0; @@ -6008,15 +6008,15 @@ void CEulerSolver::GetActuatorDisk_Properties(CGeometry *geometry, CConfig *conf Inlet_Area_Total[iMarker_ActDiskInlet] = 0.0; } - double *Outlet_MassFlow_Local = new double [nMarker_ActDiskOutlet]; - double *Outlet_Temperature_Local = new double [nMarker_ActDiskOutlet]; - double *Outlet_Pressure_Local = new double [nMarker_ActDiskOutlet]; - double *Outlet_Area_Local = new double [nMarker_ActDiskOutlet]; + su2double *Outlet_MassFlow_Local = new su2double [nMarker_ActDiskOutlet]; + su2double *Outlet_Temperature_Local = new su2double [nMarker_ActDiskOutlet]; + su2double *Outlet_Pressure_Local = new su2double [nMarker_ActDiskOutlet]; + su2double *Outlet_Area_Local = new su2double [nMarker_ActDiskOutlet]; - double *Outlet_MassFlow_Total = new double [nMarker_ActDiskOutlet]; - double *Outlet_Temperature_Total = new double [nMarker_ActDiskOutlet]; - double *Outlet_Pressure_Total = new double [nMarker_ActDiskOutlet]; - double *Outlet_Area_Total = new double [nMarker_ActDiskOutlet]; + su2double *Outlet_MassFlow_Total = new su2double [nMarker_ActDiskOutlet]; + su2double *Outlet_Temperature_Total = new su2double [nMarker_ActDiskOutlet]; + su2double *Outlet_Pressure_Total = new su2double [nMarker_ActDiskOutlet]; + su2double *Outlet_Area_Total = new su2double [nMarker_ActDiskOutlet]; for (iMarker_ActDiskOutlet = 0; iMarker_ActDiskOutlet < nMarker_ActDiskOutlet; iMarker_ActDiskOutlet++) { Outlet_MassFlow_Local[iMarker_ActDiskOutlet] = 0.0; @@ -6072,15 +6072,15 @@ void CEulerSolver::GetActuatorDisk_Properties(CGeometry *geometry, CConfig *conf #ifdef HAVE_MPI - MPI_Allreduce(Inlet_MassFlow_Local, Inlet_MassFlow_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Inlet_Temperature_Local, Inlet_Temperature_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Inlet_Pressure_Local, Inlet_Pressure_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Inlet_Area_Local, Inlet_Area_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inlet_MassFlow_Local, Inlet_MassFlow_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inlet_Temperature_Local, Inlet_Temperature_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inlet_Pressure_Local, Inlet_Pressure_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Inlet_Area_Local, Inlet_Area_Total, nMarker_ActDiskInlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Outlet_MassFlow_Local, Outlet_MassFlow_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Outlet_Temperature_Local, Outlet_Temperature_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Outlet_Pressure_Local, Outlet_Pressure_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(Outlet_Area_Local, Outlet_Area_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Outlet_MassFlow_Local, Outlet_MassFlow_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Outlet_Temperature_Local, Outlet_Temperature_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Outlet_Pressure_Local, Outlet_Pressure_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(Outlet_Area_Local, Outlet_Area_Total, nMarker_ActDiskOutlet, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else @@ -6202,12 +6202,12 @@ void CEulerSolver::SetFarfield_AoA(CGeometry *geometry, CSolver **solver_contain unsigned short iDim, iCounter; bool Update_AoA = false; - double Target_CL, AoA_inc, AoA; - double DampingFactor = config->GetDamp_Fixed_CL(); + su2double Target_CL, AoA_inc, AoA; + su2double DampingFactor = config->GetDamp_Fixed_CL(); unsigned long Iter_Fixed_CL = config->GetIter_Fixed_CL(); unsigned long ExtIter = config->GetExtIter(); - double Beta = config->GetAoS()*PI_NUMBER/180.0; - double Vel_Infty[3], Vel_Infty_Mag; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double Vel_Infty[3], Vel_Infty_Mag; int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -6326,11 +6326,11 @@ void CEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_container unsigned short iDim, iVar, jVar, kVar, jDim; unsigned long iPoint, iVertex; - double Density = 0.0, Pressure = 0.0, *Normal = NULL, *GridVel = NULL, Area, UnitNormal[3], *NormalArea, + su2double Density = 0.0, Pressure = 0.0, *Normal = NULL, *GridVel = NULL, Area, UnitNormal[3], *NormalArea, ProjGridVel = 0.0, turb_ke; - double Density_b, StaticEnergy_b, Enthalpy_b, *Velocity_b, Kappa_b, Chi_b, Energy_b, VelMagnitude2_b, Pressure_b; - double Density_i, *Velocity_i, ProjVelocity_i = 0.0, Energy_i, VelMagnitude2_i; - double **Jacobian_b, **DubDu; + su2double Density_b, StaticEnergy_b, Enthalpy_b, *Velocity_b, Kappa_b, Chi_b, Energy_b, VelMagnitude2_b, Pressure_b; + su2double Density_i, *Velocity_i, ProjVelocity_i = 0.0, Energy_i, VelMagnitude2_i; + su2double **Jacobian_b, **DubDu; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); @@ -6339,15 +6339,15 @@ void CEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_container bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - Normal = new double[nDim]; - NormalArea = new double[nDim]; - Velocity_b = new double[nDim]; - Velocity_i = new double[nDim]; - Jacobian_b = new double*[nVar]; - DubDu = new double*[nVar]; + Normal = new su2double[nDim]; + NormalArea = new su2double[nDim]; + Velocity_b = new su2double[nDim]; + Velocity_i = new su2double[nDim]; + Jacobian_b = new su2double*[nVar]; + DubDu = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_b[iVar] = new double[nVar]; - DubDu[iVar] = new double[nVar]; + Jacobian_b[iVar] = new su2double[nVar]; + DubDu[iVar] = new su2double[nVar]; } /*--- Loop over all the vertices on this boundary marker ---*/ @@ -6564,18 +6564,18 @@ void CEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double *GridVel; - double Area, UnitNormal[3]; - double Density, Pressure, Velocity[3], Energy; - double Density_Bound, Pressure_Bound, Vel_Bound[3]; - double Density_Infty, Pressure_Infty, Vel_Infty[3]; - double SoundSpeed, Entropy, Velocity2, Vn; - double SoundSpeed_Bound, Entropy_Bound, Vel2_Bound, Vn_Bound; - double SoundSpeed_Infty, Entropy_Infty, Vel2_Infty, Vn_Infty, Qn_Infty; - double RiemannPlus, RiemannMinus; - double *V_infty, *V_domain; + su2double *GridVel; + su2double Area, UnitNormal[3]; + su2double Density, Pressure, Velocity[3], Energy; + su2double Density_Bound, Pressure_Bound, Vel_Bound[3]; + su2double Density_Infty, Pressure_Infty, Vel_Infty[3]; + su2double SoundSpeed, Entropy, Velocity2, Vn; + su2double SoundSpeed_Bound, Entropy_Bound, Vel2_Bound, Vn_Bound; + su2double SoundSpeed_Infty, Entropy_Infty, Vel2_Infty, Vn_Infty, Qn_Infty; + su2double RiemannPlus, RiemannMinus; + su2double *V_infty, *V_domain; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); bool implicit = config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT; bool grid_movement = config->GetGrid_Movement(); @@ -6585,7 +6585,7 @@ void CEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, bool viscous = config->GetViscous(); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -6858,15 +6858,15 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim, iVar, jVar, kVar; unsigned long iVertex, iPoint, Point_Normal; - double P_Total, T_Total, P_static, T_static, Rho_static, *Mach, *Flow_Dir, Area, UnitNormal[3]; + su2double P_Total, T_Total, P_static, T_static, Rho_static, *Mach, *Flow_Dir, Area, UnitNormal[3]; - double *Velocity_b, Velocity2_b, Enthalpy_b, Energy_b, StaticEnergy_b, Density_b, Kappa_b, Chi_b, Pressure_b, Temperature_b; - double *Velocity_e, Velocity2_e, VelMag_e, Enthalpy_e, Entropy_e, Energy_e = 0.0, StaticEnthalpy_e, StaticEnergy_e, Density_e = 0.0, Pressure_e; - double *Velocity_i, Velocity2_i, Enthalpy_i, Energy_i, StaticEnergy_i, Density_i, Kappa_i, Chi_i, Pressure_i, SoundSpeed_i; - double ProjGridVel, ProjVelocity_i, ProjVelocity_b; - double **P_Tensor, **invP_Tensor, *Lambda_i, **Jacobian_b, **DubDu, *dw, *u_e, *u_i, *u_b; + su2double *Velocity_b, Velocity2_b, Enthalpy_b, Energy_b, StaticEnergy_b, Density_b, Kappa_b, Chi_b, Pressure_b, Temperature_b; + su2double *Velocity_e, Velocity2_e, VelMag_e, Enthalpy_e, Entropy_e, Energy_e = 0.0, StaticEnthalpy_e, StaticEnergy_e, Density_e = 0.0, Pressure_e; + su2double *Velocity_i, Velocity2_i, Enthalpy_i, Energy_i, StaticEnergy_i, Density_i, Kappa_i, Chi_i, Pressure_i, SoundSpeed_i; + su2double ProjGridVel, ProjVelocity_i, ProjVelocity_b; + su2double **P_Tensor, **invP_Tensor, *Lambda_i, **Jacobian_b, **DubDu, *dw, *u_e, *u_i, *u_b; - double *V_boundary, *V_domain, *S_boundary, *S_domain; + su2double *V_boundary, *V_domain, *S_boundary, *S_domain; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); @@ -6875,30 +6875,30 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, bool gravity = (config->GetGravityForce()); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double *Normal; + su2double *Normal; /// Doesn't work for ALE - Normal = new double[nDim]; + Normal = new su2double[nDim]; - Velocity_i = new double[nDim]; - Velocity_b = new double[nDim]; - Velocity_e = new double[nDim]; + Velocity_i = new su2double[nDim]; + Velocity_b = new su2double[nDim]; + Velocity_e = new su2double[nDim]; - Lambda_i = new double[nVar]; - u_i = new double[nVar]; - u_e = new double[nVar]; - u_b = new double[nVar]; - dw = new double[nVar]; + Lambda_i = new su2double[nVar]; + u_i = new su2double[nVar]; + u_e = new su2double[nVar]; + u_b = new su2double[nVar]; + dw = new su2double[nVar]; - S_boundary = new double[8]; + S_boundary = new su2double[8]; - P_Tensor = new double*[nVar]; - invP_Tensor = new double*[nVar]; + P_Tensor = new su2double*[nVar]; + invP_Tensor = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new double[nVar]; - invP_Tensor[iVar] = new double[nVar]; + P_Tensor[iVar] = new su2double[nVar]; + invP_Tensor[iVar] = new su2double[nVar]; } /*--- Loop over all the vertices on this boundary marker ---*/ @@ -7207,12 +7207,12 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, if (implicit) { - Jacobian_b = new double*[nVar]; - DubDu = new double*[nVar]; + Jacobian_b = new su2double*[nVar]; + DubDu = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_b[iVar] = new double[nVar]; - DubDu[iVar] = new double[nVar]; + Jacobian_b[iVar] = new su2double[nVar]; + DubDu[iVar] = new su2double[nVar]; } /*--- Initialize DubDu to unit matrix---*/ @@ -7377,25 +7377,25 @@ void CEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double P_Total, T_Total, Velocity[3], Velocity2, H_Total, Temperature, Riemann, + su2double P_Total, T_Total, Velocity[3], Velocity2, H_Total, Temperature, Riemann, Pressure, Density, Energy, *Flow_Dir, Mach2, SoundSpeed2, SoundSpeed_Total2, Vel_Mag, alpha, aa, bb, cc, dd, Area, UnitNormal[3]; - double *V_inlet, *V_domain; + su2double *V_inlet, *V_domain; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); - double Two_Gamma_M1 = 2.0/Gamma_Minus_One; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Two_Gamma_M1 = 2.0/Gamma_Minus_One; + su2double Gas_Constant = config->GetGas_ConstantND(); unsigned short Kind_Inlet = config->GetKind_Inlet(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool viscous = config->GetViscous(); bool gravity = (config->GetGravityForce()); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -7738,28 +7738,28 @@ void CEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double LevelSet, Density_Outlet = 0.0, Pressure, P_Exit, Velocity[3], + su2double LevelSet, Density_Outlet = 0.0, Pressure, P_Exit, Velocity[3], Velocity2, Entropy, Density, Energy, Riemann, Vn, SoundSpeed, Mach_Exit, Vn_Exit, Area, UnitNormal[3], Height, yCoordRef, yCoord; - double *V_outlet, *V_domain; + su2double *V_outlet, *V_domain; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool grid_movement = config->GetGrid_Movement(); - double FreeSurface_Zero = config->GetFreeSurface_Zero(); - double epsilon = config->GetFreeSurface_Thickness(); - double RatioDensity = config->GetRatioDensity(); + su2double FreeSurface_Zero = config->GetFreeSurface_Zero(); + su2double epsilon = config->GetFreeSurface_Thickness(); + su2double RatioDensity = config->GetRatioDensity(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool viscous = config->GetViscous(); bool gravity = (config->GetGravityForce()); - double PressFreeSurface = GetPressure_Inf(); - double Froude = config->GetFroude(); + su2double PressFreeSurface = GetPressure_Inf(); + su2double Froude = config->GetFroude(); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -7979,11 +7979,11 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double Area, UnitNormal[3]; - double *V_inlet, *V_domain; + su2double Area, UnitNormal[3]; + su2double *V_inlet, *V_domain; - double Density, Pressure, Temperature, Energy, *Velocity, Velocity2; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Density, Pressure, Temperature, Energy, *Velocity, Velocity2; + su2double Gas_Constant = config->GetGas_ConstantND(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); @@ -7991,7 +7991,7 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Supersonic inlet flow: there are no outgoing characteristics, so all flow variables can be imposed at the inlet. @@ -8132,15 +8132,15 @@ void CEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver_co CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double Area, UnitNormal[3]; - double *V_outlet, *V_domain; + su2double Area, UnitNormal[3]; + su2double *V_outlet, *V_domain; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); bool viscous = config->GetViscous(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Supersonic outlet flow: there are no ingoing characteristics, so all flow variables can should be interpolated from the domain. ---*/ @@ -8260,19 +8260,19 @@ void CEulerSolver::BC_Engine_Inflow(CGeometry *geometry, CSolver **solver_contai unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double Pressure, Inflow_Pressure, Velocity[3], Velocity2, Entropy, Target_Inflow_Mach = 0.0, Density, Energy, + su2double Pressure, Inflow_Pressure, Velocity[3], Velocity2, Entropy, Target_Inflow_Mach = 0.0, Density, Energy, Riemann, Area, UnitNormal[3], Vn, SoundSpeed, Vn_Exit, Inflow_Pressure_inc, Inflow_Pressure_old, Inflow_Mach_old; - double *V_inflow, *V_domain; + su2double *V_inflow, *V_domain; - double DampingFactor = config->GetDamp_Engine_Inflow(); + su2double DampingFactor = config->GetDamp_Engine_Inflow(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool viscous = config->GetViscous(); - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double Baseline_Press = 0.75 * config->GetPressure_FreeStreamND(); + su2double Baseline_Press = 0.75 * config->GetPressure_FreeStreamND(); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Retrieve the specified target fan face mach in the nacelle. ---*/ @@ -8432,18 +8432,18 @@ void CEulerSolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_conta unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double Exhaust_Pressure, Exhaust_Temperature, Velocity[3], Velocity2, H_Exhaust, Temperature, Riemann, Area, UnitNormal[3], Pressure, Density, Energy, Mach2, SoundSpeed2, SoundSpeed_Exhaust2, Vel_Mag, alpha, aa, bb, cc, dd, Flow_Dir[3]; - double *V_exhaust, *V_domain, Target_Exhaust_Pressure, Exhaust_Pressure_old, Exhaust_Pressure_inc; + su2double Exhaust_Pressure, Exhaust_Temperature, Velocity[3], Velocity2, H_Exhaust, Temperature, Riemann, Area, UnitNormal[3], Pressure, Density, Energy, Mach2, SoundSpeed2, SoundSpeed_Exhaust2, Vel_Mag, alpha, aa, bb, cc, dd, Flow_Dir[3]; + su2double *V_exhaust, *V_domain, Target_Exhaust_Pressure, Exhaust_Pressure_old, Exhaust_Pressure_inc; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool viscous = config->GetViscous(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double DampingFactor = config->GetDamp_Engine_Exhaust(); - double Baseline_Press = 0.75 * config->GetPressure_FreeStreamND(); + su2double DampingFactor = config->GetDamp_Engine_Exhaust(); + su2double Baseline_Press = 0.75 * config->GetPressure_FreeStreamND(); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Retrieve the specified exhaust pressure in the engine (non-dimensional). ---*/ @@ -8679,18 +8679,18 @@ void CEulerSolver::BC_Engine_Bleed(CGeometry *geometry, CSolver **solver_contain unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double Bleed_Pressure, Target_Bleed_MassFlow, Bleed_Pressure_old, Bleed_MassFlow_old, Bleed_Pressure_inc, Bleed_Temperature, Velocity[3], Velocity2, H_Bleed, Temperature, Riemann, Area, UnitNormal[3], Pressure, Density, Energy, Mach2, SoundSpeed2, SoundSpeed_Bleed2, Vel_Mag, alpha, aa, bb, cc, dd, Flow_Dir[3]; - double *V_bleed, *V_domain; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Bleed_Pressure, Target_Bleed_MassFlow, Bleed_Pressure_old, Bleed_MassFlow_old, Bleed_Pressure_inc, Bleed_Temperature, Velocity[3], Velocity2, H_Bleed, Temperature, Riemann, Area, UnitNormal[3], Pressure, Density, Energy, Mach2, SoundSpeed2, SoundSpeed_Bleed2, Vel_Mag, alpha, aa, bb, cc, dd, Flow_Dir[3]; + su2double *V_bleed, *V_domain; + su2double Gas_Constant = config->GetGas_ConstantND(); - double DampingFactor = config->GetDamp_Engine_Bleed(); + su2double DampingFactor = config->GetDamp_Engine_Bleed(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool viscous = config->GetViscous(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool tkeNeeded = ((config->GetKind_Solver() == RANS) && (config->GetKind_Turb_Model() == SST)); - double Baseline_Press = 0.25 * config->GetPressure_FreeStreamND(); + su2double Baseline_Press = 0.25 * config->GetPressure_FreeStreamND(); - double *Normal = new double[nDim]; + su2double *Normal = new su2double[nDim]; /*--- Retrieve the specified target bleed mass flow in the engine (non-dimensional). ---*/ @@ -8939,9 +8939,9 @@ void CEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solver_c bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - double *Normal = new double[nDim]; - double *PrimVar_i = new double[nPrimVar]; - double *PrimVar_j = new double[nPrimVar]; + su2double *Normal = new su2double[nDim]; + su2double *PrimVar_i = new su2double[nPrimVar]; + su2double *PrimVar_j = new su2double[nPrimVar]; #ifndef HAVE_MPI @@ -9001,8 +9001,8 @@ void CEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solver_c MPI_Comm_rank(MPI_COMM_WORLD, &rank); bool compute; - double *Buffer_Send_V = new double [nPrimVar]; - double *Buffer_Receive_V = new double [nPrimVar]; + su2double *Buffer_Send_V = new su2double [nPrimVar]; + su2double *Buffer_Receive_V = new su2double [nPrimVar]; /*--- Do the send process, by the moment we are sending each node individually, this must be changed ---*/ @@ -9039,11 +9039,11 @@ void CEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solver_c MPI_Bsend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD); - // MPI_Isend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); + // SU2_MPI::Isend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); // /*--- Wait for this set of non-blocking comm. to complete ---*/ // - // MPI_Waitall(1, send_req, send_stat); + // SU2_MPI::Waitall(1, send_req, send_stat); } @@ -9072,13 +9072,13 @@ void CEulerSolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solver_c if (jProcessor != rank) { - MPI_Recv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); + SU2_MPI::Recv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); - // MPI_Irecv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); + // SU2_MPI::Irecv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); /*--- Wait for the this set of non-blocking recv's to complete ---*/ - // MPI_Waitall(1, recv_req, recv_stat); + // SU2_MPI::Waitall(1, recv_req, recv_stat); } else { @@ -9142,9 +9142,9 @@ void CEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solver_c bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - double *Normal = new double[nDim]; - double *PrimVar_i = new double[nPrimVar]; - double *PrimVar_j = new double[nPrimVar]; + su2double *Normal = new su2double[nDim]; + su2double *PrimVar_i = new su2double[nPrimVar]; + su2double *PrimVar_j = new su2double[nPrimVar]; #ifndef HAVE_MPI @@ -9204,8 +9204,8 @@ void CEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solver_c MPI_Comm_rank(MPI_COMM_WORLD, &rank); bool compute; - double *Buffer_Send_V = new double [nPrimVar]; - double *Buffer_Receive_V = new double [nPrimVar]; + su2double *Buffer_Send_V = new su2double [nPrimVar]; + su2double *Buffer_Receive_V = new su2double [nPrimVar]; /*--- Do the send process, by the moment we are sending each node individually, this must be changed ---*/ @@ -9242,11 +9242,11 @@ void CEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solver_c MPI_Bsend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD); - // MPI_Isend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); + // SU2_MPI::Isend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); // /*--- Wait for this set of non-blocking comm. to complete ---*/ // - // MPI_Waitall(1, send_req, send_stat); + // SU2_MPI::Waitall(1, send_req, send_stat); } @@ -9275,13 +9275,13 @@ void CEulerSolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solver_c if (jProcessor != rank) { - MPI_Recv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); + SU2_MPI::Recv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); - // MPI_Irecv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); + // SU2_MPI::Irecv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); /*--- Wait for the this set of non-blocking recv's to complete ---*/ - // MPI_Waitall(1, recv_req, recv_stat); + // SU2_MPI::Waitall(1, recv_req, recv_stat); } else { @@ -9343,26 +9343,26 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con unsigned long iVertex, iPoint, jPoint, Pin = 0, Pout = 0, jProcessor; unsigned short iDim, iVar, iMarker; int iProcessor; - double *Coord, radius, DeltaP_avg, DeltaP_tip, DeltaT_avg, DeltaT_tip, + su2double *Coord, radius, DeltaP_avg, DeltaP_tip, DeltaT_avg, DeltaT_tip, Radial[3] = {0.0,0.0,0.0}, Tangent[3] = {0.0,0.0,0.0}, Normal[3] = {0.0,0.0,0.0}, UnitRadial[3] = {0.0,0.0,0.0}, UnitTangent[3] = {0.0,0.0,0.0}, UnitNormal[3] = {0.0,0.0,0.0}; - double H_in_ghost, P_in_ghost, Vel_Swirl_out_ghost, T_in_ghost, Rho_in_ghost, sos_in_ghost, Area, Vel_in_ghost; - double H_out_ghost, P_out_ghost, T_out_ghost, Rho_out_ghost, sos_out_ghost, Vel_Normal_in, Rho_in, Vel_Normal_out_ghost, Vel_out_ghost; + su2double H_in_ghost, P_in_ghost, Vel_Swirl_out_ghost, T_in_ghost, Rho_in_ghost, sos_in_ghost, Area, Vel_in_ghost; + su2double H_out_ghost, P_out_ghost, T_out_ghost, Rho_out_ghost, sos_out_ghost, Vel_Normal_in, Rho_in, Vel_Normal_out_ghost, Vel_out_ghost; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); unsigned short nMarker_ActDisk_Inlet = config->GetnMarker_ActDisk_Inlet(); -// double DampingFactor = 0.75; +// su2double DampingFactor = 0.75; if (nMarker_ActDisk_Inlet != 0) { - double *PrimVar_out = new double[nPrimVar]; - double *PrimVar_in = new double[nPrimVar]; - double *MeanPrimVar = new double[nPrimVar]; - double *PrimVar_out_ghost = new double[nPrimVar]; - double *PrimVar_in_ghost = new double[nPrimVar]; - double *ActDisk_Jump = new double[nPrimVar]; - double *Buffer_Send_V = new double [nPrimVar]; - double *Buffer_Receive_V = new double [nPrimVar]; + su2double *PrimVar_out = new su2double[nPrimVar]; + su2double *PrimVar_in = new su2double[nPrimVar]; + su2double *MeanPrimVar = new su2double[nPrimVar]; + su2double *PrimVar_out_ghost = new su2double[nPrimVar]; + su2double *PrimVar_in_ghost = new su2double[nPrimVar]; + su2double *ActDisk_Jump = new su2double[nPrimVar]; + su2double *Buffer_Send_V = new su2double [nPrimVar]; + su2double *Buffer_Receive_V = new su2double [nPrimVar]; #ifndef HAVE_MPI iProcessor = MASTER_NODE; @@ -9404,8 +9404,8 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con MPI_Bsend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD); -// MPI_Isend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); -// MPI_Waitall(1, send_req, send_stat); +// SU2_MPI::Isend(Buffer_Send_V, nPrimVar, MPI_DOUBLE, jProcessor, iPoint, MPI_COMM_WORLD, &send_req[0]); +// SU2_MPI::Waitall(1, send_req, send_stat); } @@ -9424,12 +9424,12 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con (config->GetMarker_All_KindBC(iMarker) == ACTDISK_OUTLET)) { unsigned short boundary = config->GetMarker_All_KindBC(iMarker); - double *Origin = config->GetActDisk_Origin(config->GetMarker_All_TagBound(iMarker)); - double R_root = config->GetActDisk_RootRadius(config->GetMarker_All_TagBound(iMarker)); - double R_tip = config->GetActDisk_TipRadius(config->GetMarker_All_TagBound(iMarker)); - double Target_Press_Jump = config->GetActDisk_PressJump(config->GetMarker_All_TagBound(iMarker))/ config->GetPressure_Ref(); - double Target_Temp_Jump = config->GetActDisk_TempJump(config->GetMarker_All_TagBound(iMarker))/ config->GetTemperature_Ref(); - double Omega = config->GetActDisk_Omega(config->GetMarker_All_TagBound(iMarker))*(PI_NUMBER/30.0); + su2double *Origin = config->GetActDisk_Origin(config->GetMarker_All_TagBound(iMarker)); + su2double R_root = config->GetActDisk_RootRadius(config->GetMarker_All_TagBound(iMarker)); + su2double R_tip = config->GetActDisk_TipRadius(config->GetMarker_All_TagBound(iMarker)); + su2double Target_Press_Jump = config->GetActDisk_PressJump(config->GetMarker_All_TagBound(iMarker))/ config->GetPressure_Ref(); + su2double Target_Temp_Jump = config->GetActDisk_TempJump(config->GetMarker_All_TagBound(iMarker))/ config->GetTemperature_Ref(); + su2double Omega = config->GetActDisk_Omega(config->GetMarker_All_TagBound(iMarker))*(PI_NUMBER/30.0); unsigned short Distribution = config->GetActDisk_Distribution(config->GetMarker_All_TagBound(iMarker)); for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { @@ -9448,10 +9448,10 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con if (jProcessor != iProcessor) { #ifdef HAVE_MPI - MPI_Recv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); + SU2_MPI::Recv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &status); -// MPI_Irecv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); -// MPI_Waitall(1, send_req, send_stat); +// SU2_MPI::Irecv(Buffer_Receive_V, nPrimVar, MPI_DOUBLE, jProcessor, jPoint, MPI_COMM_WORLD, &recv_req[0]); +// SU2_MPI::Waitall(1, send_req, send_stat); #endif } @@ -9503,8 +9503,8 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con /*--- Compute the pressure jump ---*/ -// double Press_Jump = fabs(PrimVar_in[nDim+1]-PrimVar_in[nDim+1]); -// double Press_inc = (1.0 - (Press_Jump/Target_Press_Jump)) * 0.01 * config->GetPressure_FreeStreamND(); +// su2double Press_Jump = fabs(PrimVar_in[nDim+1]-PrimVar_in[nDim+1]); +// su2double Press_inc = (1.0 - (Press_Jump/Target_Press_Jump)) * 0.01 * config->GetPressure_FreeStreamND(); // DeltaP_avg = (1.0 - DampingFactor)*Press_Jump + DampingFactor * (Press_Jump + Press_inc); DeltaP_avg = Target_Press_Jump; @@ -9517,8 +9517,8 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con /*--- Compute the temperature jump ---*/ -// double Temp_Jump = fabs(PrimVar_in[0]-PrimVar_in[0]); -// double Temp_inc = (1.0 - (Temp_Jump/Target_Temp_Jump)) * 0.01 * config->GetTemperature_FreeStreamND(); +// su2double Temp_Jump = fabs(PrimVar_in[0]-PrimVar_in[0]); +// su2double Temp_inc = (1.0 - (Temp_Jump/Target_Temp_Jump)) * 0.01 * config->GetTemperature_FreeStreamND(); // DeltaT_avg = (1.0 - DampingFactor)*Temp_Jump + DampingFactor * (Temp_Jump + Temp_inc); DeltaT_avg = Target_Temp_Jump; @@ -9716,9 +9716,9 @@ void CEulerSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_co unsigned short iVar, jVar, iMarker, iDim; unsigned long iPoint, jPoint, iEdge, iVertex; - double *U_time_nM1, *U_time_n, *U_time_nP1; - double Volume_nM1, Volume_nP1, TimeStep; - double *Normal = NULL, *GridVel_i = NULL, *GridVel_j = NULL, Residual_GCL; + su2double *U_time_nM1, *U_time_n, *U_time_nP1; + su2double Volume_nM1, Volume_nP1, TimeStep; + su2double *Normal = NULL, *GridVel_i = NULL, *GridVel_j = NULL, Residual_GCL; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool FlowEq = (RunTime_EqSystem == RUNTIME_FLOW_SYS); @@ -9920,11 +9920,11 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { unsigned short iMarker, iDim; unsigned long iVertex, iPoint; - double *Coord, VarCoord[3]; + su2double *Coord, VarCoord[3]; //#ifndef HAVE_MPI unsigned long iPoint_Donor; - double *CoordDonor, *DisplacementDonor; + su2double *CoordDonor, *DisplacementDonor; for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { @@ -9957,8 +9957,8 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo //#else // // int rank = MPI::COMM_WORLD.Get_rank(), jProcessor; - // double *Buffer_Send_Coord = new double [nDim]; - // double *Buffer_Receive_Coord = new double [nDim]; + // su2double *Buffer_Send_Coord = new su2double [nDim]; + // su2double *Buffer_Receive_Coord = new su2double [nDim]; // unsigned long jPoint; // // /*--- Do the send process, by the moment we are sending each @@ -10031,10 +10031,10 @@ void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetr CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { unsigned short iMarker, iDim; unsigned long iVertex, iPoint; - double *Coord, VarCoord[3]; + su2double *Coord, VarCoord[3]; unsigned long iPoint_Donor; - double *CoordDonor, *DisplacementDonor, *DisplacementDonor_Prev; + su2double *CoordDonor, *DisplacementDonor, *DisplacementDonor_Prev; for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { @@ -10077,7 +10077,7 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig unsigned short iDim, iVar, iMesh, iMeshFine; unsigned long iPoint, index, iChildren, Point_Fine; unsigned short turb_model = config->GetKind_Turb_Model(); - double Area_Children, Area_Parent, *Coord, *Solution_Fine, dull_val; + su2double Area_Children, Area_Parent, *Coord, *Solution_Fine, dull_val; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -10089,7 +10089,7 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig string restart_filename = config->GetSolution_FlowFileName(); - Coord = new double [nDim]; + Coord = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord[iDim] = 0.0; @@ -10178,7 +10178,7 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig /*--- Read in the next 2 or 3 variables which are the grid velocities ---*/ - double GridVel[3] = {0.0,0.0,0.0}; + su2double GridVel[3] = {0.0,0.0,0.0}; if (nDim == 2) point_line >> GridVel[0] >> GridVel[1]; else point_line >> GridVel[0] >> GridVel[1] >> GridVel[2]; @@ -10257,7 +10257,7 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig } void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) { - double *coord = NULL, dist2, *iCoord = NULL, *jCoord = NULL, LevelSet_i, LevelSet_j, + su2double *coord = NULL, dist2, *iCoord = NULL, *jCoord = NULL, LevelSet_i, LevelSet_j, **Coord_LevelSet = NULL, *xCoord = NULL, *yCoord = NULL, *zCoord = NULL, auxCoordx, auxCoordy, auxCoordz, FreeSurface, volume, LevelSetDiff_Squared, LevelSetDiff, dist, Min_dist; unsigned short iDim; @@ -10282,9 +10282,9 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) } /*--- Allocate vector of boundary coordinates ---*/ - Coord_LevelSet = new double* [nVertex_LevelSet]; + Coord_LevelSet = new su2double* [nVertex_LevelSet]; for (iVertex = 0; iVertex < nVertex_LevelSet; iVertex++) - Coord_LevelSet[iVertex] = new double [nDim]; + Coord_LevelSet[iVertex] = new su2double [nDim]; /*--- Get coordinates of the points of the surface ---*/ nVertex_LevelSet = 0; @@ -10303,7 +10303,7 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) int nProcessor, iProcessor; unsigned long *Buffer_Send_nVertex = NULL, *Buffer_Receive_nVertex = NULL, nLocalVertex_LevelSet = 0, nGlobalVertex_LevelSet = 0, MaxLocalVertex_LevelSet = 0, nBuffer; - double *Buffer_Send_Coord = NULL, *Buffer_Receive_Coord = NULL; + su2double *Buffer_Send_Coord = NULL, *Buffer_Receive_Coord = NULL; MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -10320,13 +10320,13 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) Buffer_Send_nVertex[0] = nLocalVertex_LevelSet; - MPI_Allreduce(&nLocalVertex_LevelSet, &nGlobalVertex_LevelSet, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&nLocalVertex_LevelSet, &MaxLocalVertex_LevelSet, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - MPI_Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_LevelSet, &nGlobalVertex_LevelSet, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_LevelSet, &MaxLocalVertex_LevelSet, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); nBuffer = MaxLocalVertex_LevelSet*nDim; - Buffer_Send_Coord = new double [nBuffer]; - Buffer_Receive_Coord = new double [nProcessor*nBuffer]; + Buffer_Send_Coord = new su2double [nBuffer]; + Buffer_Receive_Coord = new su2double [nProcessor*nBuffer]; for (iVertex = 0; iVertex < MaxLocalVertex_LevelSet; iVertex++) for (iDim = 0; iDim < nDim; iDim++) @@ -10344,7 +10344,7 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) } } - MPI_Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer, MPI_DOUBLE, MPI_COMM_WORLD); /*--- Identification of the 0 level set points and coordinates ---*/ nVertex_LevelSet = 0; @@ -10352,9 +10352,9 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) nVertex_LevelSet += Buffer_Receive_nVertex[iProcessor]; /*--- Allocate vector of boundary coordinates ---*/ - Coord_LevelSet = new double* [nVertex_LevelSet]; + Coord_LevelSet = new su2double* [nVertex_LevelSet]; for (iVertex = 0; iVertex < nVertex_LevelSet; iVertex++) - Coord_LevelSet[iVertex] = new double [nDim]; + Coord_LevelSet[iVertex] = new su2double [nDim]; /*--- Set the value of the coordinates at the level set zero ---*/ nVertex_LevelSet = 0; @@ -10389,7 +10389,7 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) } /*--- Compute the sign using the current solution ---*/ - double NumberSign = 1.0; + su2double NumberSign = 1.0; if (node[iPoint]->GetSolution(0) != 0.0) NumberSign = node[iPoint]->GetSolution(nDim+1)/fabs(node[iPoint]->GetSolution(nDim+1)); @@ -10433,14 +10433,14 @@ void CEulerSolver::SetFreeSurface_Distance(CGeometry *geometry, CConfig *config) /*--- Write file name with extension ---*/ strcpy (cstr, "LevelSet"); if (config->GetUnsteady_Simulation()) { - if ((int(iExtIter) >= 0) && (int(iExtIter) < 10)) sprintf (buffer, "_0000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 10) && (int(iExtIter) < 100)) sprintf (buffer, "_000%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 100) && (int(iExtIter) < 1000)) sprintf (buffer, "_00%d.dat", int(iExtIter)); - if ((int(iExtIter) >= 1000) && (int(iExtIter) < 10000)) sprintf (buffer, "_0%d.dat", int(iExtIter)); - if (int(iExtIter) >= 10000) sprintf (buffer, "_%d.dat", int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(iExtIter)); + if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(iExtIter)); + if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(iExtIter)); } else { - sprintf (buffer, ".dat"); + SPRINTF (buffer, ".dat"); } strcat(cstr, buffer); @@ -10501,7 +10501,7 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) unsigned long iPoint, index, counter_local = 0, counter_global = 0, iVertex; unsigned short iVar, iDim, iMarker, nLineLets; - double Density, Velocity2, Pressure, Temperature, dull_val, StaticEnergy; + su2double Density, Velocity2, Pressure, Temperature, dull_val, StaticEnergy; int Unst_RestartIter; ifstream restart_file; @@ -10569,61 +10569,61 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Define some auxiliar vector related with the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv[iVar] = 0.0; - Res_Visc = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0; - Res_Sour = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Sour[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Res_Conv = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv[iVar] = 0.0; + Res_Visc = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0; + Res_Sour = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Sour[iVar] = 0.0; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Define some auxiliary vectors related to the primitive solution ---*/ - Primitive = new double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; - Primitive_i = new double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_i[iVar] = 0.0; - Primitive_j = new double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_j[iVar] = 0.0; + Primitive = new su2double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; + Primitive_i = new su2double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_i[iVar] = 0.0; + Primitive_j = new su2double[nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the Secondary solution ---*/ - Secondary = new double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = 0.0; - Secondary_i = new double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_i[iVar] = 0.0; - Secondary_j = new double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_j[iVar] = 0.0; + Secondary = new su2double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = 0.0; + Secondary_i = new su2double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_i[iVar] = 0.0; + Secondary_j = new su2double[nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary_j[iVar] = 0.0; /*--- Define some auxiliar vector related with the undivided lapalacian computation ---*/ if (config->GetKind_ConvNumScheme_Flow() == SPACE_CENTERED) { - iPoint_UndLapl = new double [nPoint]; - jPoint_UndLapl = new double [nPoint]; + iPoint_UndLapl = new su2double [nPoint]; + jPoint_UndLapl = new su2double [nPoint]; } /*--- Define some auxiliary vectors related to low-speed preconditioning ---*/ if (roe_turkel) { - LowMach_Precontioner = new double* [nVar]; + LowMach_Precontioner = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar ++) - LowMach_Precontioner[iVar] = new double[nVar]; + LowMach_Precontioner[iVar] = new su2double[nVar]; } /*--- Initialize the solution and right hand side vectors for storing @@ -10637,11 +10637,11 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) if (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT) { - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Navier-Stokes). MG level: " << iMesh <<"." << endl; @@ -10666,22 +10666,22 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; - cvector = new double* [nPrimVarGrad]; + cvector = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Store the value of the characteristic primitive variables at the boundaries ---*/ - CharacPrimVar = new double** [nMarker]; + CharacPrimVar = new su2double** [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CharacPrimVar[iMarker] = new double* [geometry->nVertex[iMarker]]; + CharacPrimVar[iMarker] = new su2double* [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - CharacPrimVar[iMarker][iVertex] = new double [nPrimVar]; + CharacPrimVar[iMarker][iVertex] = new su2double [nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) { CharacPrimVar[iMarker][iVertex][iVar] = 0.0; } @@ -10690,11 +10690,11 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Inviscid force definition and coefficient in all the markers ---*/ - CPressure = new double* [nMarker]; - CPressureTarget = new double* [nMarker]; + CPressure = new su2double* [nMarker]; + CPressureTarget = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CPressure[iMarker] = new double [geometry->nVertex[iMarker]]; - CPressureTarget[iMarker] = new double [geometry->nVertex[iMarker]]; + CPressure[iMarker] = new su2double [geometry->nVertex[iMarker]]; + CPressureTarget[iMarker] = new su2double [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { CPressure[iMarker][iVertex] = 0.0; CPressureTarget[iMarker][iVertex] = 0.0; @@ -10703,11 +10703,11 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Heat flux in all the markers ---*/ - HeatFlux = new double* [nMarker]; - HeatFluxTarget = new double* [nMarker]; + HeatFlux = new su2double* [nMarker]; + HeatFluxTarget = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - HeatFlux[iMarker] = new double [geometry->nVertex[iMarker]]; - HeatFluxTarget[iMarker] = new double [geometry->nVertex[iMarker]]; + HeatFlux[iMarker] = new su2double [geometry->nVertex[iMarker]]; + HeatFluxTarget[iMarker] = new su2double [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { HeatFlux[iMarker][iVertex] = 0.0; HeatFluxTarget[iMarker][iVertex] = 0.0; @@ -10716,9 +10716,9 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Y plus in all the markers ---*/ - YPlus = new double* [nMarker]; + YPlus = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - YPlus[iMarker] = new double [geometry->nVertex[iMarker]]; + YPlus[iMarker] = new su2double [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { YPlus[iMarker][iVertex] = 0.0; } @@ -10726,9 +10726,9 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Skin friction in all the markers ---*/ - CSkinFriction = new double* [nMarker]; + CSkinFriction = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) { - CSkinFriction[iMarker] = new double [geometry->nVertex[iMarker]]; + CSkinFriction[iMarker] = new su2double [geometry->nVertex[iMarker]]; for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { CSkinFriction[iMarker][iVertex] = 0.0; } @@ -10736,100 +10736,100 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Non dimensional coefficients ---*/ - ForceInviscid = new double[3]; - MomentInviscid = new double[3]; - CDrag_Inv = new double[nMarker]; - CLift_Inv = new double[nMarker]; - CSideForce_Inv = new double[nMarker]; - CMx_Inv = new double[nMarker]; - CMy_Inv = new double[nMarker]; - CMz_Inv = new double[nMarker]; - CEff_Inv = new double[nMarker]; - CFx_Inv = new double[nMarker]; - CFy_Inv = new double[nMarker]; - CFz_Inv = new double[nMarker]; - - ForceViscous = new double[3]; - MomentViscous = new double[3]; - CDrag_Visc = new double[nMarker]; - CLift_Visc = new double[nMarker]; - CSideForce_Visc = new double[nMarker]; - CMx_Visc = new double[nMarker]; - CMy_Visc = new double[nMarker]; - CMz_Visc = new double[nMarker]; - CEff_Visc = new double[nMarker]; - CFx_Visc = new double[nMarker]; - CFy_Visc = new double[nMarker]; - CFz_Visc = new double[nMarker]; - - Surface_CLift_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CDrag_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CSideForce_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CEff_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CFx_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CFy_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CFz_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CMx_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CMy_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CMz_Inv = new double[config->GetnMarker_Monitoring()]; - Surface_CLift = new double[config->GetnMarker_Monitoring()]; - Surface_CDrag = new double[config->GetnMarker_Monitoring()]; - Surface_CSideForce = new double[config->GetnMarker_Monitoring()]; - Surface_CEff = new double[config->GetnMarker_Monitoring()]; - Surface_CFx = new double[config->GetnMarker_Monitoring()]; - Surface_CFy = new double[config->GetnMarker_Monitoring()]; - Surface_CFz = new double[config->GetnMarker_Monitoring()]; - Surface_CMx = new double[config->GetnMarker_Monitoring()]; - Surface_CMy = new double[config->GetnMarker_Monitoring()]; - Surface_CMz = new double[config->GetnMarker_Monitoring()]; - - Surface_CLift_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CDrag_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CSideForce_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CEff_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CFx_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CFy_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CFz_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CMx_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CMy_Visc = new double[config->GetnMarker_Monitoring()]; - Surface_CMz_Visc = new double[config->GetnMarker_Monitoring()]; + ForceInviscid = new su2double[3]; + MomentInviscid = new su2double[3]; + CDrag_Inv = new su2double[nMarker]; + CLift_Inv = new su2double[nMarker]; + CSideForce_Inv = new su2double[nMarker]; + CMx_Inv = new su2double[nMarker]; + CMy_Inv = new su2double[nMarker]; + CMz_Inv = new su2double[nMarker]; + CEff_Inv = new su2double[nMarker]; + CFx_Inv = new su2double[nMarker]; + CFy_Inv = new su2double[nMarker]; + CFz_Inv = new su2double[nMarker]; + + ForceViscous = new su2double[3]; + MomentViscous = new su2double[3]; + CDrag_Visc = new su2double[nMarker]; + CLift_Visc = new su2double[nMarker]; + CSideForce_Visc = new su2double[nMarker]; + CMx_Visc = new su2double[nMarker]; + CMy_Visc = new su2double[nMarker]; + CMz_Visc = new su2double[nMarker]; + CEff_Visc = new su2double[nMarker]; + CFx_Visc = new su2double[nMarker]; + CFy_Visc = new su2double[nMarker]; + CFz_Visc = new su2double[nMarker]; + + Surface_CLift_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CDrag_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CSideForce_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CEff_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFx_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFy_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFz_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMx_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMy_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMz_Inv = new su2double[config->GetnMarker_Monitoring()]; + Surface_CLift = new su2double[config->GetnMarker_Monitoring()]; + Surface_CDrag = new su2double[config->GetnMarker_Monitoring()]; + Surface_CSideForce = new su2double[config->GetnMarker_Monitoring()]; + Surface_CEff = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFx = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFy = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFz = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMx = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMy = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMz = new su2double[config->GetnMarker_Monitoring()]; + + Surface_CLift_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CDrag_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CSideForce_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CEff_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFx_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFy_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CFz_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMx_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMy_Visc = new su2double[config->GetnMarker_Monitoring()]; + Surface_CMz_Visc = new su2double[config->GetnMarker_Monitoring()]; /*--- Rotational coefficients ---*/ - CMerit_Inv = new double[nMarker]; - CT_Inv = new double[nMarker]; - CQ_Inv = new double[nMarker]; + CMerit_Inv = new su2double[nMarker]; + CT_Inv = new su2double[nMarker]; + CQ_Inv = new su2double[nMarker]; - CMerit_Visc = new double[nMarker]; - CT_Visc = new double[nMarker]; - CQ_Visc = new double[nMarker]; + CMerit_Visc = new su2double[nMarker]; + CT_Visc = new su2double[nMarker]; + CQ_Visc = new su2double[nMarker]; /*--- Heat based coefficients ---*/ - Heat_Visc = new double[nMarker]; - MaxHeatFlux_Visc = new double[nMarker]; + Heat_Visc = new su2double[nMarker]; + MaxHeatFlux_Visc = new su2double[nMarker]; /*--- Supersonic coefficients ---*/ - CEquivArea_Inv = new double[nMarker]; - CNearFieldOF_Inv = new double[nMarker]; + CEquivArea_Inv = new su2double[nMarker]; + CNearFieldOF_Inv = new su2double[nMarker]; /*--- Engine simulation ---*/ - Inflow_MassFlow = new double[nMarker]; - Inflow_Pressure = new double[nMarker]; - Inflow_Mach = new double[nMarker]; - Inflow_Area = new double[nMarker]; + Inflow_MassFlow = new su2double[nMarker]; + Inflow_Pressure = new su2double[nMarker]; + Inflow_Mach = new su2double[nMarker]; + Inflow_Area = new su2double[nMarker]; - Exhaust_MassFlow = new double[nMarker]; - Exhaust_Pressure = new double[nMarker]; - Exhaust_Temperature = new double[nMarker]; - Exhaust_Area = new double[nMarker]; + Exhaust_MassFlow = new su2double[nMarker]; + Exhaust_Pressure = new su2double[nMarker]; + Exhaust_Temperature = new su2double[nMarker]; + Exhaust_Area = new su2double[nMarker]; - Bleed_MassFlow = new double[nMarker]; - Bleed_Pressure = new double[nMarker]; - Bleed_Temperature = new double[nMarker]; - Bleed_Area = new double[nMarker]; + Bleed_MassFlow = new su2double[nMarker]; + Bleed_Pressure = new su2double[nMarker]; + Bleed_Temperature = new su2double[nMarker]; + Bleed_Area = new su2double[nMarker]; /*--- Init total coefficients ---*/ @@ -10877,7 +10877,7 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) if (config->GetFixed_CL_Mode()) - Cauchy_Serie = new double [config->GetCauchy_Elems()+1]; + Cauchy_Serie = new su2double [config->GetCauchy_Elems()+1]; /*--- Check for a restart and set up the variables at each node appropriately. Coarse multigrid levels will be intitially set to @@ -10900,11 +10900,11 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) if (dual_time) { if (adjoint) { - Unst_RestartIter = int(config->GetUnst_AdjointIter()) - 1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) - Unst_RestartIter = int(config->GetUnst_RestartIter())-1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; else - Unst_RestartIter = int(config->GetUnst_RestartIter())-2; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } @@ -10985,7 +10985,7 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) #ifndef HAVE_MPI rbuf_NotMatching = sbuf_NotMatching; #else - MPI_Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); #endif if (rbuf_NotMatching != 0) { @@ -11057,7 +11057,7 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI - MPI_Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); #else counter_global = counter_local; #endif @@ -11141,7 +11141,7 @@ CNSSolver::~CNSSolver(void) { void CNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) { unsigned long iPoint, ErrorCounter = 0; - double eddy_visc = 0.0, turb_ke = 0.0, StrainMag = 0.0, Omega = 0.0, *Vorticity; + su2double eddy_visc = 0.0, turb_ke = 0.0, StrainMag = 0.0, Omega = 0.0, *Vorticity; bool RightSol = true; #ifdef HAVE_MPI @@ -11270,12 +11270,12 @@ void CNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, C #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - double MyOmega_Max = Omega_Max; Omega_Max = 0.0; - double MyStrainMag_Max = StrainMag_Max; StrainMag_Max = 0.0; + su2double MyOmega_Max = Omega_Max; Omega_Max = 0.0; + su2double MyStrainMag_Max = StrainMag_Max; StrainMag_Max = 0.0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyStrainMag_Max, &StrainMag_Max, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - MPI_Allreduce(&MyOmega_Max, &Omega_Max, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyStrainMag_Max, &StrainMag_Max, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyOmega_Max, &Omega_Max, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #endif if (iMesh == MESH_0) { @@ -11290,11 +11290,11 @@ void CNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, C void CNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { - double Mean_BetaInc2, *Normal, Area, Vol, Mean_SoundSpeed = 0.0, Mean_ProjVel = 0.0, Lambda, Local_Delta_Time, Local_Delta_Time_Visc, Mean_DensityInc, + su2double Mean_BetaInc2, *Normal, Area, Vol, Mean_SoundSpeed = 0.0, Mean_ProjVel = 0.0, Lambda, Local_Delta_Time, Local_Delta_Time_Visc, Mean_DensityInc, Global_Delta_Time = 1E6, Mean_LaminarVisc = 0.0, Mean_EddyVisc = 0.0, Mean_Density = 0.0, Lambda_1, Lambda_2, K_v = 0.25, Global_Delta_UnstTimeND; unsigned long iEdge, iVertex, iPoint = 0, jPoint = 0; unsigned short iDim, iMarker; - double ProjVel, ProjVel_i, ProjVel_j; + su2double ProjVel, ProjVel_i, ProjVel_j; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -11341,8 +11341,8 @@ void CNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CC /*--- Adjustment for grid movement ---*/ if (grid_movement) { - double *GridVel_i = geometry->node[iPoint]->GetGridVel(); - double *GridVel_j = geometry->node[jPoint]->GetGridVel(); + su2double *GridVel_i = geometry->node[iPoint]->GetGridVel(); + su2double *GridVel_j = geometry->node[jPoint]->GetGridVel(); ProjVel_i = 0.0; ProjVel_j =0.0; for (iDim = 0; iDim < nDim; iDim++) { ProjVel_i += GridVel_i[iDim]*Normal[iDim]; @@ -11407,7 +11407,7 @@ void CNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CC /*--- Adjustment for grid movement ---*/ if (grid_movement) { - double *GridVel = geometry->node[iPoint]->GetGridVel(); + su2double *GridVel = geometry->node[iPoint]->GetGridVel(); ProjVel = 0.0; for (iDim = 0; iDim < nDim; iDim++) ProjVel += GridVel[iDim]*Normal[iDim]; @@ -11471,15 +11471,15 @@ void CNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CC /*--- Compute the max and the min dt (in parallel) ---*/ if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Min_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Min_Delta_Time = rbuf_time; sbuf_time = Max_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Max_Delta_Time = rbuf_time; #endif } @@ -11487,10 +11487,10 @@ void CNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CC /*--- For exact time solution use the minimum delta time of the whole mesh ---*/ if (config->GetUnsteady_Simulation() == TIME_STEPPING) { #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_Time = rbuf_time; #endif for (iPoint = 0; iPoint < nPointDomain; iPoint++) @@ -11503,10 +11503,10 @@ void CNSSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CC Global_Delta_UnstTimeND = config->GetUnst_CFL()*Global_Delta_Time/config->GetCFL(iMesh); #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_UnstTimeND; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_UnstTimeND = rbuf_time; #endif config->SetDelta_UnstTimeND(Global_Delta_UnstTimeND); @@ -11579,7 +11579,7 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { unsigned long iVertex, iPoint, iPointNormal; unsigned short Boundary, Monitoring, iMarker, iMarker_Monitoring, iDim, jDim; - double Viscosity = 0.0, div_vel, *Normal, MomentDist[3] = {0.0, 0.0, 0.0}, WallDist[3] = {0.0, 0.0, 0.0}, + su2double Viscosity = 0.0, div_vel, *Normal, MomentDist[3] = {0.0, 0.0, 0.0}, WallDist[3] = {0.0, 0.0, 0.0}, *Coord, *Coord_Normal, Area, WallShearStress, TauNormal, factor, RefTemp, RefVel2, RefDensity, GradTemperature, Density = 0.0, Vel[3] = {0.0, 0.0, 0.0}, WallDistMod, FrictionVel, Mach2Vel, Mach_Motion, UnitNormal[3] = {0.0, 0.0, 0.0}, TauElem[3] = {0.0, 0.0, 0.0}, TauTangent[3] = {0.0, 0.0, 0.0}, @@ -11588,22 +11588,22 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { delta[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}; #ifdef HAVE_MPI - double MyAllBound_CDrag_Visc, MyAllBound_CLift_Visc, MyAllBound_CSideForce_Visc, MyAllBound_CEff_Visc, MyAllBound_CMx_Visc, MyAllBound_CMy_Visc, MyAllBound_CMz_Visc, MyAllBound_CFx_Visc, MyAllBound_CFy_Visc, MyAllBound_CFz_Visc, MyAllBound_CT_Visc, MyAllBound_CQ_Visc, MyAllBound_CMerit_Visc, MyAllBound_HeatFlux_Visc, MyAllBound_MaxHeatFlux_Visc, *MySurface_CLift_Visc = NULL, *MySurface_CDrag_Visc = NULL, *MySurface_CSideForce_Visc = NULL, *MySurface_CEff_Visc = NULL, *MySurface_CFx_Visc = NULL, *MySurface_CFy_Visc = NULL, *MySurface_CFz_Visc = NULL, *MySurface_CMx_Visc = NULL, *MySurface_CMy_Visc = NULL, *MySurface_CMz_Visc = NULL; + su2double MyAllBound_CDrag_Visc, MyAllBound_CLift_Visc, MyAllBound_CSideForce_Visc, MyAllBound_CEff_Visc, MyAllBound_CMx_Visc, MyAllBound_CMy_Visc, MyAllBound_CMz_Visc, MyAllBound_CFx_Visc, MyAllBound_CFy_Visc, MyAllBound_CFz_Visc, MyAllBound_CT_Visc, MyAllBound_CQ_Visc, MyAllBound_CMerit_Visc, MyAllBound_HeatFlux_Visc, MyAllBound_MaxHeatFlux_Visc, *MySurface_CLift_Visc = NULL, *MySurface_CDrag_Visc = NULL, *MySurface_CSideForce_Visc = NULL, *MySurface_CEff_Visc = NULL, *MySurface_CFx_Visc = NULL, *MySurface_CFy_Visc = NULL, *MySurface_CFz_Visc = NULL, *MySurface_CMx_Visc = NULL, *MySurface_CMy_Visc = NULL, *MySurface_CMz_Visc = NULL; #endif string Marker_Tag, Monitoring_Tag; - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double Beta = config->GetAoS()*PI_NUMBER/180.0; - double RefAreaCoeff = config->GetRefAreaCoeff(); - double RefLengthMoment = config->GetRefLengthMoment(); - double Gas_Constant = config->GetGas_ConstantND(); - double *Origin = config->GetRefOriginMoment(0); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double *Origin = config->GetRefOriginMoment(0); bool grid_movement = config->GetGrid_Movement(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); - double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Lam = config->GetPrandtl_Lam(); /*--- Evaluate reference values for non-dimensionalization. For dynamic meshes, use the motion Mach number as a reference value @@ -11883,35 +11883,35 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { MyAllBound_HeatFlux_Visc = AllBound_HeatFlux_Visc; AllBound_HeatFlux_Visc = 0.0; MyAllBound_MaxHeatFlux_Visc = pow(AllBound_MaxHeatFlux_Visc, MaxNorm); AllBound_MaxHeatFlux_Visc = 0.0; - MPI_Allreduce(&MyAllBound_CDrag_Visc, &AllBound_CDrag_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CLift_Visc, &AllBound_CLift_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CSideForce_Visc, &AllBound_CSideForce_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CDrag_Visc, &AllBound_CDrag_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CLift_Visc, &AllBound_CLift_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CSideForce_Visc, &AllBound_CSideForce_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_CEff_Visc = AllBound_CLift_Visc / (AllBound_CDrag_Visc + EPS); - MPI_Allreduce(&MyAllBound_CMx_Visc, &AllBound_CMx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMy_Visc, &AllBound_CMy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMz_Visc, &AllBound_CMz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFx_Visc, &AllBound_CFx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFy_Visc, &AllBound_CFy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFz_Visc, &AllBound_CFz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CT_Visc, &AllBound_CT_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CQ_Visc, &AllBound_CQ_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMx_Visc, &AllBound_CMx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMy_Visc, &AllBound_CMy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMz_Visc, &AllBound_CMz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFx_Visc, &AllBound_CFx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFy_Visc, &AllBound_CFy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFz_Visc, &AllBound_CFz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CT_Visc, &AllBound_CT_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CQ_Visc, &AllBound_CQ_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_CMerit_Visc = AllBound_CT_Visc / (AllBound_CQ_Visc + EPS); - MPI_Allreduce(&MyAllBound_HeatFlux_Visc, &AllBound_HeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_MaxHeatFlux_Visc, &AllBound_MaxHeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_HeatFlux_Visc, &AllBound_HeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_MaxHeatFlux_Visc, &AllBound_MaxHeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_MaxHeatFlux_Visc = pow(AllBound_MaxHeatFlux_Visc, 1.0/MaxNorm); /*--- Add the forces on the surfaces using all the nodes ---*/ - MySurface_CLift_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CDrag_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CSideForce_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CEff_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CFx_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CFy_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CFz_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CMx_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CMy_Visc = new double[config->GetnMarker_Monitoring()]; - MySurface_CMz_Visc = new double[config->GetnMarker_Monitoring()]; + MySurface_CLift_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CDrag_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CSideForce_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CEff_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CFx_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CFy_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CFz_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CMx_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CMy_Visc = new su2double[config->GetnMarker_Monitoring()]; + MySurface_CMz_Visc = new su2double[config->GetnMarker_Monitoring()]; for (iMarker_Monitoring = 0; iMarker_Monitoring < config->GetnMarker_Monitoring(); iMarker_Monitoring++) { @@ -11938,17 +11938,17 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { Surface_CMz_Visc[iMarker_Monitoring] = 0.0; } - MPI_Allreduce(MySurface_CLift_Visc, Surface_CLift_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CDrag_Visc, Surface_CDrag_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CSideForce_Visc, Surface_CSideForce_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CLift_Visc, Surface_CLift_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CDrag_Visc, Surface_CDrag_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CSideForce_Visc, Surface_CSideForce_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); for (iMarker_Monitoring = 0; iMarker_Monitoring < config->GetnMarker_Monitoring(); iMarker_Monitoring++) Surface_CEff_Visc[iMarker_Monitoring] = Surface_CLift_Visc[iMarker_Monitoring] / (Surface_CDrag_Visc[iMarker_Monitoring] + EPS); - MPI_Allreduce(MySurface_CFx_Visc, Surface_CFx_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CFy_Visc, Surface_CFy_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CFz_Visc, Surface_CFz_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CMx_Visc, Surface_CMx_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CMy_Visc, Surface_CMy_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(MySurface_CMz_Visc, Surface_CMz_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CFx_Visc, Surface_CFx_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CFy_Visc, Surface_CFy_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CFz_Visc, Surface_CFz_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CMx_Visc, Surface_CMx_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CMy_Visc, Surface_CMy_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(MySurface_CMz_Visc, Surface_CMz_Visc, config->GetnMarker_Monitoring(), MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); delete [] MySurface_CLift_Visc; delete [] MySurface_CDrag_Visc; delete [] MySurface_CSideForce_Visc; delete [] MySurface_CEff_Visc; delete [] MySurface_CFx_Visc; delete [] MySurface_CFy_Visc; @@ -11997,13 +11997,13 @@ void CNSSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container unsigned short iDim, jDim, iVar, jVar; unsigned long iVertex, iPoint, Point_Normal, total_index; - double Wall_HeatFlux, dist_ij, *Coord_i, *Coord_j, theta2; - double thetax, thetay, thetaz, etax, etay, etaz, pix, piy, piz, factor; - double ProjGridVel, *GridVel, GridVel2, *Normal, Area, Pressure = 0.0; - double total_viscosity, div_vel, Density, tau_vel[3] = {0.0, 0.0, 0.0}, UnitNormal[3] = {0.0, 0.0, 0.0}; - double laminar_viscosity = 0.0, eddy_viscosity = 0.0, Grad_Vel[3][3] = {{0.0,0.0,0.0},{0.0,0.0,0.0},{0.0,0.0,0.0}}, + su2double Wall_HeatFlux, dist_ij, *Coord_i, *Coord_j, theta2; + su2double thetax, thetay, thetaz, etax, etay, etaz, pix, piy, piz, factor; + su2double ProjGridVel, *GridVel, GridVel2, *Normal, Area, Pressure = 0.0; + su2double total_viscosity, div_vel, Density, tau_vel[3] = {0.0, 0.0, 0.0}, UnitNormal[3] = {0.0, 0.0, 0.0}; + su2double laminar_viscosity = 0.0, eddy_viscosity = 0.0, Grad_Vel[3][3] = {{0.0,0.0,0.0},{0.0,0.0,0.0},{0.0,0.0,0.0}}, tau[3][3] = {{0.0,0.0,0.0},{0.0,0.0,0.0},{0.0,0.0,0.0}}; - double delta[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}; + su2double delta[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -12244,18 +12244,18 @@ void CNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_contain unsigned short iVar, jVar, iDim, jDim; unsigned long iVertex, iPoint, Point_Normal, total_index; - double *Normal, *Coord_i, *Coord_j, Area, dist_ij, theta2; - double Twall, dTdn, dTdrho, thermal_conductivity; - double thetax, thetay, thetaz, etax, etay, etaz, pix, piy, piz, factor; - double ProjGridVel, *GridVel, GridVel2, Pressure = 0.0, Density, Vel2; - double total_viscosity, div_vel, tau_vel[3] = {0.0,0.0,0.0}, UnitNormal[3] = {0.0,0.0,0.0}; - double laminar_viscosity, eddy_viscosity, Grad_Vel[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}, + su2double *Normal, *Coord_i, *Coord_j, Area, dist_ij, theta2; + su2double Twall, dTdn, dTdrho, thermal_conductivity; + su2double thetax, thetay, thetaz, etax, etay, etaz, pix, piy, piz, factor; + su2double ProjGridVel, *GridVel, GridVel2, Pressure = 0.0, Density, Vel2; + su2double total_viscosity, div_vel, tau_vel[3] = {0.0,0.0,0.0}, UnitNormal[3] = {0.0,0.0,0.0}; + su2double laminar_viscosity, eddy_viscosity, Grad_Vel[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}, tau[3][3] = {{0.0, 0.0, 0.0},{0.0,0.0,0.0},{0.0,0.0,0.0}}, delta[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}; - double Prandtl_Lam = config->GetPrandtl_Lam(); - double Prandtl_Turb = config->GetPrandtl_Turb(); - double Gas_Constant = config->GetGas_ConstantND(); - double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double Cp = (Gamma / Gamma_Minus_One) * Gas_Constant; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); diff --git a/SU2_CFD/src/solver_direct_poisson.cpp b/SU2_CFD/src/solver_direct_poisson.cpp index 634315d9a77..75ce045cfae 100644 --- a/SU2_CFD/src/solver_direct_poisson.cpp +++ b/SU2_CFD/src/solver_direct_poisson.cpp @@ -49,41 +49,41 @@ CPoissonSolver::CPoissonSolver(CGeometry *geometry, CConfig *config) : CSolver() nVar = 1; node = new CVariable*[nPoint]; - Residual = new double[nVar]; Residual_RMS = new double[nVar]; - Solution = new double[nVar]; - Residual_Max = new double[nVar]; + Residual = new su2double[nVar]; Residual_RMS = new su2double[nVar]; + Solution = new su2double[nVar]; + Residual_Max = new su2double[nVar]; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Point to point stiffness matrix ---*/ if (nDim == 2) { - StiffMatrix_Elem = new double* [3]; - Source_Vector = new double [3]; + StiffMatrix_Elem = new su2double* [3]; + Source_Vector = new su2double [3]; for (unsigned short iVar = 0; iVar < 3; iVar++) { - StiffMatrix_Elem[iVar] = new double [3]; + StiffMatrix_Elem[iVar] = new su2double [3]; } } if (nDim == 3) { - StiffMatrix_Elem = new double* [4]; - Source_Vector = new double [4]; + StiffMatrix_Elem = new su2double* [4]; + Source_Vector = new su2double [4]; for (unsigned short iVar = 0; iVar < 4; iVar++) { - StiffMatrix_Elem[iVar] = new double [4]; + StiffMatrix_Elem[iVar] = new su2double [4]; } } - StiffMatrix_Node = new double* [1]; + StiffMatrix_Node = new su2double* [1]; for (unsigned short iVar = 0; iVar < 1; iVar++) { - StiffMatrix_Node[iVar] = new double [1]; + StiffMatrix_Node[iVar] = new su2double [1]; } /*--- Initialization of the structure of the whole Jacobian ---*/ @@ -98,13 +98,13 @@ CPoissonSolver::CPoissonSolver(CGeometry *geometry, CConfig *config) : CSolver() /*--- Computation of gradients by least squares ---*/ - Smatrix = new double* [nDim]; // S matrix := inv(R)*traspose(inv(R)) + Smatrix = new su2double* [nDim]; // S matrix := inv(R)*traspose(inv(R)) for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; - cvector = new double* [nVar]; // c vector := transpose(WA)*(Wb) + cvector = new su2double* [nVar]; // c vector := transpose(WA)*(Wb) for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; /*--- Always instantiate and initialize the variable to a zero value. ---*/ @@ -188,13 +188,13 @@ void CPoissonSolver::Source_Residual(CGeometry *geometry, CSolver **solver_conta CConfig *config, unsigned short iMesh) { // // unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3 = 0; -// double a[3], b[3], c[3], d[3], Area_Local, Volume_Local; -// // double Local_Delta_Time; -// double **Gradient_0, **Gradient_1, **Gradient_2, **Gradient_3; -// double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL;; +// su2double a[3], b[3], c[3], d[3], Area_Local, Volume_Local; +// // su2double Local_Delta_Time; +// su2double **Gradient_0, **Gradient_1, **Gradient_2, **Gradient_3; +// su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL;; // unsigned short iDim; -// double dt; -// // double dx, u, c; +// su2double dt; +// // su2double dx, u, c; // bool MacCormack_relaxation = (config->GetMacCormackRelaxation()); // // if (nDim == 2) { @@ -349,8 +349,8 @@ void CPoissonSolver::Copy_Zone_Solution(CSolver ***solver1_solution, CConfig *solver2_config) { unsigned long iPoint; unsigned short iDim; - double neg_EFvalue; - double *E_field = new double [nDim]; + su2double neg_EFvalue; + su2double *E_field = new su2double [nDim]; for (iPoint = 0; iPoint < solver1_geometry[MESH_0]->GetnPointDomain(); iPoint++) { for (iDim =0; iDim < nDim; iDim ++) { @@ -369,7 +369,7 @@ void CPoissonSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_cont CConfig *config, unsigned short iMesh, unsigned short iRKStep) { unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3 = 0; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3 = NULL; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3 = NULL; if (nDim == 2 ) { for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -410,7 +410,7 @@ void CPoissonSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_cont * \brief Assemble the Global stiffness matrix * \author A. Lonkar */ -void CPoissonSolver::AddStiffMatrix(double **StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3) { +void CPoissonSolver::AddStiffMatrix(su2double **StiffMatrix_Elem, unsigned long Point_0, unsigned long Point_1, unsigned long Point_2, unsigned long Point_3) { if (nDim == 2 ) { StiffMatrix_Node[0][0] = StiffMatrix_Elem[0][0]; StiffMatrix.AddBlock(Point_0, Point_0, StiffMatrix_Node); diff --git a/SU2_CFD/src/solver_direct_tne2.cpp b/SU2_CFD/src/solver_direct_tne2.cpp index 6eaca091d77..328c0944069 100644 --- a/SU2_CFD/src/solver_direct_tne2.cpp +++ b/SU2_CFD/src/solver_direct_tne2.cpp @@ -63,8 +63,8 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, unsigned long iPoint, index, counter_local = 0, counter_global = 0; unsigned short iVar, iDim, iMarker, iSpecies, nZone, nLineLets; - double *Mvec_Inf; - double Alpha, Beta, dull_val; + su2double *Mvec_Inf; + su2double Alpha, Beta, dull_val; bool restart, check_infty, check_temp, check_press; /*--- Get MPI rank ---*/ @@ -123,52 +123,52 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, node = new CVariable*[nPoint]; /*--- Define some auxiliary vectors related to the residual ---*/ - Residual = new double[nVar]; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Residual_i = new double[nVar]; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv = new double[nVar]; + Res_Conv = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv[iVar] = 0.0; - Res_Visc = new double[nVar]; + Res_Visc = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0; - Res_Sour = new double[nVar]; + Res_Sour = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Sour[iVar] = 0.0; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Allocate arrays for conserved variable limits ---*/ - lowerlimit = new double[nVar]; - upperlimit = new double[nVar]; + lowerlimit = new su2double[nVar]; + upperlimit = new su2double[nVar]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { lowerlimit[iSpecies] = 0.0; upperlimit[iSpecies] = 1E16; @@ -194,11 +194,11 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, /*--- Allocate Jacobians for implicit time-stepping ---*/ if (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT) { - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure for the global Jacobian ---*/ @@ -222,34 +222,34 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nPrimVarGrad]; + cvector = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Allocate force & coefficient arrays on boundaries ---*/ - CPressure = new double* [nMarker]; + CPressure = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) - CPressure[iMarker] = new double [geometry->nVertex[iMarker]]; + CPressure[iMarker] = new su2double [geometry->nVertex[iMarker]]; /*--- Non dimensional coefficients ---*/ - ForceInviscid = new double[nDim]; - MomentInviscid = new double[3]; - CDrag_Inv = new double[nMarker]; - CLift_Inv = new double[nMarker]; - CSideForce_Inv = new double[nMarker]; - CMx_Inv = new double[nMarker]; - CMy_Inv = new double[nMarker]; - CMz_Inv = new double[nMarker]; - CEff_Inv = new double[nMarker]; - CFx_Inv = new double[nMarker]; - CFy_Inv = new double[nMarker]; - CFz_Inv = new double[nMarker]; + ForceInviscid = new su2double[nDim]; + MomentInviscid = new su2double[3]; + CDrag_Inv = new su2double[nMarker]; + CLift_Inv = new su2double[nMarker]; + CSideForce_Inv = new su2double[nMarker]; + CMx_Inv = new su2double[nMarker]; + CMy_Inv = new su2double[nMarker]; + CMz_Inv = new su2double[nMarker]; + CEff_Inv = new su2double[nMarker]; + CFx_Inv = new su2double[nMarker]; + CFy_Inv = new su2double[nMarker]; + CFz_Inv = new su2double[nMarker]; /*--- Initialize total coefficients ---*/ Total_CDrag = 0.0; Total_CLift = 0.0; Total_CSideForce = 0.0; @@ -266,7 +266,7 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, Mach_Inf = config->GetMach(); /*--- Vectorize free stream Mach number based on AoA & AoS ---*/ - Mvec_Inf = new double[nDim]; + Mvec_Inf = new su2double[nDim]; Alpha = config->GetAoA(); Beta = config->GetAoS(); if (nDim == 2) { @@ -286,7 +286,7 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, nPrimVar, nPrimVarGrad, config); check_infty = node_infty->SetPrimVar_Compressible(config); - Velocity_Inf = new double[nDim]; + Velocity_Inf = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Velocity_Inf[iDim] = node_infty->GetVelocity(iDim); @@ -394,9 +394,9 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, if (check_temp || check_press) { bool ionization; unsigned short iEl, nHeavy, nEl, *nElStates; - double Ru, T, Tve, rhoCvtr, sqvel, rhoE, rhoEve, num, denom, conc; - double rho, rhos, Ef, Ev, Ee, soundspeed; - double *xi, *Ms, *thetav, **thetae, **g, *Tref, *hf; + su2double Ru, T, Tve, rhoCvtr, sqvel, rhoE, rhoEve, num, denom, conc; + su2double rho, rhos, Ef, Ev, Ee, soundspeed; + su2double *xi, *Ms, *thetav, **thetae, **g, *Tref, *hf; /*--- Determine the number of heavy species ---*/ ionization = config->GetIonization(); if (ionization) { nHeavy = nSpecies-1; nEl = 1; } @@ -496,7 +496,7 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, } #ifdef HAVE_MPI - MPI_Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); #else counter_global = counter_local; @@ -563,7 +563,7 @@ CTNE2EulerSolver::~CTNE2EulerSolver(void) { void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; int send_to, receive_from; #ifdef HAVE_MPI @@ -584,8 +584,8 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -597,7 +597,7 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -684,7 +684,7 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; int send_to, receive_from; @@ -706,8 +706,8 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -719,7 +719,7 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -798,11 +798,11 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR, VEL_INDEX; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_V = NULL, *Buffer_Send_V = NULL; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_V = NULL, *Buffer_Send_V = NULL; int send_to, receive_from; - double *Primitive; + su2double *Primitive; - Primitive = new double[nPrimVar]; + Primitive = new su2double[nPrimVar]; VEL_INDEX = node_infty->GetVelIndex(); #ifdef HAVE_MPI @@ -823,8 +823,8 @@ void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nPrimVar; nBufferR_Vector = nVertexR*nPrimVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_V = new double [nBufferR_Vector]; - Buffer_Send_V = new double[nBufferS_Vector]; + Buffer_Receive_V = new su2double [nBufferR_Vector]; + Buffer_Send_V = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -836,7 +836,7 @@ void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_V, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_V, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_V, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -919,11 +919,11 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, unsigned long iVertex, iPoint; unsigned long nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double rotMatrix[3][3], *angles; - double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; + su2double theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double rotMatrix[3][3], *angles; + su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; - double *Limiter = new double[nVar]; + su2double *Limiter = new su2double[nVar]; #ifdef HAVE_MPI MPI_Status status; @@ -945,8 +945,8 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -958,7 +958,7 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1049,7 +1049,7 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Undivided_Laplacian = NULL, *Buffer_Send_Undivided_Laplacian = NULL; int send_to, receive_from; @@ -1071,8 +1071,8 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Undivided_Laplacian = new double [nBufferR_Vector]; - Buffer_Send_Undivided_Laplacian = new double[nBufferS_Vector]; + Buffer_Receive_Undivided_Laplacian = new su2double [nBufferR_Vector]; + Buffer_Send_Undivided_Laplacian = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1084,7 +1084,7 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, + SU2_MPI::Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Undivided_Laplacian, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -1165,7 +1165,7 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *config) { unsigned short iMarker, MarkerS, MarkerR, *Buffer_Receive_Neighbor = NULL, *Buffer_Send_Neighbor = NULL; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; + su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; int send_to, receive_from; #ifdef HAVE_MPI @@ -1186,8 +1186,8 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Lambda = new double [nBufferR_Vector]; - Buffer_Send_Lambda = new double[nBufferS_Vector]; + Buffer_Receive_Lambda = new su2double [nBufferR_Vector]; + Buffer_Send_Lambda = new su2double[nBufferS_Vector]; Buffer_Receive_Neighbor = new unsigned short [nBufferR_Vector]; Buffer_Send_Neighbor = new unsigned short[nBufferS_Vector]; @@ -1201,9 +1201,9 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - MPI_Sendrecv(Buffer_Send_Neighbor, nBufferS_Vector, MPI_UNSIGNED_SHORT, send_to, 1, + SU2_MPI::Sendrecv(Buffer_Send_Neighbor, nBufferS_Vector, MPI_UNSIGNED_SHORT, send_to, 1, Buffer_Receive_Neighbor, nBufferR_Vector, MPI_UNSIGNED_SHORT, receive_from, 1, MPI_COMM_WORLD, &status); #else @@ -1242,7 +1242,7 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig *config) { unsigned short iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; + su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; int send_to, receive_from; #ifdef HAVE_MPI @@ -1263,8 +1263,8 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Lambda = new double [nBufferR_Vector]; - Buffer_Send_Lambda = new double[nBufferS_Vector]; + Buffer_Receive_Lambda = new su2double [nBufferR_Vector]; + Buffer_Send_Lambda = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1275,7 +1275,7 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1310,13 +1310,13 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; int send_to, receive_from; - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI MPI_Status status; @@ -1336,8 +1336,8 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sent ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1350,7 +1350,7 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1439,13 +1439,13 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; int send_to, receive_from; - double **Gradient = new double* [nPrimVarGrad]; + su2double **Gradient = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI MPI_Status status; @@ -1465,8 +1465,8 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig * nBufferS_Vector = nVertexS*nPrimVarGrad*nDim; nBufferR_Vector = nVertexR*nPrimVarGrad*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1479,7 +1479,7 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig * #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1573,12 +1573,12 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, unsigned long iVertex, iPoint; unsigned long nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; int send_to, receive_from; - double theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; - double rotMatrix[3][3], *angles; - double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; + su2double theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + su2double rotMatrix[3][3], *angles; + su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; /*--- Initialize array to store the limiter ---*/ - double *Limiter = new double [nPrimVarGrad]; + su2double *Limiter = new su2double [nPrimVarGrad]; #ifdef HAVE_MPI MPI_Status status; @@ -1604,8 +1604,8 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, nBufferR_Vector = nVertexR*nPrimVarGrad; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double[nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double[nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -1617,7 +1617,7 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1708,12 +1708,12 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, void CTNE2EulerSolver::SetNondimensionalization(CGeometry *geometry, CConfig *config, unsigned short iMesh) { - double Temperature_FreeStream = 0.0, Mach2Vel_FreeStream = 0.0, ModVel_FreeStream = 0.0, Energy_FreeStream = 0.0, ModVel_FreeStreamND = 0.0, + su2double Temperature_FreeStream = 0.0, Mach2Vel_FreeStream = 0.0, ModVel_FreeStream = 0.0, Energy_FreeStream = 0.0, ModVel_FreeStreamND = 0.0, Velocity_Reynolds = 0.0, Omega_FreeStream = 0.0, Omega_FreeStreamND = 0.0, Viscosity_FreeStream = 0.0, Density_FreeStream = 0.0, Pressure_FreeStream = 0.0, Tke_FreeStream = 0.0; - double Length_Ref = 0.0, Density_Ref = 0.0, Temperature_Ref = 0.0, Pressure_Ref = 0.0, Velocity_Ref = 0.0, Time_Ref = 0.0, Omega_Ref = 0.0, Force_Ref = 0.0, + su2double Length_Ref = 0.0, Density_Ref = 0.0, Temperature_Ref = 0.0, Pressure_Ref = 0.0, Velocity_Ref = 0.0, Time_Ref = 0.0, Omega_Ref = 0.0, Force_Ref = 0.0, Gas_Constant_Ref = 0.0, Viscosity_Ref = 0.0, Energy_Ref= 0.0, Froude = 0.0; - double Pressure_FreeStreamND = 0.0, Density_FreeStreamND = 0.0, Temperature_FreeStreamND = 0.0, Gas_ConstantND = 0.0, + su2double Pressure_FreeStreamND = 0.0, Density_FreeStreamND = 0.0, Temperature_FreeStreamND = 0.0, Gas_ConstantND = 0.0, Velocity_FreeStreamND[3] = {0.0, 0.0, 0.0}, Viscosity_FreeStreamND = 0.0, Tke_FreeStreamND = 0.0, Energy_FreeStreamND = 0.0, Total_UnstTimeND = 0.0, Delta_UnstTimeND = 0.0, T_ref = 0.0, S = 0.0, Mu_ref = 0.0; unsigned short iDim; @@ -1725,11 +1725,11 @@ void CTNE2EulerSolver::SetNondimensionalization(CGeometry *geometry, CConfig *co /*--- Local variables and memory allocation ---*/ - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double Beta = config->GetAoS()*PI_NUMBER/180.0; - double Gamma_Minus_One = Gamma - 1.0; - double Mach = config->GetMach(); - double Reynolds = config->GetReynolds(); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double Gamma_Minus_One = Gamma - 1.0; + su2double Mach = config->GetMach(); + su2double Reynolds = config->GetReynolds(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -2182,7 +2182,7 @@ void CTNE2EulerSolver::Preprocessing(CGeometry *geometry, /*--- Error message ---*/ #ifdef HAVE_MPI unsigned long MyErrorCounter = ErrorCounter; ErrorCounter = 0; - MPI_Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyErrorCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #endif if ((ErrorCounter != 0) && (rank == MASTER_NODE)) cout <<"The solution contains "<< ErrorCounter << " non-physical points." << endl; @@ -2191,7 +2191,7 @@ void CTNE2EulerSolver::Preprocessing(CGeometry *geometry, void CTNE2EulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solution_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { - double *Normal, Area, Vol, Mean_SoundSpeed, Mean_ProjVel, Lambda, Local_Delta_Time, + su2double *Normal, Area, Vol, Mean_SoundSpeed, Mean_ProjVel, Lambda, Local_Delta_Time, Global_Delta_Time = 1E6; unsigned long iEdge, iVertex, iPoint, jPoint; unsigned short iDim, iMarker; @@ -2264,10 +2264,10 @@ void CTNE2EulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solution_cont /*--- For exact time solution use the minimum delta time of the whole mesh ---*/ if (config->GetUnsteady_Simulation() == TIME_STEPPING) { #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_Time = rbuf_time; #endif for (iPoint = 0; iPoint < nPointDomain; iPoint++) @@ -2278,7 +2278,7 @@ void CTNE2EulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solution_cont void CTNE2EulerSolver::SetMax_Eigenvalue(CGeometry *geometry, CConfig *config) { - double *Normal, Area, Mean_SoundSpeed, Mean_ProjVel, Lambda; + su2double *Normal, Area, Mean_SoundSpeed, Mean_ProjVel, Lambda; unsigned long iEdge, iVertex, iPoint, jPoint; unsigned short iDim, iMarker; @@ -2403,12 +2403,12 @@ void CTNE2EulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solution_c unsigned short RHO_INDEX, RHOS_INDEX; unsigned short iDim, iVar, jVar; bool implicit, second_order, limiter, chk_err_i, chk_err_j; - double *U_i, *U_j, *V_i, *V_j; - double **GradU_i, **GradU_j, ProjGradU_i, ProjGradU_j; - double *Limiter_i, *Limiter_j; - double *Conserved_i, *Conserved_j, *Primitive_i, *Primitive_j; - double *dPdU_i, *dPdU_j, *dTdU_i, *dTdU_j, *dTvedU_i, *dTvedU_j; - double lim_i, lim_j, lim_ij = 0.0; + su2double *U_i, *U_j, *V_i, *V_j; + su2double **GradU_i, **GradU_j, ProjGradU_i, ProjGradU_j; + su2double *Limiter_i, *Limiter_j; + su2double *Conserved_i, *Conserved_j, *Primitive_i, *Primitive_j; + su2double *dPdU_i, *dPdU_j, *dTdU_i, *dTdU_j, *dTvedU_i, *dTvedU_j; + su2double lim_i, lim_j, lim_ij = 0.0; /*--- Set booleans based on config settings ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -2416,16 +2416,16 @@ void CTNE2EulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solution_c limiter = (config->GetSpatialOrder_TNE2() == SECOND_ORDER_LIMITER); /*--- Allocate arrays ---*/ - Primitive_i = new double[nPrimVar]; - Primitive_j = new double[nPrimVar]; - Conserved_i = new double[nVar]; - Conserved_j = new double[nVar]; - dPdU_i = new double[nVar]; - dPdU_j = new double[nVar]; - dTdU_i = new double[nVar]; - dTdU_j = new double[nVar]; - dTvedU_i = new double[nVar]; - dTvedU_j = new double[nVar]; + Primitive_i = new su2double[nPrimVar]; + Primitive_j = new su2double[nPrimVar]; + Conserved_i = new su2double[nVar]; + Conserved_j = new su2double[nVar]; + dPdU_i = new su2double[nVar]; + dPdU_j = new su2double[nVar]; + dTdU_i = new su2double[nVar]; + dTdU_j = new su2double[nVar]; + dTvedU_i = new su2double[nVar]; + dTvedU_j = new su2double[nVar]; /*--- Pass structure of the primitive variable vector to CNumerics ---*/ numerics->SetRhosIndex ( node[0]->GetRhosIndex() ); @@ -2875,16 +2875,16 @@ void CTNE2EulerSolver::Source_Residual(CGeometry *geometry, CSolver **solution_c void CTNE2EulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { unsigned long iVertex, iPoint; unsigned short iDim, iMarker, Boundary, Monitoring; - double Pressure, *Normal = NULL, dist[3], *Coord, Face_Area, PressInviscid; - double factor, NFPressOF, RefVel2, RefDensity, RefPressure; + su2double Pressure, *Normal = NULL, dist[3], *Coord, Face_Area, PressInviscid; + su2double factor, NFPressOF, RefVel2, RefDensity, RefPressure; - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double Beta = config->GetAoS()*PI_NUMBER/180.0; - double RefAreaCoeff = config->GetRefAreaCoeff(); - double RefLengthMoment = config->GetRefLengthMoment(); - double *Origin = config->GetRefOriginMoment(0); - //double Pressure_Inf = config->GetPressure_FreeStreamND(); - //double *Velocity_Inf = config->GetVelocity_FreeStreamND(); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double *Origin = config->GetRefOriginMoment(0); + //su2double Pressure_Inf = config->GetPressure_FreeStreamND(); + //su2double *Velocity_Inf = config->GetVelocity_FreeStreamND(); /*--- If we have a rotating frame problem or an unsteady problem with mesh motion, use special reference values for the force coefficients. @@ -3023,27 +3023,27 @@ void CTNE2EulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Add AllBound information using all the nodes ---*/ - double MyAllBound_CDrag_Inv = AllBound_CDrag_Inv; AllBound_CDrag_Inv = 0.0; - double MyAllBound_CLift_Inv = AllBound_CLift_Inv; AllBound_CLift_Inv = 0.0; - double MyAllBound_CSideForce_Inv = AllBound_CSideForce_Inv; AllBound_CSideForce_Inv = 0.0; - double MyAllBound_CEff_Inv = AllBound_CEff_Inv; AllBound_CEff_Inv = 0.0; - double MyAllBound_CMx_Inv = AllBound_CMx_Inv; AllBound_CMx_Inv = 0.0; - double MyAllBound_CMy_Inv = AllBound_CMy_Inv; AllBound_CMy_Inv = 0.0; - double MyAllBound_CMz_Inv = AllBound_CMz_Inv; AllBound_CMz_Inv = 0.0; - double MyAllBound_CFx_Inv = AllBound_CFx_Inv; AllBound_CFx_Inv = 0.0; - double MyAllBound_CFy_Inv = AllBound_CFy_Inv; AllBound_CFy_Inv = 0.0; - double MyAllBound_CFz_Inv = AllBound_CFz_Inv; AllBound_CFz_Inv = 0.0; + su2double MyAllBound_CDrag_Inv = AllBound_CDrag_Inv; AllBound_CDrag_Inv = 0.0; + su2double MyAllBound_CLift_Inv = AllBound_CLift_Inv; AllBound_CLift_Inv = 0.0; + su2double MyAllBound_CSideForce_Inv = AllBound_CSideForce_Inv; AllBound_CSideForce_Inv = 0.0; + su2double MyAllBound_CEff_Inv = AllBound_CEff_Inv; AllBound_CEff_Inv = 0.0; + su2double MyAllBound_CMx_Inv = AllBound_CMx_Inv; AllBound_CMx_Inv = 0.0; + su2double MyAllBound_CMy_Inv = AllBound_CMy_Inv; AllBound_CMy_Inv = 0.0; + su2double MyAllBound_CMz_Inv = AllBound_CMz_Inv; AllBound_CMz_Inv = 0.0; + su2double MyAllBound_CFx_Inv = AllBound_CFx_Inv; AllBound_CFx_Inv = 0.0; + su2double MyAllBound_CFy_Inv = AllBound_CFy_Inv; AllBound_CFy_Inv = 0.0; + su2double MyAllBound_CFz_Inv = AllBound_CFz_Inv; AllBound_CFz_Inv = 0.0; - MPI_Allreduce(&MyAllBound_CDrag_Inv, &AllBound_CDrag_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CLift_Inv, &AllBound_CLift_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CSideForce_Inv, &AllBound_CSideForce_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CDrag_Inv, &AllBound_CDrag_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CLift_Inv, &AllBound_CLift_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CSideForce_Inv, &AllBound_CSideForce_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_CEff_Inv = AllBound_CLift_Inv / (AllBound_CDrag_Inv + EPS); - MPI_Allreduce(&MyAllBound_CMx_Inv, &AllBound_CMx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMy_Inv, &AllBound_CMy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMz_Inv, &AllBound_CMz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFx_Inv, &AllBound_CFx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFy_Inv, &AllBound_CFy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFz_Inv, &AllBound_CFz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMx_Inv, &AllBound_CMx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMy_Inv, &AllBound_CMy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMz_Inv, &AllBound_CMz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFx_Inv, &AllBound_CFx_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFy_Inv, &AllBound_CFy_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFz_Inv, &AllBound_CFz_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #endif @@ -3062,7 +3062,7 @@ void CTNE2EulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { } void CTNE2EulerSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - double *local_Residual, *local_Res_TruncError, Vol, Delta, Res; + su2double *local_Residual, *local_Res_TruncError, Vol, Delta, Res; unsigned short iVar; unsigned long iPoint; @@ -3105,7 +3105,7 @@ void CTNE2EulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CConfig *config) { unsigned short iVar; unsigned long iPoint, total_index, IterLinSol = 0; - double Delta, *local_Res_TruncError, Vol; + su2double Delta, *local_Res_TruncError, Vol; bool adjoint = config->GetAdjoint(); @@ -3185,14 +3185,14 @@ void CTNE2EulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, void CTNE2EulerSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, CConfig *config) { unsigned long iPoint, jPoint, iEdge, iVertex; unsigned short iDim, iSpecies, iVar, iMarker, RHOS_INDEX, RHO_INDEX; - double *PrimVar_Vertex, *PrimVar_i, *PrimVar_j, PrimVar_Average, rho_i, + su2double *PrimVar_Vertex, *PrimVar_i, *PrimVar_j, PrimVar_Average, rho_i, Partial_Gradient, Partial_Res, *Normal; /*--- Initialize arrays ---*/ // Primitive variables: [Y1, ..., YNs, T, Tve, u, v, w]^T - PrimVar_Vertex = new double [nPrimVarGrad]; - PrimVar_i = new double [nPrimVarGrad]; - PrimVar_j = new double [nPrimVarGrad]; + PrimVar_Vertex = new su2double [nPrimVarGrad]; + PrimVar_i = new su2double [nPrimVarGrad]; + PrimVar_j = new su2double [nPrimVarGrad]; /*--- Get indices of species & mixture density ---*/ RHOS_INDEX = node[0]->GetRhosIndex(); @@ -3283,15 +3283,15 @@ void CTNE2EulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, CConfig *co unsigned short iVar, iDim, jDim, iNeigh, RHOS_INDEX, RHO_INDEX; unsigned long iPoint, jPoint; - double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, + su2double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, product, detR2, z11, z12, z13, z22, z23, z33; bool singular = false; /*--- Initialize arrays, Primitive variables: [Y1, ..., YNs, T, Tve, u, v, w, P]^T ---*/ - PrimVar_i = new double [nPrimVarGrad]; - PrimVar_j = new double [nPrimVarGrad]; + PrimVar_i = new su2double [nPrimVarGrad]; + PrimVar_j = new su2double [nPrimVarGrad]; /*--- Get indices of species & mixture density ---*/ @@ -3441,15 +3441,15 @@ void CTNE2EulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, unsigned short iVar, iDim, jDim, iNeigh, RHOS_INDEX, RHO_INDEX; unsigned long iPoint, jPoint; - double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, + su2double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, product, z11, z12, z13, z22, z23, z33, detR2; bool singular = false; /*--- Initialize arrays Primitive variables: [Y1, ..., YNs, T, Tve, u, v, w]^T ---*/ - PrimVar_i = new double [nPrimVarGrad]; - PrimVar_j = new double [nPrimVarGrad]; + PrimVar_i = new su2double [nPrimVarGrad]; + PrimVar_j = new su2double [nPrimVarGrad]; /*--- Get indices of species & mixture density ---*/ @@ -3578,10 +3578,10 @@ void CTNE2EulerSolver::SetPrimitive_Limiter(CGeometry *geometry, unsigned long iEdge, iPoint, jPoint; unsigned short iVar, iDim; - double dave, LimK, eps2, dm, dp, du, limiter; - double *Primitive_i, *Primitive_j; - double *Coord_i, *Coord_j; - double **Gradient_i, **Gradient_j; + su2double dave, LimK, eps2, dm, dp, du, limiter; + su2double *Primitive_i, *Primitive_j; + su2double *Coord_i, *Coord_j; + su2double **Gradient_i, **Gradient_j; /*--- Initialize solution max and solution min in the entire domain --*/ @@ -3692,10 +3692,10 @@ void CTNE2EulerSolver::SetSolution_Limiter(CGeometry *geometry, unsigned long iEdge, iPoint, jPoint; unsigned short iVar, iDim; - double dave, LimK, eps2, dm, dp, du, limiter; - double *Solution_i, *Solution_j; - double *Coord_i, *Coord_j; - double **Gradient_i, **Gradient_j; + su2double dave, LimK, eps2, dm, dp, du, limiter; + su2double *Solution_i, *Solution_j; + su2double *Coord_i, *Coord_j; + su2double **Gradient_i, **Gradient_j; /*--- Initialize solution max and solution min in the entire domain --*/ @@ -3803,10 +3803,10 @@ void CTNE2EulerSolver::SetSolution_Limiter(CGeometry *geometry, void CTNE2EulerSolver::SetPreconditioner(CConfig *config, unsigned short iPoint) { unsigned short iDim, jDim, iVar, jVar; - double Beta, local_Mach, Beta2, rho, enthalpy, soundspeed, sq_vel; - double *U_i = NULL; - double Beta_min = config->GetminTurkelBeta(); - double Beta_max = config->GetmaxTurkelBeta(); + su2double Beta, local_Mach, Beta2, rho, enthalpy, soundspeed, sq_vel; + su2double *U_i = NULL; + su2double Beta_min = config->GetminTurkelBeta(); + su2double Beta_max = config->GetmaxTurkelBeta(); /*--- Variables to calculate the preconditioner parameter Beta ---*/ @@ -3858,12 +3858,12 @@ void CTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, unsigned short iDim, iSpecies, iVar, jVar; unsigned long iPoint, iVertex; bool implicit; - double *Normal, *UnitNormal, *Ms, *dPdU; - double Area, rhoCvtr, rhoCvve, rho_el, Ru; - double rho, cs, u, v, w, P, rhoE, rhoEve, conc, Beta; + su2double *Normal, *UnitNormal, *Ms, *dPdU; + su2double Area, rhoCvtr, rhoCvve, rho_el, Ru; + su2double rho, cs, u, v, w, P, rhoE, rhoEve, conc, Beta; /*--- Allocate arrays ---*/ - UnitNormal = new double[3]; + UnitNormal = new su2double[3]; /*--- Set booleans based on configuration options ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -3997,14 +3997,14 @@ void CTNE2EulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solution_cont unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; bool implicit, viscous; - double *U_domain, *V_domain, *U_infty, *V_infty, *Normal; + su2double *U_domain, *V_domain, *U_infty, *V_infty, *Normal; /*--- Set booleans from configuration parameters ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); viscous = config->GetViscous(); /*--- Allocate arrays ---*/ - Normal = new double[nDim]; + Normal = new su2double[nDim]; /*--- Pass structure of the primitive variable vector to CNumerics ---*/ conv_numerics->SetRhosIndex ( node[0]->GetRhosIndex() ); @@ -4126,22 +4126,22 @@ void CTNE2EulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solution_containe CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double P_Total, T_Total, Velocity[3], Velocity2, H_Total, Temperature, Riemann, + su2double P_Total, T_Total, Velocity[3], Velocity2, H_Total, Temperature, Riemann, Pressure, Density, Energy, *Flow_Dir, Mach2, SoundSpeed2, SoundSpeed_Total2, Vel_Mag, alpha, aa, bb, cc, dd, Area, UnitaryNormal[3]; bool implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); - double Two_Gamma_M1 = 2.0/Gamma_Minus_One; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Two_Gamma_M1 = 2.0/Gamma_Minus_One; + su2double Gas_Constant = config->GetGas_ConstantND(); unsigned short Kind_Inlet = config->GetKind_Inlet(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool viscous = config->GetViscous(); bool gravity = (config->GetGravityForce()); - double *U_domain = new double[nVar]; double *U_inlet = new double[nVar]; - double *V_domain = new double[nPrimVar]; double *V_inlet = new double[nPrimVar]; - double *Normal = new double[nDim]; + su2double *U_domain = new su2double[nVar]; su2double *U_inlet = new su2double[nVar]; + su2double *V_domain = new su2double[nPrimVar]; su2double *V_inlet = new su2double[nPrimVar]; + su2double *Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -4385,20 +4385,20 @@ void CTNE2EulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solution_contain CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double Pressure, P_Exit, Velocity[3], + su2double Pressure, P_Exit, Velocity[3], Velocity2, Entropy, Density, Energy, Riemann, Vn, SoundSpeed, Mach_Exit, Vn_Exit, Area, UnitaryNormal[3]; bool implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); - double Gas_Constant = config->GetGas_ConstantND(); + su2double Gas_Constant = config->GetGas_ConstantND(); bool grid_movement = config->GetGrid_Movement(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool viscous = config->GetViscous(); bool gravity = (config->GetGravityForce()); - double *U_domain = new double[nVar]; double *U_outlet = new double[nVar]; - double *V_domain = new double[nPrimVar]; double *V_outlet = new double[nPrimVar]; - double *Normal = new double[nDim]; + su2double *U_domain = new su2double[nVar]; su2double *U_outlet = new su2double[nVar]; + su2double *V_domain = new su2double[nPrimVar]; su2double *V_outlet = new su2double[nPrimVar]; + su2double *Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -4554,17 +4554,17 @@ void CTNE2EulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **soluti CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim, iVar; unsigned long iVertex, iPoint, Point_Normal; - double Density, Pressure, Temperature, Energy, *Velocity, Velocity2; - double Gas_Constant = config->GetGas_ConstantND(); + su2double Density, Pressure, Temperature, Energy, *Velocity, Velocity2; + su2double Gas_Constant = config->GetGas_ConstantND(); bool implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); bool viscous = config->GetViscous(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - double *U_inlet = new double[nVar]; double *U_domain = new double[nVar]; - double *V_inlet = new double[nPrimVar]; double *V_domain = new double[nPrimVar]; - double *Normal = new double[nDim]; + su2double *U_inlet = new su2double[nVar]; su2double *U_domain = new su2double[nVar]; + su2double *V_inlet = new su2double[nPrimVar]; su2double *V_domain = new su2double[nPrimVar]; + su2double *Normal = new su2double[nDim]; /*--- Supersonic inlet flow: there are no outgoing characteristics, so all flow variables can be imposed at the inlet. @@ -4620,7 +4620,7 @@ void CTNE2EulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **soluti geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - double Area = 0.0; double UnitaryNormal[3]; + su2double Area = 0.0; su2double UnitaryNormal[3]; for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim]*Normal[iDim]; Area = sqrt (Area); @@ -4687,10 +4687,10 @@ void CTNE2EulerSolver::BC_Sym_Plane(CGeometry *geometry, // bool implicit; // unsigned short iDim; // unsigned long iPoint, iVertex; -// double *Normal, *UnitNormal, Area; +// su2double *Normal, *UnitNormal, Area; // // /*--- Allocate arrays ---*/ -// UnitNormal = new double[3]; +// UnitNormal = new su2double[3]; // // /*--- Set booleans based on configuration settings ---*/ // implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -4730,8 +4730,8 @@ void CTNE2EulerSolver::SetResidual_DualTime(CGeometry *geometry, unsigned short RunTime_EqSystem) { unsigned short iVar, jVar; unsigned long iPoint; - double *U_time_nM1, *U_time_n, *U_time_nP1; - double Volume_nM1, Volume_n, Volume_nP1, TimeStep; + su2double *U_time_nM1, *U_time_n, *U_time_nP1; + su2double Volume_nM1, Volume_n, Volume_nP1, TimeStep; bool implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); bool Grid_Movement = config->GetGrid_Movement(); @@ -4807,7 +4807,7 @@ void CTNE2EulerSolver::GetRestart(CGeometry *geometry, CConfig *config, unsigned /*--- Multi-zone restart files. ---*/ if (nZone > 1 && !(config->GetUnsteady_Simulation() == TIME_SPECTRAL)) { restart_filename.erase(restart_filename.end()-4, restart_filename.end()); - sprintf (buffer, "_%d.dat", int(val_iZone)); + SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(val_iZone)); UnstExt = string(buffer); restart_filename.append(UnstExt); } @@ -4817,11 +4817,11 @@ void CTNE2EulerSolver::GetRestart(CGeometry *geometry, CConfig *config, unsigned if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { flowIter = val_iZone; restart_filename.erase(restart_filename.end()-4, restart_filename.end()); - if (int(val_iZone) < 10) sprintf (buffer, "_0000%d.dat", int(val_iZone)); - if ((int(val_iZone) >= 10) && (int(val_iZone) < 100)) sprintf (buffer, "_000%d.dat", int(val_iZone)); - if ((int(val_iZone) >= 100) && (int(val_iZone) < 1000)) sprintf (buffer, "_00%d.dat", int(val_iZone)); - if ((int(val_iZone) >= 1000) && (int(val_iZone) < 10000)) sprintf (buffer, "_0%d.dat", int(val_iZone)); - if (int(val_iZone) >= 10000) sprintf (buffer, "_%d.dat", int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) < 10) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 10) && (SU2_TYPE::Int(val_iZone) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 100) && (SU2_TYPE::Int(val_iZone) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(val_iZone)); + if ((SU2_TYPE::Int(val_iZone) >= 1000) && (SU2_TYPE::Int(val_iZone) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(val_iZone)); + if (SU2_TYPE::Int(val_iZone) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(val_iZone)); UnstExt = string(buffer); restart_filename.append(UnstExt); } else if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) { @@ -4829,21 +4829,21 @@ void CTNE2EulerSolver::GetRestart(CGeometry *geometry, CConfig *config, unsigned adjIter = config->GetExtIter(); flowIter = nFlowIter - adjIter; restart_filename.erase (restart_filename.end()-4, restart_filename.end()); - if ((int(flowIter) >= 0) && (int(flowIter) < 10)) sprintf (buffer, "_0000%d.dat", int(flowIter)); - if ((int(flowIter) >= 10) && (int(flowIter) < 100)) sprintf (buffer, "_000%d.dat", int(flowIter)); - if ((int(flowIter) >= 100) && (int(flowIter) < 1000)) sprintf (buffer, "_00%d.dat", int(flowIter)); - if ((int(flowIter) >= 1000) && (int(flowIter) < 10000)) sprintf (buffer, "_0%d.dat", int(flowIter)); - if (int(flowIter) >= 10000) sprintf (buffer, "_%d.dat", int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 0) && (SU2_TYPE::Int(flowIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 10) && (SU2_TYPE::Int(flowIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 100) && (SU2_TYPE::Int(flowIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 1000) && (SU2_TYPE::Int(flowIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(flowIter)); + if (SU2_TYPE::Int(flowIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(flowIter)); UnstExt = string(buffer); restart_filename.append(UnstExt); } else { flowIter = config->GetExtIter(); restart_filename.erase (restart_filename.end()-4, restart_filename.end()); - if ((int(flowIter) >= 0) && (int(flowIter) < 10)) sprintf (buffer, "_0000%d.dat", int(flowIter)); - if ((int(flowIter) >= 10) && (int(flowIter) < 100)) sprintf (buffer, "_000%d.dat", int(flowIter)); - if ((int(flowIter) >= 100) && (int(flowIter) < 1000)) sprintf (buffer, "_00%d.dat", int(flowIter)); - if ((int(flowIter) >= 1000) && (int(flowIter) < 10000)) sprintf (buffer, "_0%d.dat", int(flowIter)); - if (int(flowIter) >= 10000) sprintf (buffer, "_%d.dat", int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 0) && (SU2_TYPE::Int(flowIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 10) && (SU2_TYPE::Int(flowIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 100) && (SU2_TYPE::Int(flowIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 1000) && (SU2_TYPE::Int(flowIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(flowIter)); + if (SU2_TYPE::Int(flowIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(flowIter)); UnstExt = string(buffer); restart_filename.append(UnstExt); } @@ -4900,7 +4900,7 @@ void CTNE2EulerSolver::GetRestart(CGeometry *geometry, CConfig *config, unsigned /*--- If necessary, read in the grid velocities for the unsteady adjoint ---*/ if (config->GetUnsteady_Simulation() && config->GetWrt_Unsteady() && grid_movement) { - double Volume, GridVel[3]; + su2double Volume, GridVel[3]; if (nDim == 2) point_line >> Volume >> GridVel[0] >> GridVel[1]; if (nDim == 3) point_line >> Volume >> GridVel[0] >> GridVel[1] >> GridVel[2]; if (iPoint_Local >= 0) @@ -4922,7 +4922,7 @@ void CTNE2EulerSolver::GetRestart(CGeometry *geometry, CConfig *config, unsigned } -void CTNE2EulerSolver::SetVolume_Output(CConfig *config, CGeometry *geometry, double **data_container, unsigned short nOutput_Vars) { +void CTNE2EulerSolver::SetVolume_Output(CConfig *config, CGeometry *geometry, su2double **data_container, unsigned short nOutput_Vars) { #ifdef DEBUG_TDE @@ -4946,9 +4946,9 @@ void CTNE2EulerSolver::SetVolume_Output(CConfig *config, CGeometry *geometry, do } // NEEDS TO BE MAX NUMBER OF POINTS ON ANY PARTITION ? - data_container = new double*[nOutput_Vars]; + data_container = new su2double*[nOutput_Vars]; for (iVar = 0; iVar < nOutput_Vars; iVar++ ) { - data_container[iVar] = new double[nPointDomain]; + data_container[iVar] = new su2double[nPointDomain]; } for (iVar = 0; iVar < config->GetnOutput_Vars_Vol(); iVar++ ) { @@ -4990,7 +4990,7 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, bool restart, check_infty, check; unsigned short iDim, iMarker, iSpecies, iVar, nZone, nLineLets; unsigned long iPoint, index, counter_local, counter_global; - double *Mvec_Inf, Alpha, Beta, dull_val; + su2double *Mvec_Inf, Alpha, Beta, dull_val; /*--- Get MPI rank ---*/ int rank = MASTER_NODE; @@ -5041,51 +5041,51 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, node = new CVariable*[nPoint]; /*--- Define auxiliary vectors to store residual-related quantities ---*/ - Residual = new double[nVar]; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Residual_i = new double[nVar]; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Res_Conv = new double[nVar]; + Res_Conv = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Conv[iVar] = 0.0; - Res_Visc = new double[nVar]; + Res_Visc = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0; - Res_Sour = new double[nVar]; + Res_Sour = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Res_Sour[iVar] = 0.0; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_i = new double[nVar]; + Solution_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_i[iVar] = 0.0; - Solution_j = new double[nVar]; + Solution_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution_j[iVar] = 0.0; /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector = new double[nDim]; + Vector = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.0; - Vector_i = new double[nDim]; + Vector_i = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_i[iDim] = 0.0; - Vector_j = new double[nDim]; + Vector_j = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Vector_j[iDim] = 0.0; /*--- Allocate arrays for conserved variable limits ---*/ - lowerlimit = new double[nVar]; - upperlimit = new double[nVar]; + lowerlimit = new su2double[nVar]; + upperlimit = new su2double[nVar]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { lowerlimit[iSpecies] = 0.0; upperlimit[iSpecies] = 1E16; @@ -5111,11 +5111,11 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, /*--- Allocate Jacobians for implicit time-stepping ---*/ if (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT) { - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the global Jacobian ---*/ @@ -5139,44 +5139,44 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nPrimVarGrad]; + cvector = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Allocate force & coefficient arrays on boundaries ---*/ - CPressure = new double* [nMarker]; + CPressure = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) - CPressure[iMarker] = new double [geometry->nVertex[iMarker]]; + CPressure[iMarker] = new su2double [geometry->nVertex[iMarker]]; /*--- Heat tranfer in all the markers ---*/ - HeatFlux = new double* [nMarker]; + HeatFlux = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) - HeatFlux[iMarker] = new double [geometry->nVertex[iMarker]]; + HeatFlux[iMarker] = new su2double [geometry->nVertex[iMarker]]; /*--- Skin friction in all the markers ---*/ - CSkinFriction = new double* [nMarker]; + CSkinFriction = new su2double* [nMarker]; for (iMarker = 0; iMarker < nMarker; iMarker++) - CSkinFriction[iMarker] = new double [geometry->nVertex[iMarker]]; + CSkinFriction[iMarker] = new su2double [geometry->nVertex[iMarker]]; /*--- Non dimensional coefficients ---*/ - ForceInviscid = new double[3]; - MomentInviscid = new double[3]; - CDrag_Inv = new double[nMarker]; - CLift_Inv = new double[nMarker]; - CSideForce_Inv = new double[nMarker]; - CMx_Inv = new double[nMarker]; - CMy_Inv = new double[nMarker]; - CMz_Inv = new double[nMarker]; - CEff_Inv = new double[nMarker]; - CFx_Inv = new double[nMarker]; - CFy_Inv = new double[nMarker]; - CFz_Inv = new double[nMarker]; + ForceInviscid = new su2double[3]; + MomentInviscid = new su2double[3]; + CDrag_Inv = new su2double[nMarker]; + CLift_Inv = new su2double[nMarker]; + CSideForce_Inv = new su2double[nMarker]; + CMx_Inv = new su2double[nMarker]; + CMy_Inv = new su2double[nMarker]; + CMz_Inv = new su2double[nMarker]; + CEff_Inv = new su2double[nMarker]; + CFx_Inv = new su2double[nMarker]; + CFy_Inv = new su2double[nMarker]; + CFz_Inv = new su2double[nMarker]; /*--- Initialize total coefficients ---*/ Total_CDrag = 0.0; Total_CLift = 0.0; Total_CSideForce = 0.0; @@ -5186,19 +5186,19 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, Total_Heat = 0.0; Total_MaxHeat = 0.0; - ForceViscous = new double[3]; - MomentViscous = new double[3]; - CDrag_Visc = new double[nMarker]; - CLift_Visc = new double[nMarker]; - CMx_Visc = new double[nMarker]; - CMy_Visc = new double[nMarker]; - CMz_Visc = new double[nMarker]; - CEff_Visc = new double[nMarker]; - CFx_Visc = new double[nMarker]; - CFy_Visc = new double[nMarker]; - CFz_Visc = new double[nMarker]; - Heat_Visc = new double[nMarker]; - MaxHeatFlux_Visc = new double[nMarker]; + ForceViscous = new su2double[3]; + MomentViscous = new su2double[3]; + CDrag_Visc = new su2double[nMarker]; + CLift_Visc = new su2double[nMarker]; + CMx_Visc = new su2double[nMarker]; + CMy_Visc = new su2double[nMarker]; + CMz_Visc = new su2double[nMarker]; + CEff_Visc = new su2double[nMarker]; + CFx_Visc = new su2double[nMarker]; + CFy_Visc = new su2double[nMarker]; + CFz_Visc = new su2double[nMarker]; + Heat_Visc = new su2double[nMarker]; + MaxHeatFlux_Visc = new su2double[nMarker]; /*--- Read farfield conditions from config ---*/ Pressure_Inf = config->GetPressure_FreeStreamND(); @@ -5214,7 +5214,7 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, Prandtl_Turb = config->GetPrandtl_Turb(); /*--- Vectorize free stream Mach number based on AoA & AoS ---*/ - Mvec_Inf = new double[nDim]; + Mvec_Inf = new su2double[nDim]; Alpha = config->GetAoA(); Beta = config->GetAoS(); if (nDim == 2) { @@ -5234,7 +5234,7 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, nPrimVar, nPrimVarGrad, config); check_infty = node_infty->SetPrimVar_Compressible(config); - Velocity_Inf = new double[nDim]; + Velocity_Inf = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Velocity_Inf[iDim] = node_infty->GetVelocity(iDim); @@ -5338,9 +5338,9 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, // if (check_temp || check_press) { // bool ionization; // unsigned short iEl, nHeavy, nEl, *nElStates; -// double Ru, T, Tve, rhoCvtr, sqvel, rhoE, rhoEve, num, denom, conc; -// double rho, rhos, Ef, Ev, Ee, soundspeed; -// double *xi, *Ms, *thetav, **thetae, **g, *Tref, *hf; +// su2double Ru, T, Tve, rhoCvtr, sqvel, rhoE, rhoEve, num, denom, conc; +// su2double rho, rhos, Ef, Ev, Ee, soundspeed; +// su2double *xi, *Ms, *thetav, **thetae, **g, *Tref, *hf; // /*--- Determine the number of heavy species ---*/ // ionization = config->GetIonization(); // if (ionization) { nHeavy = nSpecies-1; nEl = 1; } @@ -5441,7 +5441,7 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, } #ifdef HAVE_MPI - MPI_Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); #else counter_global = counter_local; @@ -5551,12 +5551,12 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, unsigned short iDim, iMarker; unsigned long iEdge, iVertex, iPoint, jPoint; - double *Normal, Area, Vol; - double Mean_SoundSpeed, Mean_ProjVel; - double Lambda, Local_Delta_Time, Local_Delta_Time_Visc, Global_Delta_Time; - double Mean_LaminarVisc, Mean_ThermalCond, Mean_ThermalCond_ve, Mean_Density; - double cv, Ru, *xi, *Ms; - double Lambda_1, Lambda_2, K_v, Global_Delta_UnstTimeND; + su2double *Normal, Area, Vol; + su2double Mean_SoundSpeed, Mean_ProjVel; + su2double Lambda, Local_Delta_Time, Local_Delta_Time_Visc, Global_Delta_Time; + su2double Mean_LaminarVisc, Mean_ThermalCond, Mean_ThermalCond_ve, Mean_Density; + su2double cv, Ru, *xi, *Ms; + su2double Lambda_1, Lambda_2, K_v, Global_Delta_UnstTimeND; bool implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || @@ -5696,10 +5696,10 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, /*--- For exact time solution use the minimum delta time of the whole mesh ---*/ if (config->GetUnsteady_Simulation() == TIME_STEPPING) { #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_Time; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_Time = rbuf_time; #endif for (iPoint = 0; iPoint < nPointDomain; iPoint++) @@ -5711,10 +5711,10 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, if ((dual_time) && (Iteration == 0) && (config->GetUnst_CFL() != 0.0) && (iMesh == MESH_0)) { Global_Delta_UnstTimeND = config->GetUnst_CFL()*Global_Delta_Time/config->GetCFL(iMesh); #ifdef HAVE_MPI - double rbuf_time, sbuf_time; + su2double rbuf_time, sbuf_time; sbuf_time = Global_Delta_UnstTimeND; - MPI_Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); - MPI_Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); Global_Delta_UnstTimeND = rbuf_time; #endif config->SetDelta_UnstTimeND(Global_Delta_UnstTimeND); @@ -5831,17 +5831,17 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { unsigned short Boundary, Monitoring, iMarker, iDim, jDim; unsigned short VEL_INDEX, T_INDEX, TVE_INDEX; unsigned long iVertex, iPoint, iPointNormal; - double **Grad_PrimVar; - double Delta, Viscosity, ThermalCond, ThermalCond_ve; - double **Tau, *TauTangent, TauNormal, *TauElem; - double WallShearStress, FrictionVel; - double *Normal, *UnitaryNormal, *Coord, *Coord_Normal, Area; - double MomentDist[3]; - double RefDensity, Density; - double Velocity_Inf[3], div_vel, RefVel2; - double dTn, dTven, pnorm, HeatLoad; - double Alpha, Beta, RefLengthMoment, RefAreaCoeff, *Origin; - double factor; + su2double **Grad_PrimVar; + su2double Delta, Viscosity, ThermalCond, ThermalCond_ve; + su2double **Tau, *TauTangent, TauNormal, *TauElem; + su2double WallShearStress, FrictionVel; + su2double *Normal, *UnitaryNormal, *Coord, *Coord_Normal, Area; + su2double MomentDist[3]; + su2double RefDensity, Density; + su2double Velocity_Inf[3], div_vel, RefVel2; + su2double dTn, dTven, pnorm, HeatLoad; + su2double Alpha, Beta, RefLengthMoment, RefAreaCoeff, *Origin; + su2double factor; /*--- Retrieve index information from CVariable ---*/ VEL_INDEX = node[0]->GetVelIndex(); @@ -5878,12 +5878,12 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { AllBound_CEff_Visc = 0.0; /*--- Vector and variables initialization ---*/ - UnitaryNormal = new double [nDim]; - TauElem = new double [nDim]; - TauTangent = new double [nDim]; - Tau = new double* [nDim]; + UnitaryNormal = new su2double [nDim]; + TauElem = new su2double [nDim]; + TauTangent = new su2double [nDim]; + Tau = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Tau[iDim] = new double [nDim]; + Tau[iDim] = new su2double [nDim]; /*--- Loop over the Navier-Stokes markers ---*/ for (iMarker = 0; iMarker < nMarker; iMarker++) { @@ -6060,17 +6060,17 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { /*--- Add AllBound information using all the nodes ---*/ - double MyAllBound_CDrag_Visc = AllBound_CDrag_Visc; - double MyAllBound_CLift_Visc = AllBound_CLift_Visc; - double MyAllBound_CEff_Visc = AllBound_CEff_Visc; - double MyAllBound_CMx_Visc = AllBound_CMx_Visc; - double MyAllBound_CMy_Visc = AllBound_CMy_Visc; - double MyAllBound_CMz_Visc = AllBound_CMz_Visc; - double MyAllBound_CFx_Visc = AllBound_CFx_Visc; - double MyAllBound_CFy_Visc = AllBound_CFy_Visc; - double MyAllBound_CFz_Visc = AllBound_CFz_Visc; - double MyAllBound_HeatFlux_Visc = AllBound_HeatFlux_Visc; - double MyAllBound_MaxHeatFlux_Visc = pow(AllBound_MaxHeatFlux_Visc, pnorm); + su2double MyAllBound_CDrag_Visc = AllBound_CDrag_Visc; + su2double MyAllBound_CLift_Visc = AllBound_CLift_Visc; + su2double MyAllBound_CEff_Visc = AllBound_CEff_Visc; + su2double MyAllBound_CMx_Visc = AllBound_CMx_Visc; + su2double MyAllBound_CMy_Visc = AllBound_CMy_Visc; + su2double MyAllBound_CMz_Visc = AllBound_CMz_Visc; + su2double MyAllBound_CFx_Visc = AllBound_CFx_Visc; + su2double MyAllBound_CFy_Visc = AllBound_CFy_Visc; + su2double MyAllBound_CFz_Visc = AllBound_CFz_Visc; + su2double MyAllBound_HeatFlux_Visc = AllBound_HeatFlux_Visc; + su2double MyAllBound_MaxHeatFlux_Visc = pow(AllBound_MaxHeatFlux_Visc, pnorm); AllBound_CDrag_Visc = 0.0; AllBound_CLift_Visc = 0.0; @@ -6084,19 +6084,19 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { AllBound_HeatFlux_Visc = 0.0; AllBound_MaxHeatFlux_Visc = 0.0; - MPI_Allreduce(&MyAllBound_CDrag_Visc, &AllBound_CDrag_Visc, 1, MPI_DOUBLE, + SU2_MPI::Allreduce(&MyAllBound_CDrag_Visc, &AllBound_CDrag_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CLift_Visc, &AllBound_CLift_Visc, 1, MPI_DOUBLE, + SU2_MPI::Allreduce(&MyAllBound_CLift_Visc, &AllBound_CLift_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_CEff_Visc = AllBound_CLift_Visc / (AllBound_CDrag_Visc + EPS); - MPI_Allreduce(&MyAllBound_CMx_Visc, &AllBound_CMx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMy_Visc, &AllBound_CMy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CMz_Visc, &AllBound_CMz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFx_Visc, &AllBound_CFx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFy_Visc, &AllBound_CFy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_CFz_Visc, &AllBound_CFz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_HeatFlux_Visc, &AllBound_HeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&MyAllBound_MaxHeatFlux_Visc, &AllBound_MaxHeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMx_Visc, &AllBound_CMx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMy_Visc, &AllBound_CMy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CMz_Visc, &AllBound_CMz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFx_Visc, &AllBound_CFx_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFy_Visc, &AllBound_CFy_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_CFz_Visc, &AllBound_CFz_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_HeatFlux_Visc, &AllBound_HeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&MyAllBound_MaxHeatFlux_Visc, &AllBound_MaxHeatFlux_Visc, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); AllBound_MaxHeatFlux_Visc = pow(AllBound_MaxHeatFlux_Visc, 1.0/pnorm); #endif @@ -6146,9 +6146,9 @@ void CTNE2NSSolver::BC_HeatFlux_Wall(CGeometry *geometry, unsigned short iDim, iVar; unsigned short T_INDEX, TVE_INDEX; unsigned long iVertex, iPoint, total_index; - double Wall_HeatFlux, dTdn, dTvedn, ktr, kve, pcontrol; - double *Normal, Area; - double **GradV; + su2double Wall_HeatFlux, dTdn, dTvedn, ktr, kve, pcontrol; + su2double *Normal, Area; + su2double **GradV; /*--- Assign booleans ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -6239,11 +6239,11 @@ void CTNE2NSSolver::BC_HeatFluxNonCatalytic_Wall(CGeometry *geometry, unsigned short iDim, iSpecies, iVar; unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint; - double pcontrol; - double rho, Ys, eves, hs; - double *Normal, Area; - double *Ds, *V, *dYdn, SdYdn; - double **GradV, **GradY; + su2double pcontrol; + su2double rho, Ys, eves, hs; + su2double *Normal, Area; + su2double *Ds, *V, *dYdn, SdYdn; + su2double **GradV, **GradY; /*--- Assign booleans ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -6256,10 +6256,10 @@ void CTNE2NSSolver::BC_HeatFluxNonCatalytic_Wall(CGeometry *geometry, RHO_INDEX = node[0]->GetRhoIndex(); /*--- Allocate arrays ---*/ - dYdn = new double[nSpecies]; - GradY = new double*[nSpecies]; + dYdn = new su2double[nSpecies]; + GradY = new su2double*[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) - GradY[iSpecies] = new double[nDim]; + GradY[iSpecies] = new su2double[nDim]; /*--- Loop over all of the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -6333,11 +6333,11 @@ void CTNE2NSSolver::BC_HeatFluxCatalytic_Wall(CGeometry *geometry, unsigned short iDim, iSpecies, iVar; unsigned short T_INDEX, TVE_INDEX, RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint, total_index; - double Wall_HeatFlux, dTdn, dTvedn, ktr, kve, pcontrol; - double rho, Ys, eves, hs; - double *Normal, Area; - double *Ds, *V, *dYdn, SdYdn; - double **GradV, **GradY; + su2double Wall_HeatFlux, dTdn, dTvedn, ktr, kve, pcontrol; + su2double rho, Ys, eves, hs; + su2double *Normal, Area; + su2double *Ds, *V, *dYdn, SdYdn; + su2double **GradV, **GradY; /*--- Assign booleans ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -6359,10 +6359,10 @@ void CTNE2NSSolver::BC_HeatFluxCatalytic_Wall(CGeometry *geometry, RHO_INDEX = node[0]->GetRhoIndex(); /*--- Allocate arrays ---*/ - dYdn = new double[nSpecies]; - GradY = new double*[nSpecies]; + dYdn = new su2double[nSpecies]; + GradY = new su2double*[nSpecies]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) - GradY[iSpecies] = new double[nDim]; + GradY[iSpecies] = new su2double[nDim]; // /*--- Pass structure of the primitive variable vector to CNumerics ---*/ // sour_numerics->SetRhosIndex ( node[0]->GetRhosIndex() ); @@ -6515,10 +6515,10 @@ void CTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, unsigned short iDim, iSpecies, iVar, jVar; unsigned short RHOS_INDEX, T_INDEX, TVE_INDEX, RHOCVTR_INDEX, RHOCVVE_INDEX; unsigned long iVertex, iPoint, jPoint, total_index; - double rhoCvtr, rhoCvve, ktr, kve, *dTdU, *dTvedU; - double Twall, dTdn, dTvedn, dij, theta; - double Area, *Normal, UnitNormal[3]; - double *V, **PrimVarGrad; + su2double rhoCvtr, rhoCvve, ktr, kve, *dTdU, *dTvedU; + su2double Twall, dTdn, dTvedn, dij, theta; + su2double Area, *Normal, UnitNormal[3]; + su2double *V, **PrimVarGrad; implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); ionization = config->GetIonization(); @@ -6535,8 +6535,8 @@ void CTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, Twall = config->GetIsothermal_Temperature(Marker_Tag); /*--- Initialize arrays ---*/ - dTdU = new double[nVar]; - dTvedU = new double[nVar]; + dTdU = new su2double[nVar]; + dTvedU = new su2double[nVar]; RHOS_INDEX = node[0]->GetRhosIndex(); T_INDEX = node[0]->GetTIndex(); @@ -6708,11 +6708,11 @@ void CTNE2NSSolver::BC_IsothermalNonCatalytic_Wall(CGeometry *geometry, unsigned short iDim, iSpecies, iVar; unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint; - double pcontrol; - double rho, Ys, eves, hs; - double *Normal, Area; - double *Ds, *V, *dYdn, SdYdn; - double **GradV; + su2double pcontrol; + su2double rho, Ys, eves, hs; + su2double *Normal, Area; + su2double *Ds, *V, *dYdn, SdYdn; + su2double **GradV; /*--- Assign booleans ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -6725,7 +6725,7 @@ void CTNE2NSSolver::BC_IsothermalNonCatalytic_Wall(CGeometry *geometry, RHO_INDEX = node[0]->GetRhoIndex(); /*--- Allocate arrays ---*/ - dYdn = new double[nSpecies]; + dYdn = new su2double[nSpecies]; /*--- Loop over all of the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -6801,11 +6801,11 @@ void CTNE2NSSolver::BC_IsothermalCatalytic_Wall(CGeometry *geometry, unsigned short iDim, iSpecies, iVar; unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint; - double pcontrol; - double rho, rhos, eves, hs; - double *Normal, Area; - double *Ds, *V, Ys, *Yst, *dYdn, SdYdn; - double **GradV; + su2double pcontrol; + su2double rho, rhos, eves, hs; + su2double *Normal, Area; + su2double *Ds, *V, Ys, *Yst, *dYdn, SdYdn; + su2double **GradV; /*--- Assign booleans ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -6821,7 +6821,7 @@ void CTNE2NSSolver::BC_IsothermalCatalytic_Wall(CGeometry *geometry, RHO_INDEX = node[0]->GetRhoIndex(); /*--- Allocate arrays ---*/ - dYdn = new double[nSpecies]; + dYdn = new su2double[nSpecies]; /*--- Loop over all of the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -6898,11 +6898,11 @@ void CTNE2NSSolver::BC_IsothermalCatalytic_Wall(CGeometry *geometry, // unsigned short iDim, iSpecies, iVar; // unsigned short RHOS_INDEX, RHO_INDEX; // unsigned long iVertex, iPoint, jPoint; -// double pcontrol; -// double rho, Yj, eves, hs; -// double *Normal, Area, dij; -// double *Di, *Dj, *Ds, *V, *Vi, *Vj, Ys, *Yst, *dYdn, SdYdn; -// double **GradY; +// su2double pcontrol; +// su2double rho, Yj, eves, hs; +// su2double *Normal, Area, dij; +// su2double *Di, *Dj, *Ds, *V, *Vi, *Vj, Ys, *Yst, *dYdn, SdYdn; +// su2double **GradY; // // /*--- Assign booleans ---*/ // implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -6918,12 +6918,12 @@ void CTNE2NSSolver::BC_IsothermalCatalytic_Wall(CGeometry *geometry, // RHO_INDEX = node[0]->GetRhoIndex(); // // /*--- Allocate arrays ---*/ -// V = new double[nPrimVar]; -// Ds = new double[nSpecies]; -// dYdn = new double[nSpecies]; -// GradY = new double*[nSpecies]; +// V = new su2double[nPrimVar]; +// Ds = new su2double[nSpecies]; +// dYdn = new su2double[nSpecies]; +// GradY = new su2double*[nSpecies]; // for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) -// GradY[iSpecies] = new double[nDim]; +// GradY[iSpecies] = new su2double[nDim]; // // /*--- Loop over all of the vertices on this boundary marker ---*/ // for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { diff --git a/SU2_CFD/src/solver_direct_transition.cpp b/SU2_CFD/src/solver_direct_transition.cpp index c92ebbfc625..943a63ef198 100644 --- a/SU2_CFD/src/solver_direct_transition.cpp +++ b/SU2_CFD/src/solver_direct_transition.cpp @@ -34,7 +34,7 @@ CTransLMSolver::CTransLMSolver(void) : CTurbSolver() {} CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CTurbSolver() { unsigned short iVar, iDim, nLineLets; unsigned long iPoint, index; - double Density_Inf, Viscosity_Inf, tu_Inf, nu_tilde_Inf, Factor_nu_Inf, dull_val, rey; + su2double Density_Inf, Viscosity_Inf, tu_Inf, nu_tilde_Inf, Factor_nu_Inf, dull_val, rey; ifstream restart_file; char *cstr; string text_line; @@ -63,25 +63,25 @@ CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned sh if (iMesh == MESH_0) { /*--- Define some auxillary vectors related to the residual ---*/ - Residual = new double[nVar]; Residual_RMS = new double[nVar]; - Residual_i = new double[nVar]; Residual_j = new double[nVar]; - Residual_Max = new double[nVar]; + Residual = new su2double[nVar]; Residual_RMS = new su2double[nVar]; + Residual_i = new su2double[nVar]; Residual_j = new su2double[nVar]; + Residual_Max = new su2double[nVar]; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliar vector related with the solution ---*/ - Solution = new double[nVar]; - Solution_i = new double[nVar]; Solution_j = new double[nVar]; + Solution = new su2double[nVar]; + Solution_i = new su2double[nVar]; Solution_j = new su2double[nVar]; /*--- Define some auxiliar vector related with the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); @@ -90,11 +90,11 @@ CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned sh if (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT) { /*--- Point to point Jacobians ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config); @@ -110,13 +110,13 @@ CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned sh /*--- Computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Read farfield conditions from config ---*/ @@ -224,7 +224,7 @@ void CTransLMSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solv unsigned short iVar; unsigned long iPoint, total_index; - double Delta, Delta_flow, Vol; + su2double Delta, Delta_flow, Vol; /*--- Set maximum residual to zero ---*/ @@ -290,7 +290,7 @@ void CTransLMSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solv } void CTransLMSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { - double *trans_var_i, *trans_var_j, *U_i, *U_j; + su2double *trans_var_i, *trans_var_j, *U_i, *U_j; unsigned long iEdge, iPoint, jPoint; for (iEdge = 0; iEdge < geometry->GetnEdge(); iEdge++) { @@ -379,7 +379,7 @@ void CTransLMSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_cont void CTransLMSolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, CConfig *config, unsigned short iMesh) { unsigned long iPoint; - double gamma_sep = 0.0; + su2double gamma_sep = 0.0; //cout << "Setting Trans residual -AA " << endl; cout << "\nBeginAA" << endl; @@ -435,11 +435,11 @@ void CTransLMSolver::Source_Template(CGeometry *geometry, CSolver **solver_conta void CTransLMSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex; unsigned short iVar, iDim; - double *U_i; - double *U_domain = new double[nVar]; - double *U_wall = new double[nVar]; - double *Normal = new double[nDim]; - double *Residual = new double[nVar]; + su2double *U_i; + su2double *U_domain = new su2double[nVar]; + su2double *U_wall = new su2double[nVar]; + su2double *Normal = new su2double[nDim]; + su2double *Residual = new su2double[nVar]; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); diff --git a/SU2_CFD/src/solver_direct_turbulent.cpp b/SU2_CFD/src/solver_direct_turbulent.cpp index f342cedc560..cec75e0476e 100644 --- a/SU2_CFD/src/solver_direct_turbulent.cpp +++ b/SU2_CFD/src/solver_direct_turbulent.cpp @@ -64,7 +64,7 @@ CTurbSolver::~CTurbSolver(void) { void CTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector, nBufferS_Scalar, nBufferR_Scalar; - double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL, *Buffer_Receive_muT = NULL, *Buffer_Send_muT = NULL; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL, *Buffer_Receive_muT = NULL, *Buffer_Send_muT = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -88,11 +88,11 @@ void CTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { nBufferS_Scalar = nVertexS; nBufferR_Scalar = nVertexR; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; - Buffer_Receive_muT = new double [nBufferR_Scalar]; - Buffer_Send_muT = new double[nBufferS_Scalar]; + Buffer_Receive_muT = new su2double [nBufferR_Scalar]; + Buffer_Send_muT = new su2double[nBufferS_Scalar]; /*--- Copy the solution that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -105,9 +105,9 @@ void CTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - MPI_Sendrecv(Buffer_Send_muT, nBufferS_Scalar, MPI_DOUBLE, send_to, 1, + SU2_MPI::Sendrecv(Buffer_Send_muT, nBufferS_Scalar, MPI_DOUBLE, send_to, 1, Buffer_Receive_muT, nBufferR_Scalar, MPI_DOUBLE, receive_from, 1, MPI_COMM_WORLD, &status); #else @@ -151,7 +151,7 @@ void CTurbSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { void CTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; #ifdef HAVE_MPI int send_to, receive_from; @@ -174,8 +174,8 @@ void CTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -187,7 +187,7 @@ void CTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -225,12 +225,12 @@ void CTurbSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { void CTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - double **Gradient = new double* [nVar]; + su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - Gradient[iVar] = new double[nDim]; + Gradient[iVar] = new su2double[nDim]; #ifdef HAVE_MPI int send_to, receive_from; @@ -253,8 +253,8 @@ void CTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Gradient = new double [nBufferR_Vector]; - Buffer_Send_Gradient = new double[nBufferS_Vector]; + Buffer_Receive_Gradient = new su2double [nBufferR_Vector]; + Buffer_Send_Gradient = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -267,7 +267,7 @@ void CTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -347,9 +347,9 @@ void CTurbSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *config void CTurbSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; + su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; - double *Limiter = new double [nVar]; + su2double *Limiter = new su2double [nVar]; #ifdef HAVE_MPI int send_to, receive_from; @@ -372,8 +372,8 @@ void CTurbSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_Limit = new double [nBufferR_Vector]; - Buffer_Send_Limit = new double[nBufferS_Vector]; + Buffer_Receive_Limit = new su2double [nBufferR_Vector]; + Buffer_Send_Limit = new su2double[nBufferS_Vector]; /*--- Copy the solution old that should be sended ---*/ for (iVertex = 0; iVertex < nVertexS; iVertex++) { @@ -385,7 +385,7 @@ void CTurbSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -426,7 +426,7 @@ void CTurbSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) void CTurbSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { - double *Turb_i, *Turb_j, *Limiter_i = NULL, *Limiter_j = NULL, *V_i, *V_j, **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j; + su2double *Turb_i, *Turb_j, *Limiter_i = NULL, *Limiter_j = NULL, *V_i, *V_j, **Gradient_i, **Gradient_j, Project_Grad_i, Project_Grad_j; unsigned long iEdge, iPoint, jPoint; unsigned short iDim, iVar; @@ -606,7 +606,7 @@ void CTurbSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_ unsigned short iVar; unsigned long iPoint, total_index; - double Delta, Vol, density_old = 0.0, density = 0.0; + su2double Delta, Vol, density_old = 0.0, density = 0.0; bool adjoint = config->GetAdjoint(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -726,10 +726,10 @@ void CTurbSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_con unsigned short iVar, jVar, iMarker, iDim; unsigned long iPoint, jPoint, iEdge, iVertex; - double *U_time_nM1, *U_time_n, *U_time_nP1; - double Volume_nM1, Volume_nP1, TimeStep; - double Density_nM1, Density_n, Density_nP1; - double *Normal = NULL, *GridVel_i = NULL, *GridVel_j = NULL, Residual_GCL; + su2double *U_time_nM1, *U_time_n, *U_time_nP1; + su2double Volume_nM1, Volume_nP1, TimeStep; + su2double Density_nM1, Density_n, Density_nP1; + su2double *Normal = NULL, *GridVel_i = NULL, *GridVel_j = NULL, Residual_GCL; bool implicit = (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT); bool grid_movement = config->GetGrid_Movement(); @@ -983,7 +983,7 @@ CTurbSASolver::CTurbSASolver(void) : CTurbSolver() { } CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned short iMesh, CFluidModel* FluidModel) : CTurbSolver() { unsigned short iVar, iDim, nLineLets; unsigned long iPoint, index; - double Density_Inf, Viscosity_Inf, Factor_nu_Inf, Factor_nu_Engine, dull_val; + su2double Density_Inf, Viscosity_Inf, Factor_nu_Inf, Factor_nu_Engine, dull_val; bool restart = (config->GetRestart() || config->GetRestart_Flow()); bool adjoint = config->GetAdjoint(); @@ -1018,42 +1018,42 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor /*--- Define some auxiliar vector related with the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliar vector related with the solution ---*/ - Solution = new double[nVar]; - Solution_i = new double[nVar]; Solution_j = new double[nVar]; + Solution = new su2double[nVar]; + Solution_i = new su2double[nVar]; Solution_j = new su2double[nVar]; /*--- Define some auxiliar vector related with the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; /*--- Define some auxiliar vector related with the flow solution ---*/ - FlowPrimVar_i = new double [nDim+7]; FlowPrimVar_j = new double [nDim+7]; + FlowPrimVar_i = new su2double [nDim+7]; FlowPrimVar_j = new su2double [nDim+7]; /*--- Jacobians and vector structures for implicit computations ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ @@ -1081,23 +1081,23 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } } /*--- Initialize lower and upper limits--- */ - lowerlimit = new double[nVar]; - upperlimit = new double[nVar]; + lowerlimit = new su2double[nVar]; + upperlimit = new su2double[nVar]; lowerlimit[0] = 1.0e-10; upperlimit[0] = 1.0; @@ -1118,8 +1118,8 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor nu_tilde_Engine = Factor_nu_Engine*Viscosity_Inf/Density_Inf; /*--- Eddy viscosity at infinity ---*/ - double Ji, Ji_3, fv1, cv1_3 = 7.1*7.1*7.1; - double muT_Inf; + su2double Ji, Ji_3, fv1, cv1_3 = 7.1*7.1*7.1; + su2double muT_Inf; Ji = nu_tilde_Inf/Viscosity_Inf*Density_Inf; Ji_3 = Ji*Ji*Ji; fv1 = Ji_3/(Ji_3+cv1_3); @@ -1135,17 +1135,17 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor /*--- Restart the solution from file information ---*/ ifstream restart_file; string filename = config->GetSolution_FlowFileName(); - double Density, StaticEnergy, Laminar_Viscosity, nu, nu_hat, muT = 0.0, U[5]; + su2double Density, StaticEnergy, Laminar_Viscosity, nu, nu_hat, muT = 0.0, U[5]; /*--- Modify file name for an unsteady restart ---*/ if (dual_time) { int Unst_RestartIter; if (adjoint) { - Unst_RestartIter = int(config->GetUnst_AdjointIter()) - 1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) - Unst_RestartIter = int(config->GetUnst_RestartIter())-1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; else - Unst_RestartIter = int(config->GetUnst_RestartIter())-2; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } @@ -1286,8 +1286,8 @@ void CTurbSASolver::Preprocessing(CGeometry *geometry, CSolver **solver_containe void CTurbSASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { - double rho = 0.0, mu = 0.0, nu, *nu_hat, muT, Ji, Ji_3, fv1; - double cv1_3 = 7.1*7.1*7.1; + su2double rho = 0.0, mu = 0.0, nu, *nu_hat, muT, Ji, Ji_3, fv1; + su2double cv1_3 = 7.1*7.1*7.1; unsigned long iPoint; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -1329,13 +1329,13 @@ void CTurbSASolver::Postprocessing(CGeometry *geometry, CSolver **solver_contain void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, CConfig *config, unsigned short iMesh) { unsigned long iPoint; - double LevelSet; + su2double LevelSet; unsigned short iVar, iDim, jDim; bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); bool transition = (config->GetKind_Trans_Model() == LM); - double epsilon = config->GetFreeSurface_Thickness(); + su2double epsilon = config->GetFreeSurface_Thickness(); for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -1439,7 +1439,7 @@ void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai if (time_spectral) { - double Volume, Source; + su2double Volume, Source; unsigned short nVar_Turb = solver_container[TURB_SOL]->GetnVar(); /*--- Loop over points ---*/ @@ -1529,11 +1529,11 @@ void CTurbSASolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container unsigned long iPoint, iVertex; unsigned short iVar, iDim; - double *Normal, *V_infty, *V_domain; + su2double *Normal, *V_infty, *V_domain; bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; + Normal = new su2double[nDim]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -1592,9 +1592,9 @@ void CTurbSASolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CN unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double *V_inlet, *V_domain, *Normal; + su2double *V_inlet, *V_domain, *Normal; - Normal = new double[nDim]; + Normal = new su2double[nDim]; bool grid_movement = config->GetGrid_Movement(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); @@ -1673,11 +1673,11 @@ void CTurbSASolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, C CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *V_outlet, *V_domain, *Normal; + su2double *V_outlet, *V_domain, *Normal; bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; + Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -1756,9 +1756,9 @@ void CTurbSASolver::BC_Engine_Inflow(CGeometry *geometry, CSolver **solver_conta unsigned long iPoint, iVertex; unsigned short iDim; - double *V_inflow, *V_domain, *Normal; + su2double *V_inflow, *V_domain, *Normal; - Normal = new double[nDim]; + Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ @@ -1840,9 +1840,9 @@ void CTurbSASolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_cont unsigned short iDim; unsigned long iVertex, iPoint; - double *V_exhaust, *V_domain, *Normal; + su2double *V_exhaust, *V_domain, *Normal; - Normal = new double[nDim]; + Normal = new su2double[nDim]; string Marker_Tag = config->GetMarker_All_TagBound(val_marker); @@ -1929,9 +1929,9 @@ void CTurbSASolver::BC_Engine_Bleed(CGeometry *geometry, CSolver **solver_contai unsigned short iDim; unsigned long iVertex, iPoint; - double *V_bleed, *V_domain, *Normal; + su2double *V_bleed, *V_domain, *Normal; - Normal = new double[nDim]; + Normal = new su2double[nDim]; string Marker_Tag = config->GetMarker_All_TagBound(val_marker); @@ -2019,7 +2019,7 @@ void CTurbSASolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solver_ // unsigned long iVertex, iPoint, jPoint; // unsigned short iVar, iDim; // - // double *Vector = new double[nDim]; + // su2double *Vector = new su2double[nDim]; // //#ifndef HAVE_MPI // @@ -2069,12 +2069,12 @@ void CTurbSASolver::BC_Interface_Boundary(CGeometry *geometry, CSolver **solver_ //#else // // int rank = MPI::COMM_WORLD.Get_rank(), jProcessor; - // double *Conserv_Var, *Flow_Var; + // su2double *Conserv_Var, *Flow_Var; // bool compute; // // unsigned short Buffer_Size = nVar+solver_container[FLOW_SOL]->GetnVar(); - // double *Buffer_Send_U = new double [Buffer_Size]; - // double *Buffer_Receive_U = new double [Buffer_Size]; + // su2double *Buffer_Send_U = new su2double [Buffer_Size]; + // su2double *Buffer_Receive_U = new su2double [Buffer_Size]; // // /*--- Do the send process, by the moment we are sending each // node individually, this must be changed ---*/ @@ -2181,7 +2181,7 @@ void CTurbSASolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solver_ // unsigned long iVertex, iPoint, jPoint; // unsigned short iVar, iDim; // - // double *Vector = new double[nDim]; + // su2double *Vector = new su2double[nDim]; // //#ifndef HAVE_MPI // @@ -2231,12 +2231,12 @@ void CTurbSASolver::BC_NearField_Boundary(CGeometry *geometry, CSolver **solver_ //#else // // int rank = MPI::COMM_WORLD.Get_rank(), jProcessor; - // double *Conserv_Var, *Flow_Var; + // su2double *Conserv_Var, *Flow_Var; // bool compute; // // unsigned short Buffer_Size = nVar+solver_container[FLOW_SOL]->GetnVar(); - // double *Buffer_Send_U = new double [Buffer_Size]; - // double *Buffer_Receive_U = new double [Buffer_Size]; + // su2double *Buffer_Send_U = new su2double [Buffer_Size]; + // su2double *Buffer_Receive_U = new su2double [Buffer_Size]; // // /*--- Do the send process, by the moment we are sending each // node individually, this must be changed ---*/ @@ -2343,7 +2343,7 @@ void CTurbSASolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig /*--- Restart the solution from file information ---*/ unsigned short iVar, iMesh; unsigned long iPoint, index, iChildren, Point_Fine; - double dull_val, Area_Children, Area_Parent, *Solution_Fine; + su2double dull_val, Area_Children, Area_Parent, *Solution_Fine; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -2460,7 +2460,7 @@ CTurbSSTSolver::CTurbSSTSolver(void) : CTurbSolver() { CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CTurbSolver() { unsigned short iVar, iDim, nLineLets; unsigned long iPoint, index; - double dull_val; + su2double dull_val; ifstream restart_file; string text_line; @@ -2501,42 +2501,42 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh /*--- Define some auxiliary vector related with the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_i = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; - Residual_j = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_i = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_i[iVar] = 0.0; + Residual_j = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_j[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vector related with the solution ---*/ - Solution = new double[nVar]; - Solution_i = new double[nVar]; Solution_j = new double[nVar]; + Solution = new su2double[nVar]; + Solution_i = new su2double[nVar]; Solution_j = new su2double[nVar]; /*--- Define some auxiliary vector related with the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; /*--- Define some auxiliary vector related with the flow solution ---*/ - FlowPrimVar_i = new double [nDim+7]; FlowPrimVar_j = new double [nDim+7]; + FlowPrimVar_i = new su2double [nDim+7]; FlowPrimVar_j = new su2double [nDim+7]; /*--- Jacobians and vector structures for implicit computations ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ @@ -2558,17 +2558,17 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /* --- Initialize value for model constants --- */ - constants = new double[10]; + constants = new su2double[10]; constants[0] = 0.85; //sigma_k1 constants[1] = 1.0; //sigma_k2 constants[2] = 0.5; //sigma_om1 @@ -2581,8 +2581,8 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh constants[9] = constants[5]/constants[6] - constants[3]*0.41*0.41/sqrt(constants[6]); //alfa_2 /* --- Initialize lower and upper limits--- */ - lowerlimit = new double[nVar]; - upperlimit = new double[nVar]; + lowerlimit = new su2double[nVar]; + upperlimit = new su2double[nVar]; lowerlimit[0] = 1.0e-10; upperlimit[0] = 1.0e10; @@ -2591,7 +2591,7 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh upperlimit[1] = 1.0e15; /*--- Flow infinity initialization stuff ---*/ - double rhoInf, *VelInf, muLamInf, Intensity, viscRatio, muT_Inf; + su2double rhoInf, *VelInf, muLamInf, Intensity, viscRatio, muT_Inf; rhoInf = config->GetDensity_FreeStreamND(); VelInf = config->GetVelocity_FreeStreamND(); @@ -2599,7 +2599,7 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh Intensity = config->GetTurbulenceIntensity_FreeStream(); viscRatio = config->GetTurb2LamViscRatio_FreeStream(); - double VelMag = 0; + su2double VelMag = 0; for (iDim = 0; iDim < nDim; iDim++) VelMag += VelInf[iDim]*VelInf[iDim]; VelMag = sqrt(VelMag); @@ -2625,11 +2625,11 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh if (dual_time) { int Unst_RestartIter; if (adjoint) { - Unst_RestartIter = int(config->GetUnst_AdjointIter()) - 1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) - Unst_RestartIter = int(config->GetUnst_RestartIter())-1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; else - Unst_RestartIter = int(config->GetUnst_RestartIter())-2; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } @@ -2739,8 +2739,8 @@ void CTurbSSTSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contain } void CTurbSSTSolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { - double rho = 0.0, mu = 0.0, dist, omega, kine, strMag, F2, muT, zeta; - double a1 = constants[7]; + su2double rho = 0.0, mu = 0.0, dist, omega, kine, strMag, F2, muT, zeta; + su2double a1 = constants[7]; unsigned long iPoint; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -2858,7 +2858,7 @@ void CTurbSSTSolver::BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_cont unsigned long iPoint, jPoint, iVertex, total_index; unsigned short iDim, iVar; - double distance, density = 0.0, laminar_viscosity = 0.0, beta_1; + su2double distance, density = 0.0, laminar_viscosity = 0.0, beta_1; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -2915,7 +2915,7 @@ void CTurbSSTSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_co unsigned long iPoint, jPoint, iVertex, total_index; unsigned short iDim, iVar; - double distance, density = 0.0, laminar_viscosity = 0.0, beta_1; + su2double distance, density = 0.0, laminar_viscosity = 0.0, beta_1; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); @@ -2970,12 +2970,12 @@ void CTurbSSTSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_co void CTurbSSTSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex; - double *Normal, *V_infty, *V_domain; + su2double *Normal, *V_infty, *V_domain; unsigned short iVar, iDim; bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; + Normal = new su2double[nDim]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3038,9 +3038,9 @@ void CTurbSSTSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, C unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - double *V_inlet, *V_domain, *Normal; + su2double *V_inlet, *V_domain, *Normal; - Normal = new double[nDim]; + Normal = new su2double[nDim]; bool grid_movement = config->GetGrid_Movement(); @@ -3127,11 +3127,11 @@ void CTurbSSTSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *V_outlet, *V_domain, *Normal; + su2double *V_outlet, *V_domain, *Normal; bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; + Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3209,7 +3209,7 @@ void CTurbSSTSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, } -double* CTurbSSTSolver::GetConstants() { +su2double* CTurbSSTSolver::GetConstants() { return constants; } @@ -3218,7 +3218,7 @@ CTurbMLSolver::CTurbMLSolver(void) : CTurbSolver() { } CTurbMLSolver::CTurbMLSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CTurbSolver() { unsigned short iVar, iDim, nLineLets; unsigned long iPoint, index; - double Density_Inf, Viscosity_Inf, Factor_nu_Inf, dull_val, T_ref = 0.0, S = 0.0, Mu_ref = 0.0; + su2double Density_Inf, Viscosity_Inf, Factor_nu_Inf, dull_val, T_ref = 0.0, S = 0.0, Mu_ref = 0.0; bool restart = (config->GetRestart() || config->GetRestart_Flow()); bool adjoint = config->GetAdjoint(); @@ -3249,35 +3249,35 @@ CTurbMLSolver::CTurbMLSolver(CGeometry *geometry, CConfig *config, unsigned shor if (iMesh == MESH_0) { /*--- Define some auxiliar vector related with the residual ---*/ - Residual = new double[nVar]; Residual_RMS = new double[nVar]; - Residual_i = new double[nVar]; Residual_j = new double[nVar]; - Residual_Max = new double[nVar]; + Residual = new su2double[nVar]; Residual_RMS = new su2double[nVar]; + Residual_i = new su2double[nVar]; Residual_j = new su2double[nVar]; + Residual_Max = new su2double[nVar]; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliar vector related with the solution ---*/ - Solution = new double[nVar]; - Solution_i = new double[nVar]; Solution_j = new double[nVar]; + Solution = new su2double[nVar]; + Solution_i = new su2double[nVar]; Solution_j = new su2double[nVar]; /*--- Define some auxiliar vector related with the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; /*--- Define some auxiliar vector related with the flow solution ---*/ - FlowPrimVar_i = new double [nDim+7]; FlowPrimVar_j = new double [nDim+7]; + FlowPrimVar_i = new su2double [nDim+7]; FlowPrimVar_j = new su2double [nDim+7]; /*--- Jacobians and vector structures for implicit computations ---*/ - Jacobian_i = new double* [nVar]; - Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; + Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; - Jacobian_j[iVar] = new double [nVar]; + Jacobian_i[iVar] = new su2double [nVar]; + Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ @@ -3303,20 +3303,20 @@ CTurbMLSolver::CTurbMLSolver(CGeometry *geometry, CConfig *config, unsigned shor /*--- Computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } } /* --- Initialize lower and upper limits--- */ - lowerlimit = new double[nVar]; - upperlimit = new double[nVar]; + lowerlimit = new su2double[nVar]; + upperlimit = new su2double[nVar]; lowerlimit[0] = 1.0e-10; upperlimit[0] = 1.0; @@ -3330,8 +3330,8 @@ CTurbMLSolver::CTurbMLSolver(CGeometry *geometry, CConfig *config, unsigned shor nu_tilde_Inf = Factor_nu_Inf*Viscosity_Inf/Density_Inf; /*--- Eddy viscosity at infinity ---*/ - double Ji, Ji_3, fv1, cv1_3 = 7.1*7.1*7.1; - double muT_Inf; + su2double Ji, Ji_3, fv1, cv1_3 = 7.1*7.1*7.1; + su2double muT_Inf; Ji = nu_tilde_Inf/Viscosity_Inf*Density_Inf; Ji_3 = Ji*Ji*Ji; fv1 = Ji_3/(Ji_3+cv1_3); @@ -3347,21 +3347,21 @@ CTurbMLSolver::CTurbMLSolver(CGeometry *geometry, CConfig *config, unsigned shor /*--- Restart the solution from file information ---*/ ifstream restart_file; string filename = config->GetSolution_FlowFileName(); - double Density, Laminar_Viscosity, nu, nu_hat, muT = 0.0, U[5]; - double Temperature, Temperature_Dim, Pressure; - double Temperature_Ref = config->GetTemperature_Ref(); - double Viscosity_Ref = config->GetViscosity_Ref(); - double Gas_Constant = config->GetGas_ConstantND(); + su2double Density, Laminar_Viscosity, nu, nu_hat, muT = 0.0, U[5]; + su2double Temperature, Temperature_Dim, Pressure; + su2double Temperature_Ref = config->GetTemperature_Ref(); + su2double Viscosity_Ref = config->GetViscosity_Ref(); + su2double Gas_Constant = config->GetGas_ConstantND(); /*--- Modify file name for an unsteady restart ---*/ if (dual_time) { int Unst_RestartIter; if (adjoint) { - Unst_RestartIter = int(config->GetUnst_AdjointIter()) - 1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) - Unst_RestartIter = int(config->GetUnst_RestartIter())-1; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; else - Unst_RestartIter = int(config->GetUnst_RestartIter())-2; + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } @@ -3495,8 +3495,8 @@ void CTurbMLSolver::Preprocessing(CGeometry *geometry, CSolver **solver_containe } void CTurbMLSolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { - double rho = 0.0, mu = 0.0, nu, *nu_hat, muT, Ji, Ji_3, fv1; - double cv1_3 = 7.1*7.1*7.1; + su2double rho = 0.0, mu = 0.0, nu, *nu_hat, muT, Ji, Ji_3, fv1; + su2double cv1_3 = 7.1*7.1*7.1; unsigned long iPoint; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -3532,7 +3532,7 @@ void CTurbMLSolver::Postprocessing(CGeometry *geometry, CSolver **solver_contain void CTurbMLSolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, CConfig *config, unsigned short iMesh) { unsigned long iPoint; - double LevelSet; + su2double LevelSet; unsigned short iVar; unsigned short iDim; unsigned short jDim; @@ -3540,7 +3540,7 @@ void CTurbMLSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai bool freesurface = (config->GetKind_Regime() == FREESURFACE); bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); bool transition = (config->GetKind_Trans_Model() == LM); - double epsilon = config->GetFreeSurface_Thickness(); + su2double epsilon = config->GetFreeSurface_Thickness(); for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -3693,7 +3693,7 @@ void CTurbMLSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai if (time_spectral) { - double Volume, Source; + su2double Volume, Source; unsigned short nVar_Turb = solver_container[TURB_SOL]->GetnVar(); /*--- Loop over points ---*/ @@ -3775,11 +3775,11 @@ void CTurbMLSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container unsigned long iPoint, iVertex; unsigned short iVar, iDim; - double *Normal, *V_infty, *V_domain; + su2double *Normal, *V_infty, *V_domain; bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; + Normal = new su2double[nDim]; for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3830,9 +3830,9 @@ void CTurbMLSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CN unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - double *V_inlet, *V_domain, *Normal; + su2double *V_inlet, *V_domain, *Normal; - Normal = new double[nDim]; + Normal = new su2double[nDim]; bool grid_movement = config->GetGrid_Movement(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); @@ -3911,11 +3911,11 @@ void CTurbMLSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, C CConfig *config, unsigned short val_marker) { unsigned long iPoint, iVertex, Point_Normal; unsigned short iVar, iDim; - double *V_outlet, *V_domain, *Normal; + su2double *V_outlet, *V_domain, *Normal; bool grid_movement = config->GetGrid_Movement(); - Normal = new double[nDim]; + Normal = new su2double[nDim]; /*--- Loop over all the vertices on this boundary marker ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3995,7 +3995,7 @@ void CTurbMLSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig /*--- Restart the solution from file information ---*/ unsigned short iVar, iMesh; unsigned long iPoint, index, iChildren, Point_Fine; - double dull_val, Area_Children, Area_Parent, *Solution_Fine; + su2double dull_val, Area_Children, Area_Parent, *Solution_Fine; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); diff --git a/SU2_CFD/src/solver_direct_wave.cpp b/SU2_CFD/src/solver_direct_wave.cpp index 04800fa75a1..5d7819e3675 100644 --- a/SU2_CFD/src/solver_direct_wave.cpp +++ b/SU2_CFD/src/solver_direct_wave.cpp @@ -48,29 +48,29 @@ CWaveSolver::CWaveSolver(CGeometry *geometry, node = new CVariable*[nPoint]; nVar = 2; // solve as a 2 eq. system - Residual = new double[nVar]; Residual_RMS = new double[nVar]; - Solution = new double[nVar]; - Res_Sour = new double[nVar]; - Residual_Max = new double[nVar]; + Residual = new su2double[nVar]; Residual_RMS = new su2double[nVar]; + Solution = new su2double[nVar]; + Res_Sour = new su2double[nVar]; + Residual_Max = new su2double[nVar]; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Point to point stiffness matrix (only for triangles)---*/ - StiffMatrix_Elem = new double*[nDim+1]; + StiffMatrix_Elem = new su2double*[nDim+1]; for (iVar = 0; iVar < nDim+1; iVar++) { - StiffMatrix_Elem[iVar] = new double [nDim+1]; + StiffMatrix_Elem[iVar] = new su2double [nDim+1]; } - StiffMatrix_Node = new double*[nVar]; + StiffMatrix_Node = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - StiffMatrix_Node[iVar] = new double [nVar]; + StiffMatrix_Node[iVar] = new su2double [nVar]; } /*--- Initialization of matrix structures ---*/ @@ -90,7 +90,7 @@ CWaveSolver::CWaveSolver(CGeometry *geometry, /* Wave strength coefficient for all of the markers */ - CWave = new double[config->GetnMarker_All()]; + CWave = new su2double[config->GetnMarker_All()]; Total_CWave = 0.0; /* Check for a restart (not really used), initialize from zero otherwise */ @@ -197,8 +197,8 @@ void CWaveSolver::Source_Residual(CGeometry *geometry, /* Local variables and initialization */ unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; - double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, Area_Local, Time_Num; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; + su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, Area_Local, Time_Num; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; unsigned short iDim; /*--- Numerical time step. This system is unconditionally stable, @@ -291,7 +291,7 @@ void CWaveSolver::Viscous_Residual(CGeometry *geometry, /* Local variables and initialization */ unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, iPoint, total_index; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, wave_speed_2; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, wave_speed_2; unsigned short iVar; for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -379,18 +379,18 @@ void CWaveSolver::BC_Euler_Wall(CGeometry *geometry, unsigned short val_marker) { unsigned long iPoint, iVertex, total_index, iter; - double deltaT, omega, time, ampl, *wave_sol; + su2double deltaT, omega, time, ampl, *wave_sol; unsigned short iVar; /*--- Set the values needed for periodic forcing ---*/ deltaT = config->GetDelta_UnstTimeND(); iter = config->GetExtIter(); - time = static_cast(iter)*deltaT; + time = static_cast(iter)*deltaT; omega = 1.0; ampl = 1.0; - wave_sol = new double [nVar]; + wave_sol = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { wave_sol[iVar] = 0.0; @@ -438,7 +438,7 @@ void CWaveSolver::Wave_Strength(CGeometry *geometry, CConfig *config) { unsigned long iPoint, iVertex; unsigned short iMarker, Boundary, Monitoring; - double WaveSol, WaveStrength = 0.0, factor; + su2double WaveSol, WaveStrength = 0.0, factor; /* Multiplying rho' by c^2 gives the acoustic pressure, p' */ factor = config->GetWaveSpeed()*config->GetWaveSpeed(); @@ -483,10 +483,10 @@ void CWaveSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_con unsigned short iMesh, unsigned short RunTime_EqSystem) { unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; - double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, Area_Local, Time_Num; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; + su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}, Area_Local, Time_Num; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; unsigned short iDim, iVar, jVar; - double TimeJac = 0.0; + su2double TimeJac = 0.0; /*--- Numerical time step (this system is uncoditional stable... a very big number can be used) ---*/ Time_Num = config->GetDelta_UnstTimeND(); @@ -552,7 +552,7 @@ void CWaveSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_con } unsigned long iPoint, total_index; - double *U_time_nM1, *U_time_n, *U_time_nP1; + su2double *U_time_nM1, *U_time_n, *U_time_nP1; /*--- loop over points ---*/ for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { @@ -652,7 +652,7 @@ void CWaveSolver::SetSpace_Matrix(CGeometry *geometry, // /* Local variables and initialization */ // // unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, iPoint, total_index; -// double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, wave_speed_2; +// su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, wave_speed_2; // unsigned short iVar; // // for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -738,22 +738,22 @@ void CWaveSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig * flowIter = nFlowIter - adjIter - 1; unsigned short lastindex = restart_filename.find_last_of("."); restart_filename = restart_filename.substr(0, lastindex); - if ((int(flowIter) >= 0) && (int(flowIter) < 10)) sprintf (buffer, "_0000%d.dat", int(flowIter)); - if ((int(flowIter) >= 10) && (int(flowIter) < 100)) sprintf (buffer, "_000%d.dat", int(flowIter)); - if ((int(flowIter) >= 100) && (int(flowIter) < 1000)) sprintf (buffer, "_00%d.dat", int(flowIter)); - if ((int(flowIter) >= 1000) && (int(flowIter) < 10000)) sprintf (buffer, "_0%d.dat", int(flowIter)); - if (int(flowIter) >= 10000) sprintf (buffer, "_%d.dat", int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 0) && (SU2_TYPE::Int(flowIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 10) && (SU2_TYPE::Int(flowIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 100) && (SU2_TYPE::Int(flowIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 1000) && (SU2_TYPE::Int(flowIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(flowIter)); + if (SU2_TYPE::Int(flowIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(flowIter)); UnstExt = string(buffer); restart_filename.append(UnstExt); } else { flowIter =config->GetExtIter(); unsigned short lastindex = restart_filename.find_last_of("."); restart_filename = restart_filename.substr(0, lastindex); - if ((int(flowIter) >= 0) && (int(flowIter) < 10)) sprintf (buffer, "_0000%d.dat", int(flowIter)); - if ((int(flowIter) >= 10) && (int(flowIter) < 100)) sprintf (buffer, "_000%d.dat", int(flowIter)); - if ((int(flowIter) >= 100) && (int(flowIter) < 1000)) sprintf (buffer, "_00%d.dat", int(flowIter)); - if ((int(flowIter) >= 1000) && (int(flowIter) < 10000)) sprintf (buffer, "_0%d.dat", int(flowIter)); - if (int(flowIter) >= 10000) sprintf (buffer, "_%d.dat", int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 0) && (SU2_TYPE::Int(flowIter) < 10)) SPRINTF (buffer, "_0000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 10) && (SU2_TYPE::Int(flowIter) < 100)) SPRINTF (buffer, "_000%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 100) && (SU2_TYPE::Int(flowIter) < 1000)) SPRINTF (buffer, "_00%d.dat", SU2_TYPE::Int(flowIter)); + if ((SU2_TYPE::Int(flowIter) >= 1000) && (SU2_TYPE::Int(flowIter) < 10000)) SPRINTF (buffer, "_0%d.dat", SU2_TYPE::Int(flowIter)); + if (SU2_TYPE::Int(flowIter) >= 10000) SPRINTF (buffer, "_%d.dat", SU2_TYPE::Int(flowIter)); UnstExt = string(buffer); restart_filename.append(UnstExt); } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 97adc393bd1..1489de6cfde 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -89,7 +89,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - double E = config->GetElasticyMod(); + su2double E = config->GetElasticyMod(); nElement = geometry->GetnElem(); nDim = geometry->GetnDim(); @@ -103,8 +103,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi element_container = new CElement*[nKindElements]; node = new CVariable*[nPoint]; - GradN_X = new double [nDim]; - GradN_x = new double [nDim]; + GradN_X = new su2double [nDim]; + GradN_x = new su2double [nDim]; Total_CFEA = 0.0; WAitken_Dyn = 0.0; @@ -118,21 +118,21 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Define some auxiliary vectors related to the residual ---*/ - Residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - nodeReactions = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; + nodeReactions = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; bool restart = (config->GetRestart() || config->GetRestart_Flow()); @@ -156,9 +156,9 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Term ij of the Mass Matrix ---*/ - MassMatrix_ij = new double*[nVar]; + MassMatrix_ij = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_ij[iVar] = new double [nVar]; + MassMatrix_ij[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { MassMatrix_ij[iVar][jVar] = 0.0; } @@ -166,9 +166,9 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Term ij of the Jacobian ---*/ - Jacobian_ij = new double*[nVar]; + Jacobian_ij = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ij[iVar] = new double [nVar]; + Jacobian_ij[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { Jacobian_ij[iVar][jVar] = 0.0; } @@ -176,9 +176,9 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Term ij of the Jacobian (constitutive contribution) ---*/ - Jacobian_c_ij = new double*[nVar]; + Jacobian_c_ij = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_c_ij[iVar] = new double [nVar]; + Jacobian_c_ij[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { Jacobian_c_ij[iVar][jVar] = 0.0; } @@ -186,9 +186,9 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Term ij of the Jacobian (stress contribution) ---*/ - Jacobian_s_ij = new double*[nVar]; + Jacobian_s_ij = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_s_ij[iVar] = new double [nVar]; + Jacobian_s_ij[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { Jacobian_s_ij[iVar][jVar] = 0.0; } @@ -197,9 +197,9 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Term ij of the Jacobian (incompressibility term) ---*/ if (incompressible){ - Jacobian_k_ij = new double*[nVar]; + Jacobian_k_ij = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_k_ij[iVar] = new double [nVar]; + Jacobian_k_ij[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { Jacobian_k_ij[iVar][jVar] = 0.0; } @@ -210,14 +210,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } /*--- Stress contribution to the node i ---*/ - Res_Stress_i = new double[nVar]; + Res_Stress_i = new su2double[nVar]; /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ - Res_Ext_Surf = new double[nVar]; + Res_Ext_Surf = new su2double[nVar]; /*--- Contribution of the fluid tractions to the residual (auxiliary vector) ---*/ if (fsi){ - Res_FSI_Cont = new double[nVar]; + Res_FSI_Cont = new su2double[nVar]; } else { Res_FSI_Cont = NULL; @@ -226,7 +226,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Time integration contribution to the residual ---*/ if (dynamic) { - Res_Time_Cont = new double [nVar]; + Res_Time_Cont = new su2double [nVar]; } else { Res_Time_Cont = NULL; @@ -234,13 +234,13 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Matrices to impose clamped boundary conditions (TODO: Initialize them conditionally). ---*/ - mZeros_Aux = new double *[nDim]; + mZeros_Aux = new su2double *[nDim]; for(iDim = 0; iDim < nDim; iDim++) - mZeros_Aux[iDim] = new double[nDim]; + mZeros_Aux[iDim] = new su2double[nDim]; - mId_Aux = new double *[nDim]; + mId_Aux = new su2double *[nDim]; for(iDim = 0; iDim < nDim; iDim++) - mId_Aux[iDim] = new double[nDim]; + mId_Aux[iDim] = new su2double[nDim]; for(iDim = 0; iDim < nDim; iDim++){ for (jDim = 0; jDim < nDim; jDim++){ @@ -296,16 +296,16 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Initialize the auxiliary vector and matrix for the computation of the nodal Reactions ---*/ - normalVertex = new double [nDim]; + normalVertex = new su2double [nDim]; - stressTensor = new double* [nDim]; + stressTensor = new su2double* [nDim]; for (iVar = 0; iVar < nVar; iVar++){ - stressTensor[iVar] = new double [nDim]; + stressTensor[iVar] = new su2double [nDim]; } /*---- Initialize the auxiliary vector for the solution predictor ---*/ - solutionPredictor = new double [nVar]; + solutionPredictor = new su2double [nVar]; } @@ -436,16 +436,16 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s unsigned short iNode, iGauss, iDim; unsigned short nNodes, nGauss; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - double val_Coord, val_Sol; + su2double val_Coord, val_Sol; int EL_KIND; - double Ks_ab; - double *Kab = NULL; - double *Kk_ab = NULL; - double *Ta = NULL; + su2double Ks_ab; + su2double *Kab = NULL; + su2double *Kk_ab = NULL; + su2double *Ta = NULL; unsigned short NelNodes, jNode; - double checkJacobian, *checkCoord; + su2double checkJacobian, *checkCoord; /*--- Loops over all the elements ---*/ @@ -505,13 +505,13 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet unsigned short iNode, iGauss, iDim; unsigned short nNodes, nGauss; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - double val_Coord, val_Sol; + su2double val_Coord, val_Sol; int EL_KIND; - double Ks_ab; - double *Kab = NULL; - double *Kk_ab = NULL; - double *Ta = NULL; + su2double Ks_ab; + su2double *Kab = NULL; + su2double *Kk_ab = NULL; + su2double *Ta = NULL; unsigned short NelNodes, jNode; bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); @@ -588,10 +588,10 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so unsigned short iNode, iGauss, iDim; unsigned short nNodes, nGauss; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - double val_Coord, val_Sol; + su2double val_Coord, val_Sol; int EL_KIND; - double Mab; + su2double Mab; unsigned short NelNodes, jNode; /*--- Loops over all the elements ---*/ @@ -647,13 +647,13 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver unsigned short iNode, iGauss, iDim; unsigned short nNodes, nGauss; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - double val_Coord, val_Sol; + su2double val_Coord, val_Sol; int EL_KIND; - double Ks_ab; - double *Kab = NULL; - double *Kk_ab = NULL; - double *Ta = NULL; + su2double Ks_ab; + su2double *Kab = NULL; + su2double *Kk_ab = NULL; + su2double *Ta = NULL; unsigned short NelNodes, jNode; bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); @@ -710,7 +710,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s unsigned short iNode, iDim, iStress; unsigned short nNodes, nStress; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - double val_Coord, val_Sol; + su2double val_Coord, val_Sol; int EL_KIND; bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); @@ -718,7 +718,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s if (nDim == 2) nStress = 3; else if (nDim == 3) nStress = 6; - double *Ta = NULL; + su2double *Ta = NULL; unsigned short NelNodes; @@ -776,9 +776,9 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } - double *Stress; - double VonMises_Stress, MaxVonMises_Stress = 0.0; - double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; + su2double *Stress; + su2double VonMises_Stress, MaxVonMises_Stress = 0.0; + su2double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; /* --- For the number of nodes in the mesh ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { @@ -827,7 +827,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } - double checkJacobian; + su2double checkJacobian; unsigned long jNode; bool outputReactions = false; @@ -837,7 +837,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s unsigned short iMarker; unsigned long iVertex; - double val_Reaction; + su2double val_Reaction; bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. @@ -968,8 +968,8 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - MPI_Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #endif @@ -985,8 +985,8 @@ void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::Compute_IntegrationConstants(CConfig *config) { - double Delta_t= config->GetDelta_DynTime(); - double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); + su2double Delta_t= config->GetDelta_DynTime(); + su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); /*--- Integration constants for Newmark scheme ---*/ @@ -1008,7 +1008,7 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con unsigned long iPoint, iVertex; unsigned short iVar, jVar; - double tempCoord; + su2double tempCoord; bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); @@ -1124,7 +1124,7 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver bool first_iter = (config->GetIntIter() == 0); bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - double solNorm = 0.0, tempCheck[3]; + su2double solNorm = 0.0, tempCheck[3]; if (nonlinear_analysis){ @@ -1205,24 +1205,24 @@ void CFEM_ElasticitySolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - double a[3], b[3], AC[3], BD[3]; + su2double a[3], b[3], AC[3], BD[3]; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; - double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; unsigned short iDim; - double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); - double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); - double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); + su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); + su2double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); + su2double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); - double TotalLoad; + su2double TotalLoad; bool Gradual_Load = config->GetGradual_Load(); - double CurrentTime=config->GetCurrent_DynTime(); - double ModAmpl, NonModAmpl; + su2double CurrentTime=config->GetCurrent_DynTime(); + su2double ModAmpl, NonModAmpl; bool Ramp_Load = config->GetRamp_Load(); - double Ramp_Time = config->GetRamp_Time(); + su2double Ramp_Time = config->GetRamp_Time(); if (Ramp_Load){ ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; @@ -1238,7 +1238,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co } /*--- Compute the norm of the vector that was passed in the config file ---*/ - double Norm; + su2double Norm; if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); @@ -1276,7 +1276,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co b[iDim] = Coord_2[iDim]-Coord_0[iDim]; } - double Ni=0 , Nj=0, Nk=0; + su2double Ni=0 , Nj=0, Nk=0; Ni=a[1]*b[2]-a[2]*b[1]; Nj=-a[0]*b[2]+a[2]*b[0]; @@ -1293,7 +1293,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; } - double Ni=0 , Nj=0, Nk=0; + su2double Ni=0 , Nj=0, Nk=0; Ni=AC[1]*BD[2]-AC[2]*BD[1]; Nj=-AC[0]*BD[2]+AC[2]*BD[0]; @@ -1367,7 +1367,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation. - double *checkCoord; + su2double *checkCoord; if (!dynamic){ @@ -1565,16 +1565,16 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe (flow_config->GetKind_Solver() == RANS) ); unsigned long nodeVertex, donorVertex; - double *normalsVertex; + su2double *normalsVertex; - double *tn_f; - tn_f = new double [nVar]; // Fluid traction + su2double *tn_f; + tn_f = new su2double [nVar]; // Fluid traction /*--- Redimensionalize the pressure ---*/ - double *Velocity_ND, *Velocity_Real; - double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; - double factorForces; + su2double *Velocity_ND, *Velocity_Real; + su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; + su2double factorForces; Velocity_Real = flow_config->GetVelocity_FreeStream(); Density_Real = flow_config->GetDensity_FreeStream(); @@ -1593,12 +1593,12 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe /*--- Apply a ramp to the transfer of the fluid loads ---*/ - double ModAmpl; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); + su2double ModAmpl; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); bool Ramp_Load = fea_config->GetRamp_Load(); - double Ramp_Time = fea_config->GetRamp_Time(); + su2double Ramp_Time = fea_config->GetRamp_Time(); if (CurrentTime <= Static_Time){ ModAmpl=0.0; } else if((CurrentTime > Static_Time) && @@ -1615,10 +1615,10 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe // Pinf: Pressure_infinite // div_vel: Velocity divergence // Dij: Dirac delta - double Pn = 0.0, Pinf = 0.0, div_vel = 0.0, Dij = 0.0; - double Viscosity = 0.0, Density = 0.0; - double **Grad_PrimVar; - double Tau[3][3]; + su2double Pn = 0.0, Pinf = 0.0, div_vel = 0.0, Dij = 0.0; + su2double Viscosity = 0.0, Density = 0.0; + su2double **Grad_PrimVar; + su2double Tau[3][3]; /*--- Number of markers in the FSI interface ---*/ nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; @@ -1744,11 +1744,11 @@ void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution){ unsigned short predOrder = fea_config->GetPredictorOrder(); - double Delta_t = fea_config->GetDelta_DynTime(); + su2double Delta_t = fea_config->GetDelta_DynTime(); unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *solDisp, *solVel, *solVel_tn, *valPred; - double *DisplacementDonor, *SolutionDonor; + su2double *solDisp, *solVel, *solVel_tn, *valPred; + su2double *DisplacementDonor, *SolutionDonor; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -1793,13 +1793,13 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; - double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; - double delta_deltaU[3] = {0.0, 0.0, 0.0}; - double numAitk, denAitk, WAitken; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); - double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; + su2double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; + su2double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; + su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; + su2double numAitk, denAitk, WAitken; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); + su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -1899,10 +1899,10 @@ void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, unsigned long iPoint, iDim; unsigned long nPoint, nDim; unsigned short RelaxMethod_FSI; - double *dispPred, *dispCalc; - double WAitken; - double CurrentTime=fea_config->GetCurrent_DynTime(); - double Static_Time=fea_config->GetStatic_Time(); + su2double *dispPred, *dispCalc; + su2double WAitken; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); @@ -1956,7 +1956,7 @@ void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, unsigned long iPoint, iDim; unsigned long nPoint, nDim; - double *valSolutionPred, *valSolution; + su2double *valSolutionPred, *valSolution; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); diff --git a/SU2_CFD/src/solver_linearized_mean.cpp b/SU2_CFD/src/solver_linearized_mean.cpp index d9f8e09355f..6f4d19e70e5 100644 --- a/SU2_CFD/src/solver_linearized_mean.cpp +++ b/SU2_CFD/src/solver_linearized_mean.cpp @@ -47,7 +47,7 @@ CLinEulerSolver::CLinEulerSolver(CGeometry *geometry, CConfig *config, unsigned bool restart = config->GetRestart(); Gamma = config->GetGamma(); Gamma_Minus_One = Gamma - 1.0; - double dull_val; + su2double dull_val; /*--- Define geometry constants in the solver structure ---*/ nDim = geometry->GetnDim(); @@ -58,33 +58,33 @@ CLinEulerSolver::CLinEulerSolver(CGeometry *geometry, CConfig *config, unsigned node = new CVariable*[geometry->GetnPoint()]; /*--- Define some auxiliar vector related with the residual ---*/ - Residual = new double[nVar]; Residual_RMS = new double[nVar]; - Residual_i = new double[nVar]; Residual_j = new double[nVar]; - Res_Conv = new double[nVar]; Res_Visc = new double[nVar]; Res_Sour = new double[nVar]; - Residual_Max = new double[nVar]; + Residual = new su2double[nVar]; Residual_RMS = new su2double[nVar]; + Residual_i = new su2double[nVar]; Residual_j = new su2double[nVar]; + Res_Conv = new su2double[nVar]; Res_Visc = new su2double[nVar]; Res_Sour = new su2double[nVar]; + Residual_Max = new su2double[nVar]; /*--- Define some structures for locating max residuals ---*/ Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new double*[nVar]; + Point_Max_Coord = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new double[nDim]; + Point_Max_Coord[iVar] = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; } /*--- Define some auxiliar vector related with the solution ---*/ - Solution = new double[nVar]; - Solution_i = new double[nVar]; Solution_j = new double[nVar]; + Solution = new su2double[nVar]; + Solution_i = new su2double[nVar]; Solution_j = new su2double[nVar]; /*--- Define some auxiliar vector related with the geometry ---*/ - Vector_i = new double[nDim]; Vector_j = new double[nDim]; + Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; /*--- Jacobians and vector structures for implicit computations ---*/ if (config->GetKind_TimeIntScheme_LinFlow() == EULER_IMPLICIT) { /*--- Point to point Jacobians ---*/ - Jacobian_i = new double* [nVar]; Jacobian_j = new double* [nVar]; + Jacobian_i = new su2double* [nVar]; Jacobian_j = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_i[iVar] = new double [nVar]; Jacobian_j[iVar] = new double [nVar]; } + Jacobian_i[iVar] = new su2double [nVar]; Jacobian_j[iVar] = new su2double [nVar]; } /*--- Initialization of the structure of the whole Jacobian ---*/ Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config); @@ -101,24 +101,24 @@ CLinEulerSolver::CLinEulerSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Computation of gradients by least squares ---*/ if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) { /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ - Smatrix = new double* [nDim]; + Smatrix = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- c vector := transpose(WA)*(Wb) ---*/ - cvector = new double* [nVar]; + cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; } /*--- Delta forces definition and coefficient in all the markers ---*/ - DeltaForceInviscid = new double[nDim]; - CDeltaDrag_Inv = new double[config->GetnMarker_All()]; - CDeltaLift_Inv = new double[config->GetnMarker_All()]; + DeltaForceInviscid = new su2double[nDim]; + CDeltaDrag_Inv = new su2double[config->GetnMarker_All()]; + CDeltaLift_Inv = new su2double[config->GetnMarker_All()]; /*--- Linearized flow at the inifinity, inizialization stuff ---*/ DeltaRho_Inf = 0.0; DeltaE_Inf = 0.0; - DeltaVel_Inf = new double [nDim]; + DeltaVel_Inf = new su2double [nDim]; if (nDim == 2) { DeltaVel_Inf[0] = 0.0; DeltaVel_Inf[1] = 0.0; @@ -286,10 +286,10 @@ void CLinEulerSolver::SetUndivided_Laplacian(CGeometry *geometry, CConfig *confi void CLinEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep) { - double *Residual, Vol, Delta, *Res_TruncError; + su2double *Residual, Vol, Delta, *Res_TruncError; unsigned short iVar; unsigned long iPoint; - double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); + su2double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); /*--- Set maximum residual to zero ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -334,18 +334,18 @@ void CLinEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_contai void CLinEulerSolver::Inviscid_DeltaForces(CGeometry *geometry, CSolver **solver_container, CConfig *config) { unsigned long iVertex, Point; unsigned short iDim, iMarker, Boundary, Monitoring; - double *Face_Normal, DeltaPressure, *Velocity; - double Alpha = config->GetAoA()*PI_NUMBER / 180.0; - double Beta = config->GetAoS()*PI_NUMBER / 180.0; - double RefAreaCoeff = config->GetRefAreaCoeff(); - double Density_Inf = solver_container[FLOW_SOL]->GetDensity_Inf(); - double ModVelocity_Inf = solver_container[FLOW_SOL]->GetModVelocity_Inf(); - double C_p = 1.0/(0.5*Density_Inf*RefAreaCoeff*ModVelocity_Inf*ModVelocity_Inf); + su2double *Face_Normal, DeltaPressure, *Velocity; + su2double Alpha = config->GetAoA()*PI_NUMBER / 180.0; + su2double Beta = config->GetAoS()*PI_NUMBER / 180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double Density_Inf = solver_container[FLOW_SOL]->GetDensity_Inf(); + su2double ModVelocity_Inf = solver_container[FLOW_SOL]->GetModVelocity_Inf(); + su2double C_p = 1.0/(0.5*Density_Inf*RefAreaCoeff*ModVelocity_Inf*ModVelocity_Inf); /*-- Inicialization ---*/ Total_CDeltaDrag = 0.0; Total_CDeltaLift = 0.0; AllBound_CDeltaDrag_Inv = 0.0; AllBound_CDeltaLift_Inv = 0.0; - Velocity = new double[nDim]; + Velocity = new su2double[nDim]; /*--- Loop over the Euler markers ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { @@ -361,11 +361,11 @@ void CLinEulerSolver::Inviscid_DeltaForces(CGeometry *geometry, CSolver **solver for (iDim = 0; iDim < nDim; iDim++) Velocity[iDim] = solver_container[FLOW_SOL]->node[Point]->GetVelocity(iDim); - double rho = solver_container[FLOW_SOL]->node[Point]->GetSolution(0) + node[Point]->GetSolution(0); - double rhoE = solver_container[FLOW_SOL]->node[Point]->GetSolution(nVar-1) + node[Point]->GetSolution(nVar-1); - double Pressure = solver_container[FLOW_SOL]->node[Point]->GetPressure(); - double rhoVel[3]; - double sqr_vel = 0.0; + su2double rho = solver_container[FLOW_SOL]->node[Point]->GetSolution(0) + node[Point]->GetSolution(0); + su2double rhoE = solver_container[FLOW_SOL]->node[Point]->GetSolution(nVar-1) + node[Point]->GetSolution(nVar-1); + su2double Pressure = solver_container[FLOW_SOL]->node[Point]->GetPressure(); + su2double rhoVel[3]; + su2double sqr_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) { rhoVel[iDim] = solver_container[FLOW_SOL]->node[Point]->GetSolution(iDim+1) + node[Point]->GetSolution(iDim+1); sqr_vel += rhoVel[iDim]*rhoVel[iDim]/(rho*rho); @@ -407,12 +407,12 @@ void CLinEulerSolver::Inviscid_DeltaForces(CGeometry *geometry, CSolver **solver void CLinEulerSolver::BC_Euler_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim, iVar; unsigned long iVertex, iPoint; - double phi, a1, a2, sqvel, d, *Face_Normal, *U, dS, VelxDeltaRhoVel, Energy, Rho, + su2double phi, a1, a2, sqvel, d, *Face_Normal, *U, dS, VelxDeltaRhoVel, Energy, Rho, *Normal, *Delta_RhoVel, *Vel, *DeltaU, Delta_RhoE, Delta_Rho; - Normal = new double[nDim]; - Delta_RhoVel = new double[nDim]; - Vel = new double[nDim]; + Normal = new su2double[nDim]; + Delta_RhoVel = new su2double[nDim]; + Vel = new su2double[nDim]; /*--- Loop over all the vertices ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -467,19 +467,19 @@ void CLinEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contain unsigned long iVertex, iPoint; unsigned short iVar, jVar, iDim; - double *Face_Normal; - double *kappa = new double[nDim]; - double *velocity = new double[nDim]; - double *U_wall = new double[nVar]; - double *U_infty = new double[nVar]; - double *DeltaU_wall = new double[nVar]; - double *DeltaU_infty = new double[nVar]; - double *DeltaU_update = new double[nVar]; - double *W_wall = new double[nVar]; - double *W_infty = new double[nVar]; - double *W_update = new double[nVar]; - double Mach = config->GetMach(); - double DeltaMach = 1.0; + su2double *Face_Normal; + su2double *kappa = new su2double[nDim]; + su2double *velocity = new su2double[nDim]; + su2double *U_wall = new su2double[nVar]; + su2double *U_infty = new su2double[nVar]; + su2double *DeltaU_wall = new su2double[nVar]; + su2double *DeltaU_infty = new su2double[nVar]; + su2double *DeltaU_update = new su2double[nVar]; + su2double *W_wall = new su2double[nVar]; + su2double *W_infty = new su2double[nVar]; + su2double *W_update = new su2double[nVar]; + su2double Mach = config->GetMach(); + su2double DeltaMach = 1.0; /*--- Loop over all the vertices ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -513,7 +513,7 @@ void CLinEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contain /*--- Normal vector ---*/ Face_Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - double dS = 0.0; + su2double dS = 0.0; for (iDim = 0; iDim < nDim; iDim++) dS += Face_Normal[iDim]*Face_Normal[iDim]; dS = sqrt (dS); @@ -522,33 +522,33 @@ void CLinEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contain kappa[iDim] = -Face_Normal[iDim]/dS; /*--- Computation of P and inverse P matrix using values at the infinity ---*/ - double sq_vel = 0.0, vn = 0.0; - double rho = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(0); - double rhoE = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(nVar-1); + su2double sq_vel = 0.0, vn = 0.0; + su2double rho = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(0); + su2double rhoE = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(nVar-1); for (iDim = 0; iDim < nDim; iDim++) { velocity[iDim] = solver_container[FLOW_SOL]->node[iPoint]->GetSolution(iDim+1)/rho; sq_vel +=velocity[iDim]*velocity[iDim]; vn += velocity[iDim]*kappa[iDim]*dS; } -/* double sq_vel = 0.0, vn = 0.0; - double rho = U_infty[0]; - double rhoE = U_infty[nVar-1]; +/* su2double sq_vel = 0.0, vn = 0.0; + su2double rho = U_infty[0]; + su2double rhoE = U_infty[nVar-1]; for (iDim = 0; iDim < nDim; iDim++) { velocity[iDim] = U_infty[iDim+1]/rho; sq_vel +=velocity[iDim]*velocity[iDim]; vn += velocity[iDim]*kappa[iDim]*dS; }*/ - double c = sqrt(Gamma*Gamma_Minus_One*(rhoE/rho-0.5*sq_vel)); - double energy = rhoE / rho; + su2double c = sqrt(Gamma*Gamma_Minus_One*(rhoE/rho-0.5*sq_vel)); + su2double energy = rhoE / rho; - double **P_Matrix, **invP_Matrix; - P_Matrix = new double* [nVar]; - invP_Matrix = new double* [nVar]; + su2double **P_Matrix, **invP_Matrix; + P_Matrix = new su2double* [nVar]; + invP_Matrix = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - P_Matrix[iVar] = new double [nVar]; - invP_Matrix[iVar] = new double [nVar]; + P_Matrix[iVar] = new su2double [nVar]; + invP_Matrix[iVar] = new su2double [nVar]; } conv_numerics->GetPMatrix_inv(&rho, velocity, &c, kappa, invP_Matrix); @@ -613,10 +613,10 @@ void CLinEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contain } /*--- Residual computation ---*/ - double **Jac_Matrix; - Jac_Matrix = new double* [nVar]; + su2double **Jac_Matrix; + Jac_Matrix = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jac_Matrix[iVar] = new double [nVar]; + Jac_Matrix[iVar] = new su2double [nVar]; } conv_numerics->GetInviscidProjJac(velocity, &energy, kappa, 1.0, Jac_Matrix); for (iVar = 0; iVar < nVar; iVar++) { diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index f14f25abc3d..3fe489c1f67 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -192,21 +192,21 @@ void CSolver::SetResidual_RMS(CGeometry *geometry, CConfig *config) { MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); MPI_Comm_rank(MPI_COMM_WORLD, &rank); - double *sbuf_residual, *rbuf_residual, *sbuf_coord, *rbuf_coord, *Coord; + su2double *sbuf_residual, *rbuf_residual, *sbuf_coord, *rbuf_coord, *Coord; unsigned long *sbuf_point, *rbuf_point, Local_nPointDomain, Global_nPointDomain; unsigned short iDim; /*--- Set the L2 Norm residual in all the processors ---*/ - sbuf_residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) sbuf_residual[iVar] = 0.0; - rbuf_residual = new double[nVar]; for (iVar = 0; iVar < nVar; iVar++) rbuf_residual[iVar] = 0.0; + sbuf_residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) sbuf_residual[iVar] = 0.0; + rbuf_residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) rbuf_residual[iVar] = 0.0; for (iVar = 0; iVar < nVar; iVar++) sbuf_residual[iVar] = GetRes_RMS(iVar); Local_nPointDomain = geometry->GetnPointDomain(); - MPI_Allreduce(sbuf_residual, rbuf_residual, nVar, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - MPI_Allreduce(&Local_nPointDomain, &Global_nPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(sbuf_residual, rbuf_residual, nVar, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nPointDomain, &Global_nPointDomain, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); for (iVar = 0; iVar < nVar; iVar++) { @@ -228,13 +228,13 @@ void CSolver::SetResidual_RMS(CGeometry *geometry, CConfig *config) { delete [] rbuf_residual; /*--- Set the Maximum residual in all the processors ---*/ - sbuf_residual = new double [nVar]; for (iVar = 0; iVar < nVar; iVar++) sbuf_residual[iVar] = 0.0; + sbuf_residual = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) sbuf_residual[iVar] = 0.0; sbuf_point = new unsigned long [nVar]; for (iVar = 0; iVar < nVar; iVar++) sbuf_point[iVar] = 0; - sbuf_coord = new double[nVar*nDim]; for (iVar = 0; iVar < nVar*nDim; iVar++) sbuf_coord[iVar] = 0.0; + sbuf_coord = new su2double[nVar*nDim]; for (iVar = 0; iVar < nVar*nDim; iVar++) sbuf_coord[iVar] = 0.0; - rbuf_residual = new double [nProcessor*nVar]; for (iVar = 0; iVar < nProcessor*nVar; iVar++) rbuf_residual[iVar] = 0.0; + rbuf_residual = new su2double [nProcessor*nVar]; for (iVar = 0; iVar < nProcessor*nVar; iVar++) rbuf_residual[iVar] = 0.0; rbuf_point = new unsigned long [nProcessor*nVar]; for (iVar = 0; iVar < nProcessor*nVar; iVar++) rbuf_point[iVar] = 0; - rbuf_coord = new double[nProcessor*nVar*nDim]; for (iVar = 0; iVar < nProcessor*nVar*nDim; iVar++) rbuf_coord[iVar] = 0.0; + rbuf_coord = new su2double[nProcessor*nVar*nDim]; for (iVar = 0; iVar < nProcessor*nVar*nDim; iVar++) rbuf_coord[iVar] = 0.0; for (iVar = 0; iVar < nVar; iVar++) { sbuf_residual[iVar] = GetRes_Max(iVar); @@ -244,9 +244,9 @@ void CSolver::SetResidual_RMS(CGeometry *geometry, CConfig *config) { sbuf_coord[iVar*nDim+iDim] = Coord[iDim]; } - MPI_Allgather(sbuf_residual, nVar, MPI_DOUBLE, rbuf_residual, nVar, MPI_DOUBLE, MPI_COMM_WORLD); - MPI_Allgather(sbuf_point, nVar, MPI_UNSIGNED_LONG, rbuf_point, nVar, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - MPI_Allgather(sbuf_coord, nVar*nDim, MPI_DOUBLE, rbuf_coord, nVar*nDim, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(sbuf_residual, nVar, MPI_DOUBLE, rbuf_residual, nVar, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(sbuf_point, nVar, MPI_UNSIGNED_LONG, rbuf_point, nVar, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(sbuf_coord, nVar*nDim, MPI_DOUBLE, rbuf_coord, nVar*nDim, MPI_DOUBLE, MPI_COMM_WORLD); for (iVar = 0; iVar < nVar; iVar++) { for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) { @@ -271,7 +271,7 @@ void CSolver::SetGrid_Movement_Residual (CGeometry *geometry, CConfig *config) { unsigned short nDim = geometry->GetnDim(); unsigned short nVar = GetnVar(); - double ProjGridVel, *Normal; + su2double ProjGridVel, *Normal; // Loop interior edges for (unsigned long iEdge = 0; iEdge < geometry->GetnEdge(); iEdge++) { @@ -280,15 +280,15 @@ void CSolver::SetGrid_Movement_Residual (CGeometry *geometry, CConfig *config) { const unsigned long jPoint = geometry->edge[iEdge]->GetNode(1); // Solution at each edge point - double *Solution_i = node[iPoint]->GetSolution(); - double *Solution_j = node[jPoint]->GetSolution(); + su2double *Solution_i = node[iPoint]->GetSolution(); + su2double *Solution_j = node[jPoint]->GetSolution(); for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.5* (Solution_i[iVar] + Solution_j[iVar]); // Grid Velocity at each edge point - double *GridVel_i = geometry->node[iPoint]->GetGridVel(); - double *GridVel_j = geometry->node[jPoint]->GetGridVel(); + su2double *GridVel_i = geometry->node[iPoint]->GetGridVel(); + su2double *GridVel_j = geometry->node[jPoint]->GetGridVel(); for (unsigned short iDim = 0; iDim < nDim; iDim++) Vector[iDim] = 0.5* (GridVel_i[iDim] + GridVel_j[iDim]); @@ -313,10 +313,10 @@ void CSolver::SetGrid_Movement_Residual (CGeometry *geometry, CConfig *config) { const unsigned long Point = geometry->vertex[iMarker][iVertex]->GetNode(); // Solution at each edge point - double *Solution = node[Point]->GetSolution(); + su2double *Solution = node[Point]->GetSolution(); // Grid Velocity at each edge point - double *GridVel = geometry->node[Point]->GetGridVel(); + su2double *GridVel = geometry->node[Point]->GetGridVel(); // Summed normal components Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); @@ -340,8 +340,8 @@ void CSolver::SetAuxVar_Gradient_GG(CGeometry *geometry) { unsigned long Point = 0, iPoint = 0, jPoint = 0, iEdge, iVertex; unsigned short nDim = geometry->GetnDim(), iDim, iMarker; - double AuxVar_Vertex, AuxVar_i, AuxVar_j, AuxVar_Average; - double *Gradient, DualArea, Partial_Res, Grad_Val, *Normal; + su2double AuxVar_Vertex, AuxVar_i, AuxVar_j, AuxVar_Average; + su2double *Gradient, DualArea, Partial_Res, Grad_Val, *Normal; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) node[iPoint]->SetAuxVarGradientZero(); // Set Gradient to Zero @@ -389,11 +389,11 @@ void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, CConfig *config) { unsigned short iDim, jDim, iNeigh; unsigned short nDim = geometry->GetnDim(); unsigned long iPoint, jPoint; - double *Coord_i, *Coord_j, AuxVar_i, AuxVar_j, weight, r11, r12, r13, r22, r23, r23_a, + su2double *Coord_i, *Coord_j, AuxVar_i, AuxVar_j, weight, r11, r12, r13, r22, r23, r23_a, r23_b, r33, z11, z12, z13, z22, z23, z33, detR2, product; bool singular = false; - double *cvector = new double [nDim]; + su2double *cvector = new su2double [nDim]; /*--- Loop over points of the grid ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { @@ -507,7 +507,7 @@ void CSolver::SetAuxVar_Gradient_LS(CGeometry *geometry, CConfig *config) { void CSolver::SetSolution_Gradient_GG(CGeometry *geometry, CConfig *config) { unsigned long Point = 0, iPoint = 0, jPoint = 0, iEdge, iVertex; unsigned short iVar, iDim, iMarker; - double *Solution_Vertex, *Solution_i, *Solution_j, Solution_Average, **Gradient, DualArea, + su2double *Solution_Vertex, *Solution_i, *Solution_j, Solution_Average, **Gradient, DualArea, Partial_Res, Grad_Val, *Normal; /*--- Set Gradient to Zero ---*/ @@ -568,14 +568,14 @@ void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, CConfig *config) { unsigned short iDim, jDim, iVar, iNeigh; unsigned long iPoint, jPoint; - double *Coord_i, *Coord_j, *Solution_i, *Solution_j, + su2double *Coord_i, *Coord_j, *Solution_i, *Solution_j, r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, detR2, z11, z12, z13, z22, z23, z33, product; bool singular = false; - double **cvector = new double* [nVar]; + su2double **cvector = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; /*--- Loop over points of the grid ---*/ @@ -709,15 +709,15 @@ void CSolver::SetSolution_Gradient_LS(CGeometry *geometry, CConfig *config) { void CSolver::SetGridVel_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iDim, jDim, iVar, iNeigh; unsigned long iPoint, jPoint; - double *Coord_i, *Coord_j, *Solution_i, *Solution_j, Smatrix[3][3], + su2double *Coord_i, *Coord_j, *Solution_i, *Solution_j, Smatrix[3][3], r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, detR2, z11, z12, z13, z22, z23, z33, product; - double **cvector; + su2double **cvector; /*--- Note that all nVar entries in this routine have been changed to nDim ---*/ - cvector = new double* [nDim]; + cvector = new su2double* [nDim]; for (iVar = 0; iVar < nDim; iVar++) - cvector[iVar] = new double [nDim]; + cvector[iVar] = new su2double [nDim]; /*--- Loop over points of the grid ---*/ for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { @@ -819,13 +819,13 @@ void CSolver::SetAuxVar_Surface_Gradient(CGeometry *geometry, CConfig *config) { unsigned short iDim, jDim, iNeigh, iMarker, Boundary; unsigned short nDim = geometry->GetnDim(); unsigned long iPoint, jPoint, iVertex; - double *Coord_i, *Coord_j, AuxVar_i, AuxVar_j; - double **Smatrix, *cvector; + su2double *Coord_i, *Coord_j, AuxVar_i, AuxVar_j; + su2double **Smatrix, *cvector; - Smatrix = new double* [nDim]; - cvector = new double [nDim]; + Smatrix = new su2double* [nDim]; + cvector = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new double [nDim]; + Smatrix[iDim] = new su2double [nDim]; /*--- Loop over boundary markers to select those for Euler or NS walls ---*/ @@ -850,14 +850,14 @@ void CSolver::SetAuxVar_Surface_Gradient(CGeometry *geometry, CConfig *config) { /*--- Inizialization of variables ---*/ for (iDim = 0; iDim < nDim; iDim++) cvector[iDim] = 0.0; - double r11 = 0.0, r12 = 0.0, r13 = 0.0, r22 = 0.0, r23 = 0.0, r23_a = 0.0, r23_b = 0.0, r33 = 0.0; + su2double r11 = 0.0, r12 = 0.0, r13 = 0.0, r22 = 0.0, r23 = 0.0, r23_a = 0.0, r23_b = 0.0, r33 = 0.0; for (iNeigh = 0; iNeigh < geometry->node[iPoint]->GetnPoint(); iNeigh++) { jPoint = geometry->node[iPoint]->GetPoint(iNeigh); Coord_j = geometry->node[jPoint]->GetCoord(); AuxVar_j = node[jPoint]->GetAuxVar(); - double weight = 0; + su2double weight = 0; for (iDim = 0; iDim < nDim; iDim++) weight += (Coord_j[iDim]-Coord_i[iDim])*(Coord_j[iDim]-Coord_i[iDim]); @@ -888,15 +888,15 @@ void CSolver::SetAuxVar_Surface_Gradient(CGeometry *geometry, CConfig *config) { } /*--- S matrix := inv(R)*traspose(inv(R)) ---*/ if (nDim == 2) { - double detR2 = (r11*r22)*(r11*r22); + su2double detR2 = (r11*r22)*(r11*r22); Smatrix[0][0] = (r12*r12+r22*r22)/detR2; Smatrix[0][1] = -r11*r12/detR2; Smatrix[1][0] = Smatrix[0][1]; Smatrix[1][1] = r11*r11/detR2; } else { - double detR2 = (r11*r22*r33)*(r11*r22*r33); - double z11, z12, z13, z22, z23, z33; // aux vars + su2double detR2 = (r11*r22*r33)*(r11*r22*r33); + su2double z11, z12, z13, z22, z23, z33; // aux vars z11 = r22*r33; z12 = -r12*r33; z13 = r12*r23-r13*r22; @@ -914,7 +914,7 @@ void CSolver::SetAuxVar_Surface_Gradient(CGeometry *geometry, CConfig *config) { Smatrix[2][2] = (z33*z33)/detR2; } /*--- Computation of the gradient: S*c ---*/ - double product; + su2double product; for (iDim = 0; iDim < nDim; iDim++) { product = 0.0; for (jDim = 0; jDim < nDim; jDim++) @@ -940,7 +940,7 @@ void CSolver::SetSolution_Limiter(CGeometry *geometry, CConfig *config) { unsigned long iEdge, iPoint, jPoint; unsigned short iVar, iDim; - double **Gradient_i, **Gradient_j, *Coord_i, *Coord_j, *Solution_i, *Solution_j, + su2double **Gradient_i, **Gradient_j, *Coord_i, *Coord_j, *Solution_i, *Solution_j, dave, LimK, eps1, eps2, dm, dp, du, ds, limiter, SharpEdge_Distance; /*--- Initialize solution max and solution min in the entire domain --*/ @@ -1192,18 +1192,18 @@ void CSolver::SetSolution_Limiter(CGeometry *geometry, CConfig *config) { } -void CSolver::SetPressureLaplacian(CGeometry *geometry, double *PressureLaplacian) { +void CSolver::SetPressureLaplacian(CGeometry *geometry, su2double *PressureLaplacian) { unsigned long Point = 0, iPoint = 0, jPoint = 0, iEdge, iVertex; unsigned short iMarker, iVar; - double DualArea, Partial_Res, *Normal; - double **UxVar_Gradient, **UyVar_Gradient; + su2double DualArea, Partial_Res, *Normal; + su2double **UxVar_Gradient, **UyVar_Gradient; - UxVar_Gradient = new double* [geometry->GetnPoint()]; - UyVar_Gradient = new double* [geometry->GetnPoint()]; + UxVar_Gradient = new su2double* [geometry->GetnPoint()]; + UyVar_Gradient = new su2double* [geometry->GetnPoint()]; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - UxVar_Gradient[iPoint] = new double [2]; - UyVar_Gradient[iPoint] = new double [2]; + UxVar_Gradient[iPoint] = new su2double [2]; + UyVar_Gradient[iPoint] = new su2double [2]; } for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) @@ -1274,10 +1274,10 @@ void CSolver::SetPressureLaplacian(CGeometry *geometry, double *PressureLaplacia } -void CSolver::Gauss_Elimination(double** A, double* rhs, unsigned short nVar) { +void CSolver::Gauss_Elimination(su2double** A, su2double* rhs, unsigned short nVar) { short iVar, jVar, kVar; - double weight, aux; + su2double weight, aux; if (nVar == 1) rhs[0] /= A[0][0]; @@ -1312,9 +1312,9 @@ void CSolver::Aeroelastic(CSurfaceMovement *surface_movement, CGeometry *geometr /*--- Variables used for Aeroelastic case ---*/ - double Cl, Cd, Cn, Ct, Cm, Cn_rot; - double Alpha = config->GetAoA()*PI_NUMBER/180.0; - double structural_solution[4]; //contains solution of typical section wing model. + su2double Cl, Cd, Cn, Ct, Cm, Cn_rot; + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double structural_solution[4]; //contains solution of typical section wing model. unsigned short iMarker, iMarker_Monitoring, Monitoring; string Marker_Tag, Monitoring_Tag; @@ -1347,7 +1347,7 @@ void CSolver::Aeroelastic(CSurfaceMovement *surface_movement, CGeometry *geometr is only correct for the airfoil that starts at the 0 degree position --- */ if (config->GetKind_GridMovement(ZONE_0) == AEROELASTIC_RIGID_MOTION) { - double Omega, dt, psi; + su2double Omega, dt, psi; dt = config->GetDelta_UnstTimeND(); Omega = (config->GetRotation_Rate_Z(ZONE_0)/config->GetOmega_Ref()); psi = Omega*(dt*ExtIter); @@ -1391,26 +1391,26 @@ void CSolver::Aeroelastic(CSurfaceMovement *surface_movement, CGeometry *geometr } -void CSolver::SetUpTypicalSectionWingModel(double (&PHI)[2][2], double (&lambda)[2], CConfig *config) { +void CSolver::SetUpTypicalSectionWingModel(su2double (&PHI)[2][2], su2double (&lambda)[2], CConfig *config) { /*--- Retrieve values from the config file ---*/ - double w_h = config->GetAeroelastic_Frequency_Plunge(); - double w_a = config->GetAeroelastic_Frequency_Pitch(); + su2double w_h = config->GetAeroelastic_Frequency_Plunge(); + su2double w_a = config->GetAeroelastic_Frequency_Pitch(); /*--- Geometrical Parameters */ - double x_a = 1.8; - double r_a2 = 3.48; + su2double x_a = 1.8; + su2double r_a2 = 3.48; // Mass Matrix - // double M[2][2] = {{1,x_a},{x_a, r_a2}}; + // su2double M[2][2] = {{1,x_a},{x_a, r_a2}}; // Stiffness Matrix - double K[2][2] = {{(w_h/w_a)*(w_h/w_a),0},{0, r_a2}}; + su2double K[2][2] = {{(w_h/w_a)*(w_h/w_a),0},{0, r_a2}}; /* Eigenvector and Eigenvalue Matrices of the Generalized EigenValue Problem. */ - double LAMBDA[2][2]; - double y; + su2double LAMBDA[2][2]; + su2double y; y = sqrt(r_a2*pow(w_a,4) - 2*r_a2*pow(w_a,2)*pow(w_h,2) + r_a2*pow(w_h,4) + 4*pow(w_a,2)*pow(w_h,2)*pow(x_a,2)); PHI[0][0] = (sqrt(r_a2)*y + r_a2*pow(w_a,2) - r_a2*pow(w_h,2))/(2*pow(w_h,2)*x_a); @@ -1424,7 +1424,7 @@ void CSolver::SetUpTypicalSectionWingModel(double (&PHI)[2][2], double (&lambda) LAMBDA[1][1] = (r_a2*pow(w_a,2) + r_a2*pow(w_h,2) + sqrt(r_a2)*y) / (2*pow(w_a,2)*(r_a2-pow(x_a,2))); /* Nondimesionalize the Eigenvectors such that PHI'*M*PHI = I and PHI'*K*PHI = LAMBDA */ - double temp1[2][2], temp2[2][2]; + su2double temp1[2][2], temp2[2][2]; for (int i=0; i<2; i++) { for (int j=0; j<2; j++) { temp1[i][j] = 0; @@ -1456,7 +1456,7 @@ void CSolver::SetUpTypicalSectionWingModel(double (&PHI)[2][2], double (&lambda) } -void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, double Cl, double Cm, CConfig *config, unsigned short iMarker, double (&displacements)[4]) { +void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, su2double Cl, su2double Cm, CConfig *config, unsigned short iMarker, su2double (&displacements)[4]) { /*--- The aeroelastic model solved in this routine is the typical section wing model The details of the implementation can be found in J.J. Alonso "Fully-Implicit Time-Marching Aeroelastic Solutions" 1994. @@ -1478,55 +1478,55 @@ void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, double Cl, doubl } /*--- Retrieve values from the config file ---*/ - double w_a = config->GetAeroelastic_Frequency_Pitch(); - double dt = config->GetDelta_UnstTime(); + su2double w_a = config->GetAeroelastic_Frequency_Pitch(); + su2double dt = config->GetDelta_UnstTime(); dt = dt*w_a; //Non-dimensionalize the structural time. - double Lref = config->GetLength_Ref(); - double b = Lref/2.0; // airfoil semichord - double Density_Inf = config->GetDensity_FreeStreamND(); - double P_Inf = config->GetPressure_FreeStreamND(); - double Mach_Inf = config->GetMach(); - double gamma = config->GetGamma(); + su2double Lref = config->GetLength_Ref(); + su2double b = Lref/2.0; // airfoil semichord + su2double Density_Inf = config->GetDensity_FreeStreamND(); + su2double P_Inf = config->GetPressure_FreeStreamND(); + su2double Mach_Inf = config->GetMach(); + su2double gamma = config->GetGamma(); /*--- airfoil mass ratio ---*/ - double mu = 60; + su2double mu = 60; /*--- Structural Equation damping ---*/ - double xi[2] = {0.0,0.0}; + su2double xi[2] = {0.0,0.0}; /*--- Flutter Speep Index ---*/ - double Vf = (Mach_Inf*sqrt(gamma*P_Inf/Density_Inf))/(b*w_a*sqrt(mu)); + su2double Vf = (Mach_Inf*sqrt(gamma*P_Inf/Density_Inf))/(b*w_a*sqrt(mu)); /*--- Eigenvectors and Eigenvalues of the Generalized EigenValue Problem. ---*/ - double PHI[2][2]; // generalized eigenvectors. - double w[2]; //generalized eigenvalues. + su2double PHI[2][2]; // generalized eigenvectors. + su2double w[2]; //generalized eigenvalues. SetUpTypicalSectionWingModel(PHI, w, config); /*--- Solving the Decoupled Aeroelastic Problem with second order time discretization Eq (9) ---*/ /*--- Solution variables description. //x[j][i], j-entry, i-equation. // Time (n+1)->np1, n->n, (n-1)->n1 ---*/ // This variable gets overwritten below. I'm just using this to initialize it. - vector > x_np1 = config->GetAeroelastic_np1(iMarker); + vector > x_np1 = config->GetAeroelastic_np1(iMarker); /*--- Values from previous movement of spring at true time step n+1 We use this values because we are solving for delta changes not absolute changes ---*/ - vector > x_np1_old = config->GetAeroelastic_np1(iMarker); + vector > x_np1_old = config->GetAeroelastic_np1(iMarker); /*--- Values at previous timesteps. ---*/ - vector > x_n = config->GetAeroelastic_n(iMarker); - vector > x_n1 = config->GetAeroelastic_n1(iMarker); + vector > x_n = config->GetAeroelastic_n(iMarker); + vector > x_n1 = config->GetAeroelastic_n1(iMarker); /*--- Set up of variables used to solve the structural problem. ---*/ - double Q[2]; - double A_inv[2][2]; - double detA; - double S1, S2; - double RHS[2]; - double eta[2]; - double eta_dot[2]; + su2double Q[2]; + su2double A_inv[2][2]; + su2double detA; + su2double S1, S2; + su2double RHS[2]; + su2double eta[2]; + su2double eta_dot[2]; /*--- Forcing Term ---*/ - double cons = Vf*Vf/PI_NUMBER; - double F[2] = {cons*(-Cl), cons*(2*Cm)}; + su2double cons = Vf*Vf/PI_NUMBER; + su2double F[2] = {cons*(-Cl), cons*(2*Cm)}; for (int i=0; i<2; i++) { Q[i] = 0; @@ -1561,8 +1561,8 @@ void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, double Cl, doubl } /*--- Transform back from the generalized coordinates to get the actual displacements in plunge and pitch ---*/ - double q[2]; - double q_dot[2]; + su2double q[2]; + su2double q_dot[2]; for (int i=0; i<2; i++) { q[i] = 0; q_dot[i] = 0; @@ -1572,11 +1572,11 @@ void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, double Cl, doubl } } - double dh = b*q[0]; - double dalpha = q[1]; + su2double dh = b*q[0]; + su2double dalpha = q[1]; - double h_dot = w_a*b*q_dot[0]; - double alpha_dot = w_a*q_dot[1]; + su2double h_dot = w_a*b*q_dot[0]; + su2double alpha_dot = w_a*q_dot[1]; /*--- Set the solution of the structural equations ---*/ displacements[0] = dh; @@ -1585,7 +1585,7 @@ void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, double Cl, doubl displacements[3] = alpha_dot; /*--- Calculate the total plunge and total pitch displacements for the unsteady step by summing the displacement at each sudo time step ---*/ - double pitch, plunge; + su2double pitch, plunge; pitch = config->GetAeroelastic_pitch(iMarker); plunge = config->GetAeroelastic_plunge(iMarker); @@ -1640,7 +1640,7 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - filename = config->GetUnsteady_FileName(filename, int(iExtIter)); + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file ---*/ @@ -1696,7 +1696,7 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned restart file (without including the PointID) ---*/ nVar = config->fields.size() - 1; - double Solution[nVar]; + su2double Solution[nVar]; /*--- Read all lines in the restart file ---*/ @@ -1751,9 +1751,9 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned void CBaselineSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - double rotMatrix[3][3], *transl, *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL, *Solution = NULL; + su2double rotMatrix[3][3], *transl, *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL, *Solution = NULL; - Solution = new double[nVar]; + Solution = new su2double[nVar]; #ifdef HAVE_MPI int send_to, receive_from; @@ -1779,8 +1779,8 @@ void CBaselineSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new double [nBufferR_Vector]; - Buffer_Send_U = new double[nBufferS_Vector]; + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; /*--- Copy the solution that should be sended ---*/ @@ -1794,7 +1794,7 @@ void CBaselineSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { /*--- Send/Receive information using Sendrecv ---*/ - MPI_Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); #else @@ -1933,7 +1933,7 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - filename = config->GetUnsteady_FileName(filename, int(iExtIter)); + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file ---*/ @@ -1954,7 +1954,7 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- Set the number of variables, one per field in the restart file (without including the PointID) ---*/ nVar = config->fields.size() - 1; - double Solution[nVar]; + su2double Solution[nVar]; /*--- In case this is a parallel simulation, we need to perform the Global2Local index transformation first. ---*/ diff --git a/SU2_CFD/src/transport_model.cpp b/SU2_CFD/src/transport_model.cpp index 03c6ab1c45d..63f3ecd95dc 100644 --- a/SU2_CFD/src/transport_model.cpp +++ b/SU2_CFD/src/transport_model.cpp @@ -49,7 +49,7 @@ CViscosityModel::~CViscosityModel(void) { } CConstantViscosity::CConstantViscosity(void) : CViscosityModel() { } -CConstantViscosity::CConstantViscosity(double mu_const) : CViscosityModel() { +CConstantViscosity::CConstantViscosity(su2double mu_const) : CViscosityModel() { /*--- Attributes initialization ---*/ @@ -71,7 +71,7 @@ CSutherland::CSutherland(void) : CViscosityModel() { } -CSutherland::CSutherland(double mu_ref, double t_ref, double s) : CViscosityModel() { +CSutherland::CSutherland(su2double mu_ref, su2double t_ref, su2double s) : CViscosityModel() { Mu_ref = mu_ref; T_ref = t_ref; @@ -81,13 +81,13 @@ CSutherland::CSutherland(double mu_ref, double t_ref, double s) : CViscosityMode CSutherland::~CSutherland(void) { } -void CSutherland::SetViscosity(double T, double rho) { +void CSutherland::SetViscosity(su2double T, su2double rho) { Mu = Mu_ref*pow((T/T_ref),(3.0/2.0))*((T_ref + S)/(T + S)); } -void CSutherland::SetDerViscosity(double T, double rho) { +void CSutherland::SetDerViscosity(su2double T, su2double rho) { dmudrho_T = 0.0; dmudT_rho = Mu_ref*( (3.0/2.0)*pow( (T/T_ref),(1.0/2.0) )*( (T_ref + S)/(T + S) ) @@ -114,7 +114,7 @@ CConductivityModel::~CConductivityModel(void) { } CConstantConductivity::CConstantConductivity(void) : CConductivityModel() { } -CConstantConductivity::CConstantConductivity(double kt_const) : CConductivityModel() { +CConstantConductivity::CConstantConductivity(su2double kt_const) : CConductivityModel() { /*--- Attributes initialization ---*/ @@ -129,7 +129,7 @@ CConstantConductivity::~CConstantConductivity(void) { } CConstantPrandtl::CConstantPrandtl(void) : CConductivityModel() { } -CConstantPrandtl::CConstantPrandtl(double pr_const) : CConductivityModel() { +CConstantPrandtl::CConstantPrandtl(su2double pr_const) : CConductivityModel() { /*--- Attributes initialization ---*/ @@ -137,13 +137,13 @@ CConstantPrandtl::CConstantPrandtl(double pr_const) : CConductivityModel() { } -void CConstantPrandtl::SetConductivity(double T, double rho, double mu, double cp) { +void CConstantPrandtl::SetConductivity(su2double T, su2double rho, su2double mu, su2double cp) { Kt = mu*cp/Pr_const; } -void CConstantPrandtl::SetDerConductivity(double T, double rho, double dmudrho_T, double dmudT_rho, double cp) { +void CConstantPrandtl::SetDerConductivity(su2double T, su2double rho, su2double dmudrho_T, su2double dmudT_rho, su2double cp) { dktdrho_T = dmudrho_T*cp/Pr_const; dktdT_rho = dmudT_rho*cp/Pr_const; diff --git a/SU2_CFD/src/variable_adjoint_levelset.cpp b/SU2_CFD/src/variable_adjoint_levelset.cpp index 0f5f39bab12..bb9b016cd99 100644 --- a/SU2_CFD/src/variable_adjoint_levelset.cpp +++ b/SU2_CFD/src/variable_adjoint_levelset.cpp @@ -39,15 +39,15 @@ CAdjLevelSetVariable::CAdjLevelSetVariable(unsigned short val_nDim, unsigned sho /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; /*--- Allocate limiter (upwind)---*/ - if (config->GetSpatialOrder() == SECOND_ORDER_LIMITER) Limiter = new double [nVar]; + if (config->GetSpatialOrder() == SECOND_ORDER_LIMITER) Limiter = new su2double [nVar]; } -CAdjLevelSetVariable::CAdjLevelSetVariable(double val_levelset, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CAdjLevelSetVariable::CAdjLevelSetVariable(su2double val_levelset, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || @@ -55,11 +55,11 @@ CAdjLevelSetVariable::CAdjLevelSetVariable(double val_levelset, unsigned short v /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; /*--- Allocate limiter (upwind)---*/ - if (config->GetSpatialOrder() == SECOND_ORDER_LIMITER) Limiter = new double [nVar]; + if (config->GetSpatialOrder() == SECOND_ORDER_LIMITER) Limiter = new su2double [nVar]; /*--- Solution and old solution initialization ---*/ diff --git a/SU2_CFD/src/variable_adjoint_mean.cpp b/SU2_CFD/src/variable_adjoint_mean.cpp index e8da8cfc19e..c08603dbdee 100644 --- a/SU2_CFD/src/variable_adjoint_mean.cpp +++ b/SU2_CFD/src/variable_adjoint_mean.cpp @@ -42,7 +42,7 @@ CAdjEulerVariable::CAdjEulerVariable(void) : CVariable() { } -CAdjEulerVariable::CAdjEulerVariable(double val_psirho, double *val_phi, double val_psie, unsigned short val_nDim, +CAdjEulerVariable::CAdjEulerVariable(su2double val_psirho, su2double *val_phi, su2double val_psie, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, iMesh, nMGSmooth = 0; @@ -60,7 +60,7 @@ CAdjEulerVariable::CAdjEulerVariable(double val_psirho, double *val_phi, double TS_Source = NULL; /*--- Allocate residual structures ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; @@ -71,17 +71,17 @@ CAdjEulerVariable::CAdjEulerVariable(double val_psirho, double *val_phi, double nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if (nMGSmooth > 0) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- Allocate undivided laplacian (centered) and limiter (upwind)---*/ if (config->GetKind_ConvNumScheme_AdjFlow() == SPACE_CENTERED) - Undivided_Laplacian = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; if (config->GetKind_ConvNumScheme_AdjFlow() == SPACE_UPWIND) { - Limiter = new double [nVar]; - Solution_Max = new double [nVar]; - Solution_Min = new double [nVar]; + Limiter = new su2double [nVar]; + Solution_Max = new su2double [nVar]; + Solution_Min = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Limiter[iVar] = 0.0; Solution_Max[iVar] = 0.0; @@ -131,28 +131,28 @@ CAdjEulerVariable::CAdjEulerVariable(double val_psirho, double *val_phi, double } /*--- Allocate auxiliar vector for sensitivity computation ---*/ - Grad_AuxVar = new double [nDim]; + Grad_AuxVar = new su2double [nDim]; /*--- Allocate and initialize projection vector for wall boundary condition ---*/ - ForceProj_Vector = new double [nDim]; + ForceProj_Vector = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = 0.0; /*--- Allocate and initialize interior boundary jump vector for near field boundary condition ---*/ - IntBoundary_Jump = new double [nVar]; + IntBoundary_Jump = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) IntBoundary_Jump[iVar] = 0.0; /*--- Allocate space for the time spectral source terms ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - TS_Source = new double[nVar]; + TS_Source = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) TS_Source[iVar] = 0.0; } } -CAdjEulerVariable::CAdjEulerVariable(double *val_solution, unsigned short val_nDim, +CAdjEulerVariable::CAdjEulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, iMesh, nMGSmooth = 0; @@ -167,7 +167,7 @@ CAdjEulerVariable::CAdjEulerVariable(double *val_solution, unsigned short val_nD TS_Source = NULL; /*--- Allocate residual structures ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; @@ -178,17 +178,17 @@ CAdjEulerVariable::CAdjEulerVariable(double *val_solution, unsigned short val_nD nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if (nMGSmooth > 0) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- Allocate undivided laplacian (centered) and limiter (upwind)---*/ if (config->GetKind_ConvNumScheme_AdjFlow() == SPACE_CENTERED) - Undivided_Laplacian = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; if (config->GetKind_ConvNumScheme_AdjFlow() == SPACE_UPWIND) { - Limiter = new double [nVar]; - Solution_Max = new double [nVar]; - Solution_Min = new double [nVar]; + Limiter = new su2double [nVar]; + Solution_Max = new su2double [nVar]; + Solution_Min = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Limiter[iVar] = 0.0; Solution_Max[iVar] = 0.0; @@ -204,8 +204,8 @@ CAdjEulerVariable::CAdjEulerVariable(double *val_solution, unsigned short val_nD /*--- Allocate and initializate solution for dual time strategy ---*/ if (dual_time) { - Solution_time_n = new double [nVar]; - Solution_time_n1 = new double [nVar]; + Solution_time_n = new su2double [nVar]; + Solution_time_n1 = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Solution_time_n[iVar] = val_solution[iVar]; @@ -214,21 +214,21 @@ CAdjEulerVariable::CAdjEulerVariable(double *val_solution, unsigned short val_nD } /*--- Allocate auxiliar vector for sensitivity computation ---*/ - Grad_AuxVar = new double [nDim]; + Grad_AuxVar = new su2double [nDim]; /*--- Allocate and initializate projection vector for wall boundary condition ---*/ - ForceProj_Vector = new double [nDim]; + ForceProj_Vector = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = 0.0; /*--- Allocate and initializate interior boundary jump vector for near field boundary condition ---*/ - IntBoundary_Jump = new double [nVar]; + IntBoundary_Jump = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) IntBoundary_Jump[iVar] = 0.0; /*--- Allocate space for the time spectral source terms ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - TS_Source = new double[nVar]; + TS_Source = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) TS_Source[iVar] = 0.0; } @@ -245,11 +245,11 @@ CAdjEulerVariable::~CAdjEulerVariable(void) { } -bool CAdjEulerVariable::SetPrimVar_Compressible(double SharpEdge_Distance, bool check, CConfig *config) { +bool CAdjEulerVariable::SetPrimVar_Compressible(su2double SharpEdge_Distance, bool check, CConfig *config) { unsigned short iVar; bool check_dens = false, RightVol = true; - double adj_limit = config->GetAdjointLimit(); + su2double adj_limit = config->GetAdjointLimit(); check_dens = (fabs(Solution[0]) > adj_limit); @@ -270,11 +270,11 @@ bool CAdjEulerVariable::SetPrimVar_Compressible(double SharpEdge_Distance, bool } -bool CAdjEulerVariable::SetPrimVar_Incompressible(double SharpEdge_Distance, bool check, CConfig *config) { +bool CAdjEulerVariable::SetPrimVar_Incompressible(su2double SharpEdge_Distance, bool check, CConfig *config) { unsigned short iVar; bool check_press = false, RightVol = true; - double adj_limit = config->GetAdjointLimit(); + su2double adj_limit = config->GetAdjointLimit(); check_press = (fabs(Solution[0]) > adj_limit); @@ -295,12 +295,12 @@ bool CAdjEulerVariable::SetPrimVar_Incompressible(double SharpEdge_Distance, boo } -bool CAdjEulerVariable::SetPrimVar_FreeSurface(double SharpEdge_Distance, bool check, CConfig *config) { +bool CAdjEulerVariable::SetPrimVar_FreeSurface(su2double SharpEdge_Distance, bool check, CConfig *config) { unsigned short iVar; bool check_press = false, RightVol = true; - double adj_limit = config->GetAdjointLimit(); - double dist_limit = config->GetLimiterCoeff()*config->GetRefElemLength()*config->GetSharpEdgesCoeff(); + su2double adj_limit = config->GetAdjointLimit(); + su2double dist_limit = config->GetLimiterCoeff()*config->GetRefElemLength()*config->GetSharpEdgesCoeff(); if (SharpEdge_Distance < dist_limit) { @@ -325,12 +325,12 @@ bool CAdjEulerVariable::SetPrimVar_FreeSurface(double SharpEdge_Distance, bool c CAdjNSVariable::CAdjNSVariable(void) : CAdjEulerVariable() { } -CAdjNSVariable::CAdjNSVariable(double *val_solution, unsigned short val_nDim, +CAdjNSVariable::CAdjNSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CAdjEulerVariable(val_solution, val_nDim, val_nvar, config) { } -CAdjNSVariable::CAdjNSVariable(double val_psirho, double *val_phi, double val_psie, +CAdjNSVariable::CAdjNSVariable(su2double val_psirho, su2double *val_phi, su2double val_psie, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CAdjEulerVariable(val_psirho, val_phi, val_psie, val_nDim, val_nvar, config) { } diff --git a/SU2_CFD/src/variable_adjoint_tne2.cpp b/SU2_CFD/src/variable_adjoint_tne2.cpp index 1376fa9b548..e0a609b88a2 100644 --- a/SU2_CFD/src/variable_adjoint_tne2.cpp +++ b/SU2_CFD/src/variable_adjoint_tne2.cpp @@ -39,10 +39,10 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(void) : CVariable() { } -CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_psirho, - double *val_phi, - double val_psie, - double val_psieve, +CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(su2double *val_psirho, + su2double *val_phi, + su2double val_psie, + su2double val_psieve, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, @@ -60,7 +60,7 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_psirho, ForceProj_Vector = NULL; /*--- Allocate residual structures ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; } @@ -70,19 +70,19 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_psirho, nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if (nMGSmooth > 0) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- Allocate undivided laplacian ---*/ if (config->GetKind_ConvNumScheme_AdjTNE2() == SPACE_CENTERED) - Undivided_Laplacian = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; /*--- Allocate limiter ---*/ if (config->GetKind_ConvNumScheme_AdjTNE2() == SPACE_UPWIND) { - Limiter = new double [nVar]; - Solution_Max = new double [nVar]; - Solution_Min = new double [nVar]; + Limiter = new su2double [nVar]; + Solution_Max = new su2double [nVar]; + Solution_Min = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Limiter[iVar] = 0.0; Solution_Max[iVar] = 0.0; @@ -105,16 +105,16 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_psirho, Solution_Old[nSpecies+nDim+1] = val_psieve; /*--- Allocate auxiliar vector for sensitivity computation ---*/ - Grad_AuxVar = new double [nDim]; + Grad_AuxVar = new su2double [nDim]; /*--- Allocate and initialize projection vector for wall boundary condition ---*/ - ForceProj_Vector = new double [nDim]; + ForceProj_Vector = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = 0.0; } -CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_solution, +CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { @@ -127,7 +127,7 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_solution, ForceProj_Vector = NULL; /*--- Allocate residual structures ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; @@ -138,17 +138,17 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_solution, nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if (nMGSmooth > 0) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- Allocate undivided laplacian (centered) and limiter (upwind)---*/ if (config->GetKind_ConvNumScheme_AdjTNE2() == SPACE_CENTERED) - Undivided_Laplacian = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; if (config->GetKind_ConvNumScheme_AdjTNE2() == SPACE_UPWIND) { - Limiter = new double [nVar]; - Solution_Max = new double [nVar]; - Solution_Min = new double [nVar]; + Limiter = new su2double [nVar]; + Solution_Max = new su2double [nVar]; + Solution_Min = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Limiter[iVar] = 0.0; Solution_Max[iVar] = 0.0; @@ -164,8 +164,8 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_solution, /*--- Allocate and initializate solution for dual time strategy ---*/ if (dual_time) { - Solution_time_n = new double [nVar]; - Solution_time_n1 = new double [nVar]; + Solution_time_n = new su2double [nVar]; + Solution_time_n1 = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Solution_time_n[iVar] = val_solution[iVar]; @@ -174,10 +174,10 @@ CAdjTNE2EulerVariable::CAdjTNE2EulerVariable(double *val_solution, } /*--- Allocate auxiliar vector for sensitivity computation ---*/ - Grad_AuxVar = new double [nDim]; + Grad_AuxVar = new su2double [nDim]; /*--- Allocate and initializate projection vector for wall boundary condition ---*/ - ForceProj_Vector = new double [nDim]; + ForceProj_Vector = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = 0.0; @@ -190,13 +190,13 @@ CAdjTNE2EulerVariable::~CAdjTNE2EulerVariable(void) { } -bool CAdjTNE2EulerVariable::SetPrimVar_Compressible(double SharpEdge_Distance, +bool CAdjTNE2EulerVariable::SetPrimVar_Compressible(su2double SharpEdge_Distance, bool check, CConfig *config) { unsigned short iVar; bool check_dens = false, RightVol = true; - double adj_limit = config->GetAdjointLimit(); + su2double adj_limit = config->GetAdjointLimit(); check_dens = (fabs(Solution[0]) > adj_limit); @@ -219,10 +219,10 @@ bool CAdjTNE2EulerVariable::SetPrimVar_Compressible(double SharpEdge_Distance, CAdjTNE2NSVariable::CAdjTNE2NSVariable(void) : CAdjTNE2EulerVariable() { } -CAdjTNE2NSVariable::CAdjTNE2NSVariable(double *val_psirho, - double *val_phi, - double val_psie, - double val_psieve, +CAdjTNE2NSVariable::CAdjTNE2NSVariable(su2double *val_psirho, + su2double *val_phi, + su2double val_psie, + su2double val_psieve, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CAdjTNE2EulerVariable(val_psirho, @@ -235,7 +235,7 @@ CAdjTNE2NSVariable::CAdjTNE2NSVariable(double *val_psirho, } -CAdjTNE2NSVariable::CAdjTNE2NSVariable(double *val_solution, +CAdjTNE2NSVariable::CAdjTNE2NSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CAdjTNE2EulerVariable(val_solution, diff --git a/SU2_CFD/src/variable_adjoint_turbulent.cpp b/SU2_CFD/src/variable_adjoint_turbulent.cpp index e45637326da..e4aaf3fee6a 100644 --- a/SU2_CFD/src/variable_adjoint_turbulent.cpp +++ b/SU2_CFD/src/variable_adjoint_turbulent.cpp @@ -42,7 +42,7 @@ CAdjTurbVariable::CAdjTurbVariable(void) : CVariable() { } -CAdjTurbVariable::CAdjTurbVariable(double val_psinu_inf, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { +CAdjTurbVariable::CAdjTurbVariable(su2double val_psinu_inf, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { /*--- Array initialization ---*/ @@ -58,9 +58,9 @@ CAdjTurbVariable::CAdjTurbVariable(double val_psinu_inf, unsigned short val_nDim Solution_Old[iVar] = val_psinu_inf; } - Residual_Old = new double [nVar]; + Residual_Old = new su2double [nVar]; - if (config->GetSpatialOrder() == SECOND_ORDER_LIMITER) Limiter = new double [nVar]; + if (config->GetSpatialOrder() == SECOND_ORDER_LIMITER) Limiter = new su2double [nVar]; } diff --git a/SU2_CFD/src/variable_direct_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp index 7fedf2496e3..7f712f49128 100644 --- a/SU2_CFD/src/variable_direct_elasticity.cpp +++ b/SU2_CFD/src/variable_direct_elasticity.cpp @@ -33,14 +33,14 @@ CFEAVariable::CFEAVariable(void) : CVariable() { } -CFEAVariable::CFEAVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CFEAVariable::CFEAVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, jDim; dynamicFEA = (config->GetDynamic_Analysis() == DYNAMIC); /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; /*--- Initialization of variables ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -51,13 +51,13 @@ CFEAVariable::CFEAVariable(double *val_fea, unsigned short val_nDim, unsigned sh if (dynamicFEA){ /*--- Allocate solution structures ---*/ - Solution_Pred = new double [nVar]; - Solution_Pred_Old = new double [nVar]; - Solution_time_n = new double [nVar]; - Solution_Vel = new double [nVar]; - Solution_Vel_time_n = new double [nVar]; - Solution_Accel = new double [nVar]; - Solution_Accel_time_n = new double [nVar]; + Solution_Pred = new su2double [nVar]; + Solution_Pred_Old = new su2double [nVar]; + Solution_time_n = new su2double [nVar]; + Solution_Vel = new su2double [nVar]; + Solution_Vel_time_n = new su2double [nVar]; + Solution_Accel = new su2double [nVar]; + Solution_Accel_time_n = new su2double [nVar]; /*--- Initialization of variables for dynamic problem ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -74,9 +74,9 @@ CFEAVariable::CFEAVariable(double *val_fea, unsigned short val_nDim, unsigned sh /*--- Allocate stress tensor ---*/ - Stress = new double* [nDim]; + Stress = new su2double* [nDim]; for (iDim = 0; iDim < nDim; iDim++) - Stress[iDim] = new double [nDim]; + Stress[iDim] = new su2double [nDim]; /*--- Initialize stress tensor---*/ for (iDim = 0; iDim < nDim; iDim++){ @@ -117,21 +117,21 @@ void CFEAVariable::SetSolution_time_n(void) { } -void CFEAVariable::SetSolution_time_n(double *val_solution_time_n) { +void CFEAVariable::SetSolution_time_n(su2double *val_solution_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; } -void CFEAVariable::SetSolution_Vel(double *val_solution_vel) { +void CFEAVariable::SetSolution_Vel(su2double *val_solution_vel) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel[iVar] = val_solution_vel[iVar]; } -void CFEAVariable::SetSolution_Vel_time_n(double *val_solution_vel_time_n) { +void CFEAVariable::SetSolution_Vel_time_n(su2double *val_solution_vel_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = val_solution_vel_time_n[iVar]; @@ -145,14 +145,14 @@ void CFEAVariable::SetSolution_Vel_time_n(void) { } -void CFEAVariable::SetSolution_Accel(double *val_solution_accel) { +void CFEAVariable::SetSolution_Accel(su2double *val_solution_accel) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel[iVar] = val_solution_accel[iVar]; } -void CFEAVariable::SetSolution_Accel_time_n(double *val_solution_accel_time_n) { +void CFEAVariable::SetSolution_Accel_time_n(su2double *val_solution_accel_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; @@ -188,19 +188,19 @@ CFEABoundVariable::CFEABoundVariable(unsigned short val_nDim, unsigned short val unsigned short iVar, iDim, jDim; /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; /*--- Allocate stress tensor ---*/ if (nDim == 2){ - Traction = new double* [2*nDim]; + Traction = new su2double* [2*nDim]; for (iDim = 0; iDim < 2*nDim ; iDim++) - Traction[iDim] = new double [val_nElBound]; + Traction[iDim] = new su2double [val_nElBound]; } else if (nDim == 3){ /*--- Allocate stress tensor ---*/ - Traction = new double* [4*nDim]; + Traction = new su2double* [4*nDim]; for (iDim = 0; iDim < 4*nDim ; iDim++) - Traction[iDim] = new double [val_nElBound]; + Traction[iDim] = new su2double [val_nElBound]; } /*--- Initialize stress tensor ---*/ diff --git a/SU2_CFD/src/variable_direct_heat.cpp b/SU2_CFD/src/variable_direct_heat.cpp index 6fb4f212573..7e6cb79b391 100644 --- a/SU2_CFD/src/variable_direct_heat.cpp +++ b/SU2_CFD/src/variable_direct_heat.cpp @@ -38,7 +38,7 @@ CHeatVariable::CHeatVariable(void) : CVariable() { } -CHeatVariable::CHeatVariable(double *val_heat, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CHeatVariable::CHeatVariable(su2double *val_heat, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar; @@ -46,13 +46,13 @@ CHeatVariable::CHeatVariable(double *val_heat, unsigned short val_nDim, unsigned Solution_Direct = NULL; /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; /*--- Allocate direct solution container for adjoint problem ---*/ - Solution_Direct = new double[nVar]; + Solution_Direct = new su2double[nVar]; /*--- Allocate aux gradient vector ---*/ - Grad_AuxVar = new double [nDim]; + Grad_AuxVar = new su2double [nDim]; /*--- Initialization of variables ---*/ for (iVar = 0; iVar < nVar; iVar++) { diff --git a/SU2_CFD/src/variable_direct_mean.cpp b/SU2_CFD/src/variable_direct_mean.cpp index 0240e3b2afc..390d3aadb24 100644 --- a/SU2_CFD/src/variable_direct_mean.cpp +++ b/SU2_CFD/src/variable_direct_mean.cpp @@ -43,7 +43,7 @@ CEulerVariable::CEulerVariable(void) : CVariable() { } -CEulerVariable::CEulerVariable(double val_density, double *val_velocity, double val_energy, unsigned short val_nDim, +CEulerVariable::CEulerVariable(su2double val_density, su2double *val_velocity, su2double val_energy, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, iMesh, nMGSmooth = 0; @@ -76,7 +76,7 @@ CEulerVariable::CEulerVariable(double val_density, double *val_velocity, double /*--- Allocate residual structures ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; @@ -88,33 +88,33 @@ CEulerVariable::CEulerVariable(double val_density, double *val_velocity, double nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if ((nMGSmooth > 0) || low_fidelity || freesurface) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- Allocate undivided laplacian (centered) and limiter (upwind)---*/ if (config->GetKind_ConvNumScheme_Flow() == SPACE_CENTERED) { - Undivided_Laplacian = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; } /*--- Always allocate the slope limiter, and the auxiliar variables (check the logic - JST with 2nd order Turb model - ) ---*/ - Limiter_Primitive = new double [nPrimVarGrad]; + Limiter_Primitive = new su2double [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) Limiter_Primitive[iVar] = 0.0; - Limiter_Secondary = new double [nSecondaryVarGrad]; + Limiter_Secondary = new su2double [nSecondaryVarGrad]; for (iVar = 0; iVar < nSecondaryVarGrad; iVar++) Limiter_Secondary[iVar] = 0.0; - Limiter = new double [nVar]; + Limiter = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) Limiter[iVar] = 0.0; - Solution_Max = new double [nPrimVarGrad]; - Solution_Min = new double [nPrimVarGrad]; + Solution_Max = new su2double [nPrimVarGrad]; + Solution_Min = new su2double [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) { Solution_Max[iVar] = 0.0; Solution_Min[iVar] = 0.0; @@ -167,29 +167,29 @@ CEulerVariable::CEulerVariable(double val_density, double *val_velocity, double /*--- Allocate space for the time spectral source terms ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - TS_Source = new double[nVar]; + TS_Source = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) TS_Source[iVar] = 0.0; } /*--- Allocate vector for wind gust and wind gust derivative field ---*/ if (windgust) { - WindGust = new double [nDim]; - WindGustDer = new double [nDim+1]; + WindGust = new su2double [nDim]; + WindGustDer = new su2double [nDim+1]; } /*--- Allocate auxiliar vector for free surface source term ---*/ - if (freesurface) Grad_AuxVar = new double [nDim]; + if (freesurface) Grad_AuxVar = new su2double [nDim]; /*--- Incompressible flow, primitive variables nDim+3, (P, vx, vy, vz, rho, beta), FreeSurface Incompressible flow, primitive variables nDim+4, (P, vx, vy, vz, rho, beta, dist), Compressible flow, primitive variables nDim+5, (T, vx, vy, vz, P, rho, h, c) ---*/ - Primitive = new double [nPrimVar]; + Primitive = new su2double [nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; - Secondary = new double [nSecondaryVar]; + Secondary = new su2double [nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = 0.0; /*--- Incompressible flow, gradients primitive variables nDim+2, (P, vx, vy, vz, rho), @@ -197,23 +197,23 @@ CEulerVariable::CEulerVariable(double val_density, double *val_velocity, double Compressible flow, gradients primitive variables nDim+4, (T, vx, vy, vz, P, rho, h) We need P, and rho for running the adjoint problem ---*/ - Gradient_Primitive = new double* [nPrimVarGrad]; + Gradient_Primitive = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) { - Gradient_Primitive[iVar] = new double [nDim]; + Gradient_Primitive[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Gradient_Primitive[iVar][iDim] = 0.0; } - Gradient_Secondary = new double* [nSecondaryVarGrad]; + Gradient_Secondary = new su2double* [nSecondaryVarGrad]; for (iVar = 0; iVar < nSecondaryVarGrad; iVar++) { - Gradient_Secondary[iVar] = new double [nDim]; + Gradient_Secondary[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Gradient_Secondary[iVar][iDim] = 0.0; } } -CEulerVariable::CEulerVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { +CEulerVariable::CEulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, iMesh, nMGSmooth = 0; bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); @@ -242,7 +242,7 @@ CEulerVariable::CEulerVariable(double *val_solution, unsigned short val_nDim, un } /*--- Allocate residual structures ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; @@ -253,30 +253,30 @@ CEulerVariable::CEulerVariable(double *val_solution, unsigned short val_nDim, un nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if ((nMGSmooth > 0) || low_fidelity || freesurface) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- Allocate undivided laplacian (centered) and limiter (upwind)---*/ if (config->GetKind_ConvNumScheme_Flow() == SPACE_CENTERED) - Undivided_Laplacian = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; /*--- Always allocate the slope limiter, and the auxiliar variables (check the logic - JST with 2nd order Turb model - ) ---*/ - Limiter_Primitive = new double [nPrimVarGrad]; + Limiter_Primitive = new su2double [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) Limiter_Primitive[iVar] = 0.0; - Limiter_Secondary = new double [nSecondaryVarGrad]; + Limiter_Secondary = new su2double [nSecondaryVarGrad]; for (iVar = 0; iVar < nSecondaryVarGrad; iVar++) Limiter_Secondary[iVar] = 0.0; - Limiter = new double [nVar]; + Limiter = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) Limiter[iVar] = 0.0; - Solution_Max = new double [nPrimVarGrad]; - Solution_Min = new double [nPrimVarGrad]; + Solution_Max = new su2double [nPrimVarGrad]; + Solution_Min = new su2double [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) { Solution_Max[iVar] = 0.0; Solution_Min[iVar] = 0.0; @@ -290,8 +290,8 @@ CEulerVariable::CEulerVariable(double *val_solution, unsigned short val_nDim, un /*--- Allocate and initializate solution for dual time strategy ---*/ if (dual_time) { - Solution_time_n = new double [nVar]; - Solution_time_n1 = new double [nVar]; + Solution_time_n = new su2double [nVar]; + Solution_time_n1 = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Solution_time_n[iVar] = val_solution[iVar]; @@ -301,42 +301,42 @@ CEulerVariable::CEulerVariable(double *val_solution, unsigned short val_nDim, un /*--- Allocate space for the time spectral source terms ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - TS_Source = new double[nVar]; + TS_Source = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) TS_Source[iVar] = 0.0; } /*--- Allocate vector for wind gust and wind gust derivative field ---*/ if (windgust) { - WindGust = new double [nDim]; - WindGustDer = new double [nDim+1]; + WindGust = new su2double [nDim]; + WindGustDer = new su2double [nDim+1]; } /*--- Allocate auxiliar vector for free surface source term ---*/ - if (freesurface) Grad_AuxVar = new double [nDim]; + if (freesurface) Grad_AuxVar = new su2double [nDim]; /*--- Incompressible flow, primitive variables nDim+3, (P, vx, vy, vz, rho, beta), FreeSurface Incompressible flow, primitive variables nDim+4, (P, vx, vy, vz, rho, beta, dist), Compressible flow, primitive variables nDim+5, (T, vx, vy, vz, P, rho, h, c) ---*/ - Primitive = new double [nPrimVar]; + Primitive = new su2double [nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; - Secondary = new double [nSecondaryVar]; + Secondary = new su2double [nSecondaryVar]; for (iVar = 0; iVar < nSecondaryVar; iVar++) Secondary[iVar] = 0.0; /*--- Incompressible flow, gradients primitive variables nDim+2, (P, vx, vy, vz, rho), FreeSurface Incompressible flow, primitive variables nDim+4, (P, vx, vy, vz, rho, beta, dist), Compressible flow, gradients primitive variables nDim+4, (T, vx, vy, vz, P, rho, h) We need P, and rho for running the adjoint problem ---*/ - Gradient_Primitive = new double* [nPrimVarGrad]; + Gradient_Primitive = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) { - Gradient_Primitive[iVar] = new double [nDim]; + Gradient_Primitive[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Gradient_Primitive[iVar][iDim] = 0.0; } - Gradient_Secondary = new double* [nSecondaryVarGrad]; + Gradient_Secondary = new su2double* [nSecondaryVarGrad]; for (iVar = 0; iVar < nSecondaryVarGrad; iVar++) { - Gradient_Secondary[iVar] = new double [nDim]; + Gradient_Secondary[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Gradient_Secondary[iVar][iDim] = 0.0; } @@ -376,8 +376,8 @@ void CEulerVariable::SetGradient_SecondaryZero(unsigned short val_secondaryvar) Gradient_Secondary[iVar][iDim] = 0.0; } -double CEulerVariable::GetProjVel(double *val_vector) { - double ProjVel; +su2double CEulerVariable::GetProjVel(su2double *val_vector) { + su2double ProjVel; unsigned short iDim; ProjVel = 0.0; @@ -393,8 +393,8 @@ bool CEulerVariable::SetPrimVar_Compressible(CFluidModel *FluidModel) { SetVelocity(); // Computes velocity and velocity^2 - double density = GetDensity(); - double staticEnergy = GetEnergy()-0.5*Velocity2; + su2double density = GetDensity(); + su2double staticEnergy = GetEnergy()-0.5*Velocity2; /*--- Check will be moved inside fluid model plus error description strings ---*/ @@ -417,8 +417,8 @@ bool CEulerVariable::SetPrimVar_Compressible(CFluidModel *FluidModel) { /*--- Recompute the primitive variables ---*/ SetVelocity(); // Computes velocity and velocity^2 - double density = GetDensity(); - double staticEnergy = GetEnergy()-0.5*Velocity2; + su2double density = GetDensity(); + su2double staticEnergy = GetEnergy()-0.5*Velocity2; /* check will be moved inside fluid model plus error description strings*/ FluidModel->SetTDState_rhoe(density, staticEnergy); @@ -448,9 +448,9 @@ void CEulerVariable::SetSecondaryVar_Compressible(CFluidModel *FluidModel) { } -bool CEulerVariable::SetPrimVar_Incompressible(double Density_Inf, CConfig *config) { +bool CEulerVariable::SetPrimVar_Incompressible(su2double Density_Inf, CConfig *config) { - double ArtComp_Factor = config->GetArtComp_Factor(); + su2double ArtComp_Factor = config->GetArtComp_Factor(); /*--- Set the value of the density ---*/ @@ -474,10 +474,10 @@ bool CEulerVariable::SetPrimVar_Incompressible(double Density_Inf, CConfig *conf bool CEulerVariable::SetPrimVar_FreeSurface(CConfig *config) { - double Heaviside, lambda, DensityInc, LevelSet; + su2double Heaviside, lambda, DensityInc, LevelSet; - double ArtComp_Factor = config->GetArtComp_Factor(); - double epsilon = config->GetFreeSurface_Thickness(); + su2double ArtComp_Factor = config->GetArtComp_Factor(); + su2double epsilon = config->GetFreeSurface_Thickness(); /*--- Set the value of the Level Set (already set in SetFreeSurface_Distance(geometry, config)) ---*/ @@ -514,7 +514,7 @@ bool CEulerVariable::SetPrimVar_FreeSurface(CConfig *config) { CNSVariable::CNSVariable(void) : CEulerVariable() { } -CNSVariable::CNSVariable(double val_density, double *val_velocity, double val_energy, +CNSVariable::CNSVariable(su2double val_density, su2double *val_velocity, su2double val_energy, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CEulerVariable(val_density, val_velocity, val_energy, val_nDim, val_nvar, config) { @@ -526,7 +526,7 @@ CNSVariable::CNSVariable(double val_density, double *val_velocity, double val_en } -CNSVariable::CNSVariable(double *val_solution, unsigned short val_nDim, +CNSVariable::CNSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CEulerVariable(val_solution, val_nDim, val_nvar, config) { Temperature_Ref = config->GetTemperature_Ref(); @@ -555,7 +555,7 @@ bool CNSVariable::SetVorticity(bool val_limiter) { bool CNSVariable::SetStrainMag(bool val_limiter) { - double Div; + su2double Div; unsigned short iDim; Div = 0.0; @@ -586,10 +586,10 @@ bool CNSVariable::SetStrainMag(bool val_limiter) { } -bool CNSVariable::SetPrimVar_Compressible(double eddy_visc, double turb_ke, CFluidModel *FluidModel) { +bool CNSVariable::SetPrimVar_Compressible(su2double eddy_visc, su2double turb_ke, CFluidModel *FluidModel) { unsigned short iVar; - double density, staticEnergy; + su2double density, staticEnergy; bool check_dens = false, check_press = false, check_sos = false, check_temp = false, RightVol = true; @@ -679,9 +679,9 @@ void CNSVariable::SetSecondaryVar_Compressible(CFluidModel *FluidModel) { } -bool CNSVariable::SetPrimVar_Incompressible(double Density_Inf, double Viscosity_Inf, double eddy_visc, double turb_ke, CConfig *config) { +bool CNSVariable::SetPrimVar_Incompressible(su2double Density_Inf, su2double Viscosity_Inf, su2double eddy_visc, su2double turb_ke, CConfig *config) { - double ArtComp_Factor = config->GetArtComp_Factor(); + su2double ArtComp_Factor = config->GetArtComp_Factor(); /*--- Set the value of the density and viscosity ---*/ @@ -708,12 +708,12 @@ bool CNSVariable::SetPrimVar_Incompressible(double Density_Inf, double Viscosity } -bool CNSVariable::SetPrimVar_FreeSurface(double eddy_visc, double turb_ke, CConfig *config) { +bool CNSVariable::SetPrimVar_FreeSurface(su2double eddy_visc, su2double turb_ke, CConfig *config) { - double Heaviside, lambda, DensityInc, ViscosityInc, LevelSet; + su2double Heaviside, lambda, DensityInc, ViscosityInc, LevelSet; - double ArtComp_Factor = config->GetArtComp_Factor(); - double epsilon = config->GetFreeSurface_Thickness(); + su2double ArtComp_Factor = config->GetArtComp_Factor(); + su2double epsilon = config->GetFreeSurface_Thickness(); /*--- Set the value of the Level Set (already set in SetFreeSurface_Distance(geometry, config)) ---*/ diff --git a/SU2_CFD/src/variable_direct_poisson.cpp b/SU2_CFD/src/variable_direct_poisson.cpp index a6acb55d69f..04184034507 100644 --- a/SU2_CFD/src/variable_direct_poisson.cpp +++ b/SU2_CFD/src/variable_direct_poisson.cpp @@ -38,7 +38,7 @@ CPotentialVariable::CPotentialVariable(void) : CVariable() { } -CPotentialVariable::CPotentialVariable(double val_potential, +CPotentialVariable::CPotentialVariable(su2double val_potential, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, @@ -46,15 +46,15 @@ CPotentialVariable::CPotentialVariable(double val_potential, config) { unsigned short iVar; - Residual_Old = new double [nVar]; - Residual_Sum = new double [nVar]; + Residual_Old = new su2double [nVar]; + Residual_Sum = new su2double [nVar]; /*--- Initialization of variables ---*/ for (iVar = 0; iVar< nVar; iVar++) { Solution[iVar] = val_potential; Solution_Old[iVar] = val_potential; } - Charge_Density = new double [2]; + Charge_Density = new su2double [2]; } diff --git a/SU2_CFD/src/variable_direct_tne2.cpp b/SU2_CFD/src/variable_direct_tne2.cpp index e8983bd8706..0c4579e5ce6 100644 --- a/SU2_CFD/src/variable_direct_tne2.cpp +++ b/SU2_CFD/src/variable_direct_tne2.cpp @@ -99,11 +99,11 @@ CTNE2EulerVariable::CTNE2EulerVariable(unsigned short val_nDim, } -CTNE2EulerVariable::CTNE2EulerVariable(double val_pressure, - double *val_massfrac, - double *val_mach, - double val_temperature, - double val_temperature_ve, +CTNE2EulerVariable::CTNE2EulerVariable(su2double val_pressure, + su2double *val_massfrac, + su2double *val_mach, + su2double val_temperature, + su2double val_temperature_ve, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, @@ -114,9 +114,9 @@ CTNE2EulerVariable::CTNE2EulerVariable(double val_pressure, unsigned short iEl, iMesh, iDim, iSpecies, iVar, nDim, nEl, nHeavy, nMGSmooth; unsigned short *nElStates; - double *xi, *Ms, *thetav, **thetae, **g, *hf, *Tref; - double rhoE, rhoEve, Ev, Ee, Ef, T, Tve, rho, rhoCvtr, rhos; - double Ru, sqvel, num, denom, conc, soundspeed; + su2double *xi, *Ms, *thetav, **thetae, **g, *hf, *Tref; + su2double rhoE, rhoEve, Ev, Ee, Ef, T, Tve, rho, rhoCvtr, rhos; + su2double Ru, sqvel, num, denom, conc, soundspeed; /*--- Get Mutation++ mixture ---*/ nSpecies = config->GetnSpecies(); @@ -145,7 +145,7 @@ CTNE2EulerVariable::CTNE2EulerVariable(double val_pressure, Limiter_Primitive = NULL; /*--- Allocate & initialize residual vectors ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; } @@ -154,39 +154,39 @@ CTNE2EulerVariable::CTNE2EulerVariable(double val_pressure, for (iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if (nMGSmooth > 0) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- If using limiters, allocate the arrays ---*/ if ((config->GetKind_ConvNumScheme_TNE2() == SPACE_UPWIND) && (config->GetSpatialOrder_TNE2() == SECOND_ORDER_LIMITER)) { - Limiter = new double [nVar]; + Limiter = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Limiter[iVar] = 0.0; } } /*--- Allocate & initialize primitive variable & gradient arrays ---*/ - Primitive = new double [nPrimVar]; - Limiter_Primitive = new double [nPrimVarGrad]; - Solution_Max = new double [nPrimVarGrad]; - Solution_Min = new double [nPrimVarGrad]; + Primitive = new su2double [nPrimVar]; + Limiter_Primitive = new su2double [nPrimVarGrad]; + Solution_Max = new su2double [nPrimVarGrad]; + Solution_Min = new su2double [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; - Gradient_Primitive = new double* [nPrimVarGrad]; + Gradient_Primitive = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) { Limiter_Primitive[iVar] = 0.0; Solution_Min[iVar] = 0.0; Solution_Max[iVar] = 0.0; - Gradient_Primitive[iVar] = new double [nDim]; + Gradient_Primitive[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Gradient_Primitive[iVar][iDim] = 0.0; } /*--- Allocate partial derivative vectors ---*/ - dPdU = new double [nVar]; - dTdU = new double [nVar]; - dTvedU = new double [nVar]; + dPdU = new su2double [nVar]; + dTdU = new su2double [nVar]; + dTvedU = new su2double [nVar]; /*--- Determine the number of heavy species ---*/ ionization = config->GetIonization(); @@ -289,7 +289,7 @@ CTNE2EulerVariable::CTNE2EulerVariable(double val_pressure, } -CTNE2EulerVariable::CTNE2EulerVariable(double *val_solution, +CTNE2EulerVariable::CTNE2EulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, @@ -326,7 +326,7 @@ CTNE2EulerVariable::CTNE2EulerVariable(double *val_solution, Limiter_Primitive = NULL; /*--- Allocate & initialize residual vectors ---*/ - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Res_TruncError[iVar] = 0.0; } @@ -335,17 +335,17 @@ CTNE2EulerVariable::CTNE2EulerVariable(double *val_solution, for (iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) nMGSmooth += config->GetMG_CorrecSmooth(iMesh); if (nMGSmooth > 0) { - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; } /*--- If using limiters, allocate the arrays ---*/ if ((config->GetKind_ConvNumScheme_TNE2() == SPACE_UPWIND) && (config->GetSpatialOrder_TNE2() == SECOND_ORDER_LIMITER)) { - Limiter = new double [nVar]; - Limiter_Primitive = new double [nPrimVarGrad]; - Solution_Max = new double [nPrimVarGrad]; - Solution_Min = new double [nPrimVarGrad]; + Limiter = new su2double [nVar]; + Limiter_Primitive = new su2double [nPrimVarGrad]; + Solution_Max = new su2double [nPrimVarGrad]; + Solution_Min = new su2double [nPrimVarGrad]; for (iVar = 0; iVar < nVar; iVar++) Limiter[iVar] = 0.0; for (iVar = 0; iVar < nVar; iVar++) { @@ -356,19 +356,19 @@ CTNE2EulerVariable::CTNE2EulerVariable(double *val_solution, } /*--- Allocate & initialize primitive variable & gradient arrays ---*/ - Primitive = new double [nPrimVar]; + Primitive = new su2double [nPrimVar]; for (iVar = 0; iVar < nPrimVar; iVar++) Primitive[iVar] = 0.0; - Gradient_Primitive = new double* [nPrimVarGrad]; + Gradient_Primitive = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) { - Gradient_Primitive[iVar] = new double [nDim]; + Gradient_Primitive[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Gradient_Primitive[iVar][iDim] = 0.0; } /*--- Allocate partial derivative vectors ---*/ - dPdU = new double [nVar]; - dTdU = new double [nVar]; - dTvedU = new double [nVar]; + dPdU = new su2double [nVar]; + dTdU = new su2double [nVar]; + dTvedU = new su2double [nVar]; /*--- Determine the number of heavy species ---*/ ionization = config->GetIonization(); @@ -420,7 +420,7 @@ void CTNE2EulerVariable::SetGradient_PrimitiveZero(unsigned short val_primvar) { bool CTNE2EulerVariable::SetDensity(void) { unsigned short iSpecies; - double Density; + su2double Density; Density = 0.0; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { @@ -432,8 +432,8 @@ bool CTNE2EulerVariable::SetDensity(void) { return true; } -double CTNE2EulerVariable::GetProjVel(double *val_vector) { - double ProjVel, density; +su2double CTNE2EulerVariable::GetProjVel(su2double *val_vector) { + su2double ProjVel, density; unsigned short iDim, iSpecies; ProjVel = 0.0; @@ -461,15 +461,15 @@ bool CTNE2EulerVariable::SetTemperature(CConfig *config) { // Note: Requires previous call to SetDensity() unsigned short iEl, iSpecies, iDim, nHeavy, nEl, iIter, maxIter, *nElStates; - double *xi, *Ms, *thetav, **thetae, **g, *hf, *Tref; - double rho, rhoE, rhoEve, rhoEve_t, rhoE_ref, rhoE_f; - double evs, eels; - double Ru, sqvel, rhoCvtr, rhoCvve = 0.0; - double Cvvs, Cves, Tve, Tve2 = 0.0, Tve_o; - double f, df, tol; - double exptv, thsqr, thoTve; - double num, denom, num2, num3; - double Tmin, Tmax, Tvemin, Tvemax; + su2double *xi, *Ms, *thetav, **thetae, **g, *hf, *Tref; + su2double rho, rhoE, rhoEve, rhoEve_t, rhoE_ref, rhoE_f; + su2double evs, eels; + su2double Ru, sqvel, rhoCvtr, rhoCvve = 0.0; + su2double Cvvs, Cves, Tve, Tve2 = 0.0, Tve_o; + su2double f, df, tol; + su2double exptv, thsqr, thoTve; + su2double num, denom, num2, num3; + su2double Tmin, Tmax, Tvemin, Tvemax; /*--- Set tolerance for Newton-Raphson method ---*/ tol = 1.0E-4; @@ -639,8 +639,8 @@ void CTNE2EulerVariable::SetGasProperties(CConfig *config) { // NOTE: For now, neglecting contribution from electronic excitation unsigned short iSpecies, nHeavy, nEl; - double rhoCvtr, rhoCvve, Ru, Tve; - double *xi, *Ms, *thetav; + su2double rhoCvtr, rhoCvve, Ru, Tve; + su2double *xi, *Ms, *thetav; /*--- Determine the number of heavy species ---*/ if (ionization) { nHeavy = nSpecies-1; nEl = 1; } @@ -685,8 +685,8 @@ bool CTNE2EulerVariable::SetPressure(CConfig *config) { // NOTE: Requires computation of trans-rot & vib-el temperatures. unsigned short iSpecies, nHeavy, nEl; - double *Ms; - double P, Ru; + su2double *Ms; + su2double P, Ru; /*--- Determine the number of heavy species ---*/ if (ionization) { nHeavy = nSpecies-1; nEl = 1; } @@ -718,8 +718,8 @@ bool CTNE2EulerVariable::SetSoundSpeed(CConfig *config) { // NOTE: Requires SetDensity(), SetTemperature(), SetPressure(), & SetGasProperties(). // unsigned short iDim, iSpecies, nHeavy, nEl; -// double dPdrhoE, factor, Ru, radical, radical2; -// double *Ms, *xi; +// su2double dPdrhoE, factor, Ru, radical, radical2; +// su2double *Ms, *xi; // // /*--- Determine the number of heavy species ---*/ // if (ionization) { nHeavy = nSpecies-1; nEl = 1; } @@ -745,7 +745,7 @@ bool CTNE2EulerVariable::SetSoundSpeed(CConfig *config) { /// alternative unsigned short iSpecies, iDim; - double radical2; + su2double radical2; radical2 = 0.0; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) @@ -762,16 +762,16 @@ bool CTNE2EulerVariable::SetSoundSpeed(CConfig *config) { // else { Primitive[A_INDEX] = sqrt(radical); return false; } } -void CTNE2EulerVariable::CalcdPdU(double *V, CConfig *config, double *val_dPdU) { +void CTNE2EulerVariable::CalcdPdU(su2double *V, CConfig *config, su2double *val_dPdU) { // Note: Requires SetDensity(), SetTemperature(), SetPressure(), & SetGasProperties() // Note: Electron energy not included properly. unsigned short iDim, iSpecies, iEl, nHeavy, nEl, *nElStates; - double *Ms, *Tref, *hf, *xi, *thetav, **thetae, **g; - double Ru, RuBAR, CvtrBAR, rhoCvtr, rhoCvve, Cvtrs, rho_el, sqvel, conc; - double rho, rhos, T, Tve, evibs, eels, ef; - double num, denom; + su2double *Ms, *Tref, *hf, *xi, *thetav, **thetae, **g; + su2double Ru, RuBAR, CvtrBAR, rhoCvtr, rhoCvve, Cvtrs, rho_el, sqvel, conc; + su2double rho, rhos, T, Tve, evibs, eels, ef; + su2double num, denom; if (val_dPdU == NULL) { cout << "ERROR: CalcdPdU - Array dPdU not allocated!" << endl; @@ -859,12 +859,12 @@ void CTNE2EulerVariable::CalcdPdU(double *V, CConfig *config, double *val_dPdU) + rho_el*Ru/Ms[nSpecies-1]*1.0/rhoCvve; } -double CTNE2EulerVariable::CalcEve(double *V, CConfig *config, unsigned short val_Species) { +su2double CTNE2EulerVariable::CalcEve(su2double *V, CConfig *config, unsigned short val_Species) { unsigned short iEl, *nElStates; - double *Ms, *thetav, **thetae, **g, *hf, *Tref, Ru; - double Tve, Ev, Eel, Ef; - double num, denom; + su2double *Ms, *thetav, **thetae, **g, *hf, *Tref, Ru; + su2double Tve, Ev, Eel, Ef; + su2double num, denom; /*--- Read gas mixture properties from config ---*/ Ms = config->GetMolar_Mass(); @@ -918,10 +918,10 @@ double CTNE2EulerVariable::CalcEve(double *V, CConfig *config, unsigned short va } -double CTNE2EulerVariable::CalcHs(double *V, CConfig *config, +su2double CTNE2EulerVariable::CalcHs(su2double *V, CConfig *config, unsigned short val_Species) { - double Ru, *xi, *Ms, *hf, *Tref, T, eve, ef, hs; + su2double Ru, *xi, *Ms, *hf, *Tref, T, eve, ef, hs; /*--- Read from config ---*/ xi = config->GetRotationModes(); @@ -949,13 +949,13 @@ double CTNE2EulerVariable::CalcHs(double *V, CConfig *config, return hs; } -double CTNE2EulerVariable::CalcCvve(double val_Tve, CConfig *config, unsigned short val_Species) { +su2double CTNE2EulerVariable::CalcCvve(su2double val_Tve, CConfig *config, unsigned short val_Species) { unsigned short iEl, *nElStates; - double *Ms, *thetav, **thetae, **g, Ru; - double thoTve, exptv, thsqr, Cvvs, Cves; - double Tve; - double num, num2, num3, denom; + su2double *Ms, *thetav, **thetae, **g, Ru; + su2double thoTve, exptv, thsqr, Cvvs, Cves; + su2double Tve; + su2double num, num2, num3, denom; /*--- Read from config ---*/ thetav = config->GetCharVibTemp(); @@ -1011,12 +1011,12 @@ double CTNE2EulerVariable::CalcCvve(double val_Tve, CConfig *config, unsigned sh -void CTNE2EulerVariable::CalcdTdU(double *V, CConfig *config, - double *val_dTdU) { +void CTNE2EulerVariable::CalcdTdU(su2double *V, CConfig *config, + su2double *val_dTdU) { unsigned short iDim, iSpecies, nHeavy, nEl; - double *Ms, *xi, *Tref, *hf; - double v2, ef, T, Cvtrs, rhoCvtr, Ru; + su2double *Ms, *xi, *Tref, *hf; + su2double v2, ef, T, Cvtrs, rhoCvtr, Ru; if (ionization) { nHeavy = nSpecies-1; nEl = 1; } else { nHeavy = nSpecies; nEl = 0; } @@ -1058,12 +1058,12 @@ void CTNE2EulerVariable::CalcdTdU(double *V, CConfig *config, } -void CTNE2EulerVariable::CalcdTvedU(double *V, CConfig *config, - double *val_dTvedU) { +void CTNE2EulerVariable::CalcdTvedU(su2double *V, CConfig *config, + su2double *val_dTvedU) { unsigned short iDim, iSpecies; - double rhoCvve; - double eve; + su2double rhoCvve; + su2double eve; /*--- Rename for convenience ---*/ rhoCvve = V[RHOCVVE_INDEX]; @@ -1153,19 +1153,19 @@ bool CTNE2EulerVariable::SetPrimVar_Compressible(CConfig *config) { } -bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, double *U, double *V, - double *val_dPdU, double *val_dTdU, - double *val_dTvedU) { +bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, su2double *U, su2double *V, + su2double *val_dPdU, su2double *val_dTdU, + su2double *val_dTvedU) { bool ionization, nonphys, nrconvg, converr; unsigned short iDim, iEl, iSpecies, nHeavy, nEl, iIter, maxBIter, maxNIter; - double rho, rhoE, rhoEve, rhoE_f, rhoE_ref, rhoEve_t; - double Ru, sqvel, rhoCvtr, rhoCvve; - double Tve, Tve2, Tve_o; - double f, df, tol; - double Tmin, Tmax, Tvemin, Tvemax; - double radical2; - double *xi, *Ms, *hf, *Tref; + su2double rho, rhoE, rhoEve, rhoE_f, rhoE_ref, rhoEve_t; + su2double Ru, sqvel, rhoCvtr, rhoCvve; + su2double Tve, Tve2, Tve_o; + su2double f, df, tol; + su2double Tmin, Tmax, Tvemin, Tvemax; + su2double radical2; + su2double *xi, *Ms, *hf, *Tref; /*--- Conserved & primitive vector layout ---*/ // U: [rho1, ..., rhoNs, rhou, rhov, rhow, rhoe, rhoeve]^T @@ -1402,12 +1402,12 @@ bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, double *U, double *V, return converr; } -void CTNE2EulerVariable::Prim2ConsVar(CConfig *config, double *V, double *U) { +void CTNE2EulerVariable::Prim2ConsVar(CConfig *config, su2double *V, su2double *U) { unsigned short iDim, iEl, iSpecies, nEl, nHeavy; unsigned short *nElStates; - double Ru, Tve, T, sqvel, rhoE, rhoEve, Ef, Ev, Ee, rhos, rhoCvtr, num, denom; - double *thetav, *Ms, *xi, *hf, *Tref; - double **thetae, **g; + su2double Ru, Tve, T, sqvel, rhoE, rhoEve, Ef, Ev, Ee, rhos, rhoCvtr, num, denom; + su2double *thetav, *Ms, *xi, *hf, *Tref; + su2double **thetae, **g; /*--- Determine the number of heavy species ---*/ ionization = config->GetIonization(); @@ -1516,13 +1516,13 @@ CTNE2NSVariable::CTNE2NSVariable(unsigned short val_nDim, Viscosity_Ref = config->GetViscosity_Ref(); Viscosity_Inf = config->GetViscosity_FreeStreamND(); Prandtl_Lam = config->GetPrandtl_Lam(); - DiffusionCoeff = new double[nSpecies]; + DiffusionCoeff = new su2double[nSpecies]; } -CTNE2NSVariable::CTNE2NSVariable(double val_pressure, double *val_massfrac, - double *val_mach, double val_temperature, - double val_temperature_ve, +CTNE2NSVariable::CTNE2NSVariable(su2double val_pressure, su2double *val_massfrac, + su2double *val_mach, su2double val_temperature, + su2double val_temperature_ve, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nvarprim, @@ -1542,10 +1542,10 @@ CTNE2NSVariable::CTNE2NSVariable(double val_pressure, double *val_massfrac, Viscosity_Ref = config->GetViscosity_Ref(); Viscosity_Inf = config->GetViscosity_FreeStreamND(); Prandtl_Lam = config->GetPrandtl_Lam(); - DiffusionCoeff = new double[nSpecies]; + DiffusionCoeff = new su2double[nSpecies]; } -CTNE2NSVariable::CTNE2NSVariable(double *val_solution, unsigned short val_nDim, +CTNE2NSVariable::CTNE2NSVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nprimvar, unsigned short val_nprimvargrad, @@ -1559,7 +1559,7 @@ CTNE2NSVariable::CTNE2NSVariable(double *val_solution, unsigned short val_nDim, Viscosity_Ref = config->GetViscosity_Ref(); Viscosity_Inf = config->GetViscosity_FreeStreamND(); Prandtl_Lam = config->GetPrandtl_Lam(); - DiffusionCoeff = new double[nSpecies]; + DiffusionCoeff = new su2double[nSpecies]; } CTNE2NSVariable::~CTNE2NSVariable(void) { @@ -1568,10 +1568,10 @@ CTNE2NSVariable::~CTNE2NSVariable(void) { void CTNE2NSVariable::SetDiffusionCoeff(CConfig *config) { unsigned short iSpecies, jSpecies, nHeavy, nEl; - double rho, T, Tve, P; - double *Ms, Mi, Mj, pi, Ru, kb, gam_i, gam_j, gam_t, Theta_v; - double denom, d1_ij, D_ij; - double ***Omega00, Omega_ij; + su2double rho, T, Tve, P; + su2double *Ms, Mi, Mj, pi, Ru, kb, gam_i, gam_j, gam_t, Theta_v; + su2double denom, d1_ij, D_ij; + su2double ***Omega00, Omega_ij; /*--- Acquire gas parameters from CConfig ---*/ Omega00 = config->GetCollisionIntegral00(); @@ -1681,9 +1681,9 @@ void CTNE2NSVariable::SetDiffusionCoeff(CConfig *config) { void CTNE2NSVariable::SetLaminarViscosity(CConfig *config) { unsigned short iSpecies, jSpecies, nHeavy, nEl; - double rho, T, Tve; - double *Ms, Mi, Mj, pi, Ru, Na, gam_i, gam_j, denom; - double ***Omega11, Omega_ij, d2_ij; + su2double rho, T, Tve; + su2double *Ms, Mi, Mj, pi, Ru, Na, gam_i, gam_j, denom; + su2double ***Omega11, Omega_ij, d2_ij; /*--- Acquire gas parameters from CConfig ---*/ Omega11 = config->GetCollisionIntegral11(); @@ -1768,10 +1768,10 @@ void CTNE2NSVariable::SetLaminarViscosity(CConfig *config) { void CTNE2NSVariable ::SetThermalConductivity(CConfig *config) { unsigned short iSpecies, jSpecies, nHeavy, nEl; - double rho, T, Tve, Cvve; - double *xi, *Ms, Mi, Mj, mi, mj, pi, R, Ru, Na, kb, gam_i, gam_j, Theta_v; - double denom_t, denom_r, d1_ij, d2_ij, a_ij; - double ***Omega00, ***Omega11, Omega_ij; + su2double rho, T, Tve, Cvve; + su2double *xi, *Ms, Mi, Mj, mi, mj, pi, R, Ru, Na, kb, gam_i, gam_j, Theta_v; + su2double denom_t, denom_r, d1_ij, d2_ij, a_ij; + su2double ***Omega00, ***Omega11, Omega_ij; if (ionization) { cout << "SetThermalConductivity: NEEDS REVISION w/ IONIZATION" << endl; @@ -1858,12 +1858,12 @@ void CTNE2NSVariable ::SetThermalConductivity(CConfig *config) { bool CTNE2NSVariable::SetVorticity(bool val_limiter) { - double u_y = Gradient_Primitive[VEL_INDEX][1]; - double v_x = Gradient_Primitive[VEL_INDEX+1][0]; - double u_z = 0.0; - double v_z = 0.0; - double w_x = 0.0; - double w_y = 0.0; + su2double u_y = Gradient_Primitive[VEL_INDEX][1]; + su2double v_x = Gradient_Primitive[VEL_INDEX+1][0]; + su2double u_z = 0.0; + su2double v_z = 0.0; + su2double w_x = 0.0; + su2double w_y = 0.0; if (nDim == 3) { u_z = Gradient_Primitive[VEL_INDEX][2]; diff --git a/SU2_CFD/src/variable_direct_transition.cpp b/SU2_CFD/src/variable_direct_transition.cpp index 499b6eadc96..22293fd4d43 100644 --- a/SU2_CFD/src/variable_direct_transition.cpp +++ b/SU2_CFD/src/variable_direct_transition.cpp @@ -33,7 +33,7 @@ CTransLMVariable::CTransLMVariable(void) : CTurbVariable() {} -CTransLMVariable::CTransLMVariable(double val_nu_tilde, double val_intermittency, double val_REth, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CTransLMVariable::CTransLMVariable(su2double val_nu_tilde, su2double val_intermittency, su2double val_REth, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CTurbVariable(val_nDim, val_nvar, config) { // Initialization of variables diff --git a/SU2_CFD/src/variable_direct_turbulent.cpp b/SU2_CFD/src/variable_direct_turbulent.cpp index 4c3f1b046ea..46673009a7d 100644 --- a/SU2_CFD/src/variable_direct_turbulent.cpp +++ b/SU2_CFD/src/variable_direct_turbulent.cpp @@ -50,19 +50,19 @@ CTurbVariable::CTurbVariable(unsigned short val_nDim, unsigned short val_nvar, C /*--- Allocate space for the time spectral source terms ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - TS_Source = new double[nVar]; + TS_Source = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) TS_Source[iVar] = 0.0; } /*--- Allocate space for the limiter ---*/ - Limiter = new double [nVar]; + Limiter = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) Limiter[iVar] = 0.0; - Solution_Max = new double [nVar]; - Solution_Min = new double [nVar]; + Solution_Max = new su2double [nVar]; + Solution_Min = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) { Solution_Max[iVar] = 0.0; Solution_Min[iVar] = 0.0; @@ -72,13 +72,13 @@ CTurbVariable::CTurbVariable(unsigned short val_nDim, unsigned short val_nvar, C CTurbVariable::~CTurbVariable(void) { } -double CTurbVariable::GetmuT() { return muT; } +su2double CTurbVariable::GetmuT() { return muT; } -void CTurbVariable::SetmuT(double val_muT) { muT = val_muT; } +void CTurbVariable::SetmuT(su2double val_muT) { muT = val_muT; } CTurbSAVariable::CTurbSAVariable(void) : CTurbVariable() { } -CTurbSAVariable::CTurbSAVariable(double val_nu_tilde, double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CTurbSAVariable::CTurbSAVariable(su2double val_nu_tilde, su2double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CTurbVariable(val_nDim, val_nvar, config) { bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || @@ -106,7 +106,7 @@ CTurbSAVariable::~CTurbSAVariable(void) { CTurbMLVariable::CTurbMLVariable(void) : CTurbVariable() { } -CTurbMLVariable::CTurbMLVariable(double val_nu_tilde, double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CTurbMLVariable::CTurbMLVariable(su2double val_nu_tilde, su2double val_muT, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CTurbVariable(val_nDim, val_nvar, config) { bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || @@ -134,8 +134,8 @@ CTurbMLVariable::~CTurbMLVariable(void) { CTurbSSTVariable::CTurbSSTVariable(void) : CTurbVariable() { } -CTurbSSTVariable::CTurbSSTVariable(double val_kine, double val_omega, double val_muT, unsigned short val_nDim, unsigned short val_nvar, - double *constants, CConfig *config) +CTurbSSTVariable::CTurbSSTVariable(su2double val_kine, su2double val_omega, su2double val_muT, unsigned short val_nDim, unsigned short val_nvar, + su2double *constants, CConfig *config) : CTurbVariable(val_nDim, val_nvar, config) { bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || @@ -172,9 +172,9 @@ CTurbSSTVariable::~CTurbSSTVariable(void) { } -void CTurbSSTVariable::SetBlendingFunc(double val_viscosity, double val_dist, double val_density) { +void CTurbSSTVariable::SetBlendingFunc(su2double val_viscosity, su2double val_dist, su2double val_density) { unsigned short iDim; - double arg2, arg2A, arg2B, arg1; + su2double arg2, arg2A, arg2B, arg1; /*--- Cross diffusion ---*/ diff --git a/SU2_CFD/src/variable_direct_wave.cpp b/SU2_CFD/src/variable_direct_wave.cpp index 980f6ddbd94..11ef18e92a5 100644 --- a/SU2_CFD/src/variable_direct_wave.cpp +++ b/SU2_CFD/src/variable_direct_wave.cpp @@ -38,7 +38,7 @@ CWaveVariable::CWaveVariable(void) : CVariable() { } -CWaveVariable::CWaveVariable(double *val_wave, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CWaveVariable::CWaveVariable(su2double *val_wave, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar; @@ -46,13 +46,13 @@ CWaveVariable::CWaveVariable(double *val_wave, unsigned short val_nDim, unsigned Solution_Direct = NULL; /*--- Allocate residual structures ---*/ - Residual_Sum = new double [nVar]; Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; /*--- Allocate direct solution container for adjoint problem ---*/ - Solution_Direct = new double[nVar]; + Solution_Direct = new su2double[nVar]; /*--- Allocate aux gradient vector ---*/ - Grad_AuxVar = new double [nDim]; + Grad_AuxVar = new su2double [nDim]; /*--- Initialization of variables ---*/ for (iVar = 0; iVar < nVar; iVar++) { diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index ae1daec8f42..cf823f89d23 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -57,7 +57,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(void) : CVariable() { } -CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { +CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { unsigned short iVar, iDim, jDim; bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. @@ -68,15 +68,15 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u dynamic_analysis = (config->GetDynamic_Analysis() == DYNAMIC); fsi_analysis = config->GetFSI_Simulation(); - if (nDim == 2) Stress = new double [3]; - else if (nDim == 3) Stress = new double [6]; + if (nDim == 2) Stress = new su2double [3]; + else if (nDim == 3) Stress = new su2double [6]; if (dynamic_analysis){ - Solution_time_n = new double [nVar]; - Solution_Vel = new double [nVar]; - Solution_Vel_time_n = new double [nVar]; - Solution_Accel = new double [nVar]; - Solution_Accel_time_n = new double [nVar]; + Solution_time_n = new su2double [nVar]; + Solution_Vel = new su2double [nVar]; + Solution_Vel_time_n = new su2double [nVar]; + Solution_Accel = new su2double [nVar]; + Solution_Accel_time_n = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++){ Solution_time_n[iVar] = val_fea[iVar]; Solution_Vel[iVar] = val_fea[iVar]; @@ -94,9 +94,9 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u } if (fsi_analysis) { - FlowTraction = new double [nVar]; - Solution_Pred = new double [nVar]; - Solution_Pred_Old = new double [nVar]; + FlowTraction = new su2double [nVar]; + Solution_Pred = new su2double [nVar]; + Solution_Pred_Old = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++){ FlowTraction[iVar] = val_fea[iVar]; Solution_Pred[iVar] = val_fea[iVar]; @@ -110,9 +110,9 @@ CFEM_ElasVariable::CFEM_ElasVariable(double *val_fea, unsigned short val_nDim, u } -// if (nonlinear_analysis) Residual_Int = new double [nVar]; else Residual_Int = NULL; - if (body_forces) Residual_Ext_Body = new double [nVar]; else Residual_Ext_Body = NULL; - Residual_Ext_Surf = new double [nVar]; +// if (nonlinear_analysis) Residual_Int = new su2double [nVar]; else Residual_Int = NULL; + if (body_forces) Residual_Ext_Body = new su2double [nVar]; else Residual_Ext_Body = NULL; + Residual_Ext_Surf = new su2double [nVar]; } diff --git a/SU2_CFD/src/variable_linearized_mean.cpp b/SU2_CFD/src/variable_linearized_mean.cpp index f807f715d94..1b2d8ebf2da 100644 --- a/SU2_CFD/src/variable_linearized_mean.cpp +++ b/SU2_CFD/src/variable_linearized_mean.cpp @@ -39,7 +39,7 @@ CLinEulerVariable::CLinEulerVariable(void) : CVariable() { } -CLinEulerVariable::CLinEulerVariable(double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CLinEulerVariable::CLinEulerVariable(su2double *val_solution, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { /*--- Array initialization ---*/ @@ -47,22 +47,22 @@ CLinEulerVariable::CLinEulerVariable(double *val_solution, unsigned short val_nD ForceProj_Vector = NULL; /*--- Allocate structures ---*/ - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; - Undivided_Laplacian = new double [nVar]; - Limiter = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; + Limiter = new su2double [nVar]; - Grad_AuxVar = new double [nDim]; - Solution_time_n = new double [nVar]; - Solution_time_n1 = new double [nVar]; + Grad_AuxVar = new su2double [nDim]; + Solution_time_n = new su2double [nVar]; + Solution_time_n1 = new su2double [nVar]; - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) Res_TruncError[iVar] = 0.0; /*--- Initialization of variables ---*/ - ForceProj_Vector = new double [nDim]; + ForceProj_Vector = new su2double [nDim]; for (unsigned short iDim = 0; iDim < nDim; iDim++) ForceProj_Vector[iDim] = 0.0; @@ -72,8 +72,8 @@ CLinEulerVariable::CLinEulerVariable(double *val_solution, unsigned short val_nD } } -CLinEulerVariable::CLinEulerVariable(double val_deltarho, double *val_deltavel, - double val_deltae, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) +CLinEulerVariable::CLinEulerVariable(su2double val_deltarho, su2double *val_deltavel, + su2double val_deltae, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { /*--- Array initialization ---*/ @@ -81,22 +81,22 @@ CLinEulerVariable::CLinEulerVariable(double val_deltarho, double *val_deltavel, ForceProj_Vector = NULL; /*--- Allocate structures ---*/ - Residual_Sum = new double [nVar]; - Residual_Old = new double [nVar]; + Residual_Sum = new su2double [nVar]; + Residual_Old = new su2double [nVar]; - Undivided_Laplacian = new double [nVar]; - Limiter = new double [nVar]; + Undivided_Laplacian = new su2double [nVar]; + Limiter = new su2double [nVar]; - Grad_AuxVar = new double [nDim]; - Solution_time_n = new double [nVar]; - Solution_time_n1 = new double [nVar]; + Grad_AuxVar = new su2double [nDim]; + Solution_time_n = new su2double [nVar]; + Solution_time_n1 = new su2double [nVar]; - Res_TruncError = new double [nVar]; + Res_TruncError = new su2double [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) Res_TruncError[iVar] = 0.0; /*--- Initialization of variables ---*/ - ForceProj_Vector = new double [nDim]; + ForceProj_Vector = new su2double [nDim]; Solution[0] = val_deltarho; Solution_Old[0] = val_deltarho; Solution[nVar-1] = val_deltae; Solution_Old[nVar-1] = val_deltae; @@ -113,10 +113,10 @@ CLinEulerVariable::~CLinEulerVariable(void) { } -void CLinEulerVariable::SetDeltaPressure(double *val_velocity, double Gamma) { +void CLinEulerVariable::SetDeltaPressure(su2double *val_velocity, su2double Gamma) { - double Mod_Vel = 0.0; - double Vel_dot_DeltaRhoVel = 0.0; + su2double Mod_Vel = 0.0; + su2double Vel_dot_DeltaRhoVel = 0.0; for (unsigned short iDim = 0; iDim < nDim; iDim++) { Mod_Vel += val_velocity[iDim] * val_velocity[iDim]; Vel_dot_DeltaRhoVel += val_velocity[iDim] * Solution[iDim+1]; diff --git a/SU2_CFD/src/variable_structure.cpp b/SU2_CFD/src/variable_structure.cpp index 7a803b5c50b..79ecad76d93 100644 --- a/SU2_CFD/src/variable_structure.cpp +++ b/SU2_CFD/src/variable_structure.cpp @@ -77,7 +77,7 @@ CVariable::CVariable(unsigned short val_nvar, CConfig *config) { /*--- Allocate the solution array - here it is also possible to allocate some extra flow variables that do not participate in the simulation ---*/ - Solution = new double [nVar]; + Solution = new su2double [nVar]; for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; @@ -110,23 +110,23 @@ CVariable::CVariable(unsigned short val_nDim, unsigned short val_nvar, CConfig * which is common for all the problems, here it is also possible to allocate some extra flow variables that do not participate in the simulation ---*/ - Solution = new double [nVar]; + Solution = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - Solution_Old = new double [nVar]; + Solution_Old = new su2double [nVar]; - Gradient = new double* [nVar]; + Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Gradient[iVar] = new double [nDim]; + Gradient[iVar] = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim ++) Gradient[iVar][iDim] = 0.0; } if (config->GetUnsteady_Simulation() != NO) { - Solution_time_n = new double [nVar]; - Solution_time_n1 = new double [nVar]; + Solution_time_n = new su2double [nVar]; + Solution_time_n1 = new su2double [nVar]; } } @@ -155,17 +155,17 @@ CVariable::~CVariable(void) { } -void CVariable::AddUnd_Lapl(double *val_und_lapl) { +void CVariable::AddUnd_Lapl(su2double *val_und_lapl) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Undivided_Laplacian[iVar] += val_und_lapl[iVar]; } -void CVariable::SubtractUnd_Lapl(double *val_und_lapl) { +void CVariable::SubtractUnd_Lapl(su2double *val_und_lapl) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Undivided_Laplacian[iVar] -= val_und_lapl[iVar]; } -void CVariable::SubtractUnd_Lapl(unsigned short val_var, double val_und_lapl) { +void CVariable::SubtractUnd_Lapl(unsigned short val_var, su2double val_und_lapl) { Undivided_Laplacian[val_var] -= val_und_lapl; } @@ -176,13 +176,13 @@ void CVariable::SetUnd_LaplZero(void) { } -void CVariable::SetUnd_Lapl(unsigned short val_var, double val_und_lapl) { +void CVariable::SetUnd_Lapl(unsigned short val_var, su2double val_und_lapl) { Undivided_Laplacian[val_var] = val_und_lapl; } -void CVariable::SetSolution(double *val_solution) { +void CVariable::SetSolution(su2double *val_solution) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution[iVar] = val_solution[iVar]; @@ -196,21 +196,21 @@ void CVariable::Set_OldSolution(void) { } -void CVariable::AddSolution(unsigned short val_var, double val_solution) { +void CVariable::AddSolution(unsigned short val_var, su2double val_solution) { Solution[val_var] = Solution_Old[val_var] + val_solution; } -void CVariable::AddClippedSolution(unsigned short val_var, double val_solution, - double lowerlimit, double upperlimit) { +void CVariable::AddClippedSolution(unsigned short val_var, su2double val_solution, + su2double lowerlimit, su2double upperlimit) { Solution[val_var] = min(max((Solution_Old[val_var] + val_solution), lowerlimit), upperlimit); } -void CVariable::AddConservativeSolution(unsigned short val_var, double val_solution, - double val_density, double val_density_old, double lowerlimit, double upperlimit) { +void CVariable::AddConservativeSolution(unsigned short val_var, su2double val_solution, + su2double val_density, su2double val_density_old, su2double lowerlimit, su2double upperlimit) { Solution[val_var] = min(max((Solution_Old[val_var]*val_density_old + val_solution)/val_density, lowerlimit), upperlimit); @@ -238,42 +238,42 @@ void CVariable::Set_Solution_time_n1(void) { } -void CVariable::AddRes_TruncError(double *val_truncation_error) { +void CVariable::AddRes_TruncError(su2double *val_truncation_error) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Res_TruncError[iVar] += val_truncation_error[iVar]; } -void CVariable::SubtractRes_TruncError(double *val_truncation_error) { +void CVariable::SubtractRes_TruncError(su2double *val_truncation_error) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Res_TruncError[iVar] -= val_truncation_error[iVar]; } -void CVariable::SetResidual_Old(double *val_residual_old) { +void CVariable::SetResidual_Old(su2double *val_residual_old) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Old[iVar] = val_residual_old[iVar]; } -void CVariable::SetSolution_Old(double *val_solution_old) { +void CVariable::SetSolution_Old(su2double *val_solution_old) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Old[iVar] = val_solution_old[iVar]; } -void CVariable::SetSolution_time_n(double *val_solution_time_n) { +void CVariable::SetSolution_time_n(su2double *val_solution_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; } -void CVariable::AddResidual_Sum(double *val_residual) { +void CVariable::AddResidual_Sum(su2double *val_residual) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Sum[iVar] += val_residual[iVar]; @@ -300,7 +300,7 @@ void CVariable::SetVelSolutionZero(void) { } -void CVariable::SetVelSolutionVector(double *val_vector) { +void CVariable::SetVelSolutionVector(su2double *val_vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution[iDim+1] = val_vector[iDim]; @@ -314,7 +314,7 @@ void CVariable::SetVelSolutionOldZero(void) { } -void CVariable::SetVelSolutionOldVector(double *val_vector) { +void CVariable::SetVelSolutionOldVector(su2double *val_vector) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution_Old[iDim+1] = val_vector[iDim]; @@ -356,7 +356,7 @@ void CVariable::SetAuxVarGradientZero(void) { } -void CVariable::SetGradient(double **val_gradient) { +void CVariable::SetGradient(su2double **val_gradient) { for (unsigned short iVar = 0; iVar < nVar; iVar++) for (unsigned short iDim = 0; iDim < nDim; iDim++) @@ -377,14 +377,14 @@ void CVariable::SetVal_ResTruncError_Zero(unsigned short val_var) { } -void CVariable::GetResidual_Sum(double *val_residual) { +void CVariable::GetResidual_Sum(su2double *val_residual) { for (unsigned short iVar = 0; iVar < nVar; iVar++) val_residual[iVar] = Residual_Sum[iVar]; } -void CVariable::GetResTruncError(double *val_trunc_error) { +void CVariable::GetResTruncError(su2double *val_trunc_error) { for (unsigned short iVar = 0; iVar < nVar; iVar++) val_trunc_error[iVar] = Res_TruncError[iVar]; @@ -393,7 +393,7 @@ void CVariable::GetResTruncError(double *val_trunc_error) { CBaselineVariable::CBaselineVariable(void) : CVariable() { } -CBaselineVariable::CBaselineVariable(double *val_solution, unsigned short val_nvar, CConfig *config) : CVariable(val_nvar, config) { +CBaselineVariable::CBaselineVariable(su2double *val_solution, unsigned short val_nvar, CConfig *config) : CVariable(val_nvar, config) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution[iVar] = val_solution[iVar]; diff --git a/SU2_CFD/src/variable_template.cpp b/SU2_CFD/src/variable_template.cpp index 6cd1d21fc66..318e70999d7 100644 --- a/SU2_CFD/src/variable_template.cpp +++ b/SU2_CFD/src/variable_template.cpp @@ -33,7 +33,7 @@ CTemplateVariable::CTemplateVariable(void) : CVariable() { } -CTemplateVariable::CTemplateVariable(double val_Template, unsigned short val_nDim, +CTemplateVariable::CTemplateVariable(su2double val_Template, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { } CTemplateVariable::~CTemplateVariable(void) { } diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index 846cff769f9..ac69ad94ac8 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -35,7 +35,7 @@ using namespace std; int main(int argc, char *argv[]) { unsigned short iZone, nZone = SINGLE_ZONE; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; char config_file_name[MAX_STRING_SIZE]; int rank = MASTER_NODE, size = SINGLE_NODE; string str; @@ -43,7 +43,7 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ #ifdef HAVE_MPI - MPI_Init(&argc,&argv); + SU2_MPI::Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); #endif @@ -121,7 +121,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StartTime = MPI_Wtime(); #else - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Computational grid preprocesing ---*/ @@ -160,7 +160,7 @@ int main(int argc, char *argv[]) { output->SetMesh_Files(geometry_container, config_container, SINGLE_ZONE, true, false); // if (rank == MASTER_NODE) cout << "Writing an STL file of the surface mesh." << endl; -// if (size > 1) sprintf (buffer_char, "_%d.stl", rank+1); else sprintf (buffer_char, ".stl"); +// if (size > 1) SPRINTF (buffer_char, "_%d.stl", rank+1); else SPRINTF (buffer_char, ".stl"); // strcpy (out_file, "Surface_Grid"); strcat(out_file, buffer_char); geometry[ZONE_0]->SetBoundSTL(out_file, true, config[ZONE_0]); } @@ -221,7 +221,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StopTime = MPI_Wtime(); #else - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Compute/print the total time for performance benchmarking. ---*/ diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 4bc97e72a20..43cf17b54c4 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -33,10 +33,10 @@ using namespace std; int main(int argc, char *argv[]) { unsigned short iZone, nZone = SINGLE_ZONE; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; unsigned short iMarker, iDim, iDV, iFFDBox; unsigned long iVertex, iPoint; - double delta_eps, my_Gradient, Gradient, *Normal, dS, *VarCoord, Sensitivity, + su2double delta_eps, my_Gradient, Gradient, *Normal, dS, *VarCoord, Sensitivity, dalpha[3], deps[3], dalpha_deps; char config_file_name[MAX_STRING_SIZE], *cstr; ofstream Gradient_file, Jacobian_file; @@ -47,7 +47,7 @@ int main(int argc, char *argv[]) { /*--- MPI initialization, and buffer setting ---*/ #ifdef HAVE_MPI - MPI_Init(&argc,&argv); + SU2_MPI::Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); #endif @@ -123,7 +123,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StartTime = MPI_Wtime(); #else - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif if (rank == MASTER_NODE) @@ -408,7 +408,7 @@ int main(int argc, char *argv[]) { } #ifdef HAVE_MPI - MPI_Allreduce(&my_Gradient, &Gradient, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&my_Gradient, &Gradient, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else Gradient = my_Gradient; #endif @@ -512,7 +512,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StopTime = MPI_Wtime(); #else - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Compute/print the total time for performance benchmarking. ---*/ diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 6e2fc009c46..f019f8308af 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -35,11 +35,11 @@ using namespace std; int main(int argc, char *argv[]) { unsigned short iZone, nZone = SINGLE_ZONE; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; unsigned short iDV, iFFDBox, iPlane, nPlane, iVar; - double *ObjectiveFunc, *ObjectiveFunc_New, *Gradient, delta_eps, MinPlane, MaxPlane, MinXCoord, MaxXCoord, + su2double *ObjectiveFunc, *ObjectiveFunc_New, *Gradient, delta_eps, MinPlane, MaxPlane, MinXCoord, MaxXCoord, **Plane_P0, **Plane_Normal, Volume, Volume_New, Volume_Grad; - vector *Xcoord_Airfoil, *Ycoord_Airfoil, *Zcoord_Airfoil, *Variable_Airfoil; + vector *Xcoord_Airfoil, *Ycoord_Airfoil, *Zcoord_Airfoil, *Variable_Airfoil; char config_file_name[MAX_STRING_SIZE]; char *cstr; ofstream Gradient_file, ObjFunc_file; @@ -49,7 +49,7 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ #ifdef HAVE_MPI - MPI_Init(&argc,&argv); + SU2_MPI::Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); #endif @@ -125,7 +125,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StartTime = MPI_Wtime(); #else - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Evaluation of the objective function ---*/ @@ -138,21 +138,21 @@ int main(int argc, char *argv[]) { if (geometry_container[ZONE_0]->GetnDim() == 2) nPlane = 1; else nPlane = config_container[ZONE_0]->GetnSections(); - Xcoord_Airfoil = new vector[nPlane]; - Ycoord_Airfoil = new vector[nPlane]; - Zcoord_Airfoil = new vector[nPlane]; - Variable_Airfoil = new vector[nPlane]; + Xcoord_Airfoil = new vector[nPlane]; + Ycoord_Airfoil = new vector[nPlane]; + Zcoord_Airfoil = new vector[nPlane]; + Variable_Airfoil = new vector[nPlane]; - Plane_P0 = new double*[nPlane]; - Plane_Normal = new double*[nPlane]; + Plane_P0 = new su2double*[nPlane]; + Plane_Normal = new su2double*[nPlane]; for(iPlane = 0; iPlane < nPlane; iPlane++ ) { - Plane_P0[iPlane] = new double[3]; - Plane_Normal[iPlane] = new double[3]; + Plane_P0[iPlane] = new su2double[3]; + Plane_Normal[iPlane] = new su2double[3]; } - ObjectiveFunc = new double[nPlane*20]; - ObjectiveFunc_New = new double[nPlane*20]; - Gradient = new double[nPlane*20]; + ObjectiveFunc = new su2double[nPlane*20]; + ObjectiveFunc_New = new su2double[nPlane*20]; + Gradient = new su2double[nPlane*20]; for (iVar = 0; iVar < nPlane*20; iVar++) { ObjectiveFunc[iVar] = 0.0; @@ -192,7 +192,7 @@ int main(int argc, char *argv[]) { geometry_container[ZONE_0]->ComputeSurf_Curvature(config_container[ZONE_0]); // if (rank == MASTER_NODE) cout << "Writing a Tecplot file of the surface curvature." << endl; -// if (size > 1) sprintf (buffer_char, "_%d.plt", rank+1); else sprintf (buffer_char, ".plt"); +// if (size > 1) SPRINTF (buffer_char, "_%d.plt", rank+1); else SPRINTF (buffer_char, ".plt"); // strcpy (out_file, "Surface_Curvature"); strcat(out_file, buffer_char); geometry_container[ZONE_0]->SetBoundTecPlot(out_file, true, config); /*--- Create plane structure ---*/ @@ -212,7 +212,7 @@ int main(int argc, char *argv[]) { Plane_Normal[iPlane][1] = 0.0; Plane_P0[iPlane][1] = 0.0; Plane_Normal[iPlane][2] = 0.0; Plane_P0[iPlane][2] = 0.0; Plane_Normal[iPlane][config_container[ZONE_0]->GetAxis_Orientation()] = 1.0; - Plane_P0[iPlane][config_container[ZONE_0]->GetAxis_Orientation()] = MinPlane + iPlane*(MaxPlane - MinPlane)/double(nPlane-1); + Plane_P0[iPlane][config_container[ZONE_0]->GetAxis_Orientation()] = MinPlane + iPlane*(MaxPlane - MinPlane)/su2double(nPlane-1); } } @@ -610,7 +610,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StopTime = MPI_Wtime(); #else - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Compute/print the total time for performance benchmarking. ---*/ diff --git a/SU2_MSH/src/SU2_MSH.cpp b/SU2_MSH/src/SU2_MSH.cpp index afdf3e88ec5..af411d1c444 100644 --- a/SU2_MSH/src/SU2_MSH.cpp +++ b/SU2_MSH/src/SU2_MSH.cpp @@ -37,7 +37,7 @@ int main(int argc, char *argv[]) { /*--- Variable definitions ---*/ unsigned short iZone, nZone = SINGLE_ZONE; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; char config_file_name[MAX_STRING_SIZE]; char file_name[MAX_STRING_SIZE]; int rank = MASTER_NODE, size = SINGLE_NODE; @@ -46,7 +46,7 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ #ifdef HAVE_MPI - MPI_Init(&argc,&argv); + SU2_MPI::Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); #endif @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StartTime = MPI_Wtime(); #else - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif cout << endl <<"----------------------- Preprocessing computations ----------------------" << endl; @@ -319,7 +319,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StopTime = MPI_Wtime(); #else - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Compute/print the total time for performance benchmarking. ---*/ diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 6d4411ab4ca..a1a31caef79 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -36,7 +36,7 @@ using namespace std; int main(int argc, char *argv[]) { unsigned short iZone, nZone = SINGLE_ZONE; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; ofstream ConvHist_file; char config_file_name[MAX_STRING_SIZE]; int rank = MASTER_NODE; @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ #ifdef HAVE_MPI - MPI_Init(&argc,&argv); + SU2_MPI::Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); #endif @@ -128,7 +128,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StartTime = MPI_Wtime(); #else - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif if (rank == MASTER_NODE) @@ -145,7 +145,7 @@ int main(int argc, char *argv[]) { /*--- Unsteady simulation: merge all unsteady time steps. First, find the frequency and total number of files to write. ---*/ - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned long iExtIter = 0; bool StopCalc = false; bool SolutionInstantiated = false; @@ -186,7 +186,7 @@ int main(int argc, char *argv[]) { SolutionInstantiated = true; } else - solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], int(MESH_0)); + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); } if (rank == MASTER_NODE) @@ -216,7 +216,7 @@ int main(int argc, char *argv[]) { if (iTimeSpectral == 0) solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); else - solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], int(MESH_0)); + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); } /*--- Print progress in solution writing to the screen. ---*/ @@ -246,7 +246,7 @@ int main(int argc, char *argv[]) { #ifdef HAVE_MPI StopTime = MPI_Wtime(); #else - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #endif /*--- Compute/print the total time for performance benchmarking. ---*/ From 3854d5df1b47d7eab16c3f7f56775c2902b202ed Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 26 Aug 2015 17:28:08 -0700 Subject: [PATCH 061/269] FEM: Incremental load (static) --- Common/include/config_structure.hpp | 7 +++ Common/include/config_structure.inl | 2 + Common/src/config_structure.cpp | 7 ++- SU2_CFD/include/solver_structure.hpp | 37 ++++++++++++- SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/include/variable_structure.hpp | 20 +++++++ SU2_CFD/include/variable_structure.inl | 8 +++ SU2_CFD/src/iteration_structure.cpp | 47 +++++++++++++--- SU2_CFD/src/solver_fem_elasticity.cpp | 73 +++++++++++++++++++++++-- SU2_CFD/src/variable_fem_elasticity.cpp | 5 ++ 10 files changed, 190 insertions(+), 18 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index a364f2e5e3d..35d8deec47e 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -749,6 +749,7 @@ class CConfig { Ramp_Load; /*!< \brief Apply the load with linear increases. */ bool IncrementalLoad; /*!< \brief Apply the load in increments (for nonlinear structural analysis). */ unsigned long IncLoad_Nincrements; /*!< \brief Number of increments. */ + su2double *IncLoad_Criteria; /*!< \brief Criteria for the application of incremental loading. */ su2double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ su2double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ unsigned short Pred_Order; /*!< \brief Order of the predictor for FSI applications. */ @@ -5553,6 +5554,12 @@ class CConfig { */ unsigned long GetNumberIncrements(void); + /*! + * \brief Get the value of the criteria for applying incremental loading. + * \return Value of the log10 of the residual. + */ + su2double GetIncLoad_Criteria(unsigned short val_var); + /*! * \brief Get the relaxation method chosen for the simulation * \return Value of the relaxation method diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 9cf516b8b62..ec22492cecb 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1252,6 +1252,8 @@ inline bool CConfig::GetIncrementalLoad(void) { return IncrementalLoad; } inline unsigned long CConfig::GetNumberIncrements(void) { return IncLoad_Nincrements; } +inline su2double CConfig::GetIncLoad_Criteria(unsigned short val_var) { return IncLoad_Criteria[val_var]; } + inline bool CConfig::GetFSI_Simulation(void) { return FSI_Problem; } inline unsigned short CConfig::GetKindInterpolation(void) { return Kind_Interpolation; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 559584d3883..6eb9b088252 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -150,7 +150,7 @@ void CConfig::SetPointersNull(void) { PlaneTag=NULL; Kappa_Flow=NULL; Kappa_AdjFlow=NULL; Kappa_TNE2=NULL; Kappa_AdjTNE2=NULL; Kappa_LinFlow=NULL; - Section_Location=NULL; + Section_Location=NULL; IncLoad_Criteria=NULL; U_FreeStreamND=NULL; /*--- Moving mesh pointers ---*/ @@ -1227,6 +1227,10 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Maximum number of increments of the */ addUnsignedLongOption("NUMBER_INCREMENTS", IncLoad_Nincrements, 10); + default_vec_3d[0] = 0.0; default_vec_3d[1] = 0.0; default_vec_3d[2] = 0.0; + /* DESCRIPTION: Definition of the UTOL RTOL ETOL*/ + addDoubleArrayOption("INCREMENTAL_CRITERIA", 3, IncLoad_Criteria, default_vec_3d); + /* DESCRIPTION: Time while the structure is static */ addDoubleOption("STATIC_TIME", Static_Time, 1.0); @@ -5660,6 +5664,7 @@ CConfig::~CConfig(void) { if (ParamDV!=NULL ) delete[] ParamDV; if (MG_CorrecSmooth!=NULL ) delete[] MG_CorrecSmooth; if (Section_Location!=NULL) delete[] Section_Location; + if (IncLoad_Criteria!=NULL) delete[] IncLoad_Criteria; if (Kappa_Flow!=NULL ) delete[] Kappa_Flow; if (Kappa_AdjFlow!=NULL ) delete[] Kappa_AdjFlow; if (Kappa_TNE2!=NULL ) delete[] Kappa_TNE2; diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 1f2a5588387..2c9e38021f4 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2131,13 +2131,25 @@ class CSolver { /*! * \brief A virtual member. - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] flow_solution - Container vector with all the solutions. - * \param[in] fea_config - Definition of the particular problem. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] ExtIter - External iteration. */ virtual void SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] ExtIter - External iteration. + */ + virtual void ResetInitialCondition(CGeometry **geometry, + CSolver ***solver_container, + CConfig *config, unsigned long ExtIter); /*! * \brief A virtual member. @@ -6689,6 +6701,25 @@ class CFEM_ElasticitySolver : public CSolver { */ void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output); + + /*! + * \brief Set the initial condition for the FEM structural problem. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] ExtIter - External iteration. + */ + void SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter); + + /*! + * \brief Reset the initial condition for the FEM structural problem. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] ExtIter - External iteration. + */ + void ResetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter); + /*! * \brief Compute the time step for solving the FEM equations. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index ccfd9f95aa2..ffc60e920af 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -70,6 +70,8 @@ inline void CSolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { inline void CSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { } +inline void CSolver::ResetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { } + inline void CSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter) { } inline void CSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 5f5f5365e56..40a88973800 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1477,6 +1477,11 @@ class CVariable { */ virtual su2double *Get_SurfaceLoad_Res(void); + /*! + * \brief A virtual member. + */ + virtual su2double Get_SurfaceLoad_Res(unsigned short iVar); + /*! * \brief A virtual member. */ @@ -1497,6 +1502,11 @@ class CVariable { */ virtual su2double *Get_FlowTraction(void); + /*! + * \brief A virtual member. + */ + virtual su2double Get_FlowTraction(unsigned short iVar); + /*! * \brief A virtual member. */ @@ -2674,6 +2684,11 @@ class CFEM_ElasVariable : public CVariable { */ su2double *Get_SurfaceLoad_Res(void); + /*! + * \brief Get the residual term due to surface load + */ + su2double Get_SurfaceLoad_Res(unsigned short iVar); + /*! * \brief Clear the surface load residual */ @@ -2694,6 +2709,11 @@ class CFEM_ElasVariable : public CVariable { */ su2double *Get_FlowTraction(void); + /*! + * \brief Get the residual term due to the flow traction + */ + su2double Get_FlowTraction(unsigned short iVar); + /*! * \brief Clear the flow traction residual */ diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 5506f649ac5..73256ab396c 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -73,6 +73,8 @@ inline void CVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { } inline su2double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} +inline su2double CVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return 0.0;} + inline void CVariable::Clear_SurfaceLoad_Res(void) { } inline void CVariable::Set_FlowTraction(su2double *val_flowTraction) { } @@ -81,6 +83,8 @@ inline void CVariable::Add_FlowTraction(su2double *val_flowTraction) { } inline su2double *CVariable::Get_FlowTraction(void) {return NULL;} +inline su2double CVariable::Get_FlowTraction(unsigned short iVar) {return 0.0;} + inline void CVariable::Clear_FlowTraction(void) { } inline su2double CVariable::GetBetaInc2(void) { return 0; } @@ -903,6 +907,8 @@ inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { inline su2double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} +inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return Residual_Ext_Surf[iVar];} + inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; } @@ -919,6 +925,8 @@ inline void CFEM_ElasVariable::Add_FlowTraction(su2double *val_flowTraction) { inline su2double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} +inline su2double CFEM_ElasVariable::Get_FlowTraction(unsigned short iVar) {return FlowTraction[iVar];} + inline void CFEM_ElasVariable::Clear_FlowTraction(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = 0.0; } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 24580e9631f..30de381f906 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -925,6 +925,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai bool incremental_load = config_container[ZONE_0]->GetIncrementalLoad(); // If an incremental load is applied + /*--- TODO: Convergence only checked for ZONE_0 ---*/ + /*--- This is to prevent problems when running a linear solver ---*/ if (!nonlinear) incremental_load = false; @@ -940,8 +942,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Set the initial condition ---*/ - for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); +// for (iZone = 0; iZone < nZone; iZone++) +// solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); for (iZone = 0; iZone < nZone; iZone++) { @@ -991,17 +993,17 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- The incremental load is only used in nonlinear cases ---*/ else if (incremental_load){ - bool meetCriteria = false; - - cout << "INCREMENTAL LOAD, " << nIncrements << " INCREMENTS. " << endl; - - /*--- Set the initial condition ---*/ + /*--- Set the initial condition: store the current solution as Solution_Old ---*/ for (iZone = 0; iZone < nZone; iZone++) solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); for (iZone = 0; iZone < nZone; iZone++) { + /*--- The load increment is 1.0 ---*/ + loadIncrement = 1.0; + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + /*--- Set the value of the internal iteration ---*/ IntIter = 0; @@ -1031,6 +1033,22 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai } + bool meetCriteria; + double Residual_UTOL, Residual_RTOL, Residual_ETOL; + double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + + Criteria_UTOL = config_container[ZONE_0]->GetIncLoad_Criteria(0); + Criteria_RTOL = config_container[ZONE_0]->GetIncLoad_Criteria(1); + Criteria_ETOL = config_container[ZONE_0]->GetIncLoad_Criteria(2); + + Residual_UTOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(0)); + Residual_RTOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(1)); + Residual_ETOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(2)); + + meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ if (meetCriteria){ @@ -1060,15 +1078,23 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai else { /*--- Here we have to restart the solution to the original one of the iteration ---*/ + /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ + + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + /*--- For the number of increments ---*/ for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); - /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL ---*/ + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ for (iZone = 0; iZone < nZone; iZone++){ + /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ + integration_container[iZone][FEA_SOL]->SetConvergence(false); + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); /*--- FEA equations ---*/ @@ -1077,13 +1103,16 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); } + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + for (iZone = 0; iZone < nZone; iZone++) { /*--- Set the value of the internal iteration ---*/ IntIter = 0; + config_container[iZone]->SetIntIter(IntIter); /*--- FEA equations ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 1489de6cfde..77a1aa12e03 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -430,6 +430,46 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } +void CFEM_ElasticitySolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { + + unsigned long iPoint, nPoint; + bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied + + nPoint = geometry[MESH_0]->GetnPoint(); + + /*--- We store the current solution as "Solution Old", for the case that we need to retrieve it ---*/ + + if (incremental_load){ + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_OldSolution(); + + // This is the operation + // for (unsigned short iVar = 0; iVar < nVar; iVar++) + // Solution_Old[iVar] = Solution[iVar]; + + } + + +} + +void CFEM_ElasticitySolver::ResetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { + + unsigned long iPoint, nPoint; + bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied + + nPoint = geometry[MESH_0]->GetnPoint(); + + /*--- We store the current solution as "Solution Old", for the case that we need to retrieve it ---*/ + + if (incremental_load){ + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_Solution(); + + // This is the operation + // for (unsigned short iVar = 0; iVar < nVar; iVar++) + // Solution[iVar] = Solution_Old[iVar]; + } + +} + void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { unsigned long iPoint, iElem, iVar, jVar; @@ -1367,14 +1407,22 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation. - su2double *checkCoord; + bool incremental_load = config->GetIncrementalLoad(); if (!dynamic){ for (iPoint = 0; iPoint < nPoint; iPoint++){ /*--- Add the external contribution to the residual ---*/ /*--- (the terms that are constant over the time step) ---*/ - Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + } + } + else { + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + } + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); } @@ -1435,16 +1483,31 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { /*--- Dynamic contribution ---*/ + /*--- TODO: Do I have to scale this one? I don't think so... ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); LinSysRes.AddBlock(iPoint, Res_Time_Cont); /*--- External surface load contribution ---*/ - Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + } + } + else { + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - checkCoord = geometry->node[iPoint]->GetCoord(); + /*--- Add FSI contribution ---*/ if (fsi) { /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ - Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_FSI_Cont[iVar] = loadIncrement * node[iPoint]->Get_FlowTraction(iVar); + } + } + else { + Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); + } LinSysRes.AddBlock(iPoint, Res_FSI_Cont); } } diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index cf823f89d23..40444fdab1a 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -62,6 +62,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim unsigned short iVar, iDim, jDim; bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool body_forces = false; // Bool for adding body forces in the future. + bool incremental_load = config->GetIncrementalLoad(); VonMises_Stress = 0.0; @@ -109,6 +110,10 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim Solution_Pred_Old = NULL; } + /*--- If we are going to use incremental analysis, we need a way to store the old solution ---*/ + if (incremental_load && nonlinear_analysis){ + Solution_Old = new su2double [nVar]; + } // if (nonlinear_analysis) Residual_Int = new su2double [nVar]; else Residual_Int = NULL; if (body_forces) Residual_Ext_Body = new su2double [nVar]; else Residual_Ext_Body = NULL; From 0514d5f050b360e4f42d56bbd415992d0c1fbc9b Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 26 Aug 2015 22:18:01 -0700 Subject: [PATCH 062/269] FEM: Added incremental loading for FSI --- SU2_CFD/src/iteration_structure.cpp | 4 +- SU2_FSI/src/iteration_structure_fsi.cpp | 209 ++++++++++++++++++++++-- 2 files changed, 195 insertions(+), 18 deletions(-) diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 30de381f906..7a10e39b3f7 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1034,8 +1034,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai } bool meetCriteria; - double Residual_UTOL, Residual_RTOL, Residual_ETOL; - double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; Criteria_UTOL = config_container[ZONE_0]->GetIncLoad_Criteria(0); Criteria_RTOL = config_container[ZONE_0]->GetIncLoad_Criteria(1); diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 49ca05dacfd..3a5364e8338 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -456,11 +456,15 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG unsigned int ZONE_STRUC = nFluidZone; double Physical_dt, Physical_t; + double loadIncrement; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); + unsigned long iIncrement; + unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); + bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems @@ -470,6 +474,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG bool statTime = (CurrentTime <= Static_Time); + bool incremental_load = config_container[ZONE_STRUC]->GetIncrementalLoad(); // If an incremental load is applied + #ifdef HAVE_MPI int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -501,41 +507,212 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time ---*/ else if ((nonlinear) && (!statTime)){ - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - /*--- Set the value of the internal iteration ---*/ + if (!incremental_load){ - IntIter = 0; + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - /*--- FEA equations ---*/ + /*--- Set the value of the internal iteration ---*/ - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + IntIter = 0; - /*--- Run the iteration ---*/ + /*--- FEA equations ---*/ - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } } + /*--- The incremental load is only used in nonlinear cases ---*/ + else if (incremental_load){ - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + /*--- Set the initial condition: store the current solution as Solution_Old ---*/ - for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - /*--- Write the convergence history (only screen output) ---*/ + /*--- The load increment is 1.0: all the load applied ---*/ + loadIncrement = 1.0; + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + /*--- Set the value of the internal iteration ---*/ - config_container[iZone]->SetIntIter(IntIter); + IntIter = 0; - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the first iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + /*--- Run the second iteration ---*/ + + IntIter = 1; + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + bool meetCriteria; + double Residual_UTOL, Residual_RTOL, Residual_ETOL; + double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + + Criteria_UTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(0); + Criteria_RTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(1); + Criteria_ETOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(2); + + Residual_UTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(0)); + Residual_RTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(1)); + Residual_ETOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(2)); + + meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); + + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ + if (meetCriteria){ + + for (IntIter = 2; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } + + } + + /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ + + else { + + /*--- Here we have to restart the solution to the original one of the iteration ---*/ + /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- For the number of increments ---*/ + for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ + + loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); + + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++){ + + /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ + integration_container[iZone][FEA_SOL]->SetConvergence(false); + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + } + + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = 0; + config_container[iZone]->SetIntIter(IntIter); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } + + } + + } } From 813753ee60e5a2e7940e37e52cddea8c8d7df6f8 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 27 Aug 2015 19:41:27 -0700 Subject: [PATCH 063/269] FEM: partial MPI implementation --- SU2_CFD/include/solver_structure.hpp | 7 ++ SU2_CFD/src/iteration_structure.cpp | 8 +- SU2_CFD/src/solver_fem_elasticity.cpp | 156 ++++++++++++++++++++++++-- 3 files changed, 159 insertions(+), 12 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 2c9e38021f4..64c9fafb592 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6691,6 +6691,13 @@ class CFEM_ElasticitySolver : public CSolver { */ ~CFEM_ElasticitySolver(void); + /*! + * \brief Impose the send-receive boundary condition. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Set_MPI_Solution(CGeometry *geometry, CConfig *config); + /*! * \brief Set residuals to zero. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 7a10e39b3f7..86dfbd46c99 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -930,8 +930,8 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- This is to prevent problems when running a linear solver ---*/ if (!nonlinear) incremental_load = false; + int rank = MASTER_NODE; #ifdef HAVE_MPI - int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif @@ -1105,8 +1105,10 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); } - cout << endl; - cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + if (rank == MASTER_NODE){ + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + } for (iZone = 0; iZone < nZone; iZone++) { diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 77a1aa12e03..a67cd9cd144 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -362,6 +362,125 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { } +void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { + + //TODO: clean unused variables here. + unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sended ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); + } + +#ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + +#endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); +// iPeriodic_Index = geometry->vertex[MarkerR][iVertex]->GetRotation_Type(); +// +// /*--- Retrieve the supplied periodic information. ---*/ +// angles = config->GetPeriodicRotation(iPeriodic_Index); +// +// /*--- Store angles separately for clarity. ---*/ +// theta = angles[0]; phi = angles[1]; psi = angles[2]; +// cosTheta = cos(theta); cosPhi = cos(phi); cosPsi = cos(psi); +// sinTheta = sin(theta); sinPhi = sin(phi); sinPsi = sin(psi); +// +// /*--- Compute the rotation matrix. Note that the implicit +// ordering is rotation about the x-axis, y-axis, +// then z-axis. Note that this is the transpose of the matrix +// used during the preprocessing stage. ---*/ +// rotMatrix[0][0] = cosPhi*cosPsi; rotMatrix[1][0] = sinTheta*sinPhi*cosPsi - cosTheta*sinPsi; rotMatrix[2][0] = cosTheta*sinPhi*cosPsi + sinTheta*sinPsi; +// rotMatrix[0][1] = cosPhi*sinPsi; rotMatrix[1][1] = sinTheta*sinPhi*sinPsi + cosTheta*cosPsi; rotMatrix[2][1] = cosTheta*sinPhi*sinPsi - sinTheta*cosPsi; +// rotMatrix[0][2] = -sinPhi; rotMatrix[1][2] = sinTheta*cosPhi; rotMatrix[2][2] = cosTheta*cosPhi; + + /*--- Copy conserved variables before performing transformation. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + Solution[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + +// /*--- Rotate the momentum components. ---*/ +// if (nDim == 2) { +// Solution[1] = rotMatrix[0][0]*Buffer_Receive_U[1*nVertexR+iVertex] + +// rotMatrix[0][1]*Buffer_Receive_U[2*nVertexR+iVertex]; +// Solution[2] = rotMatrix[1][0]*Buffer_Receive_U[1*nVertexR+iVertex] + +// rotMatrix[1][1]*Buffer_Receive_U[2*nVertexR+iVertex]; +// } +// else { +// Solution[1] = rotMatrix[0][0]*Buffer_Receive_U[1*nVertexR+iVertex] + +// rotMatrix[0][1]*Buffer_Receive_U[2*nVertexR+iVertex] + +// rotMatrix[0][2]*Buffer_Receive_U[3*nVertexR+iVertex]; +// Solution[2] = rotMatrix[1][0]*Buffer_Receive_U[1*nVertexR+iVertex] + +// rotMatrix[1][1]*Buffer_Receive_U[2*nVertexR+iVertex] + +// rotMatrix[1][2]*Buffer_Receive_U[3*nVertexR+iVertex]; +// Solution[3] = rotMatrix[2][0]*Buffer_Receive_U[1*nVertexR+iVertex] + +// rotMatrix[2][1]*Buffer_Receive_U[2*nVertexR+iVertex] + +// rotMatrix[2][2]*Buffer_Receive_U[3*nVertexR+iVertex]; +// } + + /*--- Copy transformed conserved variables back into buffer. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution(iVar, Solution[iVar]); + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + +} + + void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { @@ -375,7 +494,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ /*--- Set vector entries to zero ---*/ - + //TODO: nPoint or nPointDomain for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { LinSysAux.SetBlock_Zero(iPoint); LinSysRes.SetBlock_Zero(iPoint); @@ -594,6 +713,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet Ta = element_container[EL_KIND]->Get_Kt_a(iNode); for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + /*--- Check if this is my node or not ---*/ LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); for (jNode = 0; jNode < NelNodes; jNode++){ @@ -1590,11 +1710,29 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ - unsigned long IterLinSol; + + unsigned long IterLinSol, iPoint, total_index; + unsigned short iVar; + + /*--- Initialize residual and solution at the ghost points ---*/ + + for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar + iVar; + LinSysRes[total_index] = 0.0; + LinSysSol[total_index] = 0.0; + } + + } CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + } @@ -1816,7 +1954,7 @@ void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); - + //TODO: nPoint or nPointDomain for (iPoint=0; iPoint < nPoint; iPoint++){ if (predOrder==0) fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); else if (predOrder==1) { @@ -1906,8 +2044,8 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, } else{ - - for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); @@ -1990,8 +2128,8 @@ void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, cout << "No relaxation parameter used. " << endl; } - - for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); @@ -2023,8 +2161,8 @@ void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); - - for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); From 0273b81c5288d666bb37bf1dc6ec90052f874eea Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 28 Aug 2015 10:46:52 -0700 Subject: [PATCH 064/269] FEM: some fixes in the output. --- SU2_CFD/src/output_paraview.cpp | 314 ++++++++++++++++++++++++++++++- SU2_CFD/src/output_structure.cpp | 182 +++++++++++++++++- 2 files changed, 485 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index 7e243718db3..051abc22193 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -723,7 +723,162 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s } } - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { + if (Kind_Solver == LINEAR_ELASTICITY) { + + Paraview_File << "\nSCALARS Sxx float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Syy float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Sxy float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + if (nDim == 3){ + + Paraview_File << "\nSCALARS Szz float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Sxz float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Syz float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + } + + Paraview_File << "\nSCALARS Von_Mises_Stress float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (surf_sol) { + if (LocalIndex[iPoint+1] != 0) { + /*--- Loop over the vars/residuals and write the values to file ---*/ + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } else { + /*--- Loop over the vars/residuals and write the values to file ---*/ + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + } + + + if (Kind_Solver == FEM_ELASTICITY) { + + if (config->GetDynamic_Analysis() == DYNAMIC) { + + Paraview_File << "\nSCALARS Velocity_1 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Velocity_2 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + if (nDim == 3){ + + Paraview_File << "\nSCALARS Velocity_3 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + } + + Paraview_File << "\nSCALARS Acceleration_1 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Acceleration_2 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + if (nDim == 3){ + + Paraview_File << "\nSCALARS Acceleration_3 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + } + + } Paraview_File << "\nSCALARS Sxx float 1\n"; Paraview_File << "LOOKUP_TABLE default\n"; @@ -1482,7 +1637,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign } - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { + if (Kind_Solver == LINEAR_ELASTICITY) { Paraview_File << "\nSCALARS Sxx float 1\n"; Paraview_File << "LOOKUP_TABLE default\n"; @@ -1567,6 +1722,161 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign } + if (Kind_Solver == FEM_ELASTICITY) { + + if (config->GetDynamic_Analysis() == DYNAMIC) { + + Paraview_File << "\nSCALARS Velocity_1 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Velocity_2 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + if (nDim == 3){ + + Paraview_File << "\nSCALARS Velocity_3 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + } + + Paraview_File << "\nSCALARS Acceleration_1 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Acceleration_2 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + if (nDim == 3){ + + Paraview_File << "\nSCALARS Acceleration_3 float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + } + + } + + Paraview_File << "\nSCALARS Sxx float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Syy float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Sxy float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + if (nDim == 3){ + + Paraview_File << "\nSCALARS Szz float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Sxz float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + Paraview_File << "\nSCALARS Syz float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (! surf_sol) { + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + } + + Paraview_File << "\nSCALARS Von_Mises_Stress float 1\n"; + Paraview_File << "LOOKUP_TABLE default\n"; + + for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { + if (surf_sol) { + if (LocalIndex[iPoint+1] != 0) { + /*--- Loop over the vars/residuals and write the values to file ---*/ + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } else { + /*--- Loop over the vars/residuals and write the values to file ---*/ + Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; + } + } + VarCounter++; + + } + + } Paraview_File.close(); diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 2273a451902..864c82dc024 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -1888,8 +1888,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv unsigned short iVar_GridVel = 0, iVar_PressCp = 0, iVar_Density = 0, iVar_Lam = 0, iVar_MachMean = 0, iVar_Tempv = 0, iVar_EF =0, iVar_Temp = 0, iVar_Mach = 0, iVar_Press = 0, iVar_TempLam = 0, iVar_ViscCoeffs = 0, iVar_Sens = 0, iVar_FEA = 0, iVar_Extra = 0, iVar_Eddy = 0, iVar_Sharp = 0, - iVar_FEA_Stress = 0, iVar_FEA_Stress_3D = 0, iVar_FEA_Extra = 0, iVar_SensDim = 0; - + iVar_FEA_Vel = 0, iVar_FEA_Accel = 0, iVar_FEA_Stress = 0, iVar_FEA_Stress_3D = 0, iVar_FEA_Extra = 0, + iVar_SensDim = 0; + unsigned long iPoint = 0, jPoint = 0, iVertex = 0, iMarker = 0; su2double Gas_Constant, Mach2Vel, Mach_Motion, RefDensity, RefPressure = 0.0, factor = 0.0; @@ -2048,12 +2049,29 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv iVar_Sens = nVar_Total; nVar_Total += 2; } - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { + if (Kind_Solver == LINEAR_ELASTICITY) { iVar_FEA_Stress = nVar_Total; nVar_Total += 3; if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} iVar_FEA_Extra = nVar_Total; nVar_Total += 2; } + if (Kind_Solver == FEM_ELASTICITY) { + /*--- If the analysis is dynamic... ---*/ + if (config->GetDynamic_Analysis() == DYNAMIC){ + /*--- Velocities ---*/ + iVar_FEA_Vel = nVar_Total; + if (geometry->GetnDim() == 2) nVar_Total += 2; + else if (geometry->GetnDim() == 3) nVar_Total += 3; + /*--- Accelerations ---*/ + iVar_FEA_Accel = nVar_Total; + if (geometry->GetnDim() == 2) nVar_Total += 2; + else if (geometry->GetnDim() == 3) nVar_Total += 3; + } + iVar_FEA_Stress = nVar_Total; nVar_Total += 3; + if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} + iVar_FEA_Extra = nVar_Total; nVar_Total += 1; + } + if ((Kind_Solver == DISC_ADJ_EULER) || (Kind_Solver == DISC_ADJ_NAVIER_STOKES) || (Kind_Solver == DISC_ADJ_RANS)){ @@ -3300,6 +3318,133 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } } + + + /*--- Communicate the Velocities for dynamic FEM problem ---*/ + + if ((Kind_Solver == FEM_ELASTICITY) && (config->GetDynamic_Analysis() == DYNAMIC)) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; su2double *Node_Vel; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Node_Vel = solver[CurrentIndex]->node[iPoint]->GetSolution_Vel(); + Buffer_Send_Var[jPoint] = Node_Vel[0]; + Buffer_Send_Res[jPoint] = Node_Vel[1]; + if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Vel[2]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + + #ifdef HAVE_MPI + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (geometry->GetnDim() == 3) { + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + } + #else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + if (geometry->GetnDim() == 3) { + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; + } + #endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Vel; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + if (geometry->GetnDim() == 3) + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } + + /*--- Communicate the Accelerations for dynamic FEM problem ---*/ + + if ((Kind_Solver == FEM_ELASTICITY) && (config->GetDynamic_Analysis() == DYNAMIC)) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; su2double *Node_Accel; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Node_Accel = solver[CurrentIndex]->node[iPoint]->GetSolution_Accel(); + Buffer_Send_Var[jPoint] = Node_Accel[0]; + Buffer_Send_Res[jPoint] = Node_Accel[1]; + if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Accel[2]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + + #ifdef HAVE_MPI + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (geometry->GetnDim() == 3) { + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + } + #else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + if (geometry->GetnDim() == 3) { + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; + } + #endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Accel; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + if (geometry->GetnDim() == 3) + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } /*--- Communicate the Linear elasticity stresses (2D) - Legacy elasticity solver ---*/ @@ -3363,7 +3508,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - /*--- Communicate the Linear elasticity stresses (2D) - New elasticity solver---*/ + /*--- Communicate the FEM elasticity stresses (2D) - New elasticity solver---*/ if (Kind_Solver == FEM_ELASTICITY) { @@ -3486,7 +3631,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - /*--- Communicate the Linear elasticity stresses (3D) - New elasticity solver---*/ + /*--- Communicate the FEM elasticity stresses (3D) - New elasticity solver---*/ if ((Kind_Solver == FEM_ELASTICITY) && (geometry->GetnDim() == 3)) { @@ -3564,7 +3709,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Load buffers with the temperature and laminar viscosity variables. ---*/ Buffer_Send_Var[jPoint] = solver[FEA_SOL]->node[iPoint]->GetVonMises_Stress(); - Buffer_Send_Res[jPoint] = solver[FEA_SOL]->node[iPoint]->GetFlow_Pressure(); jPoint++; } } @@ -3588,7 +3732,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; jPoint++; } @@ -3926,6 +4069,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, unsigned short iVar, iDim, nDim = geometry->GetnDim(); unsigned long iPoint, iExtIter = config->GetExtIter(); bool grid_movement = config->GetGrid_Movement(); + bool dynamic_fem = (config->GetDynamic_Analysis() == DYNAMIC); ofstream restart_file; string filename; @@ -4048,14 +4192,34 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, } } - if (((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) && (geometry->GetnDim() == 2)) { + if (Kind_Solver == LINEAR_ELASTICITY) { restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; } - if (((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) && (geometry->GetnDim() == 3)) { + if (Kind_Solver == LINEAR_ELASTICITY) { restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; } + if (Kind_Solver == FEM_ELASTICITY) { + if (!dynamic_fem) { + if (geometry->GetnDim() == 2) + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\""; + if (geometry->GetnDim() == 3) + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\""; + } + else if (dynamic_fem) { + if (geometry->GetnDim() == 2){ + restart_file << "\t\"Velocity_1\"\t\"Velocity_2\"\t\"Acceleration_1\"\t\"Acceleration_2\""; + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\""; + } + if (geometry->GetnDim() == 3){ + restart_file << "\t\"Velocity_1\"\t\"Velocity_2\"\t\"Velocity_3\"\t\"Acceleration_1\"\t\"Acceleration_2\"\t\"Acceleration_3\""; + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\""; + } + } + } + + if (config->GetExtraOutput()) { string *headings = NULL; //if (Kind_Solver == RANS) { From 7ad05048bd884c140bb83a958cb4433f15e41749 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 28 Aug 2015 18:00:23 -0700 Subject: [PATCH 065/269] FEM: mods for parallelization --- Common/include/config_structure.hpp | 23 +++- Common/include/config_structure.inl | 6 + Common/src/config_structure.cpp | 13 +- SU2_CFD/include/solver_structure.hpp | 2 + SU2_CFD/src/SU2_CFD.cpp | 7 +- SU2_CFD/src/output_structure.cpp | 7 +- SU2_CFD/src/solver_fem_elasticity.cpp | 171 +++++++++++++++++------- SU2_CFD/src/solver_structure.cpp | 14 +- SU2_CFD/src/variable_fem_elasticity.cpp | 19 ++- SU2_SOL/src/SU2_SOL.cpp | 85 +++++++++++- 10 files changed, 284 insertions(+), 63 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 35d8deec47e..a4277bffba8 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -280,7 +280,8 @@ class CConfig { unsigned long Dyn_nIntIter; /*!< \brief Number of internal iterations (Newton-Raphson Method for nonlinear structural analysis). */ long Unst_RestartIter; /*!< \brief Iteration number to restart an unsteady simulation (Dual time Method). */ long Unst_AdjointIter; /*!< \brief Iteration number to begin the reverse time integration in the direct solver for the unsteady adjoint. */ - unsigned short nRKStep; /*!< \brief Number of steps of the explicit Runge-Kutta method. */ + long Dyn_RestartIter; /*!< \brief Iteration number to restart a dynamic structural analysis. */ + unsigned short nRKStep; /*!< \brief Number of steps of the explicit Runge-Kutta method. */ su2double *RK_Alpha_Step; /*!< \brief Runge-Kutta beta coefficients. */ unsigned short nMGLevels; /*!< \brief Number of multigrid levels (coarse levels). */ unsigned short nCFL; /*!< \brief Number of CFL, one for each multigrid level. */ @@ -534,6 +535,7 @@ class CConfig { Solution_FlowFileName, /*!< \brief Flow solution input file. */ Solution_LinFileName, /*!< \brief Linearized flow solution input file. */ Solution_AdjFileName, /*!< \brief Adjoint solution input file for drag functional. */ + Solution_FEMFileName, /*!< \brief Adjoint solution input file for drag functional. */ Flow_FileName, /*!< \brief Flow variables output file. */ Structure_FileName, /*!< \brief Structure variables output file. */ SurfStructure_FileName, /*!< \brief Surface structure variables output file. */ @@ -551,6 +553,7 @@ class CConfig { Restart_HeatFileName, /*!< \brief Restart file for heat variables. */ Restart_LinFileName, /*!< \brief Restart file for linearized flow variables. */ Restart_AdjFileName, /*!< \brief Restart file for adjoint variables, drag functional. */ + Restart_FEMFileName, /*!< \brief Restart file for FEM elasticity. */ Adj_FileName, /*!< \brief Output file with the adjoint variables. */ Lin_FileName, /*!< \brief Output file with the linearized variables. */ ObjFunc_Grad_FileName, /*!< \brief Gradient of the objective function. */ @@ -2190,6 +2193,12 @@ class CConfig { */ long GetUnst_AdjointIter(void); + /*! + * \brief Get the restart iteration number for dynamic structural simulations. + * \return Restart iteration number for dynamic structural simulations. + */ + long GetDyn_RestartIter(void); + /*! * \brief Retrieves the number of periodic time instances for Time Spectral. * \return: Number of periodic time instances for Time Spectral. @@ -3882,6 +3891,12 @@ class CConfig { */ string GetSolution_AdjFileName(void); + /*! + * \brief Get the name of the file with the solution of the structural problem. + * \return Name of the file with the solution of the structural problem. + */ + string GetSolution_FEMFileName(void); + /*! * \brief Get the name of the file with the residual of the problem. * \return Name of the file with the residual of the problem. @@ -3996,6 +4011,12 @@ class CConfig { */ string GetRestart_AdjFileName(void); + /*! + * \brief Get the name of the restart file for the flow variables. + * \return Name of the restart file for the flow variables. + */ + string GetRestart_FEMFileName(void); + /*! * \brief Get the name of the file with the adjoint variables. * \return Name of the file with the adjoint variables. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index ec22492cecb..9f3c1a378df 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -83,6 +83,8 @@ inline long CConfig::GetUnst_RestartIter(void) { return Unst_RestartIter; } inline long CConfig::GetUnst_AdjointIter(void) { return Unst_AdjointIter; } +inline long CConfig::GetDyn_RestartIter(void) { return Dyn_RestartIter; } + inline string CConfig::GetPlaneTag(unsigned short index) { return PlaneTag[index]; } inline su2double CConfig::GetEA_IntLimit(unsigned short index) { return EA_IntLimit[index]; } @@ -952,6 +954,8 @@ inline string CConfig::GetSolution_LinFileName(void) { return Solution_LinFileNa inline string CConfig::GetSolution_AdjFileName(void) { return Solution_AdjFileName; } +inline string CConfig::GetSolution_FEMFileName(void) { return Solution_FEMFileName; } + inline string CConfig::GetFlow_FileName(void) { return Flow_FileName; } inline string CConfig::GetStructure_FileName(void) { return Structure_FileName; } @@ -978,6 +982,8 @@ inline string CConfig::GetRestart_LinFileName(void) { return Restart_LinFileName inline string CConfig::GetRestart_AdjFileName(void) { return Restart_AdjFileName; } +inline string CConfig::GetRestart_FEMFileName(void) { return Restart_FEMFileName; } + inline string CConfig::GetAdj_FileName(void) { return Adj_FileName; } inline string CConfig::GetLin_FileName(void) { return Lin_FileName; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 6eb9b088252..976a860002a 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -554,6 +554,8 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addLongOption("UNST_RESTART_ITER", Unst_RestartIter, 0); /* DESCRIPTION: Starting direct solver iteration for the unsteady adjoint */ addLongOption("UNST_ADJOINT_ITER", Unst_AdjointIter, 0); + /* DESCRIPTION: Iteration number to begin unsteady restarts (structural analysis) */ + addLongOption("DYN_RESTART_ITER", Dyn_RestartIter, 0); /* DESCRIPTION: Time discretization */ addEnumOption("TIME_DISCRE_FLOW", Kind_TimeIntScheme_Flow, Time_Int_Map, EULER_IMPLICIT); /* DESCRIPTION: Time discretization */ @@ -856,6 +858,8 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addStringOption("SOLUTION_LIN_FILENAME", Solution_LinFileName, string("solution_lin.dat")); /*!\brief SOLUTION_ADJ_FILENAME\n DESCRIPTION: Restart adjoint input file. Objective function abbreviation is expected. \ingroup Config*/ addStringOption("SOLUTION_ADJ_FILENAME", Solution_AdjFileName, string("solution_adj.dat")); + /*!\brief SOLUTION_FLOW_FILENAME \n DESCRIPTION: Restart structure input file (the file output under the filename set by RESTART_FLOW_FILENAME) \n Default: solution_flow.dat \ingroup Config */ + addStringOption("SOLUTION_STRUCTURE_FILENAME", Solution_FEMFileName, string("solution_structure.dat")); /*!\brief RESTART_FLOW_FILENAME \n DESCRIPTION: Output file restart flow \ingroup Config*/ addStringOption("RESTART_FLOW_FILENAME", Restart_FlowFileName, string("restart_flow.dat")); /*!\brief RESTART_LIN_FILENAME \n DESCRIPTION: Output file linear flow \ingroup Config*/ @@ -864,6 +868,8 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addStringOption("RESTART_ADJ_FILENAME", Restart_AdjFileName, string("restart_adj.dat")); /*!\brief RESTART_WAVE_FILENAME \n DESCRIPTION: Output file restart wave \ingroup Config*/ addStringOption("RESTART_WAVE_FILENAME", Restart_WaveFileName, string("restart_wave.dat")); + /*!\brief RESTART_FLOW_FILENAME \n DESCRIPTION: Output file restart structure \ingroup Config*/ + addStringOption("RESTART_STRUCTURE_FILENAME", Restart_FEMFileName, string("restart_structure.dat")); /*!\brief VOLUME_FLOW_FILENAME \n DESCRIPTION: Output file flow (w/o extension) variables \ingroup Config */ addStringOption("VOLUME_FLOW_FILENAME", Flow_FileName, string("flow")); /*!\brief VOLUME_STRUCTURE_FILENAME @@ -3811,9 +3817,10 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { } if (Restart) { - if (!Adjoint && !Linearized) cout << "Read flow solution from: " << Solution_FlowFileName << "." << endl; + if (!Adjoint && !Linearized && Kind_Solver != FEM_ELASTICITY) cout << "Read flow solution from: " << Solution_FlowFileName << "." << endl; if (Adjoint) cout << "Read adjoint solution from: " << Solution_AdjFileName << "." << endl; if (Linearized) cout << "Read linearized solution from: " << Solution_LinFileName << "." << endl; + if (Kind_Solver == FEM_ELASTICITY) cout << "Read structural solution from: " << Solution_FEMFileName << "." << endl; } else { cout << "No restart solution, use the values at infinity (freestream)." << endl; @@ -4732,7 +4739,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { else { cout << "Surface structure coefficients file name: " << SurfStructure_FileName << "." << endl; cout << "Structure variables file name: " << Structure_FileName << "." << endl; - cout << "Restart structure file name: " << Restart_FlowFileName << "." << endl; + cout << "Restart structure file name: " << Restart_FEMFileName << "." << endl; } } @@ -5722,7 +5729,7 @@ string CConfig::GetUnsteady_FileName(string val_filename, int val_iter) { } /*--- Append iteration number for unsteady cases ---*/ - if ((Wrt_Unsteady) || (Unsteady_Simulation == TIME_SPECTRAL)) { + if ((Wrt_Unsteady) || (Unsteady_Simulation == TIME_SPECTRAL) || (Wrt_Dynamic)) { unsigned short lastindex = UnstFilename.find_last_of("."); UnstFilename = UnstFilename.substr(0, lastindex); if ((val_iter >= 0) && (val_iter < 10)) SPRINTF (buffer, "_0000%d.dat", val_iter); diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 64c9fafb592..2bd33476b63 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6645,6 +6645,8 @@ class CFEM_ElasticitySolver : public CSolver { su2double *solutionPredictor; /*!< \brief Auxiliary vector to store the solution predictor */ + su2double *SolRest; /*!< \brief Auxiliary vector to restart the solution */ + su2double *nodeReactions; /*!< \brief Auxiliary vector to store the reactions */ su2double *normalVertex; /*!< \brief Auxiliary vector to store the normals to a certain vertex */ diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index eb4c2a7cb4a..75552535621 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -313,6 +313,11 @@ int main(int argc, char *argv[]) { if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) ExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); + /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY + && config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) + ExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); + /*--- Main external loop of the solver. Within this loop, each iteration ---*/ if (rank == MASTER_NODE) @@ -626,4 +631,4 @@ int main(int argc, char *argv[]) { return EXIT_SUCCESS; -} \ No newline at end of file +} diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 864c82dc024..d1d9689117c 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -4070,6 +4070,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, unsigned long iPoint, iExtIter = config->GetExtIter(); bool grid_movement = config->GetGrid_Movement(); bool dynamic_fem = (config->GetDynamic_Analysis() == DYNAMIC); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); ofstream restart_file; string filename; @@ -4078,8 +4079,10 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, if ((config->GetAdjoint()) || (config->GetDiscrete_Adjoint())) { filename = config->GetRestart_AdjFileName(); filename = config->GetObjFunc_Extension(filename); + } else if (fem){ + filename = config->GetRestart_FEMFileName(); } else { - filename = config->GetRestart_FlowFileName(); + filename = config->GetRestart_FlowFileName(); } /*--- Unsteady problems require an iteration number to be appended. ---*/ @@ -4088,6 +4091,8 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(val_iZone)); } else if (config->GetWrt_Unsteady()) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file and write the solution. ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index a67cd9cd144..9aa6aef83fd 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -67,6 +67,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { solutionPredictor = NULL; + SolRest = NULL; + normalVertex = NULL; stressTensor = NULL; @@ -84,6 +86,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation + string filename = config->GetSolution_FEMFileName(); + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -130,27 +134,125 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; nodeReactions = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; + /*--- The length of the solution vector depends on whether the problem is static or dynamic ---*/ + + + unsigned short nSolVar; + + if (dynamic) nSolVar = 3 * nVar; + else nSolVar = nVar; + + SolRest = new su2double[nSolVar]; + bool restart = (config->GetRestart() || config->GetRestart_Flow()); /*--- Check for a restart, initialize from zero otherwise ---*/ if (!restart) { + for (iVar = 0; iVar < nSolVar; iVar++) SolRest[iVar] = 0.0; for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - node[iPoint] = new CFEM_ElasVariable(Solution, nDim, nVar, config); + node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); } } else { + unsigned long index; + string text_line, filename; + ifstream restart_file; + su2double dull_val; + long Dyn_RestartIter; - /* The restart from a file needs to be implemented */ + /*--- Restart the solution from file information ---*/ - } + filename = config->GetSolution_FEMFileName(); + + if (dynamic) { + + Dyn_RestartIter = SU2_TYPE::Int(config->GetDyn_RestartIter())-1; + + filename = config->GetUnsteady_FileName(filename, Dyn_RestartIter); + } + + restart_file.open(filename.data(), ios::in); + + /*--- In case there is no file ---*/ + + if (restart_file.fail()) { + cout << "There is no FEM restart file!!" << endl; + exit(EXIT_FAILURE); + } + + /*--- In case this is a parallel simulation, we need to perform the + Global2Local index transformation first. ---*/ + + long *Global2Local; + Global2Local = new long[geometry->GetGlobal_nPointDomain()]; + + /*--- First, set all indices to a negative value by default ---*/ + + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) { + Global2Local[iPoint] = -1; + } + + /*--- Now fill array with the transform values only for local points ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { + Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; + } + + /*--- Read all lines in the restart file ---*/ + + long iPoint_Local; unsigned long iPoint_Global = 0; + + /*--- The first line is the header ---*/ + + getline (restart_file, text_line); + + while (getline (restart_file, text_line)) { + istringstream point_line(text_line); + /*--- Retrieve local index. If this node from the restart file lives + on a different processor, the value of iPoint_Local will be -1. + Otherwise, the local index for this node on the current processor + will be returned and used to instantiate the vars. ---*/ + iPoint_Local = Global2Local[iPoint_Global]; + if (iPoint_Local >= 0) { + if (dynamic){ + if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5]; + if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5] >> SolRest[6] >> SolRest[7] >> SolRest[8]; + } + else { + if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> Solution[1]; + if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2]; + } + + node[iPoint_Local] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); + } + iPoint_Global++; + } + + /*--- Instantiate the variable class with an arbitrary solution + at any halo/periodic nodes. The initial solution can be arbitrary, + because a send/recv is performed immediately in the solver (Set_MPI_Solution()). ---*/ + + for (iVar = 0; iVar < nSolVar; iVar++) SolRest[iVar] = 0.0; + for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { + node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); + } + + /*--- Close the restart file ---*/ + + restart_file.close(); + + /*--- Free memory needed for the transformation ---*/ + + delete [] Global2Local; + + } bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); @@ -307,6 +409,10 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi solutionPredictor = new su2double [nVar]; + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + } CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { @@ -343,6 +449,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] Res_Ext_Surf; if (Res_Time_Cont != NULL) delete[] Res_Time_Cont; delete [] Solution; + delete [] SolRest; delete [] GradN_X; delete [] GradN_x; @@ -424,47 +531,11 @@ void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *confi /*--- Find point and its type of transformation ---*/ iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); -// iPeriodic_Index = geometry->vertex[MarkerR][iVertex]->GetRotation_Type(); -// -// /*--- Retrieve the supplied periodic information. ---*/ -// angles = config->GetPeriodicRotation(iPeriodic_Index); -// -// /*--- Store angles separately for clarity. ---*/ -// theta = angles[0]; phi = angles[1]; psi = angles[2]; -// cosTheta = cos(theta); cosPhi = cos(phi); cosPsi = cos(psi); -// sinTheta = sin(theta); sinPhi = sin(phi); sinPsi = sin(psi); -// -// /*--- Compute the rotation matrix. Note that the implicit -// ordering is rotation about the x-axis, y-axis, -// then z-axis. Note that this is the transpose of the matrix -// used during the preprocessing stage. ---*/ -// rotMatrix[0][0] = cosPhi*cosPsi; rotMatrix[1][0] = sinTheta*sinPhi*cosPsi - cosTheta*sinPsi; rotMatrix[2][0] = cosTheta*sinPhi*cosPsi + sinTheta*sinPsi; -// rotMatrix[0][1] = cosPhi*sinPsi; rotMatrix[1][1] = sinTheta*sinPhi*sinPsi + cosTheta*cosPsi; rotMatrix[2][1] = cosTheta*sinPhi*sinPsi - sinTheta*cosPsi; -// rotMatrix[0][2] = -sinPhi; rotMatrix[1][2] = sinTheta*cosPhi; rotMatrix[2][2] = cosTheta*cosPhi; /*--- Copy conserved variables before performing transformation. ---*/ for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; -// /*--- Rotate the momentum components. ---*/ -// if (nDim == 2) { -// Solution[1] = rotMatrix[0][0]*Buffer_Receive_U[1*nVertexR+iVertex] + -// rotMatrix[0][1]*Buffer_Receive_U[2*nVertexR+iVertex]; -// Solution[2] = rotMatrix[1][0]*Buffer_Receive_U[1*nVertexR+iVertex] + -// rotMatrix[1][1]*Buffer_Receive_U[2*nVertexR+iVertex]; -// } -// else { -// Solution[1] = rotMatrix[0][0]*Buffer_Receive_U[1*nVertexR+iVertex] + -// rotMatrix[0][1]*Buffer_Receive_U[2*nVertexR+iVertex] + -// rotMatrix[0][2]*Buffer_Receive_U[3*nVertexR+iVertex]; -// Solution[2] = rotMatrix[1][0]*Buffer_Receive_U[1*nVertexR+iVertex] + -// rotMatrix[1][1]*Buffer_Receive_U[2*nVertexR+iVertex] + -// rotMatrix[1][2]*Buffer_Receive_U[3*nVertexR+iVertex]; -// Solution[3] = rotMatrix[2][0]*Buffer_Receive_U[1*nVertexR+iVertex] + -// rotMatrix[2][1]*Buffer_Receive_U[2*nVertexR+iVertex] + -// rotMatrix[2][2]*Buffer_Receive_U[3*nVertexR+iVertex]; -// } - /*--- Copy transformed conserved variables back into buffer. ---*/ for (iVar = 0; iVar < nVar; iVar++) node[iPoint]->SetSolution(iVar, Solution[iVar]); @@ -491,7 +562,8 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method - + bool restart = config->GetRestart(); + bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); /*--- Set vector entries to zero ---*/ //TODO: nPoint or nPointDomain @@ -510,7 +582,8 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ * * We don't need first_iter, because there is only one iteration per time step in linear analysis. */ - if ((initial_calc) && (linear_analysis)){ + if ((initial_calc && linear_analysis)|| + (restart && initial_calc_restart)){ Jacobian.SetValZero(); } @@ -522,7 +595,8 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ * * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. */ - if ((dynamic) && (initial_calc) && (first_iter)) { + if ((dynamic && initial_calc && first_iter) || + (restart && initial_calc_restart && first_iter)) { MassMatrix.SetValZero(); Compute_IntegrationConstants(config); } @@ -545,6 +619,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_SurfaceLoad_Res(); } + } void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } @@ -1679,13 +1754,19 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver node[iPoint]->GetSolution_time_n(iVar)) - a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); - } /*--- Set the acceleration in the node structure ---*/ node[iPoint]->SetSolution_Accel(Solution); + if (iPoint == 650) cout << node[iPoint]->GetSolution(0) << " " << node[iPoint]->GetSolution(1) << endl; + if (iPoint == 650) cout << node[iPoint]->GetSolution_time_n(0) << " " << node[iPoint]->GetSolution_time_n(1) << endl; + if (iPoint == 650) cout << node[iPoint]->GetSolution_Vel_time_n(0) << " " << node[iPoint]->GetSolution_Vel_time_n(1) << endl; + if (iPoint == 650) cout << node[iPoint]->GetSolution_Accel_time_n(0) << " " << node[iPoint]->GetSolution_Accel_time_n(1) << endl; + + if (iPoint == 650) cout << Solution[0] << " " << Solution[1] << endl; + for (iVar = 0; iVar < nVar; iVar++) { /*--- Velocity component of the solution ---*/ diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index a738a5f9d4d..dfcd61e1402 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1604,6 +1604,7 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned unsigned short iField, iVar; string Tag, text_line, AdjExt, UnstExt; unsigned long iExtIter = config->GetExtIter(); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); /*--- Define geometry constants in the solver structure ---*/ @@ -1623,14 +1624,18 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned if (config->GetAdjoint() || config->GetDiscrete_Adjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); + } else if (fem){ + filename = config->GetRestart_FEMFileName(); } else { - filename = config->GetSolution_FlowFileName(); + filename = config->GetRestart_FlowFileName(); } /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file ---*/ @@ -1914,18 +1919,23 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf ifstream solution_file; unsigned short iField; unsigned long iExtIter = config->GetExtIter(); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); /*--- Retrieve filename from config ---*/ if (config->GetAdjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); + } else if (fem){ + filename = config->GetRestart_FEMFileName(); } else { - filename = config->GetSolution_FlowFileName(); + filename = config->GetRestart_FlowFileName(); } /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file ---*/ diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 40444fdab1a..9a0afc680cc 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -72,6 +72,11 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim if (nDim == 2) Stress = new su2double [3]; else if (nDim == 3) Stress = new su2double [6]; + /*--- Initialization of variables ---*/ + for (iVar = 0; iVar < nVar; iVar++) { + Solution[iVar] = val_fea[iVar]; + } + if (dynamic_analysis){ Solution_time_n = new su2double [nVar]; Solution_Vel = new su2double [nVar]; @@ -80,10 +85,10 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim Solution_Accel_time_n = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++){ Solution_time_n[iVar] = val_fea[iVar]; - Solution_Vel[iVar] = val_fea[iVar]; - Solution_Vel_time_n[iVar] = val_fea[iVar]; - Solution_Accel[iVar] = val_fea[iVar]; - Solution_Accel_time_n[iVar] = val_fea[iVar]; + Solution_Vel[iVar] = val_fea[iVar+nVar]; + Solution_Vel_time_n[iVar] = val_fea[iVar+nVar]; + Solution_Accel[iVar] = val_fea[iVar+2*nVar]; + Solution_Accel_time_n[iVar] = val_fea[iVar+2*nVar]; } } else { @@ -99,7 +104,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim Solution_Pred = new su2double [nVar]; Solution_Pred_Old = new su2double [nVar]; for (iVar = 0; iVar < nVar; iVar++){ - FlowTraction[iVar] = val_fea[iVar]; + FlowTraction[iVar] = 0.0; Solution_Pred[iVar] = val_fea[iVar]; Solution_Pred_Old[iVar] = val_fea[iVar]; } @@ -119,6 +124,10 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim if (body_forces) Residual_Ext_Body = new su2double [nVar]; else Residual_Ext_Body = NULL; Residual_Ext_Surf = new su2double [nVar]; + for (iVar = 0; iVar < nVar; iVar++){ + Residual_Ext_Surf[iVar] = 0.0; + } + } CFEM_ElasVariable::~CFEM_ElasVariable(void) { diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index a1a31caef79..e2e25a19284 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -154,13 +154,29 @@ int main(int argc, char *argv[]) { if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) iExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); + /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && + config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) + iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { /*--- Check several conditions in order to merge the correct time step files. ---*/ - Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); - Physical_t = (iExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) - StopCalc = true; + + + /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY){ + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) + StopCalc = true; + } + else{ + Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) + StopCalc = true; + } if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0) && @@ -226,7 +242,66 @@ int main(int argc, char *argv[]) { output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iTimeSpectral, nZone); } - } else { + } + else if (config_container[ZONE_0]->GetWrt_Dynamic()){ + + /*--- Unsteady simulation: merge all unsteady time steps. First, + find the frequency and total number of files to write. ---*/ + + su2double Physical_dt, Physical_t; + unsigned long iExtIter = 0; + bool StopCalc = false; + bool SolutionInstantiated = false; + + + /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && + config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) + iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); + + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Check several conditions in order to merge the correct time step files. ---*/ + /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ + + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) + StopCalc = true; + + if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || + ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0)) || + (StopCalc)) { + + /*--- Set the current iteration number in the config class. ---*/ + config_container[ZONE_0]->SetExtIter(iExtIter); + + /*--- Read in the restart file for this time step ---*/ + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiated == false && (iExtIter == 0 || + ((config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetDyn_RestartIter())) || + iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + SolutionInstantiated = true; + } + else{ + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); + } + } + + if (rank == MASTER_NODE) + cout << "Writing the volume solution for time step " << iExtIter << "." << endl; + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); + } + + iExtIter++; + if (StopCalc) break; + } + + } else { /*--- Steady simulation: merge the single solution file. ---*/ From 52bc96730da78ef7c500d75153f96aa7f661fe3f Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 2 Sep 2015 09:33:14 -0700 Subject: [PATCH 066/269] FEM+FSI: MPI implementation - work in progress. --- SU2_CFD/include/solver_structure.hpp | 28 + SU2_CFD/include/solver_structure.inl | 4 + SU2_CFD/include/variable_structure.hpp | 26 + SU2_CFD/include/variable_structure.inl | 8 + SU2_CFD/src/integration_structure.cpp | 16 +- SU2_CFD/src/solver_direct_mean.cpp | 175 ++-- SU2_CFD/src/solver_fem_elasticity.cpp | 1033 +++++++++++++++++------ SU2_FSI/src/iteration_structure_fsi.cpp | 28 +- 8 files changed, 969 insertions(+), 349 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 2bd33476b63..fe3b011a860 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -170,6 +170,20 @@ class CSolver { * \param[in] val_iterlinsolver - Number of linear iterations. */ virtual void Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config); + + /*! + * \brief Impose the send-receive boundary condition for predicted FSI structural solutions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + virtual void Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config); + + /*! + * \brief Impose the send-receive boundary condition for old predicted FSI structural solutions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + virtual void Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config); /*! * \brief Impose the send-receive boundary condition. @@ -6700,6 +6714,20 @@ class CFEM_ElasticitySolver : public CSolver { */ void Set_MPI_Solution(CGeometry *geometry, CConfig *config); + /*! + * \brief Impose the send-receive boundary condition for predicted FSI structural solutions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config); + + /*! + * \brief Impose the send-receive boundary condition for old predicted FSI structural solutions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config); + /*! * \brief Set residuals to zero. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index ffc60e920af..9582f257b95 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -45,6 +45,10 @@ inline void CSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { } inline void CSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { } +inline void CSolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) { } + +inline void CSolver::Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config) { } + inline void CSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) { } inline void CSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *config) { } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 40a88973800..6e16d421c38 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -2019,6 +2019,12 @@ class CVariable { */ virtual void SetSolution_Pred(su2double *val_solution_pred); + /*! + * \brief A virtual member. Set the value of the solution predicted. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + virtual void SetSolution_Pred(unsigned short val_var, su2double val_solution_pred); + /*! * \brief A virtual member. Get the value of the solution predictor. * \param[in] val_var - Index of the variable. @@ -2043,6 +2049,12 @@ class CVariable { */ virtual void SetSolution_Pred_Old(su2double *val_solution_pred_Old); + /*! + * \brief A virtual member. Set the value of the old solution predicted. + * \param[in] val_solution_pred_old - Pointer to the residual vector. + */ + virtual void SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old); + /*! * \brief A virtual member. Get the value of the solution predictor. * \param[in] val_var - Index of the variable. @@ -2867,6 +2879,13 @@ class CFEM_ElasVariable : public CVariable { */ void SetSolution_Pred(su2double *val_solution_pred); + /*! + * \brief Set the value of the predicted solution. + * \param[in] val_var - Index of the variable + * \param[in] val_solution_pred - Value of the predicted solution. + */ + void SetSolution_Pred(unsigned short val_var, su2double val_solution_pred); + /*! * \brief Get the value of the solution predictor. * \param[in] val_var - Index of the variable. @@ -2891,6 +2910,13 @@ class CFEM_ElasVariable : public CVariable { */ void SetSolution_Pred_Old(su2double *val_solution_pred_Old); + /*! + * \brief A virtual member. Set the value of the old solution predicted. + * \param[in] val_var - Index of the variable + * \param[in] val_solution_pred_old - Value of the old predicted solution. + */ + void SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old); + /*! * \brief Get the value of the solution predictor. * \param[in] val_var - Index of the variable. diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 73256ab396c..2d2e1a2ffff 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -589,6 +589,8 @@ inline su2double CVariable::GetSolution_Accel_time_n(unsigned short val_var) { r inline su2double *CVariable::GetSolution_Accel_time_n(void) { return NULL; } +inline void CVariable::SetSolution_Pred(unsigned short val_var, su2double val_solution_pred){ } + inline void CVariable::SetSolution_Pred(su2double *val_solution_pred){ } inline void CVariable::SetSolution_Pred(void){ } @@ -597,6 +599,8 @@ inline su2double CVariable::GetSolution_Pred(unsigned short val_var){ return 0.0 inline su2double *CVariable::GetSolution_Pred(void){ return NULL; } +inline void CVariable::SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old){ } + inline void CVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ } inline void CVariable::SetSolution_Pred_Old(void){ } @@ -971,12 +975,16 @@ inline void CFEM_ElasVariable::SetSolution_Accel_time_n(su2double *val_solution_ for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; } +inline void CFEM_ElasVariable::SetSolution_Pred(unsigned short val_var, su2double val_solution_pred){ Solution_Pred[val_var] = val_solution_pred; } + inline void CFEM_ElasVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } inline void CFEM_ElasVariable::SetSolution_Pred(void){ for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; } +inline void CFEM_ElasVariable::SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old){ Solution_Pred_Old[val_var] = val_solution_pred_old; } + inline void CFEM_ElasVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } inline void CFEM_ElasVariable::SetSolution_Pred_Old(void){ diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 1d42d3f6ee0..ad7325d304b 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -214,18 +214,23 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration - unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON + unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); + bool restart = config->GetRestart(); // Restart solution + bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); // Restart iteration + /*--- Compute Mass Matrix ---*/ /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ /*--- problem is linear or nonlinear ---*/ - if ((dynamic) && (initial_calc) && (first_iter)){ + if ((dynamic && initial_calc && first_iter) || + (dynamic && restart && initial_calc_restart && first_iter)){ solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); } /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ - if ((linear_analysis) && (initial_calc)){ + if ((linear_analysis && initial_calc) || + (linear_analysis && restart && initial_calc_restart)){ solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics[VISC_TERM], config); } else if (!linear_analysis){ @@ -448,6 +453,9 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co // break; } + /*--- Perform the MPI communication of the solution ---*/ + solver_container[MainSolver]->Set_MPI_Solution(geometry, config); + } @@ -702,12 +710,14 @@ void CIntegration::SetStructural_Solver(CGeometry *geometry, CSolver *solver, CC } + } void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh) { unsigned long iPoint; + /*--- Update the solution only at the local points ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { solver->node[iPoint]->SetSolution_time_n(); diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 7651ec2be96..b3c4dce202b 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -9984,7 +9984,7 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo unsigned long iVertex, iPoint; su2double *Coord, VarCoord[3]; - //#ifndef HAVE_MPI + #ifndef HAVE_MPI unsigned long iPoint_Donor; su2double *CoordDonor, *DisplacementDonor; @@ -10013,80 +10013,109 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo } } } - flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); + #else + + int rank = MASTER_NODE; + MPI_Status send_stat[1], recv_stat[1], status; + MPI_Request send_req[1], recv_req[1]; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + /*--- Initialize buffers: we need to communicate coord + solution from the structure ---*/ + su2double *Buffer_Send_CoordDonor = new su2double [nDim]; + su2double *Buffer_Receive_CoordDonor = new su2double [nDim]; + su2double *Buffer_Send_DisplacementDonor = new su2double [nDim]; + su2double *Buffer_Receive_DisplacementDonor = new su2double [nDim]; + + /*--- Processor which hosts the fluid data and the structural data ---*/ + int Processor_Flow, Processor_Struct; + unsigned long Point_Flow, Point_Struct; + + /*--- Do the send process, by the moment we are sending each + node individually, this must be changed ---*/ + for (iMarker = 0; iMarker < fea_config->GetnMarker_All(); iMarker++) { + + if (fea_config->GetMarker_All_FSIinterface(iMarker) != 0) { + + for (iVertex = 0; iVertex < fea_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + + Point_Struct = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + + if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) { + + /*--- Find the associate pair to the original node (index and processor) ---*/ + Point_Flow = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorPoint(); + + Processor_Flow = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorProcessor(); + + /*--- We send coordinates and displacements from the structure to the fluid ---*/ + if (Processor_Flow != rank) { + + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_CoordDonor[iDim] = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(iDim); + Buffer_Send_DisplacementDonor[iDim] = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(iDim); + } + + SU2_MPI::Bsend(Buffer_Send_CoordDonor, nDim, MPI_DOUBLE, Processor_Flow, Point_Flow, MPI_COMM_WORLD); + SU2_MPI::Bsend(Buffer_Send_DisplacementDonor, nDim, MPI_DOUBLE, Processor_Flow, Point_Flow, MPI_COMM_WORLD); + + } + + } + } + } + } + + /*--- Now the loop is over the flow points ---*/ + for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { + + if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { + + for (iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + + Point_Flow = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + + if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()) { + + /*--- Find the associate pair to the original node ---*/ + Point_Struct = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorPoint(); + + Processor_Struct = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorProcessor(); + + /*--- We only receive the information that belong to other boundary ---*/ + if (Processor_Struct != rank){ + SU2_MPI::Recv(Buffer_Receive_CoordDonor, nDim, MPI_DOUBLE, Processor_Struct, Point_Flow, MPI_COMM_WORLD, &status); + SU2_MPI::Recv(Buffer_Receive_DisplacementDonor, nDim, MPI_DOUBLE, Processor_Struct, Point_Flow, MPI_COMM_WORLD, &status); + } + else { + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Receive_CoordDonor[iDim] = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(iDim); + Buffer_Receive_DisplacementDonor[iDim] = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(iDim); + } + } + + Coord = flow_geometry[MESH_0]->node[Point_Flow]->GetCoord(); + + for (iDim = 0; iDim < nDim; iDim++) + + VarCoord[iDim] = (Buffer_Receive_CoordDonor[iDim]+Buffer_Receive_DisplacementDonor[iDim])-Coord[iDim]; + + flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); + + } + } + } + } + + delete[] Buffer_Send_CoordDonor; + delete[] Buffer_Receive_CoordDonor; + delete[] Buffer_Send_DisplacementDonor; + delete[] Buffer_Receive_DisplacementDonor; + + #endif + + flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); - //#else - // - // int rank = MPI::COMM_WORLD.Get_rank(), jProcessor; - // su2double *Buffer_Send_Coord = new su2double [nDim]; - // su2double *Buffer_Receive_Coord = new su2double [nDim]; - // unsigned long jPoint; - // - // /*--- Do the send process, by the moment we are sending each - // node individually, this must be changed ---*/ - // for (iMarker = 0; iMarker < fea_config->GetnMarker_All(); iMarker++) { - // if (fea_config->GetMarker_All_KindBC(iMarker) == LOAD_BOUNDARY) { - // for (iVertex = 0; iVertex < fea_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { - // iPoint = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); - // - // if (fea_geometry[MESH_0]->node[iPoint]->GetDomain()) { - // - // /*--- Find the associate pair to the original node (index and processor) ---*/ - // jPoint = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetPeriodicPointDomain()[0]; - // jProcessor = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetPeriodicPointDomain()[1]; - // - // /*--- We only send the pressure that belong to other boundary ---*/ - // if (jProcessor != rank) { - // for (iDim = 0; iDim < nDim; iDim++) - // Buffer_Send_Coord[iDim] = fea_geometry[MESH_0]->node[iPoint]->GetCoord(iDim); - // - // MPI::COMM_WORLD.Bsend(Buffer_Send_Coord, nDim, MPI::DOUBLE, jProcessor, iPoint); - // } - // - // } - // } - // } - // } - // - // /*--- Now the loop is over the fea points ---*/ - // for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { - // if ((flow_config->GetMarker_All_KindBC(iMarker) == EULER_WALL) && - // (flow_config->GetMarker_All_Moving(iMarker) == YES)) { - // for (iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { - // iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); - // if (flow_geometry[MESH_0]->node[iPoint]->GetDomain()) { - // - // /*--- Find the associate pair to the original node ---*/ - // jPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetPeriodicPointDomain()[0]; - // jProcessor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetPeriodicPointDomain()[1]; - // - // /*--- We only receive the information that belong to other boundary ---*/ - // if (jProcessor != rank) - // MPI::COMM_WORLD.Recv(Buffer_Receive_Coord, nDim, MPI::DOUBLE, jProcessor, jPoint); - // else { - // for (iDim = 0; iDim < nDim; iDim++) - // Buffer_Send_Coord[iDim] = fea_geometry[MESH_0]->node[jPoint]->GetCoord(iDim); - // } - // - // /*--- Store the solution for both points ---*/ - // Coord = flow_geometry[MESH_0]->node[iPoint]->GetCoord(); - // - // for (iDim = 0; iDim < nDim; iDim++) - // VarCoord[iDim] = Buffer_Send_Coord[iDim]-Coord[iDim]; - // - // flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); - // - // - // } - // } - // } - // } - // delete[] Buffer_Send_Coord; - // delete[] Buffer_Receive_Coord; - // - //#endif - // } void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 9aa6aef83fd..248a8911770 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -86,8 +86,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation - string filename = config->GetSolution_FEMFileName(); - int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -142,6 +140,11 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi unsigned short nSolVar; + unsigned long index; + string text_line, filename; + ifstream restart_file; + su2double dull_val; + long Dyn_RestartIter; if (dynamic) nSolVar = 3 * nVar; else nSolVar = nVar; @@ -159,11 +162,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } } else { - unsigned long index; - string text_line, filename; - ifstream restart_file; - su2double dull_val; - long Dyn_RestartIter; /*--- Restart the solution from file information ---*/ @@ -181,6 +179,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- In case there is no file ---*/ if (restart_file.fail()) { + if (rank == MASTER_NODE) cout << "There is no FEM restart file!!" << endl; exit(EXIT_FAILURE); } @@ -188,62 +187,87 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- In case this is a parallel simulation, we need to perform the Global2Local index transformation first. ---*/ - long *Global2Local; - Global2Local = new long[geometry->GetGlobal_nPointDomain()]; + long *Global2Local = new long[geometry->GetGlobal_nPointDomain()]; /*--- First, set all indices to a negative value by default ---*/ - for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) { - Global2Local[iPoint] = -1; - } + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) + Global2Local[iPoint] = -1; /*--- Now fill array with the transform values only for local points ---*/ - for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { - Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; - } + for (iPoint = 0; iPoint < nPointDomain; iPoint++) + Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; - /*--- Read all lines in the restart file ---*/ + /*--- Read all lines in the restart file ---*/ - long iPoint_Local; unsigned long iPoint_Global = 0; + long iPoint_Local; + unsigned long iPoint_Global_Local = 0, iPoint_Global = 0; string text_line; + unsigned short rbuf_NotMatching = 0, sbuf_NotMatching = 0; /*--- The first line is the header ---*/ getline (restart_file, text_line); while (getline (restart_file, text_line)) { - istringstream point_line(text_line); + istringstream point_line(text_line); /*--- Retrieve local index. If this node from the restart file lives on a different processor, the value of iPoint_Local will be -1. Otherwise, the local index for this node on the current processor will be returned and used to instantiate the vars. ---*/ - iPoint_Local = Global2Local[iPoint_Global]; + iPoint_Local = Global2Local[iPoint_Global]; + if (iPoint_Local >= 0) { if (dynamic){ if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5]; if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5] >> SolRest[6] >> SolRest[7] >> SolRest[8]; } else { - if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> Solution[1]; + if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1]; if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2]; } node[iPoint_Local] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); + iPoint_Global_Local++; } iPoint_Global++; } + /*--- Detect a wrong solution file ---*/ + + if (iPoint_Global_Local < nPointDomain) { sbuf_NotMatching = 1; } + + #ifndef HAVE_MPI + rbuf_NotMatching = sbuf_NotMatching; + #else + SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); + #endif + + if (rbuf_NotMatching != 0) { + if (rank == MASTER_NODE) { + cout << endl << "The solution file " << filename.data() << " doesn't match with the mesh file!" << endl; + cout << "It could be empty lines at the end of the file." << endl << endl; + } + #ifndef HAVE_MPI + exit(EXIT_FAILURE); + #else + MPI_Barrier(MPI_COMM_WORLD); + MPI_Abort(MPI_COMM_WORLD,1); + MPI_Finalize(); + #endif + } + /*--- Instantiate the variable class with an arbitrary solution at any halo/periodic nodes. The initial solution can be arbitrary, because a send/recv is performed immediately in the solver (Set_MPI_Solution()). ---*/ - for (iVar = 0; iVar < nSolVar; iVar++) SolRest[iVar] = 0.0; - for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = nPointDomain; iPoint < nPoint; iPoint++) { node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); } + /*--- Close the restart file ---*/ restart_file.close(); @@ -471,83 +495,277 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { - //TODO: clean unused variables here. - unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; - unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; -#ifdef HAVE_MPI - int send_to, receive_from; - MPI_Status status; -#endif + unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - for (iMarker = 0; iMarker < nMarker; iMarker++) { + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && - (config->GetMarker_All_SendRecv(iMarker) > 0)) { + unsigned short nSolVar; - MarkerS = iMarker; MarkerR = iMarker+1; + if (dynamic) nSolVar = 3 * nVar; + else nSolVar = nVar; -#ifdef HAVE_MPI - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; -#endif + #ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; + #endif - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; - nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; + for (iMarker = 0; iMarker < nMarker; iMarker++) { - /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new su2double [nBufferR_Vector]; - Buffer_Send_U = new su2double[nBufferS_Vector]; + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { - /*--- Copy the solution that should be sended ---*/ - for (iVertex = 0; iVertex < nVertexS; iVertex++) { - iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); - } + MarkerS = iMarker; MarkerR = iMarker+1; + + #ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + #endif -#ifdef HAVE_MPI + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); + if (dynamic){ + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Vel(iVar); + Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Accel(iVar); + } + } + } - /*--- Send/Receive information using Sendrecv ---*/ - SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, - Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + #ifdef HAVE_MPI -#else + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - /*--- Receive information without MPI ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - } + #else -#endif + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + if (dynamic){ + for (iVar = nVar; iVar < 3*nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + } - /*--- Deallocate send buffer ---*/ - delete [] Buffer_Send_U; + #endif - /*--- Do the coordinate transformation ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; - /*--- Find point and its type of transformation ---*/ - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { - /*--- Copy conserved variables before performing transformation. ---*/ - for (iVar = 0; iVar < nVar; iVar++) - Solution[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); - /*--- Copy transformed conserved variables back into buffer. ---*/ - for (iVar = 0; iVar < nVar; iVar++) - node[iPoint]->SetSolution(iVar, Solution[iVar]); + /*--- Copy solution variables. ---*/ + for (iVar = 0; iVar < nSolVar; iVar++) + SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; - } + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution(iVar, SolRest[iVar]); - /*--- Deallocate receive buffer ---*/ - delete [] Buffer_Receive_U; + if (dynamic){ - } + for (iVar = 0; iVar < nVar; iVar++){ + node[iPoint]->SetSolution_Vel(iVar, SolRest[iVar+nVar]); + node[iPoint]->SetSolution_Accel(iVar, SolRest[iVar+2*nVar]); + } + + } + + } - } + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + +} + +void CFEM_ElasticitySolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) { + + + unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + #ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; + #endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + + #ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + #endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred(iVar); + } + + #ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + + #else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + + #endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy predicted solution variables back into the variables. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution_Pred(iVar, Buffer_Receive_U[iVar*nVertexR+iVertex]); + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + +} + +void CFEM_ElasticitySolver::Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config) { + + /*--- We are communicating the solution predicted, current and old, and the old solution ---*/ + /*--- necessary for the Aitken relaxation ---*/ + + unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + /*--- Analogous to the dynamic solution, in this case we need 3 * nVar variables per node ---*/ + unsigned short nSolVar; + nSolVar = 3 * nVar; + + #ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; + #endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + + #ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + #endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_Old(iVar); + Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred(iVar); + Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred_Old(iVar); + } + } + + #ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + + #else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nSolVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + + #endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++){ + node[iPoint]->SetSolution_Old(iVar, Buffer_Receive_U[iVar*nVertexR+iVertex]); + node[iPoint]->SetSolution_Pred(iVar, Buffer_Receive_U[(iVar+nVar)*nVertexR+iVertex]); + node[iPoint]->SetSolution_Pred_Old(iVar, Buffer_Receive_U[(iVar+2*nVar)*nVertexR+iVertex]); + } + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } } @@ -562,8 +780,8 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method - bool restart = config->GetRestart(); - bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); + bool restart = config->GetRestart(); // Restart analysis + bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); // Initial calculation for restart /*--- Set vector entries to zero ---*/ //TODO: nPoint or nPointDomain @@ -583,7 +801,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ * We don't need first_iter, because there is only one iteration per time step in linear analysis. */ if ((initial_calc && linear_analysis)|| - (restart && initial_calc_restart)){ + (restart && initial_calc_restart && linear_analysis)){ Jacobian.SetValZero(); } @@ -596,7 +814,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. */ if ((dynamic && initial_calc && first_iter) || - (restart && initial_calc_restart && first_iter)) { + (dynamic && restart && initial_calc_restart && first_iter)) { MassMatrix.SetValZero(); Compute_IntegrationConstants(config); } @@ -635,11 +853,6 @@ void CFEM_ElasticitySolver::SetInitialCondition(CGeometry **geometry, CSolver ** if (incremental_load){ for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_OldSolution(); - - // This is the operation - // for (unsigned short iVar = 0; iVar < nVar; iVar++) - // Solution_Old[iVar] = Solution[iVar]; - } @@ -656,10 +869,6 @@ void CFEM_ElasticitySolver::ResetInitialCondition(CGeometry **geometry, CSolver if (incremental_load){ for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_Solution(); - - // This is the operation - // for (unsigned short iVar = 0; iVar < nVar; iVar++) - // Solution[iVar] = Solution_Old[iVar]; } } @@ -829,6 +1038,8 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so su2double Mab; unsigned short NelNodes, jNode; + cout << "NUMBER OF ELEMENTS: " << geometry->GetnElem() << endl; + /*--- Loops over all the elements ---*/ for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -1067,137 +1278,141 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s bool outputReactions = false; - ofstream myfile; - if (outputReactions) myfile.open ("Reactions.txt"); + if (outputReactions) { - unsigned short iMarker; - unsigned long iVertex; - su2double val_Reaction; + ofstream myfile; + myfile.open ("Reactions.txt"); - bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + unsigned short iMarker; + unsigned long iVertex; + su2double val_Reaction; - if (!dynamic){ - /*--- Loop over all the markers ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) - switch (config->GetMarker_All_KindBC(iMarker)) { + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - /*--- If it corresponds to a clamped boundary ---*/ + if (!dynamic){ + /*--- Loop over all the markers ---*/ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { - case CLAMPED_BOUNDARY: + /*--- If it corresponds to a clamped boundary ---*/ - if (outputReactions) myfile << "MARKER " << iMarker << ":" << endl; + case CLAMPED_BOUNDARY: - /*--- Loop over all the vertices ---*/ - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + myfile << "MARKER " << iMarker << ":" << endl; - /*--- Get node index ---*/ - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + /*--- Loop over all the vertices ---*/ + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - if (outputReactions) myfile << "Node " << iPoint << "." << " \t "; + /*--- Get node index ---*/ + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - for (iDim = 0; iDim < nDim; iDim++){ - /*--- Retrieve coordinate ---*/ - val_Coord = geometry->node[iPoint]->GetCoord(iDim); - if (outputReactions) myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; - } + myfile << "Node " << iPoint << "." << " \t "; - for (iVar = 0; iVar < nVar; iVar++){ - /*--- Retrieve reaction ---*/ - val_Reaction = LinSysReact.GetBlock(iPoint, iVar); - if (outputReactions) myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; - } + for (iDim = 0; iDim < nDim; iDim++){ + /*--- Retrieve coordinate ---*/ + val_Coord = geometry->node[iPoint]->GetCoord(iDim); + myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + } - if (outputReactions) myfile << endl; - } - if (outputReactions) myfile << endl; - break; - } - } - else if (dynamic){ - - switch (config->GetKind_TimeIntScheme_FEA()) { - case (CD_EXPLICIT): - cout << "NOT IMPLEMENTED YET" << endl; - break; - case (NEWMARK_IMPLICIT): - - /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ - if (linear_analysis){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) - a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) - a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + /*--- Retrieve reaction ---*/ + val_Reaction = LinSysReact.GetBlock(iPoint, iVar); + myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; } - TimeRes_Aux.SetBlock(iPoint, Residual); + + myfile << endl; } - } - else if (nonlinear_analysis){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) - + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) - + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + myfile << endl; + break; + } + } + else if (dynamic){ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + case (NEWMARK_IMPLICIT): + + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); } - TimeRes_Aux.SetBlock(iPoint, Residual); } - } - /*--- Once computed, compute M*TimeRes_Aux ---*/ - MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); - /*--- Loop over all the markers ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) - switch (config->GetMarker_All_KindBC(iMarker)) { + /*--- Loop over all the markers ---*/ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { - /*--- If it corresponds to a clamped boundary ---*/ + /*--- If it corresponds to a clamped boundary ---*/ - case CLAMPED_BOUNDARY: + case CLAMPED_BOUNDARY: - if (outputReactions) myfile << "MARKER " << iMarker << ":" << endl; + myfile << "MARKER " << iMarker << ":" << endl; - /*--- Loop over all the vertices ---*/ - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + /*--- Loop over all the vertices ---*/ + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - /*--- Get node index ---*/ - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + /*--- Get node index ---*/ + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - if (outputReactions) myfile << "Node " << iPoint << "." << " \t "; + myfile << "Node " << iPoint << "." << " \t "; - for (iDim = 0; iDim < nDim; iDim++){ - /*--- Retrieve coordinate ---*/ - val_Coord = geometry->node[iPoint]->GetCoord(iDim); - if (outputReactions) myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; - } + for (iDim = 0; iDim < nDim; iDim++){ + /*--- Retrieve coordinate ---*/ + val_Coord = geometry->node[iPoint]->GetCoord(iDim); + myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + } - /*--- Retrieve the time contribution ---*/ - Res_Time_Cont = TimeRes.GetBlock(iPoint); + /*--- Retrieve the time contribution ---*/ + Res_Time_Cont = TimeRes.GetBlock(iPoint); - for (iVar = 0; iVar < nVar; iVar++){ - /*--- Retrieve reaction ---*/ - val_Reaction = LinSysReact.GetBlock(iPoint, iVar) + Res_Time_Cont[iVar]; - if (outputReactions) myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; - } + for (iVar = 0; iVar < nVar; iVar++){ + /*--- Retrieve reaction ---*/ + val_Reaction = LinSysReact.GetBlock(iPoint, iVar) + Res_Time_Cont[iVar]; + myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + } - if (outputReactions) myfile << endl; - } - if (outputReactions) myfile << endl; - break; - } + myfile << endl; + } + myfile << endl; + break; + } - break; - case (GA_IMPLICIT): - cout << "NOT IMPLEMENTED YET" << endl; - break; - } + break; + case (GA_IMPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + } - } + } - if (outputReactions) myfile.close(); + myfile.close(); + + } #ifdef HAVE_MPI @@ -1381,7 +1596,7 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver } else { /*--- Compute the norm of the solution vector Uk ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ for (iVar = 0; iVar < nVar; iVar++){ solNorm += node[iPoint]->GetSolution(iVar) * node[iPoint]->GetSolution(iVar); } @@ -1602,11 +1817,14 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation. + bool restart = config->GetRestart(); // Restart solution + bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); // Restart iteration + bool incremental_load = config->GetIncrementalLoad(); if (!dynamic){ - for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ /*--- Add the external contribution to the residual ---*/ /*--- (the terms that are constant over the time step) ---*/ if (incremental_load){ @@ -1637,10 +1855,11 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv * */ - if (((nonlinear_analysis) && ((newton_raphson) || (first_iter)))|| - ((linear_analysis) && (initial_calc))) { - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++){ - for (jPoint = 0; jPoint < geometry->GetnPoint(); jPoint++){ + if ((nonlinear_analysis && (newton_raphson || first_iter)) || + (linear_analysis && initial_calc) || + (linear_analysis && restart && initial_calc_restart)) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + for (jPoint = 0; jPoint < nPointDomain; jPoint++){ for(iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); @@ -1653,7 +1872,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ if (linear_analysis){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { for (iVar = 0; iVar < nVar; iVar++){ Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) @@ -1663,7 +1882,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } } else if (nonlinear_analysis){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { for (iVar = 0; iVar < nVar; iVar++){ Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) @@ -1676,7 +1895,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- Once computed, compute M*TimeRes_Aux ---*/ MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { /*--- Dynamic contribution ---*/ /*--- TODO: Do I have to scale this one? I don't think so... ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); @@ -1709,7 +1928,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } - } void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { @@ -1725,7 +1943,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver /*--- Update solution ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { for (iVar = 0; iVar < nVar; iVar++) { @@ -1743,7 +1961,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver if (dynamic){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { for (iVar = 0; iVar < nVar; iVar++) { @@ -1760,13 +1978,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver node[iPoint]->SetSolution_Accel(Solution); - if (iPoint == 650) cout << node[iPoint]->GetSolution(0) << " " << node[iPoint]->GetSolution(1) << endl; - if (iPoint == 650) cout << node[iPoint]->GetSolution_time_n(0) << " " << node[iPoint]->GetSolution_time_n(1) << endl; - if (iPoint == 650) cout << node[iPoint]->GetSolution_Vel_time_n(0) << " " << node[iPoint]->GetSolution_Vel_time_n(1) << endl; - if (iPoint == 650) cout << node[iPoint]->GetSolution_Accel_time_n(0) << " " << node[iPoint]->GetSolution_Accel_time_n(1) << endl; - - if (iPoint == 650) cout << Solution[0] << " " << Solution[1] << endl; - for (iVar = 0; iVar < nVar; iVar++) { /*--- Velocity component of the solution ---*/ @@ -1786,6 +1997,10 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver } + /*--- Perform the MPI communication of the solution ---*/ + +// Set_MPI_Solution(geometry, config); + } @@ -1810,10 +2025,6 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); - /*--- Perform the MPI communication of the solution ---*/ - - Set_MPI_Solution(geometry, config); - } @@ -1822,21 +2033,13 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - - unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; // Variables for iteration over markers unsigned short markFEA, markFlow; unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - - - /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ - /*--- This may be improved ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++){ - node[iPoint]->Clear_FlowTraction(); - } + unsigned long jVertex; // Variables for iteration over vertices and nodes unsigned short iDim, jDim; @@ -1846,12 +2049,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || (flow_config->GetKind_Solver() == RANS) ); - unsigned long nodeVertex, donorVertex; - su2double *normalsVertex; - - su2double *tn_f; - tn_f = new su2double [nVar]; // Fluid traction - /*--- Redimensionalize the pressure ---*/ su2double *Velocity_ND, *Velocity_Real; @@ -1876,8 +2073,8 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe /*--- Apply a ramp to the transfer of the fluid loads ---*/ su2double ModAmpl; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); + su2double CurrentTime = fea_config->GetCurrent_DynTime(); + su2double Static_Time = fea_config->GetStatic_Time(); bool Ramp_Load = fea_config->GetRamp_Load(); su2double Ramp_Time = fea_config->GetRamp_Time(); @@ -1886,11 +2083,18 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe else if((CurrentTime > Static_Time) && (CurrentTime <= (Static_Time + Ramp_Time)) && (Ramp_Load)){ - ModAmpl=(CurrentTime-Static_Time)/Ramp_Time; - ModAmpl=max(ModAmpl,0.0); - ModAmpl=min(ModAmpl,1.0); + ModAmpl = (CurrentTime-Static_Time) / Ramp_Time; + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); } - else{ ModAmpl=1.0; } + else{ ModAmpl = 1.0; } + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; + + nMarkerFEA = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side // Parameters for the calculations // Pn: Pressure @@ -1902,79 +2106,87 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe su2double **Grad_PrimVar; su2double Tau[3][3]; - /*--- Number of markers in the FSI interface ---*/ - nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; + unsigned long Point_Flow, Point_Struct; + su2double *Normal_Flow; - nMarkerFEA = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side - nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side + su2double *tn_f; + tn_f = new su2double [nVar]; // Fluid traction + +#ifndef HAVE_MPI + + /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ + /*--- This may be improved ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++){ + node[iPoint]->Clear_FlowTraction(); + } /*--- Loop over all the markers on the interface ---*/ - for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + for (iMarkerFSIint = 0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ /*--- Identification of the markers ---*/ /*--- Current structural marker ---*/ - for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + for (iMarkerFEA = 0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ if ( fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA=iMarkerFEA; + markFEA = iMarkerFEA; } } /*--- Current fluid marker ---*/ - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow=iMarkerFlow; + markFlow = iMarkerFlow; } } nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker - /*--- Loop over the nodes in the structural mesh, calculate the tf vector (unitary) ---*/ - /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ - for (iVertex=0; iVertex < nVertexFlow; iVertex++){ + /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ + /*--- Here, we are looping over the fluid, and we find the pointer to the structure (Point_Struct) ---*/ + for (iVertex = 0; iVertex < nVertexFlow; iVertex++){ // Node from the flow mesh - nodeVertex=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); + Point_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); // Normals at the vertex: these normals go inside the fluid domain. - normalsVertex = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); + Normal_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); // Corresponding node on the structural mesh - donorVertex = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); + Point_Struct = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); // Retrieve the values of pressure, viscosity and density if (incompressible){ - Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetPressureInc(); - Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); if (viscous_flow){ - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetLaminarViscosityInc(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetDensityInc(); + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); } } else if (compressible){ - Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetPressure(); - Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); if (viscous_flow){ - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetLaminarViscosity(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex]->GetDensity(); + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); } } // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iDim] = -(Pn-Pinf)*normalsVertex[iDim]; + tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; } // Calculate tn in the fluid nodes for the viscous term @@ -1996,7 +2208,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe TWO3*Viscosity*div_vel*Dij; // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iDim] += Tau[iDim][jDim]*normalsVertex[jDim]; + tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; } } } @@ -2008,13 +2220,296 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe } /*--- Set the Flow traction ---*/ - //node[donorVertex]->Set_FlowTraction(Residual); + //node[Point_Struct]->Set_FlowTraction(Residual); /*--- Add to the Flow traction (to add values to corners...) ---*/ - node[donorVertex]->Add_FlowTraction(Residual); + node[Point_Struct]->Add_FlowTraction(Residual); + } + + } + +#else + + int rank = MASTER_NODE; + MPI_Status send_stat[1], recv_stat[1], status; + MPI_Request send_req[1], recv_req[1]; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + /*--- Initialize buffers: we need to communicate the tractions from the fluid side: Residual ---*/ + su2double *Buffer_Send_Residual = new su2double [nDim]; + su2double *Buffer_Receive_Residual = new su2double [nDim]; + + /*--- Processor which hosts the fluid data and the structural data ---*/ + int Processor_Flow, Processor_Struct; + + /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ + /*--- This may be improved ---*/ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + node[iPoint]->Clear_FlowTraction(); + } + + /*--- Loop over all the markers on the interface ---*/ + /*--- TODO: check if it may be a potential problem to put the communication inside the loop. ---*/ + + for (iMarkerFSIint = 0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + + /*--- Identification of the markers ---*/ + + /*--- Current structural marker ---*/ + for (iMarkerFEA = 0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + if (fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ + markFEA = iMarkerFEA; + } + } + + /*--- Current fluid marker ---*/ + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ + markFlow = iMarkerFlow; + } + } + + nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker + nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker + + /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) and send it, if necessary ---*/ + /*--- Here, we are looping over the fluid, and we find the pointer to the structure (Point_Struct) ---*/ + for (iVertex = 0; iVertex < nVertexFlow; iVertex++){ + + // Node from the flow mesh + Point_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); + + // We check if the processor "rank" owns this node so it makes sense to make the calculations + if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()) { + + // Get the donor point (on the structural mesh) + Point_Struct = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); + + // Get the donor processor to which the message will be sent (on the structural mesh) + Processor_Struct = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorProcessor(); + + // We check if the processor "rank" is equal to the structural; if so, we don't need to send the message + if (Processor_Struct != rank) { + + // Get the normal at the vertex: this normal goes inside the fluid domain. + Normal_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); + // TODO: This can be taken out (one thing at a time!) + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); + + } + } + else if (compressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); + // TODO: This can be taken out (one thing at a time!) + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); + + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Dij = 0.0; if (iDim == jDim) Dij = 1.0; + + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; + } + } + } + + // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) + // Store in the Buffer_Send_Residual + + for (iDim = 0; iDim < nDim; iDim++) { + Buffer_Send_Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; + } + + // Send the message + SU2_MPI::Bsend(Buffer_Send_Residual, nDim, MPI_DOUBLE, Processor_Struct, Point_Struct, MPI_COMM_WORLD); + + } + + } + + } + + } + + /*--- Loop over all the markers on the interface ---*/ + /*--- TODO: check if it may be a potential problem to put the communication inside the loop. ---*/ + + for (iMarkerFSIint = 0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + + /*--- Identification of the markers ---*/ + + /*--- Current structural marker ---*/ + for (iMarkerFEA = 0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ + if (fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ + markFEA = iMarkerFEA; + } + } + + /*--- Current fluid marker ---*/ + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ + markFlow = iMarkerFlow; + } + } + + nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker + nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker + + /*--- Now we loop over the nodes on the structural side ---*/ + /*--- We check whether we need to receive a message or recompute tn ---*/ + for (iVertex = 0; iVertex < nVertexFEA; iVertex++){ + + // Node from the flow mesh + Point_Struct = fea_geometry[MESH_0]->vertex[markFEA][iVertex]->GetNode(); + + // We check if the processor "rank" owns this node so it makes sense to make the calculations + if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) { + + // Get the donor point (on the fluid mesh) + Point_Flow = fea_geometry[MESH_0]->vertex[markFEA][iVertex]->GetDonorPoint(); + + // Get the donor processor from which the message will be received (on the fluid mesh) + Processor_Flow = fea_geometry[MESH_0]->vertex[markFEA][iVertex]->GetDonorProcessor(); + + // We check if the processor "rank" is equal to the structural; if so, we need to receive the message + if (Processor_Flow != rank) { + SU2_MPI::Recv(Buffer_Receive_Residual, nDim, MPI_DOUBLE, Processor_Flow, Point_Struct, MPI_COMM_WORLD, &status); + } + // Otherwise, we need to compute the tractions + else { + + // Get the normals at the vertex: these normals go inside the fluid domain. + // We need to search for the normal corresponding to the particular Point_Flow + for (jVertex = 0; jVertex < nVertexFlow; jVertex++){ + if (flow_geometry[MESH_0]->vertex[markFlow][jVertex]->GetNode() == Point_Flow) + Normal_Flow = flow_geometry[MESH_0]->vertex[markFlow][jVertex]->GetNormal(); + } + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); + // TODO: This can be taken out (one thing at a time!) + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); + + } + } + else if (compressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); + // TODO: This can be taken out (one thing at a time!) + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); + + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Dij = 0.0; if (iDim == jDim) Dij = 1.0; + + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; + } + } + } + + // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) + // Store in the Buffer_Send_Residual + + for (iDim = 0; iDim < nDim; iDim++) { + Buffer_Receive_Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; + } + + } + + /*--- Add to the Flow traction (to add values to corners...) ---*/ + node[Point_Struct]->Add_FlowTraction(Buffer_Receive_Residual); + + } + } } + /*--- Deallocate the memory ---*/ + delete[] Buffer_Send_Residual; + delete[] Buffer_Receive_Residual; + + +#endif + + delete[] tn_f; + } @@ -2035,8 +2530,8 @@ void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); - //TODO: nPoint or nPointDomain - for (iPoint=0; iPoint < nPoint; iPoint++){ + //To nPointDomain: we need to communicate the predicted solution after setting it + for (iPoint=0; iPoint < nPointDomain; iPoint++){ if (predOrder==0) fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); else if (predOrder==1) { @@ -2125,15 +2620,15 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, } else{ - //TODO: nPoint or nPointDomain - for (iPoint=0; iPoint < nPoint; iPoint++){ + // To nPointDomain; we need to have communicated Solution, Solution_Old, Solution_Pred and Solution_Pred_Old beforehand + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); - for (iDim=0; iDim < nDim; iDim++){ + for (iDim = 0; iDim < nDim; iDim++){ /*--- Compute the deltaU and deltaU_n+1 ---*/ deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; @@ -2209,8 +2704,8 @@ void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, cout << "No relaxation parameter used. " << endl; } - //TODO: nPoint or nPointDomain - for (iPoint=0; iPoint < nPoint; iPoint++){ + // To nPointDomain; we need to communicate the solutions (predicted, old and old predicted) after this routine + for (iPoint=0; iPoint < nPointDomain; iPoint++){ /*--- Retrieve pointers to the predicted and calculated solutions ---*/ dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); @@ -2240,10 +2735,12 @@ void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, unsigned long nPoint, nDim; su2double *valSolutionPred, *valSolution; + /*--- TODO: I don't think I'm using this routine right now, but I may need to use it after SetAitken_Relaxation... ---*/ + nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); //TODO: nPoint or nPointDomain - for (iPoint=0; iPoint < nPoint; iPoint++){ + for (iPoint=0; iPoint < nPointDomain; iPoint++){ valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 3a5364e8338..b73ce0afad9 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -76,7 +76,6 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - /*-----------------------------------------------------------------*/ /*------------------- Set FEA loads from fluid --------------------*/ /*-----------------------------------------------------------------*/ @@ -85,7 +84,6 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, ExtIter); - /*-----------------------------------------------------------------*/ /*------------------ Structural subiteration ----------------------*/ /*-----------------------------------------------------------------*/ @@ -156,7 +154,6 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); - } void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, @@ -804,6 +801,10 @@ void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolv } + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred_Old(geometry_container[iZone][MESH_0], config_container[iZone]); + } + } void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, @@ -818,8 +819,25 @@ void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ - solver_container[ZONE_1][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[ZONE_1], config_container[ZONE_1], - solver_container[ZONE_1]); + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + solver_container[iZone][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[iZone], config_container[iZone], + solver_container[iZone]); + + } + + /*--- For parallel simulations we need to communicate the predicted solution before updating the fluid mesh ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred(geometry_container[iZone][MESH_0], config_container[iZone]); + } } From b73741d53717fc8ecee52a65b22a1ae55f66fd40 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 2 Sep 2015 13:27:02 -0700 Subject: [PATCH 067/269] FSI_FEM: modified SetFEA_Load routine. --- SU2_CFD/src/solver_fem_elasticity.cpp | 267 +++++++------------------- 1 file changed, 74 insertions(+), 193 deletions(-) diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 248a8911770..7d3e7da3717 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2107,7 +2107,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe su2double Tau[3][3]; unsigned long Point_Flow, Point_Struct; - su2double *Normal_Flow; + su2double *Normal_Flow, *Normal_Struct; su2double *tn_f; tn_f = new su2double [nVar]; // Fluid traction @@ -2238,6 +2238,8 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe su2double *Buffer_Send_Residual = new su2double [nDim]; su2double *Buffer_Receive_Residual = new su2double [nDim]; + su2double *nodeCoord = new su2double [nDim]; + /*--- Processor which hosts the fluid data and the structural data ---*/ int Processor_Flow, Processor_Struct; @@ -2247,259 +2249,138 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe node[iPoint]->Clear_FlowTraction(); } - /*--- Loop over all the markers on the interface ---*/ - /*--- TODO: check if it may be a potential problem to put the communication inside the loop. ---*/ - - for (iMarkerFSIint = 0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - - /*--- Identification of the markers ---*/ - - /*--- Current structural marker ---*/ - for (iMarkerFEA = 0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if (fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA = iMarkerFEA; - } - } - - /*--- Current fluid marker ---*/ - for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow = iMarkerFlow; - } - } + /*--- Do the send process, by the moment we are sending each + node individually, this must be changed ---*/ + for (iMarkerFlow = 0; iMarkerFlow < flow_config->GetnMarker_All(); iMarkerFlow++) { - nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker - nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) != 0) { - /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) and send it, if necessary ---*/ - /*--- Here, we are looping over the fluid, and we find the pointer to the structure (Point_Struct) ---*/ - for (iVertex = 0; iVertex < nVertexFlow; iVertex++){ + for (iVertex= 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarkerFlow]; iVertex++) { // Node from the flow mesh - Point_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); + Point_Flow = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetNode(); // We check if the processor "rank" owns this node so it makes sense to make the calculations if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()) { // Get the donor point (on the structural mesh) - Point_Struct = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); + Point_Struct = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetDonorPoint(); // Get the donor processor to which the message will be sent (on the structural mesh) - Processor_Struct = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorProcessor(); - - // We check if the processor "rank" is equal to the structural; if so, we don't need to send the message - if (Processor_Struct != rank) { + Processor_Struct = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetDonorProcessor(); - // Get the normal at the vertex: this normal goes inside the fluid domain. - Normal_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); + // Get the normal at the vertex: this normal goes inside the fluid domain. + Normal_Flow = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetNormal(); - // Retrieve the values of pressure, viscosity and density - if (incompressible){ + // Retrieve the values of pressure, viscosity and density + if (incompressible){ - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); - // TODO: This can be taken out (one thing at a time!) - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); + // TODO: This can be taken out (one thing at a time!) + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - if (viscous_flow){ + if (viscous_flow){ - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); - } } - else if (compressible){ + } + else if (compressible){ - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); - // TODO: This can be taken out (one thing at a time!) - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); + // TODO: This can be taken out (one thing at a time!) + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - if (viscous_flow){ + if (viscous_flow){ - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); + Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); - } } + } - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; - } + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; + } - // Calculate tn in the fluid nodes for the viscous term + // Calculate tn in the fluid nodes for the viscous term - if (viscous_flow){ + if (viscous_flow){ - // Divergence of the velocity - div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; - if (incompressible) div_vel = 0.0; + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + for (iDim = 0; iDim < nDim; iDim++) { - for (jDim = 0 ; jDim < nDim; jDim++) { - // Dirac delta - Dij = 0.0; if (iDim == jDim) Dij = 1.0; + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Dij = 0.0; if (iDim == jDim) Dij = 1.0; - // Viscous stress - Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - - TWO3*Viscosity*div_vel*Dij; + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Dij; - // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; - } + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; } } - - // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) - // Store in the Buffer_Send_Residual - - for (iDim = 0; iDim < nDim; iDim++) { - Buffer_Send_Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; - } - - // Send the message - SU2_MPI::Bsend(Buffer_Send_Residual, nDim, MPI_DOUBLE, Processor_Struct, Point_Struct, MPI_COMM_WORLD); - } - } + // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) + // Store in the Buffer_Send_Residual - } + for (iDim = 0; iDim < nDim; iDim++) { + Buffer_Send_Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; + } - } + // Send the message + SU2_MPI::Bsend(Buffer_Send_Residual, nDim, MPI_DOUBLE, Processor_Struct, Point_Struct, MPI_COMM_WORLD); - /*--- Loop over all the markers on the interface ---*/ - /*--- TODO: check if it may be a potential problem to put the communication inside the loop. ---*/ + } - for (iMarkerFSIint = 0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + } - /*--- Identification of the markers ---*/ + } - /*--- Current structural marker ---*/ - for (iMarkerFEA = 0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if (fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA = iMarkerFEA; - } - } + } - /*--- Current fluid marker ---*/ - for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow = iMarkerFlow; - } - } + /*--- Do the send process, by the moment we are sending each + node individually, this must be changed ---*/ + for (iMarkerFEA = 0; iMarkerFEA < fea_config->GetnMarker_All(); iMarkerFEA++) { - nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker - nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker + if (fea_config->GetMarker_All_FSIinterface(iMarkerFEA) != 0) { - /*--- Now we loop over the nodes on the structural side ---*/ - /*--- We check whether we need to receive a message or recompute tn ---*/ - for (iVertex = 0; iVertex < nVertexFEA; iVertex++){ + for (iVertex= 0; iVertex < fea_geometry[MESH_0]->nVertex[iMarkerFEA]; iVertex++) { // Node from the flow mesh - Point_Struct = fea_geometry[MESH_0]->vertex[markFEA][iVertex]->GetNode(); + Point_Struct = fea_geometry[MESH_0]->vertex[iMarkerFEA][iVertex]->GetNode(); // We check if the processor "rank" owns this node so it makes sense to make the calculations if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) { // Get the donor point (on the fluid mesh) - Point_Flow = fea_geometry[MESH_0]->vertex[markFEA][iVertex]->GetDonorPoint(); + Point_Flow = fea_geometry[MESH_0]->vertex[iMarkerFEA][iVertex]->GetDonorPoint(); // Get the donor processor from which the message will be received (on the fluid mesh) - Processor_Flow = fea_geometry[MESH_0]->vertex[markFEA][iVertex]->GetDonorProcessor(); - - // We check if the processor "rank" is equal to the structural; if so, we need to receive the message - if (Processor_Flow != rank) { - SU2_MPI::Recv(Buffer_Receive_Residual, nDim, MPI_DOUBLE, Processor_Flow, Point_Struct, MPI_COMM_WORLD, &status); - } - // Otherwise, we need to compute the tractions - else { - - // Get the normals at the vertex: these normals go inside the fluid domain. - // We need to search for the normal corresponding to the particular Point_Flow - for (jVertex = 0; jVertex < nVertexFlow; jVertex++){ - if (flow_geometry[MESH_0]->vertex[markFlow][jVertex]->GetNode() == Point_Flow) - Normal_Flow = flow_geometry[MESH_0]->vertex[markFlow][jVertex]->GetNormal(); - } - - // Retrieve the values of pressure, viscosity and density - if (incompressible){ - - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); - // TODO: This can be taken out (one thing at a time!) - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ + Processor_Flow = fea_geometry[MESH_0]->vertex[iMarkerFEA][iVertex]->GetDonorProcessor(); - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); - - } - } - else if (compressible){ - - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); - // TODO: This can be taken out (one thing at a time!) - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); - - } - } - - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; - } - - // Calculate tn in the fluid nodes for the viscous term - - if (viscous_flow){ - - // Divergence of the velocity - div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; - if (incompressible) div_vel = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - - for (jDim = 0 ; jDim < nDim; jDim++) { - // Dirac delta - Dij = 0.0; if (iDim == jDim) Dij = 1.0; - - // Viscous stress - Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - - TWO3*Viscosity*div_vel*Dij; - - // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; - } - } - } - - // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) - // Store in the Buffer_Send_Residual - - for (iDim = 0; iDim < nDim; iDim++) { - Buffer_Receive_Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; - } - - } + SU2_MPI::Recv(Buffer_Receive_Residual, nDim, MPI_DOUBLE, Processor_Flow, Point_Struct, MPI_COMM_WORLD, &status); /*--- Add to the Flow traction (to add values to corners...) ---*/ node[Point_Struct]->Add_FlowTraction(Buffer_Receive_Residual); } - } + } - } + } + + } /*--- Deallocate the memory ---*/ delete[] Buffer_Send_Residual; From cdd01ce1e7aaf094e37103fa8c3b01b80dc53c64 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 2 Sep 2015 18:48:31 -0700 Subject: [PATCH 068/269] FSI: partial mods in restart-FSI and MPI-FSI. --- SU2_CFD/src/integration_structure.cpp | 78 ++++- SU2_CFD/src/output_paraview.cpp | 6 +- SU2_CFD/src/output_structure.cpp | 8 +- SU2_CFD/src/solver_fem_elasticity.cpp | 18 +- SU2_FSI/src/SU2_FSI.cpp | 14 +- SU2_FSI/src/iteration_structure_fsi.cpp | 59 +++- SU2_SOL/src/SU2_SOL.cpp | 394 +++++++++++++++--------- 7 files changed, 400 insertions(+), 177 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index ad7325d304b..eb4703fdd45 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -718,7 +718,7 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, unsigned long iPoint; /*--- Update the solution only at the local points ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { solver->node[iPoint]->SetSolution_time_n(); solver->node[iPoint]->SetSolution_Vel_time_n(); @@ -746,6 +746,13 @@ void CIntegration::Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *conf su2double Reference_UTOL, Reference_RTOL, Reference_ETOL; su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + int rank = MASTER_NODE; + #ifdef HAVE_MPI + int size; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + #endif + bool Already_Converged = Convergence; Reference_UTOL = config->GetResidual_FEM_UTOL(); @@ -768,11 +775,49 @@ void CIntegration::Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *conf if (Already_Converged) Convergence = true; + /*--- Apply the same convergence criteria to all the processors ---*/ + +#ifdef HAVE_MPI + + unsigned short *sbuf_conv = NULL, *rbuf_conv = NULL; + sbuf_conv = new unsigned short[1]; sbuf_conv[0] = 0; + rbuf_conv = new unsigned short[1]; rbuf_conv[0] = 0; + + /*--- Convergence criteria ---*/ + + sbuf_conv[0] = Convergence; + SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + + /*-- Compute global convergence criteria in the master node --*/ + + sbuf_conv[0] = 0; + if (rank == MASTER_NODE) { + if (rbuf_conv[0] == size) sbuf_conv[0] = 1; + else sbuf_conv[0] = 0; + } + + SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + + if (sbuf_conv[0] == 1) { Convergence = true; } + else { Convergence = false; } + + delete [] sbuf_conv; + delete [] rbuf_conv; + +#endif + } void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig *fea_config, CSolver *fea_solver, unsigned long iFSIIter) { + int rank = MASTER_NODE; + #ifdef HAVE_MPI + int size; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + #endif + unsigned short iCounter; su2double FEA_check[2] = {0.0, 0.0}; su2double magResidualFSI, logResidualFSI_initial, logResidualFSI; @@ -872,6 +917,37 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * if (writeHistFSI){ historyFile_FSI.close();} + /*--- Apply the same convergence criteria to all the processors ---*/ + +#ifdef HAVE_MPI + + unsigned short *sbuf_conv = NULL, *rbuf_conv = NULL; + sbuf_conv = new unsigned short[1]; sbuf_conv[0] = 0; + rbuf_conv = new unsigned short[1]; rbuf_conv[0] = 0; + + /*--- Convergence criteria ---*/ + + sbuf_conv[0] = Convergence_FSI; + SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + + /*-- Compute global convergence criteria in the master node --*/ + + sbuf_conv[0] = 0; + if (rank == MASTER_NODE) { + if (rbuf_conv[0] == size) sbuf_conv[0] = 1; + else sbuf_conv[0] = 0; + } + + SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + + if (sbuf_conv[0] == 1) { Convergence_FSI = true; } + else { Convergence_FSI = false; } + + delete [] sbuf_conv; + delete [] rbuf_conv; + +#endif + } diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index 051abc22193..26d56d2e427 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -48,6 +48,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s bool grid_movement = config->GetGrid_Movement(); bool adjoint = config->GetAdjoint(); bool disc_adj = config->GetDiscrete_Adjoint(); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); char cstr[200], buffer[50]; string filename; @@ -431,7 +432,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s } /*--- Add names for any extra variables (this will need to be adjusted). ---*/ - if (grid_movement) { + if (grid_movement && !fem) { Paraview_File << "\nSCALARS Grid_Velx float 1\n"; Paraview_File << "LOOKUP_TABLE default\n"; @@ -986,6 +987,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign bool grid_movement = config->GetGrid_Movement(); bool adjoint = config->GetAdjoint(); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); char cstr[200], buffer[50]; string filename; @@ -1383,7 +1385,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign } /*--- Add names for any extra variables (this will need to be adjusted). ---*/ - if (grid_movement) { + if (grid_movement && !fem) { Paraview_File << "\nSCALARS Grid_Velx float 1\n"; Paraview_File << "LOOKUP_TABLE default\n"; diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index d1d9689117c..d88c0de0133 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -1923,6 +1923,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv ( config->GetKind_Solver() == ADJ_EULER ) || ( config->GetKind_Solver() == ADJ_NAVIER_STOKES ) || ( config->GetKind_Solver() == ADJ_RANS ) ); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); unsigned short iDim; unsigned short nDim = geometry->GetnDim(); @@ -1987,8 +1988,9 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv if (config->GetWrt_Residuals()) nVar_Total += nVar_Consv; /*--- Add the grid velocity to the restart file for the unsteady adjoint ---*/ + /*--- Avoid adding it if the zone is a fem zone ---*/ - if (grid_movement) { + if (grid_movement && !fem) { iVar_GridVel = nVar_Total; if (geometry->GetnDim() == 2) nVar_Total += 2; else if (geometry->GetnDim() == 3) nVar_Total += 3; @@ -2326,7 +2328,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv Also, in the future more routines like this could be used to write an arbitrary number of additional variables to the file. ---*/ - if (grid_movement) { + if (grid_movement && !fem) { /*--- Loop over this partition to collect the current variable ---*/ @@ -4134,7 +4136,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, /*--- Mesh velocities for dynamic mesh cases ---*/ - if (grid_movement) { + if (grid_movement && !fem) { if (nDim == 2) { restart_file << "\t\"Grid_Velx\"\t\"Grid_Vely\""; } else { diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 7d3e7da3717..0dd4dd63065 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1038,8 +1038,6 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so su2double Mab; unsigned short NelNodes, jNode; - cout << "NUMBER OF ELEMENTS: " << geometry->GetnElem() << endl; - /*--- Loops over all the elements ---*/ for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -1170,7 +1168,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s /*--- Restart stress to avoid adding results from previous time steps ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ for (iStress = 0; iStress < nStress; iStress++){ node[iPoint]->SetStress_FEM(iStress, 0.0); } @@ -1227,7 +1225,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s su2double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; /* --- For the number of nodes in the mesh ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { /* --- Get the stresses, added up from all the elements that connect to the node ---*/ @@ -1414,14 +1412,14 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } - #ifdef HAVE_MPI + #ifdef HAVE_MPI - /*--- Compute MaxVonMises_Stress using all the nodes ---*/ + /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - #endif + #endif /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ @@ -1999,7 +1997,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver /*--- Perform the MPI communication of the solution ---*/ -// Set_MPI_Solution(geometry, config); + Set_MPI_Solution(geometry, config); } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 962f1650f24..e6187446d52 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -35,8 +35,6 @@ using namespace std; int main(int argc, char *argv[]) { - cout << endl <<"------------------------- Start running SU2_FSI -------------------------" << endl; - bool StopCalc = false; double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; unsigned long ExtIter = 0; @@ -57,6 +55,10 @@ int main(int argc, char *argv[]) { MPI_Comm_size(MPI_COMM_WORLD, &size); #endif + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Start running SU2_FSI -------------------------" << endl; + + /*--- Create pointers to all of the classes that may be used throughout the SU2_FSI code. In general, the pointers are instantiated down a heirarchy over all zones, multigrid levels, equation sets, and equation @@ -402,15 +404,15 @@ int main(int argc, char *argv[]) { /*--- Update the convergence history file (serial and parallel computations). ---*/ /*--- This is temporal and for practical purposes. ---*/ - cout << "---------------------------------------------------------------------------" << endl; + if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; for (iZone = 0; iZone < nZone; iZone++){ - if (iZone == 0) cout << "Fluid convergence: " << endl; - else if (iZone == 1) cout << "Structural convergence: " << endl; + if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; + else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, config_container, integration_container, false, UsedTime, iZone); } - cout << "---------------------------------------------------------------------------" << endl; + if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; /*--- Evaluate the new CFL number (adaptive). ---*/ diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index b73ce0afad9..7d79284d52e 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -46,6 +46,11 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + /*-----------------------------------------------------------------*/ /*---------------- Predict structural displacements ---------------*/ /*-----------------------------------------------------------------*/ @@ -151,7 +156,6 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C /*-----------------------------------------------------------------*/ /*--------------- Update convergence parameter --------------------*/ /*-----------------------------------------------------------------*/ - integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); } @@ -293,6 +297,12 @@ void Flow_Update(COutput *output, CIntegration ***integration_container, CGeomet CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned long ExtIter) { + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + double Physical_dt, Physical_t; unsigned short iMesh, iZone; @@ -344,6 +354,12 @@ void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometr CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter) { + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- Only one zone allowed for the structure as for now ---*/ unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; unsigned short iZone; @@ -366,6 +382,11 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, unsigned long ExtIter) { + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + /*--- Only one zone allowed for the structure as for now ---*/ double Physical_dt, Physical_t; unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; @@ -392,7 +413,6 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr } /*--- Verify convergence criteria (based on total time) ---*/ - Physical_dt = config_container[ZONE_STRUC]->GetDelta_DynTime(); Physical_t = (ExtIter+1)*Physical_dt; if (Physical_t >= config_container[ZONE_STRUC]->GetTotal_DynTime()) @@ -412,6 +432,11 @@ void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CG unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + /*--- Only one zone allowed for the fluid as for now ---*/ unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; @@ -445,6 +470,11 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + /*--- Only one zone allowed for the fluid as for now ---*/ unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; @@ -473,11 +503,6 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG bool incremental_load = config_container[ZONE_STRUC]->GetIncrementalLoad(); // If an incremental load is applied -#ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(false); @@ -725,6 +750,12 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); /*--- Displacement transfer -- This will have to be modified for non-matching meshes ---*/ @@ -750,6 +781,11 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned long ExtIter){ + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ @@ -779,6 +815,11 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, CConfig **config_container, unsigned long iFSIIter) { + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + /*-------------------- Aitken's relaxation ------------------------*/ /*--- Only one zone allowed for the fluid as for now ---*/ @@ -819,6 +860,10 @@ void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif /*--- Only one zone allowed for the fluid as for now ---*/ unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index e2e25a19284..8e0652a6034 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -61,8 +61,11 @@ int main(int argc, char *argv[]) { file is specified, default.cfg is used) ---*/ if (argc == 2) { strcpy(config_file_name,argv[1]); } + else if (argc == 3) { + strcpy(config_file_name,argv[1]); + nZone = atoi(argv[2]);} else { strcpy(config_file_name, "default.cfg"); } - + /*--- Definition of the containers per zones ---*/ solver_container = new CSolver*[nZone]; @@ -122,6 +125,10 @@ int main(int argc, char *argv[]) { geometry_container[iZone]->SetVertex(config_container[iZone]); } + + /*--- Determine whether the simulation is a FSI simulation ---*/ + + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); /*--- Set up a timer for performance benchmarking (preprocessing time is included) ---*/ @@ -137,182 +144,273 @@ int main(int argc, char *argv[]) { /*--- Definition of the output class (one for all the zones) ---*/ output = new COutput(); - /*--- Check whether this is an unsteady simulation, and call the + /*--- Check whether this is an FSI, fluid unsteady, time spectral or structural dynamic simulation and call the solution merging routines accordingly.---*/ - - if (config_container[ZONE_0]->GetWrt_Unsteady()) { - - /*--- Unsteady simulation: merge all unsteady time steps. First, - find the frequency and total number of files to write. ---*/ - - su2double Physical_dt, Physical_t; - unsigned long iExtIter = 0; - bool StopCalc = false; - bool SolutionInstantiated = false; - - /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) - iExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); - - /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && - config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) - iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); - - while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { - - /*--- Check several conditions in order to merge the correct time step files. ---*/ - - - /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ - if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY){ - Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); - Physical_t = (iExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) - StopCalc = true; - } - else{ - Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); - Physical_t = (iExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) - StopCalc = true; - } - - if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || - ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0) && - !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || - (StopCalc) || - (((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) && - ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) { - - /*--- Set the current iteration number in the config class. ---*/ - config_container[ZONE_0]->SetExtIter(iExtIter); - - /*--- Read in the restart file for this time step ---*/ - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Either instantiate the solution class or load a restart file. ---*/ - if (SolutionInstantiated == false && (iExtIter == 0 || - (config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetUnst_RestartIter() || - iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || - iExtIter+1 == config_container[ZONE_0]->GetnExtIter())))) { - solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); - SolutionInstantiated = true; - } - else - solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); - } - - if (rank == MASTER_NODE) - cout << "Writing the volume solution for time step " << iExtIter << "." << endl; - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); - } - - iExtIter++; - if (StopCalc) break; - } - - } else if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) { - /*--- Time-spectral simulation: merge files for each time instance (each zone). ---*/ - unsigned short nTimeSpectral = config_container[ZONE_0]->GetnTimeInstances(); - unsigned short iTimeSpectral; - for (iTimeSpectral = 0; iTimeSpectral < nTimeSpectral; iTimeSpectral++) { + if (fsi){ + + su2double Physical_dt, Physical_t; + unsigned long iExtIter = 0, iExtIterFlow = 0, iExtIterFEM = 0; + bool StopCalc = false; + bool SolutionInstantiatedFlow = false, SolutionInstantiatedFEM = false; + + cout << "LA LIO 1" << endl; + + /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetRestart()){ + iExtIterFlow = config_container[ZONE_0]->GetUnst_RestartIter(); + iExtIterFEM = config_container[ZONE_1]->GetDyn_RestartIter(); + if (iExtIterFlow != iExtIterFEM) { + if (rank == MASTER_NODE) cout << "The restart iteration is different from Flow to Structure!!" << endl; + exit(EXIT_FAILURE); + } + else { + iExtIter = iExtIterFlow; + } + } + + cout << "LA LIO 2" << endl; + + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Check several conditions in order to merge the correct time step files. ---*/ + + cout << "LA LIO 3" << endl; + + Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) + StopCalc = true; + + if ( + ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || + ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0) && + !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || + (StopCalc) || + (((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) + + && + + ((iExtIter+1 == config_container[ZONE_1]->GetnExtIter()) || + ((iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0)) || + (StopCalc)) + + ){ + + /*--- Set the current iteration number in the config class. ---*/ + config_container[ZONE_0]->SetExtIter(iExtIter); + config_container[ZONE_1]->SetExtIter(iExtIter); + + /*--- Read in the restart file for this time step ---*/ + + /*--- For the fluid zone (ZONE_0) ---*/ + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiatedFlow == false && (iExtIter == 0 || + ((config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetUnst_RestartIter())) || + iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { + solver_container[ZONE_0] = new CBaselineSolver(geometry_container[ZONE_0], config_container[ZONE_0], MESH_0); + SolutionInstantiatedFlow = true; + } + else{ + cout << "LA LIO 4" << endl; + solver_container[ZONE_0]->LoadRestart(geometry_container, &solver_container, config_container[ZONE_0], SU2_TYPE::Int(MESH_0)); + } + + + /*--- For the structural zone (ZONE_1) ---*/ + /*--- Either instantiate the solution class or load a restart file. ---*/ + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiatedFEM == false && (iExtIter == 0 || + ((config_container[ZONE_1]->GetRestart() && (iExtIter == config_container[ZONE_1]->GetDyn_RestartIter())) || + iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_1]->GetnExtIter()))) { + solver_container[ZONE_1] = new CBaselineSolver(geometry_container[ZONE_1], config_container[ZONE_1], MESH_0); + SolutionInstantiatedFEM = true; + } + else { + cout << "LA LIO 4b" << endl; + solver_container[ZONE_1]->LoadRestart(geometry_container, &solver_container, config_container[ZONE_1], SU2_TYPE::Int(MESH_0)); + } + + if (rank == MASTER_NODE) cout << "Writing the volume solution for time step " << iExtIter << "." << endl; + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); + } - /*--- Set the current instance number in the config class to "ExtIter." ---*/ - config_container[ZONE_0]->SetExtIter(iTimeSpectral); + iExtIter++; + if (StopCalc) break; + } - /*--- Read in the restart file for this time step ---*/ - /*--- N.B. In SU2_SOL, nZone != nTimeInstances ---*/ - for (iZone = 0; iZone < nZone; iZone++) { + } + else { + + if (config_container[ZONE_0]->GetWrt_Unsteady()) { + + /*--- Unsteady simulation: merge all unsteady time steps. First, + find the frequency and total number of files to write. ---*/ + + su2double Physical_dt, Physical_t; + unsigned long iExtIter = 0; + bool StopCalc = false; + bool SolutionInstantiated = false; + + /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) + iExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); + + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Check several conditions in order to merge the correct time step files. ---*/ + + + /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ + Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) + StopCalc = true; + + if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || + ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0) && + !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || + (StopCalc) || + (((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) { + + /*--- Set the current iteration number in the config class. ---*/ + config_container[ZONE_0]->SetExtIter(iExtIter); + + /*--- Read in the restart file for this time step ---*/ + for (iZone = 0; iZone < nZone; iZone++) { /*--- Either instantiate the solution class or load a restart file. ---*/ - if (iTimeSpectral == 0) - solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + if (SolutionInstantiated == false && (iExtIter == 0 || + (config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetUnst_RestartIter() || + iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_0]->GetnExtIter())))) { + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + SolutionInstantiated = true; + } else - solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); - } + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); + } - /*--- Print progress in solution writing to the screen. ---*/ - if (rank == MASTER_NODE) { - cout << "Writing the volume solution for time instance " << iTimeSpectral << "." << endl; + if (rank == MASTER_NODE) + cout << "Writing the volume solution for time step " << iExtIter << "." << endl; + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); } - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iTimeSpectral, nZone); + iExtIter++; + if (StopCalc) break; + } + + } else if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) { + + /*--- Time-spectral simulation: merge files for each time instance (each zone). ---*/ + unsigned short nTimeSpectral = config_container[ZONE_0]->GetnTimeInstances(); + unsigned short iTimeSpectral; + for (iTimeSpectral = 0; iTimeSpectral < nTimeSpectral; iTimeSpectral++) { + + /*--- Set the current instance number in the config class to "ExtIter." ---*/ + config_container[ZONE_0]->SetExtIter(iTimeSpectral); + + /*--- Read in the restart file for this time step ---*/ + /*--- N.B. In SU2_SOL, nZone != nTimeInstances ---*/ + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (iTimeSpectral == 0) + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + else + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); + } + + /*--- Print progress in solution writing to the screen. ---*/ + if (rank == MASTER_NODE) { + cout << "Writing the volume solution for time instance " << iTimeSpectral << "." << endl; + } + + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iTimeSpectral, nZone); + } } - } - else if (config_container[ZONE_0]->GetWrt_Dynamic()){ + else if (config_container[ZONE_0]->GetWrt_Dynamic()){ - /*--- Unsteady simulation: merge all unsteady time steps. First, - find the frequency and total number of files to write. ---*/ + /*--- Unsteady simulation: merge all unsteady time steps. First, + find the frequency and total number of files to write. ---*/ - su2double Physical_dt, Physical_t; - unsigned long iExtIter = 0; - bool StopCalc = false; - bool SolutionInstantiated = false; + su2double Physical_dt, Physical_t; + unsigned long iExtIter = 0; + bool StopCalc = false; + bool SolutionInstantiated = false; - /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && - config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) - iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); + /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && + config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) + iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); - while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { - /*--- Check several conditions in order to merge the correct time step files. ---*/ - /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ + /*--- Check several conditions in order to merge the correct time step files. ---*/ + /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ - Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); - Physical_t = (iExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) - StopCalc = true; + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) + StopCalc = true; - if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || - ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0)) || - (StopCalc)) { + if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || + ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0)) || + (StopCalc)) { - /*--- Set the current iteration number in the config class. ---*/ - config_container[ZONE_0]->SetExtIter(iExtIter); + /*--- Set the current iteration number in the config class. ---*/ + config_container[ZONE_0]->SetExtIter(iExtIter); - /*--- Read in the restart file for this time step ---*/ - for (iZone = 0; iZone < nZone; iZone++) { + /*--- Read in the restart file for this time step ---*/ + for (iZone = 0; iZone < nZone; iZone++) { - /*--- Either instantiate the solution class or load a restart file. ---*/ - if (SolutionInstantiated == false && (iExtIter == 0 || - ((config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetDyn_RestartIter())) || - iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || - iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { - solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); - SolutionInstantiated = true; - } - else{ - solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); - } - } + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiated == false && (iExtIter == 0 || + ((config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetDyn_RestartIter())) || + iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + SolutionInstantiated = true; + } + else{ + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); + } + } - if (rank == MASTER_NODE) - cout << "Writing the volume solution for time step " << iExtIter << "." << endl; - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); - } + if (rank == MASTER_NODE) + cout << "Writing the volume solution for time step " << iExtIter << "." << endl; + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); + } - iExtIter++; - if (StopCalc) break; - } + iExtIter++; + if (StopCalc) break; + } - } else { + } else { - /*--- Steady simulation: merge the single solution file. ---*/ + /*--- Steady simulation: merge the single solution file. ---*/ - for (iZone = 0; iZone < nZone; iZone++) { - /*--- Definition of the solution class ---*/ - solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); - } + for (iZone = 0; iZone < nZone; iZone++) { + /*--- Definition of the solution class ---*/ + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + } + + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, 0, nZone); + + } + + } - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, 0, nZone); - } /*--- Synchronization point after a single solver iteration. Compute the From 25aa421fb1354a2aa6d4401b6aec1c13c9a9403a Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 3 Sep 2015 13:39:56 -0700 Subject: [PATCH 069/269] FSI_FEM: fixed some bugs - enable FSI SU2_SOL --- SU2_CFD/include/solver_structure.hpp | 21 ++++- SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/src/SU2_CFD.cpp | 7 +- SU2_CFD/src/solver_structure.cpp | 107 ++++++++++++++++++++++++ SU2_FSI/src/iteration_structure_fsi.cpp | 19 ++++- SU2_SOL/src/SU2_SOL.cpp | 24 ++---- 6 files changed, 159 insertions(+), 21 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index fe3b011a860..7e5b6d2158c 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2252,6 +2252,16 @@ class CSolver { */ virtual void LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver - Container vector with all of the solvers. + * \param[in] config - Definition of the particular problem. + * \param[in] val_iter - Current external iteration number. + */ + virtual void LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, + CConfig *config, int val_iter); /*! * \brief Gauss method for solving a linear system. @@ -2547,7 +2557,16 @@ class CBaselineSolver : public CSolver { * \param[in] val_iter - Current external iteration number. */ void LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter); - + + /*! + * \brief Load a FSI solution from a restart file. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver - Container vector with all of the solvers. + * \param[in] config - Definition of the particular problem. + * \param[in] val_iter - Current external iteration number. + */ + void LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CConfig *config, int val_iter); + /*! * \brief Destructor of the class. */ diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 9582f257b95..e3f3527a8f3 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -77,6 +77,8 @@ inline void CSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver inline void CSolver::ResetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { } inline void CSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter) { } + +inline void CSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CConfig *config, int val_iter) { } inline void CSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { } diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 75552535621..6c03cee4668 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -501,7 +501,7 @@ int main(int argc, char *argv[]) { StopCalc = false; break; case FEM_ELASTICITY: // This is a temporal fix, while we code the non-linear solver -// StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; + StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; StopCalc = false; break; case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: @@ -530,7 +530,10 @@ int main(int argc, char *argv[]) { ((ExtIter-1) % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) || ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (fsi) && - ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))))) { + ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) || + + (((config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC) && + ((ExtIter == 0) || (ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))))) { /*--- Low-fidelity simulations (using a coarser multigrid level approximation to the solution) require an interpolation back to the diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index dfcd61e1402..9197e348afd 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -2012,4 +2012,111 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf } +void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CConfig *config, int val_iter) { + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Restart the solution from file information ---*/ + string filename; + unsigned long iPoint, index; + string UnstExt, text_line, AdjExt; + ifstream solution_file; + unsigned short iField; + unsigned long iExtIter = config->GetExtIter(); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); + + /*--- Retrieve filename from config ---*/ + if (config->GetAdjoint()) { + filename = config->GetSolution_AdjFileName(); + filename = config->GetObjFunc_Extension(filename); + } else if (fem){ + filename = config->GetRestart_FEMFileName(); + } else { + filename = config->GetRestart_FlowFileName(); + } + + /*--- Unsteady problems require an iteration number to be appended. ---*/ + if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } + + /*--- Open the restart file ---*/ + solution_file.open(filename.data(), ios::in); + + /*--- In case there is no file ---*/ + if (solution_file.fail()) { + if (rank == MASTER_NODE) + cout << "There is no SU2 restart file!!" << endl; + exit(EXIT_FAILURE); + } + + /*--- Output the file name to the console. ---*/ + if (rank == MASTER_NODE) + cout << "Reading and storing the solution from " << filename + << "." << endl; + + /*--- Set the number of variables, one per field in the + restart file (without including the PointID) ---*/ + nVar = config->fields.size() - 1; + + su2double *Solution = new su2double[nVar]; + + /*--- In case this is a parallel simulation, we need to perform the + Global2Local index transformation first. ---*/ + long *Global2Local = NULL; + Global2Local = new long[geometry->GetGlobal_nPointDomain()]; + /*--- First, set all indices to a negative value by default ---*/ + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) { + Global2Local[iPoint] = -1; + } + + /*--- Now fill array with the transform values only for local points ---*/ + for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { + Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; + } + + /*--- Read all lines in the restart file ---*/ + long iPoint_Local = 0; unsigned long iPoint_Global = 0; + + /*--- The first line is the header ---*/ + getline (solution_file, text_line); + + while (getline (solution_file, text_line)) { + istringstream point_line(text_line); + + /*--- Retrieve local index. If this node from the restart file lives + on a different processor, the value of iPoint_Local will be -1, as + initialized above. Otherwise, the local index for this node on the + current processor will be returned and used to instantiate the vars. ---*/ + iPoint_Local = Global2Local[iPoint_Global]; + if (iPoint_Local >= 0) { + + /*--- The PointID is not stored --*/ + point_line >> index; + + /*--- Store the solution (starting with node coordinates) --*/ + for (iField = 0; iField < nVar; iField++) + point_line >> Solution[iField]; + + node[iPoint_Local]->SetSolution(Solution); + + + } + iPoint_Global++; + } + + /*--- Close the restart file ---*/ + solution_file.close(); + + /*--- Free memory needed for the transformation ---*/ + delete [] Global2Local; + delete [] Solution; + +} + CBaselineSolver::~CBaselineSolver(void) { } diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 7d79284d52e..dbfa8ca7f60 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -496,6 +496,12 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems + bool initial_calc = config_container[ZONE_STRUC]->GetExtIter() == 0; // Checks if it is the first calculation. + bool first_iter = config_container[ZONE_STRUC]->GetIntIter() == 0; // Checks if it is the first iteration + bool restart = config_container[ZONE_STRUC]->GetRestart(); // Restart analysis + bool initial_calc_restart = (config_container[ZONE_STRUC]->GetExtIter() == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart + + double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); @@ -526,7 +532,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG } } - /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time ---*/ + /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ else if ((nonlinear) && (!statTime)){ /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ @@ -740,8 +746,15 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG } - - + else if ( (nonlinear && statTime) && + ((first_iter && initial_calc) || (restart && initial_calc_restart)) + ){ + + /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], + config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); + } } diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 8e0652a6034..6e8c9ba1fb4 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -154,8 +154,6 @@ int main(int argc, char *argv[]) { bool StopCalc = false; bool SolutionInstantiatedFlow = false, SolutionInstantiatedFEM = false; - cout << "LA LIO 1" << endl; - /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ if (config_container[ZONE_0]->GetRestart()){ iExtIterFlow = config_container[ZONE_0]->GetUnst_RestartIter(); @@ -169,14 +167,12 @@ int main(int argc, char *argv[]) { } } - cout << "LA LIO 2" << endl; + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { /*--- Check several conditions in order to merge the correct time step files. ---*/ - cout << "LA LIO 3" << endl; - Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); Physical_t = (iExtIter+1)*Physical_dt; if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) @@ -195,8 +191,9 @@ int main(int argc, char *argv[]) { && ((iExtIter+1 == config_container[ZONE_1]->GetnExtIter()) || - ((iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0)) || - (StopCalc)) + (StopCalc) || + ((config_container[ZONE_1]->GetDynamic_Analysis() == DYNAMIC) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0)))) ){ @@ -216,8 +213,7 @@ int main(int argc, char *argv[]) { SolutionInstantiatedFlow = true; } else{ - cout << "LA LIO 4" << endl; - solver_container[ZONE_0]->LoadRestart(geometry_container, &solver_container, config_container[ZONE_0], SU2_TYPE::Int(MESH_0)); + solver_container[ZONE_0]->LoadRestart_FSI(geometry_container[ZONE_0], &solver_container, config_container[ZONE_0], SU2_TYPE::Int(MESH_0)); } @@ -232,8 +228,7 @@ int main(int argc, char *argv[]) { SolutionInstantiatedFEM = true; } else { - cout << "LA LIO 4b" << endl; - solver_container[ZONE_1]->LoadRestart(geometry_container, &solver_container, config_container[ZONE_1], SU2_TYPE::Int(MESH_0)); + solver_container[ZONE_1]->LoadRestart_FSI(geometry_container[ZONE_1], &solver_container, config_container[ZONE_1], SU2_TYPE::Int(MESH_0)); } if (rank == MASTER_NODE) cout << "Writing the volume solution for time step " << iExtIter << "." << endl; @@ -265,8 +260,6 @@ int main(int argc, char *argv[]) { /*--- Check several conditions in order to merge the correct time step files. ---*/ - - /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); Physical_t = (iExtIter+1)*Physical_dt; if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) @@ -364,8 +357,9 @@ int main(int argc, char *argv[]) { StopCalc = true; if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || - ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0)) || - (StopCalc)) { + (StopCalc) || + ((config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) { /*--- Set the current iteration number in the config class. ---*/ config_container[ZONE_0]->SetExtIter(iExtIter); From c90d691553d29526156cd03e479cfb1272601838 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 6 Sep 2015 12:58:40 -0700 Subject: [PATCH 070/269] temp, partial merge --- Makefile.am | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 9a1c0ff6690..2bef601dcc0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,9 @@ -# SU2 global Makefile.am -# SU2 v3.2.7 "eagle" +################################################################################ +# +# \file Makefile.am +# \brief Global makefile for the SU2 project +# \author M. Colonno, T. Economon, F. Palacios +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -39,7 +43,7 @@ ###################################################################################### # AUTOMAKE_OPTIONS = subdir-objects -ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 # build third-party optional dependencies first SUBDIRS = externals From 66fb7a60a357b573fa77ba8590b98f6e339df792 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 6 Sep 2015 14:23:04 -0700 Subject: [PATCH 071/269] merging w FSI --- Common/doc/docmain.hpp | 2 +- Common/include/config_structure.hpp | 6 +- Common/include/config_structure.inl | 2 +- Common/include/datatype_structure.hpp | 4 +- Common/include/datatype_structure.inl | 2 +- .../datatypes/adolc_forward_structure.hpp | 2 +- .../datatypes/adolc_forward_structure.inl | 2 +- .../datatypes/adolc_reverse_structure.hpp | 2 +- .../datatypes/adolc_reverse_structure.inl | 2 +- .../datatypes/codi_forward_structure.hpp | 2 +- .../datatypes/codi_forward_structure.inl | 2 +- .../datatypes/codi_reverse_structure.hpp | 2 +- .../datatypes/codi_reverse_structure.inl | 2 +- .../include/datatypes/complex_structure.hpp | 4 +- .../include/datatypes/complex_structure.inl | 2 +- .../include/datatypes/primitive_structure.hpp | 2 +- .../include/datatypes/primitive_structure.inl | 2 +- Common/include/dual_grid_structure.hpp | 10 +- Common/include/dual_grid_structure.inl | 2 +- Common/include/geometry_structure.hpp | 12 +- Common/include/geometry_structure.inl | 2 +- Common/include/grid_adaptation_structure.hpp | 2 +- Common/include/grid_adaptation_structure.inl | 2 +- Common/include/grid_movement_structure.hpp | 14 +- Common/include/grid_movement_structure.inl | 2 +- Common/include/linear_solvers_structure.hpp | 4 +- Common/include/linear_solvers_structure.inl | 2 +- Common/include/linear_solvers_structure_b.hpp | 2 +- Common/include/matrix_structure.hpp | 4 +- Common/include/matrix_structure.inl | 2 +- Common/include/mpi_structure.hpp | 8 +- Common/include/mpi_structure.inl | 2 +- Common/include/option_structure.hpp | 4 +- Common/include/primal_grid_structure.hpp | 38 +- Common/include/primal_grid_structure.inl | 28 +- Common/include/vector_structure.hpp | 8 +- Common/include/vector_structure.inl | 2 +- Common/lib/Makefile.am | 2 +- Common/lib/Makefile.in | 2 +- Common/src/config_structure.cpp | 417 +++-- Common/src/datatype_structure.cpp | 2 +- Common/src/dual_grid_structure.cpp | 2 +- Common/src/geometry_structure.cpp | 1662 +++++++++-------- Common/src/grid_adaptation_structure.cpp | 46 +- Common/src/grid_movement_structure.cpp | 56 +- Common/src/linear_solvers_structure.cpp | 2 +- Common/src/linear_solvers_structure_b.cpp | 2 +- Common/src/matrix_structure.cpp | 2 +- Common/src/mpi_structure.cpp | 2 +- Common/src/primal_grid_structure.cpp | 26 +- Common/src/vector_structure.cpp | 2 +- Makefile.in | 5 +- QuickStart/inv_NACA0012.cfg | 2 +- README.md | 4 +- SU2_CFD/include/SU2_CFD.hpp | 2 +- SU2_CFD/include/definition_structure.hpp | 2 +- SU2_CFD/include/fluid_model.hpp | 10 +- SU2_CFD/include/fluid_model.inl | 2 +- SU2_CFD/include/integration_structure.hpp | 10 +- SU2_CFD/include/integration_structure.inl | 2 +- SU2_CFD/include/iteration_structure.hpp | 2 +- SU2_CFD/include/numerics_machine_learning.hpp | 2 +- SU2_CFD/include/numerics_machine_learning.inl | 2 +- .../numerics_machine_learning_turbulent.hpp | 2 +- SU2_CFD/include/numerics_structure.hpp | 158 +- SU2_CFD/include/numerics_structure.inl | 2 +- SU2_CFD/include/output_structure.hpp | 4 +- SU2_CFD/include/solver_structure.hpp | 42 +- SU2_CFD/include/solver_structure.inl | 2 +- SU2_CFD/include/transport_model.hpp | 2 +- SU2_CFD/include/transport_model.inl | 2 +- SU2_CFD/include/variable_structure.hpp | 46 +- SU2_CFD/include/variable_structure.inl | 2 +- SU2_CFD/obj/Makefile.am | 2 +- SU2_CFD/obj/Makefile.in | 2 +- SU2_CFD/src/SU2_CFD.cpp | 4 +- SU2_CFD/src/definition_structure.cpp | 4 +- SU2_CFD/src/fluid_model.cpp | 2 +- SU2_CFD/src/fluid_model_pig.cpp | 2 +- SU2_CFD/src/fluid_model_ppr.cpp | 2 +- SU2_CFD/src/fluid_model_pvdw.cpp | 2 +- SU2_CFD/src/integration_structure.cpp | 3 +- SU2_CFD/src/integration_time.cpp | 2 +- SU2_CFD/src/iteration_structure.cpp | 2 +- SU2_CFD/src/numerics_adjoint_levelset.cpp | 2 +- SU2_CFD/src/numerics_adjoint_mean.cpp | 46 +- SU2_CFD/src/numerics_adjoint_tne2.cpp | 2 +- SU2_CFD/src/numerics_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 1415 +++++++------- SU2_CFD/src/numerics_direct_heat.cpp | 2 +- SU2_CFD/src/numerics_direct_mean.cpp | 2 +- SU2_CFD/src/numerics_direct_poisson.cpp | 2 +- SU2_CFD/src/numerics_direct_tne2.cpp | 148 +- SU2_CFD/src/numerics_direct_transition.cpp | 2 +- SU2_CFD/src/numerics_direct_turbulent.cpp | 2 +- SU2_CFD/src/numerics_direct_wave.cpp | 2 +- SU2_CFD/src/numerics_linearized_mean.cpp | 2 +- SU2_CFD/src/numerics_linearized_turbulent.cpp | 2 +- SU2_CFD/src/numerics_machine_learning.cpp | 2 +- .../numerics_machine_learning_turbulent.cpp | 2 +- SU2_CFD/src/numerics_structure.cpp | 22 +- SU2_CFD/src/numerics_template.cpp | 2 +- SU2_CFD/src/output_cgns.cpp | 21 +- SU2_CFD/src/output_fieldview.cpp | 2 +- SU2_CFD/src/output_paraview.cpp | 2 +- SU2_CFD/src/output_structure.cpp | 43 +- SU2_CFD/src/output_su2.cpp | 4 +- SU2_CFD/src/output_tecplot.cpp | 4 +- SU2_CFD/src/solver_adjoint_discrete.cpp | 10 +- SU2_CFD/src/solver_adjoint_levelset.cpp | 2 +- SU2_CFD/src/solver_adjoint_mean.cpp | 34 +- SU2_CFD/src/solver_adjoint_tne2.cpp | 154 +- SU2_CFD/src/solver_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/solver_direct_elasticity.cpp | 121 +- SU2_CFD/src/solver_direct_heat.cpp | 2 +- SU2_CFD/src/solver_direct_mean.cpp | 132 +- SU2_CFD/src/solver_direct_poisson.cpp | 4 +- SU2_CFD/src/solver_direct_tne2.cpp | 332 ++-- SU2_CFD/src/solver_direct_transition.cpp | 2 +- SU2_CFD/src/solver_direct_turbulent.cpp | 2 +- SU2_CFD/src/solver_direct_wave.cpp | 2 +- SU2_CFD/src/solver_linearized_mean.cpp | 2 +- SU2_CFD/src/solver_linearized_turbulent.cpp | 2 +- SU2_CFD/src/solver_structure.cpp | 2 +- SU2_CFD/src/solver_template.cpp | 2 +- SU2_CFD/src/transport_model.cpp | 2 +- SU2_CFD/src/variable_adjoint_discrete.cpp | 2 +- SU2_CFD/src/variable_adjoint_levelset.cpp | 2 +- SU2_CFD/src/variable_adjoint_mean.cpp | 2 +- SU2_CFD/src/variable_adjoint_tne2.cpp | 2 +- SU2_CFD/src/variable_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/variable_direct_elasticity.cpp | 2 +- SU2_CFD/src/variable_direct_heat.cpp | 2 +- SU2_CFD/src/variable_direct_mean.cpp | 2 +- SU2_CFD/src/variable_direct_poisson.cpp | 2 +- SU2_CFD/src/variable_direct_tne2.cpp | 127 +- SU2_CFD/src/variable_direct_transition.cpp | 2 +- SU2_CFD/src/variable_direct_turbulent.cpp | 2 +- SU2_CFD/src/variable_direct_wave.cpp | 2 +- SU2_CFD/src/variable_linearized_mean.cpp | 2 +- SU2_CFD/src/variable_linearized_turbulent.cpp | 2 +- SU2_CFD/src/variable_structure.cpp | 2 +- SU2_CFD/src/variable_template.cpp | 2 +- SU2_DEF/include/SU2_DEF.hpp | 2 +- SU2_DEF/obj/Makefile.am | 2 +- SU2_DEF/obj/Makefile.in | 2 +- SU2_DEF/src/SU2_DEF.cpp | 2 +- SU2_DOT/include/SU2_DOT.hpp | 2 +- SU2_DOT/obj/Makefile.am | 2 +- SU2_DOT/obj/Makefile.in | 2 +- SU2_DOT/src/SU2_DOT.cpp | 2 +- SU2_GEO/include/SU2_GEO.hpp | 2 +- SU2_GEO/obj/Makefile.am | 2 +- SU2_GEO/obj/Makefile.in | 2 +- SU2_GEO/src/SU2_GEO.cpp | 2 +- .../Xcode/SU2_CFD.xcodeproj/project.pbxproj | 4 +- SU2_MSH/include/SU2_MSH.hpp | 2 +- SU2_MSH/obj/Makefile.am | 2 +- SU2_MSH/obj/Makefile.in | 2 +- SU2_MSH/src/SU2_MSH.cpp | 2 +- SU2_PY/Makefile.am | 2 +- SU2_PY/Makefile.in | 2 +- SU2_PY/SU2/eval/design.py | 2 +- SU2_PY/SU2/eval/functions.py | 2 +- SU2_PY/SU2/eval/gradients.py | 2 +- SU2_PY/SU2/io/config.py | 2 +- SU2_PY/SU2/io/config_options.py | 2 +- SU2_PY/SU2/io/data.py | 2 +- SU2_PY/SU2/io/filelock.py | 2 +- SU2_PY/SU2/io/redirect.py | 2 +- SU2_PY/SU2/io/state.py | 2 +- SU2_PY/SU2/io/tools.py | 2 +- SU2_PY/SU2/mesh/adapt.py | 2 +- SU2_PY/SU2/mesh/tools.py | 2 +- SU2_PY/SU2/opt/project.py | 2 +- SU2_PY/SU2/opt/scipy_tools.py | 2 +- SU2_PY/SU2/opt/server.py | 2 +- SU2_PY/SU2/run/adaptation.py | 2 +- SU2_PY/SU2/run/adjoint.py | 2 +- SU2_PY/SU2/run/deform.py | 2 +- SU2_PY/SU2/run/direct.py | 2 +- SU2_PY/SU2/run/geometry.py | 2 +- SU2_PY/SU2/run/interface.py | 2 +- SU2_PY/SU2/run/merge.py | 2 +- SU2_PY/SU2/run/projection.py | 2 +- SU2_PY/SU2/util/filter_adjoint.py | 2 +- SU2_PY/SU2/util/plot.py | 2 +- SU2_PY/SU2/util/which.py | 2 +- SU2_PY/change_version_number.py | 6 +- SU2_PY/compute_polar.py | 2 +- SU2_PY/compute_stability.py | 2 +- SU2_PY/config_gui.py | 2 +- SU2_PY/continuous_adjoint.py | 2 +- SU2_PY/direct_differentiation.py | 2 +- SU2_PY/discrete_adjoint.py | 2 +- SU2_PY/filter_adjoint.py | 2 +- SU2_PY/finite_differences.py | 2 +- SU2_PY/merge_solution.py | 2 +- SU2_PY/mesh_adaptation.py | 2 +- SU2_PY/mesh_deformation.py | 2 +- SU2_PY/parallel_computation.py | 2 +- SU2_PY/parse_config.py | 2 +- SU2_PY/patient_designspace.py | 2 +- SU2_PY/set_ffd_design_var.py | 2 +- SU2_PY/shape_optimization.py | 4 +- SU2_SOL/include/SU2_SOL.hpp | 2 +- SU2_SOL/obj/Makefile.am | 2 +- SU2_SOL/obj/Makefile.in | 2 +- SU2_SOL/src/SU2_SOL.cpp | 2 +- TestCases/TestCase.py | 2 +- TestCases/actuator_disk/ActDisk_Euler.cfg | 2 +- .../aeroelastic/aeroelastic_NACA64A010.cfg | 2 +- .../cont_adj_euler/naca0012/inv_NACA0012.cfg | 2 +- .../cont_adj_euler/oneram6/inv_ONERAM6.cfg | 6 +- .../naca0012/incomp_NACA0012.cfg | 2 +- .../cylinder/lam_incomp_cylinder.cfg | 2 +- .../cylinder/lam_cylinder.cfg | 2 +- .../naca0012_sub/lam_NACA0012.cfg | 2 +- .../naca0012_trans/lam_NACA0012.cfg | 2 +- .../cont_adj_rans/naca0012/turb_nasa.cfg | 2 +- .../cont_adj_rans/oneram6/turb_ONERAM6.cfg | 2 +- .../cont_adj_rans/rae2822/turb_SA_RAE2822.cfg | 2 +- .../control_surface/inv_ONERAM6_moving.cfg | 2 +- .../control_surface/inv_ONERAM6_setting.cfg | 2 +- TestCases/euler/CRM/inv_CRM_JST.cfg | 2 +- TestCases/euler/biparabolic/BIPARABOLIC.cfg | 2 +- TestCases/euler/channel/inv_channel.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012_Roe.cfg | 2 +- TestCases/euler/oneram6/inv_ONERAM6.cfg | 2 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- .../fea_fsi/DynBeam_2d/configBeam_2d.cfg | 2 +- .../fea_fsi/StatBeam_3d/configBeam_3d.cfg | 2 +- .../fea_fsi/WallChannel_2d/configFSI_2D.cfg | 2 +- .../fea_fsi/WallChannel_3d/configFSI_3D.cfg | 2 +- TestCases/gust/inv_gust_NACA0012.cfg | 2 +- .../incomp_euler/naca0012/incomp_NACA0012.cfg | 2 +- .../cylinder/incomp_cylinder.cfg | 2 +- TestCases/incomp_rans/naca0012/naca0012.cfg | 2 +- TestCases/linear_elasticity/beam.cfg | 2 +- TestCases/moving_wall/cavity/lam_cavity.cfg | 6 +- .../spinning_cylinder/spinning_cylinder.cfg | 2 +- .../navierstokes/cylinder/lam_cylinder.cfg | 2 +- .../navierstokes/flatplate/lam_flatplate.cfg | 2 +- .../navierstokes/naca0012/lam_NACA0012.cfg | 2 +- TestCases/nicf/edge/edge_PPR.cfg | 2 +- TestCases/nicf/edge/edge_VW.cfg | 2 +- .../pitching_NACA64A010.cfg | 2 +- .../pitching_oneram6/pitching_ONERAM6.cfg | 2 +- .../rotating_naca0012/rotating_NACA0012.cfg | 2 +- .../steady_naca0012/inv_NACA0012_adv.cfg | 2 +- .../steady_naca0012/inv_NACA0012_basic.cfg | 2 +- .../steady_oneram6/inv_ONERAM6_adv.cfg | 2 +- .../steady_oneram6/inv_ONERAM6_basic.cfg | 2 +- .../pitching_naca64a010/turb_NACA64A010.cfg | 2 +- .../pitching_oneram6/turb_ONERAM6.cfg | 2 +- .../steady_oneram6/turb_ONERAM6.cfg | 2 +- .../steady_rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/parallel_regression.py | 2 +- .../rans/flatplate/turb_SA_flatplate.cfg | 2 +- .../rans/flatplate/turb_SST_flatplate.cfg | 2 +- TestCases/rans/oneram6/turb_ONERAM6.cfg | 2 +- TestCases/rans/rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/rans/rae2822/turb_SST_RAE2822.cfg | 2 +- TestCases/rans/s809/trans_s809.cfg | 2 +- TestCases/rans/s809/turb_S809.cfg | 2 +- TestCases/rans/vki_turbine/turb_vki.cfg | 2 +- .../caradonna_tung/rot_caradonna_tung.cfg | 2 +- TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/serial_regression.py | 2 +- TestCases/spectral_method/spectral.cfg | 2 +- TestCases/tne2/ramc/ramc61km.cfg | 2 +- .../pitching_NACA64A010.cfg | 2 +- .../turb_NACA64A010.cfg | 2 +- .../plunging_naca0012/plunging_NACA0012.cfg | 2 +- .../unsteady/square_cylinder/turb_square.cfg | 2 +- config_template.cfg | 2 +- config_template_basic.cfg | 2 +- configure | 24 +- configure.ac | 6 +- externals/Makefile.am | 2 +- externals/Makefile.in | 15 +- externals/metis/Makefile.in | 13 +- externals/parmetis/Makefile.in | 13 +- externals/tecio/Makefile.in | 13 +- externals/tecio/tecsrc/arrlist.cpp | 1 + preconfigure.py | 4 +- 288 files changed, 2909 insertions(+), 2924 deletions(-) diff --git a/Common/doc/docmain.hpp b/Common/doc/docmain.hpp index cd290f47f55..3498391bb74 100644 --- a/Common/doc/docmain.hpp +++ b/Common/doc/docmain.hpp @@ -2,7 +2,7 @@ * \file docmain.hpp * \brief This file contains documentation for Doxygen and does not have any significance with respect to C++. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 36eb2d49e78..334461a0918 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -3,7 +3,7 @@ * \brief All the information about the definition of the physical problem. * The subroutines and functions are in the config_structure.cpp file. * \author F. Palacios, T. Economon, B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -53,7 +53,7 @@ using namespace std; * \brief Main class for defining the problem; basically this class reads the configuration file, and * stores all the information. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CConfig { @@ -175,7 +175,7 @@ class CConfig { nMarker_Neumann_Elec, /*!< \brief Number of Neumann flow markers. */ nMarker_All, /*!< \brief Total number of markers using the grid information. */ nMarker_Max, /*!< \brief Max number of number of markers using the grid information. */ - nMarker_Config; /*!< \brief Total number of markers using the config file + nMarker_CfgFile; /*!< \brief Total number of markers using the config file (note that using parallel computation this number can be different from nMarker_All). */ string *Marker_Euler, /*!< \brief Euler wall markers. */ diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index fb9570d8e0d..c28805b9b2c 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -2,7 +2,7 @@ * \file config_structure.inl * \brief In-Line subroutines of the config_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatype_structure.hpp b/Common/include/datatype_structure.hpp index 73bc48ebd5d..378950c5241 100644 --- a/Common/include/datatype_structure.hpp +++ b/Common/include/datatype_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers for generalized datatypes. * The subroutines and functions are in the datatype_structure.cpp file. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -64,7 +64,7 @@ * \brief Namespace for defining the datatype wrapper routines; this class features as a base class for * type interfaces for non-primitive dataypes e.g. used by AD, complex etc. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ namespace SU2_TYPE{ /*! diff --git a/Common/include/datatype_structure.inl b/Common/include/datatype_structure.inl index 1501da55f5c..0a6481d144e 100644 --- a/Common/include/datatype_structure.inl +++ b/Common/include/datatype_structure.inl @@ -2,7 +2,7 @@ * \file datatype_structure.inl * \brief In-Line subroutines of the datatype_structure.hpp file. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/adolc_forward_structure.hpp b/Common/include/datatypes/adolc_forward_structure.hpp index 2216bc85908..a51b117ef04 100644 --- a/Common/include/datatypes/adolc_forward_structure.hpp +++ b/Common/include/datatypes/adolc_forward_structure.hpp @@ -2,7 +2,7 @@ * \file adolc_forward_structure.hpp * \brief Headers for adolc forward type definition. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/adolc_forward_structure.inl b/Common/include/datatypes/adolc_forward_structure.inl index bc47505a85d..1e1158db8c2 100644 --- a/Common/include/datatypes/adolc_forward_structure.inl +++ b/Common/include/datatypes/adolc_forward_structure.inl @@ -2,7 +2,7 @@ * \file adolc_forward_structure.inl * \brief Inline subroutines for datatype_structure.hpp. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/adolc_reverse_structure.hpp b/Common/include/datatypes/adolc_reverse_structure.hpp index 544ff8c71bb..fadcfdf80dc 100644 --- a/Common/include/datatypes/adolc_reverse_structure.hpp +++ b/Common/include/datatypes/adolc_reverse_structure.hpp @@ -2,7 +2,7 @@ * \file adolc_reverse_structure.hpp * \brief Header for adolc reverse type definition. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/adolc_reverse_structure.inl b/Common/include/datatypes/adolc_reverse_structure.inl index c07582f4c28..87f3063b475 100644 --- a/Common/include/datatypes/adolc_reverse_structure.inl +++ b/Common/include/datatypes/adolc_reverse_structure.inl @@ -2,7 +2,7 @@ * \file adolc_reverse_structure.inl * \brief Inline subroutines for datatype_structure.hpp. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_forward_structure.hpp b/Common/include/datatypes/codi_forward_structure.hpp index 8f50293e193..29fc9ed1647 100644 --- a/Common/include/datatypes/codi_forward_structure.hpp +++ b/Common/include/datatypes/codi_forward_structure.hpp @@ -2,7 +2,7 @@ * \file codi_forward_structure.hpp * \brief Header for codi forward type definition. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_forward_structure.inl b/Common/include/datatypes/codi_forward_structure.inl index d5aa03a5e3c..d6eb57a9b8d 100644 --- a/Common/include/datatypes/codi_forward_structure.inl +++ b/Common/include/datatypes/codi_forward_structure.inl @@ -2,7 +2,7 @@ * \file codi_forward_structure.inl * \brief Inline subroutines for codi_forward_structure.hpp. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_reverse_structure.hpp b/Common/include/datatypes/codi_reverse_structure.hpp index 2d7259d70f4..c4898c735bc 100644 --- a/Common/include/datatypes/codi_reverse_structure.hpp +++ b/Common/include/datatypes/codi_reverse_structure.hpp @@ -2,7 +2,7 @@ * \file codi_reverse_structure.hpp * \brief Header for codi reverse type definition. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_reverse_structure.inl b/Common/include/datatypes/codi_reverse_structure.inl index 86a53874bda..48a6c94abda 100644 --- a/Common/include/datatypes/codi_reverse_structure.inl +++ b/Common/include/datatypes/codi_reverse_structure.inl @@ -2,7 +2,7 @@ * \file codi_reverse_structure.inl * \brief Inline subroutines for datatype_structure.hpp. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/complex_structure.hpp b/Common/include/datatypes/complex_structure.hpp index 07fe5a9e1a1..28e1af45e23 100644 --- a/Common/include/datatypes/complex_structure.hpp +++ b/Common/include/datatypes/complex_structure.hpp @@ -2,7 +2,7 @@ * \file complex_structure.hpp * \brief Headers for complex datatype definition. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -43,7 +43,7 @@ inline double real(const double& r); * \brief Class for defining the complex datatype for complex step gradient computation. * Based on complexify.h by Peter Sturdza. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CComplexType : public std::complex { diff --git a/Common/include/datatypes/complex_structure.inl b/Common/include/datatypes/complex_structure.inl index 45987580afb..ec9df25bfbf 100644 --- a/Common/include/datatypes/complex_structure.inl +++ b/Common/include/datatypes/complex_structure.inl @@ -2,7 +2,7 @@ * \file complex_structure.inl * \brief In-Line subroutines of the datatype_structure.hpp file. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/primitive_structure.hpp b/Common/include/datatypes/primitive_structure.hpp index bba4bbf65b6..a8c94e80ddb 100644 --- a/Common/include/datatypes/primitive_structure.hpp +++ b/Common/include/datatypes/primitive_structure.hpp @@ -2,7 +2,7 @@ * \file primitive_structure.hpp * \brief Header for the primitive datatype. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/primitive_structure.inl b/Common/include/datatypes/primitive_structure.inl index cdc7d042440..a55891e07a6 100644 --- a/Common/include/datatypes/primitive_structure.inl +++ b/Common/include/datatypes/primitive_structure.inl @@ -2,7 +2,7 @@ * \file primitive_structure.inl * \brief Inline subroutines for datatype_structure.hpp. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index d67db0cb677..eabc0b15be0 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the dual_grid_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -48,7 +48,7 @@ using namespace std; * \brief Class for controlling the dual volume definition. The dual volume is compose by * three main elements: points, edges, and vertices. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CDualGrid{ protected: @@ -133,7 +133,7 @@ class CDualGrid{ * \class CPoint * \brief Class for point definition (including control volume definition). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPoint : public CDualGrid { private: @@ -728,7 +728,7 @@ class CPoint : public CDualGrid { * \class CEdge * \brief Class for defining an edge. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CEdge : public CDualGrid { private: @@ -865,7 +865,7 @@ class CEdge : public CDualGrid { * \class CVertex * \brief Class for vertex definition (equivalent to edges, but for the boundaries). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CVertex : public CDualGrid { private: diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 817c7d0c7e5..898e72cb422 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -2,7 +2,7 @@ * \file dual_grid_structure.inl * \brief In-Line subroutines of the dual_grid_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/geometry_structure.hpp b/Common/include/geometry_structure.hpp index 107d4e77a75..f67b69f4120 100644 --- a/Common/include/geometry_structure.hpp +++ b/Common/include/geometry_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for creating the geometrical structure. * The subroutines and functions are in the geometry_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -63,7 +63,7 @@ using namespace std; * \brief Parent class for defining the geometry of the problem (complete geometry, * multigrid agglomerated geometry, only boundary geometry, etc..) * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CGeometry { protected: @@ -899,7 +899,7 @@ class CGeometry { * \brief Class for reading a defining the primal grid which is read from the * grid file in .su2 format. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPhysicalGeometry : public CGeometry { @@ -1451,7 +1451,7 @@ class CPhysicalGeometry : public CGeometry { * \brief Class for defining the multigrid geometry, the main delicated part is the * agglomeration stage, which is done in the declaration. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CMultiGridGeometry : public CGeometry { @@ -1627,7 +1627,7 @@ class CMultiGridGeometry : public CGeometry { * \class CPeriodicGeometry * \brief Class for defining a periodic boundary condition. * \author T. Economon, F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPeriodicGeometry : public CGeometry { CPrimalGrid*** newBoundPer; /*!< \brief Boundary vector for new periodic elements (primal grid information). */ @@ -1673,7 +1673,7 @@ class CPeriodicGeometry : public CGeometry { * \struct CMultiGridQueue * \brief Class for a multigrid queue system * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * \date Aug 12, 2012 */ class CMultiGridQueue { diff --git a/Common/include/geometry_structure.inl b/Common/include/geometry_structure.inl index e1cb396fd0a..02e410a6b01 100644 --- a/Common/include/geometry_structure.inl +++ b/Common/include/geometry_structure.inl @@ -2,7 +2,7 @@ * \file geometry_structure.inl * \brief In-Line subroutines of the geometry_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/grid_adaptation_structure.hpp b/Common/include/grid_adaptation_structure.hpp index b4f7d35568d..a48498fcc13 100644 --- a/Common/include/grid_adaptation_structure.hpp +++ b/Common/include/grid_adaptation_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the numerical grid * adaptation. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/grid_adaptation_structure.inl b/Common/include/grid_adaptation_structure.inl index 3211b5f3267..bd565929885 100644 --- a/Common/include/grid_adaptation_structure.inl +++ b/Common/include/grid_adaptation_structure.inl @@ -2,7 +2,7 @@ * \file grid_adaptation_structure.inl * \brief In-Line subroutines of the grid_adaptation_structure.hpp file. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/grid_movement_structure.hpp b/Common/include/grid_movement_structure.hpp index 9902ee8e774..9aa50b27157 100644 --- a/Common/include/grid_movement_structure.hpp +++ b/Common/include/grid_movement_structure.hpp @@ -5,7 +5,7 @@ * technique definition). The subroutines and functions are in * the grid_movement_structure.cpp file. * \author F. Palacios, T. Economon, S. Padron - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -55,7 +55,7 @@ using namespace std; * \brief Class for moving the surface and volumetric * numerical grid (2D and 3D problems). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CGridMovement { public: @@ -83,7 +83,7 @@ class CGridMovement { * \class CFreeFormDefBox * \brief Class for defining the free form FFDBox structure. * \author F. Palacios & A. Galdran. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CFreeFormDefBox : public CGridMovement { public: @@ -737,7 +737,7 @@ class CFreeFormDefBox : public CGridMovement { * \class CVolumetricMovement * \brief Class for moving the volumetric numerical grid. * \author F. Palacios, A. Bueno, T. Economon, S. Padron. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CVolumetricMovement : public CGridMovement { protected: @@ -864,7 +864,7 @@ class CVolumetricMovement : public CGridMovement { * \param[in] CoordCorners - Coordiantes of the corners. * \param[in] DShapeFunction - Shape function information */ - su2double ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); + su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Compute the shape functions for hexahedron @@ -900,7 +900,7 @@ class CVolumetricMovement : public CGridMovement { * \brief Compute the shape functions for hexahedron * \param[in] CoordCorners - coordinates of the cornes of the hexahedron. */ - su2double GetRectangle_Area(su2double CoordCorners[8][3]); + su2double GetQuadrilateral_Area(su2double CoordCorners[8][3]); /*! * \brief Add the stiffness matrix for a 2-D triangular element to the global stiffness matrix for the entire mesh (node-based). @@ -1043,7 +1043,7 @@ class CVolumetricMovement : public CGridMovement { * \class CSurfaceMovement * \brief Class for moving the surface numerical grid. * \author F. Palacios, T. Economon. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSurfaceMovement : public CGridMovement { protected: diff --git a/Common/include/grid_movement_structure.inl b/Common/include/grid_movement_structure.inl index b9966659ae3..3608d63fd96 100644 --- a/Common/include/grid_movement_structure.inl +++ b/Common/include/grid_movement_structure.inl @@ -2,7 +2,7 @@ * \file grid_movement_structure.inl * \brief In-Line subroutines of the grid_movement_structure.hpp file. * \author F. Palacios, T. Economon, S. Padron - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/linear_solvers_structure.hpp b/Common/include/linear_solvers_structure.hpp index d58c64f1c04..183bb2a4fa8 100644 --- a/Common/include/linear_solvers_structure.hpp +++ b/Common/include/linear_solvers_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers for the classes related to linear solvers (CG, FGMRES, etc) * The subroutines and functions are in the linear_solvers_structure.cpp file. * \author J. Hicken, F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -53,7 +53,7 @@ using namespace std; * \class CSysSolve * \brief Class for solving linear systems using classical and Krylov-subspace iterative methods * \author J. Hicken. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * The individual solvers could be stand-alone subroutines, but by * creating CSysSolve objects we can more easily assign different diff --git a/Common/include/linear_solvers_structure.inl b/Common/include/linear_solvers_structure.inl index cd899990080..8a43fd6d976 100644 --- a/Common/include/linear_solvers_structure.inl +++ b/Common/include/linear_solvers_structure.inl @@ -2,7 +2,7 @@ * \file linear_solvers_structure.inl * \brief inline subroutines of the linear_solvers_structure.hpp file. * \author J. Hicken, F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/linear_solvers_structure_b.hpp b/Common/include/linear_solvers_structure_b.hpp index d2987635c17..c5c570970ea 100644 --- a/Common/include/linear_solvers_structure_b.hpp +++ b/Common/include/linear_solvers_structure_b.hpp @@ -2,7 +2,7 @@ * \file linear_solvers_structure_b.hpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 69a19443a02..7376f33cef3 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for creating the sparse matrices-by-blocks. * The subroutines and functions are in the matrix_structure.cpp file. * \author F. Palacios, A. Bueno, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -49,7 +49,7 @@ using namespace std; * \brief Main class for defining sparse matrices-by-blocks with compressed row format. * \author A. Bueno, F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSysMatrix { protected: diff --git a/Common/include/matrix_structure.inl b/Common/include/matrix_structure.inl index 1ce943a3dc8..37a8f317f07 100644 --- a/Common/include/matrix_structure.inl +++ b/Common/include/matrix_structure.inl @@ -2,7 +2,7 @@ * \file matrix_structure.inl * \brief In-Line subroutines of the matrix_structure.hpp file. * \author F. Palacios, A. Bueno, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/mpi_structure.hpp b/Common/include/mpi_structure.hpp index c8952ce277d..93de61d265a 100644 --- a/Common/include/mpi_structure.hpp +++ b/Common/include/mpi_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the mpi interface for generalized datatypes. * The subroutines and functions are in the mpi_structure.cpp file. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -62,7 +62,7 @@ typedef CMPIWrapper SU2_MPI; * \brief Class for defining the MPI wrapper routines; this class features as a base class for * MPI interfaces for non-primitive dataypes e.g. used by AD, complex etc. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CMPIWrapper { @@ -120,7 +120,7 @@ class CMPIWrapper { * \brief Class for defining the MPI wrapper routines for the simplest non-primitive data where a * auxiliary variable is attached to each primary value. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ #if defined COMPLEX_TYPE || \ defined ADOLC_FORWARD_TYPE || \ @@ -206,7 +206,7 @@ class CAuxMPIWrapper : public CMPIWrapper{ * \class CAdjointMPIWrapper * \brief Adjoint MPI wrapper functions. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjointMPIWrapper: public CMPIWrapper { diff --git a/Common/include/mpi_structure.inl b/Common/include/mpi_structure.inl index 21c8620c245..48b6a99f629 100644 --- a/Common/include/mpi_structure.inl +++ b/Common/include/mpi_structure.inl @@ -2,7 +2,7 @@ * \file mpi_structure.hpp * \brief In-Line subroutines of the mpi_structure.hpp file. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 2c72835b5be..7af2376335b 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -2,7 +2,7 @@ * \file option_structure.hpp * \brief Defines classes for referencing options for easy input in CConfig * \author J. Hicken, B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * Many of the classes in this file are templated, and therefore must * be declared and defined here; to keep all elements together, there @@ -814,7 +814,7 @@ enum GEO_TYPE { VERTEX = 1, /*!< \brief VTK nomenclature for defining a vertex element. */ LINE = 3, /*!< \brief VTK nomenclature for defining a line element. */ TRIANGLE = 5, /*!< \brief VTK nomenclature for defining a triangle element. */ - RECTANGLE = 9, /*!< \brief VTK nomenclature for defining a rectangle element. */ + QUADRILATERAL = 9, /*!< \brief VTK nomenclature for defining a quadrilateral element. */ TETRAHEDRON = 10, /*!< \brief VTK nomenclature for defining a tetrahedron element. */ HEXAHEDRON = 12, /*!< \brief VTK nomenclature for defining a hexahedron element. */ PRISM = 13, /*!< \brief VTK nomenclature for defining a prism element. */ diff --git a/Common/include/primal_grid_structure.hpp b/Common/include/primal_grid_structure.hpp index adaf743c820..a6ac86e0ee5 100644 --- a/Common/include/primal_grid_structure.hpp +++ b/Common/include/primal_grid_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the primal_grid_structure.cpp file. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -47,7 +47,7 @@ using namespace std; * \class CPrimalGrid * \brief Class to define the numerical primal grid. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPrimalGrid { protected: @@ -57,7 +57,7 @@ class CPrimalGrid { su2double **Coord_FaceElems_CG; /*!< \brief Coordinates of the center-of-gravity of the face of the elements. */ static unsigned short nDim; /*!< \brief Dimension of the element (2D or 3D) useful for triangles, - rectangles and edges. */ + quadrilateral and edges. */ unsigned long DomainElement; /*!< \brief Only for boundaries, in this variable the 3D elements which correspond with a boundary element is stored. */ bool Divide; /*!< \brief Marker used to know if we are going to divide this element @@ -247,7 +247,7 @@ class CPrimalGrid { * \brief Class for vertex element definition. This kind * of element is used in the parallelization stuff. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CVertexMPI : public CPrimalGrid { private: @@ -364,7 +364,7 @@ class CVertexMPI : public CPrimalGrid { * \class CLine * \brief Class for line element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CLine : public CPrimalGrid { private: @@ -490,7 +490,7 @@ class CLine : public CPrimalGrid { * \class CTriangle * \brief Class for triangle element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTriangle : public CPrimalGrid { private: @@ -615,12 +615,12 @@ class CTriangle : public CPrimalGrid { }; /*! - * \class CRectangle - * \brief Class for rectangle element definition. + * \class CQuadrilateral + * \brief Class for quadrilateral element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ -class CRectangle : public CPrimalGrid { +class CQuadrilateral : public CPrimalGrid { private: static unsigned short Faces[4][2]; /*!< \brief Matrix to store the local nodes of all the faces. */ static unsigned short Neighbor_Nodes[4][2]; /*!< \brief Neighbor to a nodes in the element. */ @@ -642,17 +642,17 @@ class CRectangle : public CPrimalGrid { * \param[in] val_point_3 - Index of the 4th point read from the grid file. * \param[in] val_nDim - Number of dimension of the problem (2D or 3D). */ - CRectangle(unsigned long val_point_0, unsigned long val_point_1, + CQuadrilateral(unsigned long val_point_0, unsigned long val_point_1, unsigned long val_point_2, unsigned long val_point_3, unsigned short val_nDim); /*! * \brief Destructor of the class. */ - ~CRectangle(void); + ~CQuadrilateral(void); /*! * \brief Get the nodes shared by the triangle. - * \param[in] val_node - Local (to the rectangle) index of the node (a rectangle has 4 nodes). + * \param[in] val_node - Local (to the quadrilateral) index of the node (a quadrilateral has 4 nodes). * \return Global index of the triangle node. */ unsigned long GetNode(unsigned short val_node); @@ -668,7 +668,7 @@ class CRectangle : public CPrimalGrid { * \brief Get the face index of and element. * \param[in] val_face - Local index of the face. * \param[in] val_index - Local (to the face) index of the nodes that compose the face. - * \return Local (to the rectangle) index of the nodes that compose the face. + * \return Local (to the quadrilateral) index of the nodes that compose the face. */ unsigned short GetFaces(unsigned short val_face, unsigned short val_index); @@ -676,7 +676,7 @@ class CRectangle : public CPrimalGrid { * \brief Get the local index of the neighbors to a node (given the local index). * \param[in] val_node - Local (to the element) index of a node. * \param[in] val_index - Local (to the neighbor nodes of val_node) index of the nodes that are neighbor to val_node. - * \return Local (to the rectangle) index of the nodes that are neighbor to val_node. + * \return Local (to the quadrilateral) index of the nodes that are neighbor to val_node. */ unsigned short GetNeighbor_Nodes(unsigned short val_node, unsigned short val_index); @@ -746,7 +746,7 @@ class CRectangle : public CPrimalGrid { * \class CTetrahedron * \brief Class for tetrahedron element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTetrahedron : public CPrimalGrid { private: @@ -861,7 +861,7 @@ class CTetrahedron : public CPrimalGrid { * \class CHexahedron * \brief Class for hexahedron element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CHexahedron : public CPrimalGrid { private: @@ -983,7 +983,7 @@ class CHexahedron : public CPrimalGrid { * \class CPrism * \brief Class for prism element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPrism : public CPrimalGrid { private: @@ -1101,7 +1101,7 @@ class CPrism : public CPrimalGrid { * \class CPyramid * \brief Class for pyramid element definition. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPyramid : public CPrimalGrid { private: diff --git a/Common/include/primal_grid_structure.inl b/Common/include/primal_grid_structure.inl index d0c7640baae..9b91ec02f5e 100644 --- a/Common/include/primal_grid_structure.inl +++ b/Common/include/primal_grid_structure.inl @@ -2,7 +2,7 @@ * \file primal_grid_structure.inl * \brief In-Line subroutines of the primal_grid_structure.hpp file. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -133,31 +133,31 @@ inline void CTriangle::SetDomainElement(unsigned long val_domainelement) { Domai inline unsigned long CTriangle::GetDomainElement(void) { return DomainElement; } -inline unsigned short CRectangle::GetFaces(unsigned short val_face, unsigned short val_index) { return Faces[val_face][val_index]; } +inline unsigned short CQuadrilateral::GetFaces(unsigned short val_face, unsigned short val_index) { return Faces[val_face][val_index]; } -inline unsigned short CRectangle::GetNeighbor_Nodes(unsigned short val_node, unsigned short val_index) { return Neighbor_Nodes[val_node][val_index]; } +inline unsigned short CQuadrilateral::GetNeighbor_Nodes(unsigned short val_node, unsigned short val_index) { return Neighbor_Nodes[val_node][val_index]; } -inline unsigned short CRectangle::GetnNodesFace(unsigned short val_face) { return nNodesFace[val_face]; } +inline unsigned short CQuadrilateral::GetnNodesFace(unsigned short val_face) { return nNodesFace[val_face]; } -inline unsigned short CRectangle::GetnNeighbor_Nodes(unsigned short val_node) { return nNeighbor_Nodes[val_node]; } +inline unsigned short CQuadrilateral::GetnNeighbor_Nodes(unsigned short val_node) { return nNeighbor_Nodes[val_node]; } -inline unsigned long CRectangle::GetNode(unsigned short val_node) { return Nodes[val_node]; } +inline unsigned long CQuadrilateral::GetNode(unsigned short val_node) { return Nodes[val_node]; } -inline void CRectangle::SetNode(unsigned short val_node, unsigned long val_point) { Nodes[val_node] = val_point; } +inline void CQuadrilateral::SetNode(unsigned short val_node, unsigned long val_point) { Nodes[val_node] = val_point; } -inline unsigned short CRectangle::GetnNodes(void) { return nNodes; } +inline unsigned short CQuadrilateral::GetnNodes(void) { return nNodes; } -inline unsigned short CRectangle::GetnFaces(void) { return nFaces; } +inline unsigned short CQuadrilateral::GetnFaces(void) { return nFaces; } -inline unsigned short CRectangle::GetVTK_Type(void) { return VTK_Type; } +inline unsigned short CQuadrilateral::GetVTK_Type(void) { return VTK_Type; } -inline unsigned short CRectangle::GetMaxNodesFace(void) { return maxNodesFace; } +inline unsigned short CQuadrilateral::GetMaxNodesFace(void) { return maxNodesFace; } -inline unsigned short CRectangle::GetnNeighbor_Elements(void) { return nNeighbor_Elements; } +inline unsigned short CQuadrilateral::GetnNeighbor_Elements(void) { return nNeighbor_Elements; } -inline void CRectangle::SetDomainElement(unsigned long val_domainelement) { DomainElement = val_domainelement; } +inline void CQuadrilateral::SetDomainElement(unsigned long val_domainelement) { DomainElement = val_domainelement; } -inline unsigned long CRectangle::GetDomainElement(void) { return DomainElement; } +inline unsigned long CQuadrilateral::GetDomainElement(void) { return DomainElement; } inline unsigned short CTetrahedron::GetFaces(unsigned short val_face, unsigned short val_index) { return Faces[val_face][val_index]; } diff --git a/Common/include/vector_structure.hpp b/Common/include/vector_structure.hpp index 30d994421f1..b6776cf2415 100644 --- a/Common/include/vector_structure.hpp +++ b/Common/include/vector_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers for the classes related to linear solvers (CG, FGMRES, etc) * The subroutines and functions are in the linear_solvers_structure.cpp file. * \author F. Palacios, J. Hicken, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -50,7 +50,7 @@ const su2double eps = numeric_limits::epsilon(); /*!< \brief machine * \class CSysVector * \brief Class for holding and manipulating vectors needed by linear solvers * \author J. Hicken. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * We could use the STL vector as a base class here, but this gives us * more flexibility with the underlying data (e.g. we may decide to @@ -344,7 +344,7 @@ class CSysVector { * \class CMatrixVectorProduct * \brief abstract base class for defining matrix-vector products * \author J. Hicken. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * The Krylov-subspace solvers require only matrix-vector products and * not the actual matrix/Jacobian. We need some way to indicate which @@ -369,7 +369,7 @@ inline CMatrixVectorProduct::~CMatrixVectorProduct() {} * \class CPreconditioner * \brief abstract base class for defining preconditioning operation * \author J. Hicken. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * See the remarks regarding the CMatrixVectorProduct class. The same * idea applies here to the preconditioning operation. diff --git a/Common/include/vector_structure.inl b/Common/include/vector_structure.inl index 9ef1ac6f67f..db95c037ecf 100644 --- a/Common/include/vector_structure.inl +++ b/Common/include/vector_structure.inl @@ -2,7 +2,7 @@ * \file vector_structure.inl * \brief inline subroutines of the vector_structure.hpp file. * \author F. Palacios, J. Hicken - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index dfd9b39d3e7..7c99b1dd1ac 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for the SU2 common library # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index e6db421a93f..a3c64895eba 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for the SU2 common library # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index af201bb2ccb..c7fe2959245 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -2,7 +2,7 @@ * \file config_structure.cpp * \brief Main file for managing the config file * \author F. Palacios, T. Economon, B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -87,6 +87,10 @@ CConfig::CConfig(char case_filename[MAX_STRING_SIZE], CConfig *config) { bool runtime_file = false; + /*--- Initialize pointers to Null---*/ + + SetPointersNull(); + /*--- Reading config options ---*/ SetRunTime_Options(); @@ -95,7 +99,7 @@ CConfig::CConfig(char case_filename[MAX_STRING_SIZE], CConfig *config) { runtime_file = SetRunTime_Parsing(case_filename); - /*--- Update config file ---*/ + /*--- Update original config file ---*/ if (runtime_file) { config->SetnExtIter(nExtIter); @@ -3159,7 +3163,6 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ cout << "SU2_CFD: Config option DIRECT_DIFF= YES requires AD or complex support!" << endl; cout << "Please use SU2_CFD_DIRECTDIFF (configuration/compilation is done using the preconfigure.py script)." << endl; exit(EXIT_FAILURE); - exit(EXIT_FAILURE); } #endif /*--- Initialize the derivative values --- */ @@ -3223,7 +3226,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ void CConfig::SetMarkers(unsigned short val_software) { - unsigned short iMarker_All, iMarker_Config, iMarker_Euler, iMarker_Custom, + unsigned short iMarker_All, iMarker_CfgFile, iMarker_Euler, iMarker_Custom, iMarker_FarField, iMarker_SymWall, iMarker_Pressure, iMarker_PerBound, iMarker_NearFieldBound, iMarker_InterfaceBound, iMarker_Dirichlet, iMarker_Inlet, iMarker_Riemann, iMarker_Outlet, iMarker_Isothermal, iMarker_IsothermalCatalytic, @@ -3244,7 +3247,7 @@ void CConfig::SetMarkers(unsigned short val_software) { /*--- Compute the total number of markers in the config file ---*/ - nMarker_Config = nMarker_Euler + nMarker_FarField + nMarker_SymWall + + nMarker_CfgFile = nMarker_Euler + nMarker_FarField + nMarker_SymWall + nMarker_Pressure + nMarker_PerBound + nMarker_NearFieldBound + nMarker_InterfaceBound + nMarker_Dirichlet + nMarker_Neumann + nMarker_Inlet + nMarker_Riemann + nMarker_Outlet + nMarker_Isothermal + nMarker_IsothermalNonCatalytic + @@ -3257,7 +3260,7 @@ void CConfig::SetMarkers(unsigned short val_software) { /*--- Add the possible send/receive domains ---*/ - nMarker_Max = nMarker_Config + 2*size; + nMarker_Max = nMarker_CfgFile + 2*size; /*--- Basic dimensionalization of the markers (worst scenario) ---*/ @@ -3295,117 +3298,117 @@ void CConfig::SetMarkers(unsigned short val_software) { /*--- Allocate the memory (markers in the config file) ---*/ - Marker_CfgFile_TagBound = new string[nMarker_Config]; - Marker_CfgFile_KindBC = new unsigned short[nMarker_Config]; - Marker_CfgFile_Monitoring = new unsigned short[nMarker_Config]; - Marker_CfgFile_Designing = new unsigned short[nMarker_Config]; - Marker_CfgFile_Plotting = new unsigned short[nMarker_Config]; - Marker_CfgFile_GeoEval = new unsigned short[nMarker_Config]; - Marker_CfgFile_FSIinterface = new unsigned short[nMarker_Config]; - Marker_CfgFile_DV = new unsigned short[nMarker_Config]; - Marker_CfgFile_Moving = new unsigned short[nMarker_Config]; - Marker_CfgFile_PerBound = new unsigned short[nMarker_Config]; - Marker_CfgFile_Out_1D = new unsigned short[nMarker_Config]; - - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_TagBound[iMarker_Config] = "SEND_RECEIVE"; - Marker_CfgFile_KindBC[iMarker_Config] = 0; - Marker_CfgFile_Monitoring[iMarker_Config] = 0; - Marker_CfgFile_GeoEval[iMarker_Config] = 0; - Marker_CfgFile_Designing[iMarker_Config] = 0; - Marker_CfgFile_Plotting[iMarker_Config] = 0; - Marker_CfgFile_FSIinterface[iMarker_Config] = 0; - Marker_CfgFile_DV[iMarker_Config] = 0; - Marker_CfgFile_Moving[iMarker_Config] = 0; - Marker_CfgFile_PerBound[iMarker_Config] = 0; - Marker_CfgFile_Out_1D[iMarker_Config] = 0; + Marker_CfgFile_TagBound = new string[nMarker_CfgFile]; + Marker_CfgFile_KindBC = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_Monitoring = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_Designing = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_Plotting = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_GeoEval = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_FSIinterface = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_DV = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_Moving = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_PerBound = new unsigned short[nMarker_CfgFile]; + Marker_CfgFile_Out_1D = new unsigned short[nMarker_CfgFile]; + + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_TagBound[iMarker_CfgFile] = "SEND_RECEIVE"; + Marker_CfgFile_KindBC[iMarker_CfgFile] = 0; + Marker_CfgFile_Monitoring[iMarker_CfgFile] = 0; + Marker_CfgFile_GeoEval[iMarker_CfgFile] = 0; + Marker_CfgFile_Designing[iMarker_CfgFile] = 0; + Marker_CfgFile_Plotting[iMarker_CfgFile] = 0; + Marker_CfgFile_FSIinterface[iMarker_CfgFile] = 0; + Marker_CfgFile_DV[iMarker_CfgFile] = 0; + Marker_CfgFile_Moving[iMarker_CfgFile] = 0; + Marker_CfgFile_PerBound[iMarker_CfgFile] = 0; + Marker_CfgFile_Out_1D[iMarker_CfgFile] = 0; } /*--- Populate the marker information in the config file (all domains) ---*/ - iMarker_Config = 0; + iMarker_CfgFile = 0; for (iMarker_Euler = 0; iMarker_Euler < nMarker_Euler; iMarker_Euler++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Euler[iMarker_Euler]; - Marker_CfgFile_KindBC[iMarker_Config] = EULER_WALL; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Euler[iMarker_Euler]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = EULER_WALL; + iMarker_CfgFile++; } for (iMarker_FarField = 0; iMarker_FarField < nMarker_FarField; iMarker_FarField++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_FarField[iMarker_FarField]; - Marker_CfgFile_KindBC[iMarker_Config] = FAR_FIELD; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_FarField[iMarker_FarField]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = FAR_FIELD; + iMarker_CfgFile++; } for (iMarker_SymWall = 0; iMarker_SymWall < nMarker_SymWall; iMarker_SymWall++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_SymWall[iMarker_SymWall]; - Marker_CfgFile_KindBC[iMarker_Config] = SYMMETRY_PLANE; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_SymWall[iMarker_SymWall]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = SYMMETRY_PLANE; + iMarker_CfgFile++; } for (iMarker_Pressure = 0; iMarker_Pressure < nMarker_Pressure; iMarker_Pressure++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Pressure[iMarker_Pressure]; - Marker_CfgFile_KindBC[iMarker_Config] = PRESSURE_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Pressure[iMarker_Pressure]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = PRESSURE_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_PerBound = 0; iMarker_PerBound < nMarker_PerBound; iMarker_PerBound++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_PerBound[iMarker_PerBound]; - Marker_CfgFile_KindBC[iMarker_Config] = PERIODIC_BOUNDARY; - Marker_CfgFile_PerBound[iMarker_Config] = iMarker_PerBound + 1; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_PerBound[iMarker_PerBound]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = PERIODIC_BOUNDARY; + Marker_CfgFile_PerBound[iMarker_CfgFile] = iMarker_PerBound + 1; + iMarker_CfgFile++; } for (iMarker_ActDisk_Inlet = 0; iMarker_ActDisk_Inlet < nMarker_ActDisk_Inlet; iMarker_ActDisk_Inlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_ActDisk_Inlet[iMarker_ActDisk_Inlet]; - Marker_CfgFile_KindBC[iMarker_Config] = ACTDISK_INLET; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_ActDisk_Inlet[iMarker_ActDisk_Inlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ACTDISK_INLET; + iMarker_CfgFile++; } for (iMarker_ActDisk_Outlet = 0; iMarker_ActDisk_Outlet < nMarker_ActDisk_Outlet; iMarker_ActDisk_Outlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_ActDisk_Outlet[iMarker_ActDisk_Outlet]; - Marker_CfgFile_KindBC[iMarker_Config] = ACTDISK_OUTLET; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_ActDisk_Outlet[iMarker_ActDisk_Outlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ACTDISK_OUTLET; + iMarker_CfgFile++; } for (iMarker_NearFieldBound = 0; iMarker_NearFieldBound < nMarker_NearFieldBound; iMarker_NearFieldBound++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_NearFieldBound[iMarker_NearFieldBound]; - Marker_CfgFile_KindBC[iMarker_Config] = NEARFIELD_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_NearFieldBound[iMarker_NearFieldBound]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = NEARFIELD_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_InterfaceBound = 0; iMarker_InterfaceBound < nMarker_InterfaceBound; iMarker_InterfaceBound++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_InterfaceBound[iMarker_InterfaceBound]; - Marker_CfgFile_KindBC[iMarker_Config] = INTERFACE_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_InterfaceBound[iMarker_InterfaceBound]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = INTERFACE_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_Dirichlet = 0; iMarker_Dirichlet < nMarker_Dirichlet; iMarker_Dirichlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Dirichlet[iMarker_Dirichlet]; - Marker_CfgFile_KindBC[iMarker_Config] = DIRICHLET; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Dirichlet[iMarker_Dirichlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = DIRICHLET; + iMarker_CfgFile++; } for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Inlet[iMarker_Inlet]; - Marker_CfgFile_KindBC[iMarker_Config] = INLET_FLOW; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Inlet[iMarker_Inlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = INLET_FLOW; + iMarker_CfgFile++; } for (iMarker_Riemann = 0; iMarker_Riemann < nMarker_Riemann; iMarker_Riemann++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Riemann[iMarker_Riemann]; - Marker_CfgFile_KindBC[iMarker_Config] = RIEMANN_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Riemann[iMarker_Riemann]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = RIEMANN_BOUNDARY; + iMarker_CfgFile++; } Inflow_Mach = new su2double[nMarker_EngineInflow]; Inflow_Pressure = new su2double[nMarker_EngineInflow]; for (iMarker_EngineInflow = 0; iMarker_EngineInflow < nMarker_EngineInflow; iMarker_EngineInflow++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_EngineInflow[iMarker_EngineInflow]; - Marker_CfgFile_KindBC[iMarker_Config] = ENGINE_INFLOW; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_EngineInflow[iMarker_EngineInflow]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ENGINE_INFLOW; Inflow_Mach[iMarker_EngineInflow] = 0.0; Inflow_Pressure[iMarker_EngineInflow] = 0.0; - iMarker_Config++; + iMarker_CfgFile++; } Bleed_MassFlow = new su2double[nMarker_EngineBleed]; @@ -3413,186 +3416,186 @@ void CConfig::SetMarkers(unsigned short val_software) { Bleed_Pressure = new su2double[nMarker_EngineBleed]; for (iMarker_EngineBleed = 0; iMarker_EngineBleed < nMarker_EngineBleed; iMarker_EngineBleed++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_EngineBleed[iMarker_EngineBleed]; - Marker_CfgFile_KindBC[iMarker_Config] = ENGINE_BLEED; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_EngineBleed[iMarker_EngineBleed]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ENGINE_BLEED; Bleed_MassFlow[iMarker_EngineBleed] = 0.0; Bleed_Temperature[iMarker_EngineBleed] = 0.0; Bleed_Pressure[iMarker_EngineBleed] = 0.0; - iMarker_Config++; + iMarker_CfgFile++; } Exhaust_Pressure = new su2double[nMarker_EngineExhaust]; Exhaust_Temperature = new su2double[nMarker_EngineExhaust]; for (iMarker_EngineExhaust = 0; iMarker_EngineExhaust < nMarker_EngineExhaust; iMarker_EngineExhaust++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_EngineExhaust[iMarker_EngineExhaust]; - Marker_CfgFile_KindBC[iMarker_Config] = ENGINE_EXHAUST; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_EngineExhaust[iMarker_EngineExhaust]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ENGINE_EXHAUST; Exhaust_Pressure[iMarker_EngineExhaust] = 0.0; Exhaust_Temperature[iMarker_EngineExhaust] = 0.0; - iMarker_Config++; + iMarker_CfgFile++; } for (iMarker_Supersonic_Inlet = 0; iMarker_Supersonic_Inlet < nMarker_Supersonic_Inlet; iMarker_Supersonic_Inlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Supersonic_Inlet[iMarker_Supersonic_Inlet]; - Marker_CfgFile_KindBC[iMarker_Config] = SUPERSONIC_INLET; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Supersonic_Inlet[iMarker_Supersonic_Inlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = SUPERSONIC_INLET; + iMarker_CfgFile++; } for (iMarker_Supersonic_Outlet = 0; iMarker_Supersonic_Outlet < nMarker_Supersonic_Outlet; iMarker_Supersonic_Outlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Supersonic_Outlet[iMarker_Supersonic_Outlet]; - Marker_CfgFile_KindBC[iMarker_Config] = SUPERSONIC_OUTLET; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Supersonic_Outlet[iMarker_Supersonic_Outlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = SUPERSONIC_OUTLET; + iMarker_CfgFile++; } for (iMarker_Neumann = 0; iMarker_Neumann < nMarker_Neumann; iMarker_Neumann++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Neumann[iMarker_Neumann]; - Marker_CfgFile_KindBC[iMarker_Config] = NEUMANN; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Neumann[iMarker_Neumann]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = NEUMANN; + iMarker_CfgFile++; } for (iMarker_Custom = 0; iMarker_Custom < nMarker_Custom; iMarker_Custom++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Custom[iMarker_Custom]; - Marker_CfgFile_KindBC[iMarker_Config] = CUSTOM_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Custom[iMarker_Custom]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = CUSTOM_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_Outlet = 0; iMarker_Outlet < nMarker_Outlet; iMarker_Outlet++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Outlet[iMarker_Outlet]; - Marker_CfgFile_KindBC[iMarker_Config] = OUTLET_FLOW; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Outlet[iMarker_Outlet]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = OUTLET_FLOW; + iMarker_CfgFile++; } for (iMarker_Isothermal = 0; iMarker_Isothermal < nMarker_Isothermal; iMarker_Isothermal++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Isothermal[iMarker_Isothermal]; - Marker_CfgFile_KindBC[iMarker_Config] = ISOTHERMAL; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Isothermal[iMarker_Isothermal]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ISOTHERMAL; + iMarker_CfgFile++; } for (iMarker_IsothermalCatalytic = 0; iMarker_IsothermalCatalytic < nMarker_IsothermalCatalytic; iMarker_IsothermalCatalytic++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_IsothermalCatalytic[iMarker_IsothermalCatalytic]; - Marker_CfgFile_KindBC[iMarker_Config] = ISOTHERMAL_CATALYTIC; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_IsothermalCatalytic[iMarker_IsothermalCatalytic]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ISOTHERMAL_CATALYTIC; + iMarker_CfgFile++; } for (iMarker_IsothermalNonCatalytic = 0; iMarker_IsothermalNonCatalytic < nMarker_IsothermalNonCatalytic; iMarker_IsothermalNonCatalytic++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_IsothermalNonCatalytic[iMarker_IsothermalNonCatalytic]; - Marker_CfgFile_KindBC[iMarker_Config] = ISOTHERMAL_NONCATALYTIC; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_IsothermalNonCatalytic[iMarker_IsothermalNonCatalytic]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = ISOTHERMAL_NONCATALYTIC; + iMarker_CfgFile++; } for (iMarker_HeatFlux = 0; iMarker_HeatFlux < nMarker_HeatFlux; iMarker_HeatFlux++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_HeatFlux[iMarker_HeatFlux]; - Marker_CfgFile_KindBC[iMarker_Config] = HEAT_FLUX; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_HeatFlux[iMarker_HeatFlux]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = HEAT_FLUX; + iMarker_CfgFile++; } for (iMarker_HeatFluxCatalytic = 0; iMarker_HeatFluxCatalytic < nMarker_HeatFluxCatalytic; iMarker_HeatFluxCatalytic++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_HeatFluxCatalytic[iMarker_HeatFluxCatalytic]; - Marker_CfgFile_KindBC[iMarker_Config] = HEAT_FLUX_CATALYTIC; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_HeatFluxCatalytic[iMarker_HeatFluxCatalytic]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = HEAT_FLUX_CATALYTIC; + iMarker_CfgFile++; } for (iMarker_HeatFluxNoncatalytic = 0; iMarker_HeatFluxNoncatalytic < nMarker_HeatFluxNonCatalytic; iMarker_HeatFluxNoncatalytic++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_HeatFluxNonCatalytic[iMarker_HeatFluxNoncatalytic]; - Marker_CfgFile_KindBC[iMarker_Config] = HEAT_FLUX_NONCATALYTIC; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_HeatFluxNonCatalytic[iMarker_HeatFluxNoncatalytic]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = HEAT_FLUX_NONCATALYTIC; + iMarker_CfgFile++; } for (iMarker_Clamped = 0; iMarker_Clamped < nMarker_Clamped; iMarker_Clamped++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Clamped[iMarker_Clamped]; - Marker_CfgFile_KindBC[iMarker_Config] = CLAMPED_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Clamped[iMarker_Clamped]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = CLAMPED_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_Displacement = 0; iMarker_Displacement < nMarker_Displacement; iMarker_Displacement++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Displacement[iMarker_Displacement]; - Marker_CfgFile_KindBC[iMarker_Config] = DISPLACEMENT_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Displacement[iMarker_Displacement]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = DISPLACEMENT_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_Load = 0; iMarker_Load < nMarker_Load; iMarker_Load++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Load[iMarker_Load]; - Marker_CfgFile_KindBC[iMarker_Config] = LOAD_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Load[iMarker_Load]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = LOAD_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_Load_Dir = 0; iMarker_Load_Dir < nMarker_Load_Dir; iMarker_Load_Dir++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Load_Dir[iMarker_Load_Dir]; - Marker_CfgFile_KindBC[iMarker_Config] = LOAD_DIR_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Load_Dir[iMarker_Load_Dir]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = LOAD_DIR_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_Load_Sine = 0; iMarker_Load_Sine < nMarker_Load_Sine; iMarker_Load_Sine++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_Load_Sine[iMarker_Load_Sine]; - Marker_CfgFile_KindBC[iMarker_Config] = LOAD_SINE_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_Load_Sine[iMarker_Load_Sine]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = LOAD_SINE_BOUNDARY; + iMarker_CfgFile++; } for (iMarker_FlowLoad = 0; iMarker_FlowLoad < nMarker_FlowLoad; iMarker_FlowLoad++) { - Marker_CfgFile_TagBound[iMarker_Config] = Marker_FlowLoad[iMarker_FlowLoad]; - Marker_CfgFile_KindBC[iMarker_Config] = FLOWLOAD_BOUNDARY; - iMarker_Config++; + Marker_CfgFile_TagBound[iMarker_CfgFile] = Marker_FlowLoad[iMarker_FlowLoad]; + Marker_CfgFile_KindBC[iMarker_CfgFile] = FLOWLOAD_BOUNDARY; + iMarker_CfgFile++; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_Monitoring[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_Monitoring[iMarker_CfgFile] = NO; for (iMarker_Monitoring = 0; iMarker_Monitoring < nMarker_Monitoring; iMarker_Monitoring++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_Monitoring[iMarker_Monitoring]) - Marker_CfgFile_Monitoring[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Monitoring[iMarker_Monitoring]) + Marker_CfgFile_Monitoring[iMarker_CfgFile] = YES; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_GeoEval[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_GeoEval[iMarker_CfgFile] = NO; for (iMarker_GeoEval = 0; iMarker_GeoEval < nMarker_GeoEval; iMarker_GeoEval++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_GeoEval[iMarker_GeoEval]) - Marker_CfgFile_GeoEval[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_GeoEval[iMarker_GeoEval]) + Marker_CfgFile_GeoEval[iMarker_CfgFile] = YES; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_Designing[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_Designing[iMarker_CfgFile] = NO; for (iMarker_Designing = 0; iMarker_Designing < nMarker_Designing; iMarker_Designing++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_Designing[iMarker_Designing]) - Marker_CfgFile_Designing[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Designing[iMarker_Designing]) + Marker_CfgFile_Designing[iMarker_CfgFile] = YES; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_Plotting[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_Plotting[iMarker_CfgFile] = NO; for (iMarker_Plotting = 0; iMarker_Plotting < nMarker_Plotting; iMarker_Plotting++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_Plotting[iMarker_Plotting]) - Marker_CfgFile_Plotting[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Plotting[iMarker_Plotting]) + Marker_CfgFile_Plotting[iMarker_CfgFile] = YES; } /*--- Identification of Fluid-Structure interface markers ---*/ - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { unsigned short indexMarker=0; - Marker_CfgFile_FSIinterface[iMarker_Config] = NO; + Marker_CfgFile_FSIinterface[iMarker_CfgFile] = NO; for (iMarker_FSIinterface = 0; iMarker_FSIinterface < nMarker_FSIinterface; iMarker_FSIinterface++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_FSIinterface[iMarker_FSIinterface]) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_FSIinterface[iMarker_FSIinterface]) indexMarker=(int)(iMarker_FSIinterface/2+1); - Marker_CfgFile_FSIinterface[iMarker_Config] = indexMarker; + Marker_CfgFile_FSIinterface[iMarker_CfgFile] = indexMarker; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_DV[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_DV[iMarker_CfgFile] = NO; for (iMarker_DV = 0; iMarker_DV < nMarker_DV; iMarker_DV++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_DV[iMarker_DV]) - Marker_CfgFile_DV[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_DV[iMarker_DV]) + Marker_CfgFile_DV[iMarker_CfgFile] = YES; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_Moving[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_Moving[iMarker_CfgFile] = NO; for (iMarker_Moving = 0; iMarker_Moving < nMarker_Moving; iMarker_Moving++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_Moving[iMarker_Moving]) - Marker_CfgFile_Moving[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Moving[iMarker_Moving]) + Marker_CfgFile_Moving[iMarker_CfgFile] = YES; } - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) { - Marker_CfgFile_Out_1D[iMarker_Config] = NO; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) { + Marker_CfgFile_Out_1D[iMarker_CfgFile] = NO; for (iMarker_Out_1D = 0; iMarker_Out_1D < nMarker_Out_1D; iMarker_Out_1D++) - if (Marker_CfgFile_TagBound[iMarker_Config] == Marker_Out_1D[iMarker_Out_1D]) - Marker_CfgFile_Out_1D[iMarker_Config] = YES; + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == Marker_Out_1D[iMarker_Out_1D]) + Marker_CfgFile_Out_1D[iMarker_CfgFile] = YES; } } @@ -3616,7 +3619,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << endl << "-------------------------------------------------------------------------" << endl; cout << "| ___ _ _ ___ |" << endl; - cout << "| / __| | | |_ ) Release 4.0.0 \"Cardinal\" |" << endl; + cout << "| / __| | | |_ ) Release 4.0.1 \"Cardinal\" |" << endl; cout << "| \\__ \\ |_| |/ / |" << endl; switch (val_software) { case SU2_CFD: cout << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |" << endl; break; @@ -5326,11 +5329,11 @@ bool CConfig::TokenizeString(string & str, string & option_name, unsigned short CConfig::GetMarker_CfgFile_TagBound(string val_marker) { - unsigned short iMarker_Config; + unsigned short iMarker_CfgFile; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) - return iMarker_Config; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) + return iMarker_CfgFile; cout <<"The configuration file doesn't have any definition for marker "<< val_marker <<"!!" << endl; exit(EXIT_FAILURE); @@ -5342,74 +5345,74 @@ string CConfig::GetMarker_CfgFile_TagBound(unsigned short val_marker) { } unsigned short CConfig::GetMarker_CfgFile_KindBC(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_KindBC[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_KindBC[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_Monitoring(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_Monitoring[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_Monitoring[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_GeoEval(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_GeoEval[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_GeoEval[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_Designing(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_Designing[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_Designing[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_Plotting(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_Plotting[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_Plotting[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_FSIinterface(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_FSIinterface[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_FSIinterface[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_Out_1D(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_Out_1D[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_Out_1D[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_DV(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_DV[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_DV[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_Moving(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_Moving[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_Moving[iMarker_CfgFile]; } unsigned short CConfig::GetMarker_CfgFile_PerBound(string val_marker) { - unsigned short iMarker_Config; - for (iMarker_Config = 0; iMarker_Config < nMarker_Config; iMarker_Config++) - if (Marker_CfgFile_TagBound[iMarker_Config] == val_marker) break; - return Marker_CfgFile_PerBound[iMarker_Config]; + unsigned short iMarker_CfgFile; + for (iMarker_CfgFile = 0; iMarker_CfgFile < nMarker_CfgFile; iMarker_CfgFile++) + if (Marker_CfgFile_TagBound[iMarker_CfgFile] == val_marker) break; + return Marker_CfgFile_PerBound[iMarker_CfgFile]; } CConfig::~CConfig(void) { @@ -5988,7 +5991,7 @@ unsigned short CConfig::GetMarker_Periodic_Donor(string val_marker) { if (Marker_PerBound[jMarker_PerBound] == Marker_PerDonor[iMarker_PerBound]) break; /*--- Find and return global marker index for donor boundary. ---*/ - for (kMarker_All = 0; kMarker_All < nMarker_Config; kMarker_All++) + for (kMarker_All = 0; kMarker_All < nMarker_CfgFile; kMarker_All++) if (Marker_PerBound[jMarker_PerBound] == Marker_All_TagBound[kMarker_All]) break; return kMarker_All; @@ -6060,7 +6063,7 @@ unsigned short CConfig::GetMarker_ActDisk_Outlet(string val_marker) { /*--- Find and return global marker index for the actuator disk outlet. ---*/ - for (kMarker_All = 0; kMarker_All < nMarker_Config; kMarker_All++) + for (kMarker_All = 0; kMarker_All < nMarker_CfgFile; kMarker_All++) if (Marker_ActDisk_Outlet[iMarker_ActDisk] == Marker_All_TagBound[kMarker_All]) break; return kMarker_All; diff --git a/Common/src/datatype_structure.cpp b/Common/src/datatype_structure.cpp index 9274a415efa..190b7efdd7d 100644 --- a/Common/src/datatype_structure.cpp +++ b/Common/src/datatype_structure.cpp @@ -2,7 +2,7 @@ * \file dataype_structure.cpp * \brief Main subroutines for the datatype structures. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 63b9219d4f6..48d4461879f 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -2,7 +2,7 @@ * \file dual_grid_structure.cpp * \brief Main classes for defining the dual grid * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index a8ceb30febd..c7a836c8e79 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -2,7 +2,7 @@ * \file geometry_structure.cpp * \brief Main subroutines for creating the primal grid and multigrid structure. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -110,11 +110,11 @@ CGeometry::~CGeometry(void) { delete[] face; } -// if (node != NULL) { -// for (iPoint = 0; iPoint < nPoint; iPoint ++) -// if (node[iPoint] != NULL) delete node[iPoint]; -// delete[] node; -// } + // if (node != NULL) { + // for (iPoint = 0; iPoint < nPoint; iPoint ++) + // if (node[iPoint] != NULL) delete node[iPoint]; + // delete[] node; + // } if (edge != NULL) { for (iEdge = 0; iEdge < nEdge; iEdge ++) @@ -380,7 +380,7 @@ su2double CGeometry::GetSpline(vector&xa, vector&ya, vecto } bool CGeometry::SegmentIntersectsPlane(su2double *Segment_P0, su2double *Segment_P1, su2double Variable_P0, su2double Variable_P1, - su2double *Plane_P0, su2double *Plane_Normal, su2double *Intersection, su2double &Variable_Interp) { + su2double *Plane_P0, su2double *Plane_Normal, su2double *Intersection, su2double &Variable_Interp) { su2double u[3], v[3], Denominator, Numerator, Aux, ModU; unsigned short iDim; @@ -478,7 +478,7 @@ bool CGeometry::RayIntersectsTriangle(su2double orig[3], su2double dir[3], intersect[0] = orig[0] + (t * dir[0]); intersect[1] = orig[1] + (t * dir[1]); intersect[2] = orig[2] + (t * dir[2]); - + return (true); } @@ -520,7 +520,7 @@ bool CGeometry::SegmentIntersectsTriangle(su2double point0[3], su2double point1[ } /*--- Intersection inside the segment ---*/ - + return (true); } @@ -827,7 +827,7 @@ void CGeometry::ComputeAirfoil_Section(su2double *Plane_P0, su2double *Plane_Nor void CGeometry::RegisterCoordinates(CConfig *config){ unsigned short iDim; unsigned long iPoint; - + for (iPoint = 0; iPoint < nPoint; iPoint++){ for (iDim = 0; iDim < nDim; iDim++){ AD::RegisterInput(node[iPoint]->GetCoord()[iDim]); @@ -836,24 +836,24 @@ void CGeometry::RegisterCoordinates(CConfig *config){ } void CGeometry::UpdateGeometry(CGeometry **geometry_container, CConfig *config){ - - unsigned short iMesh; - geometry_container[MESH_0]->Set_MPI_Coord(config); - - geometry_container[MESH_0]->SetCG(); - geometry_container[MESH_0]->SetControlVolume(config, UPDATE); - geometry_container[MESH_0]->SetBoundControlVolume(config, UPDATE); - - for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++){ - /*--- Update the control volume structures ---*/ - - geometry_container[iMesh]->SetControlVolume(config,geometry_container[iMesh-1], UPDATE); - geometry_container[iMesh]->SetBoundControlVolume(config,geometry_container[iMesh-1], UPDATE); - geometry_container[iMesh]->SetCoord(geometry_container[iMesh-1]); - - } - if (config->GetKind_Solver() == DISC_ADJ_RANS) - geometry_container[MESH_0]->ComputeWall_Distance(config); + + unsigned short iMesh; + geometry_container[MESH_0]->Set_MPI_Coord(config); + + geometry_container[MESH_0]->SetCG(); + geometry_container[MESH_0]->SetControlVolume(config, UPDATE); + geometry_container[MESH_0]->SetBoundControlVolume(config, UPDATE); + + for (iMesh = 1; iMesh <= config->GetnMGLevels(); iMesh++){ + /*--- Update the control volume structures ---*/ + + geometry_container[iMesh]->SetControlVolume(config,geometry_container[iMesh-1], UPDATE); + geometry_container[iMesh]->SetBoundControlVolume(config,geometry_container[iMesh-1], UPDATE); + geometry_container[iMesh]->SetCoord(geometry_container[iMesh-1]); + + } + if (config->GetKind_Solver() == DISC_ADJ_RANS) + geometry_container[MESH_0]->ComputeWall_Distance(config); } void CGeometry::ComputeSurf_Curvature(CConfig *config) { @@ -1194,7 +1194,7 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { #ifdef HAVE_MPI unsigned long nBuffer = MaxLocalVertex*nDim; #endif - + for (iVertex = 0; iVertex < MaxLocalVertex; iVertex++) { for (iDim = 0; iDim < nDim; iDim++) { Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; @@ -1255,12 +1255,12 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { } CPhysicalGeometry::CPhysicalGeometry() : CGeometry() { - - Global_to_Local_Point = NULL; - Local_to_Global_Point = NULL; + + Global_to_Local_Point = NULL; + Local_to_Global_Point = NULL; Local_to_Global_Marker = NULL; Global_to_Local_Marker = NULL; - + } CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, unsigned short val_nZone) : CGeometry() { @@ -1278,7 +1278,7 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, nZone = val_nZone; ofstream boundary_file; string Grid_Marker; - + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -1286,7 +1286,7 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, string val_mesh_filename = config->GetMesh_FileName(); unsigned short val_format = config->GetMesh_FileFormat(); - + /*--- Initialize counters for local/global points & elements ---*/ if (rank == MASTER_NODE) @@ -1311,7 +1311,11 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, #endif break; } - + + /*--- After reading the mesh, assert that the dimension is equal to 2 or 3. ---*/ + + assert((nDim == 2) || (nDim == 3)); + /*--- Loop over the points element to re-scale the mesh, and plot it (only SU2_CFD) ---*/ if (config->GetKind_SU2() == SU2_CFD) { @@ -1336,7 +1340,7 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, /*--- If SU2_DEF then write a file with the boundary information ---*/ if ((config->GetKind_SU2() == SU2_DEF) && (rank == MASTER_NODE)) { - + /*--- Open .su2 grid file ---*/ boundary_file.open("boundary.su2", ios::out); @@ -1372,7 +1376,7 @@ CPhysicalGeometry::CPhysicalGeometry(CConfig *config, unsigned short val_iZone, } boundary_file.close(); - + } } @@ -1384,21 +1388,22 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Local_to_Global_Point = NULL; Local_to_Global_Marker = NULL; Global_to_Local_Marker = NULL; - + unsigned long iter, iPoint, jPoint, iElem, jElem, iVertex; - unsigned long nElemTotal = 0, nPointTotal = 0, nPointDomainTotal = 0, nPointGhost = 0, nPointPeriodic = 0, nElemTriangle = 0, nElemRectangle = 0, nElemTetrahedron = 0, nElemHexahedron = 0, nElemPrism = 0, nElemPyramid = 0; - unsigned long iElemTotal, iPointTotal, iPointGhost, iPointDomain, iPointPeriodic, iElemTriangle, iElemRectangle, iElemTetrahedron, iElemHexahedron, iElemPrism, iElemPyramid; + unsigned long nElemTotal = 0, nPointTotal = 0, nPointDomainTotal = 0, nElemTriangle = 0, nElemQuadrilateral = 0, nElemTetrahedron = 0, nElemHexahedron = 0, nElemPrism = 0, nElemPyramid = 0; +// unsigned long nPointGhost = 0, nPointPeriodic = 0; + unsigned long iElemTotal, iPointTotal, iPointGhost, iPointDomain, iPointPeriodic, iElemTriangle, iElemQuadrilateral, iElemTetrahedron, iElemHexahedron, iElemPrism, iElemPyramid; unsigned long nBoundLineTotal = 0, iBoundLineTotal; unsigned long nBoundTriangleTotal = 0, iBoundTriangleTotal; - unsigned long nBoundRectangleTotal = 0, iBoundRectangleTotal; + unsigned long nBoundQuadrilateralTotal = 0, iBoundQuadrilateralTotal; unsigned long ReceptorColor = 0, DonorColor = 0, Transformation; unsigned long *nElem_Color = NULL, **Elem_Color = NULL, Max_nElem_Color = 0; unsigned long nTotalSendDomain_Periodic = 0, iTotalSendDomain_Periodic = 0, nTotalReceivedDomain_Periodic = 0, iTotalReceivedDomain_Periodic = 0, *nSendDomain_Periodic = NULL, *nReceivedDomain_Periodic = NULL; unsigned long Buffer_Send_nPointTotal = 0, Buffer_Send_nPointDomainTotal = 0, Buffer_Send_nPointGhost = 0, Buffer_Send_nPointPeriodic = 0; - unsigned long Buffer_Send_nElemTotal, Buffer_Send_nElemTriangle = 0, Buffer_Send_nElemRectangle = 0, Buffer_Send_nElemTetrahedron = 0, Buffer_Send_nElemHexahedron = 0, Buffer_Send_nElemPrism = 0, Buffer_Send_nElemPyramid = 0; + unsigned long Buffer_Send_nElemTotal, Buffer_Send_nElemTriangle = 0, Buffer_Send_nElemQuadrilateral = 0, Buffer_Send_nElemTetrahedron = 0, Buffer_Send_nElemHexahedron = 0, Buffer_Send_nElemPrism = 0, Buffer_Send_nElemPyramid = 0; unsigned long Buffer_Send_nTotalSendDomain_Periodic = 0, Buffer_Send_nTotalReceivedDomain_Periodic = 0, *Buffer_Send_nSendDomain_Periodic = NULL, *Buffer_Send_nReceivedDomain_Periodic = NULL; - unsigned long Buffer_Send_nBoundLineTotal = 0, Buffer_Send_nBoundTriangleTotal = 0, Buffer_Send_nBoundRectangleTotal = 0; - unsigned long iVertexDomain, iBoundLine, iBoundTriangle, iBoundRectangle; + unsigned long Buffer_Send_nBoundLineTotal = 0, Buffer_Send_nBoundTriangleTotal = 0, Buffer_Send_nBoundQuadrilateralTotal = 0; + unsigned long iVertexDomain, iBoundLine, iBoundTriangle, iBoundQuadrilateral; /*--- Need to su2double-check these shorts in case we go to nprocs > ~32,000 ---*/ @@ -1411,7 +1416,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { short *Marker_All_SendRecv_Copy = NULL; string *Marker_All_TagBound_Copy = NULL; unsigned short nMarker_Max = config->GetnMarker_Max(); - + int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -1420,15 +1425,15 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { unsigned long *nVertexDomain = new unsigned long[nMarker_Max]; unsigned long *nBoundLine = new unsigned long[nMarker_Max]; unsigned long *nBoundTriangle = new unsigned long[nMarker_Max]; - unsigned long *nBoundRectangle = new unsigned long[nMarker_Max]; + unsigned long *nBoundQuadrilateral = new unsigned long[nMarker_Max]; unsigned long *Buffer_Send_nVertexDomain = new unsigned long[nMarker_Max]; unsigned long *Buffer_Send_nBoundLine = new unsigned long[nMarker_Max]; unsigned long *Buffer_Send_nBoundTriangle = new unsigned long[nMarker_Max]; - unsigned long *Buffer_Send_nBoundRectangle = new unsigned long[nMarker_Max]; + unsigned long *Buffer_Send_nBoundQuadrilateral = new unsigned long[nMarker_Max]; short *Buffer_Send_Marker_All_SendRecv = new short[nMarker_Max]; char *Marker_All_TagBound = new char[nMarker_Max*MAX_STRING_SIZE]; char *Buffer_Send_Marker_All_TagBound = new char[nMarker_Max*MAX_STRING_SIZE]; - + #ifdef HAVE_MPI @@ -1450,7 +1455,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { unsigned long *Buffer_Send_Color = NULL, *Buffer_Receive_Color = NULL; unsigned long *Buffer_Send_GlobalPointIndex = NULL, *Buffer_Receive_GlobalPointIndex = NULL; unsigned long *Buffer_Send_Triangle = NULL, *Buffer_Receive_Triangle = NULL; - unsigned long *Buffer_Send_Rectangle = NULL, *Buffer_Receive_Rectangle = NULL; + unsigned long *Buffer_Send_Quadrilateral = NULL, *Buffer_Receive_Quadrilateral = NULL; unsigned long *Buffer_Send_Tetrahedron = NULL, *Buffer_Receive_Tetrahedron = NULL; unsigned long *Buffer_Send_Hexahedron = NULL, *Buffer_Receive_Hexahedron = NULL; unsigned long *Buffer_Send_Prism = NULL, *Buffer_Receive_Prism = NULL; @@ -1460,7 +1465,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { unsigned long *Buffer_Send_BoundLine = NULL, *Buffer_Receive_BoundLine = NULL; unsigned long *Buffer_Send_BoundTriangle = NULL, *Buffer_Receive_BoundTriangle = NULL; - unsigned long *Buffer_Send_BoundRectangle = NULL, *Buffer_Receive_BoundRectangle = NULL; + unsigned long *Buffer_Send_BoundQuadrilateral = NULL, *Buffer_Receive_BoundQuadrilateral = NULL; unsigned long *Buffer_Send_Local2Global_Marker = NULL, *Buffer_Receive_Local2Global_Marker = NULL; /*--- Define buffer vector periodic boundary conditions ---*/ @@ -1592,12 +1597,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { for (iDomain = 0; iDomain < nDomain; iDomain++) { if (rank == MASTER_NODE) { - + /*--- Interior dimensionalization. Loop over the original grid to perform the dimensionalizaton of the domain variables ---*/ Buffer_Send_nElemTotal = 0; Buffer_Send_nPointTotal = 0; Buffer_Send_nPointGhost = 0; Buffer_Send_nPointDomainTotal = 0; Buffer_Send_nPointPeriodic = 0; - Buffer_Send_nElemTriangle = 0; Buffer_Send_nElemRectangle = 0; Buffer_Send_nElemTetrahedron = 0; Buffer_Send_nElemHexahedron = 0; Buffer_Send_nElemPrism = 0; Buffer_Send_nElemPyramid = 0; + Buffer_Send_nElemTriangle = 0; Buffer_Send_nElemQuadrilateral = 0; Buffer_Send_nElemTetrahedron = 0; Buffer_Send_nElemHexahedron = 0; Buffer_Send_nElemPrism = 0; Buffer_Send_nElemPyramid = 0; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) Global2Local_Point[iPoint] = -1; @@ -1620,7 +1625,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { switch(geometry->elem[iElem]->GetVTK_Type()) { case TRIANGLE: Buffer_Send_nElemTriangle++; break; - case RECTANGLE: Buffer_Send_nElemRectangle++; break; + case QUADRILATERAL: Buffer_Send_nElemQuadrilateral++; break; case TETRAHEDRON: Buffer_Send_nElemTetrahedron++; break; case HEXAHEDRON: Buffer_Send_nElemHexahedron++; break; case PRISM: Buffer_Send_nElemPrism++; break; @@ -1633,13 +1638,13 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Boundary dimensionalization. Dimensionalization with physical boundaries, compute Buffer_Send_nMarkerDomain, Buffer_Send_nVertexDomain[nMarkerDomain] ---*/ - Buffer_Send_nMarkerDomain = 0; Buffer_Send_nBoundLineTotal = 0; Buffer_Send_nBoundTriangleTotal = 0; Buffer_Send_nBoundRectangleTotal = 0; + Buffer_Send_nMarkerDomain = 0; Buffer_Send_nBoundLineTotal = 0; Buffer_Send_nBoundTriangleTotal = 0; Buffer_Send_nBoundQuadrilateralTotal = 0; for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { Buffer_Send_nVertexDomain[iMarker] = 0; Buffer_Send_nBoundLine[iMarker] = 0; Buffer_Send_nBoundTriangle[iMarker] = 0; - Buffer_Send_nBoundRectangle[iMarker] = 0; + Buffer_Send_nBoundQuadrilateral[iMarker] = 0; Buffer_Send_Marker_All_SendRecv[iMarker] = Marker_All_SendRecv_Copy[iMarker]; SPRINTF(&Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE], "%s", Marker_All_TagBound_Copy[iMarker].c_str()); @@ -1660,7 +1665,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { switch(geometry->bound[iMarker][iVertex]->GetVTK_Type()) { case LINE: Buffer_Send_nBoundLine[Buffer_Send_nMarkerDomain]++; Buffer_Send_nBoundLineTotal++; break; case TRIANGLE: Buffer_Send_nBoundTriangle[Buffer_Send_nMarkerDomain]++; Buffer_Send_nBoundTriangleTotal++; break; - case RECTANGLE: Buffer_Send_nBoundRectangle[Buffer_Send_nMarkerDomain]++; Buffer_Send_nBoundRectangleTotal++; break; + case QUADRILATERAL: Buffer_Send_nBoundQuadrilateral[Buffer_Send_nMarkerDomain]++; Buffer_Send_nBoundQuadrilateralTotal++; break; } Buffer_Send_nVertexDomain[Buffer_Send_nMarkerDomain] ++; @@ -1742,7 +1747,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Send_Color = new unsigned long [Buffer_Send_nPointTotal]; Buffer_Send_GlobalPointIndex = new unsigned long [Buffer_Send_nPointTotal]; Buffer_Send_Triangle = new unsigned long [Buffer_Send_nElemTriangle*3]; - Buffer_Send_Rectangle = new unsigned long [Buffer_Send_nElemRectangle*4]; + Buffer_Send_Quadrilateral = new unsigned long [Buffer_Send_nElemQuadrilateral*4]; Buffer_Send_Tetrahedron = new unsigned long [Buffer_Send_nElemTetrahedron*4]; Buffer_Send_Hexahedron = new unsigned long [Buffer_Send_nElemHexahedron*8]; Buffer_Send_Prism = new unsigned long [Buffer_Send_nElemPrism*6]; @@ -1750,7 +1755,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Send_BoundLine = new unsigned long [Buffer_Send_nBoundLineTotal*2]; Buffer_Send_BoundTriangle = new unsigned long [Buffer_Send_nBoundTriangleTotal*3]; - Buffer_Send_BoundRectangle = new unsigned long [Buffer_Send_nBoundRectangleTotal*4]; + Buffer_Send_BoundQuadrilateral = new unsigned long [Buffer_Send_nBoundQuadrilateralTotal*4]; Buffer_Send_Local2Global_Marker = new unsigned long [Buffer_Send_nMarkerDomain]; Buffer_Send_SendDomain_Periodic = new unsigned long [Buffer_Send_nTotalSendDomain_Periodic]; @@ -1759,7 +1764,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Send_ReceivedDomain_Periodic = new unsigned long [Buffer_Send_nTotalReceivedDomain_Periodic]; Buffer_Send_ReceivedDomain_PeriodicTrans = new unsigned long [Buffer_Send_nTotalReceivedDomain_Periodic]; Buffer_Send_ReceivedDomain_PeriodicDonor = new unsigned long [Buffer_Send_nTotalReceivedDomain_Periodic]; - + if (iDomain != MASTER_NODE) { #ifdef HAVE_MPI @@ -1768,11 +1773,11 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { SU2_MPI::Isend(&Buffer_Send_nZone, 1, MPI_UNSIGNED_SHORT, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); SU2_MPI::Isend(&Buffer_Send_nPointTotal, 1, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); SU2_MPI::Isend(&Buffer_Send_nPointDomainTotal, 1, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); - SU2_MPI::Isend(&Buffer_Send_nPointGhost, 1, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); - SU2_MPI::Isend(&Buffer_Send_nPointPeriodic, 1, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); +// SU2_MPI::Isend(&Buffer_Send_nPointGhost, 1, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); +// SU2_MPI::Isend(&Buffer_Send_nPointPeriodic, 1, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); SU2_MPI::Isend(&Buffer_Send_nElemTotal, 1, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); SU2_MPI::Isend(&Buffer_Send_nElemTriangle, 1, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); - SU2_MPI::Isend(&Buffer_Send_nElemRectangle, 1, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); + SU2_MPI::Isend(&Buffer_Send_nElemQuadrilateral, 1, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); SU2_MPI::Isend(&Buffer_Send_nElemTetrahedron, 1, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); SU2_MPI::Isend(&Buffer_Send_nElemHexahedron, 1, MPI_UNSIGNED_LONG, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); SU2_MPI::Isend(&Buffer_Send_nElemPrism, 1, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); @@ -1780,15 +1785,15 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { SU2_MPI::Isend(&Buffer_Send_nBoundLineTotal, 1, MPI_UNSIGNED_LONG, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); SU2_MPI::Isend(&Buffer_Send_nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 14, MPI_COMM_WORLD, &send_req[14]); - SU2_MPI::Isend(&Buffer_Send_nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); + SU2_MPI::Isend(&Buffer_Send_nBoundQuadrilateralTotal, 1, MPI_UNSIGNED_LONG, iDomain, 15, MPI_COMM_WORLD, &send_req[15]); SU2_MPI::Isend(&Buffer_Send_nMarkerDomain, 1, MPI_UNSIGNED_SHORT, iDomain, 16, MPI_COMM_WORLD, &send_req[16]); SU2_MPI::Isend(Buffer_Send_nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 17, MPI_COMM_WORLD, &send_req[17]); SU2_MPI::Isend(Buffer_Send_nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 18, MPI_COMM_WORLD, &send_req[18]); SU2_MPI::Isend(Buffer_Send_nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 19, MPI_COMM_WORLD, &send_req[19]); - SU2_MPI::Isend(Buffer_Send_nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 20, MPI_COMM_WORLD, &send_req[20]); + SU2_MPI::Isend(Buffer_Send_nBoundQuadrilateral, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 20, MPI_COMM_WORLD, &send_req[20]); SU2_MPI::Isend(Buffer_Send_Marker_All_SendRecv, nMarker_Max, MPI_SHORT, iDomain, 21, MPI_COMM_WORLD, &send_req[21]); SU2_MPI::Isend(Buffer_Send_Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, iDomain, 22, MPI_COMM_WORLD, &send_req[22]); - + SU2_MPI::Isend(&Buffer_Send_nPeriodic, 1, MPI_UNSIGNED_SHORT, iDomain, 23, MPI_COMM_WORLD, &send_req[23]); SU2_MPI::Isend(Buffer_Send_Center, nPeriodic*3, MPI_DOUBLE, iDomain, 24, MPI_COMM_WORLD, &send_req[24]); SU2_MPI::Isend(Buffer_Send_Rotation, nPeriodic*3, MPI_DOUBLE, iDomain, 25, MPI_COMM_WORLD, &send_req[25]); @@ -1801,7 +1806,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Wait for this set of non-blocking comm. to complete ---*/ - SU2_MPI::Waitall(31, send_req, send_stat); + SU2_MPI::Waitall(29, send_req, send_stat); #endif @@ -1817,34 +1822,34 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { nPointTotal = Buffer_Send_nPointTotal; nPointDomainTotal = Buffer_Send_nPointDomainTotal; - nPointGhost = Buffer_Send_nPointGhost; - nPointPeriodic = Buffer_Send_nPointPeriodic; - +// nPointGhost = Buffer_Send_nPointGhost; +// nPointPeriodic = Buffer_Send_nPointPeriodic; + nElemTotal = Buffer_Send_nElemTotal; nElemTriangle = Buffer_Send_nElemTriangle; - nElemRectangle = Buffer_Send_nElemRectangle; + nElemQuadrilateral = Buffer_Send_nElemQuadrilateral; nElemTetrahedron = Buffer_Send_nElemTetrahedron; nElemHexahedron = Buffer_Send_nElemHexahedron; nElemPrism = Buffer_Send_nElemPrism; nElemPyramid = Buffer_Send_nElemPyramid; nelem_triangle = nElemTriangle; - nelem_quad = nElemRectangle; + nelem_quad = nElemQuadrilateral; nelem_tetra = nElemTetrahedron; nelem_hexa = nElemHexahedron; nelem_prism = nElemPrism; nelem_pyramid = nElemPyramid; - + nBoundLineTotal = Buffer_Send_nBoundLineTotal; nBoundTriangleTotal = Buffer_Send_nBoundTriangleTotal; - nBoundRectangleTotal = Buffer_Send_nBoundRectangleTotal; + nBoundQuadrilateralTotal = Buffer_Send_nBoundQuadrilateralTotal; nMarkerDomain = Buffer_Send_nMarkerDomain; for (iMarker = 0; iMarker < nMarker_Max; iMarker++) { nVertexDomain[iMarker] = Buffer_Send_nVertexDomain[iMarker]; nBoundLine[iMarker] = Buffer_Send_nBoundLine[iMarker]; nBoundTriangle[iMarker] = Buffer_Send_nBoundTriangle[iMarker]; - nBoundRectangle[iMarker] = Buffer_Send_nBoundRectangle[iMarker]; + nBoundQuadrilateral[iMarker] = Buffer_Send_nBoundQuadrilateral[iMarker]; Marker_All_SendRecv[iMarker] = Buffer_Send_Marker_All_SendRecv[iMarker]; for (iter = 0; iter < MAX_STRING_SIZE; iter++) Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter] = Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter]; @@ -1885,11 +1890,11 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { SU2_MPI::Irecv(&nZone, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 1, MPI_COMM_WORLD, &recv_req[1]); SU2_MPI::Irecv(&nPointTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &recv_req[2]); SU2_MPI::Irecv(&nPointDomainTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &recv_req[3]); - SU2_MPI::Irecv(&nPointGhost, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); - SU2_MPI::Irecv(&nPointPeriodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); +// SU2_MPI::Irecv(&nPointGhost, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); +// SU2_MPI::Irecv(&nPointPeriodic, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); SU2_MPI::Irecv(&nElemTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &recv_req[6]); SU2_MPI::Irecv(&nElemTriangle, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &recv_req[7]); - SU2_MPI::Irecv(&nElemRectangle, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); + SU2_MPI::Irecv(&nElemQuadrilateral, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); SU2_MPI::Irecv(&nElemTetrahedron, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &recv_req[9]); SU2_MPI::Irecv(&nElemHexahedron, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 10, MPI_COMM_WORLD, &recv_req[10]); SU2_MPI::Irecv(&nElemPrism, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); @@ -1897,30 +1902,30 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { SU2_MPI::Irecv(&nBoundLineTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 13, MPI_COMM_WORLD, &recv_req[13]); SU2_MPI::Irecv(&nBoundTriangleTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 14, MPI_COMM_WORLD, &recv_req[14]); - SU2_MPI::Irecv(&nBoundRectangleTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &recv_req[15]); + SU2_MPI::Irecv(&nBoundQuadrilateralTotal, 1, MPI_UNSIGNED_LONG, MASTER_NODE, 15, MPI_COMM_WORLD, &recv_req[15]); SU2_MPI::Irecv(&nMarkerDomain, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 16, MPI_COMM_WORLD, &recv_req[16]); SU2_MPI::Irecv(nVertexDomain, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 17, MPI_COMM_WORLD, &recv_req[17]); SU2_MPI::Irecv(nBoundLine, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 18, MPI_COMM_WORLD, &recv_req[18]); SU2_MPI::Irecv(nBoundTriangle, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 19, MPI_COMM_WORLD, &recv_req[19]); - SU2_MPI::Irecv(nBoundRectangle, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 20, MPI_COMM_WORLD, &recv_req[20]); + SU2_MPI::Irecv(nBoundQuadrilateral, nMarker_Max, MPI_UNSIGNED_LONG, MASTER_NODE, 20, MPI_COMM_WORLD, &recv_req[20]); SU2_MPI::Irecv(Marker_All_SendRecv, nMarker_Max, MPI_SHORT, MASTER_NODE, 21, MPI_COMM_WORLD, &recv_req[21]); SU2_MPI::Irecv(Marker_All_TagBound, nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, MASTER_NODE, 22, MPI_COMM_WORLD, &recv_req[22]); SU2_MPI::Irecv(&nPeriodic, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, 23, MPI_COMM_WORLD, &recv_req[23]); /*--- Wait for the this set of non-blocking recv's to complete ---*/ - SU2_MPI::Waitall(24, recv_req, recv_stat); + SU2_MPI::Waitall(22, recv_req, recv_stat); #endif /*--- Update the number of elements (local) ---*/ - + nelem_triangle = nElemTriangle; - nelem_quad = nElemRectangle; - nelem_tetra = nElemTetrahedron; - nelem_hexa = nElemHexahedron; - nelem_prism = nElemPrism; - nelem_pyramid = nElemPyramid; + nelem_quad = nElemQuadrilateral; + nelem_tetra = nElemTetrahedron; + nelem_hexa = nElemHexahedron; + nelem_prism = nElemPrism; + nelem_pyramid = nElemPyramid; /*--- Marker_All_TagBound and Marker_All_SendRecv, set the same values in the config files of all the files ---*/ @@ -1982,14 +1987,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Receive_Color = new unsigned long [nPointTotal]; Buffer_Receive_GlobalPointIndex = new unsigned long [nPointTotal]; Buffer_Receive_Triangle = new unsigned long [nElemTriangle*3]; - Buffer_Receive_Rectangle = new unsigned long [nElemRectangle*4]; + Buffer_Receive_Quadrilateral = new unsigned long [nElemQuadrilateral*4]; Buffer_Receive_Tetrahedron = new unsigned long [nElemTetrahedron*4]; Buffer_Receive_Hexahedron = new unsigned long [nElemHexahedron*8]; Buffer_Receive_Prism = new unsigned long [nElemPrism*6]; Buffer_Receive_Pyramid = new unsigned long [nElemPyramid*5]; Buffer_Receive_BoundLine = new unsigned long [nBoundLineTotal*2]; Buffer_Receive_BoundTriangle = new unsigned long [nBoundTriangleTotal*3]; - Buffer_Receive_BoundRectangle = new unsigned long [nBoundRectangleTotal*4]; + Buffer_Receive_BoundQuadrilateral = new unsigned long [nBoundQuadrilateralTotal*4]; Buffer_Receive_Local2Global_Marker = new unsigned long [nMarkerDomain]; Buffer_Receive_SendDomain_Periodic = new unsigned long [nTotalSendDomain_Periodic]; @@ -2007,8 +2012,16 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Set the value of the interior geometry ---*/ - iElemTotal = 0; iPointDomain = 0; iPointPeriodic = Buffer_Send_nPointDomainTotal; iPointGhost = Buffer_Send_nPointDomainTotal + Buffer_Send_nPointPeriodic; - iElemTriangle = 0; iElemRectangle = 0; iElemTetrahedron = 0; iElemHexahedron = 0; iElemPrism = 0; iElemPyramid = 0; + iElemTotal = 0; + iPointDomain = 0; + iPointPeriodic = Buffer_Send_nPointDomainTotal; + iPointGhost = Buffer_Send_nPointDomainTotal + Buffer_Send_nPointPeriodic; + iElemTriangle = 0; + iElemQuadrilateral = 0; + iElemTetrahedron = 0; + iElemHexahedron = 0; + iElemPrism = 0; + iElemPyramid = 0; for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) Global2Local_Point[iPoint] = -1; @@ -2049,10 +2062,10 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) Buffer_Send_Triangle[3*iElemTriangle+iNode] = vnodes_local[iNode]; iElemTriangle++; break; - case RECTANGLE: + case QUADRILATERAL: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Rectangle[4*iElemRectangle+iNode] = vnodes_local[iNode]; - iElemRectangle++; break; + Buffer_Send_Quadrilateral[4*iElemQuadrilateral+iNode] = vnodes_local[iNode]; + iElemQuadrilateral++; break; case TETRAHEDRON: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) Buffer_Send_Tetrahedron[4*iElemTetrahedron+iNode] = vnodes_local[iNode]; @@ -2078,7 +2091,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { /*--- Set the value of the boundary geometry ---*/ iMarkerDomain = 0; - iBoundLineTotal = 0; iBoundTriangleTotal = 0; iBoundRectangleTotal = 0; + iBoundLineTotal = 0; iBoundTriangleTotal = 0; iBoundQuadrilateralTotal = 0; for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != SEND_RECEIVE) && (MarkerIn[iMarker])) { @@ -2102,12 +2115,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Send_BoundTriangle[3*iBoundTriangleTotal+2] = vnodes_local[2]; iBoundTriangleTotal++; break; - case RECTANGLE: - Buffer_Send_BoundRectangle[4*iBoundRectangleTotal+0] = vnodes_local[0]; - Buffer_Send_BoundRectangle[4*iBoundRectangleTotal+1] = vnodes_local[1]; - Buffer_Send_BoundRectangle[4*iBoundRectangleTotal+2] = vnodes_local[2]; - Buffer_Send_BoundRectangle[4*iBoundRectangleTotal+3] = vnodes_local[3]; - iBoundRectangleTotal++; + case QUADRILATERAL: + Buffer_Send_BoundQuadrilateral[4*iBoundQuadrilateralTotal+0] = vnodes_local[0]; + Buffer_Send_BoundQuadrilateral[4*iBoundQuadrilateralTotal+1] = vnodes_local[1]; + Buffer_Send_BoundQuadrilateral[4*iBoundQuadrilateralTotal+2] = vnodes_local[2]; + Buffer_Send_BoundQuadrilateral[4*iBoundQuadrilateralTotal+3] = vnodes_local[3]; + iBoundQuadrilateralTotal++; break; } } @@ -2195,14 +2208,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { SU2_MPI::Isend(Buffer_Send_GlobalPointIndex, Buffer_Send_nPointTotal, MPI_UNSIGNED_LONG, iDomain, 1, MPI_COMM_WORLD, &send_req[1]); SU2_MPI::Isend(Buffer_Send_Color, Buffer_Send_nPointTotal, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); SU2_MPI::Isend(Buffer_Send_Triangle, Buffer_Send_nElemTriangle*3, MPI_UNSIGNED_LONG, iDomain, 3, MPI_COMM_WORLD, &send_req[3]); - SU2_MPI::Isend(Buffer_Send_Rectangle, Buffer_Send_nElemRectangle*4, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); + SU2_MPI::Isend(Buffer_Send_Quadrilateral, Buffer_Send_nElemQuadrilateral*4, MPI_UNSIGNED_LONG, iDomain, 4, MPI_COMM_WORLD, &send_req[4]); SU2_MPI::Isend(Buffer_Send_Tetrahedron, Buffer_Send_nElemTetrahedron*4, MPI_UNSIGNED_LONG, iDomain, 5, MPI_COMM_WORLD, &send_req[5]); SU2_MPI::Isend(Buffer_Send_Hexahedron, Buffer_Send_nElemHexahedron*8, MPI_UNSIGNED_LONG, iDomain, 6, MPI_COMM_WORLD, &send_req[6]); SU2_MPI::Isend(Buffer_Send_Prism, Buffer_Send_nElemPrism*6, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); SU2_MPI::Isend(Buffer_Send_Pyramid, Buffer_Send_nElemPyramid*5, MPI_UNSIGNED_LONG, iDomain, 8, MPI_COMM_WORLD, &send_req[8]); SU2_MPI::Isend(Buffer_Send_BoundLine, Buffer_Send_nBoundLineTotal*2, MPI_UNSIGNED_LONG, iDomain, 9, MPI_COMM_WORLD, &send_req[9]); SU2_MPI::Isend(Buffer_Send_BoundTriangle, Buffer_Send_nBoundTriangleTotal*3, MPI_UNSIGNED_LONG, iDomain, 10, MPI_COMM_WORLD, &send_req[10]); - SU2_MPI::Isend(Buffer_Send_BoundRectangle, Buffer_Send_nBoundRectangleTotal*4, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); + SU2_MPI::Isend(Buffer_Send_BoundQuadrilateral, Buffer_Send_nBoundQuadrilateralTotal*4, MPI_UNSIGNED_LONG, iDomain, 11, MPI_COMM_WORLD, &send_req[11]); SU2_MPI::Isend(Buffer_Send_Local2Global_Marker, Buffer_Send_nMarkerDomain, MPI_UNSIGNED_LONG, iDomain, 12, MPI_COMM_WORLD, &send_req[12]); SU2_MPI::Isend(Buffer_Send_SendDomain_Periodic, Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, 13, MPI_COMM_WORLD, &send_req[13]); @@ -2231,8 +2244,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { for (iter = 0; iter < Buffer_Send_nElemTriangle*3; iter++) Buffer_Receive_Triangle[iter] = Buffer_Send_Triangle[iter]; - for (iter = 0; iter < Buffer_Send_nElemRectangle*4; iter++) - Buffer_Receive_Rectangle[iter] = Buffer_Send_Rectangle[iter]; + for (iter = 0; iter < Buffer_Send_nElemQuadrilateral*4; iter++) + Buffer_Receive_Quadrilateral[iter] = Buffer_Send_Quadrilateral[iter]; for (iter = 0; iter < Buffer_Send_nElemTetrahedron*4; iter++) Buffer_Receive_Tetrahedron[iter] = Buffer_Send_Tetrahedron[iter]; @@ -2252,8 +2265,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { for (iter = 0; iter < Buffer_Send_nBoundTriangleTotal*3; iter++) Buffer_Receive_BoundTriangle[iter] = Buffer_Send_BoundTriangle[iter]; - for (iter = 0; iter < Buffer_Send_nBoundRectangleTotal*4; iter++) - Buffer_Receive_BoundRectangle[iter] = Buffer_Send_BoundRectangle[iter]; + for (iter = 0; iter < Buffer_Send_nBoundQuadrilateralTotal*4; iter++) + Buffer_Receive_BoundQuadrilateral[iter] = Buffer_Send_BoundQuadrilateral[iter]; for (iter = 0; iter < Buffer_Send_nMarkerDomain; iter++) Buffer_Receive_Local2Global_Marker[iter] = Buffer_Send_Local2Global_Marker[iter]; @@ -2276,14 +2289,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { delete[] Buffer_Send_GlobalPointIndex; delete[] Buffer_Send_Color; delete[] Buffer_Send_Triangle; - delete[] Buffer_Send_Rectangle; + delete[] Buffer_Send_Quadrilateral; delete[] Buffer_Send_Tetrahedron; delete[] Buffer_Send_Hexahedron; delete[] Buffer_Send_Prism; delete[] Buffer_Send_Pyramid; delete[] Buffer_Send_BoundLine; delete[] Buffer_Send_BoundTriangle; - delete[] Buffer_Send_BoundRectangle; + delete[] Buffer_Send_BoundQuadrilateral; delete[] Buffer_Send_Local2Global_Marker; delete[] Buffer_Send_SendDomain_Periodic; @@ -2307,14 +2320,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { SU2_MPI::Irecv(Buffer_Receive_GlobalPointIndex, nPointTotal, MPI_UNSIGNED_LONG, MASTER_NODE, 1, MPI_COMM_WORLD, &recv_req[1]); SU2_MPI::Irecv(Buffer_Receive_Color, nPointTotal, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &recv_req[2]); SU2_MPI::Irecv(Buffer_Receive_Triangle, nElemTriangle*3, MPI_UNSIGNED_LONG, MASTER_NODE, 3, MPI_COMM_WORLD, &recv_req[3]); - SU2_MPI::Irecv(Buffer_Receive_Rectangle, nElemRectangle*4, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); + SU2_MPI::Irecv(Buffer_Receive_Quadrilateral, nElemQuadrilateral*4, MPI_UNSIGNED_LONG, MASTER_NODE, 4, MPI_COMM_WORLD, &recv_req[4]); SU2_MPI::Irecv(Buffer_Receive_Tetrahedron, nElemTetrahedron*4, MPI_UNSIGNED_LONG, MASTER_NODE, 5, MPI_COMM_WORLD, &recv_req[5]); SU2_MPI::Irecv(Buffer_Receive_Hexahedron, nElemHexahedron*8, MPI_UNSIGNED_LONG, MASTER_NODE, 6, MPI_COMM_WORLD, &recv_req[6]); SU2_MPI::Irecv(Buffer_Receive_Prism, nElemPrism*6, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &recv_req[7]); SU2_MPI::Irecv(Buffer_Receive_Pyramid, nElemPyramid*5, MPI_UNSIGNED_LONG, MASTER_NODE, 8, MPI_COMM_WORLD, &recv_req[8]); SU2_MPI::Irecv(Buffer_Receive_BoundLine, nBoundLineTotal*2, MPI_UNSIGNED_LONG, MASTER_NODE, 9, MPI_COMM_WORLD, &recv_req[9]); SU2_MPI::Irecv(Buffer_Receive_BoundTriangle, nBoundTriangleTotal*3, MPI_UNSIGNED_LONG, MASTER_NODE, 10, MPI_COMM_WORLD, &recv_req[10]); - SU2_MPI::Irecv(Buffer_Receive_BoundRectangle, nBoundRectangleTotal*4, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); + SU2_MPI::Irecv(Buffer_Receive_BoundQuadrilateral, nBoundQuadrilateralTotal*4, MPI_UNSIGNED_LONG, MASTER_NODE, 11, MPI_COMM_WORLD, &recv_req[11]); SU2_MPI::Irecv(Buffer_Receive_Local2Global_Marker, nMarkerDomain, MPI_UNSIGNED_LONG, MASTER_NODE, 12, MPI_COMM_WORLD, &recv_req[12]); SU2_MPI::Irecv(Buffer_Receive_SendDomain_Periodic, nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, MASTER_NODE, 13, MPI_COMM_WORLD, &recv_req[13]); @@ -2359,8 +2372,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { elem[iElem] = new CTriangle(Buffer_Receive_Triangle[iElemTriangle*3+0], Buffer_Receive_Triangle[iElemTriangle*3+1], Buffer_Receive_Triangle[iElemTriangle*3+2], 2); iElem++; } - for (iElemRectangle = 0; iElemRectangle < nElemRectangle; iElemRectangle++) { - elem[iElem] = new CRectangle(Buffer_Receive_Rectangle[iElemRectangle*4+0], Buffer_Receive_Rectangle[iElemRectangle*4+1], Buffer_Receive_Rectangle[iElemRectangle*4+2], Buffer_Receive_Rectangle[iElemRectangle*4+3], 2); + for (iElemQuadrilateral = 0; iElemQuadrilateral < nElemQuadrilateral; iElemQuadrilateral++) { + elem[iElem] = new CQuadrilateral(Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+0], Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+1], Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+2], Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+3], 2); iElem++; } for (iElemTetrahedron = 0; iElemTetrahedron < nElemTetrahedron; iElemTetrahedron++) { @@ -2381,7 +2394,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { } delete[] Buffer_Receive_Triangle; - delete[] Buffer_Receive_Rectangle; + delete[] Buffer_Receive_Quadrilateral; delete[] Buffer_Receive_Tetrahedron; delete[] Buffer_Receive_Hexahedron; delete[] Buffer_Receive_Prism; @@ -2402,7 +2415,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { bound = new CPrimalGrid**[nMarker+(overhead*nDomain)]; for (iMarker = 0; iMarker < nMarker; iMarker++) bound[iMarker] = new CPrimalGrid* [nElem_Bound[iMarker]]; - iBoundLineTotal = 0; iBoundTriangleTotal = 0; iBoundRectangleTotal = 0; + iBoundLineTotal = 0; iBoundTriangleTotal = 0; iBoundQuadrilateralTotal = 0; for (iMarker = 0; iMarker < nMarker; iMarker++) { @@ -2420,12 +2433,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { Buffer_Receive_BoundTriangle[iBoundTriangleTotal*3+2], 3); iVertexDomain++; iBoundTriangleTotal++; } - for (iBoundRectangle = 0; iBoundRectangle < nBoundRectangle[iMarker]; iBoundRectangle++) { - bound[iMarker][iVertexDomain] = new CRectangle(Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+0], - Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+1], - Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+2], - Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+3], 3); - iVertexDomain++; iBoundRectangleTotal++; + for (iBoundQuadrilateral = 0; iBoundQuadrilateral < nBoundQuadrilateral[iMarker]; iBoundQuadrilateral++) { + bound[iMarker][iVertexDomain] = new CQuadrilateral(Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+0], + Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+1], + Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+2], + Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+3], 3); + iVertexDomain++; iBoundQuadrilateralTotal++; } Local_to_Global_Marker[iMarker] = Buffer_Receive_Local2Global_Marker[iMarker]; @@ -2494,7 +2507,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { delete[] Buffer_Receive_BoundLine; delete[] Buffer_Receive_BoundTriangle; - delete[] Buffer_Receive_BoundRectangle; + delete[] Buffer_Receive_BoundQuadrilateral; delete[] Buffer_Receive_Local2Global_Marker; delete[] Buffer_Receive_SendDomain_Periodic; @@ -2565,15 +2578,15 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config) { delete [] nVertexDomain; delete [] nBoundLine; delete [] nBoundTriangle; - delete [] nBoundRectangle; + delete [] nBoundQuadrilateral; delete [] Buffer_Send_nVertexDomain; delete [] Buffer_Send_nBoundLine; delete [] Buffer_Send_nBoundTriangle; - delete [] Buffer_Send_nBoundRectangle; + delete [] Buffer_Send_nBoundQuadrilateral; delete [] Buffer_Send_Marker_All_SendRecv; delete [] Marker_All_TagBound; delete [] Buffer_Send_Marker_All_TagBound; - + } CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int option) { @@ -2584,19 +2597,18 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Global_to_Local_Marker = NULL; unsigned long iter, iPoint, jPoint, iElem, iVertex; - - unsigned long nElemTotal = 0, nPointTotal = 0, nPointDomainTotal = 0, nPointGhost = 0, nPointPeriodic = 0, nElemTriangle = 0, nElemRectangle = 0, nElemTetrahedron = 0, nElemHexahedron = 0, nElemPrism = 0, nElemPyramid = 0; - unsigned long iElemTotal, iPointTotal, iPointGhost, iPointDomain, iPointPeriodic, iElemTriangle, iElemRectangle, iElemTetrahedron, iElemHexahedron, iElemPrism, iElemPyramid, iPointCurrent; + //unsigned long nElemTotal = 0, nPointTotal = 0, nPointDomainTotal = 0, nPointGhost = 0, nPointPeriodic = 0, nElemTriangle = 0, nElemQuadrilateral = 0, nElemTetrahedron = 0, nElemHexahedron = 0, nElemPrism = 0, nElemPyramid = 0; + unsigned long iElemTotal, iPointTotal, iPointGhost, iPointDomain, iPointPeriodic, iElemTriangle, iElemQuadrilateral, iElemTetrahedron, iElemHexahedron, iElemPrism, iElemPyramid, iPointCurrent; unsigned long nBoundLineTotal = 0, iBoundLineTotal; unsigned long nBoundTriangleTotal = 0, iBoundTriangleTotal; - unsigned long nBoundRectangleTotal = 0, iBoundRectangleTotal; + unsigned long nBoundQuadrilateralTotal = 0, iBoundQuadrilateralTotal; unsigned long ReceptorColor = 0, DonorColor = 0, Transformation; unsigned long nTotalSendDomain_Periodic = 0, iTotalSendDomain_Periodic, nTotalReceivedDomain_Periodic = 0, iTotalReceivedDomain_Periodic, *nSendDomain_Periodic = NULL, *nReceivedDomain_Periodic = NULL; unsigned long Buffer_Send_nPointTotal = 0, Buffer_Send_nPointDomainTotal = 0, Buffer_Send_nPointGhost = 0, Buffer_Send_nPointPeriodic = 0; - unsigned long Buffer_Send_nElemTotal, Buffer_Send_nElemTriangle = 0, Buffer_Send_nElemRectangle = 0, Buffer_Send_nElemTetrahedron = 0, Buffer_Send_nElemHexahedron = 0, Buffer_Send_nElemPrism = 0, Buffer_Send_nElemPyramid = 0; + unsigned long Buffer_Send_nElemTotal, Buffer_Send_nElemTriangle = 0, Buffer_Send_nElemQuadrilateral = 0, Buffer_Send_nElemTetrahedron = 0, Buffer_Send_nElemHexahedron = 0, Buffer_Send_nElemPrism = 0, Buffer_Send_nElemPyramid = 0; unsigned long Buffer_Send_nTotalSendDomain_Periodic = 0, Buffer_Send_nTotalReceivedDomain_Periodic = 0, *Buffer_Send_nSendDomain_Periodic = NULL, *Buffer_Send_nReceivedDomain_Periodic = NULL; - unsigned long Buffer_Send_nBoundLineTotal = 0, Buffer_Send_nBoundTriangleTotal = 0, Buffer_Send_nBoundRectangleTotal = 0; - unsigned long iVertexDomain, iBoundLine, iBoundTriangle, iBoundRectangle; + unsigned long Buffer_Send_nBoundLineTotal = 0, Buffer_Send_nBoundTriangleTotal = 0, Buffer_Send_nBoundQuadrilateralTotal = 0; + unsigned long iVertexDomain, iBoundLine, iBoundTriangle, iBoundQuadrilateral; /*--- Need to su2double-check these shorts in case we go to nprocs > ~32,000 ---*/ unsigned long iNode, iDim, iMarker, jMarker, nMarkerDomain = 0, iMarkerDomain; @@ -2618,12 +2630,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *nVertexDomain = new unsigned long[nMarker_Max]; unsigned long *nBoundLine = new unsigned long[nMarker_Max]; unsigned long *nBoundTriangle = new unsigned long[nMarker_Max]; - unsigned long *nBoundRectangle = new unsigned long[nMarker_Max]; + unsigned long *nBoundQuadrilateral = new unsigned long[nMarker_Max]; unsigned long *Buffer_Send_nVertexDomain = new unsigned long[nMarker_Max]; unsigned long *Buffer_Send_nBoundLine = new unsigned long[nMarker_Max]; unsigned long *Buffer_Send_nBoundTriangle = new unsigned long[nMarker_Max]; - unsigned long *Buffer_Send_nBoundRectangle = new unsigned long[nMarker_Max]; + unsigned long *Buffer_Send_nBoundQuadrilateral = new unsigned long[nMarker_Max]; short *Buffer_Send_Marker_All_SendRecv = new short[nMarker_Max]; @@ -2643,7 +2655,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Status status, status2; unsigned long source; int recv_count=0; - + int offset = 17; MPI_Status *send_stat = new MPI_Status[offset+size]; MPI_Status *recv_stat = new MPI_Status[offset+size]; @@ -2662,7 +2674,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *Buffer_Send_Color = NULL; unsigned long *Buffer_Send_GlobalPointIndex = NULL; unsigned long *Buffer_Send_Triangle = NULL; - unsigned long *Buffer_Send_Rectangle = NULL; + unsigned long *Buffer_Send_Quadrilateral = NULL; unsigned long *Buffer_Send_Tetrahedron = NULL; unsigned long *Buffer_Send_Hexahedron = NULL; unsigned long *Buffer_Send_Prism = NULL; @@ -2673,7 +2685,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *Buffer_Send_BoundLine = NULL, *Buffer_Receive_BoundLine = NULL; unsigned long *Buffer_Send_BoundTriangle = NULL, *Buffer_Receive_BoundTriangle = NULL; - unsigned long *Buffer_Send_BoundRectangle = NULL, *Buffer_Receive_BoundRectangle = NULL; + unsigned long *Buffer_Send_BoundQuadrilateral = NULL, *Buffer_Receive_BoundQuadrilateral = NULL; unsigned long *Buffer_Send_Local2Global_Marker = NULL, *Buffer_Receive_Local2Global_Marker = NULL; /*--- Define buffer vector periodic boundary conditions ---*/ @@ -2702,26 +2714,26 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned short *nDim_r = new unsigned short[size]; unsigned short *nZone_s = new unsigned short[size]; unsigned short *nZone_r = new unsigned short[size]; - + unsigned long *nPointTotal_s = new unsigned long[size]; unsigned long *nPointDomainTotal_s = new unsigned long[size]; unsigned long *nPointGhost_s = new unsigned long[size]; unsigned long *nPointPeriodic_s = new unsigned long[size]; unsigned long *nElemTotal_s = new unsigned long[size]; unsigned long *nElemTriangle_s = new unsigned long[size]; - unsigned long *nElemRectangle_s = new unsigned long[size]; + unsigned long *nElemQuadrilateral_s = new unsigned long[size]; unsigned long *nElemTetrahedron_s = new unsigned long[size]; unsigned long *nElemHexahedron_s = new unsigned long[size]; unsigned long *nElemPrism_s = new unsigned long[size]; unsigned long *nElemPyramid_s = new unsigned long[size]; - + unsigned long *nPointTotal_r = new unsigned long[size]; unsigned long *nPointDomainTotal_r = new unsigned long[size]; unsigned long *nPointGhost_r = new unsigned long[size]; unsigned long *nPointPeriodic_r = new unsigned long[size]; unsigned long *nElemTotal_r = new unsigned long[size]; unsigned long *nElemTriangle_r = new unsigned long[size]; - unsigned long *nElemRectangle_r = new unsigned long[size]; + unsigned long *nElemQuadrilateral_r = new unsigned long[size]; unsigned long *nElemTetrahedron_r = new unsigned long[size]; unsigned long *nElemHexahedron_r = new unsigned long[size]; unsigned long *nElemPrism_r = new unsigned long[size]; @@ -2733,7 +2745,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long nPointPeriodic_r_tot=0; unsigned long nElemTotal_r_tot=0; unsigned long nElemTriangle_r_tot=0; - unsigned long nElemRectangle_r_tot=0; + unsigned long nElemQuadrilateral_r_tot=0; unsigned long nElemTetrahedron_r_tot=0; unsigned long nElemHexahedron_r_tot=0; unsigned long nElemPrism_r_tot=0; @@ -2743,7 +2755,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long Buffer_Size_Color = 0; unsigned long Buffer_Size_GlobalPointIndex = 0; unsigned long Buffer_Size_Triangle = 0; - unsigned long Buffer_Size_Rectangle = 0; + unsigned long Buffer_Size_Quadrilateral = 0; unsigned long Buffer_Size_Tetrahedron = 0; unsigned long Buffer_Size_Hexahedron = 0; unsigned long Buffer_Size_Prism = 0; @@ -2758,21 +2770,21 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long PointPeriodic_Counter = 0; unsigned long PointGhost_Counter = 0; unsigned long ElemTriangle_Counter = 0; - unsigned long ElemRectangle_Counter = 0; + unsigned long ElemQuadrilateral_Counter = 0; unsigned long ElemTetrahedron_Counter = 0; unsigned long ElemHexahedron_Counter = 0; unsigned long ElemPrism_Counter = 0; unsigned long ElemPyramid_Counter = 0; unsigned long *Local_to_global_Triangle; - unsigned long *Local_to_global_Rectangle; + unsigned long *Local_to_global_Quadrilateral; unsigned long *Local_to_global_Tetrahedron; unsigned long *Local_to_global_Hexahedron; unsigned long *Local_to_global_Prism; unsigned long *Local_to_global_Pyramid; bool *Triangle_presence; - bool *Rectangle_presence; + bool *Quadrilateral_presence; bool *Tetrahedron_presence; bool *Hexahedron_presence; bool *Prism_presence; @@ -2781,7 +2793,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Element_presence = new bool[geometry->GetnElem()]; Triangle_presence = new bool[geometry->GetnElem()]; - Rectangle_presence = new bool[geometry->GetnElem()]; + Quadrilateral_presence = new bool[geometry->GetnElem()]; Tetrahedron_presence = new bool[geometry->GetnElem()]; Hexahedron_presence = new bool[geometry->GetnElem()]; Prism_presence = new bool[geometry->GetnElem()]; @@ -2790,7 +2802,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o for (unsigned long i=0; i < geometry->GetnElem(); i++) { Element_presence[i] = false; Triangle_presence[i] = false; - Rectangle_presence[i] = false; + Quadrilateral_presence[i] = false; Tetrahedron_presence[i] = false; Hexahedron_presence[i] = false; Prism_presence[i] = false; @@ -2802,7 +2814,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *Buffer_Receive_Color_loc = NULL; unsigned long *Buffer_Receive_GlobalPointIndex_loc = NULL; unsigned long *Buffer_Receive_Triangle_loc = NULL; - unsigned long *Buffer_Receive_Rectangle_loc = NULL; + unsigned long *Buffer_Receive_Quadrilateral_loc = NULL; unsigned long *Buffer_Receive_Tetrahedron_loc = NULL; unsigned long *Buffer_Receive_Hexahedron_loc = NULL; unsigned long *Buffer_Receive_Prism_loc = NULL; @@ -2810,7 +2822,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *Buffer_Receive_GlobElem_loc = NULL; unsigned long *Buffer_Receive_Triangle_presence_loc = NULL; - unsigned long *Buffer_Receive_Rectangle_presence_loc = NULL; + unsigned long *Buffer_Receive_Quadrilateral_presence_loc = NULL; unsigned long *Buffer_Receive_Tetrahedron_presence_loc = NULL; unsigned long *Buffer_Receive_Hexahedron_presence_loc = NULL; unsigned long *Buffer_Receive_Prism_presence_loc = NULL; @@ -2824,7 +2836,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *Buffer_Receive_Color = NULL; unsigned long *Buffer_Receive_GlobalPointIndex = NULL; unsigned long *Buffer_Receive_Triangle = NULL; - unsigned long *Buffer_Receive_Rectangle = NULL; + unsigned long *Buffer_Receive_Quadrilateral = NULL; unsigned long *Buffer_Receive_Tetrahedron = NULL; unsigned long *Buffer_Receive_Hexahedron = NULL; unsigned long *Buffer_Receive_Prism = NULL; @@ -2832,7 +2844,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o unsigned long *Buffer_Receive_GlobElem = NULL; unsigned long **Buffer_Receive_Triangle_presence = new unsigned long*[size]; - unsigned long **Buffer_Receive_Rectangle_presence = new unsigned long*[size]; + unsigned long **Buffer_Receive_Quadrilateral_presence = new unsigned long*[size]; unsigned long **Buffer_Receive_Tetrahedron_presence = new unsigned long*[size]; unsigned long **Buffer_Receive_Hexahedron_presence = new unsigned long*[size]; unsigned long **Buffer_Receive_Prism_presence = new unsigned long*[size]; @@ -2849,28 +2861,28 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nReceivedDomain_Periodic = new unsigned long [nDomain]; /*--- Auxiliar vector based on the original geometry ---*/ - + ElemIn = new bool[geometry->no_of_local_elements]; PointIn = new bool[geometry->GetnPoint()]; - + Buffer_Send_nDim = geometry->GetnDim(); Buffer_Send_nZone = geometry->GetnZone(); // DOUBLE CHECK THESE, SINCE WE DO THIS AGAIN AT BOTTOM WITH THE MASTER -// MarkerIn = new bool [geometry->GetnMarker()]; -// VertexIn = new bool* [geometry->GetnMarker()]; -// for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) -// VertexIn[iMarker] = new bool [geometry->GetnElem_Bound(iMarker)]; -// -// -// Buffer_Send_nPeriodic = config->GetnPeriodicIndex(); -// Buffer_Send_Center = new su2double[Buffer_Send_nPeriodic*3]; -// Buffer_Send_Rotation = new su2double[Buffer_Send_nPeriodic*3]; -// Buffer_Send_Translate = new su2double[Buffer_Send_nPeriodic*3]; -// -// Buffer_Send_nSendDomain_Periodic = new unsigned long [nDomain]; -// Buffer_Send_nReceivedDomain_Periodic = new unsigned long [nDomain]; + // MarkerIn = new bool [geometry->GetnMarker()]; + // VertexIn = new bool* [geometry->GetnMarker()]; + // for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) + // VertexIn[iMarker] = new bool [geometry->GetnElem_Bound(iMarker)]; + // + // + // Buffer_Send_nPeriodic = config->GetnPeriodicIndex(); + // Buffer_Send_Center = new su2double[Buffer_Send_nPeriodic*3]; + // Buffer_Send_Rotation = new su2double[Buffer_Send_nPeriodic*3]; + // Buffer_Send_Translate = new su2double[Buffer_Send_nPeriodic*3]; + // + // Buffer_Send_nSendDomain_Periodic = new unsigned long [nDomain]; + // Buffer_Send_nReceivedDomain_Periodic = new unsigned long [nDomain]; /*--- Divide the elements in color list to speed up the grid partitioning ---*/ @@ -2886,11 +2898,11 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Global_to_local_Point_recv[i]=-1; } -// unsigned long *Global_to_Local_Point_loc; -// Global_to_Local_Point_loc = new unsigned long[geometry->GetnPoint()]; -// for (iPoint=0; iPointGetnPoint(); iPoint++) { -// Global_to_Local_Point_loc[iPoint]=-1; -// } + // unsigned long *Global_to_Local_Point_loc; + // Global_to_Local_Point_loc = new unsigned long[geometry->GetnPoint()]; + // for (iPoint=0; iPointGetnPoint(); iPoint++) { + // Global_to_Local_Point_loc[iPoint]=-1; + // } local_colour_values = new unsigned long[geometry->GetnPoint()]; local_colour_temp = new unsigned long[geometry->ending_node[rank]-geometry->starting_node[rank]]; @@ -2899,37 +2911,37 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o local_colour_temp[i]=geometry->node[i]->GetColor(); local_colour_values[geometry->starting_node[rank]+i]=local_colour_temp[i]; } - + /*--- Communicate the grid coloring to all partitions. This information will be repeatedly used throughout the organization of the partitions and sorting out their ghost points/elements. ---*/ #ifdef HAVE_MPI - + int comm_counter=0; - for (iDomain=0; iDomain < (unsigned long)size; iDomain++) { + for (iDomain=0; iDomain < (unsigned long)size; iDomain++) { if (iDomain != (unsigned long)rank) { SU2_MPI::Isend(local_colour_temp, geometry->ending_node[rank]-geometry->starting_node[rank], - MPI_UNSIGNED_LONG, iDomain, iDomain, MPI_COMM_WORLD, &send_req[comm_counter]); + MPI_UNSIGNED_LONG, iDomain, iDomain, MPI_COMM_WORLD, &send_req[comm_counter]); comm_counter++; } } - + for (iDomain=0; iDomain < (unsigned long)size-1; iDomain++) { MPI_Probe(MPI_ANY_SOURCE, rank, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&local_colour_values[geometry->starting_node[source]], recv_count, - MPI_UNSIGNED_LONG, source, rank, MPI_COMM_WORLD, &status2); + MPI_UNSIGNED_LONG, source, rank, MPI_COMM_WORLD, &status2); } - /*--- Wait for the sends to complete (will be true since we're using + /*--- Wait for the sends to complete (will be true since we're using blocking recv's above. ---*/ - + SU2_MPI::Waitall(size-1, send_req, send_stat); - + #endif - + /*--- Free temporary buffer for communicating colors. ---*/ delete [] local_colour_temp; @@ -2953,7 +2965,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_nPointDomainTotal = 0; Buffer_Send_nPointPeriodic = 0; Buffer_Send_nElemTriangle = 0; - Buffer_Send_nElemRectangle = 0; + Buffer_Send_nElemQuadrilateral = 0; Buffer_Send_nElemTetrahedron = 0; Buffer_Send_nElemHexahedron = 0; Buffer_Send_nElemPrism = 0; @@ -2997,16 +3009,16 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o PointIn[iPoint] = true; if ((iPoint >= geometry->starting_node[rank]) && - (iPoint < geometry->ending_node[rank])) { + (iPoint < geometry->ending_node[rank])) { Buffer_Send_nPointTotal++; - + /*--- Increment our counters ---*/ if ( local_colour_values[iPoint] == iDomain ) { if ( iPoint > geometry->GetnPointDomain() - 1) - Buffer_Send_nPointPeriodic++; + Buffer_Send_nPointPeriodic++; else - Buffer_Send_nPointDomainTotal++; + Buffer_Send_nPointDomainTotal++; } else Buffer_Send_nPointGhost++; @@ -3019,7 +3031,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o switch(geometry->elem[iElem]->GetVTK_Type()) { case TRIANGLE: Buffer_Send_nElemTriangle++; break; - case RECTANGLE: Buffer_Send_nElemRectangle++; break; + case QUADRILATERAL: Buffer_Send_nElemQuadrilateral++; break; case TETRAHEDRON: Buffer_Send_nElemTetrahedron++; break; case HEXAHEDRON: Buffer_Send_nElemHexahedron++; break; case PRISM: Buffer_Send_nElemPrism++; break; @@ -3043,7 +3055,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nPointPeriodic_s[iDomain] = Buffer_Send_nPointPeriodic; nElemTotal_s[iDomain] = Buffer_Send_nElemTotal; nElemTriangle_s[iDomain] = Buffer_Send_nElemTriangle; - nElemRectangle_s[iDomain] = Buffer_Send_nElemRectangle; + nElemQuadrilateral_s[iDomain] = Buffer_Send_nElemQuadrilateral; nElemTetrahedron_s[iDomain] = Buffer_Send_nElemTetrahedron; nElemHexahedron_s[iDomain] = Buffer_Send_nElemHexahedron; nElemPrism_s[iDomain] = Buffer_Send_nElemPrism; @@ -3055,7 +3067,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Size_Color += nPointTotal_s[iDomain]; Buffer_Size_GlobalPointIndex += nPointTotal_s[iDomain]; Buffer_Size_Triangle += nElemTriangle_s[iDomain]; - Buffer_Size_Rectangle += nElemRectangle_s[iDomain]; + Buffer_Size_Quadrilateral += nElemQuadrilateral_s[iDomain]; Buffer_Size_Tetrahedron += nElemTetrahedron_s[iDomain]; Buffer_Size_Hexahedron += nElemHexahedron_s[iDomain]; Buffer_Size_Prism += nElemPrism_s[iDomain]; @@ -3070,19 +3082,19 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_Color = new unsigned long[Buffer_Size_Color]; Buffer_Send_GlobalPointIndex = new unsigned long[Buffer_Size_GlobalPointIndex]; Buffer_Send_Triangle = new unsigned long[Buffer_Size_Triangle*N_POINTS_TRIANGLE]; - Buffer_Send_Rectangle = new unsigned long[Buffer_Size_Rectangle*N_POINTS_QUADRILATERAL]; + Buffer_Send_Quadrilateral = new unsigned long[Buffer_Size_Quadrilateral*N_POINTS_QUADRILATERAL]; Buffer_Send_Tetrahedron = new unsigned long[Buffer_Size_Tetrahedron*N_POINTS_TETRAHEDRON]; Buffer_Send_Hexahedron = new unsigned long[Buffer_Size_Hexahedron*N_POINTS_HEXAHEDRON]; Buffer_Send_Prism = new unsigned long[Buffer_Size_Prism*N_POINTS_PRISM]; Buffer_Send_Pyramid = new unsigned long[Buffer_Size_Pyramid*N_POINTS_PYRAMID]; Buffer_Send_GlobElem = new unsigned long[Buffer_Size_GlobElem]; - Local_to_global_Triangle = new unsigned long[Buffer_Size_Triangle]; - Local_to_global_Rectangle = new unsigned long[Buffer_Size_Rectangle]; - Local_to_global_Tetrahedron = new unsigned long[Buffer_Size_Tetrahedron]; - Local_to_global_Hexahedron = new unsigned long[Buffer_Size_Hexahedron]; - Local_to_global_Prism = new unsigned long[Buffer_Size_Prism]; - Local_to_global_Pyramid = new unsigned long[Buffer_Size_Pyramid]; + Local_to_global_Triangle = new unsigned long[Buffer_Size_Triangle]; + Local_to_global_Quadrilateral = new unsigned long[Buffer_Size_Quadrilateral]; + Local_to_global_Tetrahedron = new unsigned long[Buffer_Size_Tetrahedron]; + Local_to_global_Hexahedron = new unsigned long[Buffer_Size_Hexahedron]; + Local_to_global_Prism = new unsigned long[Buffer_Size_Prism]; + Local_to_global_Pyramid = new unsigned long[Buffer_Size_Pyramid]; /*--- Initialize the counters for the larger send buffers (by domain) ---*/ @@ -3093,7 +3105,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o PointPeriodic_Counter = 0; PointGhost_Counter = 0; ElemTriangle_Counter = 0; - ElemRectangle_Counter = 0; + ElemQuadrilateral_Counter = 0; ElemTetrahedron_Counter = 0; ElemHexahedron_Counter = 0; ElemPrism_Counter = 0; @@ -3113,43 +3125,43 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Communicate the counts to iDomain with non-blocking sends ---*/ SU2_MPI::Isend(&nDim_s[iDomain], 1, MPI_UNSIGNED_SHORT, iDomain, - iDomain*13+0, MPI_COMM_WORLD, &send_req[0]); + iDomain*13+0, MPI_COMM_WORLD, &send_req[0]); SU2_MPI::Isend(&nZone_s[iDomain], 1, MPI_UNSIGNED_SHORT, iDomain, - iDomain*13+1, MPI_COMM_WORLD, &send_req[1]); + iDomain*13+1, MPI_COMM_WORLD, &send_req[1]); SU2_MPI::Isend(&nPointTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+2, MPI_COMM_WORLD, &send_req[2]); + iDomain*13+2, MPI_COMM_WORLD, &send_req[2]); SU2_MPI::Isend(&nPointDomainTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+3, MPI_COMM_WORLD, &send_req[3]); + iDomain*13+3, MPI_COMM_WORLD, &send_req[3]); SU2_MPI::Isend(&nPointGhost_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+4, MPI_COMM_WORLD, &send_req[4]); + iDomain*13+4, MPI_COMM_WORLD, &send_req[4]); SU2_MPI::Isend(&nPointPeriodic_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+5, MPI_COMM_WORLD, &send_req[5]); + iDomain*13+5, MPI_COMM_WORLD, &send_req[5]); SU2_MPI::Isend(&nElemTotal_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+6, MPI_COMM_WORLD, &send_req[6]); + iDomain*13+6, MPI_COMM_WORLD, &send_req[6]); SU2_MPI::Isend(&nElemTriangle_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+7, MPI_COMM_WORLD, &send_req[7]); + iDomain*13+7, MPI_COMM_WORLD, &send_req[7]); - SU2_MPI::Isend(&nElemRectangle_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&nElemQuadrilateral_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, iDomain*13+8, MPI_COMM_WORLD, &send_req[8]); SU2_MPI::Isend(&nElemTetrahedron_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+9, MPI_COMM_WORLD, &send_req[9]); + iDomain*13+9, MPI_COMM_WORLD, &send_req[9]); SU2_MPI::Isend(&nElemHexahedron_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+10, MPI_COMM_WORLD, &send_req[10]); + iDomain*13+10, MPI_COMM_WORLD, &send_req[10]); SU2_MPI::Isend(&nElemPrism_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+11, MPI_COMM_WORLD, &send_req[11]); + iDomain*13+11, MPI_COMM_WORLD, &send_req[11]); SU2_MPI::Isend(&nElemPyramid_s[iDomain], 1, MPI_UNSIGNED_LONG, iDomain, - iDomain*13+12, MPI_COMM_WORLD, &send_req[12]); + iDomain*13+12, MPI_COMM_WORLD, &send_req[12]); #endif @@ -3159,17 +3171,17 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nDim = nDim_s[iDomain]; nZone = nZone_s[iDomain]; - nPointTotal = nPointTotal_s[iDomain]; - nPointDomainTotal = nPointDomainTotal_s[iDomain]; - nPointGhost = nPointGhost_s[iDomain]; - nPointPeriodic = nPointPeriodic_s[iDomain]; - nElemTotal = nElemTotal_s[iDomain]; - nElemTriangle = nElemTriangle_s[iDomain]; - nElemRectangle = nElemRectangle_s[iDomain]; - nElemTetrahedron = nElemTetrahedron_s[iDomain]; - nElemHexahedron = nElemHexahedron_s[iDomain]; - nElemPrism = nElemPrism_s[iDomain]; - nElemPyramid = nElemPyramid_s[iDomain]; +// nPointTotal = nPointTotal_s[iDomain]; +// nPointDomainTotal = nPointDomainTotal_s[iDomain]; +// nPointGhost = nPointGhost_s[iDomain]; +// nPointPeriodic = nPointPeriodic_s[iDomain]; +// nElemTotal = nElemTotal_s[iDomain]; +// nElemTriangle = nElemTriangle_s[iDomain]; +// nElemQuadrilateral = nElemQuadrilateral_s[iDomain]; +// nElemTetrahedron = nElemTetrahedron_s[iDomain]; +// nElemHexahedron = nElemHexahedron_s[iDomain]; +// nElemPrism = nElemPrism_s[iDomain]; +// nElemPyramid = nElemPyramid_s[iDomain]; nDim_r[iDomain] = nDim_s[iDomain]; nZone_r[iDomain] = nZone_s[iDomain]; @@ -3178,7 +3190,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nPointPeriodic_r[iDomain] = nPointPeriodic_s[iDomain]; nElemTotal_r[iDomain] = nElemTotal_s[iDomain]; nElemTriangle_r[iDomain] = nElemTriangle_s[iDomain]; - nElemRectangle_r[iDomain] = nElemRectangle_s[iDomain]; + nElemQuadrilateral_r[iDomain] = nElemQuadrilateral_s[iDomain]; nElemTetrahedron_r[iDomain] = nElemTetrahedron_s[iDomain]; nElemHexahedron_r[iDomain] = nElemHexahedron_s[iDomain]; nElemPrism_r[iDomain] = nElemPrism_s[iDomain]; @@ -3190,7 +3202,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nPointPeriodic_r_tot += nPointPeriodic_r[iDomain]; nElemTotal_r_tot += nElemTotal_r[iDomain]; nElemTriangle_r_tot += nElemTriangle_r[iDomain]; - nElemRectangle_r_tot += nElemRectangle_r[iDomain]; + nElemQuadrilateral_r_tot += nElemQuadrilateral_r[iDomain]; nElemTetrahedron_r_tot += nElemTetrahedron_r[iDomain]; nElemHexahedron_r_tot += nElemHexahedron_r[iDomain]; nElemPrism_r_tot += nElemPrism_r[iDomain]; @@ -3217,55 +3229,55 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(jDomain, 13*rank+0, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nDim_r[jDomain], 1, MPI_UNSIGNED_SHORT, jDomain, - rank*13+0, MPI_COMM_WORLD, &status2); + rank*13+0, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+1, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nZone_r[jDomain], 1, MPI_UNSIGNED_SHORT, jDomain, - rank*13+1, MPI_COMM_WORLD, &status2); + rank*13+1, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+2, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nPointTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+2, MPI_COMM_WORLD, &status2); + rank*13+2, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+3, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nPointDomainTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+3, MPI_COMM_WORLD, &status2); + rank*13+3, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+4, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nPointGhost_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+4, MPI_COMM_WORLD, &status2); + rank*13+4, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+5, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nPointPeriodic_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+5, MPI_COMM_WORLD, &status2); + rank*13+5, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+6, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nElemTotal_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+6, MPI_COMM_WORLD, &status2); + rank*13+6, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+7, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nElemTriangle_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+7, MPI_COMM_WORLD, &status2); + rank*13+7, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+8, MPI_COMM_WORLD, &status2); - SU2_MPI::Recv(&nElemRectangle_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, + SU2_MPI::Recv(&nElemQuadrilateral_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, rank*13+8, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+9, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nElemTetrahedron_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+9, MPI_COMM_WORLD, &status2); + rank*13+9, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+10, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nElemHexahedron_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+10, MPI_COMM_WORLD, &status2); + rank*13+10, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+11, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nElemPrism_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+11, MPI_COMM_WORLD, &status2); + rank*13+11, MPI_COMM_WORLD, &status2); MPI_Probe(jDomain, 13*rank+12, MPI_COMM_WORLD, &status2); SU2_MPI::Recv(&nElemPyramid_r[jDomain], 1, MPI_UNSIGNED_LONG, jDomain, - rank*13+12, MPI_COMM_WORLD, &status2); + rank*13+12, MPI_COMM_WORLD, &status2); #endif @@ -3277,7 +3289,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nPointPeriodic_r_tot += nPointPeriodic_r[jDomain]; nElemTotal_r_tot += nElemTotal_r[jDomain]; nElemTriangle_r_tot += nElemTriangle_r[jDomain]; - nElemRectangle_r_tot += nElemRectangle_r[jDomain]; + nElemQuadrilateral_r_tot += nElemQuadrilateral_r[jDomain]; nElemTetrahedron_r_tot += nElemTetrahedron_r[jDomain]; nElemHexahedron_r_tot += nElemHexahedron_r[jDomain]; nElemPrism_r_tot += nElemPrism_r[jDomain]; @@ -3289,21 +3301,21 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } } - for (iDomain = 0; iDomain < nDomain; iDomain++) { - + for (iDomain = 0; iDomain < nDomain; iDomain++) { + /*--- Wait for the non-blocking sends to complete. ---*/ #ifdef HAVE_MPI if ((unsigned long)rank != iDomain) SU2_MPI::Waitall(13, send_req, send_stat); MPI_Barrier(MPI_COMM_WORLD); #endif - //cout << " ==== Rank " << rank << " finished sending counts " << endl; - + //cout << " ==== Rank " << rank << " finished sending counts " << endl; - } + } + for (iDomain = 0; iDomain < nDomain; iDomain++) { - + /*--- Above was number of elements to send and receive, and here is where we send/recv the actual elements. Here you're sending global index values, @@ -3317,7 +3329,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o iPointPeriodic = nPointDomainTotal_s[iDomain]; iPointGhost = nPointDomainTotal_s[iDomain] + nPointPeriodic_s[iDomain]; iElemTriangle = 0; - iElemRectangle = 0; + iElemQuadrilateral = 0; iElemTetrahedron = 0; iElemHexahedron = 0; iElemPrism = 0; @@ -3379,9 +3391,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o node (iPoint < nPointDomain) or a periodic node. ---*/ if (iPoint > geometry->GetnPointDomain() - 1) - iPointCurrent = iPointPeriodic; + iPointCurrent = iPointPeriodic; else - iPointCurrent = iPointDomain; + iPointCurrent = iPointDomain; } else { @@ -3410,9 +3422,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Increment our counters ---*/ if ( local_colour_values[iPoint] == iDomain ) { if ( iPoint > geometry->GetnPointDomain() - 1) - iPointPeriodic++; + iPointPeriodic++; else - iPointDomain++; + iPointDomain++; } else iPointGhost++; @@ -3431,32 +3443,32 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o switch(geometry->elem[iElem]->GetVTK_Type()) { case TRIANGLE: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Triangle[3*(ElemTriangle_Counter+iElemTriangle)+iNode] = vnodes_local[iNode]; + Buffer_Send_Triangle[3*(ElemTriangle_Counter+iElemTriangle)+iNode] = vnodes_local[iNode]; Local_to_global_Triangle[ElemTriangle_Counter+iElemTriangle] = Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; iElemTriangle++; break; - case RECTANGLE: + case QUADRILATERAL: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Rectangle[4*(ElemRectangle_Counter+iElemRectangle)+iNode] = vnodes_local[iNode]; - Local_to_global_Rectangle[ElemRectangle_Counter+iElemRectangle] =Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; - iElemRectangle++; break; + Buffer_Send_Quadrilateral[4*(ElemQuadrilateral_Counter+iElemQuadrilateral)+iNode] = vnodes_local[iNode]; + Local_to_global_Quadrilateral[ElemQuadrilateral_Counter+iElemQuadrilateral] =Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; + iElemQuadrilateral++; break; case TETRAHEDRON: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Tetrahedron[4*(ElemTetrahedron_Counter+iElemTetrahedron)+iNode] = vnodes_local[iNode]; + Buffer_Send_Tetrahedron[4*(ElemTetrahedron_Counter+iElemTetrahedron)+iNode] = vnodes_local[iNode]; Local_to_global_Tetrahedron[ElemTetrahedron_Counter+iElemTetrahedron] =Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; iElemTetrahedron++; break; case HEXAHEDRON: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Hexahedron[8*(ElemHexahedron_Counter+iElemHexahedron)+iNode] = vnodes_local[iNode]; + Buffer_Send_Hexahedron[8*(ElemHexahedron_Counter+iElemHexahedron)+iNode] = vnodes_local[iNode]; Local_to_global_Hexahedron[ElemHexahedron_Counter+iElemHexahedron] =Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; iElemHexahedron++; break; case PRISM: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Prism[6*(ElemPrism_Counter+iElemPrism)+iNode] = vnodes_local[iNode]; + Buffer_Send_Prism[6*(ElemPrism_Counter+iElemPrism)+iNode] = vnodes_local[iNode]; Local_to_global_Prism[ElemPrism_Counter+iElemPrism] =Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; iElemPrism++; break; case PYRAMID: for (iNode = 0; iNode < geometry->elem[iElem]->GetnNodes(); iNode++) - Buffer_Send_Pyramid[5*(ElemPyramid_Counter+iElemPyramid)+iNode] = vnodes_local[iNode]; + Buffer_Send_Pyramid[5*(ElemPyramid_Counter+iElemPyramid)+iNode] = vnodes_local[iNode]; Local_to_global_Pyramid[ElemPyramid_Counter+iElemPyramid] = Buffer_Send_GlobElem[ElemTotal_Counter+iElemTotal]; iElemPyramid++; break; } @@ -3477,68 +3489,68 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o date to iDomain with non-blocking sends. ---*/ SU2_MPI::Isend(&Buffer_Send_Coord[PointTotal_Counter*nDim_s[iDomain]], - nPointTotal_s[iDomain]*nDim_s[iDomain], MPI_DOUBLE, iDomain, - iDomain*16+0, MPI_COMM_WORLD, &send_req[0]); + nPointTotal_s[iDomain]*nDim_s[iDomain], MPI_DOUBLE, iDomain, + iDomain*16+0, MPI_COMM_WORLD, &send_req[0]); SU2_MPI::Isend(&Buffer_Send_GlobalPointIndex[PointTotal_Counter], - nPointTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+1, MPI_COMM_WORLD, &send_req[1]); + nPointTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+1, MPI_COMM_WORLD, &send_req[1]); SU2_MPI::Isend(&Buffer_Send_Color[PointTotal_Counter], - nPointTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+2, MPI_COMM_WORLD, &send_req[2]); + nPointTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+2, MPI_COMM_WORLD, &send_req[2]); SU2_MPI::Isend(&Buffer_Send_Triangle[ElemTriangle_Counter*3], - nElemTriangle_s[iDomain]*3, MPI_UNSIGNED_LONG, iDomain, - iDomain*16+3, MPI_COMM_WORLD, &send_req[3]); + nElemTriangle_s[iDomain]*3, MPI_UNSIGNED_LONG, iDomain, + iDomain*16+3, MPI_COMM_WORLD, &send_req[3]); - SU2_MPI::Isend(&Buffer_Send_Rectangle[ElemRectangle_Counter*4], - nElemRectangle_s[iDomain]*4, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&Buffer_Send_Quadrilateral[ElemQuadrilateral_Counter*4], + nElemQuadrilateral_s[iDomain]*4, MPI_UNSIGNED_LONG, iDomain, iDomain*16+4, MPI_COMM_WORLD, &send_req[4]); SU2_MPI::Isend(&Buffer_Send_Tetrahedron[ElemTetrahedron_Counter*4], - nElemTetrahedron_s[iDomain]*4, MPI_UNSIGNED_LONG, iDomain, - iDomain*16+5, MPI_COMM_WORLD, &send_req[5]); + nElemTetrahedron_s[iDomain]*4, MPI_UNSIGNED_LONG, iDomain, + iDomain*16+5, MPI_COMM_WORLD, &send_req[5]); SU2_MPI::Isend(&Buffer_Send_Hexahedron[ElemHexahedron_Counter*8], - nElemHexahedron_s[iDomain]*8, MPI_UNSIGNED_LONG, iDomain, - iDomain*16+6, MPI_COMM_WORLD, &send_req[6]); + nElemHexahedron_s[iDomain]*8, MPI_UNSIGNED_LONG, iDomain, + iDomain*16+6, MPI_COMM_WORLD, &send_req[6]); SU2_MPI::Isend(&Buffer_Send_Prism[ElemPrism_Counter*6], - nElemPrism_s[iDomain]*6, MPI_UNSIGNED_LONG, iDomain, - iDomain*16+7, MPI_COMM_WORLD, &send_req[7]); + nElemPrism_s[iDomain]*6, MPI_UNSIGNED_LONG, iDomain, + iDomain*16+7, MPI_COMM_WORLD, &send_req[7]); SU2_MPI::Isend(&Buffer_Send_Pyramid[ElemPyramid_Counter*5], - nElemPyramid_s[iDomain]*5, MPI_UNSIGNED_LONG, iDomain, - iDomain*16+8, MPI_COMM_WORLD, &send_req[8]); + nElemPyramid_s[iDomain]*5, MPI_UNSIGNED_LONG, iDomain, + iDomain*16+8, MPI_COMM_WORLD, &send_req[8]); SU2_MPI::Isend(&Buffer_Send_GlobElem[ElemTotal_Counter], - nElemTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+9, MPI_COMM_WORLD, &send_req[9]); + nElemTotal_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+9, MPI_COMM_WORLD, &send_req[9]); SU2_MPI::Isend(&Local_to_global_Triangle[ElemTriangle_Counter], - nElemTriangle_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+10, MPI_COMM_WORLD, &send_req[10]); + nElemTriangle_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+10, MPI_COMM_WORLD, &send_req[10]); - SU2_MPI::Isend(&Local_to_global_Rectangle[ElemRectangle_Counter], - nElemRectangle_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(&Local_to_global_Quadrilateral[ElemQuadrilateral_Counter], + nElemQuadrilateral_s[iDomain], MPI_UNSIGNED_LONG, iDomain, iDomain*16+11, MPI_COMM_WORLD, &send_req[11]); SU2_MPI::Isend(&Local_to_global_Tetrahedron[ElemTetrahedron_Counter], - nElemTetrahedron_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+12, MPI_COMM_WORLD, &send_req[12]); + nElemTetrahedron_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+12, MPI_COMM_WORLD, &send_req[12]); SU2_MPI::Isend(&Local_to_global_Hexahedron[ElemHexahedron_Counter], - nElemHexahedron_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+13, MPI_COMM_WORLD, &send_req[13]); + nElemHexahedron_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+13, MPI_COMM_WORLD, &send_req[13]); SU2_MPI::Isend(&Local_to_global_Prism[ElemPrism_Counter], - nElemPrism_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+14, MPI_COMM_WORLD, &send_req[14]); + nElemPrism_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+14, MPI_COMM_WORLD, &send_req[14]); SU2_MPI::Isend(&Local_to_global_Pyramid[ElemPyramid_Counter], - nElemPyramid_s[iDomain], MPI_UNSIGNED_LONG, iDomain, - iDomain*16+15, MPI_COMM_WORLD, &send_req[15]); + nElemPyramid_s[iDomain], MPI_UNSIGNED_LONG, iDomain, + iDomain*16+15, MPI_COMM_WORLD, &send_req[15]); #endif @@ -3551,7 +3563,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Receive_GlobalPointIndex_loc = new unsigned long[nPointTotal_s[iDomain]]; Buffer_Receive_Color_loc = new unsigned long[nPointTotal_s[iDomain]]; Buffer_Receive_Triangle_loc = new unsigned long[nElemTriangle_s[iDomain]*N_POINTS_TRIANGLE]; - Buffer_Receive_Rectangle_loc = new unsigned long[nElemRectangle_s[iDomain]*N_POINTS_QUADRILATERAL]; + Buffer_Receive_Quadrilateral_loc = new unsigned long[nElemQuadrilateral_s[iDomain]*N_POINTS_QUADRILATERAL]; Buffer_Receive_Tetrahedron_loc = new unsigned long[nElemTetrahedron_s[iDomain]*N_POINTS_TETRAHEDRON]; Buffer_Receive_Hexahedron_loc = new unsigned long[nElemHexahedron_s[iDomain]*N_POINTS_HEXAHEDRON]; Buffer_Receive_Prism_loc = new unsigned long[nElemPrism_s[iDomain]*N_POINTS_PRISM]; @@ -3559,14 +3571,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Receive_GlobElem_loc = new unsigned long[nElemTotal_s[iDomain]]; Buffer_Receive_Triangle_presence_loc = new unsigned long[nElemTriangle_s[iDomain]]; - Buffer_Receive_Rectangle_presence_loc = new unsigned long[nElemRectangle_s[iDomain]]; + Buffer_Receive_Quadrilateral_presence_loc = new unsigned long[nElemQuadrilateral_s[iDomain]]; Buffer_Receive_Tetrahedron_presence_loc = new unsigned long[nElemTetrahedron_s[iDomain]]; Buffer_Receive_Hexahedron_presence_loc = new unsigned long[nElemHexahedron_s[iDomain]]; Buffer_Receive_Prism_presence_loc = new unsigned long[nElemPrism_s[iDomain]]; Buffer_Receive_Pyramid_presence_loc = new unsigned long[nElemPyramid_s[iDomain]]; for (iter = 0; iter < nPointTotal_s[iDomain]*nDim_s[iDomain]; iter++) - Buffer_Receive_Coord_loc[iter] = Buffer_Send_Coord[PointTotal_Counter*nDim_s[iDomain]+iter]; + Buffer_Receive_Coord_loc[iter] = Buffer_Send_Coord[PointTotal_Counter*nDim_s[iDomain]+iter]; for (iter = 0; iter < nPointTotal_s[iDomain]; iter++) { Buffer_Receive_GlobalPointIndex_loc[iter] = Buffer_Send_GlobalPointIndex[PointTotal_Counter+iter]; @@ -3574,22 +3586,22 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } for (iter = 0; iter < nElemTriangle_s[iDomain]*N_POINTS_TRIANGLE; iter++) - Buffer_Receive_Triangle_loc[iter] = Buffer_Send_Triangle[ElemTriangle_Counter*N_POINTS_TRIANGLE+iter]; + Buffer_Receive_Triangle_loc[iter] = Buffer_Send_Triangle[ElemTriangle_Counter*N_POINTS_TRIANGLE+iter]; - for (iter = 0; iter < nElemRectangle_s[iDomain]*N_POINTS_QUADRILATERAL; iter++) - Buffer_Receive_Rectangle_loc[iter] = Buffer_Send_Rectangle[ElemRectangle_Counter*N_POINTS_QUADRILATERAL+iter]; + for (iter = 0; iter < nElemQuadrilateral_s[iDomain]*N_POINTS_QUADRILATERAL; iter++) + Buffer_Receive_Quadrilateral_loc[iter] = Buffer_Send_Quadrilateral[ElemQuadrilateral_Counter*N_POINTS_QUADRILATERAL+iter]; for (iter = 0; iter < nElemTetrahedron_s[iDomain]*N_POINTS_TETRAHEDRON; iter++) - Buffer_Receive_Tetrahedron_loc[iter] = Buffer_Send_Tetrahedron[ElemTetrahedron_Counter*N_POINTS_TETRAHEDRON+iter]; + Buffer_Receive_Tetrahedron_loc[iter] = Buffer_Send_Tetrahedron[ElemTetrahedron_Counter*N_POINTS_TETRAHEDRON+iter]; for (iter = 0; iter < nElemHexahedron_s[iDomain]*N_POINTS_HEXAHEDRON; iter++) - Buffer_Receive_Hexahedron_loc[iter] = Buffer_Send_Hexahedron[ElemHexahedron_Counter*N_POINTS_HEXAHEDRON+iter]; + Buffer_Receive_Hexahedron_loc[iter] = Buffer_Send_Hexahedron[ElemHexahedron_Counter*N_POINTS_HEXAHEDRON+iter]; for (iter = 0; iter < nElemPrism_s[iDomain]*N_POINTS_PRISM; iter++) - Buffer_Receive_Prism_loc[iter] = Buffer_Send_Prism[ElemPrism_Counter*N_POINTS_PRISM+iter]; + Buffer_Receive_Prism_loc[iter] = Buffer_Send_Prism[ElemPrism_Counter*N_POINTS_PRISM+iter]; for (iter = 0; iter < nElemPyramid_s[iDomain]*N_POINTS_PYRAMID; iter++) - Buffer_Receive_Pyramid_loc[iter] = Buffer_Send_Pyramid[ElemPyramid_Counter*N_POINTS_PYRAMID+iter]; + Buffer_Receive_Pyramid_loc[iter] = Buffer_Send_Pyramid[ElemPyramid_Counter*N_POINTS_PYRAMID+iter]; for (unsigned long i=0; i geometry->GetnPointDomain() - 1) { /*--- Set the starting point for the local index of the recv points. @@ -3740,7 +3752,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Increment the interior node counter ---*/ temp_node_count_periodic++; - + } @@ -3769,7 +3781,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Increment the interior node counter ---*/ temp_node_count++; - + @@ -3811,7 +3823,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete [] Buffer_Receive_GlobalPointIndex; #endif - + } else { /*--- Recv the point data from ourselves (same procedure as above) ---*/ @@ -3820,14 +3832,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o for (iPoint = 0; iPoint < nPointTotal_r[iDomain]; iPoint++) { if (Buffer_Receive_Color_loc[iPoint] == (unsigned long)rank) { - + /*--- If iDomain owns the point, it must be either an interior node (iPoint < nPointDomain) or a periodic node. ---*/ if (Buffer_Receive_GlobalPointIndex_loc[iPoint] > geometry->GetnPointDomain() - 1) { - + index = temp_node_count_periodic; - + Local_to_Global_Point[index] = Buffer_Receive_GlobalPointIndex_loc[iPoint]; if ( nDim == 2 ) node[index] = new CPoint(Buffer_Receive_Coord_loc[iPoint*nDim+0], Buffer_Receive_Coord_loc[iPoint*nDim+1], @@ -3838,10 +3850,10 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Local_to_Global_Point[index], config); node[index]->SetColor(Buffer_Receive_Color_loc[iPoint]); temp_node_count_periodic++; - - + + } else { @@ -3856,7 +3868,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Local_to_Global_Point[index], config); node[index]->SetColor(Buffer_Receive_Color_loc[iPoint]); temp_node_count++; - + } @@ -3892,7 +3904,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Global_to_local_Point_recv[Local_to_Global_Point[iPoint]] = iPoint; } - + //cout << " ==== Rank " << rank << " recv of point data finished" << endl; #ifdef HAVE_MPI MPI_Barrier(MPI_COMM_WORLD); @@ -3905,11 +3917,11 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o if ((unsigned long)rank != iDomain) { #ifdef HAVE_MPI - + /*--- Allocate memory for the element recv ---*/ Buffer_Receive_Triangle_presence[iDomain] = new unsigned long[nElemTriangle_r[iDomain]]; - Buffer_Receive_Rectangle_presence[iDomain] = new unsigned long[nElemRectangle_r[iDomain]]; + Buffer_Receive_Quadrilateral_presence[iDomain] = new unsigned long[nElemQuadrilateral_r[iDomain]]; Buffer_Receive_Tetrahedron_presence[iDomain] = new unsigned long[nElemTetrahedron_r[iDomain]]; Buffer_Receive_Hexahedron_presence[iDomain] = new unsigned long[nElemHexahedron_r[iDomain]]; Buffer_Receive_Prism_presence[iDomain] = new unsigned long[nElemPrism_r[iDomain]]; @@ -3921,13 +3933,13 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&Buffer_Receive_Triangle_presence[iDomain][0], - recv_count, MPI_UNSIGNED_LONG, source, - rank*16+10, MPI_COMM_WORLD, &status2); + recv_count, MPI_UNSIGNED_LONG, source, + rank*16+10, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+11, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - SU2_MPI::Recv(&Buffer_Receive_Rectangle_presence[iDomain][0], + SU2_MPI::Recv(&Buffer_Receive_Quadrilateral_presence[iDomain][0], recv_count, MPI_UNSIGNED_LONG, source, rank*16+11, MPI_COMM_WORLD, &status2); @@ -3935,29 +3947,29 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&Buffer_Receive_Tetrahedron_presence[iDomain][0], - recv_count, MPI_UNSIGNED_LONG, source, - rank*16+12, MPI_COMM_WORLD, &status2); + recv_count, MPI_UNSIGNED_LONG, source, + rank*16+12, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+13, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&Buffer_Receive_Hexahedron_presence[iDomain][0], - recv_count, MPI_UNSIGNED_LONG, source, - rank*16+13, MPI_COMM_WORLD, &status2); + recv_count, MPI_UNSIGNED_LONG, source, + rank*16+13, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+14, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&Buffer_Receive_Prism_presence[iDomain][0], - recv_count, MPI_UNSIGNED_LONG, source, - rank*16+14, MPI_COMM_WORLD, &status2); + recv_count, MPI_UNSIGNED_LONG, source, + rank*16+14, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+15, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&Buffer_Receive_Pyramid_presence[iDomain][0], - recv_count, MPI_UNSIGNED_LONG, source, - rank*16+15, MPI_COMM_WORLD, &status2); + recv_count, MPI_UNSIGNED_LONG, source, + rank*16+15, MPI_COMM_WORLD, &status2); /*--- Wait to complete the above sends ---*/ @@ -3972,9 +3984,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } } - for (iElemRectangle = 0; iElemRectangle < nElemRectangle_r[iDomain]; iElemRectangle++) { - if (Rectangle_presence[Buffer_Receive_Rectangle_presence[iDomain][iElemRectangle]] == false) { - Rectangle_presence[Buffer_Receive_Rectangle_presence[iDomain][iElemRectangle]] = true; + for (iElemQuadrilateral = 0; iElemQuadrilateral < nElemQuadrilateral_r[iDomain]; iElemQuadrilateral++) { + if (Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence[iDomain][iElemQuadrilateral]] == false) { + Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence[iDomain][iElemQuadrilateral]] = true; iElem++; } } @@ -4020,9 +4032,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } } - for (iElemRectangle = 0; iElemRectangle < nElemRectangle_r[iDomain]; iElemRectangle++) { - if (Rectangle_presence[Buffer_Receive_Rectangle_presence_loc[iElemRectangle]] == false) { - Rectangle_presence[Buffer_Receive_Rectangle_presence_loc[iElemRectangle]] = true; + for (iElemQuadrilateral = 0; iElemQuadrilateral < nElemQuadrilateral_r[iDomain]; iElemQuadrilateral++) { + if (Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence_loc[iElemQuadrilateral]] == false) { + Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence_loc[iElemQuadrilateral]] = true; iElem++; } } @@ -4063,8 +4075,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #endif /*--- iElem now contains the number of elements that this processor needs in - total. Now we can complete the recv of the element connectivity and only - store the elements that we need on this particular rank. Initialize space + total. Now we can complete the recv of the element connectivity and only + store the elements that we need on this particular rank. Initialize space for the elements on this rank. ---*/ nElem = iElem; iElem = 0; @@ -4081,7 +4093,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o for (unsigned long i = 0; i < geometry->GetnElem(); i++) { Element_presence[i] = false; Triangle_presence[i] = false; - Rectangle_presence[i] = false; + Quadrilateral_presence[i] = false; Tetrahedron_presence[i] = false; Hexahedron_presence[i] = false; Prism_presence[i] = false; @@ -4095,16 +4107,16 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o if ((unsigned long)rank != iDomain) { #ifdef HAVE_MPI - + /*--- Allocate memory for the element recv ---*/ - Buffer_Receive_Triangle = new unsigned long[nElemTriangle_r[iDomain]*N_POINTS_TRIANGLE]; - Buffer_Receive_Rectangle = new unsigned long[nElemRectangle_r[iDomain]*N_POINTS_QUADRILATERAL]; - Buffer_Receive_Tetrahedron = new unsigned long[nElemTetrahedron_r[iDomain]*N_POINTS_TETRAHEDRON]; - Buffer_Receive_Hexahedron = new unsigned long[nElemHexahedron_r[iDomain]*N_POINTS_HEXAHEDRON]; - Buffer_Receive_Prism = new unsigned long[nElemPrism_r[iDomain]*N_POINTS_PRISM]; - Buffer_Receive_Pyramid = new unsigned long[nElemPyramid_r[iDomain]*N_POINTS_PYRAMID]; - Buffer_Receive_GlobElem = new unsigned long[nElemTotal_r[iDomain]]; + Buffer_Receive_Triangle = new unsigned long[nElemTriangle_r[iDomain]*N_POINTS_TRIANGLE]; + Buffer_Receive_Quadrilateral = new unsigned long[nElemQuadrilateral_r[iDomain]*N_POINTS_QUADRILATERAL]; + Buffer_Receive_Tetrahedron = new unsigned long[nElemTetrahedron_r[iDomain]*N_POINTS_TETRAHEDRON]; + Buffer_Receive_Hexahedron = new unsigned long[nElemHexahedron_r[iDomain]*N_POINTS_HEXAHEDRON]; + Buffer_Receive_Prism = new unsigned long[nElemPrism_r[iDomain]*N_POINTS_PRISM]; + Buffer_Receive_Pyramid = new unsigned long[nElemPyramid_r[iDomain]*N_POINTS_PYRAMID]; + Buffer_Receive_GlobElem = new unsigned long[nElemTotal_r[iDomain]]; /*--- Recv the element data ---*/ @@ -4112,50 +4124,50 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_Triangle, recv_count, MPI_UNSIGNED_LONG, - source, rank*16+3, MPI_COMM_WORLD, &status2); + source, rank*16+3, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+4, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); - SU2_MPI::Recv(Buffer_Receive_Rectangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_Quadrilateral, recv_count, MPI_UNSIGNED_LONG, source, rank*16+4, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+5, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_Tetrahedron, recv_count, MPI_UNSIGNED_LONG, - source, rank*16+5, MPI_COMM_WORLD, &status2); + source, rank*16+5, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+6, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_Hexahedron, recv_count, MPI_UNSIGNED_LONG, - source, rank*16+6, MPI_COMM_WORLD, &status2); + source, rank*16+6, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+7, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_Prism, recv_count, MPI_UNSIGNED_LONG, - source, rank*16+7, MPI_COMM_WORLD, &status2); + source, rank*16+7, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+8, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_Pyramid, recv_count, MPI_UNSIGNED_LONG, - source, rank*16+8, MPI_COMM_WORLD, &status2); + source, rank*16+8, MPI_COMM_WORLD, &status2); MPI_Probe(iDomain, rank*16+9, MPI_COMM_WORLD, &status2); source = status2.MPI_SOURCE; MPI_Get_count(&status2, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_GlobElem, recv_count, MPI_UNSIGNED_LONG, - source, rank*16+9, MPI_COMM_WORLD, &status2); + source, rank*16+9, MPI_COMM_WORLD, &status2); /*--- Wait to complete the above sends ---*/ //if (rank!=iDomain) SU2_MPI::Waitall(7, &send_req[3], &send_stat[3]); //cout << " ==== Rank " << rank << " recv from " << iDomain << " would be waiting here... " << endl; - - /*--- Allocating the elements after the recv. Note that here we are + + /*--- Allocating the elements after the recv. Note that here we are reusing the presence arrays to make sure that we find the exact same set of elements that were counted above to get nElem. ---*/ @@ -4169,13 +4181,13 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } } - for (iElemRectangle = 0; iElemRectangle < nElemRectangle_r[iDomain]; iElemRectangle++) { - if (Rectangle_presence[Buffer_Receive_Rectangle_presence[iDomain][iElemRectangle]] == false) { - Rectangle_presence[Buffer_Receive_Rectangle_presence[iDomain][iElemRectangle]] = true; - elem[iElem] = new CRectangle(Global_to_local_Point_recv[Buffer_Receive_Rectangle[iElemRectangle*4+0]], - Global_to_local_Point_recv[Buffer_Receive_Rectangle[iElemRectangle*4+1]], - Global_to_local_Point_recv[Buffer_Receive_Rectangle[iElemRectangle*4+2]], - Global_to_local_Point_recv[Buffer_Receive_Rectangle[iElemRectangle*4+3]], 2); + for (iElemQuadrilateral = 0; iElemQuadrilateral < nElemQuadrilateral_r[iDomain]; iElemQuadrilateral++) { + if (Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence[iDomain][iElemQuadrilateral]] == false) { + Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence[iDomain][iElemQuadrilateral]] = true; + elem[iElem] = new CQuadrilateral(Global_to_local_Point_recv[Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+0]], + Global_to_local_Point_recv[Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+1]], + Global_to_local_Point_recv[Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+2]], + Global_to_local_Point_recv[Buffer_Receive_Quadrilateral[iElemQuadrilateral*4+3]], 2); iElem++; iElemRect++; } } @@ -4234,19 +4246,19 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Free memory for the element data --*/ delete[] Buffer_Receive_Triangle; - delete[] Buffer_Receive_Rectangle; + delete[] Buffer_Receive_Quadrilateral; delete[] Buffer_Receive_Tetrahedron; delete[] Buffer_Receive_Hexahedron; delete[] Buffer_Receive_Prism; delete[] Buffer_Receive_Pyramid; delete[] Buffer_Receive_Triangle_presence[iDomain]; - delete[] Buffer_Receive_Rectangle_presence[iDomain]; + delete[] Buffer_Receive_Quadrilateral_presence[iDomain]; delete[] Buffer_Receive_Tetrahedron_presence[iDomain]; delete[] Buffer_Receive_Hexahedron_presence[iDomain]; delete[] Buffer_Receive_Prism_presence[iDomain]; delete[] Buffer_Receive_Pyramid_presence[iDomain]; - + #endif } else { @@ -4263,13 +4275,13 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } } - for (iElemRectangle = 0; iElemRectangle < nElemRectangle_r[iDomain]; iElemRectangle++) { - if (Rectangle_presence[Buffer_Receive_Rectangle_presence_loc[iElemRectangle]] == false) { - Rectangle_presence[Buffer_Receive_Rectangle_presence_loc[iElemRectangle]] = true; - elem[iElem] = new CRectangle(Global_to_local_Point_recv[Buffer_Receive_Rectangle_loc[iElemRectangle*4+0]], - Global_to_local_Point_recv[Buffer_Receive_Rectangle_loc[iElemRectangle*4+1]], - Global_to_local_Point_recv[Buffer_Receive_Rectangle_loc[iElemRectangle*4+2]], - Global_to_local_Point_recv[Buffer_Receive_Rectangle_loc[iElemRectangle*4+3]], 2); + for (iElemQuadrilateral = 0; iElemQuadrilateral < nElemQuadrilateral_r[iDomain]; iElemQuadrilateral++) { + if (Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence_loc[iElemQuadrilateral]] == false) { + Quadrilateral_presence[Buffer_Receive_Quadrilateral_presence_loc[iElemQuadrilateral]] = true; + elem[iElem] = new CQuadrilateral(Global_to_local_Point_recv[Buffer_Receive_Quadrilateral_loc[iElemQuadrilateral*4+0]], + Global_to_local_Point_recv[Buffer_Receive_Quadrilateral_loc[iElemQuadrilateral*4+1]], + Global_to_local_Point_recv[Buffer_Receive_Quadrilateral_loc[iElemQuadrilateral*4+2]], + Global_to_local_Point_recv[Buffer_Receive_Quadrilateral_loc[iElemQuadrilateral*4+3]], 2); iElem++; iElemRect++; } } @@ -4328,14 +4340,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Free memory for element data ---*/ delete[] Buffer_Receive_Triangle_loc; - delete[] Buffer_Receive_Rectangle_loc; + delete[] Buffer_Receive_Quadrilateral_loc; delete[] Buffer_Receive_Tetrahedron_loc; delete[] Buffer_Receive_Hexahedron_loc; delete[] Buffer_Receive_Prism_loc; delete[] Buffer_Receive_Pyramid_loc; delete[] Buffer_Receive_Triangle_presence_loc; - delete[] Buffer_Receive_Rectangle_presence_loc; + delete[] Buffer_Receive_Quadrilateral_presence_loc; delete[] Buffer_Receive_Tetrahedron_presence_loc; delete[] Buffer_Receive_Hexahedron_presence_loc; delete[] Buffer_Receive_Prism_presence_loc; @@ -4357,14 +4369,14 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete[] Buffer_Send_GlobalPointIndex; delete[] Buffer_Send_Color; delete[] Buffer_Send_Triangle; - delete[] Buffer_Send_Rectangle; + delete[] Buffer_Send_Quadrilateral; delete[] Buffer_Send_Tetrahedron; delete[] Buffer_Send_Hexahedron; delete[] Buffer_Send_Prism; delete[] Buffer_Send_Pyramid; delete[] Buffer_Send_BoundLine; delete[] Buffer_Send_BoundTriangle; - delete[] Buffer_Send_BoundRectangle; + delete[] Buffer_Send_BoundQuadrilateral; delete[] Buffer_Send_Local2Global_Marker; delete[] Buffer_Send_SendDomain_Periodic; @@ -4375,23 +4387,23 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete[] Buffer_Send_ReceivedDomain_PeriodicDonor; delete[] Local_to_global_Triangle; - delete[] Local_to_global_Rectangle; + delete[] Local_to_global_Quadrilateral; delete[] Local_to_global_Tetrahedron; delete[] Local_to_global_Hexahedron; delete[] Local_to_global_Prism; delete[] Local_to_global_Pyramid; - + /*--- Communicate the number of each element type to all processors. These values are important for merging and writing output later. ---*/ #ifdef HAVE_MPI - unsigned long Local_nElem = nElem; - SU2_MPI::Allreduce(&Local_nElem, &Global_nElem, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + unsigned long Local_nElem = nElem; + SU2_MPI::Allreduce(&Local_nElem, &Global_nElem, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nElem = nElem; #endif - + if ((rank == MASTER_NODE) && (size > SINGLE_NODE)) cout << Global_nElem << " interior elements including halo cells. " << endl; @@ -4406,24 +4418,24 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nelem_pyramid = iElemPyra; #ifdef HAVE_MPI - unsigned long Local_nElemTri = nelem_triangle; - unsigned long Local_nElemQuad = nelem_quad; - unsigned long Local_nElemTet = nelem_tetra; - unsigned long Local_nElemHex = nelem_hexa; - unsigned long Local_nElemPrism = nelem_prism; - unsigned long Local_nElemPyramid = nelem_pyramid; - SU2_MPI::Allreduce(&Local_nElemTri, &Global_nelem_triangle, 1, - MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&Local_nElemQuad, &Global_nelem_quad, 1, - MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&Local_nElemTet, &Global_nelem_tetra, 1, - MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&Local_nElemHex, &Global_nelem_hexa, 1, - MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&Local_nElemPrism, &Global_nelem_prism, 1, - MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&Local_nElemPyramid, &Global_nelem_pyramid, 1, - MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + unsigned long Local_nElemTri = nelem_triangle; + unsigned long Local_nElemQuad = nelem_quad; + unsigned long Local_nElemTet = nelem_tetra; + unsigned long Local_nElemHex = nelem_hexa; + unsigned long Local_nElemPrism = nelem_prism; + unsigned long Local_nElemPyramid = nelem_pyramid; + SU2_MPI::Allreduce(&Local_nElemTri, &Global_nelem_triangle, 1, + MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nElemQuad, &Global_nelem_quad, 1, + MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nElemTet, &Global_nelem_tetra, 1, + MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nElemHex, &Global_nelem_hexa, 1, + MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nElemPrism, &Global_nelem_prism, 1, + MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&Local_nElemPyramid, &Global_nelem_pyramid, 1, + MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); #else Global_nelem_triangle = nelem_triangle; Global_nelem_quad = nelem_quad; @@ -4445,12 +4457,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } delete [] Triangle_presence; - delete [] Rectangle_presence; + delete [] Quadrilateral_presence; delete [] Tetrahedron_presence; delete [] Hexahedron_presence; delete [] Prism_presence; delete [] Pyramid_presence; - + /*--- Now partition the boundary elements on the markers. Note that, for now, we are still performing the boundary partitioning using the master node alone. The boundaries should make up a much smaller portion of the @@ -4497,17 +4509,17 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Interior dimensionalization. Loop over the original grid to perform the dimensionalizaton of the domain variables ---*/ - Buffer_Send_nElemTotal = 0; - Buffer_Send_nPointTotal = 0; - Buffer_Send_nPointGhost = 0; - Buffer_Send_nPointDomainTotal = 0; - Buffer_Send_nPointPeriodic = 0; - Buffer_Send_nElemTriangle = 0; - Buffer_Send_nElemRectangle = 0; - Buffer_Send_nElemTetrahedron = 0; - Buffer_Send_nElemHexahedron = 0; - Buffer_Send_nElemPrism = 0; - Buffer_Send_nElemPyramid = 0; +// Buffer_Send_nElemTotal = 0; +// Buffer_Send_nPointTotal = 0; +// Buffer_Send_nPointGhost = 0; +// Buffer_Send_nPointDomainTotal = 0; +// Buffer_Send_nPointPeriodic = 0; +// Buffer_Send_nElemTriangle = 0; +// Buffer_Send_nElemQuadrilateral = 0; +// Buffer_Send_nElemTetrahedron = 0; +// Buffer_Send_nElemHexahedron = 0; +// Buffer_Send_nElemPrism = 0; +// Buffer_Send_nElemPyramid = 0; /*--- Boundary dimensionalization. Dimensionalization with physical boundaries, compute Buffer_Send_nMarkerDomain, @@ -4516,13 +4528,13 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_nMarkerDomain = 0; Buffer_Send_nBoundLineTotal = 0; Buffer_Send_nBoundTriangleTotal = 0; - Buffer_Send_nBoundRectangleTotal = 0; + Buffer_Send_nBoundQuadrilateralTotal = 0; for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { Buffer_Send_nVertexDomain[iMarker] = 0; Buffer_Send_nBoundLine[iMarker] = 0; Buffer_Send_nBoundTriangle[iMarker] = 0; - Buffer_Send_nBoundRectangle[iMarker] = 0; + Buffer_Send_nBoundQuadrilateral[iMarker] = 0; Buffer_Send_Marker_All_SendRecv[iMarker] = Marker_All_SendRecv_Copy[iMarker]; SPRINTF(&Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE], "%s", Marker_All_TagBound_Copy[iMarker].c_str()); @@ -4552,9 +4564,9 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_nBoundTriangle[Buffer_Send_nMarkerDomain]++; Buffer_Send_nBoundTriangleTotal++; break; - case RECTANGLE: - Buffer_Send_nBoundRectangle[Buffer_Send_nMarkerDomain]++; - Buffer_Send_nBoundRectangleTotal++; + case QUADRILATERAL: + Buffer_Send_nBoundQuadrilateral[Buffer_Send_nMarkerDomain]++; + Buffer_Send_nBoundQuadrilateralTotal++; break; } @@ -4637,7 +4649,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_BoundLine = new unsigned long[Buffer_Send_nBoundLineTotal*N_POINTS_LINE]; Buffer_Send_BoundTriangle = new unsigned long[Buffer_Send_nBoundTriangleTotal*N_POINTS_TRIANGLE]; - Buffer_Send_BoundRectangle = new unsigned long[Buffer_Send_nBoundRectangleTotal*N_POINTS_QUADRILATERAL]; + Buffer_Send_BoundQuadrilateral = new unsigned long[Buffer_Send_nBoundQuadrilateralTotal*N_POINTS_QUADRILATERAL]; Buffer_Send_Local2Global_Marker = new unsigned long[Buffer_Send_nMarkerDomain]; Buffer_Send_SendDomain_Periodic = new unsigned long[Buffer_Send_nTotalSendDomain_Periodic]; @@ -4654,80 +4666,79 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #ifdef HAVE_MPI SU2_MPI::Isend(&Buffer_Send_nBoundLineTotal, 1, - MPI_UNSIGNED_LONG, iDomain, - 0, MPI_COMM_WORLD, &send_req[0]); + MPI_UNSIGNED_LONG, iDomain, + 0, MPI_COMM_WORLD, &send_req[0]); SU2_MPI::Isend(&Buffer_Send_nBoundTriangleTotal, 1, - MPI_UNSIGNED_LONG, iDomain, - 1, MPI_COMM_WORLD, &send_req[1]); + MPI_UNSIGNED_LONG, iDomain, + 1, MPI_COMM_WORLD, &send_req[1]); - SU2_MPI::Isend(&Buffer_Send_nBoundRectangleTotal, 1, + SU2_MPI::Isend(&Buffer_Send_nBoundQuadrilateralTotal, 1, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); SU2_MPI::Isend(&Buffer_Send_nMarkerDomain, 1, - MPI_UNSIGNED_SHORT, iDomain, - 3, MPI_COMM_WORLD, &send_req[3]); + MPI_UNSIGNED_SHORT, iDomain, + 3, MPI_COMM_WORLD, &send_req[3]); SU2_MPI::Isend(Buffer_Send_nVertexDomain, - nMarker_Max, MPI_UNSIGNED_LONG, iDomain, - 4, MPI_COMM_WORLD, &send_req[4]); + nMarker_Max, MPI_UNSIGNED_LONG, iDomain, + 4, MPI_COMM_WORLD, &send_req[4]); SU2_MPI::Isend(Buffer_Send_nBoundLine, - nMarker_Max, MPI_UNSIGNED_LONG, iDomain, - 5, MPI_COMM_WORLD, &send_req[5]); + nMarker_Max, MPI_UNSIGNED_LONG, iDomain, + 5, MPI_COMM_WORLD, &send_req[5]); SU2_MPI::Isend(Buffer_Send_nBoundTriangle, - nMarker_Max, MPI_UNSIGNED_LONG, iDomain, - 6, MPI_COMM_WORLD, &send_req[6]); + nMarker_Max, MPI_UNSIGNED_LONG, iDomain, + 6, MPI_COMM_WORLD, &send_req[6]); - SU2_MPI::Isend(Buffer_Send_nBoundRectangle, + SU2_MPI::Isend(Buffer_Send_nBoundQuadrilateral, nMarker_Max, MPI_UNSIGNED_LONG, iDomain, 7, MPI_COMM_WORLD, &send_req[7]); SU2_MPI::Isend(Buffer_Send_Marker_All_SendRecv, - nMarker_Max, MPI_SHORT, iDomain, - 8, MPI_COMM_WORLD, &send_req[8]); + nMarker_Max, MPI_SHORT, iDomain, + 8, MPI_COMM_WORLD, &send_req[8]); SU2_MPI::Isend(Buffer_Send_Marker_All_TagBound, - nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, iDomain, - 9, MPI_COMM_WORLD, &send_req[9]); + nMarker_Max*MAX_STRING_SIZE, MPI_CHAR, iDomain, + 9, MPI_COMM_WORLD, &send_req[9]); SU2_MPI::Isend(&Buffer_Send_nPeriodic, - 1, MPI_UNSIGNED_SHORT, iDomain, - 10, MPI_COMM_WORLD, &send_req[10]); + 1, MPI_UNSIGNED_SHORT, iDomain, + 10, MPI_COMM_WORLD, &send_req[10]); SU2_MPI::Isend(Buffer_Send_Center, - nPeriodic*3, MPI_DOUBLE, iDomain, - 11, MPI_COMM_WORLD, &send_req[11]); + nPeriodic*3, MPI_DOUBLE, iDomain, + 11, MPI_COMM_WORLD, &send_req[11]); SU2_MPI::Isend(Buffer_Send_Rotation, - nPeriodic*3, MPI_DOUBLE, iDomain, - 12, MPI_COMM_WORLD, &send_req[12]); + nPeriodic*3, MPI_DOUBLE, iDomain, + 12, MPI_COMM_WORLD, &send_req[12]); SU2_MPI::Isend(Buffer_Send_Translate, - nPeriodic*3, MPI_DOUBLE, iDomain, - 13, MPI_COMM_WORLD, &send_req[13]); + nPeriodic*3, MPI_DOUBLE, iDomain, + 13, MPI_COMM_WORLD, &send_req[13]); SU2_MPI::Isend(&Buffer_Send_nTotalSendDomain_Periodic, - 1, MPI_UNSIGNED_LONG, iDomain, - 14, MPI_COMM_WORLD, &send_req[14]); + 1, MPI_UNSIGNED_LONG, iDomain, + 14, MPI_COMM_WORLD, &send_req[14]); SU2_MPI::Isend(&Buffer_Send_nTotalReceivedDomain_Periodic, - 1, MPI_UNSIGNED_LONG, iDomain, - 15, MPI_COMM_WORLD, &send_req[15]); + 1, MPI_UNSIGNED_LONG, iDomain, + 15, MPI_COMM_WORLD, &send_req[15]); SU2_MPI::Isend(Buffer_Send_nSendDomain_Periodic, - nDomain, MPI_UNSIGNED_LONG, iDomain, - 16, MPI_COMM_WORLD, &send_req[16]); + nDomain, MPI_UNSIGNED_LONG, iDomain, + 16, MPI_COMM_WORLD, &send_req[16]); SU2_MPI::Isend(Buffer_Send_nReceivedDomain_Periodic, - nDomain, MPI_UNSIGNED_LONG, iDomain, - 17, MPI_COMM_WORLD, &send_req[17]); + nDomain, MPI_UNSIGNED_LONG, iDomain, + 17, MPI_COMM_WORLD, &send_req[17]); /*--- Wait for this set of non-blocking comm. to complete ---*/ - SU2_MPI::Waitall(18, send_req, send_stat); //cout << " Rank " << rank << " iDomain " << iDomain << " just waited for first sends" << endl; @@ -4741,19 +4752,19 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nZone = Buffer_Send_nZone; nPeriodic = Buffer_Send_nPeriodic; - nPointGhost = Buffer_Send_nPointGhost; - nPointPeriodic = Buffer_Send_nPointPeriodic; +// nPointGhost = Buffer_Send_nPointGhost; +// nPointPeriodic = Buffer_Send_nPointPeriodic; nBoundLineTotal = Buffer_Send_nBoundLineTotal; nBoundTriangleTotal = Buffer_Send_nBoundTriangleTotal; - nBoundRectangleTotal = Buffer_Send_nBoundRectangleTotal; + nBoundQuadrilateralTotal = Buffer_Send_nBoundQuadrilateralTotal; nMarkerDomain = Buffer_Send_nMarkerDomain; for (iMarker = 0; iMarker < nMarker_Max; iMarker++) { nVertexDomain[iMarker] = Buffer_Send_nVertexDomain[iMarker]; nBoundLine[iMarker] = Buffer_Send_nBoundLine[iMarker]; nBoundTriangle[iMarker] = Buffer_Send_nBoundTriangle[iMarker]; - nBoundRectangle[iMarker] = Buffer_Send_nBoundRectangle[iMarker]; + nBoundQuadrilateral[iMarker] = Buffer_Send_nBoundQuadrilateral[iMarker]; Marker_All_SendRecv[iMarker] = Buffer_Send_Marker_All_SendRecv[iMarker]; for (iter = 0; iter < MAX_STRING_SIZE; iter++) Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter] = Buffer_Send_Marker_All_TagBound[iMarker*MAX_STRING_SIZE+iter]; @@ -4793,57 +4804,57 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&nBoundLineTotal, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 0, MPI_COMM_WORLD, &status); + MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&nBoundTriangleTotal, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 1, MPI_COMM_WORLD, &status); + MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - SU2_MPI::Recv(&nBoundRectangleTotal, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(&nBoundQuadrilateralTotal, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_SHORT, &recv_count); SU2_MPI::Recv(&nMarkerDomain, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 3, MPI_COMM_WORLD, &status); + MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(nVertexDomain, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 4, MPI_COMM_WORLD, &status); + MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(nBoundLine, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 5, MPI_COMM_WORLD, &status); + MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(nBoundTriangle, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 6, MPI_COMM_WORLD, &status); + MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - SU2_MPI::Recv(nBoundRectangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(nBoundQuadrilateral, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_SHORT, &recv_count); SU2_MPI::Recv(Marker_All_SendRecv, recv_count, MPI_SHORT, - MASTER_NODE, 8, MPI_COMM_WORLD, &status); + MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 9, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_CHAR, &recv_count); SU2_MPI::Recv(Marker_All_TagBound, recv_count, MPI_CHAR, - MASTER_NODE, 9, MPI_COMM_WORLD, &status); + MASTER_NODE, 9, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 10, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_SHORT, &recv_count); SU2_MPI::Recv(&nPeriodic, recv_count, MPI_UNSIGNED_SHORT, - MASTER_NODE, 10, MPI_COMM_WORLD, &status); + MASTER_NODE, 10, MPI_COMM_WORLD, &status); #endif @@ -4869,37 +4880,37 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(MASTER_NODE, 11, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_DOUBLE, &recv_count); SU2_MPI::Recv(Buffer_Receive_Center, recv_count, MPI_DOUBLE, - MASTER_NODE, 11, MPI_COMM_WORLD, &status); + MASTER_NODE, 11, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 12, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_DOUBLE, &recv_count); SU2_MPI::Recv(Buffer_Receive_Rotation, recv_count, MPI_DOUBLE, - MASTER_NODE, 12, MPI_COMM_WORLD, &status); + MASTER_NODE, 12, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 13, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_DOUBLE, &recv_count); SU2_MPI::Recv(Buffer_Receive_Translate, recv_count, MPI_DOUBLE, - MASTER_NODE, 13, MPI_COMM_WORLD, &status); + MASTER_NODE, 13, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 14, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&nTotalSendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 14, MPI_COMM_WORLD, &status); + MASTER_NODE, 14, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 15, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(&nTotalReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 15, MPI_COMM_WORLD, &status); + MASTER_NODE, 15, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 16, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(nSendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 16, MPI_COMM_WORLD, &status); + MASTER_NODE, 16, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 17, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(nReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 17, MPI_COMM_WORLD, &status); + MASTER_NODE, 17, MPI_COMM_WORLD, &status); #endif @@ -4931,7 +4942,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Receive_BoundLine = new unsigned long[nBoundLineTotal*2]; Buffer_Receive_BoundTriangle = new unsigned long[nBoundTriangleTotal*3]; - Buffer_Receive_BoundRectangle = new unsigned long[nBoundRectangleTotal*4]; + Buffer_Receive_BoundQuadrilateral = new unsigned long[nBoundQuadrilateralTotal*4]; Buffer_Receive_Local2Global_Marker = new unsigned long[nMarkerDomain]; Buffer_Receive_SendDomain_Periodic = new unsigned long[nTotalSendDomain_Periodic]; @@ -4943,7 +4954,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } - + //cout << " &&&& Rank " << rank << " about to start bound elems " << endl; /*--- Set the value of the Send buffers ---*/ @@ -4953,7 +4964,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Set the value of the boundary geometry ---*/ iMarkerDomain = 0; - iBoundLineTotal = 0; iBoundTriangleTotal = 0; iBoundRectangleTotal = 0; + iBoundLineTotal = 0; iBoundTriangleTotal = 0; iBoundQuadrilateralTotal = 0; for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) != SEND_RECEIVE) && (MarkerIn[iMarker])) { @@ -4979,12 +4990,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Buffer_Send_BoundTriangle[N_POINTS_TRIANGLE*iBoundTriangleTotal+2] = vnodes_local[2]; iBoundTriangleTotal++; break; - case RECTANGLE: - Buffer_Send_BoundRectangle[N_POINTS_QUADRILATERAL*iBoundRectangleTotal+0] = vnodes_local[0]; - Buffer_Send_BoundRectangle[N_POINTS_QUADRILATERAL*iBoundRectangleTotal+1] = vnodes_local[1]; - Buffer_Send_BoundRectangle[N_POINTS_QUADRILATERAL*iBoundRectangleTotal+2] = vnodes_local[2]; - Buffer_Send_BoundRectangle[N_POINTS_QUADRILATERAL*iBoundRectangleTotal+3] = vnodes_local[3]; - iBoundRectangleTotal++; + case QUADRILATERAL: + Buffer_Send_BoundQuadrilateral[N_POINTS_QUADRILATERAL*iBoundQuadrilateralTotal+0] = vnodes_local[0]; + Buffer_Send_BoundQuadrilateral[N_POINTS_QUADRILATERAL*iBoundQuadrilateralTotal+1] = vnodes_local[1]; + Buffer_Send_BoundQuadrilateral[N_POINTS_QUADRILATERAL*iBoundQuadrilateralTotal+2] = vnodes_local[2]; + Buffer_Send_BoundQuadrilateral[N_POINTS_QUADRILATERAL*iBoundQuadrilateralTotal+3] = vnodes_local[3]; + iBoundQuadrilateralTotal++; break; } } @@ -5064,7 +5075,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o } } } - + /*--- Send the buffers with the geometrical information ---*/ if (iDomain != MASTER_NODE) { @@ -5072,44 +5083,44 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o #ifdef HAVE_MPI SU2_MPI::Isend(Buffer_Send_BoundLine, - Buffer_Send_nBoundLineTotal*N_POINTS_LINE, MPI_UNSIGNED_LONG, iDomain, - 0, MPI_COMM_WORLD, &send_req[0]); + Buffer_Send_nBoundLineTotal*N_POINTS_LINE, MPI_UNSIGNED_LONG, iDomain, + 0, MPI_COMM_WORLD, &send_req[0]); SU2_MPI::Isend(Buffer_Send_BoundTriangle, - Buffer_Send_nBoundTriangleTotal*N_POINTS_TRIANGLE, MPI_UNSIGNED_LONG, iDomain, - 1, MPI_COMM_WORLD, &send_req[1]); + Buffer_Send_nBoundTriangleTotal*N_POINTS_TRIANGLE, MPI_UNSIGNED_LONG, iDomain, + 1, MPI_COMM_WORLD, &send_req[1]); - SU2_MPI::Isend(Buffer_Send_BoundRectangle, - Buffer_Send_nBoundRectangleTotal*N_POINTS_QUADRILATERAL, MPI_UNSIGNED_LONG, iDomain, + SU2_MPI::Isend(Buffer_Send_BoundQuadrilateral, + Buffer_Send_nBoundQuadrilateralTotal*N_POINTS_QUADRILATERAL, MPI_UNSIGNED_LONG, iDomain, 2, MPI_COMM_WORLD, &send_req[2]); SU2_MPI::Isend(Buffer_Send_Local2Global_Marker, - Buffer_Send_nMarkerDomain, MPI_UNSIGNED_LONG, iDomain, - 3, MPI_COMM_WORLD, &send_req[3]); + Buffer_Send_nMarkerDomain, MPI_UNSIGNED_LONG, iDomain, + 3, MPI_COMM_WORLD, &send_req[3]); SU2_MPI::Isend(Buffer_Send_SendDomain_Periodic, - Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, - 4, MPI_COMM_WORLD, &send_req[4]); + Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, + 4, MPI_COMM_WORLD, &send_req[4]); SU2_MPI::Isend(Buffer_Send_SendDomain_PeriodicTrans, - Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, - 5, MPI_COMM_WORLD, &send_req[5]); + Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, + 5, MPI_COMM_WORLD, &send_req[5]); SU2_MPI::Isend(Buffer_Send_SendDomain_PeriodicReceptor, - Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, - 6, MPI_COMM_WORLD, &send_req[6]); + Buffer_Send_nTotalSendDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, + 6, MPI_COMM_WORLD, &send_req[6]); SU2_MPI::Isend(Buffer_Send_ReceivedDomain_Periodic, - Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, - 7, MPI_COMM_WORLD, &send_req[7]); + Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, + 7, MPI_COMM_WORLD, &send_req[7]); SU2_MPI::Isend(Buffer_Send_ReceivedDomain_PeriodicTrans, - Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, - 8, MPI_COMM_WORLD, &send_req[8]); + Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, + 8, MPI_COMM_WORLD, &send_req[8]); SU2_MPI::Isend(Buffer_Send_ReceivedDomain_PeriodicDonor, - Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, - 9, MPI_COMM_WORLD, &send_req[9]); + Buffer_Send_nTotalReceivedDomain_Periodic, MPI_UNSIGNED_LONG, iDomain, + 9, MPI_COMM_WORLD, &send_req[9]); /*--- Wait for this set of non-blocking comm. to complete ---*/ @@ -5127,8 +5138,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o for (iter = 0; iter < Buffer_Send_nBoundTriangleTotal*N_POINTS_TRIANGLE; iter++) Buffer_Receive_BoundTriangle[iter] = Buffer_Send_BoundTriangle[iter]; - for (iter = 0; iter < Buffer_Send_nBoundRectangleTotal*N_POINTS_QUADRILATERAL; iter++) - Buffer_Receive_BoundRectangle[iter] = Buffer_Send_BoundRectangle[iter]; + for (iter = 0; iter < Buffer_Send_nBoundQuadrilateralTotal*N_POINTS_QUADRILATERAL; iter++) + Buffer_Receive_BoundQuadrilateral[iter] = Buffer_Send_BoundQuadrilateral[iter]; for (iter = 0; iter < Buffer_Send_nMarkerDomain; iter++) Buffer_Receive_Local2Global_Marker[iter] = Buffer_Send_Local2Global_Marker[iter]; @@ -5149,7 +5160,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete[] Buffer_Send_BoundLine; delete[] Buffer_Send_BoundTriangle; - delete[] Buffer_Send_BoundRectangle; + delete[] Buffer_Send_BoundQuadrilateral; delete[] Buffer_Send_Local2Global_Marker; delete[] Buffer_Send_SendDomain_Periodic; @@ -5174,52 +5185,52 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o MPI_Probe(MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_BoundLine, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 0, MPI_COMM_WORLD, &status); + MASTER_NODE, 0, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_BoundTriangle, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 1, MPI_COMM_WORLD, &status); + MASTER_NODE, 1, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); - SU2_MPI::Recv(Buffer_Receive_BoundRectangle, recv_count, MPI_UNSIGNED_LONG, + SU2_MPI::Recv(Buffer_Receive_BoundQuadrilateral, recv_count, MPI_UNSIGNED_LONG, MASTER_NODE, 2, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_Local2Global_Marker, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 3, MPI_COMM_WORLD, &status); + MASTER_NODE, 3, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_SendDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 4, MPI_COMM_WORLD, &status); + MASTER_NODE, 4, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_SendDomain_PeriodicTrans, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 5, MPI_COMM_WORLD, &status); + MASTER_NODE, 5, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_SendDomain_PeriodicReceptor, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 6, MPI_COMM_WORLD, &status); + MASTER_NODE, 6, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_ReceivedDomain_Periodic, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 7, MPI_COMM_WORLD, &status); + MASTER_NODE, 7, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_ReceivedDomain_PeriodicTrans, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 8, MPI_COMM_WORLD, &status); + MASTER_NODE, 8, MPI_COMM_WORLD, &status); MPI_Probe(MASTER_NODE, 9, MPI_COMM_WORLD, &status); MPI_Get_count(&status, MPI_UNSIGNED_LONG, &recv_count); SU2_MPI::Recv(Buffer_Receive_ReceivedDomain_PeriodicDonor, recv_count, MPI_UNSIGNED_LONG, - MASTER_NODE, 9, MPI_COMM_WORLD, &status); + MASTER_NODE, 9, MPI_COMM_WORLD, &status); #endif @@ -5244,7 +5255,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Initialize boundary element counters ---*/ iBoundLineTotal = 0; iBoundTriangleTotal = 0; - iBoundRectangleTotal = 0; + iBoundQuadrilateralTotal = 0; /*--- Store the boundary element connectivity. Note here that we have communicated the global index values for the elements, so we need to @@ -5265,12 +5276,12 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o Global_to_local_Point_recv[Buffer_Receive_BoundTriangle[iBoundTriangleTotal*3+2]], 3); iVertexDomain++; iBoundTriangleTotal++; } - for (iBoundRectangle = 0; iBoundRectangle < nBoundRectangle[iMarker]; iBoundRectangle++) { - bound[iMarker][iVertexDomain] = new CRectangle(Global_to_local_Point_recv[Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+0]], - Global_to_local_Point_recv[Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+1]], - Global_to_local_Point_recv[Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+2]], - Global_to_local_Point_recv[Buffer_Receive_BoundRectangle[iBoundRectangleTotal*4+3]], 3); - iVertexDomain++; iBoundRectangleTotal++; + for (iBoundQuadrilateral = 0; iBoundQuadrilateral < nBoundQuadrilateral[iMarker]; iBoundQuadrilateral++) { + bound[iMarker][iVertexDomain] = new CQuadrilateral(Global_to_local_Point_recv[Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+0]], + Global_to_local_Point_recv[Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+1]], + Global_to_local_Point_recv[Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+2]], + Global_to_local_Point_recv[Buffer_Receive_BoundQuadrilateral[iBoundQuadrilateralTotal*4+3]], 3); + iVertexDomain++; iBoundQuadrilateralTotal++; } Local_to_Global_Marker[iMarker] = Buffer_Receive_Local2Global_Marker[iMarker]; @@ -5288,7 +5299,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o nelem_edge_bound = iBoundLineTotal; nelem_triangle_bound = iBoundTriangleTotal; - nelem_quad_bound = iBoundRectangleTotal; + nelem_quad_bound = iBoundQuadrilateralTotal; for (iMarker = 0; iMarker < nMarker; iMarker++) { config->SetMarker_All_TagBound(iMarker, TagBound_Copy[iMarker]); @@ -5297,8 +5308,8 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o /*--- Add the new periodic markers to the domain ---*/ - iTotalSendDomain_Periodic = 0; - iTotalReceivedDomain_Periodic = 0; +// iTotalSendDomain_Periodic = 0; +// iTotalReceivedDomain_Periodic = 0; for (jDomain = 0; jDomain < nDomain; jDomain++) { @@ -5345,7 +5356,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete[] Buffer_Receive_BoundLine; delete[] Buffer_Receive_BoundTriangle; - delete[] Buffer_Receive_BoundRectangle; + delete[] Buffer_Receive_BoundQuadrilateral; delete[] Buffer_Receive_Local2Global_Marker; delete[] Buffer_Receive_SendDomain_Periodic; @@ -5399,7 +5410,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete [] nPointPeriodic_s; delete [] nElemTotal_s; delete [] nElemTriangle_s; - delete [] nElemRectangle_s; + delete [] nElemQuadrilateral_s; delete [] nElemTetrahedron_s; delete [] nElemHexahedron_s; delete [] nElemPrism_s; @@ -5412,7 +5423,7 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete [] nPointPeriodic_r; delete [] nElemTotal_r; delete [] nElemTriangle_r; - delete [] nElemRectangle_r; + delete [] nElemQuadrilateral_r; delete [] nElemTetrahedron_r; delete [] nElemHexahedron_r; delete [] nElemPrism_r; @@ -5442,11 +5453,11 @@ CPhysicalGeometry::CPhysicalGeometry(CGeometry *geometry, CConfig *config, int o delete [] nVertexDomain; delete [] nBoundLine; delete [] nBoundTriangle; - delete [] nBoundRectangle; + delete [] nBoundQuadrilateral; delete [] Buffer_Send_nVertexDomain; delete [] Buffer_Send_nBoundLine; delete [] Buffer_Send_nBoundTriangle; - delete [] Buffer_Send_nBoundRectangle; + delete [] Buffer_Send_nBoundQuadrilateral; delete [] Buffer_Send_Marker_All_SendRecv; #ifdef HAVE_MPI @@ -5482,8 +5493,8 @@ void CPhysicalGeometry::SetSendReceive(CConfig *config) { vector > SendTransfLocal; /*!< \brief Vector to store the type of transformation for this send point. */ vector > ReceivedTransfLocal; /*!< \brief Vector to store the type of transformation for this received point. */ - vector > SendDomainLocal; /*!< \brief SendDomain[from domain][to domain] and return the point index of the node that must me sended. */ - vector > ReceivedDomainLocal; /*!< \brief SendDomain[from domain][to domain] and return the point index of the node that must me sended. */ + vector > SendDomainLocal; /*!< \brief SendDomain[from domain][to domain] and return the point index of the node that must me sended. */ + vector > ReceivedDomainLocal; /*!< \brief SendDomain[from domain][to domain] and return the point index of the node that must me sended. */ int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -5496,7 +5507,7 @@ void CPhysicalGeometry::SetSendReceive(CConfig *config) { if (rank == MASTER_NODE && size > SINGLE_NODE) cout << "Establishing MPI communication patterns." << endl; - + nDomain = size; SendTransfLocal.resize(nDomain); @@ -5629,7 +5640,7 @@ void CPhysicalGeometry::SetSendReceive(CConfig *config) { iMarkerReceive++; } } - + /*--- Free memory ---*/ delete [] nVertexDomain; } @@ -5750,8 +5761,8 @@ void CPhysicalGeometry::SetBoundaries(CConfig *config) { bound_Copy[iMarker][iElem_Bound] = new CTriangle(bound[iMarker][iElem_Bound]->GetNode(0), bound[iMarker][iElem_Bound]->GetNode(1), bound[iMarker][iElem_Bound]->GetNode(2), 3); - if (bound[iMarker][iElem_Bound]->GetVTK_Type() == RECTANGLE) - bound_Copy[iMarker][iElem_Bound] = new CRectangle(bound[iMarker][iElem_Bound]->GetNode(0), + if (bound[iMarker][iElem_Bound]->GetVTK_Type() == QUADRILATERAL) + bound_Copy[iMarker][iElem_Bound] = new CQuadrilateral(bound[iMarker][iElem_Bound]->GetNode(0), bound[iMarker][iElem_Bound]->GetNode(1), bound[iMarker][iElem_Bound]->GetNode(2), bound[iMarker][iElem_Bound]->GetNode(3), 3); @@ -5843,7 +5854,7 @@ void CPhysicalGeometry::SetBoundaries(CConfig *config) { nMarker = nMarker_Physical + nMarker_SendRecv; config->SetnMarker_All(nMarker); - + for (iMarker = 0; iMarker < nMarker; iMarker++) { nElem_Bound[iMarker] = nElem_Bound_Copy[iMarker]; } @@ -5874,7 +5885,7 @@ void CPhysicalGeometry::SetBoundaries(CConfig *config) { config->SetMarker_All_Moving(iMarker, config->GetMarker_CfgFile_Moving(Marker_Tag)); config->SetMarker_All_PerBound(iMarker, config->GetMarker_CfgFile_PerBound(Marker_Tag)); config->SetMarker_All_Out_1D(iMarker, config->GetMarker_CfgFile_Out_1D(Marker_Tag)); - + } /*--- Send-Receive boundaries definition ---*/ @@ -5886,7 +5897,7 @@ void CPhysicalGeometry::SetBoundaries(CConfig *config) { config->SetMarker_All_GeoEval(iMarker, NO); config->SetMarker_All_Designing(iMarker, NO); config->SetMarker_All_Plotting(iMarker, NO); - config->SetMarker_All_FSIinterface(iMarker, NO); + config->SetMarker_All_FSIinterface(iMarker, NO); config->SetMarker_All_DV(iMarker, NO); config->SetMarker_All_Moving(iMarker, NO); config->SetMarker_All_PerBound(iMarker, NO); @@ -5936,6 +5947,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes unsigned long vnodes_edge[2], vnodes_triangle[3], vnodes_quad[4]; unsigned long vnodes_tetra[4], vnodes_hexa[8], vnodes_prism[6], vnodes_pyramid[5], dummyLong, GlobalIndex; + unsigned long i, j; char cstr[200]; su2double Coord_2D[2], Coord_3D[3]; string::size_type position; @@ -6014,7 +6026,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } } } - + /*--- Read grid file with format SU2 ---*/ while (getline (mesh_file, text_line)) { @@ -6042,7 +6054,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes /*--- Check for ghost points. ---*/ stringstream test_line(text_line); while (test_line >> dummyLong) - iCount++; + iCount++; /*--- Now read and store the number of points and possible ghost points. ---*/ @@ -6052,7 +6064,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes stream_line >> nPointDomain; /*--- Set some important point information for parallel simulations. ---*/ - + Global_nPoint = nPoint; Global_nPointDomain = nPointDomain; if (rank == MASTER_NODE && size > SINGLE_NODE) { @@ -6092,14 +6104,14 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes balancing for any remainder points. ---*/ total_pt_accounted = 0; - for (unsigned long i=0; i < (unsigned long)size; i++) { + for (i = 0; i < (unsigned long)size; i++) { npoint_procs[i] = nPoint/size; total_pt_accounted = total_pt_accounted + npoint_procs[i]; } /*--- Get the number of remainder points after the even division ---*/ rem_points = nPoint-total_pt_accounted; - for (unsigned long i=0; i 1 && !time_spectral) { - while (getline (mesh_file,text_line)) { - /*--- Search for the current domain ---*/ - position = text_line.find ("IZONE=",0); - if (position != string::npos) { - text_line.erase (0,6); - unsigned short jDomain = atoi(text_line.c_str()); - if (jDomain == val_iZone+1) { - if (rank == MASTER_NODE) cout << "Reading zone " << val_iZone+1 << " elements:" << endl; - break; - } + while (getline (mesh_file,text_line)) { + /*--- Search for the current domain ---*/ + position = text_line.find ("IZONE=",0); + if (position != string::npos) { + text_line.erase (0,6); + unsigned short jDomain = atoi(text_line.c_str()); + if (jDomain == val_iZone+1) { + if (rank == MASTER_NODE) cout << "Reading zone " << val_iZone+1 << " elements:" << endl; + break; } } + } } - + while (getline (mesh_file, text_line)) { /*--- Read the information about inner elements ---*/ @@ -6196,22 +6208,22 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes position = text_line.find ("NELEM=",0); if (position != string::npos) { text_line.erase (0,6); nElem = atoi(text_line.c_str()); - + /*--- Store total number of elements in the original mesh ---*/ Global_nElem = nElem; if ((rank == MASTER_NODE) && (size > SINGLE_NODE)) - cout << Global_nElem << " interior elements before parallel partitioning." << endl; + cout << Global_nElem << " interior elements before parallel partitioning." << endl; /*--- Allocate space for elements ---*/ elem = new CPrimalGrid*[nElem]; for (unsigned long iElem = 0; iElem < nElem; iElem++) elem[iElem] = NULL; - + /*--- Set up the global to local element mapping. ---*/ Global_to_local_elem = new long[nElem]; - for (unsigned long i=0; i> vnodes_triangle[0]; elem_line >> vnodes_triangle[1]; elem_line >> vnodes_triangle[2]; - for (unsigned long i=0; i=starting_node[rank])&&(vnodes_triangle[i]> vnodes_quad[0]; elem_line >> vnodes_quad[1]; elem_line >> vnodes_quad[2]; elem_line >> vnodes_quad[3]; - for (unsigned long i=0; i=starting_node[rank])&&(vnodes_quad[i]> vnodes_tetra[0]; elem_line >> vnodes_tetra[1]; elem_line >> vnodes_tetra[2]; elem_line >> vnodes_tetra[3]; - for (unsigned long i=0; i=starting_node[rank])&&(vnodes_tetra[i]> vnodes_hexa[0]; elem_line >> vnodes_hexa[1]; elem_line >> vnodes_hexa[2]; elem_line >> vnodes_hexa[3]; elem_line >> vnodes_hexa[4]; elem_line >> vnodes_hexa[5]; elem_line >> vnodes_hexa[6]; elem_line >> vnodes_hexa[7]; - for (unsigned long i=0; i=starting_node[rank])&&(vnodes_hexa[i]> vnodes_prism[0]; elem_line >> vnodes_prism[1]; elem_line >> vnodes_prism[2]; elem_line >> vnodes_prism[3]; elem_line >> vnodes_prism[4]; elem_line >> vnodes_prism[5]; - for (unsigned long i=0; i=starting_node[rank])&&(vnodes_prism[i]> vnodes_pyramid[0]; elem_line >> vnodes_pyramid[1]; elem_line >> vnodes_pyramid[2]; elem_line >> vnodes_pyramid[3]; elem_line >> vnodes_pyramid[4]; - for (unsigned long i=0; i=starting_node[rank])&&(vnodes_pyramid[i] SINGLE_NODE)) + + + if ((rank == MASTER_NODE) && (size > SINGLE_NODE)) cout << "Calling the partitioning functions." << endl; - + /*--- Store the number of local elements on each rank after determining which elements must be kept in the loop above. ---*/ @@ -6396,7 +6411,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes /*--- Post process the adjacency information in order to get it into the proper format before sending the data to ParMETIS. We need to remove repeats and adjust the size of the array for each local node. ---*/ - + if ((rank == MASTER_NODE) && (size > SINGLE_NODE)) cout << "Building the graph adjacency structure." << endl; @@ -6413,7 +6428,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes for (unsigned long i = 0; i < local_node; i++) { - for (unsigned long j=0; j 1 && !time_spectral) { - while (getline (mesh_file,text_line)) { - /*--- Search for the current domain ---*/ - position = text_line.find ("IZONE=",0); - if (position != string::npos) { - text_line.erase (0,6); - unsigned short jDomain = atoi(text_line.c_str()); - if (jDomain == val_iZone+1) { - if (rank == MASTER_NODE) cout << "Reading zone " << val_iZone+1 << " markers:" << endl; - break; - } + while (getline (mesh_file,text_line)) { + /*--- Search for the current domain ---*/ + position = text_line.find ("IZONE=",0); + if (position != string::npos) { + text_line.erase (0,6); + unsigned short jDomain = atoi(text_line.c_str()); + if (jDomain == val_iZone+1) { + if (rank == MASTER_NODE) cout << "Reading zone " << val_iZone+1 << " markers:" << endl; + break; } } + } } - + if (rank == MASTER_NODE) { while (getline (mesh_file, text_line)) { @@ -6506,7 +6521,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes getline (mesh_file, text_line); text_line.erase (0,13); nElem_Bound[iMarker] = atoi(text_line.c_str()); if (rank == MASTER_NODE) - cout << nElem_Bound[iMarker] << " boundary elements in index "<< iMarker <<" (Marker = " <> vnodes_quad[0]; bound_line >> vnodes_quad[1]; bound_line >> vnodes_quad[2]; bound_line >> vnodes_quad[3]; - bound[iMarker][ielem] = new CRectangle(vnodes_quad[0], vnodes_quad[1], vnodes_quad[2], vnodes_quad[3],3); + bound[iMarker][ielem] = new CQuadrilateral(vnodes_quad[0], vnodes_quad[1], vnodes_quad[2], vnodes_quad[3],3); ielem++; nelem_quad_bound++; break; @@ -6553,6 +6568,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } /*--- Update config information storing the boundary information in the right place ---*/ + Tag_to_Marker[config->GetMarker_CfgFile_TagBound(Marker_Tag)] = Marker_Tag; config->SetMarker_All_TagBound(iMarker, Marker_Tag); config->SetMarker_All_KindBC(iMarker, config->GetMarker_CfgFile_KindBC(Marker_Tag)); @@ -6560,7 +6576,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes config->SetMarker_All_GeoEval(iMarker, config->GetMarker_CfgFile_GeoEval(Marker_Tag)); config->SetMarker_All_Designing(iMarker, config->GetMarker_CfgFile_Designing(Marker_Tag)); config->SetMarker_All_Plotting(iMarker, config->GetMarker_CfgFile_Plotting(Marker_Tag)); - config->SetMarker_All_FSIinterface(iMarker, config->GetMarker_CfgFile_FSIinterface(Marker_Tag)); + config->SetMarker_All_FSIinterface(iMarker, config->GetMarker_CfgFile_FSIinterface(Marker_Tag)); config->SetMarker_All_DV(iMarker, config->GetMarker_CfgFile_DV(Marker_Tag)); config->SetMarker_All_Moving(iMarker, config->GetMarker_CfgFile_Moving(Marker_Tag)); config->SetMarker_All_PerBound(iMarker, config->GetMarker_CfgFile_PerBound(Marker_Tag)); @@ -6570,6 +6586,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } /*--- Send-Receive boundaries definition ---*/ + else { unsigned long nelem_vertex = 0, vnodes_vertex; unsigned short transform; @@ -6581,12 +6598,12 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes getline (mesh_file, text_line); text_line.erase (0,8); config->SetMarker_All_KindBC(iMarker, SEND_RECEIVE); config->SetMarker_All_SendRecv(iMarker, atoi(text_line.c_str())); - + for (iElem_Bound = 0; iElem_Bound < nElem_Bound[iMarker]; iElem_Bound++) { getline(mesh_file, text_line); istringstream bound_line(text_line); bound_line >> VTK_Type; bound_line >> vnodes_vertex; bound_line >> transform; - + bound[iMarker][ielem] = new CVertexMPI(vnodes_vertex, nDim); bound[iMarker][ielem]->SetRotation_Type(transform); ielem++; nelem_vertex++; @@ -6598,8 +6615,9 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes if (boundary_marker_count == nMarker) break; } } - + while (getline (mesh_file, text_line)) { + /*--- Read periodic transformation info (center, rotation, translation) ---*/ position = text_line.find ("NPERIODIC=",0); @@ -6613,7 +6631,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes text_line.erase (0,10); nPeriodic = atoi(text_line.c_str()); if (rank == MASTER_NODE) { if (nPeriodic - 1 != 0) - cout << nPeriodic - 1 << " periodic transformations." << endl; + cout << nPeriodic - 1 << " periodic transformations." << endl; } config->SetnPeriodicIndex(nPeriodic); @@ -6654,6 +6672,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } /*--- If no periodic transormations were found, store default zeros ---*/ + if (!found_transform) { unsigned short nPeriodic = 1, iPeriodic = 0; config->SetnPeriodicIndex(nPeriodic); @@ -6670,6 +6689,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } /*--- Close the input file ---*/ + mesh_file.close(); @@ -6788,9 +6808,9 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Check whether the supplied file is truly a CGNS file. ---*/ if (cg_is_cgns(val_mesh_filename.c_str(), &file_type) != CG_OK) { if (rank == MASTER_NODE) { - printf( "\n\n !!! Error !!!\n" ); - printf( " %s is not a CGNS file.\n", val_mesh_filename.c_str()); - printf( " Now exiting...\n\n"); + printf( "\n\n !!! Error !!!\n" ); + printf( " %s is not a CGNS file.\n", val_mesh_filename.c_str()); + printf( " Now exiting...\n\n"); } #ifndef HAVE_MPI exit(EXIT_FAILURE); @@ -6823,9 +6843,9 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me if ( nbases > 1 ) { if (rank == MASTER_NODE) { - printf("\n\n !!! Error !!!\n" ); - printf("CGNS reader currently incapable of handling more than 1 database."); - printf("Now exiting...\n\n"); + printf("\n\n !!! Error !!!\n" ); + printf("CGNS reader currently incapable of handling more than 1 database."); + printf("Now exiting...\n\n"); } #ifndef HAVE_MPI exit(EXIT_FAILURE); @@ -6856,9 +6876,9 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me if ( nzones > 1 ) { if (rank == MASTER_NODE) { - printf("\n\n !!! Error !!!\n" ); - printf("CGNS reader currently incapable of handling more than 1 zone."); - printf("Now exiting...\n\n"); + printf("\n\n !!! Error !!!\n" ); + printf("CGNS reader currently incapable of handling more than 1 zone."); + printf("Now exiting...\n\n"); } #ifndef HAVE_MPI exit(EXIT_FAILURE); @@ -6982,16 +7002,16 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me } nPoint_Linear[size] = vertices[j-1]; - /*--- Set the value of range_max to the total number of nodes in - the unstructured mesh. Also allocate memory for the temporary array - that will hold the grid coordinates as they are extracted. Note the + /*--- Set the value of range_max to the total number of nodes in + the unstructured mesh. Also allocate memory for the temporary array + that will hold the grid coordinates as they are extracted. Note the +1 for CGNS convention. ---*/ range_min = (cgsize_t)starting_node[rank]+1; range_max = (cgsize_t)ending_node[rank]; coordArray[j-1] = new su2double[local_node]; - /*--- Allocate memory for the 2-D array that will store the x, y, + /*--- Allocate memory for the 2-D array that will store the x, y, & z (if required) coordinates for writing into the SU2 mesh. ---*/ gridCoords[j-1] = new su2double*[ncoords]; @@ -7140,8 +7160,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me partial read function in the CGNS API. ---*/ if (cg_elements_partial_read(fn, i, j, s, (cgsize_t)elemB[rank], - (cgsize_t)elemE[rank], connElemCGNS, - parentData) != CG_OK) cg_error_exit(); + (cgsize_t)elemE[rank], connElemCGNS, + parentData) != CG_OK) cg_error_exit(); /*--- Find the number of nodes required to represent this type of element. ---*/ @@ -7179,8 +7199,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me elemGlobalID[ii] = elemB[rank] + ii - 1 - globalOffset; - /*--- Need to check the element type and correctly specify the - VTK identifier for that element. SU2 recognizes elements by + /*--- Need to check the element type and correctly specify the + VTK identifier for that element. SU2 recognizes elements by their VTK number. ---*/ switch (elmt_type) { @@ -7305,8 +7325,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me if (!isInternal[j-1][s-1]) { - /*--- Master node should read this entire marker section. Free - the memory for the conn. from the CGNS file since we are going + /*--- Master node should read this entire marker section. Free + the memory for the conn. from the CGNS file since we are going to read the section again with the master. ---*/ delete [] connElemCGNS; @@ -7458,7 +7478,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me } } delete[] connElemTemp; - + } // end master } else { @@ -7469,7 +7489,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Copy these values into the larger array for storage until writing the SU2 file. ---*/ - + int counterTemp = 0, counterCGNS = 0; for ( int ii = 0; ii < nElems[j-1][s-1]; ii++ ) { @@ -7489,17 +7509,17 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me counterCGNS += nPoinPerElem[ii]; } - + /*--- Free the memory for the conn. from the CGNS file. ---*/ delete [] connElemCGNS; delete [] isMixed; - /*--- We now have the connectivity stored in linearly partitioned - chunks. We need to loop through and decide how many elements we - must send to each rank in order to have all elements that - surround a particular "owned" node on each rank (i.e., elements - will appear on multiple ranks). First, initialize a counter + /*--- We now have the connectivity stored in linearly partitioned + chunks. We need to loop through and decide how many elements we + must send to each rank in order to have all elements that + surround a particular "owned" node on each rank (i.e., elements + will appear on multiple ranks). First, initialize a counter and flag. ---*/ int *nElem_Send = new int[size+1]; nElem_Send[0] = 0; @@ -7541,7 +7561,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me } /*--- Communicate the number of cells to be sent/recv'd amongst - all processors. After this communication, each proc knows how + all processors. After this communication, each proc knows how many cells it will receive from each other processor. ---*/ #ifdef HAVE_MPI @@ -7552,8 +7572,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me #endif /*--- Prepare to send connectivities. First check how many - messages we will be sending and receiving. Here we also put - the counters into cumulative storage format to make the + messages we will be sending and receiving. Here we also put + the counters into cumulative storage format to make the communications simpler. ---*/ int nSends = 0, nRecvs = 0; @@ -7567,7 +7587,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me nElem_Send[ii+1] += nElem_Send[ii]; nElem_Recv[ii+1] += nElem_Recv[ii]; } - + /*--- Allocate memory to hold the connectivity that we are sending. Note that we are also sending the VTK element type in the first position and also the global ID. We have assumed @@ -7626,7 +7646,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me } } } - + /*--- Free memory after loading up the send buffer. ---*/ delete [] connElemTemp; @@ -7644,7 +7664,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me connRecv = new unsigned long[connSize*nElem_Recv[size]]; for (int ii = 0; ii < connSize*nElem_Recv[size]; ii++) connRecv[ii] = 0; - + #ifdef HAVE_MPI send_req = new MPI_Request[nSends]; recv_req = new MPI_Request[nRecvs]; @@ -7657,7 +7677,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me int source = ii; int tag = ii + 1; SU2_MPI::Irecv(&(connRecv[ll]), count, MPI_UNSIGNED_LONG, source, tag, - MPI_COMM_WORLD, &(recv_req[iMessage])); + MPI_COMM_WORLD, &(recv_req[iMessage])); iMessage++; } } @@ -7673,7 +7693,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me int dest = ii; int tag = rank + 1; SU2_MPI::Isend(&(connSend[ll]), count, MPI_UNSIGNED_LONG, dest, tag, - MPI_COMM_WORLD, &(send_req[iMessage])); + MPI_COMM_WORLD, &(send_req[iMessage])); iMessage++; } } @@ -7684,7 +7704,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me int mm = connSize*nElem_Recv[rank]; int ll = connSize*nElem_Send[rank]; int kk = connSize*nElem_Send[rank+1]; - + for (int nn=ll; nn SINGLE_NODE)) { cout << nPoint << " grid points before linear partitioning." << endl; } else if (rank == MASTER_NODE) { @@ -8063,7 +8083,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me if (rank == MASTER_NODE) { /*--- Read number of markers ---*/ - + nMarker = nMarkers; cout << nMarker << " surface markers." << endl; config->SetnMarker_All(nMarker); @@ -8168,8 +8188,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me case TRIANGLE: bound[iMarker][ielem] = new CTriangle(vnodes_cgns[0], vnodes_cgns[1], vnodes_cgns[2],3); ielem++; nelem_triangle_bound++; break; - case RECTANGLE: - bound[iMarker][ielem] = new CRectangle(vnodes_cgns[0], vnodes_cgns[1], vnodes_cgns[2], vnodes_cgns[3],3); + case QUADRILATERAL: + bound[iMarker][ielem] = new CQuadrilateral(vnodes_cgns[0], vnodes_cgns[1], vnodes_cgns[2], vnodes_cgns[3],3); ielem++; nelem_quad_bound++; break; } } @@ -8183,7 +8203,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me config->SetMarker_All_GeoEval(iMarker, config->GetMarker_CfgFile_GeoEval(Marker_Tag)); config->SetMarker_All_Designing(iMarker, config->GetMarker_CfgFile_Designing(Marker_Tag)); config->SetMarker_All_Plotting(iMarker, config->GetMarker_CfgFile_Plotting(Marker_Tag)); - config->SetMarker_All_FSIinterface(iMarker, config->GetMarker_CfgFile_FSIinterface(Marker_Tag)); + config->SetMarker_All_FSIinterface(iMarker, config->GetMarker_CfgFile_FSIinterface(Marker_Tag)); config->SetMarker_All_DV(iMarker, config->GetMarker_CfgFile_DV(Marker_Tag)); config->SetMarker_All_Moving(iMarker, config->GetMarker_CfgFile_Moving(Marker_Tag)); config->SetMarker_All_PerBound(iMarker, config->GetMarker_CfgFile_PerBound(Marker_Tag)); @@ -8297,9 +8317,9 @@ void CPhysicalGeometry::Check_IntElem_Orientation(CConfig *config) { if (test < 0.0) elem[iElem]->Change_Orientation(); } - /*--- 2D grid, rectangle case ---*/ + /*--- 2D grid, quadrilateral case ---*/ - if (elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (elem[iElem]->GetVTK_Type() == QUADRILATERAL) { Point_1 = elem[iElem]->GetNode(0); Coord_1 = node[Point_1]->GetCoord(); Point_2 = elem[iElem]->GetNode(1); Coord_2 = node[Point_2]->GetCoord(); @@ -8578,7 +8598,7 @@ void CPhysicalGeometry::Check_BoundElem_Orientation(CConfig *config) { } - if (bound[iMarker][iElem_Surface]->GetVTK_Type() == RECTANGLE) { + if (bound[iMarker][iElem_Surface]->GetVTK_Type() == QUADRILATERAL) { Point_1_Surface = bound[iMarker][iElem_Surface]->GetNode(0); Coord_1 = node[Point_1_Surface]->GetCoord(); Point_2_Surface = bound[iMarker][iElem_Surface]->GetNode(1); Coord_2 = node[Point_2_Surface]->GetCoord(); @@ -8674,11 +8694,11 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { nVertex_SolidWall = 0; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if ((config->GetMarker_All_KindBC(iMarker) == HEAT_FLUX) || - (config->GetMarker_All_KindBC(iMarker) == HEAT_FLUX_CATALYTIC) || - (config->GetMarker_All_KindBC(iMarker) == HEAT_FLUX_NONCATALYTIC) || - (config->GetMarker_All_KindBC(iMarker) == ISOTHERMAL) || - (config->GetMarker_All_KindBC(iMarker) == ISOTHERMAL_CATALYTIC) || - (config->GetMarker_All_KindBC(iMarker) == ISOTHERMAL_NONCATALYTIC) ) + (config->GetMarker_All_KindBC(iMarker) == HEAT_FLUX_CATALYTIC) || + (config->GetMarker_All_KindBC(iMarker) == HEAT_FLUX_NONCATALYTIC) || + (config->GetMarker_All_KindBC(iMarker) == ISOTHERMAL) || + (config->GetMarker_All_KindBC(iMarker) == ISOTHERMAL_CATALYTIC) || + (config->GetMarker_All_KindBC(iMarker) == ISOTHERMAL_NONCATALYTIC) ) for (iVertex = 0; iVertex < GetnVertex(iMarker); iVertex++) { iPoint = vertex[iMarker][iVertex]->GetNode(); for (iDim = 0; iDim < nDim; iDim++) @@ -8698,11 +8718,11 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { dist1 = 1E20; for (iVertex = 0; iVertex < nVertex_SolidWall; iVertex++) { dist2 = 0.0; - + /*--- The wall distance computation is done using the plain su2double datatype to just * determine the index of the closest vertex. Otherwise we are storing a lot of * unnecessary derivative information when using AD.---*/ - + for (iDim = 0; iDim < nDim; iDim++){ diff = (SU2_TYPE::GetPrimary(coord[iDim]) -SU2_TYPE::GetPrimary(Coord_bound[iVertex][iDim])); @@ -8714,12 +8734,12 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { } } dist = 0.0; - + /*--- Now we do the computation of the wall distance again using the general datatype.---*/ - + for (iDim = 0; iDim < nDim; iDim++){ dist += (coord[iDim] - Coord_bound[iVertex_nearestWall][iDim])* - (coord[iDim] - Coord_bound[iVertex_nearestWall][iDim]); + (coord[iDim] - Coord_bound[iVertex_nearestWall][iDim]); } node[iPoint]->SetWall_Distance(sqrt(dist)); } @@ -8815,14 +8835,14 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) for (iVertex = 0; iVertex < Buffer_Receive_nVertex[iProcessor]; iVertex++) { dist2 = 0.0; - + /*--- The wall distance computation is done using the plain su2double datatype to just * determine the index of the closest vertex. Otherwise we are storing a lot of * unnecessary derivative information when using AD.---*/ - + for (iDim = 0; iDim < nDim; iDim++){ diff = SU2_TYPE::GetPrimary(coord[iDim]) - - SU2_TYPE::GetPrimary(Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_NS+iVertex)*nDim+iDim]); + SU2_TYPE::GetPrimary(Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_NS+iVertex)*nDim+iDim]); dist2 += diff*diff; } if (dist2 < dist) { @@ -8830,13 +8850,13 @@ void CPhysicalGeometry::ComputeWall_Distance(CConfig *config) { dist = dist2; } } - + /*--- Now we do the computation of the wall distance again using the general datatype.---*/ - + dist = 0.0; for (iDim = 0; iDim < nDim; iDim++){ dist += (coord[iDim] - Buffer_Receive_Coord[iVertex_nearestWall*nDim+iDim])* - (coord[iDim] - Buffer_Receive_Coord[iVertex_nearestWall*nDim+iDim]); + (coord[iDim] - Buffer_Receive_Coord[iVertex_nearestWall*nDim+iDim]); } node[iPoint]->SetWall_Distance(sqrt(dist)); } @@ -8950,7 +8970,7 @@ void CPhysicalGeometry::SetPoint_Connectivity(void) { node[iPoint]->SetElem(iElem); } - + /*--- Loop over all the points ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) @@ -9287,7 +9307,7 @@ void CPhysicalGeometry::SetVertex(CConfig *config) { for (iElem = 0; iElem < nElem_Bound[iMarker]; iElem++) for (iNode = 0; iNode < bound[iMarker][iElem]->GetnNodes(); iNode++) { iPoint = bound[iMarker][iElem]->GetNode(iNode); - + /*--- Set the vertex in the node information ---*/ if ((node[iPoint]->GetVertex(iMarker) == -1) || (config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE)) { @@ -10358,9 +10378,9 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a /*--- Print out the coordinates for a set of triangles making up a single dual control volume for visualization. ---*/ - + if (face_iPoint == iPoint_Viz || face_jPoint == iPoint_Viz) { - + if (nDim == 2) { X.push_back(Coord_Elem_CG[0]); X.push_back(Coord_Edge_CG[0]); Y.push_back(Coord_Elem_CG[1]); Y.push_back(Coord_Edge_CG[1]); @@ -10368,7 +10388,7 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a X.push_back(Coord_FaceElem_CG[0]); X.push_back(Coord_Edge_CG[0]); X.push_back(Coord_Elem_CG[0]); Y.push_back(Coord_FaceElem_CG[1]); Y.push_back(Coord_Edge_CG[1]); Y.push_back(Coord_Elem_CG[1]); Z.push_back(Coord_FaceElem_CG[2]); Z.push_back(Coord_Edge_CG[2]); Z.push_back(Coord_Elem_CG[2]); - + for (iDim = 0; iDim < nDim; iDim++) { r1[iDim] = Coord_FaceElem_CG[iDim]-Coord_Elem_CG[iDim]; r2[iDim] = Coord_Edge_CG[iDim]-Coord_Elem_CG[iDim]; @@ -10437,7 +10457,7 @@ void CPhysicalGeometry::VisualizeControlVolume(CConfig *config, unsigned short a delete[] Coord_FacejPoint; #endif - + } void CPhysicalGeometry::SetMeshFile (CConfig *config, string val_mesh_out_filename) { @@ -10636,7 +10656,7 @@ bool CPhysicalGeometry::FindFace(unsigned long first_elem, unsigned long second_ pair::iterator, vector ::iterator> mypair; bool face_first_found = false, face_second_found =false; - if (first_elem == second_elem) return 0; + if (first_elem == second_elem) return false; for (iNode = 0; iNode < elem[first_elem]->GetnNodes(); iNode++) { iPoint = elem[first_elem]->GetNode(iNode); @@ -10654,48 +10674,63 @@ bool CPhysicalGeometry::FindFace(unsigned long first_elem, unsigned long second_ IterPoint = unique( CommonPoints.begin(), CommonPoints.end()); CommonPoints.resize( distance(CommonPoints.begin(), IterPoint) ); - /*--- Search the secuence in the first element ---*/ + /*--- In 2D, the two elements must share two points that make up + an edge, as all "faces" are edges in 2D. In 3D, we need to find + exactly 3 (tri) or 4 (quad) common points. Return immediately to + avoid a memory issue due to vectors of different lengths below. ---*/ + + if ((nDim == 2) && (CommonPoints.size() != 2)) return false; + if ((nDim == 3) && ((CommonPoints.size() != 3) && + (CommonPoints.size() != 4))) return false; + + /*--- Search the sequence in the first element ---*/ for (iFace = 0; iFace < elem[first_elem]->GetnFaces(); iFace++) { nNodesFace = elem[first_elem]->GetnNodesFace(iFace); - for (iNode = 0; iNode < nNodesFace; iNode++) { - face_node = elem[first_elem]->GetFaces(iFace, iNode); - PointFaceFirst.push_back(elem[first_elem]->GetNode(face_node)); - } - - /*--- Sort face_poin to perform comparison ---*/ - sort( PointFaceFirst.begin(), PointFaceFirst.end()); - /*--- List comparison ---*/ - mypair = mismatch (PointFaceFirst.begin(), PointFaceFirst.end(), CommonPoints.begin()); - if (mypair.first == PointFaceFirst.end()) { - face_first_elem = iFace; - face_first_found = true; - break; + if (nNodesFace == CommonPoints.size()) { + for (iNode = 0; iNode < nNodesFace; iNode++) { + face_node = elem[first_elem]->GetFaces(iFace, iNode); + PointFaceFirst.push_back(elem[first_elem]->GetNode(face_node)); + } + + /*--- Sort face_poin to perform comparison ---*/ + sort( PointFaceFirst.begin(), PointFaceFirst.end()); + + /*--- List comparison ---*/ + mypair = mismatch (PointFaceFirst.begin(), PointFaceFirst.end(), CommonPoints.begin()); + if (mypair.first == PointFaceFirst.end()) { + face_first_elem = iFace; + face_first_found = true; + break; + } + + PointFaceFirst.erase (PointFaceFirst.begin(), PointFaceFirst.end()); } - - PointFaceFirst.erase (PointFaceFirst.begin(), PointFaceFirst.end()); } /*--- Search the secuence in the second element ---*/ for (iFace = 0; iFace < elem[second_elem]->GetnFaces(); iFace++) { nNodesFace = elem[second_elem]->GetnNodesFace(iFace); - for (iNode = 0; iNode < nNodesFace; iNode++) { - face_node = elem[second_elem]->GetFaces(iFace, iNode); - PointFaceSecond.push_back(elem[second_elem]->GetNode(face_node)); - } - /*--- Sort face_poin to perform comparison ---*/ - sort( PointFaceSecond.begin(), PointFaceSecond.end()); - - /*--- List comparison ---*/ - mypair = mismatch (PointFaceSecond.begin(), PointFaceSecond.end(), CommonPoints.begin()); - if (mypair.first == PointFaceSecond.end()) { - face_second_elem = iFace; - face_second_found = true; - break; + if (nNodesFace == CommonPoints.size()) { + for (iNode = 0; iNode < nNodesFace; iNode++) { + face_node = elem[second_elem]->GetFaces(iFace, iNode); + PointFaceSecond.push_back(elem[second_elem]->GetNode(face_node)); + } + + /*--- Sort face_poin to perform comparison ---*/ + sort( PointFaceSecond.begin(), PointFaceSecond.end()); + + /*--- List comparison ---*/ + mypair = mismatch (PointFaceSecond.begin(), PointFaceSecond.end(), CommonPoints.begin()); + if (mypair.first == PointFaceSecond.end()) { + face_second_elem = iFace; + face_second_found = true; + break; + } + + PointFaceSecond.erase (PointFaceSecond.begin(), PointFaceSecond.end()); } - - PointFaceSecond.erase (PointFaceSecond.begin(), PointFaceSecond.end()); } if (face_first_found && face_second_found) return true; @@ -10742,7 +10777,7 @@ void CPhysicalGeometry::SetTecPlot(char mesh_filename[MAX_STRING_SIZE], bool new elem[iElem]->GetNode(0)+1 <<" "<< elem[iElem]->GetNode(1)+1 <<" "<< elem[iElem]->GetNode(2)+1 <<" "<< elem[iElem]->GetNode(2)+1 << endl; } - if (elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (elem[iElem]->GetVTK_Type() == QUADRILATERAL) { Tecplot_File << elem[iElem]->GetNode(0)+1 <<" "<< elem[iElem]->GetNode(1)+1 <<" "<< elem[iElem]->GetNode(2)+1 <<" "<< elem[iElem]->GetNode(3)+1 << endl; @@ -11007,7 +11042,7 @@ void CPhysicalGeometry::SetColorGrid(CConfig *config) { nElem_Tetrahedron = 0; for (iElem = 0; iElem < GetnElem(); iElem++) { if (elem[iElem]->GetVTK_Type() == TRIANGLE) nElem_Triangle = nElem_Triangle + 1; - if (elem[iElem]->GetVTK_Type() == RECTANGLE) nElem_Triangle = nElem_Triangle + 2; + if (elem[iElem]->GetVTK_Type() == QUADRILATERAL) nElem_Triangle = nElem_Triangle + 2; if (elem[iElem]->GetVTK_Type() == TETRAHEDRON) nElem_Tetrahedron = nElem_Tetrahedron + 1; if (elem[iElem]->GetVTK_Type() == HEXAHEDRON) nElem_Tetrahedron = nElem_Tetrahedron + 5; if (elem[iElem]->GetVTK_Type() == PYRAMID) nElem_Tetrahedron = nElem_Tetrahedron + 2; @@ -11045,7 +11080,7 @@ void CPhysicalGeometry::SetColorGrid(CConfig *config) { eptr[iElem_Triangle] = 3*iElem_Triangle; iElem_Triangle++; } - if (elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (elem[iElem]->GetVTK_Type() == QUADRILATERAL) { elmnts[3*iElem_Triangle+0]= elem[iElem]->GetNode(0); elmnts[3*iElem_Triangle+1]= elem[iElem]->GetNode(1); elmnts[3*iElem_Triangle+2]= elem[iElem]->GetNode(2); @@ -11180,28 +11215,28 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { if (size > SINGLE_NODE) { - /*--- Create some structures that ParMETIS needs for partitioning. ---*/ - - idx_t numflag, nparts, edgecut, wgtflag, ncon; - idx_t *vtxdist = new idx_t[size+1]; - idx_t *xadj_l = new idx_t[xadj_size]; - idx_t *adjacency_l = new idx_t[adjacency_size]; - idx_t *elmwgt = new idx_t[local_node]; - idx_t *part = new idx_t[local_node]; - - real_t ubvec; - real_t *tpwgts = new real_t[size]; - - /*--- Some recommended defaults for the various ParMETIS options. ---*/ - - wgtflag = 0; - numflag = 0; - ncon = 1; - ubvec = 1.05; - nparts = (idx_t)size; - idx_t options[METIS_NOPTIONS]; - METIS_SetDefaultOptions(options); - options[1] = 0; + /*--- Create some structures that ParMETIS needs for partitioning. ---*/ + + idx_t numflag, nparts, edgecut, wgtflag, ncon; + idx_t *vtxdist = new idx_t[size+1]; + idx_t *xadj_l = new idx_t[xadj_size]; + idx_t *adjacency_l = new idx_t[adjacency_size]; + idx_t *elmwgt = new idx_t[local_node]; + idx_t *part = new idx_t[local_node]; + + real_t ubvec; + real_t *tpwgts = new real_t[size]; + + /*--- Some recommended defaults for the various ParMETIS options. ---*/ + + wgtflag = 0; + numflag = 0; + ncon = 1; + ubvec = 1.05; + nparts = (idx_t)size; + idx_t options[METIS_NOPTIONS]; + METIS_SetDefaultOptions(options); + options[1] = 0; /*--- Fill the necessary ParMETIS data arrays. Note that xadj_size and adjacency_size are class data members that have been defined and set @@ -11215,7 +11250,7 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { for (int i = 0; i < size; i++) { vtxdist[i+1] = (idx_t)ending_node[i]; } - + for (unsigned long i = 0; i < xadj_size; i++) { xadj_l[i] = (idx_t)xadj[i]; } @@ -11242,17 +11277,17 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { node[iPoint]->SetColor(part[iPoint]); } - /*--- Free all memory needed for the ParMETIS structures ---*/ - - delete [] vtxdist; - delete [] xadj_l; - delete [] adjacency_l; - delete [] elmwgt; - delete [] part; - delete [] tpwgts; - + /*--- Free all memory needed for the ParMETIS structures ---*/ + + delete [] vtxdist; + delete [] xadj_l; + delete [] adjacency_l; + delete [] elmwgt; + delete [] part; + delete [] tpwgts; + } - + /*--- Delete the memory from the geometry class that carried the adjacency structure. ---*/ @@ -11371,7 +11406,7 @@ void CPhysicalGeometry::SetTranslationalVelocity(CConfig *config) { unsigned short iDim; unsigned long iPoint; - su2double xDot[3]; + su2double xDot[3] = {0.0,0.0,0.0}; int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -11380,9 +11415,9 @@ void CPhysicalGeometry::SetTranslationalVelocity(CConfig *config) { /*--- Get the translational velocity vector from config ---*/ - xDot[0] = config->GetTranslation_Rate_X(ZONE_0)/config->GetVelocity_Ref(); - xDot[1] = config->GetTranslation_Rate_Y(ZONE_0)/config->GetVelocity_Ref(); - xDot[2] = config->GetTranslation_Rate_Z(ZONE_0)/config->GetVelocity_Ref(); + xDot[0] = config->GetTranslation_Rate_X(ZONE_0)/config->GetVelocity_Ref(); + xDot[1] = config->GetTranslation_Rate_Y(ZONE_0)/config->GetVelocity_Ref(); + xDot[2] = config->GetTranslation_Rate_Z(ZONE_0)/config->GetVelocity_Ref(); /*--- Print some information to the console ---*/ @@ -11397,9 +11432,10 @@ void CPhysicalGeometry::SetTranslationalVelocity(CConfig *config) { /*--- Store the grid velocity at this node ---*/ - for (iDim = 0; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) { node[iPoint]->SetGridVel(iDim,xDot[iDim]); - + } + } } @@ -11468,7 +11504,7 @@ void CPhysicalGeometry::Set_MPI_Coord(CConfig *config) { send_to = config->GetMarker_All_SendRecv(MarkerS)-1; receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; #endif - + nVertexS = nVertex[MarkerS]; nVertexR = nVertex[MarkerR]; nBufferS_Vector = nVertexS*nDim; nBufferR_Vector = nVertexR*nDim; @@ -11489,7 +11525,7 @@ void CPhysicalGeometry::Set_MPI_Coord(CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Coord, nBufferS_Vector, MPI_DOUBLE, send_to,0, - Buffer_Receive_Coord, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); + Buffer_Receive_Coord, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); #else /*--- Receive information without MPI ---*/ @@ -11595,12 +11631,12 @@ void CPhysicalGeometry::Set_MPI_GridVel(CConfig *config) { (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - + #ifdef HAVE_MPI send_to = config->GetMarker_All_SendRecv(MarkerS)-1; receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; #endif - + nVertexS = nVertex[MarkerS]; nVertexR = nVertex[MarkerR]; nBufferS_Vector = nVertexS*nDim; nBufferR_Vector = nVertexR*nDim; @@ -11621,7 +11657,7 @@ void CPhysicalGeometry::Set_MPI_GridVel(CConfig *config) { #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_GridVel, nBufferS_Vector, MPI_DOUBLE, send_to,0, - Buffer_Receive_GridVel, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); + Buffer_Receive_GridVel, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); #else /*--- Receive information without MPI ---*/ @@ -11715,12 +11751,12 @@ void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { translation[3], *trans, theta, phi, psi, cosTheta, sinTheta, cosPhi, sinPhi, cosPsi, sinPsi, dx, dy, dz, rotCoord[3], epsilon = 1e-10, mindist = 1e6, *Coord_i, *Coord_j, dist = 0.0; bool isBadMatch = false; - + /*--- Check this dimensionalization ---*/ - + vector OldBoundaryElems[100]; vector::iterator IterNewElem[100]; - + /*--- We only create the mirror structure for the second boundary ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == PERIODIC_BOUNDARY) { @@ -11954,7 +11990,7 @@ void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { However, we are concerned with the new points, so we will store kPoint instead. ---*/ if (iPoint == jPoint) { -// kPoint = PeriodicPoint[iPeriodic][1][iElem]; + // kPoint = PeriodicPoint[iPeriodic][1][iElem]; /*--- We also want the type of boundary element that this point was within, so that we know what type of element to add @@ -12038,8 +12074,8 @@ void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { case TRIANGLE: newBound[iMarker][iElem] = new CTriangle(newNodes[0], newNodes[1], newNodes[2],3); break; - case RECTANGLE: - newBound[iMarker][iElem] = new CRectangle(newNodes[0], newNodes[1], newNodes[2], newNodes[3],3); + case QUADRILATERAL: + newBound[iMarker][iElem] = new CQuadrilateral(newNodes[0], newNodes[1], newNodes[2], newNodes[3],3); break; } @@ -12237,7 +12273,7 @@ void CPhysicalGeometry::SetBoundSensitivity(CConfig *config) { /*--- The sensitivity file uses the global numbering ---*/ iPoint = node[vertex[iMarker][iVertex]->GetNode()]->GetGlobalIndex(); - + if (vertex[iMarker][iVertex]->GetNode() < GetnPointDomain()) { Point2Vertex[iPoint][0] = iMarker; Point2Vertex[iPoint][1] = iVertex; @@ -12341,8 +12377,8 @@ void CPhysicalGeometry::SetSensitivity(CConfig *config){ bool sst = config->GetKind_Turb_Model() == SST; bool sa = config->GetKind_Turb_Model() == SA; bool grid_movement = config->GetGrid_Movement(); - su2double Sens, delta_T, dull_val; - //su2double total_T; + su2double Sens, dull_val; + //su2double delta_T, total_T; unsigned short nExtIter, iDim, iExtIter; unsigned long iPoint, index; @@ -12351,7 +12387,7 @@ void CPhysicalGeometry::SetSensitivity(CConfig *config){ if (config->GetUnsteady_Simulation()){ nExtIter = config->GetUnst_AdjointIter(); // delta_T = config->GetDelta_UnstTimeND(); - delta_T = 1.0; + // delta_T = 1.0; //total_T = (su2double)nExtIter*delta_T; }else{ //total_T = 1.0; @@ -12875,7 +12911,7 @@ su2double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surfa su2double **Plane_Normal = new su2double*[nPlane]; for (iPlane = 0; iPlane < nPlane; iPlane++ ) Plane_Normal[iPlane] = new su2double[nDim]; - + MinPlane = config->GetSection_Location(0); MaxPlane = config->GetSection_Location(1); MinXCoord = -1E6; MaxXCoord = 1E6; @@ -12936,12 +12972,12 @@ su2double CPhysicalGeometry::Compute_Volume(CConfig *config, bool original_surfa delete [] Zcoord_Airfoil; delete [] Variable_Airfoil; - for (iPlane = 0; iPlane < nPlane; iPlane++ ) + for (iPlane = 0; iPlane < nPlane; iPlane++) delete [] Plane_P0[iPlane]; delete [] Plane_P0; - for (iPlane = 0; iPlane < nPlane; iPlane++ ) - delete Plane_Normal[iPlane]; + for (iPlane = 0; iPlane < nPlane; iPlane++) + delete [] Plane_Normal[iPlane]; delete [] Plane_Normal; delete [] Area; @@ -12968,9 +13004,9 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c vector Suitable_Indirect_Neighbors, Aux_Parent; vector::iterator it; int rank; - + unsigned short nMarker_Max = config->GetnMarker_Max(); - + unsigned short *copy_marker = new unsigned short [nMarker_Max]; #ifndef HAVE_MPI @@ -12998,7 +13034,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c for (iElem = 0; iElem < fine_grid->GetnElem(); iElem++) { if ((fine_grid->elem[iElem]->GetVTK_Type() == HEXAHEDRON) || - (fine_grid->elem[iElem]->GetVTK_Type() == RECTANGLE)) { + (fine_grid->elem[iElem]->GetVTK_Type() == QUADRILATERAL)) { for (iNode = 0; iNode < fine_grid->elem[iElem]->GetnNodes(); iNode++) { iPoint = fine_grid->elem[iElem]->GetNode(iNode); fine_grid->node[iPoint]->SetAgglomerate_Indirect(true); @@ -13423,7 +13459,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c send_to = config->GetMarker_All_SendRecv(MarkerS)-1; receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; #endif - + nVertexS = fine_grid->nVertex[MarkerS]; nVertexR = fine_grid->nVertex[MarkerR]; nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; @@ -13446,9 +13482,9 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c #ifdef HAVE_MPI /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Children, nBufferS_Vector, MPI_UNSIGNED_LONG, send_to,0, - Buffer_Receive_Children, nBufferR_Vector, MPI_UNSIGNED_LONG, receive_from,0, MPI_COMM_WORLD, &status); + Buffer_Receive_Children, nBufferR_Vector, MPI_UNSIGNED_LONG, receive_from,0, MPI_COMM_WORLD, &status); SU2_MPI::Sendrecv(Buffer_Send_Parent, nBufferS_Vector, MPI_UNSIGNED_LONG, send_to,1, - Buffer_Receive_Parent, nBufferR_Vector, MPI_UNSIGNED_LONG, receive_from,1, MPI_COMM_WORLD, &status); + Buffer_Receive_Parent, nBufferR_Vector, MPI_UNSIGNED_LONG, receive_from,1, MPI_COMM_WORLD, &status); #else /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { @@ -13574,7 +13610,7 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry ***geometry, CConfig **config_c cout <<"MG level: "<< iMesh <<" -> CVs: " << Global_nPointCoarse << ". Agglomeration rate 1/" << ratio <<". CFL "<< CFL <<"." << endl; } } - + delete [] copy_marker; } @@ -13592,8 +13628,8 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark unsigned short nMarker_Max = config->GetnMarker_Max(); unsigned short *copy_marker = new unsigned short [nMarker_Max]; - - /*--- Basic condition, the element has not being previously agglomerated, it belongs to the domain, + + /*--- Basic condition, the element has not being previously agglomerated, it belongs to the domain, and has passed some basic geometrical check ---*/ if ((fine_grid->node[CVPoint]->GetAgglomerate() == false) && @@ -13660,7 +13696,7 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark return agglomerate_CV; delete [] copy_marker; - + } @@ -13867,7 +13903,7 @@ void CMultiGridGeometry::SetVertex(CGeometry *fine_grid, CConfig *config) { nMarker = fine_grid->GetnMarker(); unsigned short nMarker_Max = config->GetnMarker_Max(); - + /*--- If any children node belong to the boundary then the entire control volume will belong to the boundary ---*/ for (iCoarsePoint = 0; iCoarsePoint < nPoint; iCoarsePoint ++) @@ -14456,7 +14492,7 @@ CPeriodicGeometry::CPeriodicGeometry(CGeometry *geometry, CConfig *config) { translation[3], *trans, theta, phi, psi, cosTheta, sinTheta, cosPhi, sinPhi, cosPsi, sinPsi, dx, dy, dz, rotCoord[3], *Coord_i; unsigned short nMarker_Max = config->GetnMarker_Max(); - + /*--- We only create the mirror structure for the second boundary ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == PERIODIC_BOUNDARY) { @@ -14507,8 +14543,8 @@ CPeriodicGeometry::CPeriodicGeometry(CGeometry *geometry, CConfig *config) { nelem_triangle++; break; - case RECTANGLE: - elem[iElem] = new CRectangle(geometry->elem[iElem]->GetNode(0), + case QUADRILATERAL: + elem[iElem] = new CQuadrilateral(geometry->elem[iElem]->GetNode(0), geometry->elem[iElem]->GetNode(1), geometry->elem[iElem]->GetNode(2), geometry->elem[iElem]->GetNode(3), 2); @@ -14594,8 +14630,8 @@ CPeriodicGeometry::CPeriodicGeometry(CGeometry *geometry, CConfig *config) { iElem++; nelem_triangle++; break; - case RECTANGLE: - elem[iElem] = new CRectangle(Index[geometry->elem[jElem]->GetNode(0)], + case QUADRILATERAL: + elem[iElem] = new CQuadrilateral(Index[geometry->elem[jElem]->GetNode(0)], Index[geometry->elem[jElem]->GetNode(1)], Index[geometry->elem[jElem]->GetNode(2)], Index[geometry->elem[jElem]->GetNode(3)], 2); @@ -14754,8 +14790,8 @@ CPeriodicGeometry::CPeriodicGeometry(CGeometry *geometry, CConfig *config) { bound[iMarker][iVertex] = new CTriangle(geometry->bound[iMarker][iVertex]->GetNode(0), geometry->bound[iMarker][iVertex]->GetNode(1), geometry->bound[iMarker][iVertex]->GetNode(2), 3); - if (geometry->bound[iMarker][iVertex]->GetVTK_Type() == RECTANGLE) - bound[iMarker][iVertex] = new CRectangle(geometry->bound[iMarker][iVertex]->GetNode(0), + if (geometry->bound[iMarker][iVertex]->GetVTK_Type() == QUADRILATERAL) + bound[iMarker][iVertex] = new CQuadrilateral(geometry->bound[iMarker][iVertex]->GetNode(0), geometry->bound[iMarker][iVertex]->GetNode(1), geometry->bound[iMarker][iVertex]->GetNode(2), geometry->bound[iMarker][iVertex]->GetNode(3), 3); @@ -15007,7 +15043,7 @@ void CPeriodicGeometry::SetTecPlot(char mesh_filename[MAX_STRING_SIZE], bool new elem[iElem]->GetNode(0)+1 <<" "<< elem[iElem]->GetNode(1)+1 <<" "<< elem[iElem]->GetNode(2)+1 <<" "<< elem[iElem]->GetNode(2)+1 << endl; } - if (elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (elem[iElem]->GetVTK_Type() == QUADRILATERAL) { Tecplot_File << elem[iElem]->GetNode(0)+1 <<" "<< elem[iElem]->GetNode(1)+1 <<" "<< elem[iElem]->GetNode(2)+1 <<" "<< elem[iElem]->GetNode(3)+1 << endl; diff --git a/Common/src/grid_adaptation_structure.cpp b/Common/src/grid_adaptation_structure.cpp index 8e02d680783..9ac1712d5b4 100644 --- a/Common/src/grid_adaptation_structure.cpp +++ b/Common/src/grid_adaptation_structure.cpp @@ -2,7 +2,7 @@ * \file grid_adaptation_structure.cpp * \brief Main subroutines for grid adaptation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -1704,7 +1704,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG TriangleEdgeIndex[iElem][1] = geometry->FindEdge(ip_1, ip_2); TriangleEdgeCode[iElem][1] = false; TriangleEdgeNode[iElem][1] = -1; TriangleEdgeIndex[iElem][2] = geometry->FindEdge(ip_2, ip_0); TriangleEdgeCode[iElem][2] = false; TriangleEdgeNode[iElem][2] = -1; } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { ip_0 = geometry->elem[iElem]->GetNode(0); ip_1 = geometry->elem[iElem]->GetNode(1); ip_2 = geometry->elem[iElem]->GetNode(2); @@ -1741,7 +1741,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG TriangleEdgeCode[iElem][iIndex] = true; } } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { for (int iIndex = 0; iIndex < 4; iIndex++) { DivEdge[RectEdgeIndex[iElem][iIndex]] = true; RectEdgeCode[iElem][iIndex] = true; @@ -1783,7 +1783,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG } } } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { for (int iIndex = 0; iIndex < 4; iIndex++) { if (DivEdge[RectEdgeIndex[iElem][iIndex]] == true) { RectEdgeCode[iElem][iIndex] = true; @@ -1799,7 +1799,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) { TriangleAdaptCode[iElem] = CheckTriangleCode(TriangleEdgeCode[iElem]); } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { RectAdaptCode[iElem] = CheckRectCode(RectEdgeCode[iElem]); /*--- Set the RectAdaptCode ---*/ @@ -1890,7 +1890,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG } } } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { ip_0 = geometry->elem[iElem]->GetNode(0); ip_1 = geometry->elem[iElem]->GetNode(1); @@ -1963,16 +1963,16 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG } - /*--- if Rectangle adapt code equals 0, then a semidivision is applied ---*/ + /*--- if Quadrilateral adapt code equals 0, then a semidivision is applied ---*/ long nSemiDivided = 0; for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { if (RectAdaptCode[iElem] == 0) nSemiDivided++; } } - /*--- If semidivision, then divide add a new point, divide the rectangle into triangles, + /*--- If semidivision, then divide add a new point, divide the quadrilateral into triangles, and find the right combination, it also create the new node (hexa). ---*/ long nRectExt = nSemiDivided; @@ -2001,14 +2001,14 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG } for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { RectRectExtIndex[iElem] = new long [1]; } } nRectExt = 0; for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) { - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { if (RectAdaptCode[iElem] == 0) { /*--- Write the edge combination on the base. ---*/ @@ -2060,7 +2060,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG if (TriangleAdaptCode[iElem] == 6) nElem_new = nElem_new + 1; if (TriangleAdaptCode[iElem] == 7) nElem_new = nElem_new + 1; } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { if (RectAdaptCode[iElem] == 1) nElem_new = nElem_new + 3; if (RectAdaptCode[iElem] == 2) nElem_new = nElem_new + 1; if (RectAdaptCode[iElem] == 3) nElem_new = nElem_new + 1; @@ -2106,9 +2106,9 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG iElemNew++; } } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { if (RectAdaptCode[iElem] == -1) { - geo_adapt->elem[iElemNew] = new CRectangle(geometry->elem[iElem]->GetNode(0), + geo_adapt->elem[iElemNew] = new CQuadrilateral(geometry->elem[iElem]->GetNode(0), geometry->elem[iElem]->GetNode(1), geometry->elem[iElem]->GetNode(2), geometry->elem[iElem]->GetNode(3), 2); @@ -2154,10 +2154,10 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG iElemNew++; } - /*--- Rectangle case ---*/ + /*--- Quadrilateral case ---*/ if (Division[iPart][0] == 5) { - geo_adapt->elem[iElemNew] = new CRectangle(Division[iPart][1], + geo_adapt->elem[iElemNew] = new CQuadrilateral(Division[iPart][1], Division[iPart][2], Division[iPart][3], Division[iPart][4], 2); @@ -2166,7 +2166,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG } } } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { /*--- Rect elements... ---*/ @@ -2188,7 +2188,7 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG RectDivision(RectAdaptCode[iElem], nodes, Division, &nPart); for (long iPart = 0; iPart < nPart; iPart++) { - geo_adapt->elem[iElemNew] = new CRectangle(Division[iPart][1], + geo_adapt->elem[iElemNew] = new CQuadrilateral(Division[iPart][1], Division[iPart][2], Division[iPart][3], Division[iPart][4], 2); @@ -2227,10 +2227,10 @@ void CGridAdaptation::SetHomothetic_Adaptation2D(CGeometry *geometry, CPhysicalG iElemNew++; } - /*--- Rectangle case ---*/ + /*--- Quadrilateral case ---*/ if (Division[iPart][0] == 5) { - geo_adapt->elem[iElemNew] = new CRectangle(Division[iPart][1], + geo_adapt->elem[iElemNew] = new CQuadrilateral(Division[iPart][1], Division[iPart][2], Division[iPart][3], Division[iPart][4], 2); @@ -3260,7 +3260,7 @@ void CGridAdaptation::SetHomothetic_Adaptation3D(CGeometry *geometry, CPhysicalG ip_2 = geometry->bound[iMarker][iVertex]->GetNode(2); geo_adapt->node[ip_2]->SetBoundary(geometry->GetnMarker()); if (nNodesBound == 4) { ip_3 = geometry->bound[iMarker][iVertex]->GetNode(3); geo_adapt->node[ip_3]->SetBoundary(geometry->GetnMarker()); - geo_adapt->bound[iMarker][nNewBCcv] = new CRectangle(ip_0, ip_1, ip_2, ip_3, 3); + geo_adapt->bound[iMarker][nNewBCcv] = new CQuadrilateral(ip_0, ip_1, ip_2, ip_3, 3); nNewBCcv++; } else { @@ -3710,7 +3710,7 @@ void CGridAdaptation::SetSensorElem(CGeometry *geometry, CConfig *config, unsign ip_1 = geometry->elem[iElem]->GetNode(1); ip_2 = geometry->elem[iElem]->GetNode(2); Sensor[iElem] = (Index[ip_0]+Index[ip_1]+Index[ip_2])/3.0; - if ((geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) || + if ((geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) || (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON)) { ip_3 = geometry->elem[iElem]->GetNode(2); Sensor[iElem] = (Index[ip_0]+Index[ip_1]+Index[ip_2]+Index[ip_3])/4.0; @@ -3730,7 +3730,7 @@ void CGridAdaptation::SetSensorElem(CGeometry *geometry, CConfig *config, unsign for (iElem = 0; iElem < geometry->GetnElem(); iElem ++) if ( Sensor[iElem] >= threshold && !geometry->elem[iElem]->GetDivide() ) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nElem_real = nElem_real + 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nElem_real = nElem_real + 3; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nElem_real = nElem_real + 3; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nElem_real = nElem_real + 7; geometry->elem[iElem]->SetDivide(true); if (nElem_real >= max_elem) break; diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index a58f7f91336..f2e5bebfcb6 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -2,7 +2,7 @@ * \file grid_movement_structure.cpp * \brief Subroutines for doing the grid movement using different strategies * \author F. Palacios, T. Economon, S. Padron - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -362,7 +362,7 @@ su2double CVolumetricMovement::Check_Grid(CGeometry *geometry) { for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; @@ -380,7 +380,7 @@ su2double CVolumetricMovement::Check_Grid(CGeometry *geometry) { if (nDim == 2) { if (nNodes == 3) Area = GetTriangle_Area(CoordCorners); - if (nNodes == 4) Area = GetRectangle_Area(CoordCorners); + if (nNodes == 4) Area = GetQuadrilateral_Area(CoordCorners); if (Area >= -EPS) RightVol = true; else RightVol = false;; @@ -593,7 +593,7 @@ su2double CVolumetricMovement::SetFEAMethodContributions_Elem(CGeometry *geometr su2double *Coord_0, *Coord_1, Length, MinLength = 1E10, **StiffMatrix_Elem = NULL, Scale, CoordCorners[8][3]; su2double *Edge_Vector = new su2double [nDim]; - /*--- Allocate maximum size (rectangle and hexahedron) ---*/ + /*--- Allocate maximum size (quadrilateral and hexahedron) ---*/ if (nDim == 2) StiffMatrix_nElem = 8; else StiffMatrix_nElem = 24; @@ -641,7 +641,7 @@ su2double CVolumetricMovement::SetFEAMethodContributions_Elem(CGeometry *geometr for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; @@ -746,7 +746,7 @@ su2double CVolumetricMovement::ShapeFunc_Triangle(su2double Xi, su2double Eta, s } -su2double CVolumetricMovement::ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { +su2double CVolumetricMovement::ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; su2double c0, c1, xsj; @@ -1162,7 +1162,7 @@ su2double CVolumetricMovement::GetTriangle_Area(su2double CoordCorners[8][3]) { } -su2double CVolumetricMovement::GetRectangle_Area(su2double CoordCorners[8][3]) { +su2double CVolumetricMovement::GetQuadrilateral_Area(su2double CoordCorners[8][3]) { unsigned short iDim; su2double a[3] = {0.0,0.0,0.0}, b[3] = {0.0,0.0,0.0}; @@ -1453,7 +1453,7 @@ void CVolumetricMovement::SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *con Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; } - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ + /*--- Quadrilateral. Nodes of numerical integration at 4 points (order 2). ---*/ if (nNodes == 4) { nGauss = 4; @@ -1468,7 +1468,7 @@ void CVolumetricMovement::SetFEA_StiffMatrix2D(CGeometry *geometry, CConfig *con Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Rectangle(Xi, Eta, CoordCorners, DShapeFunction); + if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); /*--- Compute the B Matrix ---*/ @@ -1905,14 +1905,15 @@ void CVolumetricMovement::SetBoundaryDerivatives(CGeometry *geometry, CConfig *c void CVolumetricMovement::UpdateGridCoord_Derivatives(CGeometry *geometry, CConfig *config){ unsigned short iDim, iMarker; unsigned long iPoint, total_index, iVertex; - su2double new_coord[3]; + su2double *new_coord = new su2double[3]; unsigned short Kind_SU2 = config->GetKind_SU2(); /*--- Update derivatives of the grid coordinates using the solution of the linear system after grid deformation (LinSysSol contains the derivatives of the x, y, z displacements). ---*/ if ((config->GetDirectDiff() == D_DESIGN) && (Kind_SU2 == SU2_CFD)){ - for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++){ + new_coord[0] = 0.0; new_coord[1] = 0.0; new_coord[2] = 0.0; for (iDim = 0; iDim < nDim; iDim++) { total_index = iPoint*nDim + iDim; new_coord[iDim] = geometry->node[iPoint]->GetCoord(iDim); @@ -1935,6 +1936,8 @@ void CVolumetricMovement::UpdateGridCoord_Derivatives(CGeometry *geometry, CConf } } } + + delete [] new_coord; } void CVolumetricMovement::SetDomainDisplacements(CGeometry *geometry, CConfig *config) { @@ -1991,7 +1994,9 @@ void CVolumetricMovement::Rigid_Rotation(CGeometry *geometry, CConfig *config, /*--- Local variables ---*/ unsigned short iDim, nDim; unsigned long iPoint; - su2double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, *Coord, Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, Lref, dt, Center_Moment[3] = {0.0,0.0,0.0}; + su2double r[3] = {0.0,0.0,0.0}, rotCoord[3] = {0.0,0.0,0.0}, *Coord; + su2double Center[3] = {0.0,0.0,0.0}, Omega[3] = {0.0,0.0,0.0}, Lref; + su2double dt, Center_Moment[3] = {0.0,0.0,0.0}; su2double *GridVel, newGridVel[3] = {0.0,0.0,0.0}; su2double rotMatrix[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; su2double dtheta, dphi, dpsi, cosTheta, sinTheta; @@ -2075,9 +2080,9 @@ void CVolumetricMovement::Rigid_Rotation(CGeometry *geometry, CConfig *config, GridVel = geometry->node[iPoint]->GetGridVel(); /*--- Calculate non-dim. position from rotation center ---*/ - for (iDim = 0; iDim < nDim; iDim++) - r[iDim] = (Coord[iDim]-Center[iDim])/Lref; - if (nDim == 2) r[nDim] = 0.0; + r[0] = (Coord[0]-Center[0])/Lref; + r[1] = (Coord[1]-Center[1])/Lref; + if (nDim == 3) r[2] = (Coord[2]-Center[2])/Lref; /*--- Compute transformed point coordinates ---*/ rotCoord[0] = rotMatrix[0][0]*r[0] @@ -4415,7 +4420,7 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig #endif - AoA = atan((LPCoord[1] - TPCoord[1]) / (TPCoord[0] - LPCoord[0]))*180/PI_NUMBER; + //AoA = atan((LPCoord[1] - TPCoord[1]) / (TPCoord[0] - LPCoord[0]))*180/PI_NUMBER; AoA = 0.0; /*--- Perform multiple airfoil deformation ---*/ @@ -5412,7 +5417,7 @@ void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *confi su2double omega, deltaT; su2double alpha, alpha_new, alpha_old; su2double time_new, time_old; - su2double Center[3], Omega[3], Ampl[3], Phase[3]; + su2double Omega[3], Ampl[3]; su2double DEG2RAD = PI_NUMBER/180.0; int rank; bool adjoint = config->GetAdjoint(); @@ -5429,18 +5434,12 @@ void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *confi /*--- Pitching origin, frequency, and amplitude from config. ---*/ - Center[0] = config->GetMotion_Origin_X(iZone); - Center[1] = config->GetMotion_Origin_Y(iZone); - Center[2] = config->GetMotion_Origin_Z(iZone); Omega[0] = (config->GetPitching_Omega_X(iZone)/config->GetOmega_Ref()); Omega[1] = (config->GetPitching_Omega_Y(iZone)/config->GetOmega_Ref()); Omega[2] = (config->GetPitching_Omega_Z(iZone)/config->GetOmega_Ref()); Ampl[0] = config->GetPitching_Ampl_X(iZone)*DEG2RAD; Ampl[1] = config->GetPitching_Ampl_Y(iZone)*DEG2RAD; Ampl[2] = config->GetPitching_Ampl_Z(iZone)*DEG2RAD; - Phase[0] = config->GetPitching_Phase_X(iZone)*DEG2RAD; - Phase[1] = config->GetPitching_Phase_Y(iZone)*DEG2RAD; - Phase[2] = config->GetPitching_Phase_Z(iZone)*DEG2RAD; /*--- Compute delta time based on physical time step ---*/ @@ -5819,6 +5818,7 @@ void CSurfaceMovement::SetAirfoil(CGeometry *boundary, CConfig *config) { cout << "Enter the name of file with the airfoil information: "; ierr = scanf("%s", AirfoilFile); + if (ierr == 0) { cout << "No input read!! "<< endl; exit(EXIT_FAILURE); } airfoil_file.open(AirfoilFile, ios::in); if (airfoil_file.fail()) { cout << "There is no airfoil file!! "<< endl; @@ -5826,16 +5826,20 @@ void CSurfaceMovement::SetAirfoil(CGeometry *boundary, CConfig *config) { } cout << "Enter the format of the airfoil (Selig or Lednicer): "; ierr = scanf("%s", AirfoilFormat); + if (ierr == 0) { cout << "No input read!! "<< endl; exit(EXIT_FAILURE); } cout << "Thickness scaling (1.0 means no scaling)?: "; ierr = scanf("%lf", &AirfoilScale); - + if (ierr == 0) { cout << "No input read!! "<< endl; exit(EXIT_FAILURE); } + cout << "Close the airfoil (Yes or No)?: "; ierr = scanf("%s", AirfoilClose); - + if (ierr == 0) { cout << "No input read!! "<< endl; exit(EXIT_FAILURE); } + cout << "Surface mesh orientation (clockwise, or anticlockwise): "; ierr = scanf("%s", MeshOrientation); - + if (ierr == 0) { cout << "No input read!! "<< endl; exit(EXIT_FAILURE); } + /*--- The first line is the header ---*/ getline (airfoil_file, text_line); diff --git a/Common/src/linear_solvers_structure.cpp b/Common/src/linear_solvers_structure.cpp index f082d9d7531..f331da2c3af 100644 --- a/Common/src/linear_solvers_structure.cpp +++ b/Common/src/linear_solvers_structure.cpp @@ -2,7 +2,7 @@ * \file linear_solvers_structure.cpp * \brief Main classes required for solving linear systems of equations * \author J. Hicken, F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/linear_solvers_structure_b.cpp b/Common/src/linear_solvers_structure_b.cpp index 9148ce9b8c3..bc20e7003ff 100644 --- a/Common/src/linear_solvers_structure_b.cpp +++ b/Common/src/linear_solvers_structure_b.cpp @@ -2,7 +2,7 @@ * \file linear_solvers_structure_b.cpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 58046cebee7..0319cfa231f 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -2,7 +2,7 @@ * \file matrix_structure.cpp * \brief Main subroutines for doing the sparse structures * \author F. Palacios, A. Bueno, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/mpi_structure.cpp b/Common/src/mpi_structure.cpp index b45999827c9..cb02d9600ad 100644 --- a/Common/src/mpi_structure.cpp +++ b/Common/src/mpi_structure.cpp @@ -2,7 +2,7 @@ * \file mpi_structure.cpp * \brief Main subroutines for the mpi structures. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/primal_grid_structure.cpp b/Common/src/primal_grid_structure.cpp index 34367e63501..a8afaf9f303 100644 --- a/Common/src/primal_grid_structure.cpp +++ b/Common/src/primal_grid_structure.cpp @@ -2,7 +2,7 @@ * \file primal_grid_structure.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -244,25 +244,25 @@ void CTriangle::Change_Orientation(void) { } -unsigned short CRectangle::Faces[4][2] = {{0,1},{1,2},{2,3},{3,0}}; +unsigned short CQuadrilateral::Faces[4][2] = {{0,1},{1,2},{2,3},{3,0}}; -unsigned short CRectangle::Neighbor_Nodes[4][2] = {{1,3},{2,0},{3,1},{0,2}}; +unsigned short CQuadrilateral::Neighbor_Nodes[4][2] = {{1,3},{2,0},{3,1},{0,2}}; -unsigned short CRectangle::nNodesFace[4] = {2,2,2,2}; +unsigned short CQuadrilateral::nNodesFace[4] = {2,2,2,2}; -unsigned short CRectangle::nNeighbor_Nodes[4] = {2,2,2,2}; +unsigned short CQuadrilateral::nNeighbor_Nodes[4] = {2,2,2,2}; -unsigned short CRectangle::nFaces = 4; +unsigned short CQuadrilateral::nFaces = 4; -unsigned short CRectangle::nNodes = 4; +unsigned short CQuadrilateral::nNodes = 4; -unsigned short CRectangle::nNeighbor_Elements = 4; +unsigned short CQuadrilateral::nNeighbor_Elements = 4; -unsigned short CRectangle::VTK_Type = 9; +unsigned short CQuadrilateral::VTK_Type = 9; -unsigned short CRectangle::maxNodesFace = 2; +unsigned short CQuadrilateral::maxNodesFace = 2; -CRectangle::CRectangle(unsigned long val_point_0, unsigned long val_point_1, +CQuadrilateral::CQuadrilateral(unsigned long val_point_0, unsigned long val_point_1, unsigned long val_point_2, unsigned long val_point_3, unsigned short val_nDim) : CPrimalGrid() { unsigned short iDim, iFace, iNeighbor_Elements; @@ -295,7 +295,7 @@ CRectangle::CRectangle(unsigned long val_point_0, unsigned long val_point_1, } -CRectangle::~CRectangle() { +CQuadrilateral::~CQuadrilateral() { unsigned short iFaces; for (iFaces = 0; iFaces < nFaces; iFaces++) @@ -304,7 +304,7 @@ CRectangle::~CRectangle() { } -void CRectangle::Change_Orientation(void) { +void CQuadrilateral::Change_Orientation(void) { unsigned long jPoint, Point_3; jPoint = Nodes[1]; Point_3 = Nodes[3]; diff --git a/Common/src/vector_structure.cpp b/Common/src/vector_structure.cpp index 82ffa8c7815..09c03982127 100644 --- a/Common/src/vector_structure.cpp +++ b/Common/src/vector_structure.cpp @@ -2,7 +2,7 @@ * \file vector_structure.cpp * \brief Main classes required for solving linear systems of equations * \author F. Palacios, J. Hicken - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Makefile.in b/Makefile.in index cf5e3352b7d..e6111670a38 100644 --- a/Makefile.in +++ b/Makefile.in @@ -20,7 +20,7 @@ # \file Makefile.am # \brief Global makefile for the SU2 project # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -92,8 +92,7 @@ target_triplet = @target@ subdir = . DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ - ar-lib compile config.guess config.sub depcomp install-sh \ - missing + compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ diff --git a/QuickStart/inv_NACA0012.cfg b/QuickStart/inv_NACA0012.cfg index 17099583f67..d621430d4d9 100644 --- a/QuickStart/inv_NACA0012.cfg +++ b/QuickStart/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/README.md b/README.md index ddd7bb72eed..fdd0af27d0c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ----------------------------------------------------------- - SU2 (ver. 4.0.0 "Cardinal"): The Open-Source CFD Code + SU2 (ver. 4.0.1 "Cardinal"): The Open-Source CFD Code ----------------------------------------------------------- Computational analysis tools have revolutionized the way we design aerospace systems, but most established codes are proprietary, unavailable, or prohibitively expensive for many users. The SU2 team is changing this, making computational analysis and design freely available as open-source software and involving everyone in its creation and development. @@ -50,7 +50,7 @@ Thanks for building, and happy optimizing! SU2 DEVELOPERS ---------------------------------------------------------- -SU2 is being developed by individuals and organized teams around the world. +SU2 is being developed by individuals and organized teams all around the world. The SU2 Lead Developers are: diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index f3c1c42cd5a..46416bda092 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_CFD. * The subroutines and functions are in the SU2_CFD.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 7910252287a..ec860fe9dd3 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines used by SU2_CFD. * The subroutines and functions are in the definition_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/fluid_model.hpp b/SU2_CFD/include/fluid_model.hpp index 3f88bc00aa3..6cc938b3aee 100644 --- a/SU2_CFD/include/fluid_model.hpp +++ b/SU2_CFD/include/fluid_model.hpp @@ -2,7 +2,7 @@ * \file fluid_model.hpp * \brief Headers of the main thermodynamic subroutines of the SU2 solvers. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -50,7 +50,7 @@ using namespace std; * \brief Main class for defining the Thermo-Physical Model * a child class for each particular Model (Ideal-Gas, Van der Waals, etc.) * \author: S.Vitale, G.Gori, M.Pini - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CFluidModel { protected: @@ -252,7 +252,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \class CIdealGas * \brief Child class for defining ideal gas model. * \author: S.Vitale, M.Pini. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CIdealGas : public CFluidModel { @@ -341,7 +341,7 @@ class CIdealGas : public CFluidModel { * derived class CVanDerWaalsGas * \brief Child class for defining the Van der Waals model. * \author: S.Vitale, M.Pini - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CVanDerWaalsGas : public CIdealGas { @@ -419,7 +419,7 @@ class CVanDerWaalsGas : public CIdealGas { * \derived class CPengRobinson * \brief Child class for defining the Peng-Robinson model. * \author: S.Vitale, G. Gori - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPengRobinson : public CIdealGas { diff --git a/SU2_CFD/include/fluid_model.inl b/SU2_CFD/include/fluid_model.inl index dd608ed796a..bd689cec884 100644 --- a/SU2_CFD/include/fluid_model.inl +++ b/SU2_CFD/include/fluid_model.inl @@ -2,7 +2,7 @@ * \file fluid_model.inl * \brief In-Line subroutines of the solver_structure.hpp file. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index 2d4d4ce712d..c84e2cfc9cf 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -4,7 +4,7 @@ * The subroutines and functions are in the integration_structure.cpp, * integration_time.cpp, and integration_notime.cpp files. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -50,7 +50,7 @@ using namespace std; * \brief Main class for doing the space integration, time integration, and monitoring * of a system of Partial Differential Equations (PDE). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CIntegration { protected: @@ -374,7 +374,7 @@ class CIntegration { * \class CMultiGridIntegration * \brief Class for doing the numerical integration using a multigrid method. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CMultiGridIntegration : public CIntegration { protected: @@ -546,7 +546,7 @@ class CMultiGridIntegration : public CIntegration { * \class CSingleGridIntegration * \brief Class for doing the numerical integration of the turbulence model. * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSingleGridIntegration : public CIntegration { public: @@ -607,7 +607,7 @@ class CSingleGridIntegration : public CIntegration { * \class CStructuralIntegration * \brief Class for doing the numerical integration of the structural model. * \author R. Sanchez. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CStructuralIntegration : public CIntegration { public: diff --git a/SU2_CFD/include/integration_structure.inl b/SU2_CFD/include/integration_structure.inl index 28c289ca283..1202e1e24fa 100644 --- a/SU2_CFD/include/integration_structure.inl +++ b/SU2_CFD/include/integration_structure.inl @@ -2,7 +2,7 @@ * \file integration_structure.inl * \brief In-Line subroutines of the integration_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index 9f17efe3809..539a33a7775 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines used by SU2_CFD. * The subroutines and functions are in the definition_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/numerics_machine_learning.hpp b/SU2_CFD/include/numerics_machine_learning.hpp index 1d6ea321dd2..20da282ccdf 100644 --- a/SU2_CFD/include/numerics_machine_learning.hpp +++ b/SU2_CFD/include/numerics_machine_learning.hpp @@ -5,7 +5,7 @@ * numerics_convective.cpp, numerics_viscous.cpp, and * numerics_source.cpp files. * \author B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/numerics_machine_learning.inl b/SU2_CFD/include/numerics_machine_learning.inl index 7489cd8cd9a..8255f438807 100644 --- a/SU2_CFD/include/numerics_machine_learning.inl +++ b/SU2_CFD/include/numerics_machine_learning.inl @@ -2,7 +2,7 @@ * \file numerics_machine_learning.inl * \brief In-Line subroutines of the numerics_machine_learning.hpp file. * \author B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/numerics_machine_learning_turbulent.hpp b/SU2_CFD/include/numerics_machine_learning_turbulent.hpp index 344c10d92c7..38570f528e5 100644 --- a/SU2_CFD/include/numerics_machine_learning_turbulent.hpp +++ b/SU2_CFD/include/numerics_machine_learning_turbulent.hpp @@ -2,7 +2,7 @@ * \file numerics_machine_learning_direct_turbulent.hpp * \brief Header for caller functions of the turbulence models. * \author B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 0c1bbb036b1..619b275b870 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -5,7 +5,7 @@ * numerics_convective.cpp, numerics_viscous.cpp, and * numerics_source.cpp files. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -52,7 +52,7 @@ using namespace std; * \class CNumerics * \brief Class for defining the numerical methods. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CNumerics { protected: @@ -1611,7 +1611,7 @@ class CNumerics { * \brief Class for centered scheme - CUSP. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwCUSP_Flow : public CNumerics { @@ -1661,7 +1661,7 @@ class CUpwCUSP_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the flow equations. * \ingroup ConvDiscr * \author A. Bueno, F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwRoe_Flow : public CNumerics { private: @@ -1708,7 +1708,7 @@ class CUpwRoe_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the flow equations for a general fluid model. * \ingroup ConvDiscr * \author S.Vitale, G.Gori, M.Pini - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwGeneralRoe_Flow : public CNumerics { private: @@ -1766,7 +1766,7 @@ class CUpwGeneralRoe_Flow : public CNumerics { * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwMSW_Flow : public CNumerics { private: @@ -1811,7 +1811,7 @@ class CUpwMSW_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe with Turkel Preconditioning for the flow equations. * \ingroup ConvDiscr * \author A. K. Lonkar - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwTurkel_Flow : public CNumerics { private: @@ -1866,7 +1866,7 @@ class CUpwTurkel_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the incompressible flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwArtComp_Flow : public CNumerics { private: @@ -1913,7 +1913,7 @@ class CUpwArtComp_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the incompressible flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwArtComp_FreeSurf_Flow : public CNumerics { private: @@ -1961,7 +1961,7 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { * for the adjoint flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwRoe_AdjFlow : public CNumerics { private: @@ -2012,7 +2012,7 @@ class CUpwRoe_AdjFlow : public CNumerics { * for the adjoint flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwRoeArtComp_AdjFlow : public CNumerics { private: @@ -2056,7 +2056,7 @@ class CUpwRoeArtComp_AdjFlow : public CNumerics { * \brief Class for solving an approximate Riemann AUSM. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwAUSM_Flow : public CNumerics { private: @@ -2103,7 +2103,7 @@ class CUpwAUSM_Flow : public CNumerics { * \brief Class for solving an approximate Riemann AUSM. * \ingroup ConvDiscr * \author F. Palacios, based on the Joe code implementation - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwHLLC_Flow : public CNumerics { private: @@ -2151,7 +2151,7 @@ class CUpwHLLC_Flow : public CNumerics { * \brief Class for performing a linear upwind solver for the Spalart-Allmaras turbulence model equations with transition * \ingroup ConvDiscr * \author A. Aranake - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwLin_TransLM : public CNumerics { private: @@ -2191,7 +2191,7 @@ class CUpwLin_TransLM : public CNumerics { * \brief Class for performing a linear upwind solver for the adjoint Level Set equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwLin_AdjLevelSet : public CNumerics { private: @@ -2233,7 +2233,7 @@ class CUpwLin_AdjLevelSet : public CNumerics { * \brief Class for performing a linear upwind solver for the adjoint turbulence equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwLin_AdjTurb : public CNumerics { private: @@ -2269,7 +2269,7 @@ class CUpwLin_AdjTurb : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwSca_TurbSA : public CNumerics { private: @@ -2308,7 +2308,7 @@ class CUpwSca_TurbSA : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwSca_TurbML : public CNumerics { private: @@ -2347,7 +2347,7 @@ class CUpwSca_TurbML : public CNumerics { * \brief Class for doing a scalar upwind solver for the Menter SST turbulence model equations. * \ingroup ConvDiscr * \author A. Campos. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwSca_TurbSST : public CNumerics { private: @@ -2388,7 +2388,7 @@ class CUpwSca_TurbSST : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalart-Allmaras turbulence model equations with transition. * \ingroup ConvDiscr * \author A. Aranake. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwSca_TransLM : public CNumerics { private: @@ -2427,7 +2427,7 @@ class CUpwSca_TransLM : public CNumerics { * \brief Class for doing a scalar upwind solver for the adjoint turbulence equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwSca_AdjTurb : public CNumerics { private: @@ -2467,7 +2467,7 @@ class CUpwSca_AdjTurb : public CNumerics { * \brief Class for centered shceme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentJST_KE_Flow : public CNumerics { @@ -2521,7 +2521,7 @@ class CCentJST_KE_Flow : public CNumerics { * \brief Class for centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentJST_Flow : public CNumerics { @@ -2575,7 +2575,7 @@ class CCentJST_Flow : public CNumerics { * \brief Class for centered scheme - JST (artificial compressibility). * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentJSTArtComp_Flow : public CNumerics { @@ -2628,7 +2628,7 @@ class CCentJSTArtComp_Flow : public CNumerics { * \brief Class for and adjoint centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentJST_AdjFlow : public CNumerics { private: @@ -2678,7 +2678,7 @@ class CCentJST_AdjFlow : public CNumerics { * \brief Class for and adjoint centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentJSTArtComp_AdjFlow : public CNumerics { private: @@ -2728,7 +2728,7 @@ class CCentJSTArtComp_AdjFlow : public CNumerics { * \brief Class for linearized centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentJST_LinFlow : public CNumerics { private: @@ -2776,7 +2776,7 @@ class CCentJST_LinFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentLax_Flow : public CNumerics { private: @@ -2828,7 +2828,7 @@ class CCentLax_Flow : public CNumerics { * \brief Class for computing the Lax-Friedrich centered scheme (artificial compressibility). * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentLaxArtComp_Flow : public CNumerics { private: @@ -2880,7 +2880,7 @@ class CCentLaxArtComp_Flow : public CNumerics { * \brief Class for computing the Lax-Friedrich adjoint centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentLax_AdjFlow : public CNumerics { private: @@ -2930,7 +2930,7 @@ class CCentLax_AdjFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich adjoint centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentLaxArtComp_AdjFlow : public CNumerics { private: @@ -2980,7 +2980,7 @@ class CCentLaxArtComp_AdjFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich linearized centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CCentLax_LinFlow : public CNumerics { private: @@ -3030,7 +3030,7 @@ class CCentLax_LinFlow : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_Flow : public CNumerics { private: @@ -3122,7 +3122,7 @@ class CGeneralAvgGrad_Flow : public CNumerics { * \brief Class for computing viscous term using an average of gradients. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradArtComp_Flow : public CNumerics { private: @@ -3161,7 +3161,7 @@ class CAvgGradArtComp_Flow : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_TurbSA : public CNumerics { private: @@ -3206,7 +3206,7 @@ class CAvgGrad_TurbSA : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_TurbSA_Neg : public CNumerics { private: @@ -3252,7 +3252,7 @@ class CAvgGrad_TurbSA_Neg : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_TurbML : public CNumerics { private: @@ -3296,7 +3296,7 @@ class CAvgGrad_TurbML : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_TransLM : public CNumerics { private: @@ -3339,7 +3339,7 @@ class CAvgGrad_TransLM : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_AdjFlow : public CNumerics { private: @@ -3381,7 +3381,7 @@ class CAvgGrad_AdjFlow : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradArtComp_AdjFlow : public CNumerics { private: @@ -3421,7 +3421,7 @@ class CAvgGradArtComp_AdjFlow : public CNumerics { * \brief Class for computing viscous term using the average of gradients with a correction. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_Flow : public CNumerics { private: @@ -3516,7 +3516,7 @@ class CGeneralAvgGradCorrected_Flow : public CNumerics { * \brief Class for computing viscous term using an average of gradients with correction (artificial compresibility). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrectedArtComp_Flow : public CNumerics { private: @@ -3558,7 +3558,7 @@ class CAvgGradCorrectedArtComp_Flow : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_TurbSA : public CNumerics { private: @@ -3599,7 +3599,7 @@ class CAvgGradCorrected_TurbSA : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { private: @@ -3644,7 +3644,7 @@ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_TurbML : public CNumerics { private: @@ -3685,7 +3685,7 @@ class CAvgGradCorrected_TurbML : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_TransLM : public CNumerics { private: @@ -3725,7 +3725,7 @@ class CAvgGradCorrected_TransLM : public CNumerics { * \brief Class for computing viscous term using average of gradient with correction (Menter SST turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_TurbSST : public CNumerics { private: @@ -3787,7 +3787,7 @@ class CAvgGrad_TurbSST : public CNumerics { * \brief Class for computing viscous term using average of gradient with correction (Menter SST turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_TurbSST : public CNumerics { private: @@ -3849,7 +3849,7 @@ class CAvgGradCorrected_TurbSST : public CNumerics { * \brief Class for computing the adjoint viscous terms, including correction. * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_AdjFlow : public CNumerics { private: @@ -3897,7 +3897,7 @@ class CAvgGradCorrected_AdjFlow : public CNumerics { * \brief Class for computing the adjoint viscous terms, including correction. * \ingroup ViscDiscr * \author F.Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { private: @@ -3943,7 +3943,7 @@ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { * \brief Class for adjoint turbulent using average of gradients with a correction. * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_AdjTurb : public CNumerics { private: @@ -3995,7 +3995,7 @@ class CAvgGradCorrected_AdjTurb : public CNumerics { * \brief Class for adjoint turbulent using average of gradients with a correction. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_AdjTurb : public CNumerics { private: @@ -4047,7 +4047,7 @@ class CAvgGrad_AdjTurb : public CNumerics { * \brief Class for computing the stiffness matrix of the Galerkin method. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CGalerkin_Flow : public CNumerics { public: @@ -4078,7 +4078,7 @@ class CGalerkin_Flow : public CNumerics { * \brief Class for computing the stiffness matrix of the Galerkin method. * \ingroup ViscDiscr * \author F. Palacios, R.Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CGalerkin_FEA : public CNumerics { @@ -4138,7 +4138,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - su2double ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); + su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4242,7 +4242,7 @@ class CGalerkin_FEA : public CNumerics { * \brief Dummy class. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceNothing : public CNumerics { public: @@ -4266,7 +4266,7 @@ class CSourceNothing : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_TurbSA : public CNumerics { private: @@ -4361,7 +4361,7 @@ class CSourcePieceWise_TurbSA : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_TurbSA_Neg : public CNumerics { private: @@ -4456,7 +4456,7 @@ class CSourcePieceWise_TurbSA_Neg : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_TurbML : public CNumerics { private: @@ -4571,7 +4571,7 @@ class CSourcePieceWise_TurbML : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_TransLM : public CNumerics { private: @@ -4636,7 +4636,7 @@ class CSourcePieceWise_TransLM : public CNumerics { * \brief Class for integrating the source terms of the Menter SST turbulence model equations. * \ingroup SourceDiscr * \author A. Campos. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_TurbSST : public CNumerics { private: @@ -4710,7 +4710,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \brief Class for the source term integration of the gravity force. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceGravity : public CNumerics { su2double Froude; @@ -4743,7 +4743,7 @@ class CSourceGravity : public CNumerics { * \brief Class for source term integration in adjoint problem. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceViscous_AdjFlow : public CNumerics { private: @@ -4779,7 +4779,7 @@ class CSourceViscous_AdjFlow : public CNumerics { * \brief Class for source term integration of the adjoint turbulent equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_AdjTurb : public CNumerics { private: @@ -4815,7 +4815,7 @@ class CSourcePieceWise_AdjTurb : public CNumerics { * \brief Class for source term integration of the adjoint level set equation. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourcePieceWise_AdjLevelSet : public CNumerics { public: @@ -4846,7 +4846,7 @@ class CSourcePieceWise_AdjLevelSet : public CNumerics { * \brief Class for source term integration in adjoint problem using a conservative scheme. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceConservative_AdjFlow : public CNumerics { private: @@ -4881,7 +4881,7 @@ class CSourceConservative_AdjFlow : public CNumerics { * \brief Class for source term integration in adjoint turbulent problem using a conservative scheme. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceConservative_AdjTurb : public CNumerics { public: @@ -4914,7 +4914,7 @@ class CSourceConservative_AdjTurb : public CNumerics { * \brief Class for a rotating frame source term. * \ingroup SourceDiscr * \author F. Palacios, T. Economon. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceRotatingFrame_Flow : public CNumerics { public: @@ -4946,7 +4946,7 @@ class CSourceRotatingFrame_Flow : public CNumerics { * \brief Source term class for rotating frame adjoint. * \ingroup SourceDiscr * \author T. Economon. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceRotatingFrame_AdjFlow : public CNumerics { public: @@ -4978,7 +4978,7 @@ class CSourceRotatingFrame_AdjFlow : public CNumerics { * \brief Class for source term for solving axisymmetric problems. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceAxisymmetric_Flow : public CNumerics { public: @@ -5010,7 +5010,7 @@ class CSourceAxisymmetric_Flow : public CNumerics { * \brief Class for source term for solving axisymmetric problems. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceAxisymmetric_AdjFlow : public CNumerics { public: @@ -5041,7 +5041,7 @@ class CSourceAxisymmetric_AdjFlow : public CNumerics { * \brief Class for a source term due to a wind gust. * \ingroup SourceDiscr * \author S. Padrón - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSourceWindGust : public CNumerics { public: @@ -5073,7 +5073,7 @@ class CSourceWindGust : public CNumerics { * \brief Dummy class. * \ingroup SourceDiscr * \author A. Lonkar. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSource_Template : public CNumerics { public: @@ -5107,7 +5107,7 @@ class CSource_Template : public CNumerics { * \brief Class for setting up new method for spatial discretization of convective terms in flow Equations * \ingroup ConvDiscr * \author A. Lonkar - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CConvective_Template : public CNumerics { private: @@ -5155,7 +5155,7 @@ class CConvective_Template : public CNumerics { * \brief Class for computing viscous term using average of gradients. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CViscous_Template : public CNumerics { private: @@ -5240,7 +5240,7 @@ class CUpwRoe_TNE2 : public CNumerics { * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CUpwMSW_TNE2 : public CNumerics { private: @@ -5433,7 +5433,7 @@ class CCentLax_TNE2 : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author S. R. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_TNE2 : public CNumerics { private: @@ -5488,7 +5488,7 @@ class CAvgGrad_TNE2 : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author S. R. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGradCorrected_TNE2 : public CNumerics { private: @@ -5818,7 +5818,7 @@ class CCentLax_AdjTNE2 : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAvgGrad_AdjTNE2 : public CNumerics { private: diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 24990ec2c01..b73e59b478c 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -2,7 +2,7 @@ * \file numerics_structure.inl * \brief In-Line subroutines of the numerics_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/output_structure.hpp b/SU2_CFD/include/output_structure.hpp index d05f56ea433..c5bb2007eb6 100644 --- a/SU2_CFD/include/output_structure.hpp +++ b/SU2_CFD/include/output_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for generating the file outputs. * The subroutines and functions are in the output_structure.cpp file. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -55,7 +55,7 @@ using namespace std; * \brief Class for writing the flow, adjoint and linearized solver * solution (including the history solution, and parallel stuff). * \author F. Palacios, T. Economon, M. Colonno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class COutput { diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 8a433418bb9..938f20e1884 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -5,7 +5,7 @@ * solution_direct.cpp, solution_adjoint.cpp, and * solution_linearized.cpp files. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -61,7 +61,7 @@ using namespace std; * \brief Main class for defining the PDE solution, it requires * a child class for each particular solver (Euler, Navier-Stokes, etc.) * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CSolver { protected: @@ -2400,7 +2400,7 @@ class CSolver { * \class CBaselineSolver * \brief Main class for defining a baseline solution from a restart file (for output). * \author F. Palacios, T. Economon. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CBaselineSolver : public CSolver { public: @@ -2445,7 +2445,7 @@ class CBaselineSolver : public CSolver { * \brief Main class for defining the Euler's flow solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CEulerSolver : public CSolver { protected: @@ -3779,7 +3779,7 @@ class CEulerSolver : public CSolver { * \brief Main class for defining the Navier-Stokes flow solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CNSSolver : public CEulerSolver { private: @@ -4043,7 +4043,7 @@ class CNSSolver : public CEulerSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbSolver : public CSolver { protected: @@ -4172,7 +4172,7 @@ class CTurbSolver : public CSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbSASolver: public CTurbSolver { @@ -4375,7 +4375,7 @@ class CTurbSASolver: public CTurbSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author B. Tracey. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbMLSolver: public CTurbSolver { @@ -4521,7 +4521,7 @@ class CTurbMLSolver: public CTurbSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Aranake. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTransLMSolver: public CTurbSolver { @@ -4695,7 +4695,7 @@ class CTransLMSolver: public CTurbSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Campos, F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbSSTSolver: public CTurbSolver { @@ -4838,7 +4838,7 @@ class CTurbSSTSolver: public CTurbSolver { * \brief Main class for defining the Euler's adjoint flow solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjEulerSolver : public CSolver { protected: @@ -5316,7 +5316,7 @@ class CAdjEulerSolver : public CSolver { * \brief Main class for defining the Navier-Stokes' adjoint flow solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjNSSolver : public CAdjEulerSolver { public: @@ -5423,7 +5423,7 @@ class CAdjNSSolver : public CAdjEulerSolver { * \brief Main class for defining the adjoint turbulence model solver. * \ingroup Turbulence_Model * \author F. Palacios, A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjTurbSolver : public CSolver { private: @@ -5569,7 +5569,7 @@ class CAdjTurbSolver : public CSolver { * \brief Main class for defining the linearized Euler solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CLinEulerSolver : public CSolver { private: @@ -5691,7 +5691,7 @@ class CLinEulerSolver : public CSolver { /*! \class CPoissonSolver * \brief Main class for defining the poisson potential solver. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * \date May 3, 2010. */ class CPoissonSolver : public CSolver { @@ -5821,7 +5821,7 @@ class CPoissonSolver : public CSolver { /*! \class CWaveSolver * \brief Main class for defining the wave solver. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * \date May 3, 2010. */ class CWaveSolver : public CSolver { @@ -5976,7 +5976,7 @@ class CWaveSolver : public CSolver { /*! \class CHeatSolver * \brief Main class for defining the heat solver. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * \date May 3, 2010. */ class CHeatSolver : public CSolver { @@ -6095,7 +6095,7 @@ class CHeatSolver : public CSolver { /*! \class CFEASolver * \brief Main class for defining the FEA solver. * \author F. Palacios, R. Sanchez. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * \date May 3, 2010. */ class CFEASolver : public CSolver { @@ -6492,7 +6492,7 @@ class CFEASolver : public CSolver { * \brief Main class for defining the level set solver. * \ingroup LevelSet_Model * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjLevelSetSolver : public CSolver { protected: @@ -6676,7 +6676,7 @@ class CAdjLevelSetSolver : public CSolver { * \brief Main class for defining the template model solver. * \ingroup Template_Flow_Equation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTemplateSolver : public CSolver { private: @@ -8157,7 +8157,7 @@ class CAdjTNE2NSSolver : public CAdjTNE2EulerSolver { * \brief Main class for defining the discrete adjoint solver. * \ingroup Discrete_Adjoint * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CDiscAdjSolver : public CSolver { private: diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 5633b2d5865..085a7ef9725 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -2,7 +2,7 @@ * \file solver_structure.inl * \brief In-Line subroutines of the solver_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/transport_model.hpp b/SU2_CFD/include/transport_model.hpp index 4511147837c..47ad9dece09 100644 --- a/SU2_CFD/include/transport_model.hpp +++ b/SU2_CFD/include/transport_model.hpp @@ -2,7 +2,7 @@ * \file transport_model.hpp * \brief Headers of the main transport properties subroutines of the SU2 solvers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/transport_model.inl b/SU2_CFD/include/transport_model.inl index 8e5b0a243f6..e0e604b8758 100644 --- a/SU2_CFD/include/transport_model.inl +++ b/SU2_CFD/include/transport_model.inl @@ -2,7 +2,7 @@ * \file transport_model.inl * \brief In-Line subroutines of the solver_structure.hpp file. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 94fde5c3e85..ca28827743a 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -4,7 +4,7 @@ * each kind of governing equation (direct, adjoint and linearized). * The subroutines and functions are in the variable_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -49,7 +49,7 @@ using namespace std; * \class CVariable * \brief Main class for defining the variables. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CVariable { protected: @@ -2067,7 +2067,7 @@ class CVariable { * \class CBaselineVariable * \brief Main class for defining the variables of a baseline solution from a restart file (for output). * \author F. Palacios, T. Economon. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CBaselineVariable : public CVariable { public: @@ -2097,7 +2097,7 @@ class CBaselineVariable : public CVariable { * \brief Main class for defining the variables of the potential solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CPotentialVariable : public CVariable { su2double *Charge_Density; @@ -2141,7 +2141,7 @@ class CPotentialVariable : public CVariable { * \brief Main class for defining the variables of the wave equation solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CWaveVariable : public CVariable { protected: @@ -2187,7 +2187,7 @@ class CWaveVariable : public CVariable { * \brief Main class for defining the variables of the Heat equation solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CHeatVariable : public CVariable { protected: @@ -2233,7 +2233,7 @@ class CHeatVariable : public CVariable { * \brief Main class for defining the variables of the FEA equation solver. * \ingroup Structural Finite Element Analysis Variables * \author F. Palacios, R. Sanchez. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CFEAVariable : public CVariable { protected: @@ -2592,7 +2592,7 @@ class CFEABoundVariable : public CVariable { * \brief Main class for defining the variables of the Euler's solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CEulerVariable : public CVariable { protected: @@ -3076,7 +3076,7 @@ class CEulerVariable : public CVariable { * \brief Main class for defining the variables of the Navier-Stokes' solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CNSVariable : public CEulerVariable { private: @@ -3277,7 +3277,7 @@ class CNSVariable : public CEulerVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbVariable : public CVariable { protected: @@ -3321,7 +3321,7 @@ class CTurbVariable : public CVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbSAVariable : public CTurbVariable { @@ -3368,7 +3368,7 @@ class CTurbSAVariable : public CTurbVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbMLVariable : public CTurbVariable { @@ -3414,7 +3414,7 @@ class CTurbMLVariable : public CTurbVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTransLMVariable : public CTurbVariable { @@ -3466,7 +3466,7 @@ class CTransLMVariable : public CTurbVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTurbSSTVariable : public CTurbVariable { @@ -3529,7 +3529,7 @@ class CTurbSSTVariable : public CTurbVariable { * \brief Main class for defining the variables of the adjoint Euler solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjEulerVariable : public CVariable { protected: @@ -3651,7 +3651,7 @@ class CAdjEulerVariable : public CVariable { * \brief Main class for defining the variables of the adjoint Navier-Stokes solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjNSVariable : public CAdjEulerVariable { private: @@ -3723,7 +3723,7 @@ class CAdjNSVariable : public CAdjEulerVariable { * \brief Main class for defining the variables of the adjoint turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjTurbVariable : public CVariable { protected: @@ -3773,7 +3773,7 @@ class CAdjTurbVariable : public CVariable { * \brief Main class for defining the variables of the linearized potential equation. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CLinPotentialVariable : public CVariable { public: @@ -3784,7 +3784,7 @@ class CLinPotentialVariable : public CVariable { * \brief Main class for defining the variables of the linearized Euler's equations. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CLinEulerVariable : public CVariable { private: @@ -3861,7 +3861,7 @@ class CLinEulerVariable : public CVariable { * \brief Main class for defining the variables of the linearized Navier-Stokes' equations. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CLinNSVariable : public CLinEulerVariable { public: @@ -3872,7 +3872,7 @@ class CLinNSVariable : public CLinEulerVariable { * \brief Main class for defining the variables of the Level Set. * \ingroup LevelSet_Model * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CAdjLevelSetVariable : public CVariable { public: @@ -4686,7 +4686,7 @@ class CAdjTNE2NSVariable : public CAdjTNE2EulerVariable { * \brief Main class for defining the variables of the potential solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTemplateVariable : public CVariable { public: @@ -4716,7 +4716,7 @@ class CTemplateVariable : public CVariable { * \brief Main class for defining the variables of the adjoint solver. * \ingroup Discrete_Adjoint * \author T. Albring. - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CDiscAdjVariable : public CVariable { private: diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index b302c7d98f2..910f4f78d33 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -2,7 +2,7 @@ * \file variable_structure.inl * \brief In-Line subroutines of the variable_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index b241c18f43f..07da66c631e 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_CFD # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 63a86ba73e8..a549dd489dc 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_CFD # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index d57f9f8eb6a..3add77bae87 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -2,7 +2,7 @@ * \file SU2_CFD.cpp * \brief Main file of the Computational Fluid Dynamics code * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -120,7 +120,6 @@ int main(int argc, char *argv[]) { config_container[iZone] = new CConfig(config_file_name, SU2_CFD, iZone, nZone, nDim, VERB_HIGH); - /*--- Definition of the geometry class to store the primal grid in the partitioning process. ---*/ @@ -461,6 +460,7 @@ int main(int argc, char *argv[]) { CConfig *runtime = NULL; strcpy(runtime_file_name, "runtime.dat"); runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); + runtime->SetExtIter(ExtIter); /*--- Update the convergence history file (serial and parallel computations). ---*/ diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 15de99a5dab..b322761a854 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -2,7 +2,7 @@ * \file definition_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -580,7 +580,6 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, nPrimVar_Adj_TNE2 = 0, nPrimVarGrad_Adj_TNE2 = 0, nVar_Poisson = 0, - nVar_FEA = 0, nVar_Wave = 0, nVar_Heat = 0, nVar_Lin_Flow = 0; @@ -666,7 +665,6 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, if (poisson) nVar_Poisson = solver_container[MESH_0][POISSON_SOL]->GetnVar(); if (wave) nVar_Wave = solver_container[MESH_0][WAVE_SOL]->GetnVar(); - if (fea) nVar_FEA = solver_container[MESH_0][FEA_SOL]->GetnVar(); if (heat) nVar_Heat = solver_container[MESH_0][HEAT_SOL]->GetnVar(); /*--- Number of variables for adjoint problem ---*/ diff --git a/SU2_CFD/src/fluid_model.cpp b/SU2_CFD/src/fluid_model.cpp index 8e20efed609..8144af4a5e3 100644 --- a/SU2_CFD/src/fluid_model.cpp +++ b/SU2_CFD/src/fluid_model.cpp @@ -2,7 +2,7 @@ * fluid_model.cpp * \brief Source of the main thermo-physical subroutines of the SU2 solvers. * \author S.Vitale, M.Pini, G.Gori, A.Guardone, P.Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model_pig.cpp b/SU2_CFD/src/fluid_model_pig.cpp index c618a09b43c..63a49cd5c60 100644 --- a/SU2_CFD/src/fluid_model_pig.cpp +++ b/SU2_CFD/src/fluid_model_pig.cpp @@ -2,7 +2,7 @@ * fluid_model_pig.cpp * \brief Source of the ideal gas model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model_ppr.cpp b/SU2_CFD/src/fluid_model_ppr.cpp index 9147ef26b1c..d6a7dba7fc5 100644 --- a/SU2_CFD/src/fluid_model_ppr.cpp +++ b/SU2_CFD/src/fluid_model_ppr.cpp @@ -2,7 +2,7 @@ * fluid_model_ppr.cpp * \brief Source of the Peng-Robinson model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model_pvdw.cpp b/SU2_CFD/src/fluid_model_pvdw.cpp index 6e79fe31d79..9c6f28f71cf 100644 --- a/SU2_CFD/src/fluid_model_pvdw.cpp +++ b/SU2_CFD/src/fluid_model_pvdw.cpp @@ -2,7 +2,7 @@ * fluid_model_pvdw.cpp * \brief Source of the Polytropic Van der Waals model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 62259c24d6f..0a6111264b5 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -2,7 +2,7 @@ * \file integration_structure.cpp * \brief This subroutine includes the space and time integration structure * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -596,7 +596,6 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * for (iPoint=0; iPoint < nPoint; iPoint++){ - deltaU = 0.0; deltaURad = 0.0; dispPred = fea_solver->node[iPoint]->GetSolution_Pred(); diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 7bb1b7ab77c..1432262cb01 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -2,7 +2,7 @@ * \file integration_time.cpp * \brief Time dependent numerical methods * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index c97f3b9e430..32785b31a79 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -2,7 +2,7 @@ * \file iteration_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_adjoint_levelset.cpp b/SU2_CFD/src/numerics_adjoint_levelset.cpp index 4819f6918c1..8a78c3a5979 100644 --- a/SU2_CFD/src/numerics_adjoint_levelset.cpp +++ b/SU2_CFD/src/numerics_adjoint_levelset.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_levelset.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_adjoint_mean.cpp b/SU2_CFD/src/numerics_adjoint_mean.cpp index daf852578e7..159a18f2d9e 100644 --- a/SU2_CFD/src/numerics_adjoint_mean.cpp +++ b/SU2_CFD/src/numerics_adjoint_mean.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_mean.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -1184,8 +1184,9 @@ void CAvgGrad_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { unsigned short iDim, jDim; - su2double sq_vel_i, Energy_i, ViscDens_i, XiDens_i, - sq_vel_j, Energy_j, ViscDens_j, XiDens_j, dist_ij_2, dPhiE_dn; + su2double sq_vel_i, ViscDens_i, XiDens_i; + su2double sq_vel_j, ViscDens_j, XiDens_j; + su2double dist_ij_2, dPhiE_dn; su2double Prandtl_Lam = config->GetPrandtl_Lam(); su2double Prandtl_Turb = config->GetPrandtl_Turb(); @@ -1200,7 +1201,6 @@ void CAvgGrad_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val Pressure_i = V_i[nDim+1]; Density_i = V_i[nDim+2]; Enthalpy_i = V_i[nDim+3]; - Energy_i = Enthalpy_i - Pressure_i/Density_i; SoundSpeed_i = sqrt(fabs(Pressure_i*Gamma/Density_i)); /*--- Laminar and Eddy viscosity ---*/ @@ -1221,7 +1221,6 @@ void CAvgGrad_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val Pressure_j = V_j[nDim+1]; Density_j = V_j[nDim+2]; Enthalpy_j = V_j[nDim+3]; - Energy_j = Enthalpy_j - Pressure_j/Density_j; SoundSpeed_j = sqrt(fabs(Pressure_j*Gamma/Density_j)); /*--- Laminar and Eddy viscosity ---*/ @@ -1307,16 +1306,21 @@ CAvgGradCorrected_AdjFlow::~CAvgGradCorrected_AdjFlow(void) { } -void CAvgGradCorrected_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, - su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config) { +void CAvgGradCorrected_AdjFlow::ComputeResidual(su2double *val_residual_i, + su2double *val_residual_j, + su2double **val_Jacobian_ii, + su2double **val_Jacobian_ij, + su2double **val_Jacobian_ji, + su2double **val_Jacobian_jj, + CConfig *config) { unsigned short iVar, iDim, jDim; - su2double Density_i, sq_vel_i, Energy_i, SoundSpeed_i, Pressure_i, ViscDens_i, XiDens_i, - Density_j, sq_vel_j, Energy_j, SoundSpeed_j, Pressure_j, ViscDens_j, XiDens_j, dist_ij_2, dPhiE_dn; - - su2double Prandtl_Lam = config->GetPrandtl_Lam(); - su2double Prandtl_Turb = config->GetPrandtl_Turb(); + su2double Density_i, sq_vel_i, Pressure_i, ViscDens_i, XiDens_i; + su2double Density_j, sq_vel_j, Pressure_j, ViscDens_j, XiDens_j; + su2double dist_ij_2, dPhiE_dn; + su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Prandtl_Turb = config->GetPrandtl_Turb(); /*--- States in point i ---*/ @@ -1326,18 +1330,17 @@ void CAvgGradCorrected_AdjFlow::ComputeResidual(su2double *val_residual_i, su2do sq_vel_i += 0.5*Velocity_i[iDim]*Velocity_i[iDim]; } Pressure_i = V_i[nDim+1]; - Density_i = V_i[nDim+2]; + Density_i = V_i[nDim+2]; Enthalpy_i = V_i[nDim+3]; - Energy_i = Enthalpy_i - Pressure_i/Density_i; - SoundSpeed_i = sqrt(fabs(Pressure_i*Gamma/Density_i)); /*--- Laminar and Eddy viscosity ---*/ Laminar_Viscosity_i = V_i[nDim+5]; - Eddy_Viscosity_i = V_i[nDim+6]; + Eddy_Viscosity_i = V_i[nDim+6]; ViscDens_i = (Laminar_Viscosity_i + Eddy_Viscosity_i) / Density_i; - XiDens_i = Gamma*(Laminar_Viscosity_i/Prandtl_Lam + Eddy_Viscosity_i/Prandtl_Turb) / Density_i; + XiDens_i = Gamma*(Laminar_Viscosity_i/Prandtl_Lam + + Eddy_Viscosity_i/Prandtl_Turb) / Density_i; /*--- States in point j ---*/ @@ -1347,18 +1350,17 @@ void CAvgGradCorrected_AdjFlow::ComputeResidual(su2double *val_residual_i, su2do sq_vel_j += 0.5*Velocity_j[iDim]*Velocity_j[iDim]; } Pressure_j = V_j[nDim+1]; - Density_j = V_j[nDim+2]; + Density_j = V_j[nDim+2]; Enthalpy_j = V_j[nDim+3]; - Energy_j = Enthalpy_j - Pressure_j/Density_j; - SoundSpeed_j = sqrt(fabs(Pressure_j*Gamma/Density_j)); /*--- Laminar and Eddy viscosity ---*/ Laminar_Viscosity_j = V_j[nDim+5]; - Eddy_Viscosity_j = V_j[nDim+6]; + Eddy_Viscosity_j = V_j[nDim+6]; ViscDens_j = (Laminar_Viscosity_j + Eddy_Viscosity_j) / Density_j; - XiDens_j = Gamma*(Laminar_Viscosity_j/Prandtl_Lam + Eddy_Viscosity_j/Prandtl_Turb) / Density_j; + XiDens_j = Gamma*(Laminar_Viscosity_j/Prandtl_Lam + + Eddy_Viscosity_j/Prandtl_Turb) / Density_j; /*--- Compute vector going from iPoint to jPoint ---*/ diff --git a/SU2_CFD/src/numerics_adjoint_tne2.cpp b/SU2_CFD/src/numerics_adjoint_tne2.cpp index 5a75bb5a8cc..ce98f080c24 100644 --- a/SU2_CFD/src/numerics_adjoint_tne2.cpp +++ b/SU2_CFD/src/numerics_adjoint_tne2.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_tne2.cpp * \brief This file contains all the convective term discretization. * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_adjoint_turbulent.cpp b/SU2_CFD/src/numerics_adjoint_turbulent.cpp index add602dbfc9..fc3b1dcca1a 100644 --- a/SU2_CFD/src/numerics_adjoint_turbulent.cpp +++ b/SU2_CFD/src/numerics_adjoint_turbulent.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_turbulent.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, A. Bueno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index 65da3d475af..752c6ed26da 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_elasticity.cpp * \brief This file contains the FEM discretization for structural problems. * \author F. Palacios, R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -32,11 +32,11 @@ CGalerkin_FEA::CGalerkin_FEA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { - E = config->GetElasticyMod(); - Nu = config->GetPoissonRatio(); - Rho_s = config->GetMaterialDensity(); - Mu = E / (2.0*(1.0 + Nu)); - Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); + E = config->GetElasticyMod(); + Nu = config->GetPoissonRatio(); + Rho_s = config->GetMaterialDensity(); + Mu = E / (2.0*(1.0 + Nu)); + Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); } @@ -44,110 +44,116 @@ CGalerkin_FEA::~CGalerkin_FEA(void) { } void CGalerkin_FEA::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]) { - - if (nDim == 2){ - - su2double a[3], Length_Elem, GaussPoint[2]; - unsigned short iDim, iGauss, nGP=2; - su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; - } - - PX_1=tn_e[0]; - PY_1=tn_e[1]; - PX_2=tn_e[2]; - PY_2=tn_e[3]; - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Jacobian = Length_Elem/2; - Weight = 1.0; - - GaussPoint[0] = -0.577350269189626; - GaussPoint[1] = 0.577350269189626; - - for (iGauss=0; iGauss < nGP; iGauss++){ - - N1 = 1 - GaussPoint[iGauss]; - N2 = 1 + GaussPoint[iGauss]; - - Fnodal[0] += 0.25*Jacobian*Weight*N1*(N1*PX_1+N2*PX_2); - Fnodal[1] += 0.25*Jacobian*Weight*N1*(N1*PY_1+N2*PY_2); - Fnodal[2] += 0.25*Jacobian*Weight*N2*(N1*PX_1+N2*PX_2); - Fnodal[3] += 0.25*Jacobian*Weight*N2*(N1*PY_1+N2*PY_2); - - } - - } - - else if (nDim == 3){ - cout << "Three-dimensional case has not been implemented yet" << endl; - } - + + if (nDim == 2){ + + su2double a[3], Length_Elem, GaussPoint[2]; + unsigned short iDim, iGauss, nGP=2; + su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; + + for (iDim = 0; iDim < nDim; iDim++) { + a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; + } + + PX_1=tn_e[0]; + PY_1=tn_e[1]; + PX_2=tn_e[2]; + PY_2=tn_e[3]; + + Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + Jacobian = Length_Elem/2; + Weight = 1.0; + + GaussPoint[0] = -0.577350269189626; + GaussPoint[1] = 0.577350269189626; + + for (iGauss=0; iGauss < nGP; iGauss++){ + + N1 = 1 - GaussPoint[iGauss]; + N2 = 1 + GaussPoint[iGauss]; + + Fnodal[0] += 0.25*Jacobian*Weight*N1*(N1*PX_1+N2*PX_2); + Fnodal[1] += 0.25*Jacobian*Weight*N1*(N1*PY_1+N2*PY_2); + Fnodal[2] += 0.25*Jacobian*Weight*N2*(N1*PX_1+N2*PX_2); + Fnodal[3] += 0.25*Jacobian*Weight*N2*(N1*PY_1+N2*PY_2); + + } + + } + + else if (nDim == 3){ + cout << "Three-dimensional case has not been implemented yet" << endl; + } + } void CGalerkin_FEA::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { - - su2double a[3], Length_Elem, Normal_Elem[2], Normal_Elem_Unit[2], GaussPoint[2]; - su2double TauElem_0[3], TauElem_1[3]; - su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; - unsigned short iDim, jDim, iGauss, nGP=2; - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; - } - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); - - Normal_Elem_Unit[0] = Normal_Elem[0]/Length_Elem; - Normal_Elem_Unit[1] = Normal_Elem[1]/Length_Elem; - - GaussPoint[0] = -0.577350269189626; - GaussPoint[1] = 0.577350269189626; - - Weight = 1.0; - Jacobian = Length_Elem/2; - - for (iDim = 0; iDim < nDim; iDim++) { - TauElem_0[iDim] = 0.0; - TauElem_1[iDim] = 0.0; - for (jDim = 0; jDim < nDim; jDim++) - TauElem_0[iDim] += Tau_0[iDim][jDim]*Normal_Elem_Unit[jDim]; - TauElem_1[iDim] += Tau_1[iDim][jDim]*Normal_Elem_Unit[jDim]; + + if (nDim == 2) { + + su2double a[3] = {0.0,0.0,0.0}, Length_Elem; + su2double Normal_Elem[2] = {0.0,0.0}, Normal_Elem_Unit[2] = {0.0,0.0}; + su2double GaussPoint[2] = {0.0,0.0}; + su2double TauElem_0[3] = {0.0,0.0,0.0}, TauElem_1[3] = {0.0,0.0,0.0}; + su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; + unsigned short iDim, jDim, iGauss, nGP=2; + + for (iDim = 0; iDim < nDim; iDim++) { + a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; + } + + Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + + Normal_Elem[0] = a[1]; + Normal_Elem[1] = -(a[0]); + + Normal_Elem_Unit[0] = Normal_Elem[0]/Length_Elem; + Normal_Elem_Unit[1] = Normal_Elem[1]/Length_Elem; + + GaussPoint[0] = -0.577350269189626; + GaussPoint[1] = 0.577350269189626; + + Weight = 1.0; + Jacobian = Length_Elem/2; + + for (iDim = 0; iDim < nDim; iDim++) { + TauElem_0[iDim] = 0.0; + TauElem_1[iDim] = 0.0; + for (jDim = 0; jDim < nDim; jDim++) { + TauElem_0[iDim] += Tau_0[iDim][jDim]*Normal_Elem_Unit[jDim]; + TauElem_1[iDim] += Tau_1[iDim][jDim]*Normal_Elem_Unit[jDim]; } - - PX_1=TauElem_0[0]; - PY_1=TauElem_0[1]; - PX_2=TauElem_1[0]; - PY_2=TauElem_1[1]; - - FviscNodal[0]=0.0; - FviscNodal[1]=0.0; - FviscNodal[2]=0.0; - FviscNodal[3]=0.0; - - for (iGauss=0; iGauss < nGP; iGauss++){ - - N1 = 1 - GaussPoint[iGauss]; - N2 = 1 + GaussPoint[iGauss]; - - FviscNodal[0] += 0.25*Jacobian*Weight*N1*(N1*PX_1+N2*PX_2); - FviscNodal[1] += 0.25*Jacobian*Weight*N1*(N1*PY_1+N2*PY_2); - - FviscNodal[2] += 0.25*Jacobian*Weight*N2*(N1*PX_1+N2*PX_2); - FviscNodal[3] += 0.25*Jacobian*Weight*N2*(N1*PY_1+N2*PY_2); - - } - - + } + + PX_1=TauElem_0[0]; + PY_1=TauElem_0[1]; + PX_2=TauElem_1[0]; + PY_2=TauElem_1[1]; + + FviscNodal[0]=0.0; + FviscNodal[1]=0.0; + FviscNodal[2]=0.0; + FviscNodal[3]=0.0; + + for (iGauss=0; iGauss < nGP; iGauss++){ + + N1 = 1 - GaussPoint[iGauss]; + N2 = 1 + GaussPoint[iGauss]; + + FviscNodal[0] += 0.25*Jacobian*Weight*N1*(N1*PX_1+N2*PX_2); + FviscNodal[1] += 0.25*Jacobian*Weight*N1*(N1*PY_1+N2*PY_2); + + FviscNodal[2] += 0.25*Jacobian*Weight*N2*(N1*PX_1+N2*PX_2); + FviscNodal[3] += 0.25*Jacobian*Weight*N2*(N1*PY_1+N2*PY_2); + + } + + } else if (nDim == 3){ + cout << "Three-dimensional case has not been implemented yet" << endl; + } + } - - su2double CGalerkin_FEA::ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; @@ -155,17 +161,17 @@ su2double CGalerkin_FEA::ShapeFunc_Triangle(su2double Xi, su2double Eta, su2doub su2double xs[3][3], ad[3][3]; /*--- Shape functions ---*/ - - DShapeFunction[0][3] = Xi; - DShapeFunction[1][3] = Eta; - DShapeFunction[2][3] = 1-Xi-Eta; + + DShapeFunction[0][3] = Xi; + DShapeFunction[1][3] = Eta; + DShapeFunction[2][3] = 1-Xi-Eta; /*--- dN/d xi, dN/d eta, dN/d mu ---*/ - - DShapeFunction[0][0] = 1.0; DShapeFunction[0][1] = 0.0; - DShapeFunction[1][0] = 0.0; DShapeFunction[1][1] = 1.0; - DShapeFunction[2][0] = -1.0; DShapeFunction[2][1] = -1.0; - + + DShapeFunction[0][0] = 1.0; DShapeFunction[0][1] = 0.0; + DShapeFunction[1][0] = 0.0; DShapeFunction[1][1] = 1.0; + DShapeFunction[2][0] = -1.0; DShapeFunction[2][1] = -1.0; + /*--- Jacobian transformation ---*/ for (i = 0; i < 2; i++) { @@ -209,7 +215,7 @@ su2double CGalerkin_FEA::ShapeFunc_Triangle(su2double Xi, su2double Eta, su2doub } -su2double CGalerkin_FEA::ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { +su2double CGalerkin_FEA::ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { int i, j, k; su2double c0, c1, xsj; @@ -509,8 +515,8 @@ su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Z int i, j, k; su2double c0, c1, c2, xsj; su2double xs[3][3], ad[3][3]; - - + + /*--- Shape functions ---*/ DShapeFunction[0][3] = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0-Zeta); @@ -521,9 +527,9 @@ su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Z DShapeFunction[5][3] = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0+Zeta); DShapeFunction[6][3] = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0+Zeta); DShapeFunction[7][3] = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0+Zeta); - + /*--- dN/d xi ---*/ - + DShapeFunction[0][0] = -0.125*(1.0-Eta)*(1.0-Zeta); DShapeFunction[1][0] = 0.125*(1.0-Eta)*(1.0-Zeta); DShapeFunction[2][0] = 0.125*(1.0+Eta)*(1.0-Zeta); @@ -532,9 +538,9 @@ su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Z DShapeFunction[5][0] = 0.125*(1.0-Eta)*(1.0+Zeta); DShapeFunction[6][0] = 0.125*(1.0+Eta)*(1.0+Zeta); DShapeFunction[7][0] = -0.125*(1.0+Eta)*(1.0+Zeta); - + /*--- dN/d eta ---*/ - + DShapeFunction[0][1] = -0.125*(1.0-Xi)*(1.0-Zeta); DShapeFunction[1][1] = -0.125*(1.0+Xi)*(1.0-Zeta); DShapeFunction[2][1] = 0.125*(1.0+Xi)*(1.0-Zeta); @@ -543,9 +549,9 @@ su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Z DShapeFunction[5][1] = -0.125*(1.0+Xi)*(1.0+Zeta); DShapeFunction[6][1] = 0.125*(1.0+Xi)*(1.0+Zeta); DShapeFunction[7][1] = 0.125*(1.0-Xi)*(1.0+Zeta); - + /*--- dN/d mu ---*/ - + DShapeFunction[0][2] = -0.125*(1.0-Xi)*(1.0-Eta); DShapeFunction[1][2] = -0.125*(1.0+Xi)*(1.0-Eta); DShapeFunction[2][2] = -0.125*(1.0+Xi)*(1.0+Eta); @@ -554,7 +560,7 @@ su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Z DShapeFunction[5][2] = 0.125*(1.0+Xi)*(1.0-Eta); DShapeFunction[6][2] = 0.125*(1.0+Xi)*(1.0+Eta); DShapeFunction[7][2] = 0.125*(1.0-Xi)*(1.0+Eta); - + /*--- Jacobian transformation ---*/ @@ -615,7 +621,7 @@ void CGalerkin_FEA::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; su2double Location[4][3], Weight[4]; unsigned short nVar = 2; - + for (iVar = 0; iVar < nNodes*nVar; iVar++) { for (jVar = 0; jVar < nNodes*nVar; jVar++) { StiffMatrix_Elem[iVar][jVar] = 0.0; @@ -629,7 +635,7 @@ void CGalerkin_FEA::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 } - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ + /*--- Quadrilateral. Nodes of numerical integration at 4 points (order 2). ---*/ if (nNodes == 4) { nGauss = 4; @@ -644,7 +650,7 @@ void CGalerkin_FEA::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Rectangle(Xi, Eta, CoordCorners, DShapeFunction); + if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); /*--- Compute the B Matrix ---*/ @@ -661,26 +667,26 @@ void CGalerkin_FEA::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double } if (form2d==0){ - - /*--- Compute the D Matrix (for plane stress and 2-D)---*/ - - D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); - + + /*--- Compute the D Matrix (for plane stress and 2-D)---*/ + + D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; + D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; + D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + } else if (form2d==1){ - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; - - + + /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ + + D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; + D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; + D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; + + } - - /*--- Compute the BT.D Matrix ---*/ + + /*--- Compute the BT.D Matrix ---*/ for (iVar = 0; iVar < nNodes*nVar; iVar++) { for (jVar = 0; jVar < 3; jVar++) { @@ -753,19 +759,19 @@ void CGalerkin_FEA::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double } /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ - + if (nNodes == 8) { - nGauss = 8; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Location[0][2] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Location[1][2] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Location[2][2] = -0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Location[3][2] = -0.577350269189626; Weight[3] = 1.0; - Location[4][0] = -0.577350269189626; Location[4][1] = -0.577350269189626; Location[4][2] = 0.577350269189626; Weight[4] = 1.0; - Location[5][0] = 0.577350269189626; Location[5][1] = -0.577350269189626; Location[5][2] = 0.577350269189626; Weight[5] = 1.0; - Location[6][0] = 0.577350269189626; Location[6][1] = 0.577350269189626; Location[6][2] = 0.577350269189626; Weight[6] = 1.0; - Location[7][0] = -0.577350269189626; Location[7][1] = 0.577350269189626; Location[7][2] = 0.577350269189626; Weight[7] = 1.0; + nGauss = 8; + Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Location[0][2] = -0.577350269189626; Weight[0] = 1.0; + Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Location[1][2] = -0.577350269189626; Weight[1] = 1.0; + Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Location[2][2] = -0.577350269189626; Weight[2] = 1.0; + Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Location[3][2] = -0.577350269189626; Weight[3] = 1.0; + Location[4][0] = -0.577350269189626; Location[4][1] = -0.577350269189626; Location[4][2] = 0.577350269189626; Weight[4] = 1.0; + Location[5][0] = 0.577350269189626; Location[5][1] = -0.577350269189626; Location[5][2] = 0.577350269189626; Weight[5] = 1.0; + Location[6][0] = 0.577350269189626; Location[6][1] = 0.577350269189626; Location[6][2] = 0.577350269189626; Weight[6] = 1.0; + Location[7][0] = -0.577350269189626; Location[7][1] = 0.577350269189626; Location[7][2] = 0.577350269189626; Weight[7] = 1.0; } - + for (iGauss = 0; iGauss < nGauss; iGauss++) { @@ -834,573 +840,574 @@ void CGalerkin_FEA::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - - su2double B_Matrix[3][8], D_Matrix[3][3], N_Matrix[2][8], Aux_Matrix[8][3]; - su2double Xi = 0.0, Eta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[4][3], Weight[4]; - unsigned short nVar = 2; - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - MassMatrix_Elem[iVar][jVar] = 0.0; - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 3) { - nGauss = 1; - Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 - } - - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ - - if (nNodes == 4) { - nGauss = 4; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; - } - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; - - if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Rectangle(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the N Matrix ---*/ - - for (iVar = 0; iVar < 2; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - N_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - N_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][3]; - N_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][3]; - } - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; - } - - - /*--- Compute the D Matrix (for plane stress and 2-D)---*/ - - D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < 3; jVar++) { - Aux_Matrix[iVar][jVar] = 0.0; - for (kVar = 0; kVar < 3; kVar++) - Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 3; kVar++) { - StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; - } - } - } - - /*--- Compute the NT.N Matrix (mass matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 2; kVar++) { - MassMatrix_Elem[iVar][jVar] += Weight[iGauss] * N_Matrix[kVar][iVar] * N_Matrix[kVar][jVar] * Det * Rho_s; - } - } - } - - - } + su2double B_Matrix[3][8], D_Matrix[3][3], N_Matrix[2][8], Aux_Matrix[8][3]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0; + unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; + su2double Location[4][3], Weight[4]; + unsigned short nVar = 2; + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < nNodes*nVar; jVar++) { + MassMatrix_Elem[iVar][jVar] = 0.0; + StiffMatrix_Elem[iVar][jVar] = 0.0; + } + } + + /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ + + if (nNodes == 3) { + nGauss = 1; + Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 + } + + /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ + + if (nNodes == 4) { + nGauss = 4; + Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; + Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; + Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; + Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; + } + + for (iGauss = 0; iGauss < nGauss; iGauss++) { + + Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; + + if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); + if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); + + /*--- Compute the N Matrix ---*/ + + for (iVar = 0; iVar < 2; iVar++) + for (jVar = 0; jVar < nNodes*nVar; jVar++) + N_Matrix[iVar][jVar] = 0.0; + + for (iNode = 0; iNode < nNodes; iNode++) { + N_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][3]; + N_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][3]; + } + + /*--- Compute the B Matrix ---*/ + + for (iVar = 0; iVar < 3; iVar++) + for (jVar = 0; jVar < nNodes*nVar; jVar++) + B_Matrix[iVar][jVar] = 0.0; + + for (iNode = 0; iNode < nNodes; iNode++) { + B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; + B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; + + B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; + B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; + } + + + /*--- Compute the D Matrix (for plane stress and 2-D)---*/ + + D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; + D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; + D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + + /*--- Compute the BT.D Matrix ---*/ + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < 3; jVar++) { + Aux_Matrix[iVar][jVar] = 0.0; + for (kVar = 0; kVar < 3; kVar++) + Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; + } + } + + /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original + matrix using Gauss integration ---*/ + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < nNodes*nVar; jVar++) { + for (kVar = 0; kVar < 3; kVar++) { + StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; + } + } + } + + /*--- Compute the NT.N Matrix (mass matrix), and add to the original + matrix using Gauss integration ---*/ + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < nNodes*nVar; jVar++) { + for (kVar = 0; kVar < 2; kVar++) { + MassMatrix_Elem[iVar][jVar] += Weight[iGauss] * N_Matrix[kVar][iVar] * N_Matrix[kVar][jVar] * Det * Rho_s; + } + } + } + + + } } void CGalerkin_FEA::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { - - - su2double B_Matrix[6][24], D_Matrix[6][6], N_Matrix[3][24], Aux_Matrix[24][6]; - su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[8][3], Weight[8]; - - unsigned short nVar = 3; - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - MassMatrix_Elem[iVar][jVar] = 0.0; - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 4) { - nGauss = 1; - Location[0][0] = 0.25; Location[0][1] = 0.25; Location[0][2] = 0.25; Weight[0] = 0.166666666666666; // Note: W=1, V=1/6 - } - - /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ - - if (nNodes == 5) { - nGauss = 5; - Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; Weight[0] = 0.133333333333333; - Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; Weight[1] = 0.133333333333333; - Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; Weight[2] = 0.133333333333333; - Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; Weight[3] = 0.133333333333333; - Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; Weight[4] = 0.133333333333333; - } - - /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ - - if (nNodes == 6) { - nGauss = 6; - Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; Weight[0] = 0.166666666666666; - Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; Weight[1] = 0.166666666666666; - Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; Weight[2] = 0.166666666666666; - Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; Weight[3] = 0.166666666666666; - Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; Weight[4] = 0.166666666666666; - Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; Weight[5] = 0.166666666666666; - } - - /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ - - if (nNodes == 8) { - nGauss = 8; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Location[0][2] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Location[1][2] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Location[2][2] = -0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Location[3][2] = -0.577350269189626; Weight[3] = 1.0; - Location[4][0] = -0.577350269189626; Location[4][1] = -0.577350269189626; Location[4][2] = 0.577350269189626; Weight[4] = 1.0; - Location[5][0] = 0.577350269189626; Location[5][1] = -0.577350269189626; Location[5][2] = 0.577350269189626; Weight[5] = 1.0; - Location[6][0] = 0.577350269189626; Location[6][1] = 0.577350269189626; Location[6][2] = 0.577350269189626; Weight[6] = 1.0; - Location[7][0] = -0.577350269189626; Location[7][1] = 0.577350269189626; Location[7][2] = 0.577350269189626; Weight[7] = 1.0; - } - - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; Zeta = Location[iGauss][2]; - - if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - - /*--- Compute the N Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - N_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - N_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][3]; - N_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][3]; - N_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][3]; - } - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 6; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; - - B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; - - B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; - } - - /*--- Compute the D Matrix (for plane strain and 3-D)---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; - D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; - D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; - D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; - D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; - - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < 6; jVar++) { - Aux_Matrix[iVar][jVar] = 0.0; - for (kVar = 0; kVar < 6; kVar++) - Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 6; kVar++) { - StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; - } - } - } - - /*--- Compute the NT.N Matrix (mass matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 3; kVar++) { - MassMatrix_Elem[iVar][jVar] += Weight[iGauss] * N_Matrix[kVar][iVar] * N_Matrix[kVar][jVar] * Det * Rho_s; - } - } - } - - - } - + + + su2double B_Matrix[6][24], D_Matrix[6][6], N_Matrix[3][24], Aux_Matrix[24][6]; + su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; + unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; + su2double Location[8][3], Weight[8]; + + unsigned short nVar = 3; + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < nNodes*nVar; jVar++) { + MassMatrix_Elem[iVar][jVar] = 0.0; + StiffMatrix_Elem[iVar][jVar] = 0.0; + } + } + + /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ + + if (nNodes == 4) { + nGauss = 1; + Location[0][0] = 0.25; Location[0][1] = 0.25; Location[0][2] = 0.25; Weight[0] = 0.166666666666666; // Note: W=1, V=1/6 + } + + /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ + + if (nNodes == 5) { + nGauss = 5; + Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; Weight[0] = 0.133333333333333; + Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; Weight[1] = 0.133333333333333; + Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; Weight[2] = 0.133333333333333; + Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; Weight[3] = 0.133333333333333; + Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; Weight[4] = 0.133333333333333; + } + + /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ + + if (nNodes == 6) { + nGauss = 6; + Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; Weight[0] = 0.166666666666666; + Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; Weight[1] = 0.166666666666666; + Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; Weight[2] = 0.166666666666666; + Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; Weight[3] = 0.166666666666666; + Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; Weight[4] = 0.166666666666666; + Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; Weight[5] = 0.166666666666666; + } + + /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ + + if (nNodes == 8) { + nGauss = 8; + Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Location[0][2] = -0.577350269189626; Weight[0] = 1.0; + Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Location[1][2] = -0.577350269189626; Weight[1] = 1.0; + Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Location[2][2] = -0.577350269189626; Weight[2] = 1.0; + Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Location[3][2] = -0.577350269189626; Weight[3] = 1.0; + Location[4][0] = -0.577350269189626; Location[4][1] = -0.577350269189626; Location[4][2] = 0.577350269189626; Weight[4] = 1.0; + Location[5][0] = 0.577350269189626; Location[5][1] = -0.577350269189626; Location[5][2] = 0.577350269189626; Weight[5] = 1.0; + Location[6][0] = 0.577350269189626; Location[6][1] = 0.577350269189626; Location[6][2] = 0.577350269189626; Weight[6] = 1.0; + Location[7][0] = -0.577350269189626; Location[7][1] = 0.577350269189626; Location[7][2] = 0.577350269189626; Weight[7] = 1.0; + } + + + for (iGauss = 0; iGauss < nGauss; iGauss++) { + + Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; Zeta = Location[iGauss][2]; + + if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); + if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); + if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); + if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); + + /*--- Compute the N Matrix ---*/ + + for (iVar = 0; iVar < 3; iVar++) + for (jVar = 0; jVar < nNodes*nVar; jVar++) + N_Matrix[iVar][jVar] = 0.0; + + for (iNode = 0; iNode < nNodes; iNode++) { + N_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][3]; + N_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][3]; + N_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][3]; + } + + /*--- Compute the B Matrix ---*/ + + for (iVar = 0; iVar < 6; iVar++) + for (jVar = 0; jVar < nNodes*nVar; jVar++) + B_Matrix[iVar][jVar] = 0.0; + + for (iNode = 0; iNode < nNodes; iNode++) { + B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; + B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; + B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; + + B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; + B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; + + B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; + B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; + + B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; + B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; + } + + /*--- Compute the D Matrix (for plane strain and 3-D)---*/ + + D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; + D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; + D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; + D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; + D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; + D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; + + + /*--- Compute the BT.D Matrix ---*/ + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < 6; jVar++) { + Aux_Matrix[iVar][jVar] = 0.0; + for (kVar = 0; kVar < 6; kVar++) + Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; + } + } + + /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original + matrix using Gauss integration ---*/ + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < nNodes*nVar; jVar++) { + for (kVar = 0; kVar < 6; kVar++) { + StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; + } + } + } + + /*--- Compute the NT.N Matrix (mass matrix), and add to the original + matrix using Gauss integration ---*/ + + for (iVar = 0; iVar < nNodes*nVar; iVar++) { + for (jVar = 0; jVar < nNodes*nVar; jVar++) { + for (kVar = 0; kVar < 3; kVar++) { + MassMatrix_Elem[iVar][jVar] += Weight[iGauss] * N_Matrix[kVar][iVar] * N_Matrix[kVar][jVar] * Det * Rho_s; + } + } + } + + + } + } void CGalerkin_FEA::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity){ - - su2double N_Matrix[2][8], Aux_Vector[2], DeadLoad_Elem[80]; - su2double Xi = 0.0, Eta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[4][3], Weight[4]; - unsigned short nVar2D = 2; - - su2double gravity; - - gravity=9.80665; - - for (iVar = 0; iVar < nNodes; iVar++) { - DeadLoad_Elem[2*iVar]=0.0; - DeadLoad_Elem[2*iVar+1]=-matDensity*gravity; - DeadLoadVector_Elem[2*iVar]=0.0; - DeadLoadVector_Elem[2*iVar+1]=0.0; - } - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 3) { - nGauss = 1; - Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 - } - - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ - - if (nNodes == 4) { - nGauss = 4; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; - } - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; - - if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Rectangle(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < nVar2D; iVar++) - for (jVar = 0; jVar < nNodes*nVar2D; jVar++) - N_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - N_Matrix[0][0+iNode*nVar2D] = DShapeFunction[iNode][3]; - N_Matrix[1][1+iNode*nVar2D] = DShapeFunction[iNode][3]; - } - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nVar2D; iVar++) { - Aux_Vector[iVar] = 0.0; - for (jVar = 0; jVar < nNodes*nVar2D; jVar++) { - Aux_Vector[iVar] += N_Matrix[iVar][jVar]*DeadLoad_Elem[jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar2D; iVar++) { - for (jVar = 0; jVar < nVar2D; jVar++) { - DeadLoadVector_Elem[iVar] += Weight[iGauss] * N_Matrix[jVar][iVar] * Aux_Vector[jVar] * Det; - } - } - - } - + + su2double N_Matrix[2][8], Aux_Vector[2], DeadLoad_Elem[80]; + su2double Xi = 0.0, Eta = 0.0, Det = 0.0; + unsigned short iNode, iVar, jVar, iGauss, nGauss = 0; + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; + su2double Location[4][3], Weight[4]; + unsigned short nVar2D = 2; + + su2double gravity; + + gravity=9.80665; + + for (iVar = 0; iVar < nNodes; iVar++) { + DeadLoad_Elem[2*iVar]=0.0; + DeadLoad_Elem[2*iVar+1]=-matDensity*gravity; + DeadLoadVector_Elem[2*iVar]=0.0; + DeadLoadVector_Elem[2*iVar+1]=0.0; + } + + /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ + + if (nNodes == 3) { + nGauss = 1; + Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 + } + + /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ + + if (nNodes == 4) { + nGauss = 4; + Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; + Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; + Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; + Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; + } + + for (iGauss = 0; iGauss < nGauss; iGauss++) { + + Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; + + if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); + if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); + + /*--- Compute the B Matrix ---*/ + + for (iVar = 0; iVar < nVar2D; iVar++) + for (jVar = 0; jVar < nNodes*nVar2D; jVar++) + N_Matrix[iVar][jVar] = 0.0; + + for (iNode = 0; iNode < nNodes; iNode++) { + N_Matrix[0][0+iNode*nVar2D] = DShapeFunction[iNode][3]; + N_Matrix[1][1+iNode*nVar2D] = DShapeFunction[iNode][3]; + } + + /*--- Compute the BT.D Matrix ---*/ + + for (iVar = 0; iVar < nVar2D; iVar++) { + Aux_Vector[iVar] = 0.0; + for (jVar = 0; jVar < nNodes*nVar2D; jVar++) { + Aux_Vector[iVar] += N_Matrix[iVar][jVar]*DeadLoad_Elem[jVar]; + } + } + + /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original + matrix using Gauss integration ---*/ + + for (iVar = 0; iVar < nNodes*nVar2D; iVar++) { + for (jVar = 0; jVar < nVar2D; jVar++) { + DeadLoadVector_Elem[iVar] += Weight[iGauss] * N_Matrix[jVar][iVar] * Aux_Vector[jVar] * Det; + } + } + + } + } void CGalerkin_FEA::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity){ - + } void CGalerkin_FEA::GetFEA_StressNodal2D(su2double StressNodal[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - - - su2double B_Matrix[3][8], StrainVector[3]; + + + su2double B_Matrix[3][8], StrainVector[3]; su2double D_Matrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; - su2double Xi = 0.0, Eta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iNodal; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[4][3]; - unsigned short nVar = 2; - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 3) { - Location[0][0] = 1.0; Location[0][1] = 0.0; - Location[0][0] = 0.0; Location[0][1] = 1.0; - Location[0][0] = 0.0; Location[0][1] = 0.0; - } - - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ - - if (nNodes == 4) { - Location[0][0] = -1.0; Location[0][1] = -1.0; - Location[1][0] = 1.0; Location[1][1] = -1.0; - Location[2][0] = 1.0; Location[2][1] = 1.0; - Location[3][0] = -1.0; Location[3][1] = 1.0; - } - - for (iNodal = 0; iNodal < nNodes; iNodal++) { - - Xi = Location[iNodal][0]; Eta = Location[iNodal][1]; - - if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Rectangle(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++){ - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - } - - for (iNode = 0; iNode < nNodes; iNode++) { - - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; - - } - - if (form2d==0){ - - /*--- Compute the D Matrix (for plane stress and 2-D)---*/ - - D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); - - } - else if (form2d==1){ - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of E and Nu---*/ - - // D_Matrix[0][0] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[0][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][2] = 0.0; - // D_Matrix[1][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][1] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[1][2] = 0.0; - // D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = (E*(1-2*Nu))/(2*(1+Nu)*(1-2*Nu)); - - } - - /*--- Compute the Strain vector (e=B*D) ---*/ - - for (iVar = 0; iVar < 3; iVar++) { - StrainVector[iVar] = 0.0; - for (kVar = 0; kVar < nNodes*nVar; kVar++) - StrainVector[iVar] += B_Matrix[iVar][kVar]*DispElement[kVar]; - } - - /*--- Compute the Stress vector (s=D*e) ---*/ - - for (iVar = 0; iVar < 3; iVar++) { - StressNodal[iNodal][iVar] = 0.0; - for (kVar = 0; kVar < 3; kVar++) - StressNodal[iNodal][iVar] += D_Matrix[iVar][kVar]*StrainVector[kVar]; - } - - } - + //su2double Xi = 0.0; + // su2double Det = 0.0, Eta = 0.0; + unsigned short iNode, iVar, jVar, kVar, iNodal; + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; +// su2double Location[4][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0},{0.0, 0.0, 0.0}}; + unsigned short nVar = 2; + + /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ + +// if (nNodes == 3) { +// Location[0][0] = 1.0; Location[0][1] = 0.0; +// Location[0][0] = 0.0; Location[0][1] = 1.0; +// Location[0][0] = 0.0; Location[0][1] = 0.0; +// } else { +// /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ +// Location[0][0] = -1.0; Location[0][1] = -1.0; +// Location[1][0] = 1.0; Location[1][1] = -1.0; +// Location[2][0] = 1.0; Location[2][1] = 1.0; +// Location[3][0] = -1.0; Location[3][1] = 1.0; +// } + + for (iNodal = 0; iNodal < nNodes; iNodal++) { + + //Xi = Location[iNodal][0]; + + /*--- Unused Vars ---*/ + //Eta = Location[iNodal][1]; + // if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); + // if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); + + /*--- Compute the B Matrix ---*/ + + for (iVar = 0; iVar < 3; iVar++){ + for (jVar = 0; jVar < nNodes*nVar; jVar++) + B_Matrix[iVar][jVar] = 0.0; + } + + for (iNode = 0; iNode < nNodes; iNode++) { + + B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; + B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; + + B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; + B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; + + } + + if (form2d==0){ + + /*--- Compute the D Matrix (for plane stress and 2-D)---*/ + + D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; + D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; + D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + + } + else if (form2d==1){ + + /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ + + D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; + D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; + D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; + + /*--- Compute the D Matrix (for plane strain and 2-D) as a function of E and Nu---*/ + + // D_Matrix[0][0] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[0][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][2] = 0.0; + // D_Matrix[1][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][1] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[1][2] = 0.0; + // D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = (E*(1-2*Nu))/(2*(1+Nu)*(1-2*Nu)); + + } + + /*--- Compute the Strain vector (e=B*D) ---*/ + + for (iVar = 0; iVar < 3; iVar++) { + StrainVector[iVar] = 0.0; + for (kVar = 0; kVar < nNodes*nVar; kVar++) + StrainVector[iVar] += B_Matrix[iVar][kVar]*DispElement[kVar]; + } + + /*--- Compute the Stress vector (s=D*e) ---*/ + + for (iVar = 0; iVar < 3; iVar++) { + StressNodal[iNodal][iVar] = 0.0; + for (kVar = 0; kVar < 3; kVar++) + StressNodal[iNodal][iVar] += D_Matrix[iVar][kVar]*StrainVector[kVar]; + } + + } + } void CGalerkin_FEA::GetFEA_StressNodal3D(su2double StressNodal[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { - - - su2double B_Matrix[6][24], D_Matrix[6][6], StrainVector[6]; - su2double Xi = 0.0, Eta = 0.0, Zeta=0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iNodal, nNodal = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[8][3]; - - unsigned short nVar = 3; - - /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 4) { - nNodal = 4; - Location[0][0] = 1.0; Location[0][1] = 0.0; Location[0][2] = 0.0; - Location[1][0] = 0.0; Location[1][1] = 1.0; Location[1][2] = 0.0; - Location[2][0] = 0.0; Location[2][1] = 0.0; Location[2][2] = 0.0; - Location[3][0] = 0.0; Location[3][1] = 0.0; Location[3][2] = 1.0; - } - - /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ - - if (nNodes == 5) { - nNodal = 5; - Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; - Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; - Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; - Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; - Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; - } - - /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ - - if (nNodes == 6) { - nNodal = 6; - Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; - Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; - Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; - Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; - Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; - Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; - } - - /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ - - if (nNodes == 8) { - nNodal = 8; - Location[0][0] = -1.0; Location[0][1] = -1.0; Location[0][2] = -1.0; - Location[1][0] = 1.0; Location[1][1] = -1.0; Location[1][2] = -1.0; - Location[2][0] = 1.0; Location[2][1] = 1.0; Location[2][2] = -1.0; - Location[3][0] = -1.0; Location[3][1] = 1.0; Location[3][2] = -1.0; - Location[4][0] = -1.0; Location[4][1] = -1.0; Location[4][2] = 1.0; - Location[5][0] = 1.0; Location[5][1] = -1.0; Location[5][2] = 1.0; - Location[6][0] = 1.0; Location[6][1] = 1.0; Location[6][2] = 1.0; - Location[7][0] = -1.0; Location[7][1] = 1.0; Location[7][2] = 1.0; - } - - for (iNodal = 0; iNodal < nNodal; iNodal++) { - - Xi = Location[iNodal][0]; Eta = Location[iNodal][1]; Zeta = Location[iNodal][2]; - - if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 6; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; - - B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; - - B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; - } - - /*--- Compute the D Matrix (for plane strain and 3-D)---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; - D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; - D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; - D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; - D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; - -// D_Matrix[0][0] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[0][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][2] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; -// D_Matrix[1][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][1] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[1][2] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; -// D_Matrix[2][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[2][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[2][2] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; -// D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = E/(2*(1+Nu)); D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; -// D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = E/(2*(1+Nu)); D_Matrix[4][5] = 0.0; -// D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = E/(2*(1+Nu)); -// - /*--- Compute the Strain vector (e=B*D) ---*/ - - for (iVar = 0; iVar < 6; iVar++) { - StrainVector[iVar] = 0.0; - for (kVar = 0; kVar < nNodes*nVar; kVar++) - StrainVector[iVar] += B_Matrix[iVar][kVar]*DispElement[kVar]; - } - - /*--- Compute the Stress vector (s=D*e) ---*/ - - for (iVar = 0; iVar < 6; iVar++) { - StressNodal[iNodal][iVar] = 0.0; - for (kVar = 0; kVar < 6; kVar++) - StressNodal[iNodal][iVar] += D_Matrix[iVar][kVar]*StrainVector[kVar]; - } - - } - - - + + + su2double B_Matrix[6][24], D_Matrix[6][6], StrainVector[6]; +// su2double Xi = 0.0, Eta = 0.0, Zeta=0.0, Det = 0.0; + unsigned short iNode, iVar, jVar, kVar, iNodal, nNodal = 0; + su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; +// su2double Location[8][3]; + + unsigned short nVar = 3; + + /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ + + if (nNodes == 4) { + nNodal = 4; +// Location[0][0] = 1.0; Location[0][1] = 0.0; Location[0][2] = 0.0; +// Location[1][0] = 0.0; Location[1][1] = 1.0; Location[1][2] = 0.0; +// Location[2][0] = 0.0; Location[2][1] = 0.0; Location[2][2] = 0.0; +// Location[3][0] = 0.0; Location[3][1] = 0.0; Location[3][2] = 1.0; + } + + /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ + + if (nNodes == 5) { + nNodal = 5; +// Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; +// Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; +// Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; +// Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; +// Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; + } + + /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ + + if (nNodes == 6) { + nNodal = 6; +// Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; +// Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; +// Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; +// Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; +// Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; +// Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; + } + + /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ + + if (nNodes == 8) { + nNodal = 8; +// Location[0][0] = -1.0; Location[0][1] = -1.0; Location[0][2] = -1.0; +// Location[1][0] = 1.0; Location[1][1] = -1.0; Location[1][2] = -1.0; +// Location[2][0] = 1.0; Location[2][1] = 1.0; Location[2][2] = -1.0; +// Location[3][0] = -1.0; Location[3][1] = 1.0; Location[3][2] = -1.0; +// Location[4][0] = -1.0; Location[4][1] = -1.0; Location[4][2] = 1.0; +// Location[5][0] = 1.0; Location[5][1] = -1.0; Location[5][2] = 1.0; +// Location[6][0] = 1.0; Location[6][1] = 1.0; Location[6][2] = 1.0; +// Location[7][0] = -1.0; Location[7][1] = 1.0; Location[7][2] = 1.0; + } + + for (iNodal = 0; iNodal < nNodal; iNodal++) { + +// Xi = Location[iNodal][0]; Eta = Location[iNodal][1]; Zeta = Location[iNodal][2]; + +// if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); +// if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); +// if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); +// if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); + + /*--- Compute the B Matrix ---*/ + + for (iVar = 0; iVar < 6; iVar++) + for (jVar = 0; jVar < nNodes*nVar; jVar++) + B_Matrix[iVar][jVar] = 0.0; + + for (iNode = 0; iNode < nNodes; iNode++) { + B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; + B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; + B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; + + B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; + B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; + + B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; + B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; + + B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; + B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; + } + + /*--- Compute the D Matrix (for plane strain and 3-D)---*/ + + D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; + D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; + D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; + D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; + D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; + D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; + + // D_Matrix[0][0] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[0][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][2] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; + // D_Matrix[1][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][1] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[1][2] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; + // D_Matrix[2][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[2][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[2][2] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; + // D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = E/(2*(1+Nu)); D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; + // D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = E/(2*(1+Nu)); D_Matrix[4][5] = 0.0; + // D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = E/(2*(1+Nu)); + // + /*--- Compute the Strain vector (e=B*D) ---*/ + + for (iVar = 0; iVar < 6; iVar++) { + StrainVector[iVar] = 0.0; + for (kVar = 0; kVar < nNodes*nVar; kVar++) + StrainVector[iVar] += B_Matrix[iVar][kVar]*DispElement[kVar]; + } + + /*--- Compute the Stress vector (s=D*e) ---*/ + + for (iVar = 0; iVar < 6; iVar++) { + StressNodal[iNodal][iVar] = 0.0; + for (kVar = 0; kVar < 6; kVar++) + StressNodal[iNodal][iVar] += D_Matrix[iVar][kVar]*StrainVector[kVar]; + } + + } + + + } diff --git a/SU2_CFD/src/numerics_direct_heat.cpp b/SU2_CFD/src/numerics_direct_heat.cpp index 2c2eda9da40..6d957931588 100644 --- a/SU2_CFD/src/numerics_direct_heat.cpp +++ b/SU2_CFD/src/numerics_direct_heat.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_heat.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_mean.cpp b/SU2_CFD/src/numerics_direct_mean.cpp index f4c0e0c49cd..c416b503200 100644 --- a/SU2_CFD/src/numerics_direct_mean.cpp +++ b/SU2_CFD/src/numerics_direct_mean.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_mean.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_poisson.cpp b/SU2_CFD/src/numerics_direct_poisson.cpp index ae9b262b3f6..1a7177800bd 100644 --- a/SU2_CFD/src/numerics_direct_poisson.cpp +++ b/SU2_CFD/src/numerics_direct_poisson.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_poisson.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_tne2.cpp b/SU2_CFD/src/numerics_direct_tne2.cpp index 4e37e94a98d..d959455716e 100644 --- a/SU2_CFD/src/numerics_direct_tne2.cpp +++ b/SU2_CFD/src/numerics_direct_tne2.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_tne2.cpp * \brief This file contains all the convective term discretization. * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -476,9 +476,10 @@ void CUpwAUSM_TNE2::ComputeResidual(su2double *val_residual, CConfig *config ) { unsigned short iDim, iVar, jVar, iSpecies, nHeavy, nEl; - su2double rho_i, rho_j, rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j; + su2double rho_i, rho_j, rhoCvtr_i, rhoCvtr_j; su2double Cvtrs; - su2double Ru, rho_el_i, rho_el_j, *Ms, *xi; + su2double Ru, *Ms, *xi; +// su2double rho_el_i, rho_el_j, rhoCvve_i, rhoCvve_j; // su2double dPdrhoE_i, dPdrhoE_j, dPdrhoEve_i, dPdrhoEve_j; su2double e_ve_i, e_ve_j; @@ -499,13 +500,13 @@ void CUpwAUSM_TNE2::ComputeResidual(su2double *val_residual, if (ionization) { nHeavy = nSpecies-1; nEl = 1; - rho_el_i = V_i[nSpecies-1]; - rho_el_j = V_j[nSpecies-1]; + //rho_el_i = V_i[nSpecies-1]; + //rho_el_j = V_j[nSpecies-1]; } else { nHeavy = nSpecies; nEl = 0; - rho_el_i = 0.0; - rho_el_j = 0.0; + //rho_el_i = 0.0; + //rho_el_j = 0.0; } /*--- Pull stored primitive variables ---*/ @@ -530,8 +531,8 @@ void CUpwAUSM_TNE2::ComputeResidual(su2double *val_residual, e_ve_j = U_j[nSpecies+nDim+1] / rho_j; rhoCvtr_i = V_i[RHOCVTR_INDEX]; rhoCvtr_j = V_j[RHOCVTR_INDEX]; - rhoCvve_i = V_i[RHOCVVE_INDEX]; - rhoCvve_j = V_j[RHOCVVE_INDEX]; + //rhoCvve_i = V_i[RHOCVVE_INDEX]; + //rhoCvve_j = V_j[RHOCVVE_INDEX]; /*--- Projected velocities ---*/ ProjVel_i = 0.0; ProjVel_j = 0.0; @@ -900,15 +901,19 @@ void CUpwAUSMPWplus_TNE2::ComputeResidual(su2double *val_residual, // NOTE: OSCILLATOR DAMPER "f" NOT IMPLEMENTED!!! - unsigned short iDim, jDim, iVar, jVar, iSpecies, nHeavy, nEl; + unsigned short iDim, iVar, jVar, iSpecies, nHeavy; + //unsigned short jDim, nEl; su2double rho_i, rho_j, rhoEve_i, rhoEve_j, P_i, P_j, h_i, h_j; su2double rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j; su2double aij, atl, gtl_i, gtl_j, sqVi, sqVj, Hnorm; su2double ProjVel_i, ProjVel_j; - su2double rhoRi, rhoRj, Ru, rho_el_i, rho_el_j, *Ms, *xi; + su2double rhoRi, rhoRj, *Ms, Ru; + //su2double rho_el_i, rho_el_j, *xi; su2double w, fL, fR, alpha; su2double mL, mR, mLP, mRM, mF, mbLP, mbRM, pLP, pRM, ps; - su2double fact, gam, dV2L, dV2R; + su2double fact, gam; + + //su2double dV2L, dV2R; alpha = 3.0/16.0; @@ -926,20 +931,20 @@ void CUpwAUSMPWplus_TNE2::ComputeResidual(su2double *val_residual, /*--- Read from config ---*/ Ms = config->GetMolar_Mass(); - xi = config->GetRotationModes(); + //xi = config->GetRotationModes(); Ru = UNIVERSAL_GAS_CONSTANT; /*--- Determine the number of heavy particle species ---*/ if (ionization) { nHeavy = nSpecies-1; - nEl = 1; - rho_el_i = V_i[nSpecies-1]; - rho_el_j = V_j[nSpecies-1]; + //nEl = 1; + //rho_el_i = V_i[nSpecies-1]; + //rho_el_j = V_j[nSpecies-1]; } else { nHeavy = nSpecies; - nEl = 0; - rho_el_i = 0.0; - rho_el_j = 0.0; + //nEl = 0; + //rho_el_i = 0.0; + //rho_el_j = 0.0; } /*--- Pull stored primitive variables ---*/ @@ -1076,14 +1081,14 @@ void CUpwAUSMPWplus_TNE2::ComputeResidual(su2double *val_residual, dHnR[iSpecies] = 0.5*(dPdU_j[iSpecies] /*+ sqVj/rho_j*/); } for (iDim = 0; iDim < nDim; iDim++) { - dV2L = 0.0; - dV2R = 0.0; - for (jDim = 0; jDim < nDim; jDim++) { - dV2L += 2.0/rho_i*(u_i[jDim]-ProjVel_i*UnitNormal[jDim]*(-UnitNormal[iDim]*UnitNormal[jDim])); - dV2R += 2.0/rho_j*(u_j[jDim]-ProjVel_j*UnitNormal[jDim]*(-UnitNormal[iDim]*UnitNormal[jDim])); - } - dV2L += 2.0/rho_i*(u_i[iDim]-ProjVel_i*UnitNormal[iDim] - sqVi); - dV2R += 2.0/rho_j*(u_j[iDim]-ProjVel_j*UnitNormal[iDim] - sqVj); +// dV2L = 0.0; +// dV2R = 0.0; +// for (jDim = 0; jDim < nDim; jDim++) { +// dV2L += 2.0/rho_i*(u_i[jDim]-ProjVel_i*UnitNormal[jDim]*(-UnitNormal[iDim]*UnitNormal[jDim])); +// dV2R += 2.0/rho_j*(u_j[jDim]-ProjVel_j*UnitNormal[jDim]*(-UnitNormal[iDim]*UnitNormal[jDim])); +// } +// dV2L += 2.0/rho_i*(u_i[iDim]-ProjVel_i*UnitNormal[iDim] - sqVi); +// dV2R += 2.0/rho_j*(u_j[iDim]-ProjVel_j*UnitNormal[iDim] - sqVj); dHnL[nSpecies+iDim] = 0.5*(dPdU_i[nSpecies+iDim] /*- 0.5*(dV2L)*/); dHnR[nSpecies+iDim] = 0.5*(dPdU_j[nSpecies+iDim] /*- 0.5*(dV2R)*/); } @@ -1357,7 +1362,7 @@ void CCentLax_TNE2::ComputeResidual(su2double *val_resconv, unsigned short iDim, iSpecies, iVar; su2double rho_i, rho_j, h_i, h_j, a_i, a_j; - su2double ProjVel_i, ProjVel_j, Ru; + su2double ProjVel_i, ProjVel_j; /*--- Calculate geometrical quantities ---*/ Area = 0; @@ -1374,7 +1379,6 @@ void CCentLax_TNE2::ComputeResidual(su2double *val_resconv, h_j = V_j[H_INDEX]; a_i = V_i[A_INDEX]; a_j = V_j[A_INDEX]; - Ru = UNIVERSAL_GAS_CONSTANT; /*--- Compute mean quantities for the variables ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -1808,14 +1812,15 @@ void CSource_TNE2::ComputeChemistry(su2double *val_residual, /*--- Nonequilibrium chemistry ---*/ unsigned short iSpecies, jSpecies, ii, iReaction, nReactions, iVar, jVar; - unsigned short *nElStates, nHeavy, nEl, nEve; +// unsigned short *nElStates, nHeavy, nEl; + unsigned short nEve; int ***RxnMap; su2double T_min, epsilon; su2double T, Tve, Thf, Thb, Trxnf, Trxnb, Keq, Cf, eta, theta, kf, kb; - su2double rho, u, v, w, rhoCvtr, rhoCvve, P; - su2double *Ms, *thetav, **thetae, **g, fwdRxn, bkwRxn, alpha, Ru; +// su2double rho, u, v, w, rhoCvtr, rhoCvve, P; + su2double *Ms, fwdRxn, bkwRxn; su2double *Tcf_a, *Tcf_b, *Tcb_a, *Tcb_b; - su2double *hf, *Tref, *xi; +// su2double *hf, *Tref, *xi, *thetav, **thetae, **g, alpha, Ru; su2double af, bf, ab, bb, coeff; su2double dThf, dThb; @@ -1842,23 +1847,23 @@ void CSource_TNE2::ComputeChemistry(su2double *val_residual, epsilon = 80; /*--- Define preferential dissociation coefficient ---*/ - alpha = 0.3; +// alpha = 0.3; /*--- Determine the number of heavy particle species ---*/ - if (ionization) { nHeavy = nSpecies-1; nEl = 1; } - else { nHeavy = nSpecies; nEl = 0; } +// if (ionization) { nHeavy = nSpecies-1; nEl = 1; } +// else { nHeavy = nSpecies; nEl = 0; } /*--- Rename for convenience ---*/ - Ru = UNIVERSAL_GAS_CONSTANT; - rho = V_i[RHO_INDEX]; - P = V_i[P_INDEX]; +// Ru = UNIVERSAL_GAS_CONSTANT; +// rho = V_i[RHO_INDEX]; +// P = V_i[P_INDEX]; T = V_i[T_INDEX]; Tve = V_i[TVE_INDEX]; - u = V_i[VEL_INDEX]; - v = V_i[VEL_INDEX+1]; - w = V_i[VEL_INDEX+2]; - rhoCvtr = V_i[RHOCVTR_INDEX]; - rhoCvve = V_i[RHOCVVE_INDEX]; +// u = V_i[VEL_INDEX]; +// v = V_i[VEL_INDEX+1]; +// w = V_i[VEL_INDEX+2]; +// rhoCvtr = V_i[RHOCVTR_INDEX]; +// rhoCvve = V_i[RHOCVVE_INDEX]; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { eves[iSpecies] = var->CalcEve(V_i, config, iSpecies); @@ -1868,13 +1873,13 @@ void CSource_TNE2::ComputeChemistry(su2double *val_residual, nReactions = config->GetnReactions(); Ms = config->GetMolar_Mass(); RxnMap = config->GetReaction_Map(); - thetav = config->GetCharVibTemp(); - thetae = config->GetCharElTemp(); - g = config->GetElDegeneracy(); - nElStates = config->GetnElStates(); - hf = config->GetEnthalpy_Formation(); - xi = config->GetRotationModes(); - Tref = config->GetRefTemperature(); +// thetav = config->GetCharVibTemp(); +// thetae = config->GetCharElTemp(); +// g = config->GetElDegeneracy(); +// nElStates = config->GetnElStates(); +// hf = config->GetEnthalpy_Formation(); +// xi = config->GetRotationModes(); +// Tref = config->GetRefTemperature(); Tcf_a = config->GetRxnTcf_a(); Tcf_b = config->GetRxnTcf_b(); Tcb_a = config->GetRxnTcb_a(); @@ -2066,14 +2071,19 @@ void CSource_TNE2::ComputeVibRelaxation(su2double *val_residual, // Note: Millikan & White relaxation time (requires P in Atm.) // Note: Park limiting cross section unsigned short iSpecies, jSpecies, iVar, jVar; - unsigned short nEv, nHeavy, nEl, *nElStates; - su2double rhos, evib, P, T, Tve, u, v, w, rhoCvtr, rhoCvve, Ru, conc, N; - su2double Qtv, estar, tau, tauMW, tauP; + unsigned short nEv; + + su2double rhos, evib, P, T, Tve, Ru, conc, N; + su2double estar, tau, tauMW, tauP; su2double tau_sr, mu, A_sr, B_sr, num, denom; su2double thoTve, exptv; su2double thoT, expt, Cvvs, Cvvst; su2double sigma, ws; - su2double *Ms, *thetav, **thetae, **g, *Tref, *hf, *xi; + su2double *Ms, *thetav; + + //su2double **thetae, **g, *Tref, *hf, *xi; + //su2double nHeavy, nEl, *nElStates; + //su2double Qtv, u, v, w, rhoCvtr, rhoCvve; /*--- Initialize residual and Jacobian arrays ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -2086,19 +2096,19 @@ void CSource_TNE2::ComputeVibRelaxation(su2double *val_residual, } /*--- Determine the number of heavy particle species ---*/ - if (ionization) { nHeavy = nSpecies-1; nEl = 1; } - else { nHeavy = nSpecies; nEl = 0; } +// if (ionization) { nHeavy = nSpecies-1; nEl = 1; } +// else { nHeavy = nSpecies; nEl = 0; } /*--- Rename for convenience ---*/ Ru = UNIVERSAL_GAS_CONSTANT; P = V_i[P_INDEX]; T = V_i[T_INDEX]; Tve = V_i[TVE_INDEX]; - u = V_i[VEL_INDEX]; - v = V_i[VEL_INDEX+1]; - w = V_i[VEL_INDEX+2]; - rhoCvtr = V_i[RHOCVTR_INDEX]; - rhoCvve = V_i[RHOCVVE_INDEX]; + //u = V_i[VEL_INDEX]; + //v = V_i[VEL_INDEX+1]; + //w = V_i[VEL_INDEX+2]; + //rhoCvtr = V_i[RHOCVTR_INDEX]; + //rhoCvve = V_i[RHOCVVE_INDEX]; nEv = nSpecies+nDim+1; /*--- Clip temperatures to prevent NaNs ---*/ @@ -2112,12 +2122,12 @@ void CSource_TNE2::ComputeVibRelaxation(su2double *val_residual, /*--- Read from CConfig ---*/ Ms = config->GetMolar_Mass(); thetav = config->GetCharVibTemp(); - thetae = config->GetCharElTemp(); - g = config->GetElDegeneracy(); - nElStates = config->GetnElStates(); - Tref = config->GetRefTemperature(); - hf = config->GetEnthalpy_Formation(); - xi = config->GetRotationModes(); + //thetae = config->GetCharElTemp(); + //g = config->GetElDegeneracy(); + //nElStates = config->GetnElStates(); + //Tref = config->GetRefTemperature(); + //hf = config->GetEnthalpy_Formation(); + ///xi = config->GetRotationModes(); /*--- Calculate mole fractions ---*/ N = 0.0; @@ -2130,7 +2140,7 @@ void CSource_TNE2::ComputeVibRelaxation(su2double *val_residual, X[iSpecies] = (V_i[RHOS_INDEX+iSpecies] / Ms[iSpecies]) / conc; /*--- Loop over species to calculate source term --*/ - Qtv = 0.0; + //Qtv = 0.0; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { if (thetav[iSpecies] != 0.0) { /*--- Rename ---*/ diff --git a/SU2_CFD/src/numerics_direct_transition.cpp b/SU2_CFD/src/numerics_direct_transition.cpp index a9488733db7..7c50fc3383a 100644 --- a/SU2_CFD/src/numerics_direct_transition.cpp +++ b/SU2_CFD/src/numerics_direct_transition.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_transition.cpp * \brief This file contains all the convective term discretization. * \author A. Aranake - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_turbulent.cpp b/SU2_CFD/src/numerics_direct_turbulent.cpp index 5e4d4a5e73a..10bc03a4018 100644 --- a/SU2_CFD/src/numerics_direct_turbulent.cpp +++ b/SU2_CFD/src/numerics_direct_turbulent.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_turbulent.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, A. Bueno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_wave.cpp b/SU2_CFD/src/numerics_direct_wave.cpp index 955065309b4..8b2e6dbd022 100644 --- a/SU2_CFD/src/numerics_direct_wave.cpp +++ b/SU2_CFD/src/numerics_direct_wave.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_wave.cpp * \brief This file contains all the convective term discretization. * \author T. Economon, F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_linearized_mean.cpp b/SU2_CFD/src/numerics_linearized_mean.cpp index f38b95dee1d..4c640645fa4 100644 --- a/SU2_CFD/src/numerics_linearized_mean.cpp +++ b/SU2_CFD/src/numerics_linearized_mean.cpp @@ -2,7 +2,7 @@ * \file numerics_linearized_mean.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_linearized_turbulent.cpp b/SU2_CFD/src/numerics_linearized_turbulent.cpp index 58a370c03da..83921a787b2 100644 --- a/SU2_CFD/src/numerics_linearized_turbulent.cpp +++ b/SU2_CFD/src/numerics_linearized_turbulent.cpp @@ -2,7 +2,7 @@ * \file numerics_linearized_turbulent.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_machine_learning.cpp b/SU2_CFD/src/numerics_machine_learning.cpp index a3e23dff28e..7c51a85468d 100644 --- a/SU2_CFD/src/numerics_machine_learning.cpp +++ b/SU2_CFD/src/numerics_machine_learning.cpp @@ -2,7 +2,7 @@ * \file numerics_machine_learning.cpp * \brief This file contains all the convective term discretization. * \author B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_machine_learning_turbulent.cpp b/SU2_CFD/src/numerics_machine_learning_turbulent.cpp index 0235ffeb1ef..2b2638c2941 100644 --- a/SU2_CFD/src/numerics_machine_learning_turbulent.cpp +++ b/SU2_CFD/src/numerics_machine_learning_turbulent.cpp @@ -2,7 +2,7 @@ * \file numerics_machine_learning_turbulent.cpp * \brief This file contains all the convective term discretization. * \author B. Tracey - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_structure.cpp b/SU2_CFD/src/numerics_structure.cpp index 757888d99f9..e2b907a2449 100644 --- a/SU2_CFD/src/numerics_structure.cpp +++ b/SU2_CFD/src/numerics_structure.cpp @@ -2,7 +2,7 @@ * \file numerics_structure.cpp * \brief This file contains all the numerical methods. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -765,11 +765,12 @@ void CNumerics::SetPastVolume (su2double val_volume_nM1, su2double val_volume_n, void CNumerics::GetPMatrix(su2double *val_density, su2double *val_velocity, su2double *val_soundspeed, su2double *val_normal, su2double **val_p_tensor) { - su2double sqvel, rhooc, rhoxc, c2; + su2double sqvel, rhooc, rhoxc; + //su2double c2; - rhooc = *val_density / *val_soundspeed, - rhoxc = *val_density * *val_soundspeed, - c2 = *val_soundspeed * *val_soundspeed; + rhooc = *val_density / *val_soundspeed; + rhoxc = *val_density * *val_soundspeed; + //c2 = *val_soundspeed * *val_soundspeed; if (nDim == 2) { @@ -837,11 +838,12 @@ void CNumerics::GetPMatrix(su2double *val_density, su2double *val_velocity, void CNumerics::GetPMatrix(su2double *val_density, su2double *val_velocity, su2double *val_soundspeed, su2double *val_enthalpy, su2double *val_chi, su2double *val_kappa, su2double *val_normal, su2double **val_p_tensor) { - su2double sqvel, rhooc, rhoxc, c2, zeta; - - rhooc = *val_density / *val_soundspeed, - rhoxc = *val_density * *val_soundspeed, - c2 = *val_soundspeed * *val_soundspeed; + su2double sqvel, rhooc, zeta; + //su2double rhoxc, c2; + + rhooc = *val_density / *val_soundspeed; + //rhoxc = *val_density * *val_soundspeed; + //c2 = *val_soundspeed * *val_soundspeed; if (nDim == 2) { sqvel = val_velocity[0]*val_velocity[0]+val_velocity[1]*val_velocity[1]; diff --git a/SU2_CFD/src/numerics_template.cpp b/SU2_CFD/src/numerics_template.cpp index b70ebb9451e..ed5bed1d022 100644 --- a/SU2_CFD/src/numerics_template.cpp +++ b/SU2_CFD/src/numerics_template.cpp @@ -2,7 +2,7 @@ * \file numerics_template.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_cgns.cpp b/SU2_CFD/src/output_cgns.cpp index 1cc2b52373d..8a2b2f48e7a 100644 --- a/SU2_CFD/src/output_cgns.cpp +++ b/SU2_CFD/src/output_cgns.cpp @@ -2,7 +2,7 @@ * \file output_cgns.cpp * \brief Main subroutines for output solver information * \author T. Economon, M. Colonno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -105,10 +105,10 @@ void COutput::SetCGNS_Coordinates(CConfig *config, CGeometry *geometry, unsigned cgns_err = cg_open((char *)results_file.str().c_str(), CG_MODE_WRITE, &cgns_file); - element_dims = geometry->GetnDim(); // Currently (release 4.0.0 "Cardinal") only all-2D or all-3D zones permitted + element_dims = geometry->GetnDim(); // Currently (release 4.0.1 "Cardinal") only all-2D or all-3D zones permitted physical_dims = element_dims; - /*--- write CGNS base data (one base assumed as of version 4.0.0 "Cardinal") ---*/ + /*--- write CGNS base data (one base assumed as of version 4.0.1 "Cardinal") ---*/ cgns_err = cg_base_write(cgns_file,"SU2 Base", element_dims, physical_dims, &cgns_base_results); if (cgns_err) cg_error_print(); @@ -212,7 +212,7 @@ void COutput::SetCGNS_Connectivity(CConfig *config, CGeometry *geometry, unsigne element_dims = geometry->GetnDim(); // Currently (release 2.0) only all-2D or all-3D zones permitted physical_dims = element_dims; - /*--- write CGNS base data (one base assumed as of version 4.0.0 "Cardinal") ---*/ + /*--- write CGNS base data (one base assumed as of version 4.0.1 "Cardinal") ---*/ cgns_err = cg_base_write(cgns_file,"SU2 Base", element_dims, physical_dims, &cgns_base); if (cgns_err) cg_error_print(); @@ -242,7 +242,7 @@ void COutput::SetCGNS_Connectivity(CConfig *config, CGeometry *geometry, unsigne else cgns_err = cg_simulation_type_write(cgns_file, cgns_base, NonTimeAccurate); if (cgns_err) cg_error_print(); - cgns_err = cg_descriptor_write("Solver Information","SU2 version 4.0.0 \"Cardinal\""); + cgns_err = cg_descriptor_write("Solver Information","SU2 version 4.0.1 \"Cardinal\""); if (cgns_err) cg_error_print(); isize[0][0] = (cgsize_t)geometry->GetGlobal_nPointDomain(); //; // vertex size @@ -321,7 +321,8 @@ void COutput::SetCGNS_Solution(CConfig *config, CGeometry *geometry, unsigned sh #ifdef HAVE_CGNS /*--- local CGNS variables ---*/ - int cgns_file, cgns_flow, cgns_field, element_dims, cgns_err; + int cgns_file, cgns_flow, cgns_field, cgns_err; +// int element_dims; unsigned long jVar, iVar, iExtIter = config->GetExtIter(); string base_file, buffer, elements_name; stringstream name, results_file; @@ -355,7 +356,7 @@ void COutput::SetCGNS_Solution(CConfig *config, CGeometry *geometry, unsigned sh cgns_err = cg_open((char *)base_file.c_str(), CG_MODE_MODIFY, &cgns_file); if (cgns_err) cg_error_print(); - element_dims = geometry->GetnDim(); // Currently (release 2.0) only all-2D or all-3D zones permitted +// element_dims = geometry->GetnDim(); // Currently (release 2.0) only all-2D or all-3D zones permitted /*--- write CGNS descriptor data ---*/ cgns_err = cg_goto(cgns_file, cgns_base,"end"); @@ -380,9 +381,9 @@ void COutput::SetCGNS_Solution(CConfig *config, CGeometry *geometry, unsigned sh cgns_err = cg_open((char *)results_file.str().c_str(), CG_MODE_MODIFY, &cgns_file); - element_dims = geometry->GetnDim(); // Currently (release 2.0) only all-2D or all-3D zones permitted - -// /*--- write CGNS base data (one base assumed as of version 4.0.0 "Cardinal") ---*/ +// element_dims = geometry->GetnDim(); // Currently (release 2.0) only all-2D or all-3D zones permitted +// +// /*--- write CGNS base data (one base assumed as of version 4.0.1 "Cardinal") ---*/ // cgns_err = cg_base_write(cgns_file,"SU2 Base", element_dims, physical_dims, &cgns_base); // if (cgns_err) cg_error_print(); diff --git a/SU2_CFD/src/output_fieldview.cpp b/SU2_CFD/src/output_fieldview.cpp index 39f7dc2eceb..b93600ee829 100644 --- a/SU2_CFD/src/output_fieldview.cpp +++ b/SU2_CFD/src/output_fieldview.cpp @@ -2,7 +2,7 @@ * \file output_fieldview.cpp * \brief Main subroutines for output solver information. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index dd297d51a32..817ccdcc5fe 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -2,7 +2,7 @@ * \file output_paraview.cpp * \brief Main subroutines for output solver information * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 7684580753b..df9231a3ab5 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -2,7 +2,7 @@ * \file output_structure.cpp * \brief Main subroutines for output solver information * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -829,8 +829,8 @@ void COutput::MergeConnectivity(CConfig *config, CGeometry *geometry, unsigned s MergeVolumetricConnectivity(config, geometry, TRIANGLE ); if ((rank == MASTER_NODE) && (size != SINGLE_NODE) && (nGlobal_Quad != 0)) - cout <<"Merging volumetric rectangle grid connectivity." << endl; - MergeVolumetricConnectivity(config, geometry, RECTANGLE ); + cout <<"Merging volumetric quadrilateral grid connectivity." << endl; + MergeVolumetricConnectivity(config, geometry, QUADRILATERAL ); if ((rank == MASTER_NODE) && (size != SINGLE_NODE) && (nGlobal_Tetr != 0)) cout <<"Merging volumetric tetrahedron grid connectivity." << endl; @@ -863,8 +863,8 @@ void COutput::MergeConnectivity(CConfig *config, CGeometry *geometry, unsigned s MergeSurfaceConnectivity(config, geometry, TRIANGLE); if ((rank == MASTER_NODE) && (size != SINGLE_NODE) && (nGlobal_BoundQuad != 0)) - cout <<"Merging surface rectangle grid connectivity." << endl; - MergeSurfaceConnectivity(config, geometry, RECTANGLE); + cout <<"Merging surface quadrilateral grid connectivity." << endl; + MergeSurfaceConnectivity(config, geometry, QUADRILATERAL); } @@ -973,9 +973,6 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { /*--- Local variables needed for merging the geometry with MPI. ---*/ unsigned long iVertex, iMarker; - - int SendRecv; - unsigned long Buffer_Send_nPoin[1], *Buffer_Recv_nPoin = NULL; unsigned long nLocalPoint = 0, MaxLocalPoint = 0; unsigned long iGlobal_Index = 0, nBuffer_Scalar = 0; @@ -995,7 +992,6 @@ void COutput::MergeCoordinates(CConfig *config, CGeometry *geometry) { } else { for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) { - SendRecv = config->GetMarker_All_SendRecv(iMarker); /*--- Checking for less than or equal to the rank, because there may be some periodic halo nodes that send info to the same rank. ---*/ @@ -1189,7 +1185,7 @@ void COutput::MergeVolumetricConnectivity(CConfig *config, CGeometry *geometry, nLocalElem = geometry->GetnElemTria(); NODES_PER_ELEMENT = N_POINTS_TRIANGLE; break; - case RECTANGLE: + case QUADRILATERAL: nLocalElem = geometry->GetnElemQuad(); NODES_PER_ELEMENT = N_POINTS_QUADRILATERAL; break; @@ -1488,7 +1484,7 @@ void COutput::MergeVolumetricConnectivity(CConfig *config, CGeometry *geometry, nGlobal_Tria = nElem_Total; if (nGlobal_Tria > 0) Conn_Tria = Conn_Elem; break; - case RECTANGLE: + case QUADRILATERAL: nGlobal_Quad = nElem_Total; if (nGlobal_Quad > 0) Conn_Quad = Conn_Elem; break; @@ -1575,7 +1571,7 @@ void COutput::MergeSurfaceConnectivity(CConfig *config, CGeometry *geometry, uns case TRIANGLE: NODES_PER_ELEMENT = N_POINTS_TRIANGLE; break; - case RECTANGLE: + case QUADRILATERAL: NODES_PER_ELEMENT = N_POINTS_QUADRILATERAL; break; default: @@ -1862,7 +1858,7 @@ void COutput::MergeSurfaceConnectivity(CConfig *config, CGeometry *geometry, uns nGlobal_BoundTria = nElem_Total; if (nGlobal_BoundTria > 0) Conn_BoundTria = Conn_Elem; break; - case RECTANGLE: + case QUADRILATERAL: nGlobal_BoundQuad = nElem_Total; if (nGlobal_BoundQuad > 0) Conn_BoundQuad = Conn_Elem; break; @@ -1890,7 +1886,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv su2double *Aux_Frict = NULL, *Aux_Heat = NULL, *Aux_yPlus = NULL, *Aux_Sens = NULL; unsigned short CurrentIndex; - int SendRecv, *Local_Halo; + int *Local_Halo; unsigned long Buffer_Send_nPoint[1], *Buffer_Recv_nPoint = NULL; unsigned long nLocalPoint = 0, MaxLocalPoint = 0; unsigned long iGlobal_Index = 0, nBuffer_Scalar = 0; @@ -2078,7 +2074,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } else { for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) { - SendRecv = config->GetMarker_All_SendRecv(iMarker); /*--- Checking for less than or equal to the rank, because there may be some periodic halo nodes that send info to the same rank. ---*/ @@ -3642,9 +3637,6 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve /*--- Local variables needed for merging with MPI ---*/ unsigned long iVertex, iMarker; - - int SendRecv; - unsigned long Buffer_Send_nPoint[1], *Buffer_Recv_nPoint = NULL; unsigned long nLocalPoint = 0, MaxLocalPoint = 0; unsigned long iGlobal_Index = 0, nBuffer_Scalar = 0; @@ -3664,7 +3656,6 @@ void COutput::MergeBaselineSolution(CConfig *config, CGeometry *geometry, CSolve } else { for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { if (config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) { - SendRecv = config->GetMarker_All_SendRecv(iMarker); /*--- Checking for less than or equal to the rank, because there may be some periodic halo nodes that send info to the same rank. ---*/ @@ -5671,9 +5662,9 @@ void COutput::SetCFL_Number(CSolver ****solver_container, CConfig **config, unsi /*--- Compute MG factor ---*/ - MGFactor[MESH_0] = 1.0; - for (iMesh = 1; iMesh <= config[val_iZone]->GetnMGLevels(); iMesh++) { - MGFactor[iMesh] = MGFactor[iMesh-1] * config[val_iZone]->GetCFL(iMesh)/config[val_iZone]->GetCFL(iMesh-1); + for (iMesh = 0; iMesh <= config[val_iZone]->GetnMGLevels(); iMesh++) { + if (iMesh == MESH_0) MGFactor[iMesh] = 1.0; + else MGFactor[iMesh] = MGFactor[iMesh-1] * config[val_iZone]->GetCFL(iMesh)/config[val_iZone]->GetCFL(iMesh-1); } if (Div < 1.0) power = config[val_iZone]->GetCFL_AdaptParam(0); @@ -5847,7 +5838,7 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << endl <<"-------------------------------------------------------------------------" << endl; Breakdown_file <<"| ___ _ _ ___ |" << endl; - Breakdown_file <<"| / __| | | |_ ) Release 4.0.0 \"Cardinal\" |" << endl; + Breakdown_file <<"| / __| | | |_ ) Release 4.0.1 \"Cardinal\" |" << endl; Breakdown_file <<"| \\__ \\ |_| |/ / |" << endl; Breakdown_file <<"| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |" << endl; Breakdown_file << "| |" << endl; @@ -6989,7 +6980,7 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr unsigned long iVertex, iPoint; unsigned short iDim, iMarker, Out1D; - su2double *Normal = NULL, Area = 0.0, OverArea = 0.0, UnitaryNormal[3], + su2double *Normal = NULL, Area = 0.0, OverArea = 0.0, UnitNormal[3], Stag_Pressure, Mach, Temperature, Pressure = 0.0, Density = 0.0, Velocity2, Enthalpy, RhoU, U,// local values at each node (Velocity2 = V^2). U = normal velocity SumPressure = 0.0, SumStagPressure = 0.0, SumArea = 0.0, SumMach = 0.0, SumTemperature = 0.0, SumForUref = 0.0, SumRhoU = 0.0, SumEnthalpy = 0.0,// sum of (local value ) * (dA) (integral) AveragePressure = 0.0, AverageMach = 0.0, AverageTemperature = 0.0, MassFlowRate = 0.0, // Area Averaged value ( sum / A ) @@ -7025,7 +7016,7 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr /*--- Compute area, and unitary normal ---*/ Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim]*Normal[iDim]; Area = sqrt(Area); - for (iDim = 0; iDim < nDim; iDim++) UnitaryNormal[iDim] = -Normal[iDim]/Area; + for (iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] = -Normal[iDim]/Area; if (compressible) { Pressure = solver_container->node[iPoint]->GetPressure(); @@ -7040,7 +7031,7 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr U = 0.0; for (iDim = 0; iDim < geometry->GetnDim(); iDim++) { - U += UnitaryNormal[iDim]*solver_container->node[iPoint]->GetVelocity(iDim); + U += UnitNormal[iDim]*solver_container->node[iPoint]->GetVelocity(iDim); } Enthalpy = solver_container->node[iPoint]->GetEnthalpy(); diff --git a/SU2_CFD/src/output_su2.cpp b/SU2_CFD/src/output_su2.cpp index 93da18f8c7b..dff6f6b86f4 100644 --- a/SU2_CFD/src/output_su2.cpp +++ b/SU2_CFD/src/output_su2.cpp @@ -2,7 +2,7 @@ * \file output_su2.cpp * \brief Main subroutines for output solver information. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -180,7 +180,7 @@ void COutput::SetSU2_MeshASCII(CConfig *config, CGeometry *geometry) { bound_line >> vnodes_triangle[0]; bound_line >> vnodes_triangle[1]; bound_line >> vnodes_triangle[2]; output_file << "\t" << vnodes_triangle[0] << "\t" << vnodes_triangle[1] << "\t" << vnodes_triangle[2] << endl; break; - case RECTANGLE: + case QUADRILATERAL: bound_line >> vnodes_quad[0]; bound_line >> vnodes_quad[1]; bound_line >> vnodes_quad[2]; bound_line >> vnodes_quad[3]; output_file << "\t" << vnodes_quad[0] << "\t" << vnodes_quad[1] << "\t" << vnodes_quad[2] << "\t" << vnodes_quad[3] << endl; break; diff --git a/SU2_CFD/src/output_tecplot.cpp b/SU2_CFD/src/output_tecplot.cpp index 9a87d7505df..92003357cc2 100644 --- a/SU2_CFD/src/output_tecplot.cpp +++ b/SU2_CFD/src/output_tecplot.cpp @@ -2,7 +2,7 @@ * \file output_tecplot.cpp * \brief Main subroutines for output solver information. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -659,7 +659,7 @@ void COutput::SetTecplotASCII_LowMemory(CConfig *config, CGeometry *geometry, CS geometry->elem[iElem]->GetNode(0)+1 <<" "<< geometry->elem[iElem]->GetNode(1)+1 <<" "<< geometry->elem[iElem]->GetNode(2)+1 <<" "<< geometry->elem[iElem]->GetNode(2)+1 << endl; } - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { Tecplot_File << geometry->elem[iElem]->GetNode(0)+1 <<" "<< geometry->elem[iElem]->GetNode(1)+1 <<" "<< geometry->elem[iElem]->GetNode(2)+1 <<" "<< geometry->elem[iElem]->GetNode(3)+1 << endl; diff --git a/SU2_CFD/src/solver_adjoint_discrete.cpp b/SU2_CFD/src/solver_adjoint_discrete.cpp index 9f4f106b5ba..859743466c1 100644 --- a/SU2_CFD/src/solver_adjoint_discrete.cpp +++ b/SU2_CFD/src/solver_adjoint_discrete.cpp @@ -2,7 +2,7 @@ * \file solver_adjoint_discrete.cpp * \brief Main subroutines for solving the discrete adjoint problem. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -41,7 +41,7 @@ CDiscAdjSolver::CDiscAdjSolver(CGeometry *geometry, CConfig *config){ CDiscAdjSolver::CDiscAdjSolver(CGeometry *geometry, CConfig *config, CSolver *direct_solver, unsigned short Kind_Solver, unsigned short iMesh){ - unsigned short iVar, iMarker, iDim, nZone; + unsigned short iVar, iMarker, iDim; bool restart = config->GetRestart(); @@ -55,7 +55,6 @@ CDiscAdjSolver::CDiscAdjSolver(CGeometry *geometry, CConfig *config, CSolver *di #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - nZone = geometry->GetnZone(); nVar = direct_solver->GetnVar(); nDim = geometry->GetnDim(); @@ -423,7 +422,7 @@ void CDiscAdjSolver::SetSensitivity(CGeometry *geometry, CConfig *config){ void CDiscAdjSolver::SetSurface_Sensitivity(CGeometry *geometry, CConfig *config){ unsigned short iMarker,iDim; unsigned long iVertex, iPoint; - su2double *Normal, Area, Prod, Sens = 0.0, SensDim; + su2double *Normal, Prod, Sens = 0.0, SensDim; su2double Total_Sens_Geo_local = 0.0; Total_Sens_Geo = 0.0; @@ -439,16 +438,13 @@ void CDiscAdjSolver::SetSurface_Sensitivity(CGeometry *geometry, CConfig *config iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); Prod = 0.0; - Area = 0.0; for (iDim = 0; iDim < nDim; iDim++){ /* --- retrieve the gradient calculated with AD -- */ SensDim = node[iPoint]->GetSensitivity(iDim); /* --- calculate scalar product for projection onto the normal vector ---*/ Prod += Normal[iDim]*SensDim; - Area += Normal[iDim]*Normal[iDim]; } - Area = sqrt(Area); /* --- projection of the gradient * calculated with AD onto the normal diff --git a/SU2_CFD/src/solver_adjoint_levelset.cpp b/SU2_CFD/src/solver_adjoint_levelset.cpp index 5547393d879..177fcc94ae1 100644 --- a/SU2_CFD/src/solver_adjoint_levelset.cpp +++ b/SU2_CFD/src/solver_adjoint_levelset.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_levelset.cpp * \brief Main subrotuines for solving the level set problem. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index ef381ae6e6e..5f1bce88c59 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_mean.cpp * \brief Main subrotuines for solving adjoint problems (Euler, Navier-Stokes, etc.). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -3940,7 +3940,6 @@ void CAdjEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_ CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - su2double Area, UnitNormal[3]; su2double *V_inlet, *V_domain, *Normal, *Psi_domain, *Psi_inlet; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -3965,14 +3964,6 @@ void CAdjEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_ for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); - - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; - /*--- Allocate the value at the inlet ---*/ V_inlet = solver_container[FLOW_SOL]->GetCharacPrimVar(val_marker, iVertex); @@ -4064,7 +4055,6 @@ void CAdjEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iVar, iDim; unsigned long iVertex, iPoint, Point_Normal; - su2double Area, UnitNormal[3]; su2double *V_outlet, *V_domain, *Normal, *Psi_domain, *Psi_outlet; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -4089,14 +4079,6 @@ void CAdjEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); - - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; - /*--- Allocate the value at the inlet ---*/ V_outlet = solver_container[FLOW_SOL]->GetCharacPrimVar(val_marker, iVertex); @@ -4475,9 +4457,9 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, /*--- Compute (Vn - Ubn).n term for use in the BC. ---*/ /*--- Compute the new fictious state at the outlet ---*/ - Density = pow(P_Exit/Entropy,1.0/Gamma); Pressure = P_Exit; - SoundSpeed = sqrt(Gamma*P_Exit/Density); + Density = pow(Pressure/Entropy,1.0/Gamma); + SoundSpeed = sqrt(Gamma*Pressure/Density); Vn_Exit = Riemann - 2.0*SoundSpeed/Gamma_Minus_One; Velocity2 = 0.0; for (iDim = 0; iDim < nDim; iDim++) { @@ -4890,7 +4872,7 @@ void CAdjEulerSolver::BC_Engine_Bleed(CGeometry *geometry, CSolver **solver_cont void CAdjEulerSolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned long iVertex, iPoint, Point_Normal; - su2double Area, UnitNormal[3], *Normal, *V_domain, *V_exhaust, *Psi_domain, *Psi_exhaust; + su2double *Normal, *V_domain, *V_exhaust, *Psi_domain, *Psi_exhaust; unsigned short iVar, iDim; bool implicit = (config->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); @@ -4913,14 +4895,6 @@ void CAdjEulerSolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_co geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); - - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); - - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; /*--- Index of the closest interior node ---*/ diff --git a/SU2_CFD/src/solver_adjoint_tne2.cpp b/SU2_CFD/src/solver_adjoint_tne2.cpp index 9dd274e03c3..6ca0413dcbf 100644 --- a/SU2_CFD/src/solver_adjoint_tne2.cpp +++ b/SU2_CFD/src/solver_adjoint_tne2.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_tne2.cpp * \brief Main subrotuines for solving adjoint problems (Euler, Navier-Stokes, etc.). * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -325,7 +325,6 @@ CAdjTNE2EulerSolver::CAdjTNE2EulerSolver(CGeometry *geometry, CConfig *config, u } CAdjTNE2EulerSolver::~CAdjTNE2EulerSolver(void) { - unsigned short iMarker; if (PsiRho_Inf != NULL) delete [] PsiRho_Inf; if (Phi_Inf != NULL) delete [] Phi_Inf; @@ -333,15 +332,15 @@ CAdjTNE2EulerSolver::~CAdjTNE2EulerSolver(void) { if (Sens_AoA != NULL) delete [] Sens_AoA; if (Sens_Geo != NULL) delete [] Sens_Geo; if (Sens_Press != NULL) delete [] Sens_Press; - if (Sens_Temp != NULL) delete [] Sens_Temp; - if (iPoint_UndLapl != NULL) delete [] iPoint_UndLapl; - if (jPoint_UndLapl != NULL) delete [] jPoint_UndLapl; - - if (CSensitivity != NULL) { - for (iMarker = 0; iMarker < nMarker; iMarker++) - delete CSensitivity[iMarker]; - delete [] CSensitivity; - } +// if (Sens_Temp != NULL) delete [] Sens_Temp; +// if (iPoint_UndLapl != NULL) delete [] iPoint_UndLapl; +// if (jPoint_UndLapl != NULL) delete [] jPoint_UndLapl; +// +// if (CSensitivity != NULL) { +// for (iMarker = 0; iMarker < nMarker; iMarker++) +// delete CSensitivity[iMarker]; +// delete [] CSensitivity; +// } } @@ -349,7 +348,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; @@ -364,9 +362,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -384,6 +379,9 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) #ifdef HAVE_MPI + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -392,7 +390,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; } @@ -473,7 +470,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; @@ -488,9 +484,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -507,7 +500,10 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con } #ifdef HAVE_MPI - + int send_to, receive_from; + + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -516,7 +512,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *con /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; } @@ -598,7 +593,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; @@ -613,9 +607,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -632,6 +623,10 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig } #ifdef HAVE_MPI + int send_to, receive_from; + + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, @@ -641,7 +636,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_Limit[iVar*nVertexR+iVertex] = Buffer_Send_Limit[iVar*nVertexR+iVertex]; } @@ -722,7 +716,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig unsigned short iVar, iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; @@ -741,9 +734,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; @@ -761,7 +751,10 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig } #ifdef HAVE_MPI + int send_to, receive_from; + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -770,7 +763,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) for (iDim = 0; iDim < nDim; iDim++) Buffer_Receive_Gradient[iDim*nVar*nVertexR+iVar*nVertexR+iVertex] = Buffer_Send_Gradient[iDim*nVar*nVertexR+iVar*nVertexR+iVertex]; @@ -853,7 +845,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR; unsigned long nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta; su2double phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double *Buffer_Receive_Undivided_Laplacian = NULL; @@ -869,9 +860,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -888,7 +876,10 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf } #ifdef HAVE_MPI - + int send_to, receive_from; + + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Undivided_Laplacian, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -897,7 +888,6 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_Undivided_Laplacian[iVar*nVertexR+iVertex] = Buffer_Send_Undivided_Laplacian[iVar*nVertexR+iVertex]; } @@ -976,15 +966,17 @@ void CAdjTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, CConf void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - bool ionization; - unsigned short iMarker, iDim, nHeavy, nEl; +// bool ionization; + unsigned short iMarker, iDim; +// unsigned short nHeavy, nEl; unsigned long iVertex, iPoint; su2double Alpha = (config->GetAoA()*PI_NUMBER)/180.0; su2double Beta = (config->GetAoS()*PI_NUMBER)/180.0; su2double RefAreaCoeff = config->GetRefAreaCoeff(); su2double RefLengthMoment = config->GetRefLengthMoment(); su2double *RefOriginMoment = config->GetRefOriginMoment(0); - su2double *ForceProj_Vector, x = 0.0, y = 0.0, z = 0.0, *Normal, C_d, C_l, C_t, C_q; + su2double *ForceProj_Vector, x = 0.0, y = 0.0, z = 0.0, *Normal, C_d, C_l; +// su2double C_t, C_q; su2double x_origin, y_origin, z_origin, Area; su2double RefVel2, RefDensity; int rank = MASTER_NODE; @@ -996,9 +988,9 @@ void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, ForceProj_Vector = new su2double[nDim]; /*--- Determine the number of heavy species ---*/ - ionization = config->GetIonization(); - if (ionization) { nHeavy = nSpecies-1; nEl = 1; } - else { nHeavy = nSpecies; nEl = 0; } +// ionization = config->GetIonization(); +// if (ionization) { nHeavy = nSpecies-1; nEl = 1; } +// else { nHeavy = nSpecies; nEl = 0; } /*--- Acquire free stream velocity & density ---*/ RefVel2 = 0.0; @@ -1011,8 +1003,8 @@ void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, #ifndef HAVE_MPI C_d = solver_container[TNE2_SOL]->GetTotal_CDrag(); C_l = solver_container[TNE2_SOL]->GetTotal_CLift(); - C_t = solver_container[TNE2_SOL]->GetTotal_CT(); - C_q = solver_container[TNE2_SOL]->GetTotal_CQ(); +// C_t = solver_container[TNE2_SOL]->GetTotal_CT(); +// C_q = solver_container[TNE2_SOL]->GetTotal_CQ(); #else su2double *sbuf_force = new su2double[4]; su2double *rbuf_force = new su2double[4]; @@ -1026,8 +1018,8 @@ void CAdjTNE2EulerSolver::SetForceProj_Vector(CGeometry *geometry, C_d = rbuf_force[0]; C_l = rbuf_force[1]; - C_t = rbuf_force[2]; - C_q = rbuf_force[3]; +// C_t = rbuf_force[2]; +// C_q = rbuf_force[3]; delete [] sbuf_force; delete [] rbuf_force; #endif @@ -1800,6 +1792,7 @@ void CAdjTNE2EulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSysSolve system; IterLinSol = system.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + SetIterLinSolver(IterLinSol); /*--- Update solution (system written in terms of increments) ---*/ @@ -1824,13 +1817,16 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, CConfig *config) { unsigned long iSpecies, iVar, jVar, iVertex, iPoint, Neigh; unsigned short iDim, iMarker, iNeigh; - unsigned short P_INDEX, VEL_INDEX, RHO_INDEX, H_INDEX; + unsigned short P_INDEX, VEL_INDEX; +// unsigned short RHO_INDEX, H_INDEX; su2double *d, *Normal, *UnitNormal; su2double *Psi, *U, *V, *dPdU, *USens; - su2double rho, rhou, rhov, rhow, rhoE, rhoEve, H, p; + su2double rho, rhou, rhov, rhow, H, p; +// su2double rhoE, rhoEve; su2double conspsi, Area; su2double Mach_Inf; - su2double **PrimVar_Grad, **ConsVar_Grad, *ConsPsi_Grad; + su2double **PrimVar_Grad, *ConsPsi_Grad; +// su2double **ConsVar_Grad; su2double ConsPsi, d_press, grad_v, v_gradconspsi; /*--- Initialization ---*/ @@ -1840,7 +1836,7 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, U = NULL; USens = NULL; PrimVar_Grad = NULL; - ConsVar_Grad = NULL; +// ConsVar_Grad = NULL; ConsPsi_Grad = NULL; /*--- Allocate arrays ---*/ @@ -1855,8 +1851,8 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, Total_Sens_Temp = 0.0; // Total_Sens_Far = 0.0; - RHO_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhoIndex(); - H_INDEX = solver_container[TNE2_SOL]->node[0]->GetHIndex(); +// RHO_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhoIndex(); +// H_INDEX = solver_container[TNE2_SOL]->node[0]->GetHIndex(); P_INDEX = solver_container[TNE2_SOL]->node[0]->GetPIndex(); VEL_INDEX = solver_container[TNE2_SOL]->node[0]->GetVelIndex(); @@ -1922,7 +1918,7 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, Area = sqrt(Area); PrimVar_Grad = solver_container[TNE2_SOL]->node[iPoint]->GetGradient_Primitive(); - ConsVar_Grad = solver_container[TNE2_SOL]->node[iPoint]->GetGradient(); +// ConsVar_Grad = solver_container[TNE2_SOL]->node[iPoint]->GetGradient(); ConsPsi_Grad = node[iPoint]->GetAuxVarGradient(); ConsPsi = node[iPoint]->GetAuxVar(); @@ -1969,21 +1965,21 @@ void CAdjTNE2EulerSolver::Inviscid_Sensitivity(CGeometry *geometry, Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); Mach_Inf = config->GetMach(); - rho = V[RHO_INDEX]; +// rho = V[RHO_INDEX]; rhou = U[nSpecies]; rhov = U[nSpecies+1]; if (nDim == 2) { rhow = 0.0; - rhoE = U[nSpecies+nDim]; - rhoEve = U[nSpecies+nDim+1]; +// rhoE = U[nSpecies+nDim]; +// rhoEve = U[nSpecies+nDim+1]; } else { rhow = U[nSpecies+2]; - rhoE = U[nSpecies+nDim]; - rhoEve = U[nSpecies+nDim+1]; +// rhoE = U[nSpecies+nDim]; +// rhoEve = U[nSpecies+nDim+1]; } p = V[P_INDEX]; - H = V[H_INDEX]; +// H = V[H_INDEX]; Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) @@ -2149,7 +2145,8 @@ void CAdjTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, bool implicit; unsigned short iDim, iVar, jVar; unsigned long iVertex, iPoint; - su2double *d, *Normal, Area, *UnitNormal, *Coord; + su2double *d, *Normal, Area, *UnitNormal; +// su2double *Coord; su2double *Psi, *Psi_Aux, phin, bcn; su2double *U, *V, *dPdU; @@ -2182,7 +2179,7 @@ void CAdjTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, /*--- Get node information ---*/ Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - Coord = geometry->node[iPoint]->GetCoord(); +// Coord = geometry->node[iPoint]->GetCoord(); /*--- Compute geometry parameters ---*/ Area = 0.0; @@ -2251,7 +2248,8 @@ void CAdjTNE2EulerSolver::BC_Sym_Plane(CGeometry *geometry, bool implicit; unsigned short iDim, iVar, jVar; unsigned long iVertex, iPoint; - su2double *Normal, Area, *UnitNormal, *Coord; + su2double *Normal, Area, *UnitNormal; +// su2double *Coord; su2double *Psi, *Psi_Aux, phin; su2double *U, *V, *dPdU; @@ -2281,7 +2279,7 @@ void CAdjTNE2EulerSolver::BC_Sym_Plane(CGeometry *geometry, /*--- Get node information ---*/ Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - Coord = geometry->node[iPoint]->GetCoord(); +// Coord = geometry->node[iPoint]->GetCoord(); /*--- Compute geometry parameters ---*/ Area = 0.0; @@ -3079,11 +3077,12 @@ void CAdjTNE2NSSolver::Viscous_Sensitivity(CGeometry *geometry, // Adjoint problem declarations su2double vartheta, dnPsiE, dnPsiEve, div_phi, GPsiEdotVel; su2double B1, B21, B22, B23, B24, B31, B32, B33, B34; - su2double *Psi, *d; + su2double *Psi; + //su2double *d; su2double **GradPsi, **SigmaPhi, **SigmaPsiE; Psi = NULL; - d = NULL; + //d = NULL; GradPsi = NULL; SigmaPhi = new su2double *[nDim]; @@ -3774,10 +3773,13 @@ void CAdjTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, bool implicit, heat_flux_obj; - unsigned long iVertex, iPoint, total_index, Point_Normal; + unsigned long iVertex, iPoint, total_index; +// unsigned long Point_Normal; unsigned short iDim, iVar, jVar; - unsigned short RHOS_INDEX, RHO_INDEX, T_INDEX, TVE_INDEX; - su2double *V, *dPdU, *d, q, dn; + unsigned short T_INDEX, TVE_INDEX; +// unsigned short RHOS_INDEX, RHO_INDEX; +// su2double *V, *dPdU; + su2double *d, q, dn; su2double *GradT, *GradTve; su2double ktr, kve, qtr, qve; su2double Area; @@ -3795,9 +3797,9 @@ void CAdjTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, Psi = new su2double[nVar]; Normal = new su2double[nDim]; - /*--- Get primitive vector locators ---*/ - RHOS_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhosIndex(); - RHO_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhoIndex(); +// /*--- Get primitive vector locators ---*/ +// RHOS_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhosIndex(); +// RHO_INDEX = solver_container[TNE2_SOL]->node[0]->GetRhoIndex(); T_INDEX = solver_container[TNE2_SOL]->node[0]->GetTIndex(); TVE_INDEX = solver_container[TNE2_SOL]->node[0]->GetTveIndex(); @@ -3806,7 +3808,7 @@ void CAdjTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, /*--- Get node and neighbor information ---*/ iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor(); +// Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor(); if (geometry->node[iPoint]->GetDomain()) { @@ -3825,8 +3827,8 @@ void CAdjTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, Psi[iVar] = node[iPoint]->GetSolution(iVar); /*--- Retrieve primitive variables at the boundary node ---*/ - V = solver_container[TNE2_SOL]->node[iPoint]->GetPrimitive(); - dPdU = solver_container[TNE2_SOL]->node[iPoint]->GetdPdU(); +// V = solver_container[TNE2_SOL]->node[iPoint]->GetPrimitive(); +// dPdU = solver_container[TNE2_SOL]->node[iPoint]->GetdPdU(); /*--- Normal vector for this vertex ---*/ // Note: Convention is outward facing normal diff --git a/SU2_CFD/src/solver_adjoint_turbulent.cpp b/SU2_CFD/src/solver_adjoint_turbulent.cpp index f8e012b15c8..700a3d68e75 100644 --- a/SU2_CFD/src/solver_adjoint_turbulent.cpp +++ b/SU2_CFD/src/solver_adjoint_turbulent.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_turbulent.cpp * \brief Main subrotuines for solving adjoint problems (Euler, Navier-Stokes, etc.). * \author F. Palacios, A. Bueno, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 0d9fad87a89..3319d47d1c1 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file solution_direct_elasticity.cpp * \brief Main subrotuines for solving the linear elasticity equation. * \author F. Palacios, R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -35,9 +35,9 @@ CFEASolver::CFEASolver(void) : CSolver() { } CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { - unsigned long iPoint; - unsigned short iVar, jVar, iDim, NodesElement = 0, nLineLets; - unsigned long nMarker, nElem; + unsigned long iPoint; + unsigned short iVar, jVar, NodesElement = 0, nLineLets; + unsigned short iDim; su2double dull_val; int rank = MASTER_NODE; @@ -47,9 +47,7 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { nPoint = geometry->GetnPoint(); nPointDomain = geometry->GetnPointDomain(); - nElem = geometry->GetnElem(); nDim = geometry->GetnDim(); - nMarker = geometry->GetnMarker(); node = new CVariable*[nPoint]; @@ -508,7 +506,7 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; @@ -565,7 +563,7 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; @@ -855,7 +853,7 @@ void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_co unsigned short val_marker) { unsigned long iPoint, iVertex, total_index; unsigned short iVar, iDim; - su2double *Normal, Area, UnitaryNormal[3]; + su2double *Normal, Area, UnitaryNormal[3] = {0.0,0.0,0.0}; su2double TotalDispl = config->GetDispl_Value(config->GetMarker_All_TagBound(val_marker)); @@ -913,7 +911,8 @@ void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, su2double a[3], b[3]; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; + //su2double Length_Elem = 0.0, Area_Elem = 0.0; unsigned short iDim; su2double TotalLoad = config->GetLoad_Value(config->GetMarker_All_TagBound(val_marker)); @@ -930,7 +929,7 @@ void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + //Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); Normal_Elem[0] = a[1]; Normal_Elem[1] = -(a[0]); @@ -943,7 +942,7 @@ void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, b[iDim] = Coord_1[iDim]-Coord_2[iDim]; } - Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); + //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); Normal_Elem[0] = -(0.5*(a[1]*b[2]-a[2]*b[1])); Normal_Elem[1] = -(-0.5*(a[0]*b[2]-a[2]*b[0])); @@ -978,10 +977,12 @@ void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - su2double a[3], b[3], AC[3], BD[3]; + su2double a[3] = {0.0, 0.0, 0.0}, b[3] = {0.0, 0.0, 0.0}; + su2double AC[3] = {0.0, 0.0, 0.0}, BD[3] = {0.0, 0.0, 0.0}; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double Length_Elem = 0.0, Area_Elem = 0.0; +// su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; unsigned short iDim; su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); @@ -1019,14 +1020,6 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - if (nDim == 3) { - - Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ - Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); - } - - } /*--- Compute area (3D), and length of the surfaces (2D) ---*/ @@ -1035,12 +1028,13 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); +// Normal_Elem[0] = a[1]; +// Normal_Elem[1] = -(a[0]); - } - - if (nDim == 3) { + } else { + + Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); + Coord_2 = geometry->node[Point_2]->GetCoord(); if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ @@ -1057,12 +1051,12 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - } - - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ + + Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); + Coord_3 = geometry->node[Point_3]->GetCoord(); for (iDim = 0; iDim < nDim; iDim++) { AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; @@ -1101,7 +1095,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN LinSysRes.AddBlock(Point_1, Residual); LinSysRes.AddBlock(Point_2, Residual); } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; @@ -1123,10 +1117,12 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - su2double a[3], b[3], AC[3], BD[3]; + su2double a[3] = {0.0, 0.0, 0.0}, b[3] = {0.0, 0.0, 0.0}; + su2double AC[3] = {0.0, 0.0, 0.0}, BD[3] = {0.0, 0.0, 0.0}; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double Length_Elem = 0.0, Area_Elem = 0.0; +// su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; unsigned short iDim; su2double LoadAmplitude = config->GetLoad_Sine_Amplitude(config->GetMarker_All_TagBound(val_marker)); @@ -1146,14 +1142,6 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - if (nDim == 3) { - - Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ - Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); - } - - } /*--- Compute area (3D), and length of the surfaces (2D) ---*/ @@ -1162,12 +1150,13 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); +// Normal_Elem[0] = a[1]; +// Normal_Elem[1] = -(a[0]); - } - - if (nDim == 3) { + } else { // 3D + + Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); + Coord_2 = geometry->node[Point_2]->GetCoord(); if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ @@ -1187,9 +1176,10 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - } - - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ + + Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); + Coord_3 = geometry->node[Point_3]->GetCoord(); for (iDim = 0; iDim < nDim; iDim++) { AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; @@ -1230,7 +1220,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; @@ -1249,8 +1239,6 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C } - - void CFEASolver::BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } @@ -1266,7 +1254,8 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, unsigned long PointCorners[8]; unsigned short nNodes=0, iNodes, iDim, jDim, form2d; - su2double CoordCorners[8][3], CoordGauss[8][3]; + su2double CoordCorners[8][3]; +// su2double CoordGauss[8][3]; /*--- Container of the shape functions ---*/ CNumerics *numerics; @@ -1301,7 +1290,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE){ nNodes = 3;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE){ nNodes = 4;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL){ nNodes = 4;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON){ nNodes = 4;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID){ nNodes = 5;} if (geometry->elem[iElem]->GetVTK_Type() == PRISM){ nNodes = 6;} @@ -1320,7 +1309,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CoordCorners[iNodes][iDim] = geometry->node[PointCorners[iNodes]]->GetCoord(iDim); /*--- Initialization of the gauss coordinate matrix ---*/ - CoordGauss[iNodes][iDim] = 0.0; +// CoordGauss[iNodes][iDim] = 0.0; } } @@ -1535,7 +1524,7 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver CSysSolve femSystem; IterLinSol = femSystem.Solve(MassMatrix, LinSysRes, LinSysSol, geometry, config); - + SetIterLinSolver(IterLinSol); /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ @@ -1625,7 +1614,7 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver CSysSolve femSystem; IterLinSol = femSystem.Solve(StiffMatrixTime, LinSysRes, LinSysSol, geometry, config); - + SetIterLinSolver(IterLinSol); } else { @@ -1633,7 +1622,7 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver CSysSolve femSystem; IterLinSol = femSystem.Solve(StiffMatrixSpace, LinSysRes, LinSysSol, geometry, config); - + SetIterLinSolver(IterLinSol); } @@ -1761,6 +1750,7 @@ void CFEASolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_c CSysSolve system; IterLinSol = system.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + SetIterLinSolver(IterLinSol); /*--- MPI solution ---*/ @@ -1770,7 +1760,6 @@ void CFEASolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_c Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); - /*--- Set maximum residual to zero ---*/ for (iVar = 0; iVar < nVar; iVar++) { @@ -1935,7 +1924,6 @@ void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - unsigned short nVertexFEA, nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; @@ -2449,16 +2437,9 @@ void CFEASolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_con void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - unsigned long iPoint; - su2double *valSolutionPred, *valSolution; - - unsigned long nPoint = fea_geometry[MESH_0]->GetnPoint(); - unsigned short nDim = fea_geometry[MESH_0]->GetnDim(); + su2double *valSolutionPred; - valSolutionPred=new su2double [nDim]; - valSolution=new su2double [nDim]; - - for (iPoint=0; iPointGetnPoint(); iPoint++){ valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); diff --git a/SU2_CFD/src/solver_direct_heat.cpp b/SU2_CFD/src/solver_direct_heat.cpp index f181ee80fc2..9daf108b611 100644 --- a/SU2_CFD/src/solver_direct_heat.cpp +++ b/SU2_CFD/src/solver_direct_heat.cpp @@ -2,7 +2,7 @@ * \file solution_direct_heat.cpp * \brief Main subrotuines for solving the heat equation * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index aedb261744f..5c7ca1b6284 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -2,7 +2,7 @@ * \file solution_direct_mean.cpp * \brief Main subrotuines for solving direct problems (Euler, Navier-Stokes, etc.). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -4109,28 +4109,28 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { unsigned short iDim, iMarker, Boundary, Monitoring, iMarker_Monitoring; su2double Pressure = 0.0, *Normal = NULL, MomentDist[3] = {0.0,0.0,0.0}, *Coord, Area, factor, NFPressOF, RefVel2, RefTemp, RefDensity, RefPressure, Mach2Vel, Mach_Motion, - UnitNormal[3] = {0.0,0.0,0.0}, Force[3] = {0.0,0.0,0.0}; + Force[3] = {0.0,0.0,0.0}; string Marker_Tag, Monitoring_Tag; #ifdef HAVE_MPI - su2double MyAllBound_CDrag_Inv, MyAllBound_CLift_Inv, MyAllBound_CSideForce_Inv, MyAllBound_CEff_Inv, MyAllBound_CMx_Inv, MyAllBound_CMy_Inv, MyAllBound_CMz_Inv, MyAllBound_CFx_Inv, MyAllBound_CFy_Inv, MyAllBound_CFz_Inv, MyAllBound_CT_Inv, MyAllBound_CQ_Inv, MyAllBound_CMerit_Inv, MyAllBound_CNearFieldOF_Inv, *MySurface_CLift_Inv = NULL, *MySurface_CDrag_Inv = NULL, *MySurface_CSideForce_Inv = NULL, *MySurface_CEff_Inv = NULL, *MySurface_CFx_Inv = NULL, *MySurface_CFy_Inv = NULL, *MySurface_CFz_Inv = NULL, *MySurface_CMx_Inv = NULL, *MySurface_CMy_Inv = NULL, *MySurface_CMz_Inv = NULL; + su2double MyAllBound_CDrag_Inv, MyAllBound_CLift_Inv, MyAllBound_CSideForce_Inv, MyAllBound_CMx_Inv, MyAllBound_CMy_Inv, MyAllBound_CMz_Inv, MyAllBound_CFx_Inv, MyAllBound_CFy_Inv, MyAllBound_CFz_Inv, MyAllBound_CT_Inv, MyAllBound_CQ_Inv, MyAllBound_CNearFieldOF_Inv, *MySurface_CLift_Inv = NULL, *MySurface_CDrag_Inv = NULL, *MySurface_CSideForce_Inv = NULL, *MySurface_CEff_Inv = NULL, *MySurface_CFx_Inv = NULL, *MySurface_CFy_Inv = NULL, *MySurface_CFz_Inv = NULL, *MySurface_CMx_Inv = NULL, *MySurface_CMy_Inv = NULL, *MySurface_CMz_Inv = NULL; #endif - su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; - su2double Beta = config->GetAoS()*PI_NUMBER/180.0; - su2double RefAreaCoeff = config->GetRefAreaCoeff(); - su2double RefLengthMoment = config->GetRefLengthMoment(); - su2double Gas_Constant = config->GetGas_ConstantND(); - su2double *Origin = config->GetRefOriginMoment(0); - bool grid_movement = config->GetGrid_Movement(); - bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); - bool freesurface = (config->GetKind_Regime() == FREESURFACE); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double *Origin = config->GetRefOriginMoment(0); + bool grid_movement = config->GetGrid_Movement(); + bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); + bool freesurface = (config->GetKind_Regime() == FREESURFACE); /*--- Evaluate reference values for non-dimensionalization. For dynamic meshes, use the motion Mach number as a reference value - for computing the force coefficients. Otherwise, use the freestream values, - which is the standard convention. ---*/ + for computing the force coefficients. Otherwise, use the freestream + values, which is the standard convention. ---*/ RefTemp = Temperature_Inf; RefDensity = Density_Inf; @@ -4234,7 +4234,6 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim]*Normal[iDim]; Area = sqrt(Area); for (iDim = 0; iDim < nDim; iDim++) { - UnitNormal[iDim] = Normal[iDim]/Area; MomentDist[iDim] = Coord[iDim] - Origin[iDim]; } @@ -4344,7 +4343,7 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { MyAllBound_CDrag_Inv = AllBound_CDrag_Inv; AllBound_CDrag_Inv = 0.0; MyAllBound_CLift_Inv = AllBound_CLift_Inv; AllBound_CLift_Inv = 0.0; MyAllBound_CSideForce_Inv = AllBound_CSideForce_Inv; AllBound_CSideForce_Inv = 0.0; - MyAllBound_CEff_Inv = AllBound_CEff_Inv; AllBound_CEff_Inv = 0.0; + AllBound_CEff_Inv = 0.0; MyAllBound_CMx_Inv = AllBound_CMx_Inv; AllBound_CMx_Inv = 0.0; MyAllBound_CMy_Inv = AllBound_CMy_Inv; AllBound_CMy_Inv = 0.0; MyAllBound_CMz_Inv = AllBound_CMz_Inv; AllBound_CMz_Inv = 0.0; @@ -4353,7 +4352,7 @@ void CEulerSolver::Inviscid_Forces(CGeometry *geometry, CConfig *config) { MyAllBound_CFz_Inv = AllBound_CFz_Inv; AllBound_CFz_Inv = 0.0; MyAllBound_CT_Inv = AllBound_CT_Inv; AllBound_CT_Inv = 0.0; MyAllBound_CQ_Inv = AllBound_CQ_Inv; AllBound_CQ_Inv = 0.0; - MyAllBound_CMerit_Inv = AllBound_CMerit_Inv; AllBound_CMerit_Inv = 0.0; + AllBound_CMerit_Inv = 0.0; MyAllBound_CNearFieldOF_Inv = AllBound_CNearFieldOF_Inv; AllBound_CNearFieldOF_Inv = 0.0; SU2_MPI::Allreduce(&MyAllBound_CDrag_Inv, &AllBound_CDrag_Inv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); @@ -6597,10 +6596,10 @@ void CEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, unsigned long iVertex, iPoint, Point_Normal; su2double *GridVel; - su2double Area, UnitNormal[3]; - su2double Density, Pressure, Velocity[3], Energy; - su2double Density_Bound, Pressure_Bound, Vel_Bound[3]; - su2double Density_Infty, Pressure_Infty, Vel_Infty[3]; + su2double Area, UnitNormal[3] = {0.0,0.0,0.0}; + su2double Density, Pressure, Energy, Velocity[3] = {0.0,0.0,0.0}; + su2double Density_Bound, Pressure_Bound, Vel_Bound[3] = {0.0,0.0,0.0}; + su2double Density_Infty, Pressure_Infty, Vel_Infty[3] = {0.0,0.0,0.0}; su2double SoundSpeed, Entropy, Velocity2, Vn; su2double SoundSpeed_Bound, Entropy_Bound, Vel2_Bound, Vn_Bound; su2double SoundSpeed_Infty, Entropy_Infty, Vel2_Infty, Vn_Infty, Qn_Infty; @@ -6609,13 +6608,14 @@ void CEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container, su2double Gas_Constant = config->GetGas_ConstantND(); - bool implicit = config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT; - bool grid_movement = config->GetGrid_Movement(); - bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); - bool freesurface = (config->GetKind_Regime() == FREESURFACE); - bool viscous = config->GetViscous(); - bool tkeNeeded = (((config->GetKind_Solver() == RANS )|| (config->GetKind_Solver() == DISC_ADJ_RANS)) + bool implicit = config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT; + bool grid_movement = config->GetGrid_Movement(); + bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); + bool freesurface = (config->GetKind_Regime() == FREESURFACE); + bool viscous = config->GetViscous(); + bool tkeNeeded = (((config->GetKind_Solver() == RANS ) || + (config->GetKind_Solver() == DISC_ADJ_RANS)) && (config->GetKind_Turb_Model() == SST)); su2double *Normal = new su2double[nDim]; @@ -8031,7 +8031,6 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - su2double Area, UnitNormal[3]; su2double *V_inlet, *V_domain; su2double Density, Pressure, Temperature, Energy, *Velocity, Velocity2; @@ -8109,14 +8108,6 @@ void CEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_con geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); - - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; - /*--- Set various quantities in the solver class ---*/ conv_numerics->SetNormal(Normal); @@ -8184,7 +8175,6 @@ void CEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver_co CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; - su2double Area, UnitNormal[3]; su2double *V_outlet, *V_domain; bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); @@ -8237,14 +8227,6 @@ void CEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver_co geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); - - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; - /*--- Set various quantities in the solver class ---*/ conv_numerics->SetNormal(Normal); @@ -8486,34 +8468,34 @@ void CEulerSolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_conta unsigned short iDim; unsigned long iVertex, iPoint, Point_Normal; su2double Exhaust_Pressure, Exhaust_Temperature, Velocity[3], Velocity2, H_Exhaust, Temperature, Riemann, Area, UnitNormal[3], Pressure, Density, Energy, Mach2, SoundSpeed2, SoundSpeed_Exhaust2, Vel_Mag, alpha, aa, bb, cc, dd, Flow_Dir[3]; - su2double *V_exhaust, *V_domain, Target_Exhaust_Pressure, Exhaust_Pressure_old, Exhaust_Pressure_inc; - + su2double *V_exhaust, *V_domain; su2double Gas_Constant = config->GetGas_ConstantND(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool viscous = config->GetViscous(); string Marker_Tag = config->GetMarker_All_TagBound(val_marker); bool tkeNeeded = (((config->GetKind_Solver() == RANS )|| (config->GetKind_Solver() == DISC_ADJ_RANS)) && (config->GetKind_Turb_Model() == SST)); - su2double DampingFactor = config->GetDamp_Engine_Exhaust(); - su2double Baseline_Press = 0.75 * config->GetPressure_FreeStreamND(); +// su2double Target_Exhaust_Pressure, Exhaust_Pressure_old, Exhaust_Pressure_inc; +// su2double DampingFactor = config->GetDamp_Engine_Exhaust(); +// su2double Baseline_Press = 0.75 * config->GetPressure_FreeStreamND(); su2double *Normal = new su2double[nDim]; /*--- Retrieve the specified exhaust pressure in the engine (non-dimensional). ---*/ - Target_Exhaust_Pressure = config->GetExhaust_Pressure_Target(Marker_Tag) / config->GetPressure_Ref(); +// Target_Exhaust_Pressure = config->GetExhaust_Pressure_Target(Marker_Tag) / config->GetPressure_Ref(); /*--- Retrieve the old exhaust pressure in the engine exhaust (this has been computed in a preprocessing). ---*/ - Exhaust_Pressure_old = config->GetExhaust_Pressure(Marker_Tag); +// Exhaust_Pressure_old = config->GetExhaust_Pressure(Marker_Tag); /*--- Compute the Pressure increment ---*/ - Exhaust_Pressure_inc = (1.0 - (Exhaust_Pressure_old/Target_Exhaust_Pressure)) * Baseline_Press; +// Exhaust_Pressure_inc = (1.0 - (Exhaust_Pressure_old/Target_Exhaust_Pressure)) * Baseline_Press; /*--- Estimate the new exhaust pressure ---*/ - - Exhaust_Pressure = (1.0 - DampingFactor) * Exhaust_Pressure_old + DampingFactor * (Exhaust_Pressure_old + Exhaust_Pressure_inc); + +// Exhaust_Pressure = (1.0 - DampingFactor) * Exhaust_Pressure_old + DampingFactor * (Exhaust_Pressure_old + Exhaust_Pressure_inc); /*--- The temperature is given (no iteration is required) ---*/ @@ -8521,6 +8503,7 @@ void CEulerSolver::BC_Engine_Exhaust(CGeometry *geometry, CSolver **solver_conta Exhaust_Temperature /= config->GetTemperature_Ref(); /*--- The pressure is given (no iteration is required) ---*/ + /*--- CHECK: the above iterative process is overwritten on the next line. ---*/ Exhaust_Pressure = config->GetExhaust_Pressure_Target(Marker_Tag); Exhaust_Pressure /= config->GetPressure_Ref(); @@ -9526,7 +9509,7 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con if (boundary == ACTDISK_INLET) { - Pin = iPoint; Pout = jPoint; + Pin = iPoint; for (iVar = 0; iVar < nPrimVar; iVar++) { PrimVar_out[iVar] = Buffer_Receive_V[iVar]; @@ -9536,7 +9519,7 @@ void CEulerSolver::BC_ActDisk_Boundary(CGeometry *geometry, CSolver **solver_con } if (boundary == ACTDISK_OUTLET) { - Pout = iPoint; Pin = jPoint; + Pout = iPoint; for (iVar = 0; iVar < nPrimVar; iVar++) { PrimVar_out[iVar] = node[Pout]->GetPrimitive(iVar); @@ -11625,29 +11608,29 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { unsigned short Boundary, Monitoring, iMarker, iMarker_Monitoring, iDim, jDim; su2double Viscosity = 0.0, div_vel, *Normal, MomentDist[3] = {0.0, 0.0, 0.0}, WallDist[3] = {0.0, 0.0, 0.0}, *Coord, *Coord_Normal, Area, WallShearStress, TauNormal, factor, RefTemp, RefVel2, - RefDensity, GradTemperature, Density = 0.0, Vel[3] = {0.0, 0.0, 0.0}, WallDistMod, FrictionVel, + RefDensity, GradTemperature, Density = 0.0, WallDistMod, FrictionVel, Mach2Vel, Mach_Motion, UnitNormal[3] = {0.0, 0.0, 0.0}, TauElem[3] = {0.0, 0.0, 0.0}, TauTangent[3] = {0.0, 0.0, 0.0}, Tau[3][3] = {{0.0, 0.0, 0.0},{0.0, 0.0, 0.0},{0.0, 0.0, 0.0}}, Force[3] = {0.0, 0.0, 0.0}, Cp, thermal_conductivity, MaxNorm = 8.0, Grad_Vel[3][3] = {{0.0, 0.0, 0.0},{0.0, 0.0, 0.0},{0.0, 0.0, 0.0}}, Grad_Temp[3] = {0.0, 0.0, 0.0}, delta[3][3] = {{1.0, 0.0, 0.0},{0.0,1.0,0.0},{0.0,0.0,1.0}}; #ifdef HAVE_MPI - su2double MyAllBound_CDrag_Visc, MyAllBound_CLift_Visc, MyAllBound_CSideForce_Visc, MyAllBound_CEff_Visc, MyAllBound_CMx_Visc, MyAllBound_CMy_Visc, MyAllBound_CMz_Visc, MyAllBound_CFx_Visc, MyAllBound_CFy_Visc, MyAllBound_CFz_Visc, MyAllBound_CT_Visc, MyAllBound_CQ_Visc, MyAllBound_CMerit_Visc, MyAllBound_HeatFlux_Visc, MyAllBound_MaxHeatFlux_Visc, *MySurface_CLift_Visc = NULL, *MySurface_CDrag_Visc = NULL, *MySurface_CSideForce_Visc = NULL, *MySurface_CEff_Visc = NULL, *MySurface_CFx_Visc = NULL, *MySurface_CFy_Visc = NULL, *MySurface_CFz_Visc = NULL, *MySurface_CMx_Visc = NULL, *MySurface_CMy_Visc = NULL, *MySurface_CMz_Visc = NULL; + su2double MyAllBound_CDrag_Visc, MyAllBound_CLift_Visc, MyAllBound_CSideForce_Visc, MyAllBound_CMx_Visc, MyAllBound_CMy_Visc, MyAllBound_CMz_Visc, MyAllBound_CFx_Visc, MyAllBound_CFy_Visc, MyAllBound_CFz_Visc, MyAllBound_CT_Visc, MyAllBound_CQ_Visc, MyAllBound_HeatFlux_Visc, MyAllBound_MaxHeatFlux_Visc, *MySurface_CLift_Visc = NULL, *MySurface_CDrag_Visc = NULL, *MySurface_CSideForce_Visc = NULL, *MySurface_CEff_Visc = NULL, *MySurface_CFx_Visc = NULL, *MySurface_CFy_Visc = NULL, *MySurface_CFz_Visc = NULL, *MySurface_CMx_Visc = NULL, *MySurface_CMy_Visc = NULL, *MySurface_CMz_Visc = NULL; #endif string Marker_Tag, Monitoring_Tag; - su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; - su2double Beta = config->GetAoS()*PI_NUMBER/180.0; - su2double RefAreaCoeff = config->GetRefAreaCoeff(); - su2double RefLengthMoment = config->GetRefLengthMoment(); - su2double Gas_Constant = config->GetGas_ConstantND(); - su2double *Origin = config->GetRefOriginMoment(0); - bool grid_movement = config->GetGrid_Movement(); - bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); - bool freesurface = (config->GetKind_Regime() == FREESURFACE); - su2double Prandtl_Lam = config->GetPrandtl_Lam(); + su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + su2double Beta = config->GetAoS()*PI_NUMBER/180.0; + su2double RefAreaCoeff = config->GetRefAreaCoeff(); + su2double RefLengthMoment = config->GetRefLengthMoment(); + su2double Gas_Constant = config->GetGas_ConstantND(); + su2double *Origin = config->GetRefOriginMoment(0); + bool grid_movement = config->GetGrid_Movement(); + bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); + bool freesurface = (config->GetKind_Regime() == FREESURFACE); + su2double Prandtl_Lam = config->GetPrandtl_Lam(); /*--- Evaluate reference values for non-dimensionalization. For dynamic meshes, use the motion Mach number as a reference value @@ -11775,9 +11758,6 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { WallShearStress = 0.0; for (iDim = 0; iDim < nDim; iDim++) WallShearStress += TauTangent[iDim]*TauTangent[iDim]; WallShearStress = sqrt(WallShearStress); - for (iDim = 0; iDim < nDim; iDim++) - Vel[iDim] = node[iPointNormal]->GetVelocity(iDim); - for (iDim = 0; iDim < nDim; iDim++) WallDist[iDim] = (Coord[iDim] - Coord_Normal[iDim]); WallDistMod = 0.0; for (iDim = 0; iDim < nDim; iDim++) WallDistMod += WallDist[iDim]*WallDist[iDim]; WallDistMod = sqrt(WallDistMod); @@ -11914,7 +11894,7 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { MyAllBound_CDrag_Visc = AllBound_CDrag_Visc; AllBound_CDrag_Visc = 0.0; MyAllBound_CLift_Visc = AllBound_CLift_Visc; AllBound_CLift_Visc = 0.0; MyAllBound_CSideForce_Visc = AllBound_CSideForce_Visc; AllBound_CSideForce_Visc = 0.0; - MyAllBound_CEff_Visc = AllBound_CEff_Visc; AllBound_CEff_Visc = 0.0; + AllBound_CEff_Visc = 0.0; MyAllBound_CMx_Visc = AllBound_CMx_Visc; AllBound_CMx_Visc = 0.0; MyAllBound_CMy_Visc = AllBound_CMy_Visc; AllBound_CMy_Visc = 0.0; MyAllBound_CMz_Visc = AllBound_CMz_Visc; AllBound_CMz_Visc = 0.0; @@ -11923,7 +11903,7 @@ void CNSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { MyAllBound_CFz_Visc = AllBound_CFz_Visc; AllBound_CFz_Visc = 0.0; MyAllBound_CT_Visc = AllBound_CT_Visc; AllBound_CT_Visc = 0.0; MyAllBound_CQ_Visc = AllBound_CQ_Visc; AllBound_CQ_Visc = 0.0; - MyAllBound_CMerit_Visc = AllBound_CMerit_Visc; AllBound_CMerit_Visc = 0.0; + AllBound_CMerit_Visc = 0.0; MyAllBound_HeatFlux_Visc = AllBound_HeatFlux_Visc; AllBound_HeatFlux_Visc = 0.0; MyAllBound_MaxHeatFlux_Visc = pow(AllBound_MaxHeatFlux_Visc, MaxNorm); AllBound_MaxHeatFlux_Visc = 0.0; diff --git a/SU2_CFD/src/solver_direct_poisson.cpp b/SU2_CFD/src/solver_direct_poisson.cpp index 75ce045cfae..38da35802b3 100644 --- a/SU2_CFD/src/solver_direct_poisson.cpp +++ b/SU2_CFD/src/solver_direct_poisson.cpp @@ -2,7 +2,7 @@ * \file solution_direct_poisson.cpp * \brief Main subrotuines for solving direct problems * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -243,7 +243,7 @@ void CPoissonSolver::Source_Residual(CGeometry *geometry, CSolver **solver_conta // LinSysRes.AddBlock(Point_1, &Source_Vector[1]); // LinSysRes.AddBlock(Point_2, &Source_Vector[2]); // -// if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) { +// if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) { // // Point_0 = geometry->elem[iElem]->GetNode(3); // Point_1 = geometry->elem[iElem]->GetNode(0); diff --git a/SU2_CFD/src/solver_direct_tne2.cpp b/SU2_CFD/src/solver_direct_tne2.cpp index fd99bc4fa7e..792a049ac58 100644 --- a/SU2_CFD/src/solver_direct_tne2.cpp +++ b/SU2_CFD/src/solver_direct_tne2.cpp @@ -2,7 +2,7 @@ * \file solution_direct_tne2.cpp * \brief Main subrotuines for solving flows in thermochemical nonequilibrium. * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -285,6 +285,7 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, Temperature_ve_Inf, nDim, nVar, nPrimVar, nPrimVarGrad, config); check_infty = node_infty->SetPrimVar_Compressible(config); + if (check_infty) counter_local++; Velocity_Inf = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) @@ -471,7 +472,7 @@ CTNE2EulerSolver::CTNE2EulerSolver(CGeometry *geometry, CConfig *config, } for (iSpecies = 0; iSpecies < nEl; iSpecies++) { // Species formation energy - Ef = hf[nSpecies-1] - Ru/Ms[nSpecies-1] * Tref[nSpecies-1]; +// Ef = hf[nSpecies-1] - Ru/Ms[nSpecies-1] * Tref[nSpecies-1]; // Electron t-r mode contributes to mixture vib-el energy rhoEve += (3.0/2.0) * Ru/Ms[nSpecies-1] * (Tve - Tref[nSpecies-1]); @@ -564,7 +565,6 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - int send_to, receive_from; #ifdef HAVE_MPI MPI_Status status; @@ -576,9 +576,6 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -596,6 +593,9 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { #ifdef HAVE_MPI + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -604,7 +604,6 @@ void CTNE2EulerSolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; } @@ -686,7 +685,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - int send_to, receive_from; #ifdef HAVE_MPI MPI_Status status; @@ -698,9 +696,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -718,6 +713,10 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config #ifdef HAVE_MPI + + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -726,7 +725,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; } @@ -799,7 +797,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR, VEL_INDEX; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_V = NULL, *Buffer_Send_V = NULL; - int send_to, receive_from; su2double *Primitive; Primitive = new su2double[nPrimVar]; @@ -815,9 +812,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nPrimVar; nBufferR_Vector = nVertexR*nPrimVar; @@ -834,6 +828,8 @@ void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { } #ifdef HAVE_MPI + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_V, nBufferS_Vector, MPI_DOUBLE, send_to, 0, @@ -842,7 +838,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive(CGeometry *geometry, CConfig *config) { /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nPrimVar; iVar++) Buffer_Receive_V[iVar*nVertexR+iVertex] = Buffer_Send_V[iVar*nVertexR+iVertex]; } @@ -918,7 +913,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; unsigned long iVertex, iPoint; unsigned long nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double rotMatrix[3][3], *angles; su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; @@ -935,9 +929,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; @@ -957,6 +948,10 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, #ifdef HAVE_MPI + + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, @@ -965,7 +960,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_Limit[iVar*nVertexR+iVertex] = Buffer_Send_Limit[iVar*nVertexR+iVertex]; } @@ -1051,7 +1045,6 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Undivided_Laplacian = NULL, *Buffer_Send_Undivided_Laplacian = NULL; - int send_to, receive_from; #ifdef HAVE_MPI MPI_Status status; @@ -1063,9 +1056,6 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; @@ -1083,6 +1073,10 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, #ifdef HAVE_MPI + + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Undivided_Laplacian, nBufferS_Vector, MPI_DOUBLE, send_to, 0, @@ -1093,7 +1087,6 @@ void CTNE2EulerSolver::Set_MPI_Undivided_Laplacian(CGeometry *geometry, /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) Buffer_Receive_Undivided_Laplacian[iVar*nVertexR+iVertex] = Buffer_Send_Undivided_Laplacian[iVar*nVertexR+iVertex]; } @@ -1166,7 +1159,6 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi unsigned short iMarker, MarkerS, MarkerR, *Buffer_Receive_Neighbor = NULL, *Buffer_Send_Neighbor = NULL; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; - int send_to, receive_from; #ifdef HAVE_MPI MPI_Status status; @@ -1178,9 +1170,6 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; @@ -1200,6 +1189,10 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi #ifdef HAVE_MPI + + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -1210,7 +1203,6 @@ void CTNE2EulerSolver::Set_MPI_MaxEigenvalue(CGeometry *geometry, CConfig *confi /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); Buffer_Receive_Lambda[iVertex] = Buffer_Send_Lambda[iVertex]; Buffer_Receive_Neighbor[iVertex] = Buffer_Send_Neighbor[iVertex]; } @@ -1243,7 +1235,6 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * unsigned short iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double *Buffer_Receive_Lambda = NULL, *Buffer_Send_Lambda = NULL; - int send_to, receive_from; #ifdef HAVE_MPI MPI_Status status; @@ -1255,10 +1246,7 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS; nBufferR_Vector = nVertexR; @@ -1274,6 +1262,10 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * #ifdef HAVE_MPI + + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Lambda, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Lambda, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -1282,7 +1274,6 @@ void CTNE2EulerSolver::Set_MPI_Dissipation_Switch(CGeometry *geometry, CConfig * /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); Buffer_Receive_Lambda[iVertex] = Buffer_Send_Lambda[iVertex]; } @@ -1312,7 +1303,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - int send_to, receive_from; su2double **Gradient = new su2double* [nVar]; for (iVar = 0; iVar < nVar; iVar++) @@ -1328,9 +1318,6 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nVar*nDim; nBufferR_Vector = nVertexR*nVar*nDim; @@ -1349,6 +1336,9 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c #ifdef HAVE_MPI + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -1357,7 +1347,7 @@ void CTNE2EulerSolver::Set_MPI_Solution_Gradient(CGeometry *geometry, CConfig *c /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); +// iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nVar; iVar++) for (iDim = 0; iDim < nDim; iDim++) Buffer_Receive_Gradient[iDim*nVar*nVertexR+iVar*nVertexR+iVertex] = Buffer_Send_Gradient[iDim*nVar*nVertexR+iVar*nVertexR+iVertex]; @@ -1441,7 +1431,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig * unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi, *Buffer_Receive_Gradient = NULL, *Buffer_Send_Gradient = NULL; - int send_to, receive_from; su2double **Gradient = new su2double* [nPrimVarGrad]; for (iVar = 0; iVar < nPrimVarGrad; iVar++) @@ -1457,9 +1446,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig * (config->GetMarker_All_SendRecv(iMarker) > 0)) { MarkerS = iMarker; MarkerR = iMarker+1; - - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nPrimVarGrad*nDim; nBufferR_Vector = nVertexR*nPrimVarGrad*nDim; @@ -1478,6 +1464,9 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig * #ifdef HAVE_MPI + int send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + int receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Gradient, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Gradient, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -1486,7 +1475,7 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Gradient(CGeometry *geometry, CConfig * /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); +// iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nPrimVarGrad; iVar++) for (iDim = 0; iDim < nDim; iDim++) Buffer_Receive_Gradient[iDim*nPrimVarGrad*nVertexR+iVar*nVertexR+iVertex] = Buffer_Send_Gradient[iDim*nPrimVarGrad*nVertexR+iVar*nVertexR+iVertex]; @@ -1572,7 +1561,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, unsigned short VEL_INDEX; unsigned long iVertex, iPoint; unsigned long nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - int send_to, receive_from; su2double theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; su2double rotMatrix[3][3], *angles; su2double *Buffer_Receive_Limit = NULL, *Buffer_Send_Limit = NULL; @@ -1595,9 +1583,6 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, MarkerS = iMarker; MarkerR = iMarker+1; - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; nBufferS_Vector = nVertexS*nPrimVarGrad; @@ -1616,6 +1601,10 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, #ifdef HAVE_MPI + int send_to, receive_from; + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + /*--- Send/Receive information using Sendrecv ---*/ SU2_MPI::Sendrecv(Buffer_Send_Limit, nBufferS_Vector, MPI_DOUBLE, send_to, 0, Buffer_Receive_Limit, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); @@ -1624,7 +1613,7 @@ void CTNE2EulerSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, /*--- Receive information without MPI ---*/ for (iVertex = 0; iVertex < nVertexR; iVertex++) { - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); +// iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); for (iVar = 0; iVar < nPrimVarGrad; iVar++) Buffer_Receive_Limit[iVar*nVertexR+iVertex] = Buffer_Send_Limit[iVar*nVertexR+iVertex]; } @@ -1786,7 +1775,7 @@ void CTNE2EulerSolver::SetNondimensionalization(CGeometry *geometry, CConfig *co /*--- Turbulence quantities ---*/ Tke_FreeStream = 3.0/2.0*(ModVel_FreeStream*ModVel_FreeStream*config->GetTurbulenceIntensity_FreeStream()*config->GetTurbulenceIntensity_FreeStream()); - Omega_FreeStream = Density_FreeStream*Tke_FreeStream/(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()); +// Omega_FreeStream = Density_FreeStream*Tke_FreeStream/(Viscosity_FreeStream*config->GetTurb2LamViscRatio_FreeStream()); } else { @@ -2340,11 +2329,11 @@ void CTNE2EulerSolver::SetMax_Eigenvalue(CGeometry *geometry, CConfig *config) { void CTNE2EulerSolver::Centered_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh, unsigned short iRKStep) { unsigned long iEdge, iPoint, jPoint; - bool implicit, second_order; + bool implicit;// second_order; /*--- Set booleans based on config settings ---*/ implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); - second_order = ((config->GetKind_Centered_TNE2() == JST) && (iMesh == MESH_0)); +// second_order = ((config->GetKind_Centered_TNE2() == JST) && (iMesh == MESH_0)); /*--- Pass structure of the primitive variable vector to CNumerics ---*/ numerics->SetRhosIndex ( node[0]->GetRhosIndex() ); @@ -2400,8 +2389,9 @@ void CTNE2EulerSolver::Centered_Residual(CGeometry *geometry, CSolver **solver_c void CTNE2EulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solution_container, CNumerics *numerics, CConfig *config, unsigned short iMesh) { unsigned long iEdge, iPoint, jPoint; - unsigned short RHO_INDEX, RHOS_INDEX; - unsigned short iDim, iVar, jVar; +// unsigned short RHO_INDEX, RHOS_INDEX; + unsigned short iDim, iVar; +// unsigned short jVar; bool implicit, second_order, limiter, chk_err_i, chk_err_j; su2double *U_i, *U_j, *V_i, *V_j; su2double **GradU_i, **GradU_j, ProjGradU_i, ProjGradU_j; @@ -2439,8 +2429,8 @@ void CTNE2EulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solution_c numerics->SetRhoCvtrIndex( node[0]->GetRhoCvtrIndex() ); numerics->SetRhoCvveIndex( node[0]->GetRhoCvveIndex() ); - RHO_INDEX = node[0]->GetRhoIndex(); - RHOS_INDEX = node[0]->GetRhosIndex(); +// RHO_INDEX = node[0]->GetRhoIndex(); +// RHOS_INDEX = node[0]->GetRhosIndex(); /*--- Loop over edges and calculate convective fluxes ---*/ for (iEdge = 0; iEdge < geometry->GetnEdge(); iEdge++) { @@ -2589,17 +2579,17 @@ void CTNE2EulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solution_c numerics->ComputeResidual(Res_Conv, Jacobian_i, Jacobian_j, config); /*--- Error checking ---*/ - chk_err_i = false; - for (iVar = 0; iVar < nVar; iVar++) - if (Res_Conv[iVar] != Res_Conv[iVar]) - chk_err_i = true; - if (implicit) { - for (iVar = 0; iVar < nVar; iVar++) - for (jVar = 0; jVar < nVar; jVar++) - if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar] || - Jacobian_j[iVar][jVar] != Jacobian_j[iVar][jVar]) - chk_err_i = true; - } +// chk_err_i = false; +// for (iVar = 0; iVar < nVar; iVar++) +// if (Res_Conv[iVar] != Res_Conv[iVar]) +// chk_err_i = true; +// if (implicit) { +// for (iVar = 0; iVar < nVar; iVar++) +// for (jVar = 0; jVar < nVar; jVar++) +// if (Jacobian_i[iVar][jVar] != Jacobian_i[iVar][jVar] || +// Jacobian_j[iVar][jVar] != Jacobian_j[iVar][jVar]) +// chk_err_i = true; +// } // cout << "NaN detected in convective flux/Jacobians." << endl; // if (high_order_diss) { @@ -3162,6 +3152,7 @@ void CTNE2EulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSysSolve system; IterLinSol = system.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + SetIterLinSolver(IterLinSol); /*--- Update solution (system written in terms of increments) ---*/ @@ -3282,7 +3273,8 @@ void CTNE2EulerSolver::SetPrimitive_Gradient_GG(CGeometry *geometry, CConfig *co void CTNE2EulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, CConfig *config) { - unsigned short iVar, iDim, jDim, iNeigh, RHOS_INDEX, RHO_INDEX; + unsigned short iVar, iDim, jDim, iNeigh; +// unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iPoint, jPoint; su2double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, product, detR2, z11, z12, z13, z22, z23, z33; @@ -3296,8 +3288,8 @@ void CTNE2EulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, CConfig *co /*--- Get indices of species & mixture density ---*/ - RHOS_INDEX = node[0]->GetRhosIndex(); - RHO_INDEX = node[0]->GetRhoIndex(); +// RHOS_INDEX = node[0]->GetRhosIndex(); +// RHO_INDEX = node[0]->GetRhoIndex(); /*--- Loop over points of the grid ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -3440,7 +3432,8 @@ void CTNE2EulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, CConfig *config, unsigned long val_Point) { - unsigned short iVar, iDim, jDim, iNeigh, RHOS_INDEX, RHO_INDEX; + unsigned short iVar, iDim, jDim, iNeigh; +// unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iPoint, jPoint; su2double *PrimVar_i, *PrimVar_j, *Coord_i, *Coord_j, r11, r12, r13, r22, r23, r23_a, r23_b, r33, weight, product, z11, z12, z13, z22, z23, z33, detR2; @@ -3454,8 +3447,8 @@ void CTNE2EulerSolver::SetPrimitive_Gradient_LS(CGeometry *geometry, /*--- Get indices of species & mixture density ---*/ - RHOS_INDEX = node[0]->GetRhosIndex(); - RHO_INDEX = node[0]->GetRhoIndex(); +// RHOS_INDEX = node[0]->GetRhosIndex(); +// RHO_INDEX = node[0]->GetRhoIndex(); iPoint = val_Point; Coord_i = geometry->node[iPoint]->GetCoord(); @@ -3634,8 +3627,8 @@ void CTNE2EulerSolver::SetPrimitive_Limiter(CGeometry *geometry, iPoint = geometry->edge[iEdge]->GetNode(0); jPoint = geometry->edge[iEdge]->GetNode(1); - Primitive_i = node[iPoint]->GetPrimitive(); - Primitive_j = node[jPoint]->GetPrimitive(); +// Primitive_i = node[iPoint]->GetPrimitive(); +// Primitive_j = node[jPoint]->GetPrimitive(); Gradient_i = node[iPoint]->GetGradient_Primitive(); Gradient_j = node[jPoint]->GetGradient_Primitive(); Coord_i = geometry->node[iPoint]->GetCoord(); @@ -3694,7 +3687,7 @@ void CTNE2EulerSolver::SetSolution_Limiter(CGeometry *geometry, unsigned long iEdge, iPoint, jPoint; unsigned short iVar, iDim; su2double dave, LimK, eps2, dm, dp, du, limiter; - su2double *Solution_i, *Solution_j; +// su2double *Solution_i, *Solution_j; su2double *Coord_i, *Coord_j; su2double **Gradient_i, **Gradient_j; @@ -3750,8 +3743,8 @@ void CTNE2EulerSolver::SetSolution_Limiter(CGeometry *geometry, jPoint = geometry->edge[iEdge]->GetNode(1); Coord_i = geometry->node[iPoint]->GetCoord(); Coord_j = geometry->node[jPoint]->GetCoord(); - Solution_i = node[iPoint]->GetSolution(); - Solution_j = node[jPoint]->GetSolution(); +// Solution_i = node[iPoint]->GetSolution(); +// Solution_j = node[jPoint]->GetSolution(); Gradient_i = node[iPoint]->GetGradient(); Gradient_j = node[jPoint]->GetGradient(); @@ -3860,8 +3853,9 @@ void CTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, unsigned long iPoint, iVertex; bool implicit; su2double *Normal, *UnitNormal, *Ms, *dPdU; - su2double Area, rhoCvtr, rhoCvve, rho_el, Ru; - su2double rho, cs, u, v, w, P, rhoE, rhoEve, conc, Beta; + su2double Area; +// su2double rhoCvve, rho_el, Beta, Ru, rhoCvtr; + su2double rho, cs, u, v, w, P, rhoE, rhoEve, conc; /*--- Allocate arrays ---*/ UnitNormal = new su2double[3]; @@ -3873,7 +3867,7 @@ void CTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, Ms = config->GetMolar_Mass(); /*--- Rename for convenience ---*/ - Ru = UNIVERSAL_GAS_CONSTANT; +// Ru = UNIVERSAL_GAS_CONSTANT; /*--- Loop over all the vertices on this boundary (val_marker) ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -3919,15 +3913,15 @@ void CTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, u = node[iPoint]->GetVelocity(0); v = node[iPoint]->GetVelocity(1); w = node[iPoint]->GetVelocity(2); - rhoCvtr = node[iPoint]->GetRhoCv_tr(); - rhoCvve = node[iPoint]->GetRhoCv_ve(); +// rhoCvtr = node[iPoint]->GetRhoCv_tr(); +// rhoCvve = node[iPoint]->GetRhoCv_ve(); rhoE = node[iPoint]->GetSolution(nSpecies+nDim); rhoEve = node[iPoint]->GetSolution(nSpecies+nDim+1); dPdU = node[iPoint]->GetdPdU(); /*--- If free electrons are present, retrieve the electron gas density ---*/ - if (config->GetIonization()) rho_el = node[iPoint]->GetMassFraction(nSpecies-1) * rho; - else rho_el = 0.0; +// if (config->GetIonization()) rho_el = node[iPoint]->GetMassFraction(nSpecies-1) * rho; +// else rho_el = 0.0; conc = 0.0; for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { @@ -3947,7 +3941,7 @@ void CTNE2EulerSolver::BC_Euler_Wall(CGeometry *geometry, Jacobian_i[iSpecies][nSpecies+4] = 0.0; } - Beta = Ru*conc/rhoCvtr; +// Beta = Ru*conc/rhoCvtr; Jacobian_i[nSpecies][nSpecies] = u*UnitNormal[0] + dPdU[nSpecies]*UnitNormal[0]; Jacobian_i[nSpecies][nSpecies+1] = u*UnitNormal[1] + dPdU[nSpecies+1]*UnitNormal[0]; @@ -4621,14 +4615,6 @@ void CTNE2EulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **soluti geometry->vertex[val_marker][iVertex]->GetNormal(Normal); for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; - su2double Area = 0.0; su2double UnitaryNormal[3]; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); - - for (iDim = 0; iDim < nDim; iDim++) - UnitaryNormal[iDim] = Normal[iDim]/Area; - /*--- Set various quantities in the solver class ---*/ conv_numerics->SetNormal(Normal); conv_numerics->SetConservative(U_domain, U_inlet); @@ -5017,7 +5003,7 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, /*--- Initialize counters ---*/ counter_local = 0; - counter_global = 0; +// counter_global = 0; /*--- Set booleans from settings in CConfig ---*/ restart = (config->GetRestart() || config->GetRestart_Flow()); @@ -5234,6 +5220,7 @@ CTNE2NSSolver::CTNE2NSSolver(CGeometry *geometry, CConfig *config, Temperature_ve_Inf, nDim, nVar, nPrimVar, nPrimVarGrad, config); check_infty = node_infty->SetPrimVar_Compressible(config); + if (check_infty) counter_local++; Velocity_Inf = new su2double[nDim]; for (iDim = 0; iDim < nDim; iDim++) @@ -5512,7 +5499,7 @@ void CTNE2NSSolver::Preprocessing(CGeometry *geometry, CSolver **solution_contai /*--- Set the primitive variables incompressible (dens, vx, vy, vz, beta) and compressible (temp, vx, vy, vz, press, dens, enthal, sos)---*/ check = node[iPoint]->SetPrimVar_Compressible(config); - + if (!check) { cout << "Check primvar for node " << iPoint << endl;} /*--- Initialize the convective, source and viscous residual vector ---*/ LinSysRes.SetBlock_Zero(iPoint); @@ -5555,8 +5542,9 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, su2double *Normal, Area, Vol; su2double Mean_SoundSpeed, Mean_ProjVel; su2double Lambda, Local_Delta_Time, Local_Delta_Time_Visc, Global_Delta_Time; - su2double Mean_LaminarVisc, Mean_ThermalCond, Mean_ThermalCond_ve, Mean_Density; - su2double cv, Ru, *xi, *Ms; + su2double Mean_LaminarVisc, Mean_Density; +// su2double Mean_ThermalCond, Mean_ThermalCond_ve; +// su2double cv, Ru, *xi, *Ms; su2double Lambda_1, Lambda_2, K_v, Global_Delta_UnstTimeND; bool implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); @@ -5568,13 +5556,13 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, Min_Delta_Time = 1.E6; Max_Delta_Time = 0.0; K_v = 0.25; - iPoint = 0; - jPoint = 0; - Ru = UNIVERSAL_GAS_CONSTANT; +// iPoint = 0; +// jPoint = 0; +// Ru = UNIVERSAL_GAS_CONSTANT; /*--- Get from config ---*/ - xi = config->GetRotationModes(); - Ms = config->GetMolar_Mass(); +// xi = config->GetRotationModes(); +// Ms = config->GetMolar_Mass(); /*--- Set maximum inviscid eigenvalue to zero, and compute sound speed and viscosity ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -5608,14 +5596,14 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, /*--- Viscous contribution ---*/ Mean_LaminarVisc = 0.5*(node[iPoint]->GetLaminarViscosity() + node[jPoint]->GetLaminarViscosity() ); - Mean_ThermalCond = 0.5*(node[iPoint]->GetThermalConductivity() + - node[jPoint]->GetThermalConductivity() ); - Mean_ThermalCond_ve = 0.5*(node[iPoint]->GetThermalConductivity_ve() + - node[jPoint]->GetThermalConductivity_ve() ); +// Mean_ThermalCond = 0.5*(node[iPoint]->GetThermalConductivity() + +// node[jPoint]->GetThermalConductivity() ); +// Mean_ThermalCond_ve = 0.5*(node[iPoint]->GetThermalConductivity_ve() + +// node[jPoint]->GetThermalConductivity_ve() ); Mean_Density = 0.5*(node[iPoint]->GetDensity() + node[jPoint]->GetDensity() ); - cv = 0.5*(node[iPoint]->GetRhoCv_ve() + node[jPoint]->GetRhoCv_ve()) + - 0.5*(node[iPoint]->GetRhoCv_tr() + node[jPoint]->GetRhoCv_tr()); +// cv = 0.5*(node[iPoint]->GetRhoCv_ve() + node[jPoint]->GetRhoCv_ve()) + +// 0.5*(node[iPoint]->GetRhoCv_tr() + node[jPoint]->GetRhoCv_tr()); Lambda_1 = (4.0/3.0)*(Mean_LaminarVisc); // Lambda_2 = (Mean_ThermalCond+Mean_ThermalCond_ve)/cv; @@ -5653,11 +5641,11 @@ void CTNE2NSSolver::SetTime_Step(CGeometry *geometry, /*--- Viscous contribution ---*/ Mean_LaminarVisc = node[iPoint]->GetLaminarViscosity(); - Mean_ThermalCond = node[iPoint]->GetThermalConductivity(); - Mean_ThermalCond_ve = node[iPoint]->GetThermalConductivity_ve(); +// Mean_ThermalCond = node[iPoint]->GetThermalConductivity(); +// Mean_ThermalCond_ve = node[iPoint]->GetThermalConductivity_ve(); Mean_Density = node[iPoint]->GetDensity(); - cv = node[iPoint]->GetRhoCv_tr() + node[iPoint]->GetRhoCv_ve(); +// cv = node[iPoint]->GetRhoCv_tr() + node[iPoint]->GetRhoCv_ve(); Lambda_1 = (4.0/3.0)*(Mean_LaminarVisc); // Lambda_2 = (Mean_ThermalCond+Mean_ThermalCond_ve)/cv; @@ -5831,16 +5819,20 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { unsigned short Boundary, Monitoring, iMarker, iDim, jDim; unsigned short VEL_INDEX, T_INDEX, TVE_INDEX; - unsigned long iVertex, iPoint, iPointNormal; + unsigned long iVertex, iPoint; +// unsigned long iPointNormal; su2double **Grad_PrimVar; su2double Delta, Viscosity, ThermalCond, ThermalCond_ve; su2double **Tau, *TauTangent, TauNormal, *TauElem; - su2double WallShearStress, FrictionVel; - su2double *Normal, *UnitaryNormal, *Coord, *Coord_Normal, Area; + su2double WallShearStress; + su2double *Normal, *UnitaryNormal, *Coord, Area; +// su2double *Coord_Normal, FrictionVel; su2double MomentDist[3]; - su2double RefDensity, Density; + su2double RefDensity; +// su2double Density; su2double Velocity_Inf[3], div_vel, RefVel2; - su2double dTn, dTven, pnorm, HeatLoad; + su2double dTn, dTven, pnorm; +// su2double HeatLoad; su2double Alpha, Beta, RefLengthMoment, RefAreaCoeff, *Origin; su2double factor; @@ -5902,7 +5894,7 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { ForceViscous[iDim] = 0.0; MomentViscous[iDim] = 0.0; } - HeatLoad = 0.0; +// HeatLoad = 0.0; if ((Boundary == HEAT_FLUX ) || (Boundary == HEAT_FLUX_CATALYTIC ) || @@ -5916,9 +5908,9 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { /*--- Retrieve grid information ---*/ iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - iPointNormal = geometry->vertex[iMarker][iVertex]->GetNormal_Neighbor(); +// iPointNormal = geometry->vertex[iMarker][iVertex]->GetNormal_Neighbor(); Coord = geometry->node[iPoint]->GetCoord(); - Coord_Normal = geometry->node[iPointNormal]->GetCoord(); +// Coord_Normal = geometry->node[iPointNormal]->GetCoord(); Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); /*--- Get vertex flow parameters ---*/ @@ -5926,7 +5918,7 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { Viscosity = node[iPoint]->GetLaminarViscosity(); ThermalCond = node[iPoint]->GetThermalConductivity(); ThermalCond_ve = node[iPoint]->GetThermalConductivity_ve(); - Density = node[iPoint]->GetDensity(); +// Density = node[iPoint]->GetDensity(); /*--- Calculate geometry parameters ---*/ Area = 0.0; @@ -5975,7 +5967,7 @@ void CTNE2NSSolver::Viscous_Forces(CGeometry *geometry, CConfig *config) { CSkinFriction[iMarker][iVertex] = WallShearStress / (0.5*RefDensity*RefVel2); /*--- Compute y+ and non-dimensional velocity ---*/ - FrictionVel = sqrt(fabs(WallShearStress)/Density); +// FrictionVel = sqrt(fabs(WallShearStress)/Density); /*--- Compute heat flux on the wall ---*/ dTn = 0.0; dTven = 0.0; @@ -6235,21 +6227,22 @@ void CTNE2NSSolver::BC_HeatFluxNonCatalytic_Wall(CGeometry *geometry, sour_numerics, config, val_marker); /*--- Local variables ---*/ - bool implicit; +// bool implicit; unsigned short iDim, iSpecies, iVar; unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint; - su2double pcontrol; +// su2double pcontrol; su2double rho, Ys, eves, hs; - su2double *Normal, Area; + su2double *Normal; +// su2double Area; su2double *Ds, *V, *dYdn, SdYdn; su2double **GradV, **GradY; /*--- Assign booleans ---*/ - implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); +// implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); /*--- Set "Proportional control" coefficient ---*/ - pcontrol = 0.6; +// pcontrol = 0.6; /*--- Get the locations of the primitive variables ---*/ RHOS_INDEX = node[0]->GetRhosIndex(); @@ -6270,10 +6263,10 @@ void CTNE2NSSolver::BC_HeatFluxNonCatalytic_Wall(CGeometry *geometry, /*--- Compute dual-grid area and boundary normal ---*/ Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); +// Area = 0.0; +// for (iDim = 0; iDim < nDim; iDim++) +// Area += Normal[iDim]*Normal[iDim]; +// Area = sqrt (Area); /*--- Initialize the convective & viscous residuals to zero ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -6334,7 +6327,8 @@ void CTNE2NSSolver::BC_HeatFluxCatalytic_Wall(CGeometry *geometry, unsigned short T_INDEX, TVE_INDEX, RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint, total_index; su2double Wall_HeatFlux, dTdn, dTvedn, ktr, kve, pcontrol; - su2double rho, Ys, eves, hs; + su2double rho, Ys; +// su2double eves, hs; su2double *Normal, Area; su2double *Ds, *V, *dYdn, SdYdn; su2double **GradV, **GradY; @@ -6440,14 +6434,14 @@ void CTNE2NSSolver::BC_HeatFluxCatalytic_Wall(CGeometry *geometry, for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) SdYdn += rho*Ds[iSpecies]*dYdn[iSpecies]; - for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { - Ys = V[RHOS_INDEX+iSpecies]/rho; - hs = node[iPoint]->CalcHs(V, config, iSpecies); - eves = node[iPoint]->CalcEve(V, config, iSpecies); - // Res_Visc[iSpecies] = -rho*Ds[iSpecies]*dYdn[iSpecies] + Ys*SdYdn; - // Res_Visc[nSpecies+nDim] += Res_Visc[iSpecies]*hs; - // Res_Visc[nSpecies+nDim+1] += Res_Visc[iSpecies]*eves; - } + // for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { + // Ys = V[RHOS_INDEX+iSpecies]/rho; + // hs = node[iPoint]->CalcHs(V, config, iSpecies); + // eves = node[iPoint]->CalcEve(V, config, iSpecies); + // Res_Visc[iSpecies] = -rho*Ds[iSpecies]*dYdn[iSpecies] + Ys*SdYdn; + // Res_Visc[nSpecies+nDim] += Res_Visc[iSpecies]*hs; + // Res_Visc[nSpecies+nDim+1] += Res_Visc[iSpecies]*eves; + // } } /*--- Get node thermal conductivity ---*/ @@ -6511,9 +6505,11 @@ void CTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, CConfig *config, unsigned short val_marker) { - bool ionization, implicit, jnk; + bool ionization, implicit; +// bool jnk; unsigned short iDim, iSpecies, iVar, jVar; - unsigned short RHOS_INDEX, T_INDEX, TVE_INDEX, RHOCVTR_INDEX, RHOCVVE_INDEX; + unsigned short RHOS_INDEX, T_INDEX, TVE_INDEX, RHOCVTR_INDEX; +// unsigned short RHOCVVE_INDEX; unsigned long iVertex, iPoint, jPoint, total_index; su2double rhoCvtr, rhoCvve, ktr, kve, *dTdU, *dTvedU; su2double Twall, dTdn, dTvedn, dij, theta; @@ -6542,7 +6538,7 @@ void CTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, T_INDEX = node[0]->GetTIndex(); TVE_INDEX = node[0]->GetTveIndex(); RHOCVTR_INDEX = node[0]->GetRhoCvtrIndex(); - RHOCVVE_INDEX = node[0]->GetRhoCvveIndex(); +// RHOCVVE_INDEX = node[0]->GetRhoCvveIndex(); /*--- Loop over boundary points ---*/ for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { @@ -6585,8 +6581,8 @@ void CTNE2NSSolver::BC_Isothermal_Wall(CGeometry *geometry, } /*--- Set appropriate wall conditions ---*/ - jnk = node[iPoint]->SetTemperature(Twall); - jnk = node[iPoint]->SetTemperature_ve(Twall); +// jnk = node[iPoint]->SetTemperature(Twall); +// jnk = node[iPoint]->SetTemperature_ve(Twall); /*--- Calculate the gradient of temperature ---*/ SetPrimitive_Gradient_LS(geometry, config, iPoint); @@ -6704,21 +6700,22 @@ void CTNE2NSSolver::BC_IsothermalNonCatalytic_Wall(CGeometry *geometry, sour_numerics, config, val_marker); /*--- Local variables ---*/ - bool implicit; +// bool implicit; unsigned short iDim, iSpecies, iVar; unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint; - su2double pcontrol; +// su2double pcontrol; su2double rho, Ys, eves, hs; - su2double *Normal, Area; + su2double *Normal; +// su2double Area; su2double *Ds, *V, *dYdn, SdYdn; su2double **GradV; /*--- Assign booleans ---*/ - implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); +// implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); /*--- Set "Proportional control" coefficient ---*/ - pcontrol = 1.0; +// pcontrol = 1.0; /*--- Get the locations of the primitive variables ---*/ RHOS_INDEX = node[0]->GetRhosIndex(); @@ -6736,10 +6733,10 @@ void CTNE2NSSolver::BC_IsothermalNonCatalytic_Wall(CGeometry *geometry, /*--- Compute dual-grid area and boundary normal ---*/ Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); +// Area = 0.0; +// for (iDim = 0; iDim < nDim; iDim++) +// Area += Normal[iDim]*Normal[iDim]; +// Area = sqrt (Area); /*--- Initialize the convective & viscous residuals to zero ---*/ for (iVar = 0; iVar < nVar; iVar++) @@ -6797,21 +6794,22 @@ void CTNE2NSSolver::BC_IsothermalCatalytic_Wall(CGeometry *geometry, /*--- Local variables ---*/ - bool implicit; +// bool implicit; unsigned short iDim, iSpecies, iVar; unsigned short RHOS_INDEX, RHO_INDEX; unsigned long iVertex, iPoint; - su2double pcontrol; +// su2double pcontrol; su2double rho, rhos, eves, hs; - su2double *Normal, Area; + su2double *Normal; +// su2double Area; su2double *Ds, *V, Ys, *Yst, *dYdn, SdYdn; su2double **GradV; /*--- Assign booleans ---*/ - implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); + //implicit = (config->GetKind_TimeIntScheme_TNE2() == EULER_IMPLICIT); /*--- Set "Proportional control" coefficient ---*/ - pcontrol = 0.6; + //pcontrol = 0.6; /*--- Get species mass fractions at the wall ---*/ Yst = config->GetWall_Catalycity(); @@ -6832,10 +6830,10 @@ void CTNE2NSSolver::BC_IsothermalCatalytic_Wall(CGeometry *geometry, /*--- Compute dual-grid area and boundary normal ---*/ Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt (Area); +// Area = 0.0; +// for (iDim = 0; iDim < nDim; iDim++) +// Area += Normal[iDim]*Normal[iDim]; +// Area = sqrt (Area); /*--- Initialize the convective & viscous residuals to zero ---*/ for (iVar = 0; iVar < nVar; iVar++) diff --git a/SU2_CFD/src/solver_direct_transition.cpp b/SU2_CFD/src/solver_direct_transition.cpp index 943a63ef198..13291f58aee 100644 --- a/SU2_CFD/src/solver_direct_transition.cpp +++ b/SU2_CFD/src/solver_direct_transition.cpp @@ -2,7 +2,7 @@ * \file solution_direct_transition.cpp * \brief Main subrotuines for solving direct problems (Euler, Navier-Stokes, etc.). * \author A. Aranake - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_turbulent.cpp b/SU2_CFD/src/solver_direct_turbulent.cpp index cec75e0476e..c8f9e77357d 100644 --- a/SU2_CFD/src/solver_direct_turbulent.cpp +++ b/SU2_CFD/src/solver_direct_turbulent.cpp @@ -2,7 +2,7 @@ * \file solution_direct_turbulent.cpp * \brief Main subrotuines for solving direct problems * \author F. Palacios, A. Bueno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_wave.cpp b/SU2_CFD/src/solver_direct_wave.cpp index 5d7819e3675..72fb514ff16 100644 --- a/SU2_CFD/src/solver_direct_wave.cpp +++ b/SU2_CFD/src/solver_direct_wave.cpp @@ -2,7 +2,7 @@ * \file solution_direct_wave.cpp * \brief Main subrotuines for solving the wave equation. * \author T. Economon, F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_linearized_mean.cpp b/SU2_CFD/src/solver_linearized_mean.cpp index 6f4d19e70e5..b64eef9034e 100644 --- a/SU2_CFD/src/solver_linearized_mean.cpp +++ b/SU2_CFD/src/solver_linearized_mean.cpp @@ -2,7 +2,7 @@ * \file solution_linearized_mean.cpp * \brief Main subrotuines for solving linearized problems (Euler, Navier-Stokes, etc.). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_linearized_turbulent.cpp b/SU2_CFD/src/solver_linearized_turbulent.cpp index c8961bc0d90..5f076bf4ef9 100644 --- a/SU2_CFD/src/solver_linearized_turbulent.cpp +++ b/SU2_CFD/src/solver_linearized_turbulent.cpp @@ -2,7 +2,7 @@ * \file solution_linearized_turbulent.cpp * \brief Main subrotuines for solving linearized problems (Euler, Navier-Stokes, etc.). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index f06c6377566..fff737c8f30 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -2,7 +2,7 @@ * \file solver_structure.cpp * \brief Main subrotuines for solving direct, adjoint and linearized problems. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_template.cpp b/SU2_CFD/src/solver_template.cpp index 0a840e0150f..1e57764ef0c 100644 --- a/SU2_CFD/src/solver_template.cpp +++ b/SU2_CFD/src/solver_template.cpp @@ -2,7 +2,7 @@ * \file solution_template.cpp * \brief Main subrotuines for solving direct problems (Euler, Navier-Stokes, etc.). * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/transport_model.cpp b/SU2_CFD/src/transport_model.cpp index 63f3ecd95dc..34c42a372d6 100644 --- a/SU2_CFD/src/transport_model.cpp +++ b/SU2_CFD/src/transport_model.cpp @@ -2,7 +2,7 @@ * transport_model.cpp * \brief Source of the main transport properties subroutines of the SU2 solvers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_discrete.cpp b/SU2_CFD/src/variable_adjoint_discrete.cpp index e843be3df7b..71d050a0964 100644 --- a/SU2_CFD/src/variable_adjoint_discrete.cpp +++ b/SU2_CFD/src/variable_adjoint_discrete.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_discrete.cpp * \brief Main subroutines for the discrete adjoint variable structure. * \author T. Albring - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_levelset.cpp b/SU2_CFD/src/variable_adjoint_levelset.cpp index bb9b016cd99..4a18914ae24 100644 --- a/SU2_CFD/src/variable_adjoint_levelset.cpp +++ b/SU2_CFD/src/variable_adjoint_levelset.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_levelset.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_mean.cpp b/SU2_CFD/src/variable_adjoint_mean.cpp index c08603dbdee..ac85da2a763 100644 --- a/SU2_CFD/src/variable_adjoint_mean.cpp +++ b/SU2_CFD/src/variable_adjoint_mean.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_mean.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_tne2.cpp b/SU2_CFD/src/variable_adjoint_tne2.cpp index e0a609b88a2..65ec0c48f58 100644 --- a/SU2_CFD/src/variable_adjoint_tne2.cpp +++ b/SU2_CFD/src/variable_adjoint_tne2.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_tne2.cpp * \brief Definition of the solution fields. * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_turbulent.cpp b/SU2_CFD/src/variable_adjoint_turbulent.cpp index e4aaf3fee6a..1dc7c5cf1f6 100644 --- a/SU2_CFD/src/variable_adjoint_turbulent.cpp +++ b/SU2_CFD/src/variable_adjoint_turbulent.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_turbulent.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp index 6476e101e17..16f5176b5b8 100644 --- a/SU2_CFD/src/variable_direct_elasticity.cpp +++ b/SU2_CFD/src/variable_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file variable_direct_elasticity.cpp * \brief Definition of the solution fields. * \author F. Palacios, R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_heat.cpp b/SU2_CFD/src/variable_direct_heat.cpp index 7e6cb79b391..5a6aea03ea0 100644 --- a/SU2_CFD/src/variable_direct_heat.cpp +++ b/SU2_CFD/src/variable_direct_heat.cpp @@ -2,7 +2,7 @@ * \file variable_direct_heat.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_mean.cpp b/SU2_CFD/src/variable_direct_mean.cpp index bbec87c83b7..fcfd99b003f 100644 --- a/SU2_CFD/src/variable_direct_mean.cpp +++ b/SU2_CFD/src/variable_direct_mean.cpp @@ -2,7 +2,7 @@ * \file variable_direct_mean.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_poisson.cpp b/SU2_CFD/src/variable_direct_poisson.cpp index 04184034507..f10fec848de 100644 --- a/SU2_CFD/src/variable_direct_poisson.cpp +++ b/SU2_CFD/src/variable_direct_poisson.cpp @@ -2,7 +2,7 @@ * \file variable_direct_poisson.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_tne2.cpp b/SU2_CFD/src/variable_direct_tne2.cpp index 0c4579e5ce6..9a95752ba5d 100644 --- a/SU2_CFD/src/variable_direct_tne2.cpp +++ b/SU2_CFD/src/variable_direct_tne2.cpp @@ -2,7 +2,7 @@ * \file variable_direct_tne2.cpp * \brief Definition of the solution fields. * \author S. Copeland - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -262,7 +262,7 @@ CTNE2EulerVariable::CTNE2EulerVariable(su2double val_pressure, } for (iSpecies = 0; iSpecies < nEl; iSpecies++) { // Species formation energy - Ef = hf[nSpecies-1] - Ru/Ms[nSpecies-1] * Tref[nSpecies-1]; + //Ef = hf[nSpecies-1] - Ru/Ms[nSpecies-1] * Tref[nSpecies-1]; // Electron t-r mode contributes to mixture vib-el energy rhoEve += (3.0/2.0) * Ru/Ms[nSpecies-1] * (Tve - Tref[nSpecies-1]); @@ -398,7 +398,6 @@ CTNE2EulerVariable::~CTNE2EulerVariable(void) { if (Solution_Max != NULL) delete [] Solution_Max; if (Solution_Min != NULL) delete [] Solution_Min; - if (Primitive != NULL) delete [] Primitive; if (Gradient_Primitive != NULL) { for (iVar = 0; iVar < nPrimVarGrad; iVar++) delete Gradient_Primitive[iVar]; @@ -467,9 +466,10 @@ bool CTNE2EulerVariable::SetTemperature(CConfig *config) { su2double Ru, sqvel, rhoCvtr, rhoCvve = 0.0; su2double Cvvs, Cves, Tve, Tve2 = 0.0, Tve_o; su2double f, df, tol; - su2double exptv, thsqr, thoTve; + su2double exptv, thoTve; su2double num, denom, num2, num3; su2double Tmin, Tmax, Tvemin, Tvemax; +// su2double thsqr; /*--- Set tolerance for Newton-Raphson method ---*/ tol = 1.0E-4; @@ -541,7 +541,7 @@ bool CTNE2EulerVariable::SetTemperature(CConfig *config) { /*--- Rename for convenience ---*/ thoTve = thetav[iSpecies]/Tve; exptv = exp(thetav[iSpecies]/Tve); - thsqr = thetav[iSpecies]*thetav[iSpecies]; + //thsqr = thetav[iSpecies]*thetav[iSpecies]; /*--- Calculate vibrational energy ---*/ evs = Ru/Ms[iSpecies] * thetav[iSpecies] / (exptv - 1.0); @@ -767,12 +767,15 @@ void CTNE2EulerVariable::CalcdPdU(su2double *V, CConfig *config, su2double *val_ // Note: Requires SetDensity(), SetTemperature(), SetPressure(), & SetGasProperties() // Note: Electron energy not included properly. - unsigned short iDim, iSpecies, iEl, nHeavy, nEl, *nElStates; + unsigned short iDim, iSpecies, iEl, nHeavy, *nElStates; +// unsigned short nEl; su2double *Ms, *Tref, *hf, *xi, *thetav, **thetae, **g; - su2double Ru, RuBAR, CvtrBAR, rhoCvtr, rhoCvve, Cvtrs, rho_el, sqvel, conc; - su2double rho, rhos, T, Tve, evibs, eels, ef; + su2double Ru, CvtrBAR, rhoCvtr, rhoCvve, Cvtrs, rho_el, sqvel, conc; + su2double T, Tve, evibs, eels, ef; su2double num, denom; +// su2double RuBAR, rho, rhos; + if (val_dPdU == NULL) { cout << "ERROR: CalcdPdU - Array dPdU not allocated!" << endl; exit(EXIT_FAILURE); @@ -781,11 +784,11 @@ void CTNE2EulerVariable::CalcdPdU(su2double *V, CConfig *config, su2double *val_ /*--- Determine the number of heavy species ---*/ if (ionization) { nHeavy = nSpecies-1; - nEl = 1; + //nEl = 1; rho_el = V[RHOS_INDEX+nSpecies-1]; } else { nHeavy = nSpecies; - nEl = 0; + //nEl = 0; rho_el = 0.0; } @@ -803,12 +806,12 @@ void CTNE2EulerVariable::CalcdPdU(su2double *V, CConfig *config, su2double *val_ Ru = UNIVERSAL_GAS_CONSTANT; T = V[T_INDEX]; Tve = V[TVE_INDEX]; - rho = V[RHO_INDEX]; + //rho = V[RHO_INDEX]; rhoCvtr = V[RHOCVTR_INDEX]; rhoCvve = V[RHOCVVE_INDEX]; /*--- Pre-compute useful quantities ---*/ - RuBAR = 0.0; + //RuBAR = 0.0; CvtrBAR = 0.0; sqvel = 0.0; conc = 0.0; @@ -821,7 +824,7 @@ void CTNE2EulerVariable::CalcdPdU(su2double *V, CConfig *config, su2double *val_ // Species density for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) { - rhos = V[RHOS_INDEX+iSpecies]; + //rhos = V[RHOS_INDEX+iSpecies]; ef = hf[iSpecies] - Ru/Ms[iSpecies]*Tref[iSpecies]; Cvtrs = (3.0/2.0+xi[iSpecies]/2.0)*Ru/Ms[iSpecies]; @@ -953,7 +956,8 @@ su2double CTNE2EulerVariable::CalcCvve(su2double val_Tve, CConfig *config, unsig unsigned short iEl, *nElStates; su2double *Ms, *thetav, **thetae, **g, Ru; - su2double thoTve, exptv, thsqr, Cvvs, Cves; + su2double thoTve, exptv, Cvvs, Cves; + //su2double thsqr; su2double Tve; su2double num, num2, num3, denom; @@ -985,7 +989,7 @@ su2double CTNE2EulerVariable::CalcCvve(su2double val_Tve, CConfig *config, unsig if (thetav[val_Species] != 0.0) { thoTve = thetav[val_Species]/Tve; exptv = exp(thetav[val_Species]/Tve); - thsqr = thetav[val_Species]*thetav[val_Species]; + //thsqr = thetav[val_Species]*thetav[val_Species]; Cvvs = Ru/Ms[val_Species] * thoTve*thoTve * exptv / ((exptv-1.0)*(exptv-1.0)); } @@ -1014,12 +1018,13 @@ su2double CTNE2EulerVariable::CalcCvve(su2double val_Tve, CConfig *config, unsig void CTNE2EulerVariable::CalcdTdU(su2double *V, CConfig *config, su2double *val_dTdU) { - unsigned short iDim, iSpecies, nHeavy, nEl; + unsigned short iDim, iSpecies, nHeavy; +// unsigned short nEl; su2double *Ms, *xi, *Tref, *hf; su2double v2, ef, T, Cvtrs, rhoCvtr, Ru; - if (ionization) { nHeavy = nSpecies-1; nEl = 1; } - else { nHeavy = nSpecies; nEl = 0; } + if (ionization) { nHeavy = nSpecies-1; }//nEl = 1; } + else { nHeavy = nSpecies; }//nEl = 0; } /*--- Get gas properties from config settings ---*/ Ms = config->GetMolar_Mass(); @@ -1085,7 +1090,8 @@ void CTNE2EulerVariable::CalcdTvedU(su2double *V, CConfig *config, bool CTNE2EulerVariable::SetPrimVar_Compressible(CConfig *config) { - bool V_err, bkup; + bool V_err; + //bool bkup; unsigned short iVar; /*--- Convert conserved to primitive variables ---*/ @@ -1093,7 +1099,7 @@ bool CTNE2EulerVariable::SetPrimVar_Compressible(CConfig *config) { if (V_err) { for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = Solution_Old[iVar]; - bkup = Cons2PrimVar(config, Solution, Primitive, dPdU, dTdU, dTvedU); + //bkup = Cons2PrimVar(config, Solution, Primitive, dPdU, dTdU, dTvedU); } SetVelocity2(); @@ -1244,7 +1250,7 @@ bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, su2double *U, su2double * // cout << "T > Tmax" << endl; } - Tve = V[T_INDEX]; +// Tve = V[T_INDEX]; V[TVE_INDEX] = V[T_INDEX]; /*--- V-E Temperature ---*/ @@ -1285,7 +1291,7 @@ bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, su2double *U, su2double * // Tve = Primitive[TVE_INDEX]; // Tve_o = Primitive[TVE_INDEX]; Tve = V[T_INDEX]; - Tve_o = V[T_INDEX]; +// Tve_o = V[T_INDEX]; // Newton-Raphson if (!nonphys) { @@ -1305,10 +1311,10 @@ bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, su2double *U, su2double * Tve2 = Tve - (f/df)*0.5; // Check for non-physical conditions - if ((Tve2 != Tve2) || (Tve2 < 0)) { - nonphys = true; - break; - } +// if ((Tve2 != Tve2) || (Tve2 < 0)) { +// nonphys = true; +// break; +// } // Check for convergence if (fabs(Tve2-Tve) < tol) { nrconvg = true; @@ -1405,7 +1411,8 @@ bool CTNE2EulerVariable::Cons2PrimVar(CConfig *config, su2double *U, su2double * void CTNE2EulerVariable::Prim2ConsVar(CConfig *config, su2double *V, su2double *U) { unsigned short iDim, iEl, iSpecies, nEl, nHeavy; unsigned short *nElStates; - su2double Ru, Tve, T, sqvel, rhoE, rhoEve, Ef, Ev, Ee, rhos, rhoCvtr, num, denom; + su2double Ru, Tve, T, sqvel, rhoE, rhoEve, Ef, Ev, Ee, rhos, num, denom; +// su2double rhoCvtr; su2double *thetav, *Ms, *xi, *hf, *Tref; su2double **thetae, **g; @@ -1431,8 +1438,8 @@ void CTNE2EulerVariable::Prim2ConsVar(CConfig *config, su2double *V, su2double * sqvel = 0.0; // Velocity^2 [m2/s2] rhoE = 0.0; // Mixture total energy per mass [J/kg] rhoEve = 0.0; // Mixture vib-el energy per mass [J/kg] - denom = 0.0; - rhoCvtr = 0.0; + //denom = 0.0; + //rhoCvtr = 0.0; for (iDim = 0; iDim < nDim; iDim++) sqvel += V[VEL_INDEX+iDim]*V[VEL_INDEX+iDim]; @@ -1476,7 +1483,7 @@ void CTNE2EulerVariable::Prim2ConsVar(CConfig *config, su2double *V, su2double * } for (iSpecies = 0; iSpecies < nEl; iSpecies++) { // Species formation energy - Ef = hf[nSpecies-1] - Ru/Ms[nSpecies-1] * Tref[nSpecies-1]; + //Ef = hf[nSpecies-1] - Ru/Ms[nSpecies-1] * Tref[nSpecies-1]; // Electron t-r mode contributes to mixture vib-el energy rhoEve += (3.0/2.0) * Ru/Ms[nSpecies-1] * (Tve - Tref[nSpecies-1]); @@ -1567,17 +1574,19 @@ CTNE2NSVariable::~CTNE2NSVariable(void) { } void CTNE2NSVariable::SetDiffusionCoeff(CConfig *config) { - unsigned short iSpecies, jSpecies, nHeavy, nEl; + unsigned short iSpecies, jSpecies, nHeavy; +// unsigned short nEl; su2double rho, T, Tve, P; - su2double *Ms, Mi, Mj, pi, Ru, kb, gam_i, gam_j, gam_t, Theta_v; + su2double *Ms, Mi, Mj, pi, Ru, kb, gam_i, gam_j, gam_t; +// su2double Theta_v; su2double denom, d1_ij, D_ij; su2double ***Omega00, Omega_ij; /*--- Acquire gas parameters from CConfig ---*/ Omega00 = config->GetCollisionIntegral00(); Ms = config->GetMolar_Mass(); - if (ionization) {nHeavy = nSpecies-1; nEl = 1;} - else {nHeavy = nSpecies; nEl = 0;} + if (ionization) {nHeavy = nSpecies-1;}// nEl = 1;} + else {nHeavy = nSpecies; }// nEl = 0;} /*--- Rename for convenience ---*/ rho = Primitive[RHO_INDEX]; @@ -1603,7 +1612,7 @@ void CTNE2NSVariable::SetDiffusionCoeff(CConfig *config) { /*--- Calculate molar concentration ---*/ Mi = Ms[iSpecies]; gam_i = Primitive[RHOS_INDEX+iSpecies] / (rho*Mi); - Theta_v = config->GetCharVibTemp(iSpecies); + //Theta_v = config->GetCharVibTemp(iSpecies); denom = 0.0; for (jSpecies = 0; jSpecies < nHeavy; jSpecies++) { @@ -1626,20 +1635,20 @@ void CTNE2NSVariable::SetDiffusionCoeff(CConfig *config) { } } - if (ionization) { - jSpecies = nSpecies-1; - Mj = config->GetMolar_Mass(jSpecies); - gam_j = Primitive[RHOS_INDEX+iSpecies] / (rho*Mj); +// if (ionization) { +// jSpecies = nSpecies-1; +// Mj = config->GetMolar_Mass(jSpecies); + //gam_j = Primitive[RHOS_INDEX+iSpecies] / (rho*Mj); /*--- Calculate the Omega^(0,0)_ij collision cross section ---*/ - Omega_ij = 1E-20 * Omega00[iSpecies][jSpecies][3] - * pow(Tve, Omega00[iSpecies][jSpecies][0]*log(Tve)*log(Tve) - + Omega00[iSpecies][jSpecies][1]*log(Tve) - + Omega00[iSpecies][jSpecies][2]); +// Omega_ij = 1E-20 * Omega00[iSpecies][jSpecies][3] +// * pow(Tve, Omega00[iSpecies][jSpecies][0]*log(Tve)*log(Tve) +// + Omega00[iSpecies][jSpecies][1]*log(Tve) +// + Omega00[iSpecies][jSpecies][2]); /*--- Calculate "delta1_ij" ---*/ - d1_ij = 8.0/3.0 * sqrt((2.0*Mi*Mj) / (pi*Ru*Tve*(Mi+Mj))) * Omega_ij; - } + //d1_ij = 8.0/3.0 * sqrt((2.0*Mi*Mj) / (pi*Ru*Tve*(Mi+Mj))) * Omega_ij; +// } /*--- Assign species diffusion coefficient ---*/ DiffusionCoeff[iSpecies] = gam_t*gam_t*Mi*(1-Mi*gam_i) / denom; @@ -1680,7 +1689,8 @@ void CTNE2NSVariable::SetDiffusionCoeff(CConfig *config) { void CTNE2NSVariable::SetLaminarViscosity(CConfig *config) { - unsigned short iSpecies, jSpecies, nHeavy, nEl; + unsigned short iSpecies, jSpecies, nHeavy; +// unsigned short nEl; su2double rho, T, Tve; su2double *Ms, Mi, Mj, pi, Ru, Na, gam_i, gam_j, denom; su2double ***Omega11, Omega_ij, d2_ij; @@ -1688,8 +1698,8 @@ void CTNE2NSVariable::SetLaminarViscosity(CConfig *config) { /*--- Acquire gas parameters from CConfig ---*/ Omega11 = config->GetCollisionIntegral11(); Ms = config->GetMolar_Mass(); - if (ionization) {nHeavy = nSpecies-1; nEl = 1;} - else {nHeavy = nSpecies; nEl = 0;} + if (ionization) {nHeavy = nSpecies-1; } // nEl = 1;} + else {nHeavy = nSpecies; } // nEl = 0;} /*--- Rename for convenience ---*/ rho = Primitive[RHO_INDEX]; @@ -1767,9 +1777,11 @@ void CTNE2NSVariable::SetLaminarViscosity(CConfig *config) { void CTNE2NSVariable ::SetThermalConductivity(CConfig *config) { - unsigned short iSpecies, jSpecies, nHeavy, nEl; - su2double rho, T, Tve, Cvve; - su2double *xi, *Ms, Mi, Mj, mi, mj, pi, R, Ru, Na, kb, gam_i, gam_j, Theta_v; + unsigned short iSpecies, jSpecies; +// unsigned short nHeavy, nEl; + su2double rho, T, Cvve; +// su2double Tve, Theta_v; + su2double *xi, *Ms, Mi, Mj, mi, mj, pi, R, Ru, Na, kb, gam_i, gam_j; su2double denom_t, denom_r, d1_ij, d2_ij, a_ij; su2double ***Omega00, ***Omega11, Omega_ij; @@ -1783,13 +1795,13 @@ void CTNE2NSVariable ::SetThermalConductivity(CConfig *config) { Omega11 = config->GetCollisionIntegral11(); Ms = config->GetMolar_Mass(); xi = config->GetRotationModes(); - if (ionization) {nHeavy = nSpecies-1; nEl = 1;} - else {nHeavy = nSpecies; nEl = 0;} +// if (ionization) {nHeavy = nSpecies-1; nEl = 1;} +// else {nHeavy = nSpecies; nEl = 0;} /*--- Rename for convenience ---*/ rho = Primitive[RHO_INDEX]; T = Primitive[T_INDEX]; - Tve = Primitive[TVE_INDEX]; + //Tve = Primitive[TVE_INDEX]; Cvve = Primitive[RHOCVVE_INDEX]/rho; pi = PI_NUMBER; Ru = UNIVERSAL_GAS_CONSTANT; @@ -1811,7 +1823,7 @@ void CTNE2NSVariable ::SetThermalConductivity(CConfig *config) { Mi = Ms[iSpecies]; mi = Mi/Na; gam_i = Primitive[RHOS_INDEX+iSpecies] / (rho*Mi); - Theta_v = config->GetCharVibTemp(iSpecies); + //Theta_v = config->GetCharVibTemp(iSpecies); denom_t = 0.0; denom_r = 0.0; @@ -1925,14 +1937,15 @@ bool CTNE2NSVariable::SetPrimVar_Compressible(CConfig *config) { // RightVol = false; // } - bool V_err, bkup; + bool V_err; + //bool bkup; unsigned short iVar; V_err = Cons2PrimVar(config, Solution, Primitive, dPdU, dTdU, dTvedU); if (V_err) { for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = Solution_Old[iVar]; - bkup = Cons2PrimVar(config, Solution, Primitive, dPdU, dTdU, dTvedU); + //bkup = Cons2PrimVar(config, Solution, Primitive, dPdU, dTdU, dTvedU); } SetVelocity2(); diff --git a/SU2_CFD/src/variable_direct_transition.cpp b/SU2_CFD/src/variable_direct_transition.cpp index 22293fd4d43..63dc9c71dd7 100644 --- a/SU2_CFD/src/variable_direct_transition.cpp +++ b/SU2_CFD/src/variable_direct_transition.cpp @@ -2,7 +2,7 @@ * \file variable_direct_transition.cpp * \brief Definition of the solution fields. * \author A. Aranake - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_turbulent.cpp b/SU2_CFD/src/variable_direct_turbulent.cpp index 46673009a7d..abce60388c1 100644 --- a/SU2_CFD/src/variable_direct_turbulent.cpp +++ b/SU2_CFD/src/variable_direct_turbulent.cpp @@ -2,7 +2,7 @@ * \file variable_direct_turbulent.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_wave.cpp b/SU2_CFD/src/variable_direct_wave.cpp index 11ef18e92a5..92ab9e53c1b 100644 --- a/SU2_CFD/src/variable_direct_wave.cpp +++ b/SU2_CFD/src/variable_direct_wave.cpp @@ -2,7 +2,7 @@ * \file variable_direct_wave.cpp * \brief Definition of the solution fields. * \author T. Economon, F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_linearized_mean.cpp b/SU2_CFD/src/variable_linearized_mean.cpp index 1b2d8ebf2da..6cbecd1c0dd 100644 --- a/SU2_CFD/src/variable_linearized_mean.cpp +++ b/SU2_CFD/src/variable_linearized_mean.cpp @@ -2,7 +2,7 @@ * \file variable_linearized_mean.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_linearized_turbulent.cpp b/SU2_CFD/src/variable_linearized_turbulent.cpp index 5ff26af7e0e..30fedc74096 100644 --- a/SU2_CFD/src/variable_linearized_turbulent.cpp +++ b/SU2_CFD/src/variable_linearized_turbulent.cpp @@ -2,7 +2,7 @@ * \file variable_linearized_turbulent.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_structure.cpp b/SU2_CFD/src/variable_structure.cpp index 98e115371b5..4620b8f3729 100644 --- a/SU2_CFD/src/variable_structure.cpp +++ b/SU2_CFD/src/variable_structure.cpp @@ -2,7 +2,7 @@ * \file variable_structure.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_template.cpp b/SU2_CFD/src/variable_template.cpp index 318e70999d7..c185effefc6 100644 --- a/SU2_CFD/src/variable_template.cpp +++ b/SU2_CFD/src/variable_template.cpp @@ -2,7 +2,7 @@ * \file variable_template.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/include/SU2_DEF.hpp b/SU2_DEF/include/SU2_DEF.hpp index ad7c926723f..f2d98030cdf 100644 --- a/SU2_DEF/include/SU2_DEF.hpp +++ b/SU2_DEF/include/SU2_DEF.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_DEF. * The subroutines and functions are in the SU2_DEF.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/obj/Makefile.am b/SU2_DEF/obj/Makefile.am index df7e2bc6293..8b0e556298c 100644 --- a/SU2_DEF/obj/Makefile.am +++ b/SU2_DEF/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_DEF # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index e1f8c87b226..09f14f4b82c 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_DEF # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index 1d323077ff4..f49af2df033 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -2,7 +2,7 @@ * \file SU2_DEF.cpp * \brief Main file of Mesh Deformation Code (SU2_DEF). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/include/SU2_DOT.hpp b/SU2_DOT/include/SU2_DOT.hpp index 91c7cd780ae..9aba65ba97c 100644 --- a/SU2_DOT/include/SU2_DOT.hpp +++ b/SU2_DOT/include/SU2_DOT.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_DOT. * The subroutines and functions are in the SU2_DOT.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/obj/Makefile.am b/SU2_DOT/obj/Makefile.am index a934fd22b7d..2775ca7e83d 100644 --- a/SU2_DOT/obj/Makefile.am +++ b/SU2_DOT/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_DOT # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index d9c2145b1dd..1f530f6f221 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_DOT # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 8eb7448780e..15a239b0b5f 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -2,7 +2,7 @@ * \file SU2_DOT.cpp * \brief Main file of the Gradient Projection Code (SU2_DOT). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/include/SU2_GEO.hpp b/SU2_GEO/include/SU2_GEO.hpp index 8d733937662..521b6c628fc 100644 --- a/SU2_GEO/include/SU2_GEO.hpp +++ b/SU2_GEO/include/SU2_GEO.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_GEO. * The subroutines and functions are in the SU2_GEO.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/obj/Makefile.am b/SU2_GEO/obj/Makefile.am index 6b85140319f..d97f70e8be7 100644 --- a/SU2_GEO/obj/Makefile.am +++ b/SU2_GEO/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_GEO # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 00d3208c983..8387d566da8 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_GEO # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 0939704f33e..382d6234e71 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -2,7 +2,7 @@ * \file SU2_GEO.cpp * \brief Main file of the Geometry Definition Code (SU2_GEO). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj index fd04a4fc52f..536670cfa14 100644 --- a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj @@ -1510,7 +1510,7 @@ CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 4.0.0; + CURRENT_PROJECT_VERSION = 4.0.1; GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; @@ -1579,7 +1579,7 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 4.0.0; + CURRENT_PROJECT_VERSION = 4.0.1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; diff --git a/SU2_MSH/include/SU2_MSH.hpp b/SU2_MSH/include/SU2_MSH.hpp index c1210598307..a3a14b27fc7 100644 --- a/SU2_MSH/include/SU2_MSH.hpp +++ b/SU2_MSH/include/SU2_MSH.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_MSH. * The subroutines and functions are in the SU2_MSH.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/obj/Makefile.am b/SU2_MSH/obj/Makefile.am index d3afa997446..59165feaa81 100644 --- a/SU2_MSH/obj/Makefile.am +++ b/SU2_MSH/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_MSH # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index 6386cfe1a32..d0a5ac97f4f 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_MSH # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/src/SU2_MSH.cpp b/SU2_MSH/src/SU2_MSH.cpp index af411d1c444..d3d2483b0bc 100644 --- a/SU2_MSH/src/SU2_MSH.cpp +++ b/SU2_MSH/src/SU2_MSH.cpp @@ -2,7 +2,7 @@ * \file SU2_MSH.cpp * \brief Main file of Mesh Adaptation Code (SU2_MSH). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/Makefile.am b/SU2_PY/Makefile.am index ae4033f1750..b06ee328a0f 100644 --- a/SU2_PY/Makefile.am +++ b/SU2_PY/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for the SU2 Python framework # \author M. Colonno, T. Economon, F. Palacios, T. Lukaczyk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index e3d89e703f0..c01c6f7b7d3 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for the SU2 Python framework # \author M. Colonno, T. Economon, F. Palacios, T. Lukaczyk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py index 4208737c466..05206bd5d9f 100644 --- a/SU2_PY/SU2/eval/design.py +++ b/SU2_PY/SU2/eval/design.py @@ -3,7 +3,7 @@ ## \file design.py # \brief python package for designs # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/eval/functions.py b/SU2_PY/SU2/eval/functions.py index 13a8e9e9640..d5b53e761b3 100644 --- a/SU2_PY/SU2/eval/functions.py +++ b/SU2_PY/SU2/eval/functions.py @@ -3,7 +3,7 @@ ## \file functions.py # \brief python package for functions # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index 7782efc023c..7416212e196 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -3,7 +3,7 @@ ## \file gradients.py # \brief python package for gradients # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index eaa9ade063a..85ebfb10214 100644 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -3,7 +3,7 @@ ## \file config.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/config_options.py b/SU2_PY/SU2/io/config_options.py index c1d8b743dea..7d173e5dc31 100644 --- a/SU2_PY/SU2/io/config_options.py +++ b/SU2_PY/SU2/io/config_options.py @@ -1,7 +1,7 @@ ## \file config_options.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/data.py b/SU2_PY/SU2/io/data.py index 3ae32d320a7..218c3aece50 100644 --- a/SU2_PY/SU2/io/data.py +++ b/SU2_PY/SU2/io/data.py @@ -3,7 +3,7 @@ ## \file data.py # \brief python package for data utility functions # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/filelock.py b/SU2_PY/SU2/io/filelock.py index 854cb41bf18..aee4105bb7f 100644 --- a/SU2_PY/SU2/io/filelock.py +++ b/SU2_PY/SU2/io/filelock.py @@ -3,7 +3,7 @@ ## \file filelock.py # \brief python package for filelocking # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/redirect.py b/SU2_PY/SU2/io/redirect.py index f42d078fabb..436ecab7eeb 100644 --- a/SU2_PY/SU2/io/redirect.py +++ b/SU2_PY/SU2/io/redirect.py @@ -3,7 +3,7 @@ ## \file redirect.py # \brief python package for file redirection # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/state.py b/SU2_PY/SU2/io/state.py index b34303d8902..4b142dcf7ef 100644 --- a/SU2_PY/SU2/io/state.py +++ b/SU2_PY/SU2/io/state.py @@ -3,7 +3,7 @@ ## \file state.py # \brief python package for state # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py index 681289320f9..881cbd490e3 100644 --- a/SU2_PY/SU2/io/tools.py +++ b/SU2_PY/SU2/io/tools.py @@ -3,7 +3,7 @@ ## \file tools.py # \brief file i/o functions # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/mesh/adapt.py b/SU2_PY/SU2/mesh/adapt.py index b0e17ddc00b..95cc17e833b 100644 --- a/SU2_PY/SU2/mesh/adapt.py +++ b/SU2_PY/SU2/mesh/adapt.py @@ -3,7 +3,7 @@ ## \file adapt.py # \brief mesh functions # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/mesh/tools.py b/SU2_PY/SU2/mesh/tools.py index ef6cb4b0b68..30cc0bd338d 100644 --- a/SU2_PY/SU2/mesh/tools.py +++ b/SU2_PY/SU2/mesh/tools.py @@ -3,7 +3,7 @@ ## \file tools.py # \brief mesh functions # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/opt/project.py b/SU2_PY/SU2/opt/project.py index 8d34b5999f1..20e4d8a8780 100644 --- a/SU2_PY/SU2/opt/project.py +++ b/SU2_PY/SU2/opt/project.py @@ -3,7 +3,7 @@ ## \file project.py # \brief package for optimization projects # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py index 296a8599435..2168a7b1375 100644 --- a/SU2_PY/SU2/opt/scipy_tools.py +++ b/SU2_PY/SU2/opt/scipy_tools.py @@ -3,7 +3,7 @@ ## \file scipy_tools.py # \brief tools for interfacing with scipy # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/opt/server.py b/SU2_PY/SU2/opt/server.py index b929bcafc63..41c3acad98a 100644 --- a/SU2_PY/SU2/opt/server.py +++ b/SU2_PY/SU2/opt/server.py @@ -3,7 +3,7 @@ ## \file server.py # \brief tools for interfacing with scipy # \author T. Lukaczyk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/adaptation.py b/SU2_PY/SU2/run/adaptation.py index 35db71c1e60..a8063ca7be7 100644 --- a/SU2_PY/SU2/run/adaptation.py +++ b/SU2_PY/SU2/run/adaptation.py @@ -3,7 +3,7 @@ ## \file adjoint.py # \brief python package for running adjoint problems # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/adjoint.py b/SU2_PY/SU2/run/adjoint.py index 28a91ec2eb5..8af852c628d 100644 --- a/SU2_PY/SU2/run/adjoint.py +++ b/SU2_PY/SU2/run/adjoint.py @@ -3,7 +3,7 @@ ## \file adjoint.py # \brief python package for running adjoint problems # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/deform.py b/SU2_PY/SU2/run/deform.py index 4ce13833011..c1b405c04bc 100644 --- a/SU2_PY/SU2/run/deform.py +++ b/SU2_PY/SU2/run/deform.py @@ -3,7 +3,7 @@ ## \file deform.py # \brief python package for deforming meshes # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py index c3d70bdc1b2..013e36f7fb4 100644 --- a/SU2_PY/SU2/run/direct.py +++ b/SU2_PY/SU2/run/direct.py @@ -3,7 +3,7 @@ ## \file direct.py # \brief python package for running direct solutions # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index 651ecb2157e..5101f2d1b53 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -3,7 +3,7 @@ ## \file geometry.py # \brief python package for running geometry analyses # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index fc2756fd476..2cc4904cfac 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -3,7 +3,7 @@ ## \file interface.py # \brief python package interfacing with the SU2 suite # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py index bfc491bfea0..bfda55e9750 100644 --- a/SU2_PY/SU2/run/merge.py +++ b/SU2_PY/SU2/run/merge.py @@ -1,7 +1,7 @@ ## \file merge.py # \brief python package for merging meshes # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # Copyright (C) 2012-2015 SU2 Developers. # diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py index 8ed0f108d1a..02ec0102bde 100644 --- a/SU2_PY/SU2/run/projection.py +++ b/SU2_PY/SU2/run/projection.py @@ -3,7 +3,7 @@ ## \file projection.py # \brief python package for running gradient projection # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/util/filter_adjoint.py b/SU2_PY/SU2/util/filter_adjoint.py index eaeb4214014..fff63d9b632 100644 --- a/SU2_PY/SU2/util/filter_adjoint.py +++ b/SU2_PY/SU2/util/filter_adjoint.py @@ -3,7 +3,7 @@ ## \file filter_adjoint.py # \brief Applies various filters to the adjoint surface sensitivities of an airfoil # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/util/plot.py b/SU2_PY/SU2/util/plot.py index eea39f26ea7..998675fbc3c 100644 --- a/SU2_PY/SU2/util/plot.py +++ b/SU2_PY/SU2/util/plot.py @@ -3,7 +3,7 @@ ## \file plot.py # \brief python package for plotting # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/util/which.py b/SU2_PY/SU2/util/which.py index f7bbb574bae..50738ca834c 100644 --- a/SU2_PY/SU2/util/which.py +++ b/SU2_PY/SU2/util/which.py @@ -3,7 +3,7 @@ ## \file which.py # \brief looks for where a program is # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/change_version_number.py b/SU2_PY/change_version_number.py index ccc2f62ef43..90b8b830d26 100755 --- a/SU2_PY/change_version_number.py +++ b/SU2_PY/change_version_number.py @@ -3,7 +3,7 @@ ## \file change_version_number.py # \brief Python script for updating the version number of the SU2 suite. # \author A. Aranake -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -32,8 +32,8 @@ # Run the script from the base directory (ie $SU2HOME). Grep will search directories recursively for matches in version number import os,sys -oldvers = '3.2.9 "eagle"' -newvers = '4.0.0 "Cardinal"' +oldvers = '4.0.0 "Cardinal"' +newvers = '4.0.1 "Cardinal"' os.system('rm -rf version.txt') diff --git a/SU2_PY/compute_polar.py b/SU2_PY/compute_polar.py index be53e45967e..d4a30a1604a 100755 --- a/SU2_PY/compute_polar.py +++ b/SU2_PY/compute_polar.py @@ -3,7 +3,7 @@ ## \file shape_optimization.py # \brief Python script for performing the shape optimization. # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/compute_stability.py b/SU2_PY/compute_stability.py index d5326e88d8f..c5eaa7bcae3 100755 --- a/SU2_PY/compute_stability.py +++ b/SU2_PY/compute_stability.py @@ -3,7 +3,7 @@ ## \file compute_stability.py # \brief Python script for performing the shape optimization. # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/config_gui.py b/SU2_PY/config_gui.py index df902151cc4..797804bcefc 100755 --- a/SU2_PY/config_gui.py +++ b/SU2_PY/config_gui.py @@ -3,7 +3,7 @@ ## \file config_gui.py # \brief _____________. # \author A. Aranake -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/continuous_adjoint.py b/SU2_PY/continuous_adjoint.py index a0877925630..119fa57d0f4 100755 --- a/SU2_PY/continuous_adjoint.py +++ b/SU2_PY/continuous_adjoint.py @@ -3,7 +3,7 @@ ## \file continuous_adjoint.py # \brief Python script for continuous adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/direct_differentiation.py b/SU2_PY/direct_differentiation.py index 4be8231d04e..218cb1111bc 100755 --- a/SU2_PY/direct_differentiation.py +++ b/SU2_PY/direct_differentiation.py @@ -3,7 +3,7 @@ ## \file direct_differentiation.py # \brief Python script for doing the direct differentiation computation using the SU2 suite. # \author F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/discrete_adjoint.py b/SU2_PY/discrete_adjoint.py index 74e62d2cccf..eb4ed1a23f0 100755 --- a/SU2_PY/discrete_adjoint.py +++ b/SU2_PY/discrete_adjoint.py @@ -3,7 +3,7 @@ ## \file discrete_adjoint.py # \brief Python script for doing the discrete adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/filter_adjoint.py b/SU2_PY/filter_adjoint.py index eaeb4214014..fff63d9b632 100755 --- a/SU2_PY/filter_adjoint.py +++ b/SU2_PY/filter_adjoint.py @@ -3,7 +3,7 @@ ## \file filter_adjoint.py # \brief Applies various filters to the adjoint surface sensitivities of an airfoil # \author T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/finite_differences.py b/SU2_PY/finite_differences.py index 19f2ddb4836..d390077ec9f 100755 --- a/SU2_PY/finite_differences.py +++ b/SU2_PY/finite_differences.py @@ -3,7 +3,7 @@ ## \file finite_differences.py # \brief Python script for doing the finite differences computation using the SU2 suite. # \author F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/merge_solution.py b/SU2_PY/merge_solution.py index f73f47f45c5..9645cac988e 100755 --- a/SU2_PY/merge_solution.py +++ b/SU2_PY/merge_solution.py @@ -3,7 +3,7 @@ ## \file merge_solution.py # \brief Python script for merging of the solution files. # \author F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/mesh_adaptation.py b/SU2_PY/mesh_adaptation.py index 1b795938c63..03a9ad8cabf 100755 --- a/SU2_PY/mesh_adaptation.py +++ b/SU2_PY/mesh_adaptation.py @@ -3,7 +3,7 @@ ## \file mesh_adaptation.py # \brief Python script for doing the grid adaptation using the SU2 suite. # \author F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/mesh_deformation.py b/SU2_PY/mesh_deformation.py index dce09059e6c..27e71f7fbdd 100755 --- a/SU2_PY/mesh_deformation.py +++ b/SU2_PY/mesh_deformation.py @@ -3,7 +3,7 @@ ## \file mesh_deformation.py # \brief Python script for doing the parallel deformation using SU2_DEF. # \author F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/parallel_computation.py b/SU2_PY/parallel_computation.py index 52e71dea3fe..f1d3c08a785 100755 --- a/SU2_PY/parallel_computation.py +++ b/SU2_PY/parallel_computation.py @@ -3,7 +3,7 @@ ## \file parallel_computation.py # \brief Python script for doing the continuous adjoint computation using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/parse_config.py b/SU2_PY/parse_config.py index 12305c5c090..b0805a04e2b 100755 --- a/SU2_PY/parse_config.py +++ b/SU2_PY/parse_config.py @@ -3,7 +3,7 @@ ## \file parse_config.py # \brief Builds a worksheet of all SU2.cpp options # \author A. Aranake, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/patient_designspace.py b/SU2_PY/patient_designspace.py index 068e7686300..dcd35db6f1d 100755 --- a/SU2_PY/patient_designspace.py +++ b/SU2_PY/patient_designspace.py @@ -3,7 +3,7 @@ ## \file patient_designspace.py # \brief Python script for running multiple design configurations in multiple sessions # \author T. Lukaczyk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index 47760faaf05..2db701a4f1a 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -3,7 +3,7 @@ ## \file set_ffd_design_var.py.py # \brief Python script for automatically generating a list of FFD variables. # \author T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py index 88efffb0364..40cfc1a9b77 100755 --- a/SU2_PY/shape_optimization.py +++ b/SU2_PY/shape_optimization.py @@ -3,7 +3,7 @@ ## \file shape_optimization.py # \brief Python script for performing the shape optimization. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -61,7 +61,7 @@ def main(): sys.stdout.write('\n-------------------------------------------------------------------------\n') sys.stdout.write('| ___ _ _ ___ |\n') - sys.stdout.write('| / __| | | |_ ) Release 4.0.0 \"Cardinal\" |\n') + sys.stdout.write('| / __| | | |_ ) Release 4.0.1 \"Cardinal\" |\n') sys.stdout.write('| \\__ \\ |_| |/ / |\n') sys.stdout.write('| |___/\\___//___| Aerodynamic Shape Optimization Script |\n') sys.stdout.write('| |\n') diff --git a/SU2_SOL/include/SU2_SOL.hpp b/SU2_SOL/include/SU2_SOL.hpp index 5eb91ddaaff..20f7e08fa52 100644 --- a/SU2_SOL/include/SU2_SOL.hpp +++ b/SU2_SOL/include/SU2_SOL.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_SOL. * The subroutines and functions are in the SU2_SOL.cpp file. * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Project Leaders: Dr. Palacios (Francisco.D.Palacios@boeing.com) * Dr. Economon (economon@stanford.edu) diff --git a/SU2_SOL/obj/Makefile.am b/SU2_SOL/obj/Makefile.am index dad70a75d3e..ed0022e0612 100644 --- a/SU2_SOL/obj/Makefile.am +++ b/SU2_SOL/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_SOL # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 568f5de9734..9e736dd7aa7 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_SOL # \author M. Colonno, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 54b48af3281..97bc020e1fc 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -2,7 +2,7 @@ * \file SU2_SOL.cpp * \brief Main file for the solution export/conversion code (SU2_SOL). * \author F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index d71b128bb3e..8fb27fe0058 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -3,7 +3,7 @@ ## \file TestCase.py # \brief Python class for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/actuator_disk/ActDisk_Euler.cfg b/TestCases/actuator_disk/ActDisk_Euler.cfg index 6a7bd4d0bf9..d7990aad13e 100644 --- a/TestCases/actuator_disk/ActDisk_Euler.cfg +++ b/TestCases/actuator_disk/ActDisk_Euler.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2014.06.01 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg index 990d4bb9f0e..1798e7769c7 100644 --- a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg +++ b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 07-09-15 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg index 91b53c94c85..1a8ac1c639d 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg index e645ec949e5..eba73803b26 100644 --- a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg @@ -2,10 +2,10 @@ % % % SU2 configuration file % % Case description: ONERA M6 wing in inviscid, transonic flow % -% Author: Thomas D. Economon % -% Institution: Stanford University % +% Author: Thomas D. Economon % +% Institution: Stanford University % % Date: 2015.08.25 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg index aa74b240708..b19cf4486d5 100644 --- a/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.04.09 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg b/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg index a7d749134df..986972fb7e8 100644 --- a/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg +++ b/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.03.14 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg index ca60a9cdd64..cfeb4aa315b 100644 --- a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg index 55e08f8d470..ae4f8b92b14 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg index 03e2ff179b3..5cd68bda652 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg index 1323bd775f2..2721a808e7d 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg index 7dbcec7f0d8..e6ce69e960d 100644 --- a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg index d4c84255c30..0d3075656c0 100644 --- a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_moving.cfg b/TestCases/control_surface/inv_ONERAM6_moving.cfg index c1e7412aa54..2ffb9139899 100644 --- a/TestCases/control_surface/inv_ONERAM6_moving.cfg +++ b/TestCases/control_surface/inv_ONERAM6_moving.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_setting.cfg b/TestCases/control_surface/inv_ONERAM6_setting.cfg index c4fa404648c..12fcc404239 100644 --- a/TestCases/control_surface/inv_ONERAM6_setting.cfg +++ b/TestCases/control_surface/inv_ONERAM6_setting.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/CRM/inv_CRM_JST.cfg b/TestCases/euler/CRM/inv_CRM_JST.cfg index c1bf3782e46..346479dda08 100644 --- a/TestCases/euler/CRM/inv_CRM_JST.cfg +++ b/TestCases/euler/CRM/inv_CRM_JST.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/biparabolic/BIPARABOLIC.cfg b/TestCases/euler/biparabolic/BIPARABOLIC.cfg index b5a96f9e329..5299b8f8aea 100644 --- a/TestCases/euler/biparabolic/BIPARABOLIC.cfg +++ b/TestCases/euler/biparabolic/BIPARABOLIC.cfg @@ -5,7 +5,7 @@ % Author: Trent W. Lukaczyk % % Institution: Stanford University % % Date: 2012.08.16 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel.cfg b/TestCases/euler/channel/inv_channel.cfg index 63f411f5387..dae3cdc8025 100644 --- a/TestCases/euler/channel/inv_channel.cfg +++ b/TestCases/euler/channel/inv_channel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index f903bb64ae5..8118b17f13d 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012.cfg b/TestCases/euler/naca0012/inv_NACA0012.cfg index 687dd05794f..df715c7ce36 100644 --- a/TestCases/euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index d3a0098496e..a9a36a53ab0 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/oneram6/inv_ONERAM6.cfg b/TestCases/euler/oneram6/inv_ONERAM6.cfg index 5d367b1c957..7a815210892 100644 --- a/TestCases/euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index 238e8b68af5..2607944c982 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg index 8272d163c4d..d31ec725508 100644 --- a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg +++ b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2015.05.15 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg index 6582ddb9f54..c52ba2a42d0 100644 --- a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg +++ b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2015.05.15 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg b/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg index dfbf720366e..04efa5f19b8 100644 --- a/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg +++ b/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2015.05.15 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg b/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg index 1ccc446f877..eb723aa217b 100644 --- a/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg +++ b/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2015.05.15 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/inv_gust_NACA0012.cfg b/TestCases/gust/inv_gust_NACA0012.cfg index 6dca062b208..7e6e8744888 100644 --- a/TestCases/gust/inv_gust_NACA0012.cfg +++ b/TestCases/gust/inv_gust_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 06-26-2015 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index b0359370626..6df281eacb7 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 09/18/2011 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg index ba73492d2ef..47bb8308075 100644 --- a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.03.14 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/naca0012/naca0012.cfg b/TestCases/incomp_rans/naca0012/naca0012.cfg index d57d04bac38..e413ed1044a 100644 --- a/TestCases/incomp_rans/naca0012/naca0012.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/linear_elasticity/beam.cfg b/TestCases/linear_elasticity/beam.cfg index 67ce455cf70..e6c2f3ca007 100644 --- a/TestCases/linear_elasticity/beam.cfg +++ b/TestCases/linear_elasticity/beam.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.07.05 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/cavity/lam_cavity.cfg b/TestCases/moving_wall/cavity/lam_cavity.cfg index 5eb8f0b10bc..f245848bc0b 100644 --- a/TestCases/moving_wall/cavity/lam_cavity.cfg +++ b/TestCases/moving_wall/cavity/lam_cavity.cfg @@ -2,10 +2,10 @@ % % % SU2 configuration file % % Case description: Laminar flow inside of a lid-driven cavity % -% Author: Thomas D. Economon % -% Institution: Stanford University % +% Author: Thomas D. Economon % +% Institution: Stanford University % % Date: 2013.10.01 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg index af636f7a8a7..e2b4a581c6e 100644 --- a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg +++ b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.08.21 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index 7de79a87fb4..66f18f60367 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index bc97d6056b9..f1835d1143b 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg index 324a393dca4..cf67037813e 100644 --- a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg +++ b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Sep 28, 2012 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index b012ed472b2..570577932d3 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index a3354be71ef..316ad55819d 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg index 6a82e79b39b..bb4dcfc31fd 100644 --- a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg +++ b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg index f30c07b6571..540396aae6e 100644 --- a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg +++ b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg index 1469821a3c8..0e6ef36e6b7 100644 --- a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg +++ b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.06 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg index c0f2fec18d8..4ba48ea8148 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg index d6a39fe8a63..202d91737f5 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index 71d6ee0c382..1d9168a92ca 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 06.16.2014 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg index 8eef2443578..cc224720177 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 06.16.2014 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg index a8b4f9d101b..d96f81760bf 100644 --- a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg +++ b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg index 8e192d0a64e..34985c8e198 100644 --- a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg index 0d2c37bd919..f0d31f93757 100644 --- a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg index 89304164b97..14f00b5b865 100644 --- a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 77fa6fd83c2..608af5dcd3b 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -3,7 +3,7 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/rans/flatplate/turb_SA_flatplate.cfg b/TestCases/rans/flatplate/turb_SA_flatplate.cfg index 97636dae45d..1173e952ce1 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SST_flatplate.cfg b/TestCases/rans/flatplate/turb_SST_flatplate.cfg index 8d77be6ec64..080f87afbfd 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6.cfg b/TestCases/rans/oneram6/turb_ONERAM6.cfg index ca78d7b043b..69e503e27bc 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.14 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg index f3d1fbdc6d2..9a92db918da 100644 --- a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg index f99082c4868..cb220462754 100644 --- a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/trans_s809.cfg b/TestCases/rans/s809/trans_s809.cfg index 2b0278c33e0..90a201eab4a 100644 --- a/TestCases/rans/s809/trans_s809.cfg +++ b/TestCases/rans/s809/trans_s809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/turb_S809.cfg b/TestCases/rans/s809/turb_S809.cfg index f6bbbb346f3..c3a90690fd5 100644 --- a/TestCases/rans/s809/turb_S809.cfg +++ b/TestCases/rans/s809/turb_S809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/vki_turbine/turb_vki.cfg b/TestCases/rans/vki_turbine/turb_vki.cfg index 8d27071ac2b..9c782973c82 100644 --- a/TestCases/rans/vki_turbine/turb_vki.cfg +++ b/TestCases/rans/vki_turbine/turb_vki.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg index 5dc6d4be4d2..6a375f1f9d6 100644 --- a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg +++ b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index 5c7969834a0..1a5401a54af 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index e71c80a5f35..0d8126131db 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -3,7 +3,7 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/spectral_method/spectral.cfg b/TestCases/spectral_method/spectral.cfg index 39b937ab0bb..dd888ce7596 100644 --- a/TestCases/spectral_method/spectral.cfg +++ b/TestCases/spectral_method/spectral.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/tne2/ramc/ramc61km.cfg b/TestCases/tne2/ramc/ramc61km.cfg index 3387f6ec217..e0cc5af49c0 100644 --- a/TestCases/tne2/ramc/ramc61km.cfg +++ b/TestCases/tne2/ramc/ramc61km.cfg @@ -5,7 +5,7 @@ % Author: Sean R. Copeland % % Institution: Stanford University % % Date: July 30, 2013 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg index d9831c1fbf0..d3c96f41fd5 100644 --- a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg index 1fc5e1cc341..bf241271aad 100644 --- a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg index 0daf1ab2d7f..d7e22a87951 100644 --- a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg +++ b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Jun 12, 2014 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/square_cylinder/turb_square.cfg b/TestCases/unsteady/square_cylinder/turb_square.cfg index 0f9a67af4dc..6bfb1987000 100644 --- a/TestCases/unsteady/square_cylinder/turb_square.cfg +++ b/TestCases/unsteady/square_cylinder/turb_square.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.02.25 % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/config_template.cfg b/config_template.cfg index 38c763dc3e6..8e208eec8cd 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/config_template_basic.cfg b/config_template_basic.cfg index bd114a9e721..449607c2a7b 100644 --- a/config_template_basic.cfg +++ b/config_template_basic.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 4.0.0 "Cardinal" % +% File Version 4.0.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/configure b/configure index e51461f662e..309b42c53d6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for SU2 4.0.0. +# Generated by GNU Autoconf 2.69 for SU2 4.0.1. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='SU2' PACKAGE_TARNAME='SU2' -PACKAGE_VERSION='4.0.0' -PACKAGE_STRING='SU2 4.0.0' +PACKAGE_VERSION='4.0.1' +PACKAGE_STRING='SU2 4.0.1' PACKAGE_BUGREPORT='su2code-dev@lists.stanford.edu' PACKAGE_URL='https://github.com/su2code' @@ -1389,7 +1389,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures SU2 4.0.0 to adapt to many kinds of systems. +\`configure' configures SU2 4.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1460,7 +1460,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of SU2 4.0.0:";; + short | recursive ) echo "Configuration of SU2 4.0.1:";; esac cat <<\_ACEOF @@ -1606,7 +1606,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -SU2 configure 4.0.0 +SU2 configure 4.0.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2083,7 +2083,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by SU2 $as_me 4.0.0, which was +It was created by SU2 $as_me 4.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3019,7 +3019,7 @@ fi # Define the identity of the package. PACKAGE='SU2' - VERSION='4.0.0' + VERSION='4.0.1' cat >>confdefs.h <<_ACEOF @@ -7364,7 +7364,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by SU2 $as_me 4.0.0, which was +This file was extended by SU2 $as_me 4.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7422,7 +7422,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -SU2 config.status 4.0.0 +SU2 config.status 4.0.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -8124,7 +8124,7 @@ abs_prefix=$prefix #`(cd $prefix && pwd)` ------------------------------------------------------------------------- | ___ _ _ ___ | -| / __| | | |_ ) Release 4.0.0 'Cardinal' | +| / __| | | |_ ) Release 4.0.1 'Cardinal' | | \\__ \\ |_| |/ / | | |___/\\___//___| Suite | | | @@ -8208,7 +8208,7 @@ $as_echo " ------------------------------------------------------------------------- | ___ _ _ ___ | -| / __| | | |_ ) Release 4.0.0 'Cardinal' | +| / __| | | |_ ) Release 4.0.1 'Cardinal' | | \\__ \\ |_| |/ / | | |___/\\___//___| Suite | | | diff --git a/configure.ac b/configure.ac index 88ed6415bf2..65ea18c1744 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ # \file configure.ac # \brief Main file for configuring the autoconf/automake build process # \author M. Colonno, T. Economon, F. Palacios, B. Kirk -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -39,7 +39,7 @@ # ################################################################################ -AC_INIT([SU2], [4.0.0], [su2code-dev@lists.stanford.edu], +AC_INIT([SU2], [4.0.1], [su2code-dev@lists.stanford.edu], [SU2], [https://github.com/su2code]) AC_PREREQ([2.59]) AC_CONFIG_MACRO_DIR([m4]) @@ -579,7 +579,7 @@ AC_MSG_RESULT([ ------------------------------------------------------------------------- | ___ _ _ ___ | -| / __| | | |_ ) Release 4.0.0 'Cardinal' | +| / __| | | |_ ) Release 4.0.1 'Cardinal' | | \\__ \\ |_| |/ / | | |___/\\___//___| Suite | | | diff --git a/externals/Makefile.am b/externals/Makefile.am index de6da727b87..d8be43add7a 100644 --- a/externals/Makefile.am +++ b/externals/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for external libraries # \author B. Kirk, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/externals/Makefile.in b/externals/Makefile.in index c24af80d9f1..0a4bae5294a 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for external libraries # \author B. Kirk, T. Economon, F. Palacios -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -89,11 +89,10 @@ target_triplet = @target@ subdir = externals DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/adolc.m4 \ - $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/codi.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ + $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ + $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ + $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -160,8 +159,6 @@ am__relativize = \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ -ADOLC_CFLAGS = @ADOLC_CFLAGS@ -ADOLC_LIBS = @ADOLC_LIBS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ @@ -216,11 +213,11 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ REVERSE_CXX = @REVERSE_CXX@ REVERSE_LIBS = @REVERSE_LIBS@ diff --git a/externals/metis/Makefile.in b/externals/metis/Makefile.in index 7978aac0227..5b2e02d2273 100644 --- a/externals/metis/Makefile.in +++ b/externals/metis/Makefile.in @@ -55,11 +55,10 @@ subdir = externals/metis DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/adolc.m4 \ - $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/codi.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ + $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ + $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ + $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -178,8 +177,6 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -ADOLC_CFLAGS = @ADOLC_CFLAGS@ -ADOLC_LIBS = @ADOLC_LIBS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ @@ -234,11 +231,11 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ REVERSE_CXX = @REVERSE_CXX@ REVERSE_LIBS = @REVERSE_LIBS@ diff --git a/externals/parmetis/Makefile.in b/externals/parmetis/Makefile.in index 0131f1e6ef7..1cb9561a5f4 100644 --- a/externals/parmetis/Makefile.in +++ b/externals/parmetis/Makefile.in @@ -55,11 +55,10 @@ subdir = externals/parmetis DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/adolc.m4 \ - $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/codi.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ + $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ + $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ + $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,8 +158,6 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -ADOLC_CFLAGS = @ADOLC_CFLAGS@ -ADOLC_LIBS = @ADOLC_LIBS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ @@ -215,11 +212,11 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ REVERSE_CXX = @REVERSE_CXX@ REVERSE_LIBS = @REVERSE_LIBS@ diff --git a/externals/tecio/Makefile.in b/externals/tecio/Makefile.in index 970fedc1de0..6825c36b6f6 100644 --- a/externals/tecio/Makefile.in +++ b/externals/tecio/Makefile.in @@ -55,11 +55,10 @@ subdir = externals/tecio DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/adolc.m4 \ - $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/codi.m4 \ - $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ - $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ + $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ + $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ + $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -151,8 +150,6 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -ADOLC_CFLAGS = @ADOLC_CFLAGS@ -ADOLC_LIBS = @ADOLC_LIBS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ @@ -207,11 +204,11 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ PARMETIS_LIB = @PARMETIS_LIB@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ REVERSE_CXX = @REVERSE_CXX@ REVERSE_LIBS = @REVERSE_LIBS@ diff --git a/externals/tecio/tecsrc/arrlist.cpp b/externals/tecio/tecsrc/arrlist.cpp index 2ed5ad36df2..e36a147456b 100644 --- a/externals/tecio/tecsrc/arrlist.cpp +++ b/externals/tecio/tecsrc/arrlist.cpp @@ -308,6 +308,7 @@ static void DestroyItems(ArrayList_pa ArrayList, LgIndex_t ItemIndex = (Index + ItemOffset) * ItemSize; Boolean_t CHECK_DoContinue; CHECK_DoContinue = ItemDestructor(static_cast(&ArrayList->Array[ItemIndex]), ClientData); + if (CHECK_DoContinue) { /*do nothing*/} CHECK(CHECK_DoContinue); /* this is a requirement of ArrayListItemDestructor_pf */ } } diff --git a/preconfigure.py b/preconfigure.py index f657cc8b3fe..b0dccd33d12 100755 --- a/preconfigure.py +++ b/preconfigure.py @@ -3,7 +3,7 @@ ## \file configure.py # \brief An extended configuration script. # \author T. Albring -# \version 4.0.0 "Cardinal" +# \version 4.0.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (francisco.palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -488,7 +488,7 @@ def header(): print '-------------------------------------------------------------------------\n'\ '| ___ _ _ ___ | \n'\ - '| / __| | | |_ ) Release 4.0.0 \'Cardinal\' | \n'\ + '| / __| | | |_ ) Release 4.0.1 \'Cardinal\' | \n'\ '| \__ \ |_| |/ / | \n'\ '| |___/\___//___| Pre-configuration Script | \n'\ '| | \n'\ From 0ad3381bcc5ab2ab415c1aa8e3fedd840fe9cd05 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 7 Sep 2015 22:08:45 -0700 Subject: [PATCH 072/269] FSI: New SetFlow_Displacement routine for parallel support. --- Common/include/mpi_structure.hpp | 3 + Common/include/mpi_structure.inl | 6 + SU2_CFD/src/solver_direct_mean.cpp | 426 ++++++++++++++++++++++---- SU2_CFD/src/solver_fem_elasticity.cpp | 2 +- SU2_SOL/src/SU2_SOL.cpp | 11 + 5 files changed, 380 insertions(+), 68 deletions(-) diff --git a/Common/include/mpi_structure.hpp b/Common/include/mpi_structure.hpp index c8952ce277d..b1e50164020 100644 --- a/Common/include/mpi_structure.hpp +++ b/Common/include/mpi_structure.hpp @@ -106,6 +106,9 @@ class CMPIWrapper { static void Allgather(void *sendbuf, int sendcnt, MPI_Datatype sendtype, void *recvbuf, int recvcnt, MPI_Datatype recvtype, MPI_Comm comm); + static void Scatter(void *sendbuf, int sendcnt,MPI_Datatype sendtype, + void *recvbuf, int recvcnt, MPI_Datatype recvtype, int root, MPI_Comm comm); + static void Sendrecv(void *sendbuf, int sendcnt, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcnt, MPI_Datatype recvtype,int source, int recvtag, diff --git a/Common/include/mpi_structure.inl b/Common/include/mpi_structure.inl index 21c8620c245..be482781257 100644 --- a/Common/include/mpi_structure.inl +++ b/Common/include/mpi_structure.inl @@ -95,6 +95,12 @@ inline void CMPIWrapper::Allgather(void *sendbuf, int sendcnt, MPI_Datatype send MPI_Allgather(sendbuf,sendcnt,sendtype, recvbuf, recvcnt, recvtype, comm); } +inline void CMPIWrapper::Scatter(void *sendbuf, int sendcnt,MPI_Datatype sendtype, + void *recvbuf, int recvcnt, MPI_Datatype recvtype, int root, MPI_Comm comm){ + MPI_Scatter(sendbuf,sendcnt,sendtype,recvbuf,recvcnt,recvtype,root,comm); +} + + inline void CMPIWrapper::Sendrecv(void *sendbuf, int sendcnt, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcnt, MPI_Datatype recvtype,int source, int recvtag, diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index b3c4dce202b..6f072f66036 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -9982,7 +9982,7 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { unsigned short iMarker, iDim; unsigned long iVertex, iPoint; - su2double *Coord, VarCoord[3]; + su2double *Coord, VarCoord[3] = {0,0,0}; #ifndef HAVE_MPI unsigned long iPoint_Donor; @@ -10017,100 +10017,392 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo #else int rank = MASTER_NODE; - MPI_Status send_stat[1], recv_stat[1], status; - MPI_Request send_req[1], recv_req[1]; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); + int size = SINGLE_NODE; - /*--- Initialize buffers: we need to communicate coord + solution from the structure ---*/ - su2double *Buffer_Send_CoordDonor = new su2double [nDim]; - su2double *Buffer_Receive_CoordDonor = new su2double [nDim]; - su2double *Buffer_Send_DisplacementDonor = new su2double [nDim]; - su2double *Buffer_Receive_DisplacementDonor = new su2double [nDim]; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; + unsigned long iVertexFlow = 0; + unsigned long nPoint_Total = 0; + + unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side + unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers + + unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; + + unsigned long nBuffer_StructCoord = 0, nBuffer_FlowNewCoord = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; + + unsigned long Point_Flow, Point_Struct; + unsigned long Processor_Flow, Processor_Struct; + + int Marker_Flow = -1, Marker_Struct = -1; + + int iProcessor, nProcessor = 0; + + + su2double *Coord_Struct, *Displacement_Struct; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2; + nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerFSI = 1; iMarkerFSI <= nMarkerFSI; iMarkerFSI++){ + + Marker_Struct = -1; + Marker_Flow = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexStruct[1], *Buffer_Recv_nVertexStruct = NULL; + unsigned long Buffer_Send_nVertexFlow[1], *Buffer_Recv_nVertexFlow = NULL; + + /*--- The markers on the fluid and structural side are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on structural side and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the structural side ---*/ + + for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFEA) equals the index we are looping at ---*/ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == iMarkerFSI ){ + /*--- We have identified the local index of the FEA marker ---*/ + /*--- Store the number of local points that belong to markFEA on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexStruct = fea_geometry[MESH_0]->GetnVertex(iMarkerStruct); + /*--- Store the identifier for the structural marker ---*/ + Marker_Struct = iMarkerStruct; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the FEA markers ---*/ + nLocalVertexStruct = 0; + Marker_Struct = -1; + } + } - /*--- Processor which hosts the fluid data and the structural data ---*/ - int Processor_Flow, Processor_Struct; - unsigned long Point_Flow, Point_Struct; + /*--- On the fluid side ---*/ - /*--- Do the send process, by the moment we are sending each - node individually, this must be changed ---*/ - for (iMarker = 0; iMarker < fea_config->GetnMarker_All(); iMarker++) { + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == iMarkerFSI ){ + /*--- We have identified the local index of the Flow marker ---*/ + /*--- Store the number of local points that belong to markFlow on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexFlow = flow_geometry[MESH_0]->GetnVertex(iMarkerFlow); + /*--- Store the identifier for the fluid marker ---*/ + Marker_Flow = iMarkerFlow; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexFlow = 0; + Marker_Flow = -1; + } + } - if (fea_config->GetMarker_All_FSIinterface(iMarker) != 0) { + Buffer_Send_nVertexStruct[0] = nLocalVertexStruct; // Retrieve total number of vertices on FEA marker + Buffer_Send_nVertexFlow[0] = nLocalVertexFlow; // Retrieve total number of vertices on Flow marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexStruct = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexFlow = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side - for (iVertex = 0; iVertex < fea_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexStruct, &MaxLocalVertexStruct, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexFlow, &MaxLocalVertexFlow, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - Point_Struct = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexStruct, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexStruct, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexFlow, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexFlow, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) { + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_StructCoord = MaxLocalVertexStruct * nDim; + nBuffer_FlowNewCoord = MaxLocalVertexFlow * nDim; - /*--- Find the associate pair to the original node (index and processor) ---*/ - Point_Flow = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorPoint(); + /*--- We will be gathering donor index and donor processor (for structure -> donor = flow) ---*/ + /*--- Then we will pass on to the fluid side the index (flow point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexStruct; + nBuffer_SetIndex = MaxLocalVertexFlow; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the structural coordinates ---*/ + su2double *Buffer_Send_StructCoord = new su2double[nBuffer_StructCoord]; + su2double *Buffer_Recv_StructCoord = NULL; + + /*--- Buffers to send and receive the donor index and processor ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the new fluid coordinates ---*/ + su2double *Buffer_Send_FlowNewCoord = NULL; + su2double *Buffer_Recv_FlowNewCoord = new su2double[nBuffer_FlowNewCoord]; + + /*--- Buffers to send and receive the fluid index ---*/ + long *Buffer_Send_SetIndex = NULL; + long *Buffer_Recv_SetIndex = new long[nBuffer_SetIndex]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_StructCoord = new su2double[size*nBuffer_StructCoord]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_FlowNewCoord = new su2double[size*nBuffer_FlowNewCoord]; + Buffer_Send_SetIndex = new long[size*nBuffer_SetIndex]; + } + + /*--- On the structural side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Struct >= 0){ + + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ + + Point_Struct = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); + + Point_Flow = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetDonorPoint(); + + Processor_Flow = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetDonorProcessor(); + + Coord_Struct = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(); + + /*--- The displacements come from the predicted solution ---*/ + Displacement_Struct = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(); + +// if (rank == MASTER_NODE){ +// cout << "For point " << Point_Struct << " we have "; +// for (iDim = 0; iDim < nDim; iDim++){ +// Buffer_Send_StructCoord[iVertex*nDim+iDim] = Coord_Struct[iDim] + Displacement_Struct[iDim]; +// cout << "d" << iDim << "= " << Buffer_Send_StructCoord[iVertex*nDim+iDim] << ", "; +// } +// Buffer_Send_DonorIndices[2*iVertex] = Point_Flow; +// cout << "the donor index is " << Buffer_Send_DonorIndices[2*iVertex] ; +// Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Flow; +// cout << " and the donor processor is " << Buffer_Send_DonorIndices[2*iVertex + 1]; +// +// if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) cout << ", and this processor owns it" << endl; +// else cout << ", and it's a halo node" << endl; +// +// } + + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_StructCoord[iVertex*nDim+iDim] = Coord_Struct[iDim] + Displacement_Struct[iDim]; + } + /*--- If this processor owns the node ---*/ + if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Flow; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Flow; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + } + + } + } + + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, Buffer_Recv_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + +// if (rank == MASTER_NODE){ +// cout << endl << "-----------------------------------------------------------" << endl; +// cout << "For tag " << iMarkerFSI << ":" << endl; +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// cout << "The processor " << iProcessor << " has " << Buffer_Recv_nVertexStruct[iProcessor] << " nodes on the structural side and "; +// cout << Buffer_Recv_nVertexFlow[iProcessor] << " nodes on the fluid side " << endl; +// } +// cout << "The max number of vertices is " << MaxLocalVertexStruct << " on the structural side and "; +// cout << MaxLocalVertexFlow << " on the fluid side." << endl; +// +// cout << "---------------- Check received buffers ---------------------" << endl; +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// long initialIndex, initialIndex2; +// initialIndex = iProcessor*nBuffer_StructCoord; +// initialIndex2 = iProcessor*nBuffer_DonorIndices; +// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexStruct[iProcessor]; iCheck++){ +// cout << "From processor " << iProcessor << " we get coordinates ("; +// for (iDim = 0; iDim < nDim; iDim++) +// cout << Buffer_Recv_StructCoord[initialIndex+iCheck*nDim+iDim] << ","; +// cout << "), the donor index for the flow " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2] ; +// cout << " and the donor processor " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2+1] << endl; +// +// } +// } +// +// } + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Flow = NULL; + long iProcessor_Struct = 0, iIndex_Struct = 0; + long iProcessor_Flow = 0, iPoint_Flow = 0, iIndex_Flow = 0; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- We set the counter to 0 ---*/ + Counter_Processor_Flow = new long[nProcessor]; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + Counter_Processor_Flow[iProcessor] = 0; + } + + /*--- First we initialize the index vector to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nProcessor*nBuffer_SetIndex; iVertex++) + Buffer_Send_SetIndex[iVertex] = -2; + + /*--- As of now we do the loop over the structural points ---*/ + /*--- The number of points for flow and structure does not necessarily have to match ---*/ + /*--- In fact, it's possible that a processor asks for nFlow nodes and there are only ---*/ + /*--- nStruc < nFlow available; this is due to halo nodes ---*/ + + /*--- For every processor from which we have received information ---*/ + /*--- (This is, for every processor on the structural side) ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + + /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ + iProcessor_Struct = iProcessor*nBuffer_StructCoord; + /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ + iIndex_Struct = iProcessor*nBuffer_DonorIndices; + + /*--- For every vertex in the information retreived from iProcessor ---*/ + for (iVertex = 0; iVertex < Buffer_Recv_nVertexStruct[iProcessor]; iVertex++) { + + /*--- The processor and index for the flow are: ---*/ + Processor_Flow = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2+1]; + Point_Flow = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2]; + + /*--- Load the buffer at the appropriate position ---*/ + /*--- This is determined on the fluid side by: + *--- Processor_Flow*nBuffer_FlowNewCoord -> Initial position of the processor array (fluid side) + *--- + + *--- Counter_Processor_Flow*nDim -> Initial position of the nDim array for the particular point on the fluid side + *--- + + *--- iDim -> Position within the nDim array that corresponds to a point + *--- + *--- While on the structural side is: + *--- iProcessor*nBuffer_StructCoord -> Initial position on the processor array (structural side) + *--- + + *--- iVertex*nDim -> Initial position of the nDim array for the particular point on the structural side + */ + + /*--- We check that we are not setting the value for a halo node ---*/ + if (Point_Flow != -1){ + iProcessor_Flow = Processor_Flow*nBuffer_FlowNewCoord; + iIndex_Flow = Processor_Flow*nBuffer_SetIndex; + iPoint_Flow = Counter_Processor_Flow[Processor_Flow]*nDim; + + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_FlowNewCoord[iProcessor_Flow + iPoint_Flow + iDim] = Buffer_Recv_StructCoord[iProcessor_Struct + iVertex*nDim + iDim]; + + /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ + Buffer_Send_SetIndex[iIndex_Flow + Counter_Processor_Flow[Processor_Flow]] = Point_Flow; + + Counter_Processor_Flow[Processor_Flow]++; + } + + } + + } + +// cout << "---------------- Check send buffers ---------------------" << endl; +// +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// long initialIndex, initialIndex2; +// initialIndex = iProcessor*nBuffer_FlowNewCoord; +// initialIndex2 = iProcessor*nBuffer_SetIndex; +// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexFlow[iProcessor]; iCheck++){ +// cout << "Processor " << iProcessor << " will receive the node " ; +// cout << Buffer_Send_SetIndex[initialIndex2+iCheck] << " which corresponds to the coordinates "; +// for (iDim = 0; iDim < nDim; iDim++) +// cout << "x" << iDim << "=" << Buffer_Send_FlowNewCoord[initialIndex + iCheck*nDim + iDim] << ", "; +// cout << endl; +// } +// +// } - Processor_Flow = fea_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorProcessor(); + } - /*--- We send coordinates and displacements from the structure to the fluid ---*/ - if (Processor_Flow != rank) { + /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ + SU2_MPI::Scatter(Buffer_Send_FlowNewCoord, nBuffer_FlowNewCoord, MPI_DOUBLE, Buffer_Recv_FlowNewCoord, nBuffer_FlowNewCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - for (iDim = 0; iDim < nDim; iDim++){ - Buffer_Send_CoordDonor[iDim] = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(iDim); - Buffer_Send_DisplacementDonor[iDim] = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(iDim); - } + long indexPoint_iVertex, Point_Flow_Check; - SU2_MPI::Bsend(Buffer_Send_CoordDonor, nDim, MPI_DOUBLE, Processor_Flow, Point_Flow, MPI_COMM_WORLD); - SU2_MPI::Bsend(Buffer_Send_DisplacementDonor, nDim, MPI_DOUBLE, Processor_Flow, Point_Flow, MPI_COMM_WORLD); + /*--- For the flow marker we are studying ---*/ + if (Marker_Flow >= 0){ - } + /*--- We have identified the local index of the Flow marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - } - } - } - } + for (iVertex = 0; iVertex < nLocalVertexFlow; iVertex++){ - /*--- Now the loop is over the flow points ---*/ - for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { + Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); - if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { + if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()){ + /*--- Find the index of the point Point_Flow in the buffer Buffer_Recv_SetIndex ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexFlow, Point_Flow)); - for (iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + Point_Flow_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; - Point_Flow = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + if (Point_Flow_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for mesh deformation." << endl; + exit(EXIT_FAILURE); + } - if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()) { + Coord = flow_geometry[MESH_0]->node[Point_Flow]->GetCoord(); - /*--- Find the associate pair to the original node ---*/ - Point_Struct = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorPoint(); + for (iDim = 0; iDim < nDim; iDim++) + VarCoord[iDim] = (Buffer_Recv_FlowNewCoord[indexPoint_iVertex*nDim+iDim])-Coord[iDim]; - Processor_Struct = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorProcessor(); + flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->SetVarCoord(VarCoord); - /*--- We only receive the information that belong to other boundary ---*/ - if (Processor_Struct != rank){ - SU2_MPI::Recv(Buffer_Receive_CoordDonor, nDim, MPI_DOUBLE, Processor_Struct, Point_Flow, MPI_COMM_WORLD, &status); - SU2_MPI::Recv(Buffer_Receive_DisplacementDonor, nDim, MPI_DOUBLE, Processor_Struct, Point_Flow, MPI_COMM_WORLD, &status); - } - else { - for (iDim = 0; iDim < nDim; iDim++){ - Buffer_Receive_CoordDonor[iDim] = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(iDim); - Buffer_Receive_DisplacementDonor[iDim] = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(iDim); - } - } + } - Coord = flow_geometry[MESH_0]->node[Point_Flow]->GetCoord(); + } - for (iDim = 0; iDim < nDim; iDim++) + } - VarCoord[iDim] = (Buffer_Receive_CoordDonor[iDim]+Buffer_Receive_DisplacementDonor[iDim])-Coord[iDim]; + delete [] Buffer_Send_StructCoord; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_FlowNewCoord; + delete [] Buffer_Recv_SetIndex; - flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexStruct; + delete [] Buffer_Recv_nVertexFlow; + delete [] Buffer_Recv_StructCoord; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_FlowNewCoord; + delete [] Buffer_Send_SetIndex; + delete [] Counter_Processor_Flow; + } - } - } - } - } - delete[] Buffer_Send_CoordDonor; - delete[] Buffer_Receive_CoordDonor; - delete[] Buffer_Send_DisplacementDonor; - delete[] Buffer_Receive_DisplacementDonor; + } #endif diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 0dd4dd63065..5b57a5924e4 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2005,7 +2005,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ - unsigned long IterLinSol, iPoint, total_index; + unsigned long IterLinSol, iPoint, jPoint, total_index; unsigned short iVar; /*--- Initialize residual and solution at the ghost points ---*/ diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 6e8c9ba1fb4..ce603cd8ed0 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -66,6 +66,17 @@ int main(int argc, char *argv[]) { nZone = atoi(argv[2]);} else { strcpy(config_file_name, "default.cfg"); } + /*--- TODO: Need to link it to definition structure to be able to use this ---*/ + +// /*--- Read the name and format of the input mesh file to get from the mesh +// file the number of zones and dimensions from the numerical grid (required +// for variables allocation) ---*/ +// +// CConfig *config = NULL; +// config = new CConfig(config_file_name, SU2_SOL); +// +// nZone = GetnZone(config->GetMesh_FileName(), config->GetMesh_FileFormat(), config); + /*--- Definition of the containers per zones ---*/ solver_container = new CSolver*[nZone]; From 09ae8825c3b5ee4afaa49830091f53fe9c51a5d5 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 8 Sep 2015 16:01:25 -0700 Subject: [PATCH 073/269] FSI: Added MPI support on FEM routine. --- SU2_CFD/src/solver_fem_elasticity.cpp | 410 +++++++++++++++++++++----- 1 file changed, 338 insertions(+), 72 deletions(-) diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5b57a5924e4..59a5a1c3f0e 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2031,9 +2031,9 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side - unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; // Variables for iteration over markers - unsigned short markFEA, markFlow; + unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side + unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers + int Marker_Flow = -1, Marker_Struct = -1; unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes @@ -2089,9 +2089,9 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe /*--- Number of markers on the FSI interface ---*/ - nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; + nMarkerFSI = (fea_config->GetMarker_n_FSIinterface())/2; - nMarkerFEA = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side + nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side // Parameters for the calculations @@ -2120,39 +2120,39 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe /*--- Loop over all the markers on the interface ---*/ - for (iMarkerFSIint = 0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + for (iMarkerFSI = 0; iMarkerFSI < nMarkerFSI; iMarkerFSI++){ /*--- Identification of the markers ---*/ /*--- Current structural marker ---*/ - for (iMarkerFEA = 0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if ( fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA = iMarkerFEA; + for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == (iMarkerFSI+1)){ + Marker_Struct = iMarkerStruct; } } /*--- Current fluid marker ---*/ for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow = iMarkerFlow; + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSI+1)){ + Marker_Flow = iMarkerFlow; } } - nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); // Retrieve total number of vertices on FEA marker - nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); // Retrieve total number of vertices on Fluid marker + nVertexFEA = fea_geometry[MESH_0]->GetnVertex(Marker_Struct); // Retrieve total number of vertices on FEA marker + nVertexFlow = flow_geometry[MESH_0]->GetnVertex(Marker_Flow); // Retrieve total number of vertices on Fluid marker /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ /*--- Here, we are looping over the fluid, and we find the pointer to the structure (Point_Struct) ---*/ for (iVertex = 0; iVertex < nVertexFlow; iVertex++){ // Node from the flow mesh - Point_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); + Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); // Normals at the vertex: these normals go inside the fluid domain. - Normal_Flow = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); + Normal_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNormal(); // Corresponding node on the structural mesh - Point_Struct = flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); + Point_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorPoint(); // Retrieve the values of pressure, viscosity and density if (incompressible){ @@ -2228,47 +2228,173 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe #else int rank = MASTER_NODE; - MPI_Status send_stat[1], recv_stat[1], status; - MPI_Request send_req[1], recv_req[1]; + int size = SINGLE_NODE; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; + unsigned long iVertexFlow = 0; + unsigned long nPoint_Total = 0; + + unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; + + unsigned long nBuffer_FlowTraction = 0, nBuffer_StructTraction = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; + + unsigned long Processor_Flow, Processor_Struct; - /*--- Initialize buffers: we need to communicate the tractions from the fluid side: Residual ---*/ - su2double *Buffer_Send_Residual = new su2double [nDim]; - su2double *Buffer_Receive_Residual = new su2double [nDim]; + int iProcessor, nProcessor = 0; - su2double *nodeCoord = new su2double [nDim]; + /*--- Number of markers on the FSI interface ---*/ + + nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2; + nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); - /*--- Processor which hosts the fluid data and the structural data ---*/ - int Processor_Flow, Processor_Struct; + nProcessor = size; /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ /*--- This may be improved ---*/ - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + for (iPoint = 0; iPoint < nPoint; iPoint++){ node[iPoint]->Clear_FlowTraction(); } - /*--- Do the send process, by the moment we are sending each - node individually, this must be changed ---*/ - for (iMarkerFlow = 0; iMarkerFlow < flow_config->GetnMarker_All(); iMarkerFlow++) { + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) != 0) { + for (iMarkerFSI = 1; iMarkerFSI <= nMarkerFSI; iMarkerFSI++){ - for (iVertex= 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarkerFlow]; iVertex++) { + Marker_Struct = -1; + Marker_Flow = -1; - // Node from the flow mesh - Point_Flow = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetNode(); + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexStruct[1], *Buffer_Recv_nVertexStruct = NULL; + unsigned long Buffer_Send_nVertexFlow[1], *Buffer_Recv_nVertexFlow = NULL; + + /*--- The markers on the fluid and structural side are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the structural side ---*/ + + for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerStruct) equals the index we are looping at ---*/ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == iMarkerFSI ){ + /*--- We have identified the local index of the FEA marker ---*/ + /*--- Store the number of local points that belong to Marker_Struct on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexStruct = fea_geometry[MESH_0]->GetnVertex(iMarkerStruct); + /*--- Store the identifier for the structural marker ---*/ + Marker_Struct = iMarkerStruct; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the FEA markers ---*/ + nLocalVertexStruct = 0; + Marker_Struct = -1; + } + } + + /*--- On the fluid side ---*/ + + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == iMarkerFSI ){ + /*--- We have identified the local index of the Flow marker ---*/ + /*--- Store the number of local points that belong to Marker_Flow on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexFlow = flow_geometry[MESH_0]->GetnVertex(iMarkerFlow); + /*--- Store the identifier for the fluid marker ---*/ + Marker_Flow = iMarkerFlow; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexFlow = 0; + Marker_Flow = -1; + } + } + + Buffer_Send_nVertexStruct[0] = nLocalVertexStruct; // Retrieve total number of vertices on FEA marker + Buffer_Send_nVertexFlow[0] = nLocalVertexFlow; // Retrieve total number of vertices on Flow marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexStruct = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexFlow = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side + + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexStruct, &MaxLocalVertexStruct, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexFlow, &MaxLocalVertexFlow, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexStruct, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexStruct, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexFlow, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexFlow, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_FlowTraction = MaxLocalVertexFlow * nDim; + nBuffer_StructTraction = MaxLocalVertexStruct * nDim; + + /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ + /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexFlow; + nBuffer_SetIndex = MaxLocalVertexStruct; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the structural coordinates ---*/ + su2double *Buffer_Send_FlowTraction = new su2double[nBuffer_FlowTraction]; + su2double *Buffer_Recv_FlowTraction = NULL; + + /*--- Buffers to send and receive the donor index and processor ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the new fluid coordinates ---*/ + su2double *Buffer_Send_StructTraction = NULL; + su2double *Buffer_Recv_StructTraction = new su2double[nBuffer_StructTraction]; + + /*--- Buffers to send and receive the fluid index ---*/ + long *Buffer_Send_SetIndex = NULL; + long *Buffer_Recv_SetIndex = new long[nBuffer_SetIndex]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_FlowTraction = new su2double[size*nBuffer_FlowTraction]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_StructTraction = new su2double[size*nBuffer_StructTraction]; + Buffer_Send_SetIndex = new long[size*nBuffer_SetIndex]; + } + + /*--- On the fluid side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; - // We check if the processor "rank" owns this node so it makes sense to make the calculations - if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()) { + if (Marker_Flow >= 0){ - // Get the donor point (on the structural mesh) - Point_Struct = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetDonorPoint(); + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - // Get the donor processor to which the message will be sent (on the structural mesh) - Processor_Struct = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetDonorProcessor(); + for (iVertex = 0; iVertex < nLocalVertexFlow; iVertex++){ + + Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); + + Point_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorPoint(); + + Processor_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorProcessor(); // Get the normal at the vertex: this normal goes inside the fluid domain. - Normal_Flow = flow_geometry[MESH_0]->vertex[iMarkerFlow][iVertex]->GetNormal(); + Normal_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNormal(); // Retrieve the values of pressure, viscosity and density if (incompressible){ @@ -2329,61 +2455,201 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe } } - // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) - // Store in the Buffer_Send_Residual - - for (iDim = 0; iDim < nDim; iDim++) { - Buffer_Send_Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_FlowTraction[iVertex*nDim+iDim] = tn_f[iDim]*factorForces*ModAmpl; + } + /*--- If this processor owns the node ---*/ + if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Struct; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Struct; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; } - // Send the message - SU2_MPI::Bsend(Buffer_Send_Residual, nDim, MPI_DOUBLE, Processor_Struct, Point_Struct, MPI_COMM_WORLD); + } + } + + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_FlowTraction, nBuffer_FlowTraction, MPI_DOUBLE, Buffer_Recv_FlowTraction, nBuffer_FlowTraction, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + +// if (rank == MASTER_NODE){ +// cout << endl << "-----------------------------------------------------------" << endl; +// cout << "For tag " << iMarkerFSI << ":" << endl; +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// cout << "The processor " << iProcessor << " has " << Buffer_Recv_nVertexStruct[iProcessor] << " nodes on the structural side and "; +// cout << Buffer_Recv_nVertexFlow[iProcessor] << " nodes on the fluid side " << endl; +// } +// cout << "The max number of vertices is " << MaxLocalVertexStruct << " on the structural side and "; +// cout << MaxLocalVertexFlow << " on the fluid side." << endl; +// +// cout << "---------------- Check received buffers ---------------------" << endl; +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// long initialIndex, initialIndex2; +// initialIndex = iProcessor*nBuffer_FlowTraction; +// initialIndex2 = iProcessor*nBuffer_DonorIndices; +// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexStruct[iProcessor]; iCheck++){ +// cout << "From processor " << iProcessor << " we get coordinates ("; +// for (iDim = 0; iDim < nDim; iDim++) +// cout << Buffer_Recv_FlowTraction[initialIndex+iCheck*nDim+iDim] << ","; +// cout << "), the donor index for the flow " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2] ; +// cout << " and the donor processor " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2+1] << endl; +// +// } +// } +// +// } + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Struct = NULL; + long iProcessor_Flow = 0, iIndex_Flow = 0; + long iProcessor_Struct = 0, iPoint_Struct = 0, iIndex_Struct = 0; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + /*--- We set the counter to 0 ---*/ + Counter_Processor_Struct = new long[nProcessor]; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + Counter_Processor_Struct[iProcessor] = 0; } - } + /*--- First we initialize the index vector to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nProcessor*nBuffer_SetIndex; iVertex++) + Buffer_Send_SetIndex[iVertex] = -2; + + /*--- As of now we do the loop over the flow points ---*/ + /*--- The number of points for flow and structure does not necessarily have to match ---*/ + /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ + /*--- nFlow < nStruct available; this is due to halo nodes ---*/ + + /*--- For every processor from which we have received information ---*/ + /*--- (This is, for every processor on the structural side) ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + + /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ + iProcessor_Flow = iProcessor*nBuffer_FlowTraction; + /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ + iIndex_Flow = iProcessor*nBuffer_DonorIndices; + + /*--- For every vertex in the information retreived from iProcessor ---*/ + for (iVertex = 0; iVertex < Buffer_Recv_nVertexFlow[iProcessor]; iVertex++) { + + /*--- The processor and index for the flow are: ---*/ + Processor_Struct = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2+1]; + Point_Struct = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2]; + + /*--- Load the buffer at the appropriate position ---*/ + /*--- This is determined on the fluid side by: + *--- Processor_Flow*nBuffer_StructTraction -> Initial position of the processor array (fluid side) + *--- + + *--- Counter_Processor_Struct*nDim -> Initial position of the nDim array for the particular point on the fluid side + *--- + + *--- iDim -> Position within the nDim array that corresponds to a point + *--- + *--- While on the structural side is: + *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) + *--- + + *--- iVertex*nDim -> Initial position of the nDim array for the particular point on the structural side + */ + + /*--- We check that we are not setting the value for a halo node ---*/ + if (Point_Struct != -1){ + iProcessor_Struct = Processor_Struct*nBuffer_StructTraction; + iIndex_Struct = Processor_Struct*nBuffer_SetIndex; + iPoint_Struct = Counter_Processor_Struct[Processor_Struct]*nDim; + + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_StructTraction[iProcessor_Struct + iPoint_Struct + iDim] = Buffer_Recv_FlowTraction[iProcessor_Flow + iVertex*nDim + iDim]; + + /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ + Buffer_Send_SetIndex[iIndex_Struct + Counter_Processor_Struct[Processor_Struct]] = Point_Struct; + + Counter_Processor_Struct[Processor_Struct]++; + } - } + } - } + } - /*--- Do the send process, by the moment we are sending each - node individually, this must be changed ---*/ - for (iMarkerFEA = 0; iMarkerFEA < fea_config->GetnMarker_All(); iMarkerFEA++) { +// cout << "---------------- Check send buffers ---------------------" << endl; +// +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// long initialIndex, initialIndex2; +// initialIndex = iProcessor*nBuffer_StructTraction; +// initialIndex2 = iProcessor*nBuffer_SetIndex; +// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexFlow[iProcessor]; iCheck++){ +// cout << "Processor " << iProcessor << " will receive the node " ; +// cout << Buffer_Send_SetIndex[initialIndex2+iCheck] << " which corresponds to the coordinates "; +// for (iDim = 0; iDim < nDim; iDim++) +// cout << "x" << iDim << "=" << Buffer_Send_StructTraction[initialIndex + iCheck*nDim + iDim] << ", "; +// cout << endl; +// } +// +// } - if (fea_config->GetMarker_All_FSIinterface(iMarkerFEA) != 0) { + } - for (iVertex= 0; iVertex < fea_geometry[MESH_0]->nVertex[iMarkerFEA]; iVertex++) { + /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ + SU2_MPI::Scatter(Buffer_Send_StructTraction, nBuffer_StructTraction, MPI_DOUBLE, Buffer_Recv_StructTraction, nBuffer_StructTraction, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - // Node from the flow mesh - Point_Struct = fea_geometry[MESH_0]->vertex[iMarkerFEA][iVertex]->GetNode(); + long indexPoint_iVertex, Point_Struct_Check; - // We check if the processor "rank" owns this node so it makes sense to make the calculations - if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) { + /*--- For the flow marker we are studying ---*/ + if (Marker_Struct >= 0){ - // Get the donor point (on the fluid mesh) - Point_Flow = fea_geometry[MESH_0]->vertex[iMarkerFEA][iVertex]->GetDonorPoint(); + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - // Get the donor processor from which the message will be received (on the fluid mesh) - Processor_Flow = fea_geometry[MESH_0]->vertex[iMarkerFEA][iVertex]->GetDonorProcessor(); + for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ - SU2_MPI::Recv(Buffer_Receive_Residual, nDim, MPI_DOUBLE, Processor_Flow, Point_Struct, MPI_COMM_WORLD, &status); + Point_Struct = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); - /*--- Add to the Flow traction (to add values to corners...) ---*/ - node[Point_Struct]->Add_FlowTraction(Buffer_Receive_Residual); + if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()){ + /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexStruct, Point_Struct)); - } + Point_Struct_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; - } + if (Point_Struct_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } - } + for (iDim = 0; iDim < nDim; iDim++) + Residual[iDim] = Buffer_Recv_StructTraction[indexPoint_iVertex*nDim+iDim]; - } + /*--- Add to the Flow traction ---*/ + node[Point_Struct]->Add_FlowTraction(Residual); - /*--- Deallocate the memory ---*/ - delete[] Buffer_Send_Residual; - delete[] Buffer_Receive_Residual; + } + } + + } + + delete [] Buffer_Send_FlowTraction; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_StructTraction; + delete [] Buffer_Recv_SetIndex; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexStruct; + delete [] Buffer_Recv_nVertexFlow; + delete [] Buffer_Recv_FlowTraction; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_StructTraction; + delete [] Buffer_Send_SetIndex; + delete [] Counter_Processor_Struct; + } + + } #endif From 138ac1dc47bca52d4004e3b4221336531ce22e1a Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Sep 2015 11:37:56 -0700 Subject: [PATCH 074/269] Added a warning to SU2_SOL --- SU2_SOL/src/SU2_SOL.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index ce603cd8ed0..b2dfac24167 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -160,6 +160,11 @@ int main(int argc, char *argv[]) { if (fsi){ + if (nZone == 1){ + cout << "For multizone computations, please add the number of zones as a second argument for SU2_SOL. " << endl; + exit(EXIT_FAILURE); + } + su2double Physical_dt, Physical_t; unsigned long iExtIter = 0, iExtIterFlow = 0, iExtIterFEM = 0; bool StopCalc = false; From fa6cd475d83812e404ef7b53ec4708328e0b6221 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 9 Sep 2015 19:43:42 -0700 Subject: [PATCH 075/269] linking to object files --- Common/src/interpolation_structure.cpp | 121 +- SU2_CFD/include/numerics_structure.hpp | 416 +++-- SU2_CFD/src/solver_direct_elasticity.cpp | 1262 +++++++-------- SU2_DEF/obj/Makefile.am | 24 +- SU2_DEF/obj/Makefile.in | 204 +-- SU2_FSI/obj/Makefile.am | 177 +-- SU2_FSI/obj/Makefile.in | 1793 ++-------------------- 7 files changed, 1198 insertions(+), 2799 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 6b8c96aba9b..88de9306156 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -268,6 +268,11 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nn[3] = jVertex; /* vertex index within marker of the donor point */ } } + + /*--- Set the information of the nearest neighbor (donorindex = 0) ---*/ + /*--- Enable this to check that we are doing it fine ---*/ + //cout << "The distance from the vertex " << iVertex << " in the Flow marker " << markFlow << " to the vertex " << nn[3] << " in the FEA marker " << markFEA << " is " << last_distance << endl; + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); } @@ -282,7 +287,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); /*--- Loop over vertices in the interface marker (zone 0) --*/ Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); - for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { + for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); distance = 0.0; for (iDim=0; iDimvertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); @@ -369,6 +376,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ markFlow=iMarkerFlow; } } + //cout <<"markers: " << markFEA << " " << markFlow << endl; /*--Same for all points: -*/ nn[0] = iZone_1; /* Zone of the donor point */ nn[2] = markFEA; /* marker of the donor point */ @@ -378,7 +386,9 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); last_distance=-1.0; nDonor = 0; + //cout << "Vertex i: "<< iVertex << endl; /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ + for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); distance = 0.0; @@ -396,6 +406,8 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Now that we know the closest vertex, the closest element must be one of the ones connected to the vertex--*/ for (jElem=0; jElemnode[nn[1]]->GetnElem(); jElem++){ temp_donor = Geometry[iZone_1][MESH_0]->node[nn[1]]->GetElem(jElem); + //cout <<" element j "<< temp_donor; + unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' if (nDim==3) nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); @@ -461,6 +473,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nNodes=1; Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); donor_elem = -1; + //cout <<" NN" << iVertex << endl; myCoeff = new su2double[1]; myCoeff[0] = 1; } @@ -478,36 +491,65 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Set the appropriate amount of memory ---*/ Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); - unsigned int it2=0; // offset introduced to reject points not on the marker /*--- Loop over vertices of the element ---*/ - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - if (donor_elem!=-1){ - //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. - if (nDim==3) + if (nDim==3){ + unsigned int it2=0; + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + if (donor_elem!=-1){ + //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); - else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - } - else{ - jPoint = nn[1]; - } - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); - if (ivtx!=-1){ - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); + } + else{ + jPoint = nn[1]; + } + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + if (ivtx!=-1){ + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); + } + else{ + /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 + and we should neglect this point (TODO: make sure this is also taken into account in isoparam) + Reduce the number of donor points --*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); + if (abs(myCoeff[it])>1e-12) + cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + it2++; + } } - else{ - /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 - and we should neglect this point (TODO: make sure this is also taken into account in isoparam) - Reduce the number of donor points --*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); - if (abs(myCoeff[it])>1e-12) - cout <<"Warning: interior pt assigned nonzero coeff."<< endl; - it2++; + } + else{ + unsigned int it2=0; + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + if (donor_elem!=-1){ + //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + } + else{ + jPoint = nn[1]; + } + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + if (ivtx!=-1){ + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); + } + else { + /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 + and we should neglect this point (TODO: make sure this is also taken into account in isoparam) + Reduce the number of donor points --*/ + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); + if (abs(myCoeff[it])>1e-12) + cout <<"Warning: interior pt assigned nonzero coeff."<< endl; + it2++; + } } } } @@ -557,22 +599,19 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned int nDonorPoints, int* temp2){ +void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, + unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, + unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ int i,j,k; int n0 = nDim+1, n; + int m = nDonorPoints, m0; + unsigned long jVertex, jPoint; su2double tmp, tmp2, distance; - unsigned long jVertex, inode; - - /*--- Number of neighbor points to interpolate between ---*/ - unsigned int m0 = nDonorPoints, m; - su2double x[m0], x_tmp[m0]; - /*--- Q R matrix system ---*/ - su2double Q[m0*m0], R[m0*m0], A[n0*m0]; - bool test[n0]; - bool testi[n0]; - + su2double x[m], x_tmp[m]; + su2double Q[m*m], R[m*m], A[n0*m]; su2double x2[n0]; - int offset; + bool test[n0], testi[n0],on_marker[m]; + /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; m0=m; diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 9e00ec8d02c..c64d4f644e3 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -5,7 +5,7 @@ * numerics_convective.cpp, numerics_viscous.cpp, and * numerics_source.cpp files. * \author F. Palacios, T. Economon - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -54,7 +54,7 @@ using namespace std; * \class CNumerics * \brief Class for defining the numerical methods. * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CNumerics { protected: @@ -1654,7 +1654,7 @@ class CNumerics { * \brief Class for centered scheme - CUSP. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwCUSP_Flow : public CNumerics { @@ -1662,16 +1662,21 @@ class CUpwCUSP_Flow : public CNumerics { unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ su2double *Diff_U, *Diff_Flux, /*!< \brief Diference of conservative variables and undivided laplacians. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ - *MeanVelocity, ProjVelocity, /*!< \brief Mean and projected velocities. */ + *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ Density_i, Density_j, Energy_i, Energy_j, /*!< \brief Mean Density and energies. */ sq_vel_i, sq_vel_j, /*!< \brief Modulus of the velocity and the normal vector. */ MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy, /*!< \brief Mean values of primitive variables. */ + Param_p, Param_Kappa_2, Param_Kappa_4, /*!< \brief Artificial dissipation parameters. */ + Local_Lambda_i, Local_Lambda_j, MeanLambda, /*!< \brief Local eingenvalues. */ + Phi_i, Phi_j, sc2, sc4, StretchingFactor, /*!< \brief Streching parameters. */ *ProjFlux, *ProjFlux_i, *ProjFlux_j, /*!< \brief Projected inviscid flux tensor. */ - cte_0, cte_1, /*!< \brief Artificial dissipation values. */ - LamdaNeg, LamdaPos, Beta, Nu_c, U_i[5], U_j[5], MeanSoundSpeed, Mach, - **Jacobian; /*!< \brief Projected grid velocity. */ + Epsilon_2, Epsilon_4, cte_0, cte_1, /*!< \brief Artificial dissipation values. */ + LamdaNeg, LamdaPos, ModVelocity, Beta, Nu_c, U_i[5], U_j[5], MeanSoundSpeed, Mach, + ProjGridVel_i, ProjGridVel_j, ProjGridVel, **Jacobian; /*!< \brief Projected grid velocity. */ bool implicit, /*!< \brief Implicit calculation. */ - grid_movement; /*!< \brief Modification for grid movement. */ + grid_movement, /*!< \brief Modification for grid movement. */ + stretching; /*!< \brief Stretching factor. */ + public: @@ -1704,7 +1709,7 @@ class CUpwCUSP_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the flow equations. * \ingroup ConvDiscr * \author A. Bueno, F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwRoe_Flow : public CNumerics { private: @@ -1713,7 +1718,7 @@ class CUpwRoe_Flow : public CNumerics { su2double *Velocity_i, *Velocity_j, *RoeVelocity; su2double *ProjFlux_i, *ProjFlux_j; su2double *delta_wave, *delta_vel; - su2double *Lambda, *Epsilon, MaxLambda, Delta; + su2double *Lambda, *Epsilon, MaxLambda, Delta, sign; su2double **P_Tensor, **invP_Tensor; su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, @@ -1751,7 +1756,7 @@ class CUpwRoe_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the flow equations for a general fluid model. * \ingroup ConvDiscr * \author S.Vitale, G.Gori, M.Pini - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwGeneralRoe_Flow : public CNumerics { private: @@ -1809,7 +1814,7 @@ class CUpwGeneralRoe_Flow : public CNumerics { * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author S. Copeland - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwMSW_Flow : public CNumerics { private: @@ -1818,10 +1823,10 @@ class CUpwMSW_Flow : public CNumerics { su2double *u_i, *u_j, *ust_i, *ust_j; su2double *Fc_i, *Fc_j; su2double *Lambda_i, *Lambda_j; - su2double rhos_i, rhos_j; + su2double rhos_i, rhos_j, rhosst_i, rhosst_j; su2double *Ust_i, *Ust_j, *Vst_i, *Vst_j, *Velst_i, *Velst_j; su2double **P_Tensor, **invP_Tensor; - unsigned short nPrimVar, nVar, nDim; + unsigned short nPrimVar, nPrimVarGrad, nVar, nDim; public: @@ -1854,7 +1859,7 @@ class CUpwMSW_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe with Turkel Preconditioning for the flow equations. * \ingroup ConvDiscr * \author A. K. Lonkar - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwTurkel_Flow : public CNumerics { private: @@ -1864,7 +1869,7 @@ class CUpwTurkel_Flow : public CNumerics { su2double *ProjFlux_i, *ProjFlux_j; su2double *Lambda, *Epsilon; su2double **absPeJac, **invRinvPe, **R_Tensor, **Matrix, **Art_Visc; - su2double sq_vel, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoePressure, RoeDensity, RoeEnthalpy, RoeSoundSpeed, ProjVelocity, ProjVelocity_i, ProjVelocity_j; unsigned short iDim, iVar, jVar, kVar; @@ -1909,7 +1914,7 @@ class CUpwTurkel_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the incompressible flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwArtComp_Flow : public CNumerics { private: @@ -1921,9 +1926,9 @@ class CUpwArtComp_Flow : public CNumerics { su2double *ProjFlux_i, *ProjFlux_j; su2double *Lambda, *Epsilon; su2double **P_Tensor, **invP_Tensor; - su2double Proj_ModJac_Tensor_ij, Pressure_i, - Pressure_j, MeanDensity, MeanSoundSpeed, MeanPressure, MeanBetaInc2, - ProjVelocity; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, + Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, MeanDensity, MeanEnthalpy, MeanSoundSpeed, MeanPressure, MeanBetaInc2, + ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho, vn; unsigned short iDim, iVar, jVar, kVar; public: @@ -1956,7 +1961,7 @@ class CUpwArtComp_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the incompressible flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwArtComp_FreeSurf_Flow : public CNumerics { private: @@ -1968,10 +1973,10 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { su2double *ProjFlux_i, *ProjFlux_j; su2double *Lambda, *Epsilon; su2double **P_Tensor, **invP_Tensor; - su2double Proj_ModJac_Tensor_ij, Pressure_i, LevelSet_i, dDensityInc_i, dDensityInc_j, - Pressure_j, LevelSet_j, MeanDensityInc, dMeanDensityInc, MeanPressure, MeanLevelSet, MeanBetaInc2, - ProjVelocity, Distance_i, Distance_j; - unsigned short iDim, iVar, jVar, kVar; + su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Pressure_i, LevelSet_i, dDensityInc_i, dDensityInc_j, + Density_j, Pressure_j, LevelSet_j, MeanDensityInc, dMeanDensityInc, MeanPressure, MeanLevelSet, MeanBetaInc2, + ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, Distance_i, Distance_j; + unsigned short iDim, jDim, iVar, jVar, kVar; public: @@ -2004,7 +2009,7 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { * for the adjoint flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwRoe_AdjFlow : public CNumerics { private: @@ -2055,7 +2060,7 @@ class CUpwRoe_AdjFlow : public CNumerics { * for the adjoint flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwRoeArtComp_AdjFlow : public CNumerics { private: @@ -2099,7 +2104,7 @@ class CUpwRoeArtComp_AdjFlow : public CNumerics { * \brief Class for solving an approximate Riemann AUSM. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwAUSM_Flow : public CNumerics { private: @@ -2112,7 +2117,7 @@ class CUpwAUSM_Flow : public CNumerics { su2double **P_Tensor, **invP_Tensor; su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, - ProjVelocity, ProjVelocity_i, ProjVelocity_j; + ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho; unsigned short iDim, iVar, jVar, kVar; su2double mL, mR, mLP, mRM, mF, pLP, pRM, pF, Phi; @@ -2146,7 +2151,7 @@ class CUpwAUSM_Flow : public CNumerics { * \brief Class for solving an approximate Riemann AUSM. * \ingroup ConvDiscr * \author F. Palacios, based on the Joe code implementation - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwHLLC_Flow : public CNumerics { private: @@ -2159,7 +2164,7 @@ class CUpwHLLC_Flow : public CNumerics { su2double **P_Tensor, **invP_Tensor; su2double sq_vel, sq_vel_i, sq_vel_j, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, - ProjVelocity, ProjVelocity_i, ProjVelocity_j; + ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho; unsigned short iDim, iVar, jVar, kVar; su2double Rrho, tmp, velRoe[3], uRoe, gamPdivRho, sq_velRoe, cRoe, sL, sR, sM, pStar, invSLmSs, sLmuL, rhoSL, rhouSL[3], eSL, invSRmSs, sRmuR, rhoSR, rhouSR[3], eSR; @@ -2194,7 +2199,7 @@ class CUpwHLLC_Flow : public CNumerics { * \brief Class for performing a linear upwind solver for the Spalart-Allmaras turbulence model equations with transition * \ingroup ConvDiscr * \author A. Aranake - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwLin_TransLM : public CNumerics { private: @@ -2234,7 +2239,7 @@ class CUpwLin_TransLM : public CNumerics { * \brief Class for performing a linear upwind solver for the adjoint Level Set equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwLin_AdjLevelSet : public CNumerics { private: @@ -2276,7 +2281,7 @@ class CUpwLin_AdjLevelSet : public CNumerics { * \brief Class for performing a linear upwind solver for the adjoint turbulence equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwLin_AdjTurb : public CNumerics { private: @@ -2312,13 +2317,13 @@ class CUpwLin_AdjTurb : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwSca_TurbSA : public CNumerics { private: su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement, incompressible; - su2double q_ij, a0, a1; + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; public: @@ -2351,13 +2356,13 @@ class CUpwSca_TurbSA : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwSca_TurbML : public CNumerics { private: su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement, incompressible; - su2double q_ij, a0, a1; + su2double Density_i, Density_j, q_ij, a0, a1; unsigned short iDim; public: @@ -2390,7 +2395,7 @@ class CUpwSca_TurbML : public CNumerics { * \brief Class for doing a scalar upwind solver for the Menter SST turbulence model equations. * \ingroup ConvDiscr * \author A. Campos. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwSca_TurbSST : public CNumerics { private: @@ -2431,13 +2436,15 @@ class CUpwSca_TurbSST : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalart-Allmaras turbulence model equations with transition. * \ingroup ConvDiscr * \author A. Aranake. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwSca_TransLM : public CNumerics { private: su2double *Velocity_i, *Velocity_j; bool implicit, grid_movement; - su2double q_ij, a0, a1; + su2double Density_i, Density_j, + q_ij, + a0, a1; unsigned short iDim; public: @@ -2470,7 +2477,7 @@ class CUpwSca_TransLM : public CNumerics { * \brief Class for doing a scalar upwind solver for the adjoint turbulence equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwSca_AdjTurb : public CNumerics { private: @@ -2510,7 +2517,7 @@ class CUpwSca_AdjTurb : public CNumerics { * \brief Class for centered shceme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentJST_KE_Flow : public CNumerics { @@ -2526,10 +2533,11 @@ class CCentJST_KE_Flow : public CNumerics { Local_Lambda_i, Local_Lambda_j, MeanLambda, /*!< \brief Local eingenvalues. */ Phi_i, Phi_j, sc2, sc4, StretchingFactor, /*!< \brief Streching parameters. */ *ProjFlux, /*!< \brief Projected inviscid flux tensor. */ - Epsilon_2, cte_0, cte_1, /*!< \brief Artificial dissipation values. */ - ProjGridVel; /*!< \brief Projected grid velocity. */ + Epsilon_2, Epsilon_4, cte_0, cte_1, /*!< \brief Artificial dissipation values. */ + ProjGridVel_i, ProjGridVel_j, ProjGridVel; /*!< \brief Projected grid velocity. */ bool implicit, /*!< \brief Implicit calculation. */ - grid_movement; /*!< \brief Modification for grid movement. */ + grid_movement, /*!< \brief Modification for grid movement. */ + stretching; /*!< \brief Stretching factor. */ public: @@ -2564,7 +2572,7 @@ class CCentJST_KE_Flow : public CNumerics { * \brief Class for centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentJST_Flow : public CNumerics { @@ -2581,9 +2589,10 @@ class CCentJST_Flow : public CNumerics { Phi_i, Phi_j, sc2, sc4, StretchingFactor, /*!< \brief Streching parameters. */ *ProjFlux, /*!< \brief Projected inviscid flux tensor. */ Epsilon_2, Epsilon_4, cte_0, cte_1, /*!< \brief Artificial dissipation values. */ - ProjGridVel; /*!< \brief Projected grid velocity. */ + ProjGridVel_i, ProjGridVel_j, ProjGridVel; /*!< \brief Projected grid velocity. */ bool implicit, /*!< \brief Implicit calculation. */ - grid_movement; /*!< \brief Modification for grid movement. */ + grid_movement, /*!< \brief Modification for grid movement. */ + stretching; /*!< \brief Stretching factor. */ public: @@ -2618,7 +2627,7 @@ class CCentJST_Flow : public CNumerics { * \brief Class for centered scheme - JST (artificial compressibility). * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentJSTArtComp_Flow : public CNumerics { @@ -2626,9 +2635,9 @@ class CCentJSTArtComp_Flow : public CNumerics { unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ su2double *Diff_U, *Diff_Lapl, /*!< \brief Diference of conservative variables and undivided laplacians. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ - *MeanVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ + *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ sq_vel_i, sq_vel_j, /*!< \brief Modulus of the velocity and the normal vector. */ - MeanDensity, MeanPressure, MeanBetaInc2, /*!< \brief Mean values of primitive variables. */ + MeanGravityForce, MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy, MeanBetaInc2, /*!< \brief Mean values of primitive variables. */ Param_p, Param_Kappa_2, Param_Kappa_4, /*!< \brief Artificial dissipation parameters. */ Local_Lambda_i, Local_Lambda_j, MeanLambda, /*!< \brief Local eingenvalues. */ Phi_i, Phi_j, sc2, sc4, StretchingFactor, /*!< \brief Streching parameters. */ @@ -2636,6 +2645,7 @@ class CCentJSTArtComp_Flow : public CNumerics { Epsilon_2, Epsilon_4, cte_0, cte_1; /*!< \brief Artificial dissipation values. */ bool implicit, /*!< \brief Implicit calculation. */ grid_movement, /*!< \brief Modification for grid movement. */ + stretching, /*!< \brief Stretching factor. */ gravity; /*!< \brief computation with gravity force. */ su2double Froude; /*!< \brief Froude number. */ @@ -2671,7 +2681,7 @@ class CCentJSTArtComp_Flow : public CNumerics { * \brief Class for and adjoint centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentJST_AdjFlow : public CNumerics { private: @@ -2682,7 +2692,7 @@ class CCentJST_AdjFlow : public CNumerics { su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; - bool implicit, grid_movement; + bool implicit, stretching, grid_movement; public: @@ -2721,18 +2731,18 @@ class CCentJST_AdjFlow : public CNumerics { * \brief Class for and adjoint centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentJSTArtComp_AdjFlow : public CNumerics { private: su2double sc2, *Diff_Psi, *Diff_Lapl; su2double *Velocity_i, *Velocity_j; - su2double **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; - unsigned short iDim, iVar, jVar; - su2double Residual, ProjVelocity_i, ProjVelocity_j; - su2double Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; + su2double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; + unsigned short iDim, jDim, iVar, jVar; + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; + su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; - bool implicit; + bool implicit, stretching, grid_movement; public: @@ -2771,7 +2781,7 @@ class CCentJSTArtComp_AdjFlow : public CNumerics { * \brief Class for linearized centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentJST_LinFlow : public CNumerics { private: @@ -2785,6 +2795,7 @@ class CCentJST_LinFlow : public CNumerics { Pressure_j, Param_p, Param_Kappa_4, Local_Lambda_i, Local_Lambda_j, MeanLambda, sc4, StretchingFactor, Epsilon_4, MeanDeltaRho, MeanDeltaE, ProjVelocity_i, ProjVelocity_j, MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy, Phi_i, Phi_j; + bool stretching; public: @@ -2819,7 +2830,7 @@ class CCentJST_LinFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentLax_Flow : public CNumerics { private: @@ -2836,7 +2847,8 @@ class CCentLax_Flow : public CNumerics { Phi_i, Phi_j, sc0, StretchingFactor, /*!< \brief Streching parameters. */ Epsilon_0, cte; /*!< \brief Artificial dissipation values. */ bool implicit, /*!< \brief Implicit calculation. */ - grid_movement; /*!< \brief Modification for grid movement. */ + grid_movement, /*!< \brief Modification for grid movement. */ + stretching; su2double ProjGridVel; public: @@ -2871,24 +2883,25 @@ class CCentLax_Flow : public CNumerics { * \brief Class for computing the Lax-Friedrich centered scheme (artificial compressibility). * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentLaxArtComp_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ su2double *Diff_U, /*!< \brief Difference of conservative variables. */ *Velocity_i, *Velocity_j, /*!< \brief Velocity at node 0 and 1. */ - *MeanVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ + *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j, /*!< \brief Mean and projected velocities. */ *ProjFlux, /*!< \brief Projected inviscid flux tensor. */ sq_vel_i, sq_vel_j, /*!< \brief Modulus of the velocity and the normal vector. */ - MeanDensity, MeanPressure, MeanBetaInc2, /*!< \brief Mean values of primitive variables. */ + MeanGravityForce, MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy, MeanBetaInc2, /*!< \brief Mean values of primitive variables. */ Param_p, Param_Kappa_0, /*!< \brief Artificial dissipation parameters. */ Local_Lambda_i, Local_Lambda_j, MeanLambda, /*!< \brief Local eingenvalues. */ Phi_i, Phi_j, sc0, StretchingFactor, /*!< \brief Streching parameters. */ - Epsilon_0; /*!< \brief Artificial dissipation values. */ + Epsilon_0, cte; /*!< \brief Artificial dissipation values. */ bool implicit, /*!< \brief Implicit calculation. */ grid_movement, /*!< \brief Modification for grid movement. */ gravity; /*!< \brief Modification for for gravity force. */ + bool stretching; su2double Froude; public: @@ -2923,7 +2936,7 @@ class CCentLaxArtComp_Flow : public CNumerics { * \brief Class for computing the Lax-Friedrich adjoint centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentLax_AdjFlow : public CNumerics { private: @@ -2933,8 +2946,8 @@ class CCentLax_AdjFlow : public CNumerics { unsigned short iDim, jDim, iVar, jVar; su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2, MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_0, Local_Lambda_i, Local_Lambda_j, MeanLambda, - Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0; - bool implicit, grid_movement; + Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0, cte_0; + bool implicit, stretching, grid_movement; public: @@ -2973,18 +2986,18 @@ class CCentLax_AdjFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich adjoint centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentLaxArtComp_AdjFlow : public CNumerics { private: su2double *Diff_Psi; su2double *Velocity_i, *Velocity_j; su2double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j; - unsigned short iDim, iVar, jVar; - su2double Residual, ProjVelocity_i, ProjVelocity_j, Param_p, Param_Kappa_0, - Local_Lambda_i, Local_Lambda_j, MeanLambda, - Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0; - bool implicit; + unsigned short iDim, jDim, iVar, jVar; + su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2, + MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_0, Local_Lambda_i, Local_Lambda_j, MeanLambda, + Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0, cte_0; + bool implicit, stretching; public: @@ -3023,7 +3036,7 @@ class CCentLaxArtComp_AdjFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich linearized centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CCentLax_LinFlow : public CNumerics { private: @@ -3036,11 +3049,12 @@ class CCentLax_LinFlow : public CNumerics { unsigned short iDim, iVar, jVar; su2double sq_vel, Density_i, DensityEnergy_i, Energy_i, Pressure_i, Density_j, DensityEnergy_j, Energy_j, Pressure_j, Param_p, Param_Kappa_0, - Local_Lambda_i, Local_Lambda_j, MeanLambda, StretchingFactor, + Local_Lambda_i, Local_Lambda_j, MeanLambda, cte_0, StretchingFactor, Epsilon_i, MeanDeltaRho, MeanDeltaE, ProjVelocity_i, ProjVelocity_j, - MeanDensity, MeanPressure, + dS, MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy, Phi_i, Phi_j, sc2; + bool stretching; public: @@ -3073,7 +3087,7 @@ class CCentLax_LinFlow : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_Flow : public CNumerics { private: @@ -3083,7 +3097,10 @@ class CAvgGrad_Flow : public CNumerics { **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, /*!< \brief Mean value of the viscosity. */ Mean_Eddy_Viscosity, /*!< \brief Mean value of the eddy viscosity. */ + Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ + Mean_Cp, /*!< \brief Mean value of the Cp. */ Mean_turb_ke, /*!< \brief Mean value of the turbulent kinetic energy. */ + *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ @@ -3132,6 +3149,7 @@ class CGeneralAvgGrad_Flow : public CNumerics { Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ Mean_Cp, /*!< \brief Mean value of the Cp. */ Mean_turb_ke, /*!< \brief Mean value of the turbulent kinetic energy. */ + *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ @@ -3165,13 +3183,14 @@ class CGeneralAvgGrad_Flow : public CNumerics { * \brief Class for computing viscous term using an average of gradients. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradArtComp_Flow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ su2double **Mean_GradPrimVar, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ + *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ @@ -3204,7 +3223,7 @@ class CAvgGradArtComp_Flow : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_TurbSA : public CNumerics { private: @@ -3218,6 +3237,8 @@ class CAvgGrad_TurbSA : public CNumerics { su2double dist_ij_2; su2double proj_vector_ij; unsigned short iVar, iDim; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3249,7 +3270,7 @@ class CAvgGrad_TurbSA : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_TurbSA_Neg : public CNumerics { private: @@ -3264,6 +3285,8 @@ class CAvgGrad_TurbSA_Neg : public CNumerics { su2double dist_ij_2; su2double proj_vector_ij; unsigned short iVar, iDim; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3295,7 +3318,7 @@ class CAvgGrad_TurbSA_Neg : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_TurbML : public CNumerics { private: @@ -3308,6 +3331,8 @@ class CAvgGrad_TurbML : public CNumerics { su2double dist_ij_2; su2double proj_vector_ij; unsigned short iVar, iDim; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3339,7 +3364,7 @@ class CAvgGrad_TurbML : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_TransLM : public CNumerics { private: @@ -3348,9 +3373,12 @@ class CAvgGrad_TransLM : public CNumerics { su2double *Edge_Vector; bool implicit, incompressible; su2double sigma; + su2double nu_i, nu_j, nu_e; su2double dist_ij_2; su2double proj_vector_ij; unsigned short iVar, iDim; + su2double nu_hat_i; + su2double nu_hat_j; public: @@ -3382,7 +3410,7 @@ class CAvgGrad_TransLM : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_AdjFlow : public CNumerics { private: @@ -3424,13 +3452,14 @@ class CAvgGrad_AdjFlow : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradArtComp_AdjFlow : public CNumerics { private: unsigned short iDim, iVar, jVar; /*!< \brief Iterators in dimension an variable. */ su2double **Mean_GradPsiVar, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ + *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ @@ -3464,7 +3493,7 @@ class CAvgGradArtComp_AdjFlow : public CNumerics { * \brief Class for computing viscous term using the average of gradients with a correction. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_Flow : public CNumerics { private: @@ -3475,8 +3504,11 @@ class CAvgGradCorrected_Flow : public CNumerics { **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, /*!< \brief Mean value of the laminar viscosity. */ Mean_Eddy_Viscosity, /*!< \brief Mean value of the eddy viscosity. */ + Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ + Mean_Cp, /*!< \brief Mean value of the specific heat. */ Mean_turb_ke, /*!< \brief Mean value of the turbulent kinetic energy. */ - dist_ij_2; /*!< \brief Length of the edge and face. */ + dist_ij_2, /*!< \brief Length of the edge and face. */ + *ProjFlux; /*!< \brief Projection of the viscous fluxes. */ bool implicit; /*!< \brief Implicit calculus. */ bool limiter; /*!< \brief Viscous limiter. */ @@ -3526,7 +3558,8 @@ class CGeneralAvgGradCorrected_Flow : public CNumerics { Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ Mean_Cp, /*!< \brief Mean value of the specific heat. */ Mean_turb_ke, /*!< \brief Mean value of the turbulent kinetic energy. */ - dist_ij_2; /*!< \brief Length of the edge and face. */ + dist_ij_2, /*!< \brief Length of the edge and face. */ + *ProjFlux; /*!< \brief Projection of the viscous fluxes. */ bool implicit; /*!< \brief Implicit calculus. */ public: @@ -3559,7 +3592,7 @@ class CGeneralAvgGradCorrected_Flow : public CNumerics { * \brief Class for computing viscous term using an average of gradients with correction (artificial compresibility). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrectedArtComp_Flow : public CNumerics { private: @@ -3568,7 +3601,8 @@ class CAvgGradCorrectedArtComp_Flow : public CNumerics { *Edge_Vector, /*!< \brief Vector form point i to point j. */ **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ - dist_ij_2; /*!< \brief Length of the edge and face. */ + dist_ij_2, /*!< \brief Length of the edge and face. */ + *ProjFlux; /*!< \brief Projection of the viscous fluxes. */ bool implicit; /*!< \brief Implicit calculus. */ public: @@ -3601,7 +3635,7 @@ class CAvgGradCorrectedArtComp_Flow : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_TurbSA : public CNumerics { private: @@ -3609,7 +3643,7 @@ class CAvgGradCorrected_TurbSA : public CNumerics { su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; su2double *Edge_Vector; bool implicit, incompressible; - su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij; + su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3642,7 +3676,7 @@ class CAvgGradCorrected_TurbSA : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { private: @@ -3654,7 +3688,7 @@ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { su2double cn1, fn, Xi; su2double nu_ij, nu_tilde_ij; bool implicit, incompressible; - su2double nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij; + su2double nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3687,7 +3721,7 @@ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_TurbML : public CNumerics { private: @@ -3696,7 +3730,7 @@ class CAvgGradCorrected_TurbML : public CNumerics { su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; su2double *Edge_Vector; bool implicit, incompressible; - su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij; + su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; unsigned short iVar, iDim; public: @@ -3730,7 +3764,7 @@ class CAvgGradCorrected_TurbML : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_TransLM : public CNumerics { private: @@ -3739,7 +3773,8 @@ class CAvgGradCorrected_TransLM : public CNumerics { su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected; su2double *Edge_Vector; bool implicit, incompressible; - su2double sigma; + su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij, nu_hat_i, nu_hat_j; + unsigned short iVar, iDim; public: @@ -3772,7 +3807,7 @@ class CAvgGradCorrected_TransLM : public CNumerics { * \brief Class for computing viscous term using average of gradient with correction (Menter SST turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_TurbSST : public CNumerics { private: @@ -3835,7 +3870,7 @@ class CAvgGrad_TurbSST : public CNumerics { * \brief Class for computing viscous term using average of gradient with correction (Menter SST turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_TurbSST : public CNumerics { private: @@ -3898,7 +3933,7 @@ class CAvgGradCorrected_TurbSST : public CNumerics { * \brief Class for computing the adjoint viscous terms, including correction. * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_AdjFlow : public CNumerics { private: @@ -3946,7 +3981,7 @@ class CAvgGradCorrected_AdjFlow : public CNumerics { * \brief Class for computing the adjoint viscous terms, including correction. * \ingroup ViscDiscr * \author F.Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { private: @@ -3956,7 +3991,8 @@ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { *Edge_Vector, /*!< \brief Vector form point i to point j. */ **Mean_GradPsiVar, *Proj_Mean_GradPsiVar_Edge, /*!< \brief Mean value of the gradient. */ Mean_Laminar_Viscosity, Mean_Eddy_Viscosity, /*!< \brief Mean value of the viscosity. */ - dist_ij_2; /*!< \brief Length of the edge and face. */ + dist_ij_2, /*!< \brief Length of the edge and face. */ + *ProjFlux; /*!< \brief Projection of the viscous fluxes. */ bool implicit; /*!< \brief Implicit calculus. */ public: @@ -3993,7 +4029,7 @@ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { * \brief Class for adjoint turbulent using average of gradients with a correction. * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_AdjTurb : public CNumerics { private: @@ -4046,7 +4082,7 @@ class CAvgGradCorrected_AdjTurb : public CNumerics { * \brief Class for adjoint turbulent using average of gradients with a correction. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_AdjTurb : public CNumerics { private: @@ -4099,7 +4135,7 @@ class CAvgGrad_AdjTurb : public CNumerics { * \brief Class for computing the stiffness matrix of the Galerkin method. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CGalerkin_Flow : public CNumerics { public: @@ -4130,16 +4166,15 @@ class CGalerkin_Flow : public CNumerics { * \brief Class for computing the stiffness matrix of the Galerkin method. * \ingroup ViscDiscr * \author F. Palacios, R.Sanchez - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CGalerkin_FEA : public CNumerics { - su2double E; /*!< \brief Young's modulus of elasticity. */ su2double Nu; /*!< \brief Poisson's ratio. */ su2double Rho_s; /*!< \brief Structural density. */ su2double Mu; /*!< \brief Lame's coeficient. */ su2double Lambda; /*!< \brief Lame's coeficient. */ - + su2double Density; /*!< \brief Material density. */ public: /*! @@ -4191,7 +4226,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); + su2double ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions @@ -4505,7 +4540,7 @@ class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { * \brief Dummy class. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceNothing : public CNumerics { public: @@ -4529,7 +4564,7 @@ class CSourceNothing : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_TurbSA : public CNumerics { private: @@ -4544,17 +4579,32 @@ class CSourcePieceWise_TurbSA : public CNumerics { su2double sigma; su2double cb2; su2double cw1; + su2double DivVelocity; unsigned short iDim; su2double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; su2double r, g, g_6, glim, fw; su2double norm2_Grad; su2double dfv1, dfv2, dShat; - su2double dr, dg, dfw; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool incompressible; + bool transition; bool rotating_frame; - su2double intermittency; + su2double div; + su2double beta, gamma_sep, gamma_eff, intermittency; + su2double Freattach, r_t, s1; su2double Production, Destruction, CrossProduction; + SpalartAllmarasInputs* SAInputs; + SpalartAllmarasConstants* SAConstants; + int nResidual; + int nJacobian; + su2double* testResidual; + su2double* testJacobian; + su2double** DUiDXj; + su2double* DNuhatDXj; public: /*! @@ -4624,7 +4674,7 @@ class CSourcePieceWise_TurbSA : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_TurbSA_Neg : public CNumerics { private: @@ -4639,17 +4689,33 @@ class CSourcePieceWise_TurbSA_Neg : public CNumerics { su2double sigma; su2double cb2; su2double cw1; + su2double DivVelocity; unsigned short iDim; su2double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; su2double r, g, g_6, glim, fw; su2double norm2_Grad; su2double dfv1, dfv2, dShat; - su2double dr, dg, dfw; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool incompressible; + bool transition; bool rotating_frame; - su2double intermittency; + su2double div; + su2double beta, gamma_sep, gamma_eff, intermittency; + su2double Freattach, r_t, s1; su2double Production, Destruction, CrossProduction; + SpalartAllmarasInputs* SAInputs; + SpalartAllmarasConstants* SAConstants; + int nResidual; + int nJacobian; + su2double* testResidual; + su2double* testJacobian; + su2double** DUiDXj; + su2double* DNuhatDXj; + public: /*! @@ -4719,14 +4785,35 @@ class CSourcePieceWise_TurbSA_Neg : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_TurbML : public CNumerics { private: + su2double cv1_3; + su2double k2; + su2double cb1; + su2double cw2; + su2double cw3_6; + su2double cb2_sigma; + su2double sigma; + su2double cb2; + su2double cw1; + su2double DivVelocity, Vorticity; + unsigned short iDim; + su2double nu, Ji, fv1, fv2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2; + su2double r, g, g_6, glim; + su2double norm2_Grad; + su2double dfv1, dfv2, dShat; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool incompressible; bool transition; bool rotating_frame; - su2double intermittency; + su2double div, StrainMag; + su2double beta, gamma_sep, gamma_eff, intermittency; + su2double Freattach, r_t, s1; su2double Production, Destruction, CrossProduction; CScalePredictor* MLModel; @@ -4739,7 +4826,9 @@ class CSourcePieceWise_TurbML : public CNumerics { int nJacobian; string featureset; - + + //su2double* testResidual; + //su2double* testJacobian; su2double** DUiDXj; su2double* DNuhatDXj; @@ -4834,7 +4923,7 @@ class CSourcePieceWise_TurbML : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_TransLM : public CNumerics { private: @@ -4858,12 +4947,21 @@ class CSourcePieceWise_TransLM : public CNumerics { su2double s1; su2double c_theta; su2double sigmat; + su2double REth_Inf; /*-- Correlation constants --*/ su2double flen_global; su2double alpha_global; - su2double Vorticity; - + su2double DivVelocity, Vorticity; + unsigned short iDim; + su2double nu, Ji, fv1, fv2, Omega, Shat, dist_0_2, Ji_2, Ji_3; + su2double r, g, g_6, glim, fw; + su2double norm2_Grad; + su2double dfv1, dfv2, dShat; + su2double dr, dg, dfw;; + su2double nu_hat_i; + su2double grad_nu_hat; + su2double prod_grads; bool implicit; public: @@ -4899,7 +4997,7 @@ class CSourcePieceWise_TransLM : public CNumerics { * \brief Class for integrating the source terms of the Menter SST turbulence model equations. * \ingroup SourceDiscr * \author A. Campos. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_TurbSST : public CNumerics { private: @@ -4917,7 +5015,8 @@ class CSourcePieceWise_TurbSST : public CNumerics { beta_star, a1; - su2double CDkw_i, CDkw_j; + su2double CDkw_i, CDkw_j, + norm2_Grad; bool incompressible; @@ -4973,7 +5072,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \brief Class for the source term integration of the gravity force. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceGravity : public CNumerics { su2double Froude; @@ -5006,7 +5105,7 @@ class CSourceGravity : public CNumerics { * \brief Class for source term integration in adjoint problem. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceViscous_AdjFlow : public CNumerics { private: @@ -5042,7 +5141,7 @@ class CSourceViscous_AdjFlow : public CNumerics { * \brief Class for source term integration of the adjoint turbulent equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_AdjTurb : public CNumerics { private: @@ -5079,7 +5178,7 @@ class CSourcePieceWise_AdjTurb : public CNumerics { * \brief Class for source term integration of the adjoint level set equation. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourcePieceWise_AdjLevelSet : public CNumerics { public: @@ -5110,7 +5209,7 @@ class CSourcePieceWise_AdjLevelSet : public CNumerics { * \brief Class for source term integration in adjoint problem using a conservative scheme. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceConservative_AdjFlow : public CNumerics { private: @@ -5145,7 +5244,7 @@ class CSourceConservative_AdjFlow : public CNumerics { * \brief Class for source term integration in adjoint turbulent problem using a conservative scheme. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceConservative_AdjTurb : public CNumerics { public: @@ -5178,7 +5277,7 @@ class CSourceConservative_AdjTurb : public CNumerics { * \brief Class for a rotating frame source term. * \ingroup SourceDiscr * \author F. Palacios, T. Economon. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceRotatingFrame_Flow : public CNumerics { public: @@ -5210,7 +5309,7 @@ class CSourceRotatingFrame_Flow : public CNumerics { * \brief Source term class for rotating frame adjoint. * \ingroup SourceDiscr * \author T. Economon. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceRotatingFrame_AdjFlow : public CNumerics { public: @@ -5242,9 +5341,12 @@ class CSourceRotatingFrame_AdjFlow : public CNumerics { * \brief Class for source term for solving axisymmetric problems. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceAxisymmetric_Flow : public CNumerics { +private: + bool compressible, incompressible, freesurface; + public: /*! @@ -5274,7 +5376,7 @@ class CSourceAxisymmetric_Flow : public CNumerics { * \brief Class for source term for solving axisymmetric problems. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceAxisymmetric_AdjFlow : public CNumerics { public: @@ -5298,12 +5400,9 @@ class CSourceAxisymmetric_AdjFlow : public CNumerics { * \param[in] config - Definition of the particular problem. */ void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, CConfig *config); -<<<<<<< HEAD -======= private: bool incompressible; ->>>>>>> upstream/feature_FSI_FEA }; /*! @@ -5311,7 +5410,7 @@ class CSourceAxisymmetric_AdjFlow : public CNumerics { * \brief Class for a source term due to a wind gust. * \ingroup SourceDiscr * \author S. Padrón - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSourceWindGust : public CNumerics { public: @@ -5343,7 +5442,7 @@ class CSourceWindGust : public CNumerics { * \brief Dummy class. * \ingroup SourceDiscr * \author A. Lonkar. - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CSource_Template : public CNumerics { public: @@ -5377,7 +5476,7 @@ class CSource_Template : public CNumerics { * \brief Class for setting up new method for spatial discretization of convective terms in flow Equations * \ingroup ConvDiscr * \author A. Lonkar - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CConvective_Template : public CNumerics { private: @@ -5425,7 +5524,7 @@ class CConvective_Template : public CNumerics { * \brief Class for computing viscous term using average of gradients. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CViscous_Template : public CNumerics { private: @@ -5510,7 +5609,7 @@ class CUpwRoe_TNE2 : public CNumerics { * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author S. Copeland - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CUpwMSW_TNE2 : public CNumerics { private: @@ -5525,6 +5624,8 @@ class CUpwMSW_TNE2 : public CNumerics { su2double **P_Tensor, **invP_Tensor; unsigned short nSpecies, nPrimVar, nPrimVarGrad, nVar, nDim; + // CVariable *var; + public: /*! @@ -5572,6 +5673,7 @@ class CUpwAUSM_TNE2 : public CNumerics { su2double *rhos_j, *u_j; su2double a_i, P_i, h_i, ProjVel_i; su2double a_j, P_j, h_j, ProjVel_j; + su2double sq_vel, Proj_ModJac_Tensor_ij; unsigned short nSpecies, nVar, nDim; public: @@ -5656,7 +5758,7 @@ class CUpwAUSMPWplus_TNE2 : public CNumerics { */ class CCentLax_TNE2 : public CNumerics { private: - unsigned short jVar; /*!< \brief Iteration on dimension and variables. */ + unsigned short iDim, iVar, jVar; /*!< \brief Iteration on dimension and variables. */ su2double *Diff_U; /*!< \brief Difference of conservative variables. */ su2double *MeanU, *MeanV; su2double *MeandPdU; @@ -5665,10 +5767,14 @@ class CCentLax_TNE2 : public CNumerics { su2double Local_Lambda_i, Local_Lambda_j, MeanLambda; /*!< \brief Local eigenvalues. */ su2double Phi_i, Phi_j, sc0, StretchingFactor; /*!< \brief Streching parameters. */ su2double Epsilon_0, cte; /*!< \brief Artificial dissipation values. */ + // su2double *dPdrhos, dPdrhoE, dPdrhoEve; /*!< \brief Partial derivative of pressure w.r.t. conserved quantities. */ bool implicit; /*!< \brief Implicit time integration. */ bool ionization; /*!< \brief Charged species with the mixture. */ + bool stretching; unsigned short nSpecies, nVar, nPrimVar, nPrimVarGrad, nDim; + // CVariable *var; + public: /*! @@ -5703,7 +5809,7 @@ class CCentLax_TNE2 : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author S. R. Copeland - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_TNE2 : public CNumerics { private: @@ -5715,6 +5821,8 @@ class CAvgGrad_TNE2 : public CNumerics { Mean_Laminar_Viscosity, /*!< \brief Mean value of the viscosity. */ Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ Mean_Thermal_Conductivity_ve, /*!< \brief Mean value of the vib-el. thermal conductivity. */ + + *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ @@ -5758,7 +5866,7 @@ class CAvgGrad_TNE2 : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author S. R. Copeland - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGradCorrected_TNE2 : public CNumerics { private: @@ -5772,7 +5880,9 @@ class CAvgGradCorrected_TNE2 : public CNumerics { Mean_Laminar_Viscosity, /*!< \brief Mean value of the viscosity. */ Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ Mean_Thermal_Conductivity_ve, /*!< \brief Mean value of the vib-el. thermal conductivity. */ - dist_ij; /*!< \brief Length of the edge and face. */ + + *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ + dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ public: @@ -5996,7 +6106,7 @@ class CCentJST_AdjTNE2 : public CNumerics { su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2; su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda; su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2; - bool implicit, grid_movement, rotating_frame; + bool implicit, stretching, grid_movement, rotating_frame; public: @@ -6087,7 +6197,7 @@ class CCentLax_AdjTNE2 : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" */ class CAvgGrad_AdjTNE2 : public CNumerics { private: @@ -6095,12 +6205,8 @@ class CAvgGrad_AdjTNE2 : public CNumerics { su2double *Mean_GradPsiE; /*!< \brief Mean gradient in the adjoint energy between nodes i and j. */ su2double *Mean_GradPsiEve; /*!< \brief Mean gradient in the adjoint vibrational energy between nodes i and j. */ su2double **Mean_GradPhi; /*!< \brief Counter for dimensions of the problem. */ -<<<<<<< HEAD - su2double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ -======= su2double **Mean_GPsi; /*!< \brief Mean gradient of the adjoint variables. */ su2double *Edge_Vector; /*!< \brief Vector going from node i to node j. */ ->>>>>>> upstream/feature_FSI_FEA su2double **SigmaPhi; su2double **SigmaPsiE; bool implicit; /*!< \brief Implicit calculus. */ diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 6bd7a014926..19e6f3a8d5d 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file solution_direct_elasticity.cpp * \brief Main subrotuines for solving the linear elasticity equation. * \author F. Palacios, R. Sanchez - * \version 4.0.1 "Cardinal" + * \version 4.0.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -35,33 +35,35 @@ CFEASolver::CFEASolver(void) : CSolver() { } CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { - unsigned long iPoint; - unsigned short iVar, jVar, NodesElement = 0, nLineLets; - unsigned short iDim; + unsigned long iPoint; + unsigned short iVar, jVar, iDim, NodesElement = 0, nLineLets; + unsigned long nMarker, nElem; su2double dull_val; int rank = MASTER_NODE; #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - nPoint = geometry->GetnPoint(); - nPointDomain = geometry->GetnPointDomain(); - nDim = geometry->GetnDim(); - node = new CVariable*[nPoint]; - - - WAitken_Dyn = 0.0; - WAitken_Dyn_tn1 = 0.0; - - SetFSI_ConvValue(0,0.0); - SetFSI_ConvValue(1,0.0); - - nVar = nDim; - - if (nDim == 2) NodesElement = 4; - if (nDim == 3) NodesElement = 8; + nPoint = geometry->GetnPoint(); + nPointDomain = geometry->GetnPointDomain(); + nElem = geometry->GetnElem(); + nDim = geometry->GetnDim(); + nMarker = geometry->GetnMarker(); + node = new CVariable*[nPoint]; + + + WAitken_Dyn = 0.0; + WAitken_Dyn_tn1 = 0.0; + + SetFSI_ConvValue(0,0.0); + SetFSI_ConvValue(1,0.0); + + nVar = nDim; + if (nDim == 2) NodesElement = 4; + if (nDim == 3) NodesElement = 8; + /*--- Define some auxiliary vectors related to the residual ---*/ Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; @@ -76,111 +78,109 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Define some auxiliary vectors related to the solution ---*/ - Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - /*--- Element aux stiffness matrix definition ---*/ + /*--- Element aux stiffness matrix definition ---*/ - StiffMatrix_Elem = new su2double*[NodesElement*nDim]; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - StiffMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; + StiffMatrix_Elem = new su2double*[NodesElement*nDim]; + for (iVar = 0; iVar < NodesElement*nDim; iVar++) { + StiffMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; for (jVar = 0; jVar < NodesElement*nDim; jVar++) { StiffMatrix_Elem[iVar][jVar] = 0.0; } - } - - /*--- Node aux stiffness matrix definition ---*/ + } + + /*--- Node aux stiffness matrix definition ---*/ - StiffMatrix_Node = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - StiffMatrix_Node[iVar] = new su2double [nVar]; + StiffMatrix_Node = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + StiffMatrix_Node[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { StiffMatrix_Node[iVar][jVar] = 0.0; } - } - - /*--- Element aux mass matrix definition ---*/ - - MassMatrix_Elem = new su2double*[NodesElement*nDim]; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - MassMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; + } + + /*--- Element aux mass matrix definition ---*/ + + MassMatrix_Elem = new su2double*[NodesElement*nDim]; + for (iVar = 0; iVar < NodesElement*nDim; iVar++) { + MassMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; for (jVar = 0; jVar < NodesElement*nDim; jVar++) { MassMatrix_Elem[iVar][jVar] = 0.0; } - } - - /*--- Node aux mass matrix definition ---*/ - - MassMatrix_Node = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_Node[iVar] = new su2double [nVar]; + } + + /*--- Node aux mass matrix definition ---*/ + + MassMatrix_Node = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + MassMatrix_Node[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { MassMatrix_Node[iVar][jVar] = 0.0; } - } - - /*--- Node aux mass matrix definition ---*/ - - MassMatrix_Node_Int = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_Node_Int[iVar] = new su2double [nVar]; + } + + /*--- Node aux mass matrix definition ---*/ + + MassMatrix_Node_Int = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + MassMatrix_Node_Int[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { MassMatrix_Node_Int[iVar][jVar] = 0.0; } - } - - /*--- Element aux damping matrix definition ---*/ - - DampMatrix_Elem = new su2double*[NodesElement*nDim]; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - DampMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; + } + + /*--- Element aux damping matrix definition ---*/ + + DampMatrix_Elem = new su2double*[NodesElement*nDim]; + for (iVar = 0; iVar < NodesElement*nDim; iVar++) { + DampMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; for (jVar = 0; jVar < NodesElement*nDim; jVar++) { DampMatrix_Elem[iVar][jVar] = 0.0; } - } - - /*--- Node aux damping matrix definition ---*/ - - DampMatrix_Node = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - DampMatrix_Node[iVar] = new su2double [nVar]; + } + + /*--- Node aux damping matrix definition ---*/ + + DampMatrix_Node = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + DampMatrix_Node[iVar] = new su2double [nVar]; for (jVar = 0; jVar < nVar; jVar++) { DampMatrix_Node[iVar][jVar] = 0.0; } - } - - /*--- Initialization of integration constants ---*/ - - for (iVar = 0; iVar < 8; iVar++){ - a_dt[iVar]=0.0; - } - - - - /*--- DESTRUCT THIS! ---*/ - - /*--- Element aux dead load vector definition ---*/ - DeadLoadVector_Elem = new su2double [NodesElement*nDim]; - - /*--- Node aux dead load vector definition ---*/ - DeadLoadVector_Node = new su2double [nVar]; - + } + + /*--- Initialization of integration constants ---*/ + + for (iVar = 0; iVar < 8; iVar++){ + a_dt[iVar]=0.0; + } + + /*--- DESTRUCT THIS! ---*/ + + /*--- Element aux dead load vector definition ---*/ + DeadLoadVector_Elem = new su2double [NodesElement*nDim]; + + /*--- Node aux dead load vector definition ---*/ + DeadLoadVector_Node = new su2double [nVar]; + - /*--- Initialization of matrix structures ---*/ + /*--- Initialization of matrix structures ---*/ if (rank == MASTER_NODE) cout << "Initialize Stiffness structure (Linear Elasticity)." << endl; - + if (nDim==2){ - unsigned short form2d; - form2d=config->GetElas2D_Formulation(); - if (form2d==0) cout << "Plane stress model for 2D structural analysis (Linear Elasticity)." << endl; - if (form2d==1) cout << "Plane strain model for 2D structural analysis (Linear Elasticity)." << endl; + unsigned short form2d; + form2d=config->GetElas2D_Formulation(); + if (form2d==0) cout << "Plane stress model for 2D structural analysis (Linear Elasticity)." << endl; + if (form2d==1) cout << "Plane strain model for 2D structural analysis (Linear Elasticity)." << endl; } - + StiffMatrixSpace.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); StiffMatrixTime.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); DampMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - + if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Linear Elasticity)." << endl; Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); @@ -198,44 +198,44 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { TimeRes_Aux.Initialize(nPoint, nPointDomain, nVar, 0.0); TimeRes.Initialize(nPoint, nPointDomain, nVar, 0.0); + + + /*--- Computation of gradients by least squares ---*/ + Smatrix = new su2double* [nDim]; + for (unsigned short iDim = 0; iDim < nDim; iDim++) + Smatrix[iDim] = new su2double [nDim]; - /*--- Computation of gradients by least squares ---*/ - - Smatrix = new su2double* [nDim]; - for (unsigned short iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new su2double [nDim]; - - cvector = new su2double* [nVar]; - for (unsigned short iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new su2double [nDim]; + cvector = new su2double* [nVar]; + for (unsigned short iVar = 0; iVar < nVar; iVar++) + cvector[iVar] = new su2double [nDim]; /*--- Check for a restart, initialize from zero otherwise ---*/ - bool restart = (config->GetRestart() || config->GetRestart_Flow()); - - if (!restart) { - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - node[iPoint] = new CFEAVariable(Solution, nDim, nVar, config); + bool restart = (config->GetRestart() || config->GetRestart_Flow()); + + if (!restart) { + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + node[iPoint] = new CFEAVariable(Solution, nDim, nVar, config); } - } - else { - unsigned long index; - string text_line, mesh_filename; - ifstream restart_file; + } + else { + unsigned long index; + string text_line, mesh_filename; + ifstream restart_file; - /*--- Restart the solution from file information ---*/ + /*--- Restart the solution from file information ---*/ - mesh_filename = config->GetSolution_FlowFileName(); + mesh_filename = config->GetSolution_FlowFileName(); restart_file.open(mesh_filename.data(), ios::in); - + /*--- In case there is no file ---*/ - if (restart_file.fail()) { - cout << "There is no fea restart file!!" << endl; - exit(EXIT_FAILURE); - } + if (restart_file.fail()) { + cout << "There is no fea restart file!!" << endl; + exit(EXIT_FAILURE); + } /*--- In case this is a parallel simulation, we need to perform the Global2Local index transformation first. ---*/ @@ -255,7 +255,7 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; } - /*--- Read all lines in the restart file ---*/ + /*--- Read all lines in the restart file ---*/ long iPoint_Local; unsigned long iPoint_Global = 0; @@ -264,7 +264,7 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { getline (restart_file, text_line); while (getline (restart_file, text_line)) { - istringstream point_line(text_line); + istringstream point_line(text_line); /*--- Retrieve local index. If this node from the restart file lives on a different processor, the value of iPoint_Local will be -1. @@ -288,14 +288,14 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { node[iPoint] = new CFEAVariable(Solution, nDim, nVar, config); } - /*--- Close the restart file ---*/ + /*--- Close the restart file ---*/ - restart_file.close(); + restart_file.close(); /*--- Free memory needed for the transformation ---*/ delete [] Global2Local; - } + } } @@ -303,47 +303,21 @@ CFEASolver::~CFEASolver(void) { unsigned short iVar, iDim, NodesElement = 0; - if (nDim == 2) NodesElement = 4; - if (nDim == 3) NodesElement = 8; - - delete [] Residual; - delete [] Residual_Max; - delete [] Solution; - - for (iVar = 0; iVar < NodesElement*nDim; iVar++) - delete [] StiffMatrix_Elem[iVar]; - - for (iVar = 0; iVar < nVar; iVar++) - delete [] StiffMatrix_Node[iVar]; - - for (iVar = 0; iVar < NodesElement*nDim; iVar++) - delete [] MassMatrix_Elem[iVar]; - - for (iVar = 0; iVar < nVar; iVar++) - delete [] MassMatrix_Elem[iVar]; + if (nDim == 2) NodesElement = 4; + if (nDim == 3) NodesElement = 8; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) - delete [] DampMatrix_Elem[iVar]; + delete [] Residual; + delete [] Residual_Max; + delete [] Solution; - for (iVar = 0; iVar < nVar; iVar++) - delete [] DampMatrix_Elem[iVar]; - - delete [] StiffMatrix_Elem; - delete [] StiffMatrix_Node; - delete [] MassMatrix_Elem; - delete [] MassMatrix_Node; - delete [] DampMatrix_Elem; - delete [] DampMatrix_Node; - - /*--- Computation of gradients by least-squares ---*/ - - for (iDim = 0; iDim < nDim; iDim++) - delete [] Smatrix[iDim]; - delete [] Smatrix; + for (iVar = 0; iVar < NodesElement*nDim; iVar++) + delete [] StiffMatrix_Elem[iVar]; - for (iVar = 0; iVar < nVar; iVar++) - delete [] cvector[iVar]; - delete [] cvector; + for (iVar = 0; iVar < nVar; iVar++) + delete [] StiffMatrix_Node[iVar]; + + for (iVar = 0; iVar < NodesElement*nDim; iVar++) + delete [] MassMatrix_Elem[iVar]; for (iVar = 0; iVar < nVar; iVar++) delete [] MassMatrix_Elem[iVar]; @@ -376,16 +350,17 @@ CFEASolver::~CFEASolver(void) { void CFEASolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { + GetSurface_Pressure(geometry, config); unsigned long ExtIter = config->GetExtIter(); - + /*--- Set residuals and auxiliar variables to zero ---*/ - + Initialize_SystemMatrix(geometry, solver_container, config); - + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - + if (ExtIter == 0){ if (!dynamic){ @@ -506,48 +481,48 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) nNodes = 8; - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + for (iNodes = 0; iNodes < nNodes; iNodes++) { PointCorners[iNodes] = geometry->elem[iElem]->GetNode(iNodes); for (iDim = 0; iDim < nDim; iDim++) { CoordCorners[iNodes][iDim] = geometry->node[PointCorners[iNodes]]->GetCoord(iDim); } } - + /*--- We set the element stiffness matrix ---*/ - + if (nDim == 2) numerics->SetFEA_StiffMatrix2D(StiffMatrix_Elem, CoordCorners, nNodes, form2d); if (nDim == 3) numerics->SetFEA_StiffMatrix3D(StiffMatrix_Elem, CoordCorners, nNodes); - + /*--- Initialization of the auxiliar matrix ---*/ - + for (iVar = 0; iVar < nVar; iVar++) for (jVar = 0; jVar < nVar; jVar++) StiffMatrix_Node[iVar][jVar] = 0.0; - - /*--- Transform the stiffness matrix into the - contributions for the individual nodes relative to each other. ---*/ - - for (iVar = 0; iVar < nNodes; iVar++) { - for (jVar = 0; jVar < nNodes; jVar++) { - for (iDim = 0; iDim < nVar; iDim++) { - for (jDim = 0; jDim < nVar; jDim++) { - StiffMatrix_Node[iDim][jDim] = StiffMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; + + /*--- Transform the stiffness matrix into the + contributions for the individual nodes relative to each other. ---*/ + + for (iVar = 0; iVar < nNodes; iVar++) { + for (jVar = 0; jVar < nNodes; jVar++) { + for (iDim = 0; iDim < nVar; iDim++) { + for (jDim = 0; jDim < nVar; jDim++) { + StiffMatrix_Node[iDim][jDim] = StiffMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; + } } + StiffMatrixSpace.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); } - StiffMatrixSpace.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); } + } - - } - + } void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { @@ -563,53 +538,54 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) nNodes = 8; - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + for (iNodes = 0; iNodes < nNodes; iNodes++) { PointCorners[iNodes] = geometry->elem[iElem]->GetNode(iNodes); for (iDim = 0; iDim < nDim; iDim++) { CoordCorners[iNodes][iDim] = geometry->node[PointCorners[iNodes]]->GetCoord(iDim); } } - + /*--- We set the element stiffness matrix ---*/ - + /*--- This solves the problem but... why? ---*/ - for (iVar = 0; iVar < nNodes*nDim; iVar++) { - StiffMatrix_Elem[iVar] = new su2double [nNodes*nDim]; - for (jVar = 0; jVar < nNodes*nDim; jVar++) { - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - + for (iVar = 0; iVar < nNodes*nDim; iVar++) { + StiffMatrix_Elem[iVar] = new su2double [nNodes*nDim]; + for (jVar = 0; jVar < nNodes*nDim; jVar++) { + StiffMatrix_Elem[iVar][jVar] = 0.0; + } + } + if (nDim == 2) numerics->SetFEA_StiffMassMatrix2D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes, form2d); if (nDim == 3) numerics->SetFEA_StiffMassMatrix3D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes); - + /*--- Initialization of the auxiliar matrix ---*/ - + for (iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ StiffMatrix_Node[iVar][jVar] = 0.0; MassMatrix_Node[iVar][jVar] = 0.0; } } - - /*--- Transform the stiffness and mass matrices into the - contributions for the individual nodes relative to each other. ---*/ - - for (iVar = 0; iVar < nNodes; iVar++) { - for (jVar = 0; jVar < nNodes; jVar++) { - for (iDim = 0; iDim < nVar; iDim++) { - for (jDim = 0; jDim < nVar; jDim++) { - StiffMatrix_Node[iDim][jDim] = StiffMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; - MassMatrix_Node[iDim][jDim] = MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; - MassMatrix_Node_Int[iDim][jDim] = a_dt[0] * MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; + + /*--- Transform the stiffness and mass matrices into the + contributions for the individual nodes relative to each other. ---*/ + + for (iVar = 0; iVar < nNodes; iVar++) { + for (jVar = 0; jVar < nNodes; jVar++) { + for (iDim = 0; iDim < nVar; iDim++) { + for (jDim = 0; jDim < nVar; jDim++) { + StiffMatrix_Node[iDim][jDim] = StiffMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; + MassMatrix_Node[iDim][jDim] = MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; + MassMatrix_Node_Int[iDim][jDim] = a_dt[0] * MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; + } } /*--- Modified MassMatrix ---*/ @@ -617,35 +593,31 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node_Int); } - MassMatrix.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node); - StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); - StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node_Int); } + } - - } - + } void CFEASolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { - - cout << "Here we will compute the damping matrix." << endl; + + cout << "Here we will compute the damping matrix." << endl; } void CFEASolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - if (dynamic){ - for(unsigned long iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - // The loop is over nPoints so the boundaries are also updated - node[iPoint]->SetSolution_time_n(); - node[iPoint]->SetSolution_Vel_time_n(); - node[iPoint]->SetSolution_Accel_time_n(); - } - } - + + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + + if (dynamic){ + for(unsigned long iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + // The loop is over nPoints so the boundaries are also updated + node[iPoint]->SetSolution_time_n(); + node[iPoint]->SetSolution_Vel_time_n(); + node[iPoint]->SetSolution_Accel_time_n(); + } + } + } @@ -654,18 +626,18 @@ void CFEASolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { void CFEASolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, CConfig *config, unsigned short iMesh) { - - /*--- Compute body forces load vector ---*/ - - - - /*--- Compute initial stresses effect ---*/ - - + + /*--- Compute body forces load vector ---*/ + + + + /*--- Compute initial stresses effect ---*/ + + } void CFEASolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, - CConfig *config, unsigned short iMesh, unsigned short iRKStep) { + CConfig *config, unsigned short iMesh, unsigned short iRKStep) { } @@ -850,9 +822,9 @@ void CFEASolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container /*--- Re-set the displacement condition ---*/ LinSysRes.SetBlock(iPoint, Residual); - - } - + + } + } @@ -871,7 +843,7 @@ void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_co /*--- Compute area, and unitary normal ---*/ - Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim]*Normal[iDim]; Area = sqrt(Area); + Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim]*Normal[iDim]; Area = sqrt(Area); for (iDim = 0; iDim < nDim; iDim++) UnitaryNormal[iDim] = Normal[iDim]/Area; if (config->GetUnsteady_Simulation() == STEADY) { @@ -898,9 +870,9 @@ void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_co Residual[3] = 0.0; Residual[4] = 0.0; Residual[5] = 0.0; } } - - node[iPoint]->SetSolution(Solution); - node[iPoint]->SetSolution_Old(Solution); + + node[iPoint]->SetSolution(Solution); + node[iPoint]->SetSolution_Old(Solution); LinSysRes.SetBlock(iPoint, Residual); @@ -910,75 +882,74 @@ void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_co Jacobian.DeleteValsRowi(total_index); } - } + } } void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { - - su2double a[3], b[3]; - unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; - su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; - su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; - //su2double Length_Elem = 0.0, Area_Elem = 0.0; - unsigned short iDim; - - su2double TotalLoad = config->GetLoad_Value(config->GetMarker_All_TagBound(val_marker)); - - for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - - Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); - Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - if (nDim == 3) { Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); } + + su2double a[3], b[3]; + unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; + su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + unsigned short iDim; + + su2double TotalLoad = config->GetLoad_Value(config->GetMarker_All_TagBound(val_marker)); + + for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - /*--- Compute area (3D), and length of the surfaces (2D) ---*/ + Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); + Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); + if (nDim == 3) { Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); } - if (nDim == 2) { - - for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - - //Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); - - } + /*--- Compute area (3D), and length of the surfaces (2D) ---*/ - if (nDim == 3) { + if (nDim == 2) { - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = Coord_0[iDim]-Coord_2[iDim]; - b[iDim] = Coord_1[iDim]-Coord_2[iDim]; - } + for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; + + Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + Normal_Elem[0] = a[1]; + Normal_Elem[1] = -(a[0]); - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); + } + + if (nDim == 3) { - Normal_Elem[0] = -(0.5*(a[1]*b[2]-a[2]*b[1])); - Normal_Elem[1] = -(-0.5*(a[0]*b[2]-a[2]*b[0])); - Normal_Elem[2] = -(0.5*(a[0]*b[1]-a[1]*b[0])); + for (iDim = 0; iDim < nDim; iDim++) { + a[iDim] = Coord_0[iDim]-Coord_2[iDim]; + b[iDim] = Coord_1[iDim]-Coord_2[iDim]; + } + + Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - } - - - if (nDim == 2) { - Residual[0] = (1.0/2.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/2.0)*TotalLoad*Normal_Elem[1]; - LinSysRes.AddBlock(Point_0, Residual); - Residual[0] = (1.0/2.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/2.0)*TotalLoad*Normal_Elem[1]; - LinSysRes.AddBlock(Point_1, Residual); - } - - else { - Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; - LinSysRes.AddBlock(Point_0, Residual); + Normal_Elem[0] = -(0.5*(a[1]*b[2]-a[2]*b[1])); + Normal_Elem[1] = -(-0.5*(a[0]*b[2]-a[2]*b[0])); + Normal_Elem[2] = -(0.5*(a[0]*b[1]-a[1]*b[0])); - Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; - LinSysRes.AddBlock(Point_1, Residual); + } + + + if (nDim == 2) { + Residual[0] = (1.0/2.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/2.0)*TotalLoad*Normal_Elem[1]; + LinSysRes.AddBlock(Point_0, Residual); + Residual[0] = (1.0/2.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/2.0)*TotalLoad*Normal_Elem[1]; + LinSysRes.AddBlock(Point_1, Residual); + } - Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; - LinSysRes.AddBlock(Point_2, Residual); - } - - } - + else { + Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; + LinSysRes.AddBlock(Point_0, Residual); + + Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; + LinSysRes.AddBlock(Point_1, Residual); + + Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; + LinSysRes.AddBlock(Point_2, Residual); + } + + } + } @@ -998,126 +969,133 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN su2double TotalLoad; bool Gradual_Load = config->GetGradual_Load(); - su2double CurrentTime=config->GetCurrent_DynTime(); - su2double ModAmpl, NonModAmpl; - + su2double CurrentTime=config->GetCurrent_DynTime(); + su2double ModAmpl, NonModAmpl; + bool Ramp_Load = config->GetRamp_Load(); - su2double Ramp_Time = config->GetRamp_Time(); - - if (Ramp_Load){ - ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; - NonModAmpl=LoadDirVal*LoadDirMult; - TotalLoad=min(ModAmpl,NonModAmpl); - } - else if (Gradual_Load){ - ModAmpl=2*((1/(1+exp(-1*CurrentTime)))-0.5); - TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; - } - else{ - TotalLoad=LoadDirVal*LoadDirMult; - } - - /*--- Compute the norm of the vector that was passed in the config file ---*/ - su2double Norm = 0.0; - if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); - if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); - - for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - - Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); - Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - - /*--- Compute area (3D), and length of the surfaces (2D) ---*/ - - if (nDim == 2) { - - for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); -// Normal_Elem[0] = a[1]; -// Normal_Elem[1] = -(a[0]); - - } else { - - Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); - Coord_2 = geometry->node[Point_2]->GetCoord(); - - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = Coord_1[iDim]-Coord_0[iDim]; - b[iDim] = Coord_2[iDim]-Coord_0[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=a[1]*b[2]-a[2]*b[1]; - Nj=-a[0]*b[2]+a[2]*b[0]; - Nk=a[0]*b[1]-a[1]*b[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - - } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); - Coord_3 = geometry->node[Point_3]->GetCoord(); - - for (iDim = 0; iDim < nDim; iDim++) { - AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; - BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=AC[1]*BD[2]-AC[2]*BD[1]; - Nj=-AC[0]*BD[2]+AC[2]*BD[0]; - Nk=AC[0]*BD[1]-AC[1]*BD[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - } - } - - if (nDim == 2) { - - Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - - } - - else { - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - + su2double Ramp_Time = config->GetRamp_Time(); + + if (Ramp_Load){ + ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; + NonModAmpl=LoadDirVal*LoadDirMult; + TotalLoad=min(ModAmpl,NonModAmpl); + } + else if (Gradual_Load){ + ModAmpl=2*((1/(1+exp(-1*CurrentTime)))-0.5); + TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; + } + else{ + TotalLoad=LoadDirVal*LoadDirMult; + } + + /*--- Compute the norm of the vector that was passed in the config file ---*/ + su2double Norm; + if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); + if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); + + for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { + + Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); + Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); + if (nDim == 3) { + + Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); + } + + } + + /*--- Compute area (3D), and length of the surfaces (2D) ---*/ + + if (nDim == 2) { + + for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; + + Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + Normal_Elem[0] = a[1]; + Normal_Elem[1] = -(a[0]); + + } + + if (nDim == 3) { + + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + for (iDim = 0; iDim < nDim; iDim++) { + a[iDim] = Coord_1[iDim]-Coord_0[iDim]; + b[iDim] = Coord_2[iDim]-Coord_0[iDim]; + } + + su2double Ni=0 , Nj=0, Nk=0; + + Ni=a[1]*b[2]-a[2]*b[1]; + Nj=-a[0]*b[2]+a[2]*b[0]; + Nk=a[0]*b[1]-a[1]*b[0]; + + Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); + + + //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); + + } + + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + + for (iDim = 0; iDim < nDim; iDim++) { + AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; + BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; + } + + su2double Ni=0 , Nj=0, Nk=0; + + Ni=AC[1]*BD[2]-AC[2]*BD[1]; + Nj=-AC[0]*BD[2]+AC[2]*BD[0]; + Nk=AC[0]*BD[1]-AC[1]*BD[0]; + + Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); + + } + } + + if (nDim == 2) { + + Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + LinSysRes.AddBlock(Point_0, Residual); LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - LinSysRes.AddBlock(Point_3, Residual); - + } - - } - - } - + + else { + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + LinSysRes.AddBlock(Point_0, Residual); + LinSysRes.AddBlock(Point_1, Residual); + LinSysRes.AddBlock(Point_2, Residual); + } + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + + Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + LinSysRes.AddBlock(Point_0, Residual); + LinSysRes.AddBlock(Point_1, Residual); + LinSysRes.AddBlock(Point_2, Residual); + LinSysRes.AddBlock(Point_3, Residual); + + } + + } + + } + } void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, @@ -1217,35 +1195,23 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C LinSysRes.AddBlock(Point_0, Residual); LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - - - } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - LinSysRes.AddBlock(Point_3, Residual); - + } - - } - - } - -} -void CFEASolver::BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } + else { + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + LinSysRes.AddBlock(Point_0, Residual); + LinSysRes.AddBlock(Point_1, Residual); + LinSysRes.AddBlock(Point_2, Residual); -void CFEASolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } + } + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; @@ -1286,33 +1252,33 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, /*--- Container of the shape functions ---*/ CNumerics *numerics; numerics=numerics_container[VISC_TERM]; - + /*--- Enforcement of displacement boundary conditions ---*/ unsigned short MainSolver = config->GetContainerPosition(RUNTIME_FEA_SYS); unsigned int iMarker; - + form2d=config->GetElas2D_Formulation(); - + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - switch (config->GetMarker_All_KindBC(iMarker)) { - case CLAMPED_BOUNDARY: - solver_container[MainSolver]->BC_Clamped(geometry, solver_container, numerics_container[CONV_BOUND_TERM], config, iMarker); - break; - } + switch (config->GetMarker_All_KindBC(iMarker)) { + case CLAMPED_BOUNDARY: + solver_container[MainSolver]->BC_Clamped(geometry, solver_container, numerics_container[CONV_BOUND_TERM], config, iMarker); + break; + } } - + /* --- Initialize the stress and the number of elements connected to each node ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { - node[iPoint]->Initialize_Connectivity(); - for (iDim = 0; iDim < nDim; iDim++){ - for (jDim = 0; jDim < nDim; jDim++){ - node[iPoint]->SetStress(iDim, jDim, 0); - } - } + node[iPoint]->Initialize_Connectivity(); + for (iDim = 0; iDim < nDim; iDim++){ + for (jDim = 0; jDim < nDim; jDim++){ + node[iPoint]->SetStress(iDim, jDim, 0); + } + } } - + /*--- Loops over all the elements ---*/ - + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE){ nNodes = 3;} @@ -1418,8 +1384,8 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, } } - - + + /* --- Variable to store the number of elements connected to each node ---*/ @@ -1427,78 +1393,78 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, /* --- For the number of nodes in the mesh ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { - - /* --- Get the stresses, added up from all the elements that connect to the node ---*/ - - Stress = node[iPoint]->GetStress(); - nElPerNode = node[iPoint]->Get_Connectivity(); - - /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ - - if (geometry->GetnDim() == 2) { - - Sxx=Stress[0][0]/nElPerNode; - Syy=Stress[1][1]/nElPerNode; - Sxy=Stress[0][1]/nElPerNode; - - S1=(Sxx+Syy)/2+sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); - S2=(Sxx+Syy)/2-sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); - - VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); - - } - else if (geometry->GetnDim() == 3) { - - Sxx = Stress[0][0]/nElPerNode; - Syy = Stress[1][1]/nElPerNode; - Szz = Stress[2][2]/nElPerNode; - - Sxy = Stress[0][1]/nElPerNode; - Sxz = Stress[0][2]/nElPerNode; - Syz = Stress[1][2]/nElPerNode; - - VonMises_Stress = sqrt(0.5*( pow(Sxx - Syy, 2.0) - + pow(Syy - Szz, 2.0) - + pow(Szz - Sxx, 2.0) - + 6.0*(Sxy*Sxy+Sxz*Sxz+Syz*Syz) - )); - - } - - node[iPoint]->SetVonMises_Stress(VonMises_Stress); - - /*--- Compute the maximum value of the Von Mises Stress ---*/ - - MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); - - /*--- Set the new value of the stress, averaged from the number of elements ---*/ - - node[iPoint]->SetStress(0, 0, Sxx); - node[iPoint]->SetStress(1, 1, Syy); - node[iPoint]->SetStress(0, 1, Sxy); - node[iPoint]->SetStress(1, 0, Sxy); - - if (geometry->GetnDim() == 3) { - node[iPoint]->SetStress(2, 2, Szz); - node[iPoint]->SetStress(0, 2, Sxz); - node[iPoint]->SetStress(2, 0, Sxz); - node[iPoint]->SetStress(1, 2, Syz); - node[iPoint]->SetStress(2, 1, Syz); - } - + + /* --- Get the stresses, added up from all the elements that connect to the node ---*/ + + Stress = node[iPoint]->GetStress(); + nElPerNode = node[iPoint]->Get_Connectivity(); + + /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ + + if (geometry->GetnDim() == 2) { + + Sxx=Stress[0][0]/nElPerNode; + Syy=Stress[1][1]/nElPerNode; + Sxy=Stress[0][1]/nElPerNode; + + S1=(Sxx+Syy)/2+sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); + S2=(Sxx+Syy)/2-sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); + + VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); + + } + else if (geometry->GetnDim() == 3) { + + Sxx = Stress[0][0]/nElPerNode; + Syy = Stress[1][1]/nElPerNode; + Szz = Stress[2][2]/nElPerNode; + + Sxy = Stress[0][1]/nElPerNode; + Sxz = Stress[0][2]/nElPerNode; + Syz = Stress[1][2]/nElPerNode; + + VonMises_Stress = sqrt(0.5*( pow(Sxx - Syy, 2.0) + + pow(Syy - Szz, 2.0) + + pow(Szz - Sxx, 2.0) + + 6.0*(Sxy*Sxy+Sxz*Sxz+Syz*Syz) + )); + + } + + node[iPoint]->SetVonMises_Stress(VonMises_Stress); + + /*--- Compute the maximum value of the Von Mises Stress ---*/ + + MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); + + /*--- Set the new value of the stress, averaged from the number of elements ---*/ + + node[iPoint]->SetStress(0, 0, Sxx); + node[iPoint]->SetStress(1, 1, Syy); + node[iPoint]->SetStress(0, 1, Sxy); + node[iPoint]->SetStress(1, 0, Sxy); + + if (geometry->GetnDim() == 3) { + node[iPoint]->SetStress(2, 2, Szz); + node[iPoint]->SetStress(0, 2, Sxz); + node[iPoint]->SetStress(2, 0, Sxz); + node[iPoint]->SetStress(1, 2, Syz); + node[iPoint]->SetStress(2, 1, Syz); + } + } - -#ifdef HAVE_MPI - - /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - - su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - -#endif - - /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ - + + #ifdef HAVE_MPI + + /*--- Compute MaxVonMises_Stress using all the nodes ---*/ + + su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + + #endif + + /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ + Total_CFEA = MaxVonMises_Stress; } @@ -1744,21 +1710,21 @@ void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver } void CFEASolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint, total_index, IterLinSol; + + /*--- Build implicit system ---*/ - unsigned short iVar; - unsigned long iPoint, total_index, IterLinSol; - - /*--- Build implicit system ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - /*--- Right hand side of the system (-Residual) and initial guess (x = 0) ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - LinSysSol[total_index] = 0.0; - } + /*--- Right hand side of the system (-Residual) and initial guess (x = 0) ---*/ + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar+iVar; + LinSysSol[total_index] = 0.0; + } - } + } /*--- Initialize residual and solution at the ghost points ---*/ for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { @@ -1768,37 +1734,37 @@ void CFEASolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_c LinSysSol[total_index] = 0.0; } } - + /*--- Solve or smooth the linear system ---*/ CSysSolve system; IterLinSol = system.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); - SetIterLinSolver(IterLinSol); - + /*--- MPI solution ---*/ Set_MPI_Solution(geometry, config); - + /*--- Compute the residual Ax-f ---*/ - - Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); - + + Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); + + /*--- Set maximum residual to zero ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - SetRes_RMS(iVar, 0.0); - SetRes_Max(iVar, 0.0, 0); - } + for (iVar = 0; iVar < nVar; iVar++) { + SetRes_RMS(iVar, 0.0); + SetRes_Max(iVar, 0.0, 0); + } /*--- Compute the residual ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar+iVar; + AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); - } - } + } + } /*--- Compute the root mean square residual ---*/ @@ -1807,19 +1773,19 @@ void CFEASolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_c } void CFEASolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { - unsigned long iPoint; + unsigned long iPoint; - bool restart = (config->GetRestart() || config->GetRestart_Flow()); + bool restart = (config->GetRestart() || config->GetRestart_Flow()); bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || (config->GetUnsteady_Simulation() == DT_STEPPING_2ND)); - /*--- Problem dimension and physical time step ---*/ - unsigned short nDim = geometry[MESH_0]->GetnDim(); - - for (iPoint = 0; iPoint < geometry[MESH_0]->GetnPoint(); iPoint++) { - - /*--- Set initial boundary condition at the first iteration ---*/ - if ((ExtIter == 0) && (!restart)) { + /*--- Problem dimension and physical time step ---*/ + unsigned short nDim = geometry[MESH_0]->GetnDim(); + + for (iPoint = 0; iPoint < geometry[MESH_0]->GetnPoint(); iPoint++) { + + /*--- Set initial boundary condition at the first iteration ---*/ + if ((ExtIter == 0) && (!restart)) { if (config->GetUnsteady_Simulation() == STEADY) { if (nDim == 2) { Solution[0] = 0.0; Solution[1] = 0.0; } @@ -1829,16 +1795,16 @@ void CFEASolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_con if (nDim == 2) { Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; Solution[3] = 0.0; } else { Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; Solution[3] = 0.0; Solution[4] = 0.0; Solution[5] = 0.0; } } + + node[iPoint]->SetSolution(Solution); - node[iPoint]->SetSolution(Solution); - - if (dual_time) { - node[iPoint]->Set_Solution_time_n(); - node[iPoint]->Set_Solution_time_n1(); - } - - } - } + if (dual_time) { + node[iPoint]->Set_Solution_time_n(); + node[iPoint]->Set_Solution_time_n1(); + } + + } + } } void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { @@ -1861,13 +1827,13 @@ void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { /*--- Reset the value of the Flow_Pressure ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) node[iPoint]->SetFlow_Pressure(0.0); - + for (iExtIter = 0; iExtIter < config->GetnExtIter(); iExtIter++) { /*--- Prepare to read surface sensitivity files (CSV) ---*/ - + string surfadj_filename = config->GetSurfFlowCoeff_FileName(); /*--- Remove the domain number from the surface csv filename ---*/ @@ -1947,6 +1913,7 @@ void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { + unsigned short nVertexFEA, nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; @@ -2422,31 +2389,31 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome void CFEASolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - - - unsigned long iPoint, iDim; - unsigned long nPoint, nDim; - su2double *Coord, *VarCoord, *Displacement; - - - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - - VarCoord = new su2double [nDim]; - - for (iPoint=0; iPoint < nPoint; iPoint++){ - - Coord = fea_geometry[MESH_0]->node[iPoint]->GetCoord(); - - Displacement = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - - for (iDim = 0; iDim < nDim; iDim++) - VarCoord[iDim] = (Coord[iDim]+Displacement[iDim]); - - fea_geometry[MESH_0]->node[iPoint]->SetCoord(VarCoord); - - } - + + + unsigned long iPoint, iDim; + unsigned long nPoint, nDim; + su2double *Coord, *VarCoord, *Displacement; + + + nPoint = fea_geometry[MESH_0]->GetnPoint(); + nDim = fea_geometry[MESH_0]->GetnDim(); + + VarCoord = new su2double [nDim]; + + for (iPoint=0; iPoint < nPoint; iPoint++){ + + Coord = fea_geometry[MESH_0]->node[iPoint]->GetCoord(); + + Displacement = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + + for (iDim = 0; iDim < nDim; iDim++) + VarCoord[iDim] = (Coord[iDim]+Displacement[iDim]); + + fea_geometry[MESH_0]->node[iPoint]->SetCoord(VarCoord); + + } + } @@ -2496,32 +2463,7 @@ void CFEASolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *f fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); } } - else if (predOrder==2) { - - solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); - solVel_tn = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel_time_n(); - valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - for (iDim=0; iDimnode[iPoint]->SetSolution_Pred(valPred); - - } - else { - cout<< "Higher order predictor not implemented. Solving with order 0." << endl; - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); - } - } - - delete [] solDisp; - delete [] solVel; - delete [] solVel_tn; - delete [] valPred; - delete [] checkPred; - + } void CFEASolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution, unsigned long iFSIIter) { @@ -2701,47 +2643,13 @@ void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_co nDim = fea_geometry[MESH_0]->GetnDim(); for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); - dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - - /*--- Set predicted solution as the old predicted solution ---*/ - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred_Old(); - - /*--- Set calculated solution as the old solution (needed for dynamic Aitken relaxation) ---*/ - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Old(dispCalc); - - /*--- Apply the Aitken relaxation ---*/ - for (iDim=0; iDim < nDim; iDim++){ - dispPred[iDim] = (1.0 - WAitken)*dispPred[iDim] + WAitken*dispCalc[iDim]; - } - - /*--- Set obtained solution as the new predicted solution ---*/ - /*--- As dispPred is the pointer to the solution_Pred, we don't need to do this... ---*/ - //fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(dispPred); - + + valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution(valSolutionPred); + } - - } - - delete [] dispCalc; - delete [] dispPred; - -} -void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - - su2double *valSolutionPred; - - for (unsigned long iPoint=0; iPointGetnPoint(); iPoint++){ - - valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution(valSolutionPred); - - } - } diff --git a/SU2_DEF/obj/Makefile.am b/SU2_DEF/obj/Makefile.am index 9a2fe23edcd..a12194bc945 100644 --- a/SU2_DEF/obj/Makefile.am +++ b/SU2_DEF/obj/Makefile.am @@ -38,21 +38,19 @@ bin_PROGRAMS = ../bin/SU2_DEF ___bin_SU2_DEF_SOURCES = \ ../include/SU2_DEF.hpp \ - ../src/SU2_DEF.cpp \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/src/variable_structure.cpp + ../src/SU2_DEF.cpp + ___bin_SU2_DEF_CXXFLAGS = -___bin_SU2_DEF_LDADD = ../../Common/lib/libSU2.a +___bin_SU2_DEF_LDADD = ../../Common/lib/libSU2.a \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o # always link to built dependencies from ./externals ___bin_SU2_DEF_CXXFLAGS += @su2_externals_INCLUDES@ diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index 67a9c8074a1..cb719710b6d 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -129,17 +129,17 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp -am____bin_SU2_DEF_OBJECTS = ../src/___bin_SU2_DEF-SU2_DEF.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.$(OBJEXT) +am____bin_SU2_DEF_OBJECTS = ../src/___bin_SU2_DEF-SU2_DEF.$(OBJEXT) ___bin_SU2_DEF_OBJECTS = $(am____bin_SU2_DEF_OBJECTS) -___bin_SU2_DEF_DEPENDENCIES = ../../Common/lib/libSU2.a +___bin_SU2_DEF_DEPENDENCIES = ../../Common/lib/libSU2.a \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o ___bin_SU2_DEF_LINK = $(CXXLD) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -350,18 +350,7 @@ AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} ___bin_SU2_DEF_SOURCES = \ ../include/SU2_DEF.hpp \ - ../src/SU2_DEF.cpp \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/src/variable_structure.cpp + ../src/SU2_DEF.cpp # always link to built dependencies from ./externals @@ -385,9 +374,17 @@ ___bin_SU2_DEF_SOURCES = \ ___bin_SU2_DEF_CXXFLAGS = @su2_externals_INCLUDES@ @CGNS_CXX@ \ @HDF5_CXX@ @SZIP_CXX@ @ZLIB_CXX@ @MUTATIONPP_CXX@ \ @JSONCPP_CXX@ $(am__empty) -___bin_SU2_DEF_LDADD = ../../Common/lib/libSU2.a @su2_externals_LIBS@ \ - @CGNS_LD@ @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ @MUTATIONPP_LD@ \ - @JSONCPP_LD@ $(am__empty) +___bin_SU2_DEF_LDADD = ../../Common/lib/libSU2.a \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + @su2_externals_LIBS@ @CGNS_LD@ @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ \ + @MUTATIONPP_LD@ @JSONCPP_LD@ $(am__empty) all: all-am .SUFFIXES: @@ -472,36 +469,6 @@ clean-binPROGRAMS: @: > ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_DEF-SU2_DEF.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src - @: > ../../SU2_CFD/src/$(am__dirstamp) -../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) - @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-output_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-output_su2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) @@ -512,20 +479,11 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) -rm -f ../src/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_DEF-SU2_DEF.Po@am__quote@ .cpp.o: @@ -558,118 +516,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DEF-SU2_DEF.obj `if test -f '../src/SU2_DEF.cpp'; then $(CYGPATH_W) '../src/SU2_DEF.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DEF.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_DEF-output_structure.o: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-output_structure.obj: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.o: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.obj: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.o: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.obj: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.o: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.obj: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-output_su2.o: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_su2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-output_su2.obj: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_su2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.o: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.obj: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.obj: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp - -../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.obj: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_DEF-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_DEF-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` - ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am @@ -785,8 +631,6 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../../SU2_CFD/src/$(am__dirstamp) -rm -f ../bin/$(am__dirstamp) -rm -f ../src/$(DEPDIR)/$(am__dirstamp) -rm -f ../src/$(am__dirstamp) @@ -799,7 +643,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -rf ../src/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -845,7 +689,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -rf ../src/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 8b9f3b439b5..d3eb962dff6 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -39,109 +39,88 @@ bin_PROGRAMS = ../bin/SU2_FSI su2_fsi_sources = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp \ ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/fluid_model.hpp \ - ../../SU2_CFD/include/gauss_structure.hpp \ - ../../SU2_CFD/include/gauss_structure.inl \ - ../../SU2_CFD/include/element_structure.hpp \ - ../../SU2_CFD/include/element_structure.inl \ - ../../SU2_CFD/include/fluid_model.inl \ - ../../SU2_CFD/include/integration_structure.hpp \ - ../../SU2_CFD/include/integration_structure.inl \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/include/numerics_machine_learning.hpp \ - ../../SU2_CFD/include/numerics_machine_learning.inl \ - ../../SU2_CFD/include/numerics_machine_learning_turbulent.hpp \ - ../../SU2_CFD/include/numerics_structure.inl \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/include/solver_structure.inl \ - ../../SU2_CFD/include/transport_model.hpp \ - ../../SU2_CFD/include/transport_model.inl \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/include/variable_structure.inl \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/src/fluid_model.cpp \ - ../../SU2_CFD/src/fluid_model_pig.cpp \ - ../../SU2_CFD/src/fluid_model_pvdw.cpp \ - ../../SU2_CFD/src/fluid_model_ppr.cpp \ - ../../SU2_CFD/src/gauss_structure.cpp \ - ../../SU2_CFD/src/element_linear.cpp \ - ../../SU2_CFD/src/element_structure.cpp \ - ../../SU2_CFD/src/integration_structure.cpp \ - ../../SU2_CFD/src/integration_time.cpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../../SU2_CFD/src/numerics_adjoint_levelset.cpp \ - ../../SU2_CFD/src/numerics_adjoint_mean.cpp \ - ../../SU2_CFD/src/numerics_adjoint_tne2.cpp \ - ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/numerics_direct_poisson.cpp \ - ../../SU2_CFD/src/numerics_direct_elasticity.cpp \ - ../../SU2_CFD/src/numerics_direct_heat.cpp \ - ../../SU2_CFD/src/numerics_direct_mean.cpp \ - ../../SU2_CFD/src/numerics_direct_tne2.cpp \ - ../../SU2_CFD/src/numerics_direct_transition.cpp \ - ../../SU2_CFD/src/numerics_direct_turbulent.cpp \ - ../../SU2_CFD/src/numerics_direct_wave.cpp \ - ../../SU2_CFD/src/numerics_machine_learning.cpp \ - ../../SU2_CFD/src/numerics_linearized_mean.cpp \ - ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_structure.cpp \ - ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ - ../../SU2_CFD/src/numerics_template.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ - ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ - ../../SU2_CFD/src/solver_adjoint_mean.cpp \ - ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ - ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ - ../../SU2_CFD/src/solver_direct_poisson.cpp \ - ../../SU2_CFD/src/solver_direct_elasticity.cpp \ - ../../SU2_CFD/src/solver_direct_heat.cpp \ - ../../SU2_CFD/src/solver_direct_mean.cpp \ - ../../SU2_CFD/src/solver_direct_tne2.cpp \ - ../../SU2_CFD/src/solver_direct_transition.cpp \ - ../../SU2_CFD/src/solver_direct_turbulent.cpp \ - ../../SU2_CFD/src/solver_direct_wave.cpp \ - ../../SU2_CFD/src/solver_linearized_mean.cpp \ - ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/src/solver_template.cpp \ - ../../SU2_CFD/src/transport_model.cpp \ - ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ - ../../SU2_CFD/src/variable_adjoint_mean.cpp \ - ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ - ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ - ../../SU2_CFD/src/variable_direct_poisson.cpp \ - ../../SU2_CFD/src/variable_direct_elasticity.cpp \ - ../../SU2_CFD/src/variable_direct_heat.cpp \ - ../../SU2_CFD/src/variable_direct_mean.cpp \ - ../../SU2_CFD/src/variable_direct_tne2.cpp \ - ../../SU2_CFD/src/variable_direct_transition.cpp \ - ../../SU2_CFD/src/variable_direct_turbulent.cpp \ - ../../SU2_CFD/src/variable_direct_wave.cpp \ - ../../SU2_CFD/src/variable_linearized_mean.cpp \ - ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ - ../../SU2_CFD/src/variable_fem_elasticity.cpp \ - ../../SU2_CFD/src/variable_structure.cpp \ - ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ - ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ - ../../SU2_CFD/src/variable_template.cpp + ../src/iteration_structure_fsi.cpp su2_fsi_cxx_flags = su2_fsi_ldadd = +su2_fsi_ldadd += \ + ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-gauss_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-element_linear.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-element_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o + # always link to built dependencies from ./externals su2_fsi_cxx_flags += @su2_externals_INCLUDES@ su2_fsi_ldadd += @su2_externals_LIBS@ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 6a8a90e590e..e463e7707e0 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -130,184 +130,88 @@ am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/fluid_model.hpp \ - ../../SU2_CFD/include/gauss_structure.hpp \ - ../../SU2_CFD/include/gauss_structure.inl \ - ../../SU2_CFD/include/element_structure.hpp \ - ../../SU2_CFD/include/element_structure.inl \ - ../../SU2_CFD/include/fluid_model.inl \ - ../../SU2_CFD/include/integration_structure.hpp \ - ../../SU2_CFD/include/integration_structure.inl \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/include/numerics_machine_learning.hpp \ - ../../SU2_CFD/include/numerics_machine_learning.inl \ - ../../SU2_CFD/include/numerics_machine_learning_turbulent.hpp \ - ../../SU2_CFD/include/numerics_structure.inl \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/include/solver_structure.inl \ - ../../SU2_CFD/include/transport_model.hpp \ - ../../SU2_CFD/include/transport_model.inl \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/include/variable_structure.inl \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/src/fluid_model.cpp \ - ../../SU2_CFD/src/fluid_model_pig.cpp \ - ../../SU2_CFD/src/fluid_model_pvdw.cpp \ - ../../SU2_CFD/src/fluid_model_ppr.cpp \ - ../../SU2_CFD/src/gauss_structure.cpp \ - ../../SU2_CFD/src/element_linear.cpp \ - ../../SU2_CFD/src/element_structure.cpp \ - ../../SU2_CFD/src/integration_structure.cpp \ - ../../SU2_CFD/src/integration_time.cpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../../SU2_CFD/src/numerics_adjoint_levelset.cpp \ - ../../SU2_CFD/src/numerics_adjoint_mean.cpp \ - ../../SU2_CFD/src/numerics_adjoint_tne2.cpp \ - ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/numerics_direct_poisson.cpp \ - ../../SU2_CFD/src/numerics_direct_elasticity.cpp \ - ../../SU2_CFD/src/numerics_direct_heat.cpp \ - ../../SU2_CFD/src/numerics_direct_mean.cpp \ - ../../SU2_CFD/src/numerics_direct_tne2.cpp \ - ../../SU2_CFD/src/numerics_direct_transition.cpp \ - ../../SU2_CFD/src/numerics_direct_turbulent.cpp \ - ../../SU2_CFD/src/numerics_direct_wave.cpp \ - ../../SU2_CFD/src/numerics_machine_learning.cpp \ - ../../SU2_CFD/src/numerics_linearized_mean.cpp \ - ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_structure.cpp \ - ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ - ../../SU2_CFD/src/numerics_template.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ - ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ - ../../SU2_CFD/src/solver_adjoint_mean.cpp \ - ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ - ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ - ../../SU2_CFD/src/solver_direct_poisson.cpp \ - ../../SU2_CFD/src/solver_direct_elasticity.cpp \ - ../../SU2_CFD/src/solver_direct_heat.cpp \ - ../../SU2_CFD/src/solver_direct_mean.cpp \ - ../../SU2_CFD/src/solver_direct_tne2.cpp \ - ../../SU2_CFD/src/solver_direct_transition.cpp \ - ../../SU2_CFD/src/solver_direct_turbulent.cpp \ - ../../SU2_CFD/src/solver_direct_wave.cpp \ - ../../SU2_CFD/src/solver_linearized_mean.cpp \ - ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/src/solver_template.cpp \ - ../../SU2_CFD/src/transport_model.cpp \ - ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ - ../../SU2_CFD/src/variable_adjoint_mean.cpp \ - ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ - ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ - ../../SU2_CFD/src/variable_direct_poisson.cpp \ - ../../SU2_CFD/src/variable_direct_elasticity.cpp \ - ../../SU2_CFD/src/variable_direct_heat.cpp \ - ../../SU2_CFD/src/variable_direct_mean.cpp \ - ../../SU2_CFD/src/variable_direct_tne2.cpp \ - ../../SU2_CFD/src/variable_direct_transition.cpp \ - ../../SU2_CFD/src/variable_direct_turbulent.cpp \ - ../../SU2_CFD/src/variable_direct_wave.cpp \ - ../../SU2_CFD/src/variable_linearized_mean.cpp \ - ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ - ../../SU2_CFD/src/variable_fem_elasticity.cpp \ - ../../SU2_CFD/src/variable_structure.cpp \ - ../../SU2_CFD/src/variable_template.cpp + ../src/iteration_structure_fsi.cpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ - ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.$(OBJEXT) + ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) @BUILD_NORMAL_TRUE@am____bin_SU2_FSI_OBJECTS = $(am__objects_1) ___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) -am__DEPENDENCIES_1 = +am__DEPENDENCIES_1 = \ + ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-gauss_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-element_linear.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-element_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o @BUILD_NORMAL_TRUE@___bin_SU2_FSI_DEPENDENCIES = \ @BUILD_NORMAL_TRUE@ ../../Common/lib/libSU2.a \ @BUILD_NORMAL_TRUE@ $(am__DEPENDENCIES_1) @@ -522,103 +426,7 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} su2_fsi_sources = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp \ ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/fluid_model.hpp \ - ../../SU2_CFD/include/gauss_structure.hpp \ - ../../SU2_CFD/include/gauss_structure.inl \ - ../../SU2_CFD/include/element_structure.hpp \ - ../../SU2_CFD/include/element_structure.inl \ - ../../SU2_CFD/include/fluid_model.inl \ - ../../SU2_CFD/include/integration_structure.hpp \ - ../../SU2_CFD/include/integration_structure.inl \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/include/numerics_machine_learning.hpp \ - ../../SU2_CFD/include/numerics_machine_learning.inl \ - ../../SU2_CFD/include/numerics_machine_learning_turbulent.hpp \ - ../../SU2_CFD/include/numerics_structure.inl \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/include/solver_structure.inl \ - ../../SU2_CFD/include/transport_model.hpp \ - ../../SU2_CFD/include/transport_model.inl \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/include/variable_structure.inl \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/src/fluid_model.cpp \ - ../../SU2_CFD/src/fluid_model_pig.cpp \ - ../../SU2_CFD/src/fluid_model_pvdw.cpp \ - ../../SU2_CFD/src/fluid_model_ppr.cpp \ - ../../SU2_CFD/src/gauss_structure.cpp \ - ../../SU2_CFD/src/element_linear.cpp \ - ../../SU2_CFD/src/element_structure.cpp \ - ../../SU2_CFD/src/integration_structure.cpp \ - ../../SU2_CFD/src/integration_time.cpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../../SU2_CFD/src/numerics_adjoint_levelset.cpp \ - ../../SU2_CFD/src/numerics_adjoint_mean.cpp \ - ../../SU2_CFD/src/numerics_adjoint_tne2.cpp \ - ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/numerics_direct_poisson.cpp \ - ../../SU2_CFD/src/numerics_direct_elasticity.cpp \ - ../../SU2_CFD/src/numerics_direct_heat.cpp \ - ../../SU2_CFD/src/numerics_direct_mean.cpp \ - ../../SU2_CFD/src/numerics_direct_tne2.cpp \ - ../../SU2_CFD/src/numerics_direct_transition.cpp \ - ../../SU2_CFD/src/numerics_direct_turbulent.cpp \ - ../../SU2_CFD/src/numerics_direct_wave.cpp \ - ../../SU2_CFD/src/numerics_machine_learning.cpp \ - ../../SU2_CFD/src/numerics_linearized_mean.cpp \ - ../../SU2_CFD/src/numerics_linearized_turbulent.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_structure.cpp \ - ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp \ - ../../SU2_CFD/src/numerics_template.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ - ../../SU2_CFD/src/solver_adjoint_levelset.cpp \ - ../../SU2_CFD/src/solver_adjoint_mean.cpp \ - ../../SU2_CFD/src/solver_adjoint_tne2.cpp \ - ../../SU2_CFD/src/solver_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/solver_adjoint_discrete.cpp \ - ../../SU2_CFD/src/solver_direct_poisson.cpp \ - ../../SU2_CFD/src/solver_direct_elasticity.cpp \ - ../../SU2_CFD/src/solver_direct_heat.cpp \ - ../../SU2_CFD/src/solver_direct_mean.cpp \ - ../../SU2_CFD/src/solver_direct_tne2.cpp \ - ../../SU2_CFD/src/solver_direct_transition.cpp \ - ../../SU2_CFD/src/solver_direct_turbulent.cpp \ - ../../SU2_CFD/src/solver_direct_wave.cpp \ - ../../SU2_CFD/src/solver_linearized_mean.cpp \ - ../../SU2_CFD/src/solver_linearized_turbulent.cpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/src/solver_template.cpp \ - ../../SU2_CFD/src/transport_model.cpp \ - ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ - ../../SU2_CFD/src/variable_adjoint_mean.cpp \ - ../../SU2_CFD/src/variable_adjoint_tne2.cpp \ - ../../SU2_CFD/src/variable_adjoint_turbulent.cpp \ - ../../SU2_CFD/src/variable_adjoint_discrete.cpp \ - ../../SU2_CFD/src/variable_direct_poisson.cpp \ - ../../SU2_CFD/src/variable_direct_elasticity.cpp \ - ../../SU2_CFD/src/variable_direct_heat.cpp \ - ../../SU2_CFD/src/variable_direct_mean.cpp \ - ../../SU2_CFD/src/variable_direct_tne2.cpp \ - ../../SU2_CFD/src/variable_direct_transition.cpp \ - ../../SU2_CFD/src/variable_direct_turbulent.cpp \ - ../../SU2_CFD/src/variable_direct_wave.cpp \ - ../../SU2_CFD/src/variable_linearized_mean.cpp \ - ../../SU2_CFD/src/variable_linearized_turbulent.cpp \ - ../../SU2_CFD/src/variable_fem_elasticity.cpp \ - ../../SU2_CFD/src/variable_structure.cpp \ - ../../SU2_CFD/src/variable_template.cpp + ../src/iteration_structure_fsi.cpp # always link to built dependencies from ./externals @@ -642,8 +450,84 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ su2_fsi_cxx_flags = @su2_externals_INCLUDES@ @CGNS_CXX@ \ @MUTATIONPP_CXX@ @JSONCPP_CXX@ @HDF5_CXX@ @SZIP_CXX@ \ @ZLIB_CXX@ $(am__empty) -su2_fsi_ldadd = @su2_externals_LIBS@ @CGNS_LD@ @MUTATIONPP_LD@ \ - @JSONCPP_LD@ @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ $(am__empty) +su2_fsi_ldadd = \ + ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-gauss_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-element_linear.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-element_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o \ + @su2_externals_LIBS@ @CGNS_LD@ @MUTATIONPP_LD@ @JSONCPP_LD@ \ + @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ $(am__empty) # endif @BUILD_NORMAL_TRUE@___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) @BUILD_NORMAL_TRUE@___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} @@ -734,237 +618,6 @@ clean-binPROGRAMS: ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src - @: > ../../SU2_CFD/src/$(am__dirstamp) -../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) - @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-element_linear.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-element_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-integration_time.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-output_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-output_su2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-variable_template.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) @@ -975,87 +628,11 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) -rm -f ../src/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ @@ -1103,1056 +680,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o: ../../SU2_CFD/src/fluid_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.o `test -f '../../SU2_CFD/src/fluid_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj: ../../SU2_CFD/src/fluid_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model.obj `if test -f '../../SU2_CFD/src/fluid_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o: ../../SU2_CFD/src/fluid_model_pig.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.o `test -f '../../SU2_CFD/src/fluid_model_pig.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pig.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj: ../../SU2_CFD/src/fluid_model_pig.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pig.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pig.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pig.obj `if test -f '../../SU2_CFD/src/fluid_model_pig.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pig.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pig.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o: ../../SU2_CFD/src/fluid_model_pvdw.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.o `test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_pvdw.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj: ../../SU2_CFD/src/fluid_model_pvdw.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_pvdw.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_pvdw.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_pvdw.obj `if test -f '../../SU2_CFD/src/fluid_model_pvdw.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_pvdw.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_pvdw.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o: ../../SU2_CFD/src/fluid_model_ppr.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.o `test -f '../../SU2_CFD/src/fluid_model_ppr.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/fluid_model_ppr.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj: ../../SU2_CFD/src/fluid_model_ppr.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-fluid_model_ppr.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/fluid_model_ppr.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-fluid_model_ppr.obj `if test -f '../../SU2_CFD/src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/fluid_model_ppr.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o: ../../SU2_CFD/src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o `test -f '../../SU2_CFD/src/gauss_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/gauss_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.o `test -f '../../SU2_CFD/src/gauss_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/gauss_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj: ../../SU2_CFD/src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj `if test -f '../../SU2_CFD/src/gauss_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/gauss_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/gauss_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-gauss_structure.obj `if test -f '../../SU2_CFD/src/gauss_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/gauss_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o: ../../SU2_CFD/src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o `test -f '../../SU2_CFD/src/element_linear.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_linear.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.o `test -f '../../SU2_CFD/src/element_linear.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_linear.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj: ../../SU2_CFD/src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj `if test -f '../../SU2_CFD/src/element_linear.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_linear.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_linear.obj `if test -f '../../SU2_CFD/src/element_linear.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_linear.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o: ../../SU2_CFD/src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o `test -f '../../SU2_CFD/src/element_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.o `test -f '../../SU2_CFD/src/element_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/element_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj: ../../SU2_CFD/src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj `if test -f '../../SU2_CFD/src/element_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/element_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-element_structure.obj `if test -f '../../SU2_CFD/src/element_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/element_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o: ../../SU2_CFD/src/integration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.o `test -f '../../SU2_CFD/src/integration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj: ../../SU2_CFD/src/integration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_structure.obj `if test -f '../../SU2_CFD/src/integration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o: ../../SU2_CFD/src/integration_time.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.o `test -f '../../SU2_CFD/src/integration_time.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/integration_time.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj: ../../SU2_CFD/src/integration_time.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-integration_time.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/integration_time.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-integration_time.obj `if test -f '../../SU2_CFD/src/integration_time.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/integration_time.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/integration_time.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.o `test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_levelset.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj: ../../SU2_CFD/src/numerics_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_levelset.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o: ../../SU2_CFD/src/numerics_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.o `test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj: ../../SU2_CFD/src/numerics_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_mean.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.o `test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_tne2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj: ../../SU2_CFD/src/numerics_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_tne2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.o `test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_adjoint_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj: ../../SU2_CFD/src/numerics_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_adjoint_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o: ../../SU2_CFD/src/numerics_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.o `test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_poisson.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj: ../../SU2_CFD/src/numerics_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_poisson.obj `if test -f '../../SU2_CFD/src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_poisson.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o: ../../SU2_CFD/src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.o `test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj: ../../SU2_CFD/src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o: ../../SU2_CFD/src/numerics_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.o `test -f '../../SU2_CFD/src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_heat.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj: ../../SU2_CFD/src/numerics_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_heat.obj `if test -f '../../SU2_CFD/src/numerics_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_heat.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o: ../../SU2_CFD/src/numerics_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.o `test -f '../../SU2_CFD/src/numerics_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj: ../../SU2_CFD/src/numerics_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_mean.obj `if test -f '../../SU2_CFD/src/numerics_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o: ../../SU2_CFD/src/numerics_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.o `test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_tne2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj: ../../SU2_CFD/src/numerics_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_tne2.obj `if test -f '../../SU2_CFD/src/numerics_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_tne2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o: ../../SU2_CFD/src/numerics_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.o `test -f '../../SU2_CFD/src/numerics_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_transition.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj: ../../SU2_CFD/src/numerics_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_transition.obj `if test -f '../../SU2_CFD/src/numerics_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_transition.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o: ../../SU2_CFD/src/numerics_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.o `test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj: ../../SU2_CFD/src/numerics_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o: ../../SU2_CFD/src/numerics_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.o `test -f '../../SU2_CFD/src/numerics_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_direct_wave.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj: ../../SU2_CFD/src/numerics_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_direct_wave.obj `if test -f '../../SU2_CFD/src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_direct_wave.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o: ../../SU2_CFD/src/numerics_machine_learning.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.o `test -f '../../SU2_CFD/src/numerics_machine_learning.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj: ../../SU2_CFD/src/numerics_machine_learning.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o: ../../SU2_CFD/src/numerics_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.o `test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj: ../../SU2_CFD/src/numerics_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_mean.obj `if test -f '../../SU2_CFD/src/numerics_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.o `test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_linearized_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj: ../../SU2_CFD/src/numerics_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_linearized_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o: ../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj: ../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o: ../../SU2_CFD/src/numerics_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.o `test -f '../../SU2_CFD/src/numerics_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj: ../../SU2_CFD/src/numerics_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_structure.obj `if test -f '../../SU2_CFD/src/numerics_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.o `test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj: ../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_machine_learning_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_machine_learning_turbulent.obj `if test -f '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_machine_learning_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o: ../../SU2_CFD/src/numerics_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.o `test -f '../../SU2_CFD/src/numerics_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_template.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj: ../../SU2_CFD/src/numerics_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_template.obj `if test -f '../../SU2_CFD/src/numerics_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_template.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o: ../../SU2_CFD/src/solver_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.o `test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_levelset.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj: ../../SU2_CFD/src/solver_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_levelset.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o: ../../SU2_CFD/src/solver_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.o `test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj: ../../SU2_CFD/src/solver_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_mean.obj `if test -f '../../SU2_CFD/src/solver_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o: ../../SU2_CFD/src/solver_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.o `test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_tne2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj: ../../SU2_CFD/src/solver_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_tne2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.o `test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj: ../../SU2_CFD/src/solver_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.o: ../../SU2_CFD/src/solver_adjoint_discrete.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.o `test -f '../../SU2_CFD/src/solver_adjoint_discrete.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_discrete.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_discrete.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.o `test -f '../../SU2_CFD/src/solver_adjoint_discrete.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_adjoint_discrete.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.obj: ../../SU2_CFD/src/solver_adjoint_discrete.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.obj `if test -f '../../SU2_CFD/src/solver_adjoint_discrete.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_discrete.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_discrete.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_adjoint_discrete.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_adjoint_discrete.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_adjoint_discrete.obj `if test -f '../../SU2_CFD/src/solver_adjoint_discrete.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_adjoint_discrete.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_adjoint_discrete.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o: ../../SU2_CFD/src/solver_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.o `test -f '../../SU2_CFD/src/solver_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_poisson.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj: ../../SU2_CFD/src/solver_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_poisson.obj `if test -f '../../SU2_CFD/src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_poisson.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o: ../../SU2_CFD/src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.o `test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj: ../../SU2_CFD/src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_elasticity.obj `if test -f '../../SU2_CFD/src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o: ../../SU2_CFD/src/solver_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.o `test -f '../../SU2_CFD/src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_heat.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj: ../../SU2_CFD/src/solver_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_heat.obj `if test -f '../../SU2_CFD/src/solver_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_heat.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o: ../../SU2_CFD/src/solver_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.o `test -f '../../SU2_CFD/src/solver_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj: ../../SU2_CFD/src/solver_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_mean.obj `if test -f '../../SU2_CFD/src/solver_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o: ../../SU2_CFD/src/solver_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.o `test -f '../../SU2_CFD/src/solver_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_tne2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj: ../../SU2_CFD/src/solver_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_tne2.obj `if test -f '../../SU2_CFD/src/solver_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_tne2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o: ../../SU2_CFD/src/solver_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.o `test -f '../../SU2_CFD/src/solver_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_transition.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj: ../../SU2_CFD/src/solver_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_transition.obj `if test -f '../../SU2_CFD/src/solver_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_transition.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o: ../../SU2_CFD/src/solver_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.o `test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj: ../../SU2_CFD/src/solver_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_turbulent.obj `if test -f '../../SU2_CFD/src/solver_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o: ../../SU2_CFD/src/solver_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.o `test -f '../../SU2_CFD/src/solver_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_direct_wave.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj: ../../SU2_CFD/src/solver_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_direct_wave.obj `if test -f '../../SU2_CFD/src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_direct_wave.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o: ../../SU2_CFD/src/solver_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.o `test -f '../../SU2_CFD/src/solver_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj: ../../SU2_CFD/src/solver_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_mean.obj `if test -f '../../SU2_CFD/src/solver_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o: ../../SU2_CFD/src/solver_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.o `test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_linearized_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj: ../../SU2_CFD/src/solver_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_linearized_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o: ../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj: ../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o: ../../SU2_CFD/src/solver_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.o `test -f '../../SU2_CFD/src/solver_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_template.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj: ../../SU2_CFD/src/solver_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o: ../../SU2_CFD/src/transport_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj: ../../SU2_CFD/src/transport_model.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transport_model.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.obj `if test -f '../../SU2_CFD/src/transport_model.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transport_model.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transport_model.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o: ../../SU2_CFD/src/variable_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.o `test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_levelset.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj: ../../SU2_CFD/src/variable_adjoint_levelset.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_levelset.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.obj `if test -f '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_levelset.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_levelset.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o: ../../SU2_CFD/src/variable_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.o `test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj: ../../SU2_CFD/src/variable_adjoint_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.obj `if test -f '../../SU2_CFD/src/variable_adjoint_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o: ../../SU2_CFD/src/variable_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.o `test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_tne2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj: ../../SU2_CFD/src/variable_adjoint_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_tne2.obj `if test -f '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_tne2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.o `test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj: ../../SU2_CFD/src/variable_adjoint_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_turbulent.obj `if test -f '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.o: ../../SU2_CFD/src/variable_adjoint_discrete.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.o `test -f '../../SU2_CFD/src/variable_adjoint_discrete.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_discrete.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_discrete.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.o `test -f '../../SU2_CFD/src/variable_adjoint_discrete.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_adjoint_discrete.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.obj: ../../SU2_CFD/src/variable_adjoint_discrete.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.obj `if test -f '../../SU2_CFD/src/variable_adjoint_discrete.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_discrete.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_discrete.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_adjoint_discrete.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_discrete.obj `if test -f '../../SU2_CFD/src/variable_adjoint_discrete.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_adjoint_discrete.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_adjoint_discrete.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o: ../../SU2_CFD/src/variable_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.o `test -f '../../SU2_CFD/src/variable_direct_poisson.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_poisson.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj: ../../SU2_CFD/src/variable_direct_poisson.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_poisson.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_poisson.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_poisson.obj `if test -f '../../SU2_CFD/src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_poisson.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o: ../../SU2_CFD/src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.o `test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj: ../../SU2_CFD/src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_elasticity.obj `if test -f '../../SU2_CFD/src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o: ../../SU2_CFD/src/variable_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.o `test -f '../../SU2_CFD/src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_heat.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj: ../../SU2_CFD/src/variable_direct_heat.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_heat.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_heat.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_heat.obj `if test -f '../../SU2_CFD/src/variable_direct_heat.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_heat.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_heat.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o: ../../SU2_CFD/src/variable_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.o `test -f '../../SU2_CFD/src/variable_direct_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj: ../../SU2_CFD/src/variable_direct_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_mean.obj `if test -f '../../SU2_CFD/src/variable_direct_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o: ../../SU2_CFD/src/variable_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.o `test -f '../../SU2_CFD/src/variable_direct_tne2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_tne2.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj: ../../SU2_CFD/src/variable_direct_tne2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_tne2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_tne2.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_tne2.obj `if test -f '../../SU2_CFD/src/variable_direct_tne2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_tne2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_tne2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o: ../../SU2_CFD/src/variable_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.o `test -f '../../SU2_CFD/src/variable_direct_transition.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_transition.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj: ../../SU2_CFD/src/variable_direct_transition.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_transition.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_transition.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_transition.obj `if test -f '../../SU2_CFD/src/variable_direct_transition.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_transition.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_transition.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o: ../../SU2_CFD/src/variable_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.o `test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj: ../../SU2_CFD/src/variable_direct_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_turbulent.obj `if test -f '../../SU2_CFD/src/variable_direct_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o: ../../SU2_CFD/src/variable_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.o `test -f '../../SU2_CFD/src/variable_direct_wave.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_direct_wave.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj: ../../SU2_CFD/src/variable_direct_wave.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_direct_wave.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_direct_wave.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_direct_wave.obj `if test -f '../../SU2_CFD/src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_direct_wave.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o: ../../SU2_CFD/src/variable_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.o `test -f '../../SU2_CFD/src/variable_linearized_mean.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_mean.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj: ../../SU2_CFD/src/variable_linearized_mean.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_mean.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_mean.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_mean.obj `if test -f '../../SU2_CFD/src/variable_linearized_mean.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_mean.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_mean.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o: ../../SU2_CFD/src/variable_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.o `test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_linearized_turbulent.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj: ../../SU2_CFD/src/variable_linearized_turbulent.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_linearized_turbulent.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_linearized_turbulent.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_linearized_turbulent.obj `if test -f '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_linearized_turbulent.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_linearized_turbulent.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o: ../../SU2_CFD/src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o `test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.o `test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj: ../../SU2_CFD/src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj `if test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_fem_elasticity.obj `if test -f '../../SU2_CFD/src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o: ../../SU2_CFD/src/variable_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.o `test -f '../../SU2_CFD/src/variable_template.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_template.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj: ../../SU2_CFD/src/variable_template.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_template.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_template.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-variable_template.obj `if test -f '../../SU2_CFD/src/variable_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_template.cpp'; fi` - ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am @@ -2268,8 +795,6 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../../SU2_CFD/src/$(am__dirstamp) -rm -f ../bin/$(am__dirstamp) -rm -f ../src/$(DEPDIR)/$(am__dirstamp) -rm -f ../src/$(am__dirstamp) @@ -2282,7 +807,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -rf ../src/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -2328,7 +853,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -rf ../src/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic From ad0740ef0d928966d21d03dbd556f950a697310d Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 9 Sep 2015 19:45:45 -0700 Subject: [PATCH 076/269] rectangle -> quadrilateral --- SU2_CFD/include/numerics_structure.hpp | 2 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 8 ++++---- SU2_CFD/src/solver_direct_elasticity.cpp | 18 +++++++++--------- SU2_CFD/src/solver_fem_elasticity.cpp | 16 ++++++++-------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index c64d4f644e3..a6e759ce5e9 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -4226,7 +4226,7 @@ class CGalerkin_FEA : public CNumerics { * \param[in] CoordCorners[8][3] - Coordiantes of the corners. * \param[in] shp[8][4] - Shape function information */ - su2double ShapeFunc_Rectangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); + su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); /*! * \brief Shape functions and derivative of the shape functions diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index 24c605174c3..706c0eaa819 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -863,7 +863,7 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2do Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 } - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ + /*--- QUADRILATERAL. Nodes of numerical integration at 4 points (order 2). ---*/ if (nNodes == 4) { nGauss = 4; @@ -878,7 +878,7 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2do Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Rectangle(Xi, Eta, CoordCorners, DShapeFunction); + if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); /*--- Compute the N Matrix ---*/ @@ -1142,7 +1142,7 @@ void CGalerkin_FEA::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 } - /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ + /*--- QUADRILATERAL. Nodes of numerical integration at 4 points (order 2). ---*/ if (nNodes == 4) { nGauss = 4; @@ -1218,7 +1218,7 @@ void CGalerkin_FEA::GetFEA_StressNodal2D(su2double StressNodal[8][3], su2double // Location[0][0] = 0.0; Location[0][1] = 1.0; // Location[0][0] = 0.0; Location[0][1] = 0.0; // } else { -// /*--- Rectangle. Nodes of numerical integration at 4 points (order 2). ---*/ +// /*--- QUADRILATERAL. Nodes of numerical integration at 4 points (order 2). ---*/ // Location[0][0] = -1.0; Location[0][1] = -1.0; // Location[1][0] = 1.0; Location[1][1] = -1.0; // Location[2][0] = 1.0; Location[2][1] = 1.0; diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 19e6f3a8d5d..1174539e948 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -481,7 +481,7 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; @@ -538,7 +538,7 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) nNodes = 4; + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; @@ -1000,7 +1000,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN if (nDim == 3) { Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); } @@ -1040,7 +1040,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ for (iDim = 0; iDim < nDim; iDim++) { AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; @@ -1079,7 +1079,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN LinSysRes.AddBlock(Point_1, Residual); LinSysRes.AddBlock(Point_2, Residual); } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; @@ -1130,7 +1130,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C if (nDim == 3) { Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); } @@ -1170,7 +1170,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ for (iDim = 0; iDim < nDim; iDim++) { AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; @@ -1211,7 +1211,7 @@ void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, C } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; @@ -1282,7 +1282,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE){ nNodes = 3;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE){ nNodes = 4;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL){ nNodes = 4;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON){ nNodes = 4;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID){ nNodes = 5;} if (geometry->elem[iElem]->GetVTK_Type() == PRISM){ nNodes = 6;} diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5b57a5924e4..506506674d5 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -895,7 +895,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} @@ -965,7 +965,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} @@ -1043,7 +1043,7 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} @@ -1107,7 +1107,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} @@ -1179,7 +1179,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == RECTANGLE) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} @@ -1697,7 +1697,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co if (nDim == 3) { Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); } @@ -1734,7 +1734,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ for (iDim = 0; iDim < nDim; iDim++) { AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; @@ -1774,7 +1774,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co node[Point_2]->Add_SurfaceLoad_Res(Residual); } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == RECTANGLE){ + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; From 363832de171c5ad681abcef4901ea73fef6602ba Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 10 Sep 2015 12:13:55 -0700 Subject: [PATCH 077/269] changed name CConsistConserve to CIsoparametric --- Common/include/interpolation_structure.hpp | 8 ++++---- Common/src/interpolation_structure.cpp | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index e6be4a97b0f..81d5d7a9790 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -155,18 +155,18 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Consistent and Conservative interpolation */ -class CConsistConserve : public CInterpolator { +class CIsoparametric : public CInterpolator { public: /*! * \brief Constructor of the class. */ - CConsistConserve(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); + CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); /*! * \brief Destructor of the class. */ - ~CConsistConserve(void); + ~CIsoparametric(void); /*! * \brief Set up transfer matrix defining relation between two meshes @@ -187,6 +187,6 @@ class CConsistConserve : public CInterpolator { * \param[in] donor_elem - element index of the element to use for interpolation * \param[in[ nDonorPoints - number of donor points in the element. */ - void Isoparametric(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints); + void Isoparameters(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints); }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 88de9306156..644a4870c35 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -192,12 +192,12 @@ void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned s /* Nearest Neighbor Interpolator */ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ - unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); + //unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(Zones,config); /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ - InitializeData(Zones,nDim); + //InitializeData(Zones,nDim); } @@ -310,7 +310,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -CConsistConserve::CConsistConserve(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ +CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(Zones,config); @@ -319,9 +319,9 @@ CConsistConserve::CConsistConserve(CGeometry ***geometry_container, CConfig **co InitializeData(Zones,nDim); } -CConsistConserve::~CConsistConserve(){} +CIsoparametric::~CIsoparametric(){} -void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ +void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex,*nn, inode, jElem; long ivtx; unsigned short iMarker, iDim, jMarker, it; @@ -599,7 +599,7 @@ void CConsistConserve::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -void CConsistConserve::Isoparametric(su2double* isoparams, unsigned int iZone_0, +void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ int i,j,k; From 4efd8df769cbbf1b9206e28dca4bb54793f117be Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 11 Sep 2015 12:10:14 -0700 Subject: [PATCH 078/269] FSI: Added transfer structure (preliminary implementation) --- Common/include/dual_grid_structure.hpp | 2 +- Common/src/dual_grid_structure.cpp | 2 +- SU2_CFD/include/element_structure.hpp | 5 +- SU2_CFD/include/gauss_structure.hpp | 5 +- SU2_CFD/include/transfer_structure.hpp | 298 +++++++++ SU2_CFD/include/transfer_structure.inl | 42 ++ SU2_CFD/src/transfer_structure.cpp | 680 ++++++++++++++++++++ SU2_FSI/include/SU2_FSI.hpp | 1 + SU2_FSI/include/iteration_structure_fsi.hpp | 9 +- SU2_FSI/obj/Makefile.am | 3 + SU2_FSI/obj/Makefile.in | 25 + SU2_FSI/src/SU2_FSI.cpp | 49 +- SU2_FSI/src/iteration_structure_fsi.cpp | 50 +- 13 files changed, 1126 insertions(+), 45 deletions(-) create mode 100644 SU2_CFD/include/transfer_structure.hpp create mode 100644 SU2_CFD/include/transfer_structure.inl create mode 100644 SU2_CFD/src/transfer_structure.cpp diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index e3f04e87f29..4d9c2f7a131 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -882,7 +882,7 @@ class CVertex : public CDualGrid { su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ unsigned long **Donor_Info; /*!\brief Store a list of donor points (by global index) for interpolation across zones: zone,point,marker,vertex */ su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ - unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points;*/ + unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points; at least there will be one donor point (if the mesh is matching)*/ public: diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 63b9219d4f6..291e0a052c7 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -458,7 +458,7 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v /*--- Set to NULL donor arrays for interpolation ---*/ Donor_Info = NULL; Donor_Coeff = NULL; - nDonor_Points = 0; + nDonor_Points = 1; } CVertex::~CVertex() { diff --git a/SU2_CFD/include/element_structure.hpp b/SU2_CFD/include/element_structure.hpp index fb01d5a94ba..71a681c7058 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/SU2_CFD/include/element_structure.hpp @@ -32,9 +32,8 @@ #pragma once -#ifdef HAVE_MPI - #include "mpi.h" -#endif +#include "../../Common/include/mpi_structure.hpp" + #include #include #include diff --git a/SU2_CFD/include/gauss_structure.hpp b/SU2_CFD/include/gauss_structure.hpp index 95a5df47d9c..055cbd2109e 100644 --- a/SU2_CFD/include/gauss_structure.hpp +++ b/SU2_CFD/include/gauss_structure.hpp @@ -32,9 +32,8 @@ #pragma once -#ifdef HAVE_MPI - #include "mpi.h" -#endif +#include "../../Common/include/mpi_structure.hpp" + #include #include #include diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp new file mode 100644 index 00000000000..c56eb80701c --- /dev/null +++ b/SU2_CFD/include/transfer_structure.hpp @@ -0,0 +1,298 @@ +/*! + * \file transfer_structure.hpp + * \brief Headers of the transfer structure + * The subroutines and functions are in the transfer_structure.cpp file. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#include "../../Common/include/mpi_structure.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../../Common/include/config_structure.hpp" +#include "../../Common/include/geometry_structure.hpp" +#include "../../Common/include/vector_structure.hpp" +#include "solver_structure.hpp" + +using namespace std; + +/*! + * \class CTransfer + * \brief Main class for defining the physical transfer of information. + * \author R. Sanchez + * \version 4.0.1 "Cardinal" + */ + +class CTransfer { +protected: + + su2double *Physical_Constants; + su2double *Donor_Variable; + su2double *Target_Variable; + + unsigned short nVar; + +public: + /*! + * \brief Constructor of the class. + */ + CTransfer(void); + + /*! + * \overload + * \param[in] val_nVar - Number of variables that need to be transferred. + * \param[in] val_nConst - Number of physical constants that need to be taken into account. + * \param[in] config - Definition of the particular problem. + */ + CTransfer(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + virtual ~CTransfer(void); + + /*! + * \brief Interpolate data and scatter it into different processors. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Interpolate data and broadcast it into all processors. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Interpolate data, operate over it and broadcast it into all processors. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief A virtual member. + */ + + virtual void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + /*! + * \brief A virtual member. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] Marker_Donor - Index of the donor marker. + * \param[in] Vertex_Donor - Index of the donor vertex. + */ + virtual void GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry, + CConfig *donor_config, unsigned long Marker_Donor, + unsigned long Vertex_Donor, unsigned long Point_Donor); + + /*! + * \brief A virtual member. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + * \param[in] Marker_Target - Index of the target marker. + * \param[in] Vertex_Target - Index of the target vertex. + * \param[in] Point_Target - Index of the target point. + */ + virtual void SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, + CConfig *target_config, unsigned long Marker_Target, + unsigned long Vertex_Target, unsigned long Point_Target); + +}; + +/*! + * \class CTransfer_FlowTraction + * \brief Transfer flow tractions from a fluid zone into a structural zone + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CTransfer_FlowTraction : public CTransfer { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CTransfer_FlowTraction(void); + + /*! + * \overload + * \param[in] val_nVar - Number of variables that need to be transferred. + * \param[in] config - Definition of the particular problem. + */ + CTransfer_FlowTraction(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + virtual ~CTransfer_FlowTraction(void); + + /*! + * \brief Retrieve some constants needed for the calculations. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Retrieve the variable that will be sent from donor mesh to target mesh. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] Marker_Donor - Index of the donor marker. + * \param[in] Vertex_Donor - Index of the donor vertex. + */ + void GetDonor_Variable(CSolver *flow_solution, CGeometry *flow_geometry, CConfig *flow_config, + unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Flow); + + /*! + * \brief Set the variable that has been received from the target mesh into the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + * \param[in] Marker_Target - Index of the target marker. + * \param[in] Vertex_Target - Index of the target vertex. + * \param[in] Point_Target - Index of the target point. + */ + void SetTarget_Variable(CSolver *fea_solution, CGeometry *fea_geometry, + CConfig *fea_config, unsigned long Marker_Struct, + unsigned long Vertex_Struct, unsigned long Point_Struct); + +}; + +/*! + * \class CTransfer_FlowTraction + * \brief Transfer flow tractions from a fluid zone into a structural zone + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + */ + +class CTransfer_StructuralDisplacements : public CTransfer { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CTransfer_StructuralDisplacements(void); + + /*! + * \overload + * \param[in] val_nVar - Number of variables that need to be transferred. + * \param[in] config - Definition of the particular problem. + */ + CTransfer_StructuralDisplacements(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + virtual ~CTransfer_StructuralDisplacements(void); + + /*! + * \brief Retrieve some constants needed for the calculations. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Retrieve the variable that will be sent from donor mesh to target mesh. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] Marker_Donor - Index of the donor marker. + * \param[in] Vertex_Donor - Index of the donor vertex. + */ + void GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, + unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct); + + /*! + * \brief Set the variable that has been received from the target mesh into the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + * \param[in] Marker_Target - Index of the target marker. + * \param[in] Vertex_Target - Index of the target vertex. + * \param[in] Point_Target - Index of the target point. + */ + void SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, + CConfig *flow_config, unsigned long Marker_Flow, + unsigned long Vertex_Flow, unsigned long Point_Flow); + +}; +#include "transfer_structure.inl" diff --git a/SU2_CFD/include/transfer_structure.inl b/SU2_CFD/include/transfer_structure.inl new file mode 100644 index 00000000000..0bff5405add --- /dev/null +++ b/SU2_CFD/include/transfer_structure.inl @@ -0,0 +1,42 @@ +/*! + * \file transfer_structure.inl + * \brief In-Line subroutines of the transfer_structure.hpp file. + * \author R. Sanchez + * \version 4.0.1 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +inline void CTransfer::GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config) { } + +inline void CTransfer::GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry, + CConfig *donor_config, unsigned long Marker_Donor, + unsigned long Vertex_Donor, unsigned long Point_Donor) { } + +inline void CTransfer::SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, + CConfig *target_config, unsigned long Marker_Target, + unsigned long Vertex_Target, unsigned long Point_Target) { } \ No newline at end of file diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp new file mode 100644 index 00000000000..6827c9147b6 --- /dev/null +++ b/SU2_CFD/src/transfer_structure.cpp @@ -0,0 +1,680 @@ +/*! + * \file transfer_structure.cpp + * \brief Main subroutines for physical transfer of information + * \author R. Sanchez + * \version 4.0.1 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/transfer_structure.hpp" + +CTransfer::CTransfer(void) { + + Physical_Constants = NULL; + Donor_Variable = NULL; + Target_Variable = NULL; + + nVar = 0; + +} + +CTransfer::CTransfer(unsigned short val_nVar, unsigned short val_nConst, CConfig *config){ + + unsigned short iVar; + + Physical_Constants = new su2double[val_nConst]; + Donor_Variable = new su2double[val_nVar]; + Target_Variable = new su2double[val_nVar]; + + nVar = val_nVar; + + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = 0.0; + Target_Variable[iVar] = 0.0; + } + + for (iVar = 0; iVar < val_nConst; iVar++){ + Physical_Constants[iVar] = 0.0; + } + +} + +CTransfer::~CTransfer(void) { + + if (Physical_Constants != NULL) delete [] Physical_Constants; + if (Donor_Variable != NULL) delete [] Donor_Variable; + if (Target_Variable != NULL) delete [] Target_Variable; + +} + +void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side + unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + + unsigned short iVar, jDim; + + + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + + unsigned long Point_Donor, Point_Target; + su2double *Normal_Donor, *Normal_Target; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + + unsigned long nLocalVertexDonor = 0, nLocalVertexTarget= 0; + unsigned long iVertexDonor = 0, iVertexTarget; + unsigned long nPoint_Total = 0; + + unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; + + unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + + unsigned long Processor_Donor, Processor_Target; + + int iProcessor, nProcessor = 0; + unsigned long iVariable; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- We have identified the local index of the Flow marker ---*/ + /*--- Store the number of local points that belong to Marker_Flow on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexTarget = target_geometry->GetnVertex(iMarkerTarget); + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexTarget = 0; + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + Buffer_Send_nVertexTarget[0] = nLocalVertexTarget; // Retrieve total number of vertices on Target marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexTarget = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side +#ifdef HAVE_MPI + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexTarget, &MaxLocalVertexTarget, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexTarget, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexTarget, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); +#else + MaxLocalVertexDonor = nLocalVertexDonor; + MaxLocalVertexTarget = nLocalVertexTarget; + + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + Buffer_Recv_nVertexTarget[0] = nLocalVertexTarget; + +#endif + + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_TargetVariables = MaxLocalVertexTarget * nVar; + + /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ + /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexDonor; + nBuffer_TargetIndices = MaxLocalVertexTarget; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = NULL; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the variables in the target mesh---*/ + su2double *Buffer_Send_TargetVariables = NULL; + su2double *Buffer_Recv_TargetVariables = new su2double[nBuffer_TargetVariables]; + + /*--- Buffers to send and receive the target indices ---*/ + long *Buffer_Send_TargetIndices = NULL; + long *Buffer_Recv_TargetIndices = new long[nBuffer_TargetIndices]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_TargetVariables = new su2double[size*nBuffer_TargetVariables]; + Buffer_Send_TargetIndices = new long[size*nBuffer_TargetIndices]; + } + + /*--- On the fluid side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Donor >= 0){ + + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + Point_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorPoint(); + + Processor_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorProcessor(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Target; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Target; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + } + + } + } + +#ifdef HAVE_MPI + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + +#else + for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; +#endif + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Target = NULL; + long iProcessor_Donor = 0, iIndex_Donor = 0; + long iProcessor_Target = 0, iPoint_Target = 0, iIndex_Target = 0; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- We set the counter to 0 ---*/ + Counter_Processor_Target = new long[nProcessor]; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + Counter_Processor_Target[iProcessor] = 0; + } + + /*--- First we initialize the index vector to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nProcessor*nBuffer_TargetIndices; iVertex++) + Buffer_Send_TargetIndices[iVertex] = -2; + + /*--- As of now we do the loop over the flow points ---*/ + /*--- The number of points for flow and structure does not necessarily have to match ---*/ + /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ + /*--- nFlow < nStruct available; this is due to halo nodes ---*/ + + /*--- For every processor from which we have received information ---*/ + /*--- (This is, for every processor on the structural side) ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + + /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ + iProcessor_Donor = iProcessor*nBuffer_DonorVariables; + /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ + iIndex_Donor = iProcessor*nBuffer_DonorIndices; + + /*--- For every vertex in the information retreived from iProcessor ---*/ + for (iVertex = 0; iVertex < Buffer_Recv_nVertexDonor[iProcessor]; iVertex++) { + + /*--- The processor and index for the flow are: ---*/ + Processor_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; + Point_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; + + /*--- Load the buffer at the appropriate position ---*/ + /*--- This is determined on the fluid side by: + *--- Processor_Target*nBuffer_StructTraction -> Initial position of the processor array (fluid side) + *--- + + *--- Counter_Processor_Struct*nVar -> Initial position of the nVar array for the particular point on the fluid side + *--- + + *--- iVar -> Position within the nVar array that corresponds to a point + *--- + *--- While on the structural side is: + *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) + *--- + + *--- iVertex*nVar -> Initial position of the nVar array for the particular point on the structural side + */ + + /*--- We check that we are not setting the value for a halo node ---*/ + if (Point_Target != -1){ + iProcessor_Target = Processor_Target*nBuffer_TargetVariables; + iIndex_Target = Processor_Target*nBuffer_TargetIndices; + iPoint_Target = Counter_Processor_Target[Processor_Target]*nVar; + + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_TargetVariables[iProcessor_Target + iPoint_Target + iVar] = Buffer_Recv_DonorVariables[iProcessor_Donor + iVertex*nVar + iVar]; + + /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ + Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target]] = Point_Target; + + Counter_Processor_Target[Processor_Target]++; + } + + } + + } + + } + +#ifdef HAVE_MPI + /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ + SU2_MPI::Scatter(Buffer_Send_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, Buffer_Recv_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Scatter(Buffer_Send_TargetIndices, nBuffer_TargetIndices, MPI_LONG, Buffer_Recv_TargetIndices, nBuffer_TargetIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); +#else + for (iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) + Buffer_Recv_TargetVariables[iVariable] = Buffer_Send_TargetVariables[iVariable]; + for (iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) + Buffer_Recv_TargetIndices[iVariable] = Buffer_Send_TargetIndices[iVariable]; +#endif + + long indexPoint_iVertex, Point_Target_Check; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexTarget; iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + if (target_geometry->node[Point_Target]->GetDomain()){ + /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_TargetIndices, std::find(Buffer_Recv_TargetIndices, Buffer_Recv_TargetIndices + MaxLocalVertexTarget, Point_Target)); + + Point_Target_Check = Buffer_Recv_TargetIndices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] = Buffer_Recv_TargetVariables[indexPoint_iVertex*nVar+iVar]; + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_TargetVariables; + delete [] Buffer_Recv_TargetIndices; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexDonor; + delete [] Buffer_Recv_nVertexTarget; + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_TargetVariables; + delete [] Buffer_Send_TargetIndices; + delete [] Counter_Processor_Target; + } + + } + + +} + +void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + +} + +void CTransfer::Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + +} + + +CTransfer_FlowTraction::CTransfer_FlowTraction(void) : CTransfer() { + +} + +CTransfer_FlowTraction::CTransfer_FlowTraction(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + +} + +CTransfer_FlowTraction::~CTransfer_FlowTraction(void) { + +} + +void CTransfer_FlowTraction::GetPhysical_Constants(CSolver *flow_solution, CSolver *struct_solution, + CGeometry *flow_geometry, CGeometry *struct_geometry, + CConfig *flow_config, CConfig *struct_config){ + + unsigned short iVar; + + /*--- We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ + + for (unsigned long iPoint = 0; iPoint < struct_geometry->GetnPoint(); iPoint++){ + struct_solution->node[iPoint]->Clear_FlowTraction(); + } + + /*--- Redimensionalize the pressure ---*/ + + su2double *Velocity_ND, *Velocity_Real; + su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; + su2double factorForces; + + Velocity_Real = flow_config->GetVelocity_FreeStream(); + Density_Real = flow_config->GetDensity_FreeStream(); + + Velocity_ND = flow_config->GetVelocity_FreeStreamND(); + Density_ND = flow_config->GetDensity_FreeStreamND(); + + Velocity2_Real = 0.0; + Velocity2_ND = 0.0; + for (iVar = 0; iVar < nVar; iVar++){ + Velocity2_Real += Velocity_Real[iVar]*Velocity_Real[iVar]; + Velocity2_ND += Velocity_ND[iVar]*Velocity_ND[iVar]; + } + + Physical_Constants[0] = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); + + /*--- Apply a ramp to the transfer of the fluid loads ---*/ + + su2double ModAmpl; + su2double CurrentTime = struct_config->GetCurrent_DynTime(); + su2double Static_Time = struct_config->GetStatic_Time(); + + bool Ramp_Load = struct_config->GetRamp_Load(); + su2double Ramp_Time = struct_config->GetRamp_Time(); + + if (CurrentTime <= Static_Time){ ModAmpl=0.0; } + else if((CurrentTime > Static_Time) && + (CurrentTime <= (Static_Time + Ramp_Time)) && + (Ramp_Load)){ + ModAmpl = (CurrentTime-Static_Time) / Ramp_Time; + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); + Physical_Constants[1] = ModAmpl; + } + else{ Physical_Constants[1] = 1.0; } + +} + +void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry *flow_geometry, CConfig *flow_config, + unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Struct){ + + + unsigned short iVar, jVar; + unsigned long Point_Flow; + su2double *Normal_Flow; + + // Check the kind of fluid problem + bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); + bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || + (flow_config->GetKind_Solver() == RANS) ); + + // Parameters for the calculations + // Pn: Pressure + // Pinf: Pressure_infinite + // div_vel: Velocity divergence + // Dij: Dirac delta + su2double Pn = 0.0, div_vel = 0.0, Dij = 0.0; + su2double Viscosity = 0.0, Density = 0.0; + su2double **Grad_PrimVar; + su2double Tau[3][3] = { {0.0, 0.0, 0.0} , + {0.0, 0.0, 0.0} , + {0.0, 0.0, 0.0} } ; + + su2double Pinf = flow_solution->GetPressure_Inf(); + + Point_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNode(); + // Get the normal at the vertex: this normal goes inside the fluid domain. + Normal_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNormal(); + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn = flow_solution->node[Point_Flow]->GetPressureInc(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosityInc(); + Density = flow_solution->node[Point_Flow]->GetDensityInc(); + + } + } + else if (compressible){ + + Pn = flow_solution->node[Point_Flow]->GetPressure(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosity(); + Density = flow_solution->node[Point_Flow]->GetDensity(); + + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iVar = 0; iVar < nVar; iVar++) { + Donor_Variable[iVar] = -(Pn-Pinf)*Normal_Flow[iVar]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iVar = 0; iVar < nVar; iVar++) div_vel += Grad_PrimVar[iVar+1][iVar]; + if (incompressible) div_vel = 0.0; + + for (iVar = 0; iVar < nVar; iVar++) { + + for (jVar = 0 ; jVar < nVar; jVar++) { + // Dirac delta + Dij = 0.0; if (iVar == jVar) Dij = 1.0; + + // Viscous stress + Tau[iVar][jVar] = Viscosity*(Grad_PrimVar[jVar+1][iVar] + Grad_PrimVar[iVar+1][jVar]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + Donor_Variable[iVar] += Tau[iVar][jVar]*Normal_Flow[jVar]; + } + } + } + + // Redimensionalize and take into account ramp transfer of the loads + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = Donor_Variable[iVar] * Physical_Constants[0] * Physical_Constants[1]; + } + +} + +void CTransfer_FlowTraction::SetTarget_Variable(CSolver *fea_solution, CGeometry *fea_geometry, + CConfig *fea_config, unsigned long Marker_Struct, + unsigned long Vertex_Struct, unsigned long Point_Struct){ + + /*--- Add to the Flow traction ---*/ + fea_solution->node[Point_Struct]->Add_FlowTraction(Target_Variable); + +} + +CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(void) : CTransfer() { + +} + +CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + +} + +CTransfer_StructuralDisplacements::~CTransfer_StructuralDisplacements(void) { + +} + + +void CTransfer_StructuralDisplacements::GetPhysical_Constants(CSolver *struct_solution, CSolver *flow_solution, + CGeometry *struct_geometry, CGeometry *flow_geometry, + CConfig *struct_config, CConfig *flow_config){ + +} + +void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, + unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ + + + su2double *Coord_Struct, *Displacement_Struct; + unsigned short iVar; + + Coord_Struct = struct_geometry->node[Point_Struct]->GetCoord(); + + /*--- The displacements come from the predicted solution ---*/ + Displacement_Struct = struct_solution->node[Point_Struct]->GetSolution_Pred(); + +// cout << "For point " << Point_Struct << " we have coordinates " << Coord_Struct[0] << " " << Coord_Struct[1] << endl; +// cout << "and displacements " << Displacement_Struct[0] << " " << Displacement_Struct[1] << endl; + + + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = Coord_Struct[iVar] + Displacement_Struct[iVar]; + } + +} + +void CTransfer_StructuralDisplacements::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, + CConfig *flow_config, unsigned long Marker_Flow, + unsigned long Vertex_Flow, unsigned long Point_Flow){ + + su2double *Coord, VarCoord[3] = {0.0, 0.0, 0.0}; + unsigned short iVar; + + Coord = flow_geometry->node[Point_Flow]->GetCoord(); + + for (iVar = 0; iVar < nVar; iVar++) + VarCoord[iVar] = Target_Variable[iVar]-Coord[iVar]; + + flow_geometry->vertex[Marker_Flow][Vertex_Flow]->SetVarCoord(VarCoord); + +} diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp index 5e001110b43..e4cd42ef456 100644 --- a/SU2_FSI/include/SU2_FSI.hpp +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -44,6 +44,7 @@ #include "../../SU2_CFD/include/numerics_structure.hpp" #include "../../SU2_CFD/include/definition_structure.hpp" #include "../../SU2_CFD/include/iteration_structure.hpp" +#include "../../SU2_CFD/include/transfer_structure.hpp" #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/config_structure.hpp" diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp index 98901bef286..5d84d233424 100644 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -39,6 +39,8 @@ #include "../../SU2_CFD/include/integration_structure.hpp" #include "../../SU2_CFD/include/output_structure.hpp" #include "../../SU2_CFD/include/numerics_structure.hpp" +#include "../../SU2_CFD/include/transfer_structure.hpp" + #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" #include "../../Common/include/config_structure.hpp" @@ -63,7 +65,7 @@ using namespace std; void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long iFluidIt, unsigned long nFluidIt); + CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt); /*! * \brief CFD Subiteration function for Fluid-Structure Interaction applications. @@ -154,7 +156,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG */ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container); /*! * \brief Load transfer function for Fluid-Structure Interaction applications. @@ -173,7 +176,7 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter); + CTransfer*** transfer_container, unsigned long ExtIter); /*! diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index dbc8fb69ed7..268b25d255b 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -61,6 +61,8 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/transport_model.inl \ ../../SU2_CFD/include/variable_structure.hpp \ ../../SU2_CFD/include/variable_structure.inl \ + ../../SU2_CFD/include/transfer_structure.hpp \ + ../../SU2_CFD/include/transfer_structure.inl \ ../../SU2_CFD/src/definition_structure.cpp \ ../../SU2_CFD/src/fluid_model.cpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ @@ -117,6 +119,7 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transfer_structure.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ ../../SU2_CFD/src/variable_adjoint_mean.cpp \ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 6a8a90e590e..6314c56bc49 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -152,6 +152,8 @@ am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/transport_model.inl \ ../../SU2_CFD/include/variable_structure.hpp \ ../../SU2_CFD/include/variable_structure.inl \ + ../../SU2_CFD/include/transfer_structure.hpp \ + ../../SU2_CFD/include/transfer_structure.inl \ ../../SU2_CFD/src/definition_structure.cpp \ ../../SU2_CFD/src/fluid_model.cpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ @@ -208,6 +210,7 @@ am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transfer_structure.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ ../../SU2_CFD/src/variable_adjoint_mean.cpp \ @@ -286,6 +289,7 @@ am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_mean.$(OBJEXT) \ @@ -544,6 +548,8 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/transport_model.inl \ ../../SU2_CFD/include/variable_structure.hpp \ ../../SU2_CFD/include/variable_structure.inl \ + ../../SU2_CFD/include/transfer_structure.hpp \ + ../../SU2_CFD/include/transfer_structure.inl \ ../../SU2_CFD/src/definition_structure.cpp \ ../../SU2_CFD/src/fluid_model.cpp \ ../../SU2_CFD/src/fluid_model_pig.cpp \ @@ -600,6 +606,7 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transfer_structure.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ ../../SU2_CFD/src/variable_adjoint_mean.cpp \ @@ -908,6 +915,9 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) @@ -1037,6 +1047,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_levelset.Po@am__quote@ @@ -1887,6 +1898,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o: ../../SU2_CFD/src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o `test -f '../../SU2_CFD/src/transfer_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transfer_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o `test -f '../../SU2_CFD/src/transfer_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transfer_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.obj: ../../SU2_CFD/src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.obj `if test -f '../../SU2_CFD/src/transfer_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transfer_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transfer_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.obj `if test -f '../../SU2_CFD/src/transfer_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transfer_structure.cpp'; fi` + ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o: ../../SU2_CFD/src/transport_model.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.o `test -f '../../SU2_CFD/src/transport_model.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transport_model.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index e6187446d52..dabbc35eff2 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -36,9 +36,9 @@ using namespace std; int main(int argc, char *argv[]) { bool StopCalc = false; - double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; unsigned long ExtIter = 0; - unsigned short iMesh, iZone, iSol, nZone, nDim; + unsigned short iMesh, iZone, jZone, iSol, nZone, nDim; char config_file_name[MAX_STRING_SIZE]; char runtime_file_name[MAX_STRING_SIZE]; ofstream ConvHist_file; @@ -74,6 +74,7 @@ int main(int argc, char *argv[]) { CVolumetricMovement **grid_movement = NULL; CFreeFormDefBox*** FFDBox = NULL; CInterpolator **interpolator_container= NULL; + CTransfer ***transfer_container = NULL; /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config file is specified, default.cfg is used) ---*/ @@ -102,6 +103,7 @@ int main(int argc, char *argv[]) { grid_movement = new CVolumetricMovement*[nZone]; FFDBox = new CFreeFormDefBox**[nZone]; interpolator_container= new CInterpolator*[nZone]; + transfer_container = new CTransfer**[nZone]; for (iZone = 0; iZone < nZone; iZone++) { solver_container[iZone] = NULL; @@ -113,6 +115,7 @@ int main(int argc, char *argv[]) { grid_movement[iZone] = NULL; FFDBox[iZone] = NULL; interpolator_container[iZone] = NULL; + transfer_container[iZone] = NULL; } /*--- Loop over all zones to initialize the various classes. In most @@ -260,15 +263,33 @@ int main(int argc, char *argv[]) { } +// if (!config_container[ZONE_0]->GetMatchingMesh()){ +// unsigned int Zones[2]; +// unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure +// Zones[0]=ZONE_0; +// Zones[1]=ZONE_1; +// if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) +// interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); +// if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) +// interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); +// } + if (!config_container[ZONE_0]->GetMatchingMesh()){ - unsigned int Zones[2]; - unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - Zones[0]=ZONE_0; - Zones[1]=ZONE_1; - if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) - interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); + + for (iZone = 0; iZone < nZone; iZone++){ + transfer_container[iZone] = new CTransfer*[nZone]; + } + for (iZone = 0; iZone < nZone; iZone++){ + for (jZone = 0; jZone < nZone; jZone++){ + transfer_container[iZone][jZone] = NULL; + } + } + + unsigned short nVarTransferFlow = 0, nVarTrasferStruct = 0; + + transfer_container[ZONE_0][ZONE_1] = new CTransfer_FlowTraction(nDim, nVarTransferFlow, config_container[ZONE_0]); + transfer_container[ZONE_1][ZONE_0] = new CTransfer_StructuralDisplacements(nDim, nVarTrasferStruct, config_container[ZONE_1]); + } /*--- For the time-spectral solver, set the grid node velocities. ---*/ @@ -311,7 +332,7 @@ int main(int argc, char *argv[]) { /*--- Set up a timer for performance benchmarking (preprocessing time is not included) ---*/ #ifndef HAVE_MPI - StartTime = double(clock())/double(CLOCKS_PER_SEC); + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #else StartTime = MPI_Wtime(); #endif @@ -360,7 +381,7 @@ int main(int argc, char *argv[]) { config_container[ZONE_1]->SetExtIter(ExtIter); FSI_BGS_Iteration(output, integration_container, geometry_container, solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, + surface_movement, grid_movement, FFDBox, transfer_container, iFluidIt, nFluidIt); } @@ -382,7 +403,7 @@ int main(int argc, char *argv[]) { wall clock time required. ---*/ #ifndef HAVE_MPI - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #else StopTime = MPI_Wtime(); #endif @@ -537,7 +558,7 @@ int main(int argc, char *argv[]) { wall clock time required. ---*/ #ifndef HAVE_MPI - StopTime = double(clock())/double(CLOCKS_PER_SEC); + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); #else StopTime = MPI_Wtime(); #endif diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index dbfa8ca7f60..fe9f4f26e67 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -34,9 +34,9 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long iFluidIt, unsigned long nFluidIt) { + CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh; unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); @@ -67,7 +67,7 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C FSI_Disp_Transfer(output, integration_container, geometry_container, solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); + surface_movement, grid_movement, FFDBox, transfer_container); /*-----------------------------------------------------------------*/ /*-------------------- Fluid subiteration -------------------------*/ @@ -87,7 +87,7 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C FSI_Load_Transfer(output, integration_container, geometry_container, solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, ExtIter); + surface_movement, grid_movement, FFDBox, transfer_container, ExtIter); /*-----------------------------------------------------------------*/ /*------------------ Structural subiteration ----------------------*/ @@ -303,7 +303,7 @@ void Flow_Update(COutput *output, CIntegration ***integration_container, CGeomet #endif - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; /*--- Only one zone allowed for the fluid as for now ---*/ @@ -388,7 +388,7 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr #endif /*--- Only one zone allowed for the structure as for now ---*/ - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; unsigned short iZone; unsigned int ZONE_STRUC = nFluidZone; @@ -426,7 +426,7 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - double Physical_dt, Physical_t; + su2double Physical_dt, Physical_t; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); @@ -482,8 +482,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG unsigned int ZONE_STRUC = nFluidZone; - double Physical_dt, Physical_t; - double loadIncrement; + su2double Physical_dt, Physical_t; + su2double loadIncrement; unsigned short iMesh, iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); @@ -502,8 +502,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG bool initial_calc_restart = (config_container[ZONE_STRUC]->GetExtIter() == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart - double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); - double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); + su2double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); + su2double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); bool statTime = (CurrentTime <= Static_Time); @@ -624,8 +624,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG } bool meetCriteria; - double Residual_UTOL, Residual_RTOL, Residual_ETOL; - double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; Criteria_UTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(0); Criteria_RTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(1); @@ -761,7 +761,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container){ #ifdef HAVE_MPI @@ -779,9 +780,14 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C geometry_container[ZONE_1], solver_container[ZONE_1]); } else{ - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); + + /*--- Transfer the information scattered (this is, each processor only receives the information it needs ---*/ + transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); } @@ -792,7 +798,7 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter){ + CTransfer*** transfer_container, unsigned long ExtIter){ #ifdef HAVE_MPI int rank; @@ -816,8 +822,12 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C } else{ - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); +// solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], +// config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + + transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); } From 6d2b09241d01126e2bcf1b1d46e013131c6b0bc8 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 11 Sep 2015 17:33:20 -0700 Subject: [PATCH 079/269] FSI-MPI: added global coord to DonorInfo + minor fixes --- Common/include/dual_grid_structure.hpp | 16 +- Common/include/dual_grid_structure.inl | 10 + Common/src/geometry_structure.cpp | 24 +- SU2_CFD/include/transfer_structure.hpp | 45 ++- SU2_CFD/src/transfer_structure.cpp | 407 +++++++++++++++++++++++- SU2_FSI/src/SU2_FSI.cpp | 2 +- SU2_FSI/src/iteration_structure_fsi.cpp | 6 +- 7 files changed, 494 insertions(+), 16 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 4d9c2f7a131..cf0090b0f99 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -875,7 +875,7 @@ class CVertex : public CDualGrid { su2double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */ su2double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */ su2double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */ - long PeriodicPoint[2]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ + long PeriodicPoint[3]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */ @@ -1032,6 +1032,14 @@ class CVertex : public CDualGrid { void SetDonorPoint(long val_periodicpoint, long val_processor); /*! + * \overload + * \param[in] val_periodicpoint - Value of periodic point of the vertex. + * \param[in] val_processor - Processor where the point belong. + * \param[in] val_globalindex - Global index of the donor point. + */ + void SetDonorPoint(long val_periodicpoint, long val_processor, long val_globalindex); + + /*! * \brief Get the value of the periodic point of a vertex. * \return Value of the periodic point of a vertex. */ @@ -1042,6 +1050,12 @@ class CVertex : public CDualGrid { * \return Value of the periodic point of a vertex. */ long GetDonorProcessor(void); + + /*! + * \brief Get the value of the global index for the donor point of a vertex. + * \return Value of the global index for the donor point of a vertex. + */ + long GetGlobalDonorPoint(void); /*! * \brief Get the value of the periodic point of a vertex, and its somain diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 9464d426f37..9583dc29759 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -311,8 +311,16 @@ inline short CVertex::GetRotation_Type(void) { return Rotation_Type; } inline void CVertex::SetDonorPoint(long val_periodicpoint, long val_processor) { PeriodicPoint[0] = val_periodicpoint; PeriodicPoint[1] = val_processor; + PeriodicPoint[2] = 0; } +inline void CVertex::SetDonorPoint(long val_periodicpoint, long val_processor, long val_globalindex) { + PeriodicPoint[0] = val_periodicpoint; + PeriodicPoint[1] = val_processor; + PeriodicPoint[2] = val_globalindex; +} + + inline void CVertex::SetDonorElem(long val_donorelem) { Donor_Elem = val_donorelem; } inline long CVertex::GetDonorElem(void) { return Donor_Elem; } @@ -321,6 +329,8 @@ inline long CVertex::GetDonorPoint(void) { return PeriodicPoint[0]; } inline long CVertex::GetDonorProcessor(void) { return PeriodicPoint[1]; } +inline long CVertex::GetGlobalDonorPoint(void) { return PeriodicPoint[2]; } + inline void CVertex::SetBasisFunction(unsigned short val_node, su2double val_basis) { Basis_Function[val_node] = val_basis; } inline su2double CVertex::GetBasisFunction(unsigned short val_node) { return Basis_Function[val_node]; } diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 34683babd8a..32b491da1f1 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -10029,7 +10029,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC #ifndef HAVE_MPI unsigned short iMarker, jMarker; - unsigned long iVertex, iPoint, jVertex, jPoint = 0, pPoint = 0; + unsigned long iVertex, iPoint, jVertex, jPoint = 0, pPoint = 0, pGlobalPoint = 0; su2double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; if (val_iZone == ZONE_0) cout << "Set zone boundary conditions (if any)." << endl; @@ -10047,11 +10047,11 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC Coord_j = geometry_donor->node[jPoint]->GetCoord(); if (nDim == 2) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); if (nDim == 3) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); - if (dist < mindist) { mindist = dist; pPoint = jPoint; } + if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = node[jPoint]->GetGlobalIndex();} } maxdist = max(maxdist, mindist); - vertex[iMarker][iVertex]->SetDonorPoint(pPoint, MASTER_NODE); + vertex[iMarker][iVertex]->SetDonorPoint(pPoint, MASTER_NODE, pGlobalPoint); } } @@ -10059,7 +10059,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC #else unsigned short iMarker, iDim; - unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint; + unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint, jGlobalPoint = 0, pGlobalPoint = 0; su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; int iProcessor, pProcessor = 0; unsigned long nLocalVertex_Zone = 0, nGlobalVertex_Zone = 0, MaxLocalVertex_Zone = 0; @@ -10090,15 +10090,19 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Zone*nDim]; unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_Zone]; + unsigned long *Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Zone]; su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Zone*nDim]; unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_Zone]; + unsigned long *Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Zone]; unsigned long nBuffer_Coord = MaxLocalVertex_Zone*nDim; unsigned long nBuffer_Point = MaxLocalVertex_Zone; + for (iVertex = 0; iVertex < MaxLocalVertex_Zone; iVertex++) { Buffer_Send_Point[iVertex] = 0; + Buffer_Send_GlobalPoint[iVertex] = 0; for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; } @@ -10110,6 +10114,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC iPoint = geometry_donor->vertex[iMarker][iVertex]->GetNode(); if (geometry_donor->node[iPoint]->GetDomain()) { Buffer_Send_Point[nLocalVertex_Zone] = iPoint; + Buffer_Send_GlobalPoint[nLocalVertex_Zone] = geometry_donor->node[iPoint]->GetGlobalIndex(); for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_Coord[nLocalVertex_Zone*nDim+iDim] = geometry_donor->node[iPoint]->GetCoord(iDim); nLocalVertex_Zone++; @@ -10118,7 +10123,8 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - + SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + /*--- Compute the closest point to a Near-Field boundary point ---*/ maxdist = 0.0; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { @@ -10134,7 +10140,8 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) for (jVertex = 0; jVertex < Buffer_Receive_nVertex[iProcessor]; jVertex++) { jPoint = Buffer_Receive_Point[iProcessor*MaxLocalVertex_Zone+jVertex]; - + jGlobalPoint = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Zone+jVertex]; + /*--- Compute the distance ---*/ dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_Zone+jVertex)*nDim+iDim]; @@ -10144,12 +10151,13 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC if (((dist < mindist) && (iProcessor != rank)) || ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { mindist = dist; pProcessor = iProcessor; pPoint = jPoint; + pGlobalPoint = jGlobalPoint; } } /*--- Store the value of the pair ---*/ maxdist = max(maxdist, mindist); - vertex[iMarker][iVertex]->SetDonorPoint(pPoint, pProcessor); + vertex[iMarker][iVertex]->SetDonorPoint(pPoint, pProcessor, pGlobalPoint); } @@ -10158,9 +10166,11 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC delete[] Buffer_Send_Coord; delete[] Buffer_Send_Point; + delete[] Buffer_Send_GlobalPoint; delete[] Buffer_Receive_Coord; delete[] Buffer_Receive_Point; + delete[] Buffer_Receive_GlobalPoint; delete[] Buffer_Send_nVertex; delete[] Buffer_Receive_nVertex; diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp index c56eb80701c..6b9a18575cf 100644 --- a/SU2_CFD/include/transfer_structure.hpp +++ b/SU2_CFD/include/transfer_structure.hpp @@ -86,7 +86,7 @@ class CTransfer { virtual ~CTransfer(void); /*! - * \brief Interpolate data and scatter it into different processors. + * \brief Interpolate data and scatter it into different processors, for matching meshes. * \param[in] donor_solution - Solution from the donor mesh. * \param[in] target_solution - Solution from the target mesh. * \param[in] donor_geometry - Geometry of the donor mesh. @@ -99,7 +99,7 @@ class CTransfer { CConfig *donor_config, CConfig *target_config); /*! - * \brief Interpolate data and broadcast it into all processors. + * \brief Interpolate data and broadcast it into all processors, for matching meshes. * \param[in] donor_solution - Solution from the donor mesh. * \param[in] target_solution - Solution from the target mesh. * \param[in] donor_geometry - Geometry of the donor mesh. @@ -112,7 +112,7 @@ class CTransfer { CConfig *donor_config, CConfig *target_config); /*! - * \brief Interpolate data, operate over it and broadcast it into all processors. + * \brief Interpolate data, operate over it and broadcast it into all processors, for matching meshes. * \param[in] donor_solution - Solution from the donor mesh. * \param[in] target_solution - Solution from the target mesh. * \param[in] donor_geometry - Geometry of the donor mesh. @@ -124,6 +124,45 @@ class CTransfer { CGeometry *donor_geometry, CGeometry *target_geometry, CConfig *donor_config, CConfig *target_config); + /*! + * \brief Interpolate data and scatter it into different processors, for nonmatching meshes. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void Scatter_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Interpolate data and broadcast it into all processors, for nonmatching meshes. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Interpolate data, operate over it and broadcast it into all processors, for nonmatching meshes. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + /*! * \brief A virtual member. */ diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 6827c9147b6..70b309121c1 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -89,7 +89,7 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); - + unsigned long Check_Point_Global; unsigned long Point_Donor, Point_Target; su2double *Normal_Donor, *Normal_Target; @@ -442,6 +442,391 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve CConfig *donor_config, CConfig *target_config){ + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side + unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + + unsigned short iVar, jDim; + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + unsigned long Check_Point_Global; + unsigned long Point_Donor, Point_Target; + su2double *Normal_Donor, *Normal_Target; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + + unsigned long iLocalVertex = 0; + unsigned long nLocalVertexDonor = 0, nLocalVertexTarget= 0; + unsigned long iVertexDonor = 0, iVertexTarget; + unsigned long nPoint_Total = 0; + + unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; + unsigned long TotalVertexDonor = 0, TotalVertexTarget = 0; + + unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + + unsigned long Processor_Donor, Processor_Target; + + int iProcessor, nProcessor = 0; + unsigned long iVariable; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- This WILL NOT include halo nodes ---*/ + nLocalVertexDonor = 0; + for (iLocalVertex = 0; iLocalVertex < donor_geometry->GetnVertex(iMarkerDonor); iLocalVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iLocalVertex]->GetNode(); + if (donor_geometry->node[Point_Donor]->GetDomain()){ + nLocalVertexDonor++; + } + } + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- We have identified the local index of the Target marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Target on each processor ---*/ + /*--- This are the number of points that will be received at this particular processor ---*/ + /*--- This WILL NOT include halo nodes ---*/ + nLocalVertexTarget = 0; + for (iLocalVertex = 0; iLocalVertex < donor_geometry->GetnVertex(iMarkerTarget); iLocalVertex++){ + Point_Target = target_geometry->vertex[iMarkerTarget][iLocalVertex]->GetNode(); + if (target_geometry->node[Point_Target]->GetDomain()){ + nLocalVertexTarget++; + } + } + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexTarget = 0; + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + Buffer_Send_nVertexTarget[0] = nLocalVertexTarget; // Retrieve total number of vertices on Target marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexTarget = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side +#ifdef HAVE_MPI + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexTarget, &MaxLocalVertexTarget, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexTarget, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexTarget, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); +#else + MaxLocalVertexDonor = nLocalVertexDonor; + MaxLocalVertexTarget = nLocalVertexTarget; + + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + Buffer_Recv_nVertexTarget[0] = nLocalVertexTarget; + +#endif + + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_TargetVariables = MaxLocalVertexTarget * nVar; + + /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ + /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexDonor; + nBuffer_TargetIndices = MaxLocalVertexTarget; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = NULL; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the variables in the target mesh---*/ + su2double *Buffer_Send_TargetVariables = NULL; + su2double *Buffer_Recv_TargetVariables = new su2double[nBuffer_TargetVariables]; + + /*--- Buffers to send and receive the target indices ---*/ + long *Buffer_Send_TargetIndices = NULL; + long *Buffer_Recv_TargetIndices = new long[nBuffer_TargetIndices]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_TargetVariables = new su2double[size*nBuffer_TargetVariables]; + Buffer_Send_TargetIndices = new long[size*nBuffer_TargetIndices]; + } + + /*--- On the fluid side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Donor >= 0){ + + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + Point_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorPoint(); + +// Check_Point_Global = donor_geometry->vertex[Marker_Donor][iVertex]->GetGlobalDonorPoint(); +// +// cout << Point_Target << " has the global index " << Check_Point_Global << endl; + + Processor_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorProcessor(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Target; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Target; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + } + + } + } + +#ifdef HAVE_MPI + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + +#else + for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; +#endif + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Target = NULL; + long iProcessor_Donor = 0, iIndex_Donor = 0; + long iProcessor_Target = 0, iPoint_Target = 0, iIndex_Target = 0; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + cout << " Rank " << iProcessor << " has " << Buffer_Recv_nVertexDonor[iProcessor] << " nodes for tag " << iMarkerInt << endl; + } +// +// /*--- We set the counter to 0 ---*/ +// Counter_Processor_Target = new long[nProcessor]; +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// Counter_Processor_Target[iProcessor] = 0; +// } +// +// /*--- First we initialize the index vector to -1 ---*/ +// /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ +// for (iVertex = 0; iVertex < nProcessor*nBuffer_TargetIndices; iVertex++) +// Buffer_Send_TargetIndices[iVertex] = -2; +// +// /*--- As of now we do the loop over the flow points ---*/ +// /*--- The number of points for flow and structure does not necessarily have to match ---*/ +// /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ +// /*--- nFlow < nStruct available; this is due to halo nodes ---*/ +// +// /*--- For every processor from which we have received information ---*/ +// /*--- (This is, for every processor on the structural side) ---*/ +// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ +// +// /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ +// iProcessor_Donor = iProcessor*nBuffer_DonorVariables; +// /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ +// iIndex_Donor = iProcessor*nBuffer_DonorIndices; +// +// /*--- For every vertex in the information retreived from iProcessor ---*/ +// for (iVertex = 0; iVertex < Buffer_Recv_nVertexDonor[iProcessor]; iVertex++) { +// +// /*--- The processor and index for the flow are: ---*/ +// Processor_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; +// Point_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; +// +// /*--- Load the buffer at the appropriate position ---*/ +// /*--- This is determined on the fluid side by: +// *--- Processor_Target*nBuffer_StructTraction -> Initial position of the processor array (fluid side) +// *--- + +// *--- Counter_Processor_Struct*nVar -> Initial position of the nVar array for the particular point on the fluid side +// *--- + +// *--- iVar -> Position within the nVar array that corresponds to a point +// *--- +// *--- While on the structural side is: +// *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) +// *--- + +// *--- iVertex*nVar -> Initial position of the nVar array for the particular point on the structural side +// */ +// +// /*--- We check that we are not setting the value for a halo node ---*/ +// if (Point_Target != -1){ +// iProcessor_Target = Processor_Target*nBuffer_TargetVariables; +// iIndex_Target = Processor_Target*nBuffer_TargetIndices; +// iPoint_Target = Counter_Processor_Target[Processor_Target]*nVar; +// +// for (iVar = 0; iVar < nVar; iVar++) +// Buffer_Send_TargetVariables[iProcessor_Target + iPoint_Target + iVar] = Buffer_Recv_DonorVariables[iProcessor_Donor + iVertex*nVar + iVar]; +// +// /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ +// Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target]] = Point_Target; +// +// Counter_Processor_Target[Processor_Target]++; +// } +// +// } +// +// } + + } + +//#ifdef HAVE_MPI +// /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ +// SU2_MPI::Scatter(Buffer_Send_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, Buffer_Recv_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); +// SU2_MPI::Scatter(Buffer_Send_TargetIndices, nBuffer_TargetIndices, MPI_LONG, Buffer_Recv_TargetIndices, nBuffer_TargetIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); +//#else +// for (iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) +// Buffer_Recv_TargetVariables[iVariable] = Buffer_Send_TargetVariables[iVariable]; +// for (iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) +// Buffer_Recv_TargetIndices[iVariable] = Buffer_Send_TargetIndices[iVariable]; +//#endif +// +// long indexPoint_iVertex, Point_Target_Check; +// +// /*--- For the target marker we are studying ---*/ +// if (Marker_Target >= 0){ +// +// /*--- We have identified the local index of the Structural marker ---*/ +// /*--- We loop over all the vertices in that marker and in that particular processor ---*/ +// +// for (iVertex = 0; iVertex < nLocalVertexTarget; iVertex++){ +// +// Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); +// +// if (target_geometry->node[Point_Target]->GetDomain()){ +// /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ +// indexPoint_iVertex = std::distance(Buffer_Recv_TargetIndices, std::find(Buffer_Recv_TargetIndices, Buffer_Recv_TargetIndices + MaxLocalVertexTarget, Point_Target)); +// +// Point_Target_Check = Buffer_Recv_TargetIndices[indexPoint_iVertex]; +// +// if (Point_Target_Check < 0) { +// cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; +// exit(EXIT_FAILURE); +// } +// +// for (iVar = 0; iVar < nVar; iVar++) +// Target_Variable[iVar] = Buffer_Recv_TargetVariables[indexPoint_iVertex*nVar+iVar]; +// +// SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); +// +// } +// +// } +// +// } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_TargetVariables; + delete [] Buffer_Recv_TargetIndices; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexDonor; + delete [] Buffer_Recv_nVertexTarget; + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_TargetVariables; + delete [] Buffer_Send_TargetIndices; + delete [] Counter_Processor_Target; + } + + } + + + + } void CTransfer::Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, @@ -449,6 +834,26 @@ void CTransfer::Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolve CConfig *donor_config, CConfig *target_config){ +} + +void CTransfer::Scatter_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + +} + +void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + +} + +void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index dabbc35eff2..06d0571de65 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -285,7 +285,7 @@ int main(int argc, char *argv[]) { } } - unsigned short nVarTransferFlow = 0, nVarTrasferStruct = 0; + unsigned short nVarTransferFlow = 0, nVarTrasferStruct = 2; transfer_container[ZONE_0][ZONE_1] = new CTransfer_FlowTraction(nDim, nVarTransferFlow, config_container[ZONE_0]); transfer_container[ZONE_1][ZONE_0] = new CTransfer_StructuralDisplacements(nDim, nVarTrasferStruct, config_container[ZONE_1]); diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index fe9f4f26e67..54901b222c3 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -782,7 +782,7 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C else{ /*--- Transfer the information scattered (this is, each processor only receives the information it needs ---*/ - transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], config_container[ZONE_1], config_container[ZONE_0]); @@ -813,7 +813,7 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C /*--- FEA equations -- Necessary as the SetFEA_Load routine is as of now contained in the structural solver ---*/ - config_container[ZONE_1]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + config_container[ZONE_1]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); if (MatchingMesh){ @@ -825,7 +825,7 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C // solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], // config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); - transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], config_container[ZONE_0], config_container[ZONE_1]); From 7238b7141734fa384cf96bd37edc2952422143fd Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 14 Sep 2015 14:24:18 -0700 Subject: [PATCH 080/269] FSI-MPI: added method for broadcasting data transfer --- SU2_CFD/src/transfer_structure.cpp | 304 ++++++++++------------------- 1 file changed, 108 insertions(+), 196 deletions(-) diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 70b309121c1..88262bbf336 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -456,7 +456,7 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); - unsigned long Check_Point_Global; + unsigned long Point_Donor_Global, Donor_Global_Index; unsigned long Point_Donor, Point_Target; su2double *Normal_Donor, *Normal_Target; @@ -469,16 +469,18 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve #endif unsigned long iLocalVertex = 0; - unsigned long nLocalVertexDonor = 0, nLocalVertexTarget= 0; - unsigned long iVertexDonor = 0, iVertexTarget; + unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; + unsigned long iVertexDonor = 0, iVertexTarget = 0; unsigned long nPoint_Total = 0; unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; - unsigned long TotalVertexDonor = 0, TotalVertexTarget = 0; + unsigned long TotalVertexDonor = 0; unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; + unsigned long Processor_Donor, Processor_Target; int iProcessor, nProcessor = 0; @@ -502,6 +504,7 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + unsigned long Buffer_Send_nVertexDonorOwned[1], *Buffer_Recv_nVertexDonorOwned = NULL; unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; /*--- The donor and target markers are tagged with the same index. @@ -517,14 +520,16 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve /*--- We have identified the local index of the Donor marker ---*/ /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ /*--- This are the number of points that will be sent from this particular processor ---*/ - /*--- This WILL NOT include halo nodes ---*/ - nLocalVertexDonor = 0; - for (iLocalVertex = 0; iLocalVertex < donor_geometry->GetnVertex(iMarkerDonor); iLocalVertex++){ - Point_Donor = donor_geometry->vertex[iMarkerDonor][iLocalVertex]->GetNode(); + /*--- nLocalVertexDonorOwned WILL NOT include halo nodes ---*/ + /*--- nLocalVertexDonor WILL include halo nodes ---*/ + nLocalVertexDonorOwned = 0; + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); if (donor_geometry->node[Point_Donor]->GetDomain()){ - nLocalVertexDonor++; + nLocalVertexDonorOwned++; } } + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); /*--- Store the identifier for the structural marker ---*/ Marker_Donor = iMarkerDonor; /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ @@ -533,26 +538,16 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve else { /*--- If the tag hasn't matched any tag within the donor markers ---*/ nLocalVertexDonor = 0; + nLocalVertexDonorOwned = 0; Marker_Donor = -1; } } - /*--- On the target side ---*/ + /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the fluid points ---*/ for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ - /*--- We have identified the local index of the Target marker ---*/ - /*--- Now we are going to store the number of local points that belong to Marker_Target on each processor ---*/ - /*--- This are the number of points that will be received at this particular processor ---*/ - /*--- This WILL NOT include halo nodes ---*/ - nLocalVertexTarget = 0; - for (iLocalVertex = 0; iLocalVertex < donor_geometry->GetnVertex(iMarkerTarget); iLocalVertex++){ - Point_Target = target_geometry->vertex[iMarkerTarget][iLocalVertex]->GetNode(); - if (target_geometry->node[Point_Target]->GetDomain()){ - nLocalVertexTarget++; - } - } /*--- Store the identifier for the fluid marker ---*/ Marker_Target = iMarkerTarget; /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ @@ -560,43 +555,34 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve } else { /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - nLocalVertexTarget = 0; Marker_Target = -1; } } Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker - Buffer_Send_nVertexTarget[0] = nLocalVertexTarget; // Retrieve total number of vertices on Target marker if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - if (rank == MASTER_NODE) Buffer_Recv_nVertexTarget = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side + #ifdef HAVE_MPI - /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ - SU2_MPI::Allreduce(&nLocalVertexTarget, &MaxLocalVertexTarget, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - + /*--- We receive TotalVertexDonorOwned as the total (real) number of vertices in one single interface marker on the donor side ---*/ + SU2_MPI::Allreduce(&nLocalVertexDonorOwned, &TotalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexTarget, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexTarget, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - MaxLocalVertexDonor = nLocalVertexDonor; - MaxLocalVertexTarget = nLocalVertexTarget; - + MaxLocalVertexDonor = nLocalVertexDonor; + TotalVertexDonor = nLocalVertexDonorOwned; Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; - Buffer_Recv_nVertexTarget[0] = nLocalVertexTarget; - #endif - /*--- We will be gathering the structural coordinates into the master node ---*/ - /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + /*--- We will be gathering the donor information into the master node ---*/ nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; - nBuffer_TargetVariables = MaxLocalVertexTarget * nVar; + nBuffer_DonorIndices = MaxLocalVertexDonor; - /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ - /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ - nBuffer_DonorIndices = 2 * MaxLocalVertexDonor; - nBuffer_TargetIndices = MaxLocalVertexTarget; + /*--- Then we will broadcasting it to all the processors so they can retrieve the info they need ---*/ + /*--- We only broadcast those nodes that we need ---*/ + nBuffer_BcastVariables = TotalVertexDonor * nVar; + nBuffer_BcastIndices = TotalVertexDonor; /*--- Send and Recv buffers ---*/ @@ -608,27 +594,18 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; long *Buffer_Recv_DonorIndices = NULL; - /*--- Buffers to send and receive the variables in the target mesh---*/ - su2double *Buffer_Send_TargetVariables = NULL; - su2double *Buffer_Recv_TargetVariables = new su2double[nBuffer_TargetVariables]; - - /*--- Buffers to send and receive the target indices ---*/ - long *Buffer_Send_TargetIndices = NULL; - long *Buffer_Recv_TargetIndices = new long[nBuffer_TargetIndices]; + /*--- Buffers to broadcast the variables and the indices ---*/ + su2double *Buffer_Bcast_Variables = new su2double[nBuffer_BcastVariables]; + long *Buffer_Bcast_Indices = new long[nBuffer_BcastIndices]; /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ if (rank == MASTER_NODE) { Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - Buffer_Send_TargetVariables = new su2double[size*nBuffer_TargetVariables]; - Buffer_Send_TargetIndices = new long[size*nBuffer_TargetIndices]; } - /*--- On the fluid side ---*/ - - /*--- If this processor owns the marker we are looping at on the structural side ---*/ - + /*--- On the donor side ---*/ /*--- First we initialize all of the indices and processors to -1 ---*/ /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) @@ -636,42 +613,32 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve if (Marker_Donor >= 0){ - /*--- We have identified the local index of the FEA marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ - Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); - - Point_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorPoint(); - -// Check_Point_Global = donor_geometry->vertex[Marker_Donor][iVertex]->GetGlobalDonorPoint(); -// -// cout << Point_Target << " has the global index " << Check_Point_Global << endl; - - Processor_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorProcessor(); + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); for (iVar = 0; iVar < nVar; iVar++){ Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; } + /*--- If this processor owns the node ---*/ if (donor_geometry->node[Point_Donor]->GetDomain()){ - Buffer_Send_DonorIndices[2*iVertex] = Point_Target; - Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Target; + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); + Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; } else{ /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[2*iVertex] = -1; - Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + Buffer_Send_DonorIndices[iVertex] = -1; } } + } #ifdef HAVE_MPI - /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); @@ -682,153 +649,98 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif - /*--- Counter to determine where in the array we have to set the information ---*/ - long *Counter_Processor_Target = NULL; - long iProcessor_Donor = 0, iIndex_Donor = 0; - long iProcessor_Target = 0, iPoint_Target = 0, iIndex_Target = 0; - /*--- Now we pack the information to send it over to the different processors ---*/ if (rank == MASTER_NODE){ - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - cout << " Rank " << iProcessor << " has " << Buffer_Recv_nVertexDonor[iProcessor] << " nodes for tag " << iMarkerInt << endl; + /*--- For all the data we have received ---*/ + /*--- We initialize a counter to determine the position in the broadcast vector ---*/ + iLocalVertex = 0; + + for (iVertex = 0; iVertex < nProcessor*nBuffer_DonorIndices; iVertex++){ + + /*--- If the donor index is not -1 (this is, if the node is not originally a halo node) ---*/ + if (Buffer_Recv_DonorIndices[iVertex] != -1){ + + /*--- We set the donor index ---*/ + Buffer_Bcast_Indices[iLocalVertex] = Buffer_Recv_DonorIndices[iVertex]; + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Bcast_Variables[iLocalVertex*nVar+iVar] = Buffer_Recv_DonorVariables[iVertex*nVar + iVar]; + } + + iLocalVertex++; + + } + + if (iLocalVertex == TotalVertexDonor) break; + } -// -// /*--- We set the counter to 0 ---*/ -// Counter_Processor_Target = new long[nProcessor]; -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// Counter_Processor_Target[iProcessor] = 0; -// } -// -// /*--- First we initialize the index vector to -1 ---*/ -// /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ -// for (iVertex = 0; iVertex < nProcessor*nBuffer_TargetIndices; iVertex++) -// Buffer_Send_TargetIndices[iVertex] = -2; -// -// /*--- As of now we do the loop over the flow points ---*/ -// /*--- The number of points for flow and structure does not necessarily have to match ---*/ -// /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ -// /*--- nFlow < nStruct available; this is due to halo nodes ---*/ -// -// /*--- For every processor from which we have received information ---*/ -// /*--- (This is, for every processor on the structural side) ---*/ -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// -// /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ -// iProcessor_Donor = iProcessor*nBuffer_DonorVariables; -// /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ -// iIndex_Donor = iProcessor*nBuffer_DonorIndices; -// -// /*--- For every vertex in the information retreived from iProcessor ---*/ -// for (iVertex = 0; iVertex < Buffer_Recv_nVertexDonor[iProcessor]; iVertex++) { -// -// /*--- The processor and index for the flow are: ---*/ -// Processor_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; -// Point_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; -// -// /*--- Load the buffer at the appropriate position ---*/ -// /*--- This is determined on the fluid side by: -// *--- Processor_Target*nBuffer_StructTraction -> Initial position of the processor array (fluid side) -// *--- + -// *--- Counter_Processor_Struct*nVar -> Initial position of the nVar array for the particular point on the fluid side -// *--- + -// *--- iVar -> Position within the nVar array that corresponds to a point -// *--- -// *--- While on the structural side is: -// *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) -// *--- + -// *--- iVertex*nVar -> Initial position of the nVar array for the particular point on the structural side -// */ -// -// /*--- We check that we are not setting the value for a halo node ---*/ -// if (Point_Target != -1){ -// iProcessor_Target = Processor_Target*nBuffer_TargetVariables; -// iIndex_Target = Processor_Target*nBuffer_TargetIndices; -// iPoint_Target = Counter_Processor_Target[Processor_Target]*nVar; -// -// for (iVar = 0; iVar < nVar; iVar++) -// Buffer_Send_TargetVariables[iProcessor_Target + iPoint_Target + iVar] = Buffer_Recv_DonorVariables[iProcessor_Donor + iVertex*nVar + iVar]; -// -// /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ -// Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target]] = Point_Target; -// -// Counter_Processor_Target[Processor_Target]++; -// } -// -// } -// -// } } -//#ifdef HAVE_MPI -// /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ -// SU2_MPI::Scatter(Buffer_Send_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, Buffer_Recv_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); -// SU2_MPI::Scatter(Buffer_Send_TargetIndices, nBuffer_TargetIndices, MPI_LONG, Buffer_Recv_TargetIndices, nBuffer_TargetIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); -//#else -// for (iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) -// Buffer_Recv_TargetVariables[iVariable] = Buffer_Send_TargetVariables[iVariable]; -// for (iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) -// Buffer_Recv_TargetIndices[iVariable] = Buffer_Send_TargetIndices[iVariable]; -//#endif -// -// long indexPoint_iVertex, Point_Target_Check; -// -// /*--- For the target marker we are studying ---*/ -// if (Marker_Target >= 0){ -// -// /*--- We have identified the local index of the Structural marker ---*/ -// /*--- We loop over all the vertices in that marker and in that particular processor ---*/ -// -// for (iVertex = 0; iVertex < nLocalVertexTarget; iVertex++){ -// -// Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); -// -// if (target_geometry->node[Point_Target]->GetDomain()){ -// /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ -// indexPoint_iVertex = std::distance(Buffer_Recv_TargetIndices, std::find(Buffer_Recv_TargetIndices, Buffer_Recv_TargetIndices + MaxLocalVertexTarget, Point_Target)); -// -// Point_Target_Check = Buffer_Recv_TargetIndices[indexPoint_iVertex]; -// -// if (Point_Target_Check < 0) { -// cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; -// exit(EXIT_FAILURE); -// } -// -// for (iVar = 0; iVar < nVar; iVar++) -// Target_Variable[iVar] = Buffer_Recv_TargetVariables[indexPoint_iVertex*nVar+iVar]; -// -// SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); -// -// } -// -// } -// -// } +#ifdef HAVE_MPI + SU2_MPI::Bcast(Buffer_Bcast_Variables, nBuffer_BcastVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(Buffer_Bcast_Indices, nBuffer_BcastIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); +#endif + + long indexPoint_iVertex, Point_Target_Check; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + if (target_geometry->node[Point_Target]->GetDomain()){ + + /*--- Find the global index of the donor point for Point_Target ---*/ + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); + + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ + indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); + + Point_Target_Check = Buffer_Bcast_Indices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] = Buffer_Bcast_Variables[indexPoint_iVertex*nVar+iVar]; + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } delete [] Buffer_Send_DonorVariables; delete [] Buffer_Send_DonorIndices; - delete [] Buffer_Recv_TargetVariables; - delete [] Buffer_Recv_TargetIndices; + delete [] Buffer_Bcast_Variables; + delete [] Buffer_Bcast_Indices; if (rank == MASTER_NODE) { delete [] Buffer_Recv_nVertexDonor; delete [] Buffer_Recv_nVertexTarget; + delete [] Buffer_Recv_nVertexDonorOwned; delete [] Buffer_Recv_DonorVariables; delete [] Buffer_Recv_DonorIndices; - delete [] Buffer_Send_TargetVariables; - delete [] Buffer_Send_TargetIndices; - delete [] Counter_Processor_Target; } - } - - + } } + void CTransfer::Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, CGeometry *donor_geometry, CGeometry *target_geometry, CConfig *donor_config, CConfig *target_config){ From f36abcc9958cd470108d3556c5cda108b4d1bbe6 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 14 Sep 2015 18:30:52 -0700 Subject: [PATCH 081/269] FSI: generalize multizone structure - add Interface_Preprocessing --- Common/include/config_structure.hpp | 9 + Common/include/config_structure.inl | 2 + Common/include/option_structure.hpp | 15 + Common/src/config_structure.cpp | 3 + Common/src/geometry_structure.cpp | 4 +- SU2_CFD/include/SU2_CFD.hpp | 1 + SU2_CFD/include/definition_structure.hpp | 10 + SU2_CFD/include/iteration_structure.hpp | 1 + SU2_CFD/include/transfer_structure.hpp | 2 +- SU2_CFD/obj/Makefile.am | 4 + SU2_CFD/obj/Makefile.in | 127 +++++++- SU2_CFD/src/definition_structure.cpp | 78 +++++ SU2_CFD/src/transfer_physics.cpp | 260 +++++++++++++++ SU2_CFD/src/transfer_structure.cpp | 398 ++++++++++++++--------- SU2_FSI/obj/Makefile.am | 1 + SU2_FSI/obj/Makefile.in | 21 ++ SU2_FSI/src/SU2_FSI.cpp | 65 ++-- SU2_FSI/src/iteration_structure_fsi.cpp | 171 ++++++++-- 18 files changed, 948 insertions(+), 224 deletions(-) create mode 100644 SU2_CFD/src/transfer_physics.cpp diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index a4277bffba8..76656926b9c 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -383,6 +383,7 @@ class CConfig { Kind_Solver_Fluid_FSI, /*!< \brief Kind of solver for the fluid in FSI applications. */ Kind_Solver_Struc_FSI, /*!< \brief Kind of solver for the structure in FSI applications. */ Kind_BGS_RelaxMethod, /*!< \brief Kind of relaxation method for Block Gauss Seidel method in FSI problems. */ + Kind_TransferMethod, /*!< \brief Iterative scheme for nonlinear structural analysis. */ SpatialOrder, /*!< \brief Order of the spatial numerical integration.*/ SpatialOrder_Flow, /*!< \brief Order of the spatial numerical integration.*/ SpatialOrder_Turb, /*!< \brief Order of the spatial numerical integration.*/ @@ -3169,6 +3170,14 @@ class CConfig { */ unsigned short GetKind_SpaceIteScheme_FEA(void); + /*! + * \brief Get the kind of transfer method we want to use for multiphysics problems + * \note This value is obtained from the config file, and it is constant + * during the computation. + * \return Kind of transfer method for multiphysics problems + */ + unsigned short GetKind_TransferMethod(void); + /*! * \brief Get the kind of convective numerical scheme for the flow * equations (centered or upwind). diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 9f3c1a378df..f2a5701879b 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -706,6 +706,8 @@ inline unsigned short CConfig::GetKind_TimeIntScheme_FEA(void) { return Kind_Tim inline unsigned short CConfig::GetKind_SpaceIteScheme_FEA(void) { return Kind_SpaceIteScheme_FEA; } +inline unsigned short CConfig::GetKind_TransferMethod(void) { return Kind_TransferMethod; } + inline unsigned short CConfig::GetKind_ConvNumScheme_Flow(void) { return Kind_ConvNumScheme_Flow; } inline unsigned short CConfig::GetKind_ConvNumScheme_TNE2(void) { return Kind_ConvNumScheme_TNE2; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 313d3c404c0..181035ecc17 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -735,6 +735,21 @@ static const map Space_Ite_Map_FEA = CCreateMap Transfer_Method_Map = CCreateMap +("BROADCAST_DATA", BROADCAST_DATA) +("SCATTER_DATA", SCATTER_DATA) +("ALLGATHER_DATA", ALLGATHER_DATA) +("LEGACY_METHOD", LEGACY_METHOD); + /*! * \brief types of schemes to compute the flow gradient */ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 976a860002a..8bb1c7b29f9 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1243,6 +1243,9 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Order of the predictor */ addUnsignedShortOption("PREDICTOR_ORDER", Pred_Order, 0); + /* DESCRIPTION: Transfer method used for multiphysics problems */ + addEnumOption("MULTIPHYSICS_TRANSFER_METHOD", Kind_TransferMethod, Transfer_Method_Map, BROADCAST_DATA); + /* CONFIG_CATEGORY: FSI solver */ /*--- Options related to the FSI solver ---*/ diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 32b491da1f1..cf2fccbe51e 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -10032,7 +10032,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC unsigned long iVertex, iPoint, jVertex, jPoint = 0, pPoint = 0, pGlobalPoint = 0; su2double *Coord_i, *Coord_j, dist = 0.0, mindist, maxdist; - if (val_iZone == ZONE_0) cout << "Set zone boundary conditions (if any)." << endl; +// if (val_iZone == ZONE_0) cout << "Set zone boundary conditions (if any)." << endl; maxdist = 0.0; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { @@ -10071,7 +10071,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC unsigned long *Buffer_Send_nVertex = new unsigned long [1]; unsigned long *Buffer_Receive_nVertex = new unsigned long [nProcessor]; - if (val_iZone == ZONE_0) cout << "Set zone boundary conditions (if any)." << endl; +// if (val_iZone == ZONE_0 && rank == MASTER_NODE) cout << "Set zone boundary conditions (if any)." << endl; nLocalVertex_Zone = 0; for (iMarker = 0; iMarker < config_donor->GetnMarker_All(); iMarker++) diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index f3c1c42cd5a..0eb501f8a91 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -43,5 +43,6 @@ #include "../../Common/include/config_structure.hpp" #include "../include/definition_structure.hpp" #include "../include/iteration_structure.hpp" +#include "../include/transfer_structure.hpp" using namespace std; diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 7910252287a..e3eaaf38055 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -38,6 +38,7 @@ #include "integration_structure.hpp" #include "output_structure.hpp" #include "numerics_structure.hpp" +#include "transfer_structure.hpp" #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/config_structure.hpp" @@ -96,3 +97,12 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, CSolver ***solver_ * \param[in] val_nZone - Total number of zones. */ void Geometrical_Preprocessing(CGeometry ***geometry, CConfig **config, unsigned short val_nZone); + +/*! + * \brief Do the interface preprocessing. + * \author R. Sanchez, H. Kline + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] val_nZone - Total number of zones. + */ +void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geometry_container, CConfig **config_container, unsigned short nZone, unsigned short nDim); diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index be70bba01a9..4ebacdfd4dd 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -38,6 +38,7 @@ #include "integration_structure.hpp" #include "output_structure.hpp" #include "numerics_structure.hpp" +#include "transfer_structure.hpp" #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" #include "../../Common/include/config_structure.hpp" diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp index 6b9a18575cf..b14f407e758 100644 --- a/SU2_CFD/include/transfer_structure.hpp +++ b/SU2_CFD/include/transfer_structure.hpp @@ -1,7 +1,7 @@ /*! * \file transfer_structure.hpp * \brief Headers of the transfer structure - * The subroutines and functions are in the transfer_structure.cpp file. + * The subroutines and functions are in the transfer_structure.cpp and transfer_physics.cpp files. * \author R. Sanchez * \version 4.0.0 "Cardinal" * diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index 3f5ca4e66d0..135641dc652 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -73,6 +73,8 @@ su2_cfd_sources = \ ../include/transport_model.inl \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ + ../include/transfer_structure.hpp \ + ../include/transfer_structure.inl \ ../src/definition_structure.cpp \ ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp \ @@ -129,6 +131,8 @@ su2_cfd_sources = \ ../src/solver_fem_elasticity.cpp \ ../src/solver_structure.cpp \ ../src/solver_template.cpp \ + ../src/transfer_physics.cpp \ + ../src/transfer_structure.cpp \ ../src/SU2_CFD.cpp \ ../src/transport_model.cpp \ ../src/variable_adjoint_levelset.cpp \ diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 8549647835b..513e2b05df1 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -154,6 +154,8 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../include/transport_model.hpp ../include/transport_model.inl \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ + ../include/transfer_structure.hpp \ + ../include/transfer_structure.inl \ ../src/definition_structure.cpp ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp ../src/fluid_model_pvdw.cpp \ ../src/fluid_model_ppr.cpp ../src/gauss_structure.cpp \ @@ -197,7 +199,8 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/solver_linearized_mean.cpp \ ../src/solver_linearized_turbulent.cpp \ ../src/solver_fem_elasticity.cpp ../src/solver_structure.cpp \ - ../src/solver_template.cpp ../src/SU2_CFD.cpp \ + ../src/solver_template.cpp ../src/transfer_physics.cpp \ + ../src/transfer_structure.cpp ../src/SU2_CFD.cpp \ ../src/transport_model.cpp \ ../src/variable_adjoint_levelset.cpp \ ../src/variable_adjoint_mean.cpp \ @@ -273,6 +276,8 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_template.$(OBJEXT) \ + ../src/___bin_SU2_CFD-transfer_physics.$(OBJEXT) \ + ../src/___bin_SU2_CFD-transfer_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-SU2_CFD.$(OBJEXT) \ ../src/___bin_SU2_CFD-transport_model.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT) \ @@ -321,6 +326,8 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../include/transport_model.hpp ../include/transport_model.inl \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ + ../include/transfer_structure.hpp \ + ../include/transfer_structure.inl \ ../src/definition_structure.cpp ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp ../src/fluid_model_pvdw.cpp \ ../src/fluid_model_ppr.cpp ../src/gauss_structure.cpp \ @@ -364,7 +371,8 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/solver_linearized_mean.cpp \ ../src/solver_linearized_turbulent.cpp \ ../src/solver_fem_elasticity.cpp ../src/solver_structure.cpp \ - ../src/solver_template.cpp ../src/SU2_CFD.cpp \ + ../src/solver_template.cpp ../src/transfer_physics.cpp \ + ../src/transfer_structure.cpp ../src/SU2_CFD.cpp \ ../src/transport_model.cpp \ ../src/variable_adjoint_levelset.cpp \ ../src/variable_adjoint_mean.cpp \ @@ -439,6 +447,8 @@ am__objects_2 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_template.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-transport_model.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_levelset.$(OBJEXT) \ @@ -489,6 +499,8 @@ am_____bin_SU2_CFD_REVERSE_SOURCES_DIST = \ ../include/transport_model.hpp ../include/transport_model.inl \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ + ../include/transfer_structure.hpp \ + ../include/transfer_structure.inl \ ../src/definition_structure.cpp ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp ../src/fluid_model_pvdw.cpp \ ../src/fluid_model_ppr.cpp ../src/gauss_structure.cpp \ @@ -532,7 +544,8 @@ am_____bin_SU2_CFD_REVERSE_SOURCES_DIST = \ ../src/solver_linearized_mean.cpp \ ../src/solver_linearized_turbulent.cpp \ ../src/solver_fem_elasticity.cpp ../src/solver_structure.cpp \ - ../src/solver_template.cpp ../src/SU2_CFD.cpp \ + ../src/solver_template.cpp ../src/transfer_physics.cpp \ + ../src/transfer_structure.cpp ../src/SU2_CFD.cpp \ ../src/transport_model.cpp \ ../src/variable_adjoint_levelset.cpp \ ../src/variable_adjoint_mean.cpp \ @@ -608,6 +621,8 @@ am__objects_3 = \ ../src/___bin_SU2_CFD_REVERSE-solver_fem_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_REVERSE-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_REVERSE-solver_template.$(OBJEXT) \ + ../src/___bin_SU2_CFD_REVERSE-transfer_physics.$(OBJEXT) \ + ../src/___bin_SU2_CFD_REVERSE-transfer_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_REVERSE-SU2_CFD.$(OBJEXT) \ ../src/___bin_SU2_CFD_REVERSE-transport_model.$(OBJEXT) \ ../src/___bin_SU2_CFD_REVERSE-variable_adjoint_levelset.$(OBJEXT) \ @@ -871,6 +886,8 @@ su2_cfd_sources = \ ../include/transport_model.inl \ ../include/variable_structure.hpp \ ../include/variable_structure.inl \ + ../include/transfer_structure.hpp \ + ../include/transfer_structure.inl \ ../src/definition_structure.cpp \ ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp \ @@ -927,6 +944,8 @@ su2_cfd_sources = \ ../src/solver_fem_elasticity.cpp \ ../src/solver_structure.cpp \ ../src/solver_template.cpp \ + ../src/transfer_physics.cpp \ + ../src/transfer_structure.cpp \ ../src/SU2_CFD.cpp \ ../src/transport_model.cpp \ ../src/variable_adjoint_levelset.cpp \ @@ -1176,6 +1195,10 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-transfer_physics.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD-transfer_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-SU2_CFD.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-transport_model.$(OBJEXT): \ @@ -1335,6 +1358,10 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-transport_model.$(OBJEXT): \ @@ -1491,6 +1518,10 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_REVERSE-solver_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD_REVERSE-transfer_physics.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_CFD_REVERSE-transfer_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_REVERSE-SU2_CFD.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_REVERSE-transport_model.$(OBJEXT): \ @@ -1600,6 +1631,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-transport_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_discrete.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po@am__quote@ @@ -1676,6 +1709,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transport_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_discrete.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_levelset.Po@am__quote@ @@ -1752,6 +1787,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transport_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-variable_adjoint_discrete.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-variable_adjoint_levelset.Po@am__quote@ @@ -2572,6 +2609,34 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_template.obj `if test -f '../src/solver_template.cpp'; then $(CYGPATH_W) '../src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_template.cpp'; fi` +../src/___bin_SU2_CFD-transfer_physics.o: ../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-transfer_physics.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Tpo -c -o ../src/___bin_SU2_CFD-transfer_physics.o `test -f '../src/transfer_physics.cpp' || echo '$(srcdir)/'`../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_physics.cpp' object='../src/___bin_SU2_CFD-transfer_physics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-transfer_physics.o `test -f '../src/transfer_physics.cpp' || echo '$(srcdir)/'`../src/transfer_physics.cpp + +../src/___bin_SU2_CFD-transfer_physics.obj: ../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-transfer_physics.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Tpo -c -o ../src/___bin_SU2_CFD-transfer_physics.obj `if test -f '../src/transfer_physics.cpp'; then $(CYGPATH_W) '../src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_physics.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_physics.cpp' object='../src/___bin_SU2_CFD-transfer_physics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-transfer_physics.obj `if test -f '../src/transfer_physics.cpp'; then $(CYGPATH_W) '../src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_physics.cpp'; fi` + +../src/___bin_SU2_CFD-transfer_structure.o: ../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-transfer_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Tpo -c -o ../src/___bin_SU2_CFD-transfer_structure.o `test -f '../src/transfer_structure.cpp' || echo '$(srcdir)/'`../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_structure.cpp' object='../src/___bin_SU2_CFD-transfer_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-transfer_structure.o `test -f '../src/transfer_structure.cpp' || echo '$(srcdir)/'`../src/transfer_structure.cpp + +../src/___bin_SU2_CFD-transfer_structure.obj: ../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-transfer_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Tpo -c -o ../src/___bin_SU2_CFD-transfer_structure.obj `if test -f '../src/transfer_structure.cpp'; then $(CYGPATH_W) '../src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_structure.cpp' object='../src/___bin_SU2_CFD-transfer_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-transfer_structure.obj `if test -f '../src/transfer_structure.cpp'; then $(CYGPATH_W) '../src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_structure.cpp'; fi` + ../src/___bin_SU2_CFD-SU2_CFD.o: ../src/SU2_CFD.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-SU2_CFD.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-SU2_CFD.Tpo -c -o ../src/___bin_SU2_CFD-SU2_CFD.o `test -f '../src/SU2_CFD.cpp' || echo '$(srcdir)/'`../src/SU2_CFD.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-SU2_CFD.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-SU2_CFD.Po @@ -3636,6 +3701,34 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_template.obj `if test -f '../src/solver_template.cpp'; then $(CYGPATH_W) '../src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_template.cpp'; fi` +../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.o: ../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.o `test -f '../src/transfer_physics.cpp' || echo '$(srcdir)/'`../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_physics.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.o `test -f '../src/transfer_physics.cpp' || echo '$(srcdir)/'`../src/transfer_physics.cpp + +../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.obj: ../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.obj `if test -f '../src/transfer_physics.cpp'; then $(CYGPATH_W) '../src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_physics.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_physics.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.obj `if test -f '../src/transfer_physics.cpp'; then $(CYGPATH_W) '../src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_physics.cpp'; fi` + +../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.o: ../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.o `test -f '../src/transfer_structure.cpp' || echo '$(srcdir)/'`../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_structure.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.o `test -f '../src/transfer_structure.cpp' || echo '$(srcdir)/'`../src/transfer_structure.cpp + +../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.obj: ../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.obj `if test -f '../src/transfer_structure.cpp'; then $(CYGPATH_W) '../src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_structure.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.obj `if test -f '../src/transfer_structure.cpp'; then $(CYGPATH_W) '../src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_structure.cpp'; fi` + ../src/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.o: ../src/SU2_CFD.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.o `test -f '../src/SU2_CFD.cpp' || echo '$(srcdir)/'`../src/SU2_CFD.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.Po @@ -4700,6 +4793,34 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_REVERSE-solver_template.obj `if test -f '../src/solver_template.cpp'; then $(CYGPATH_W) '../src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_template.cpp'; fi` +../src/___bin_SU2_CFD_REVERSE-transfer_physics.o: ../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_REVERSE-transfer_physics.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Tpo -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_physics.o `test -f '../src/transfer_physics.cpp' || echo '$(srcdir)/'`../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_physics.cpp' object='../src/___bin_SU2_CFD_REVERSE-transfer_physics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_physics.o `test -f '../src/transfer_physics.cpp' || echo '$(srcdir)/'`../src/transfer_physics.cpp + +../src/___bin_SU2_CFD_REVERSE-transfer_physics.obj: ../src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_REVERSE-transfer_physics.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Tpo -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_physics.obj `if test -f '../src/transfer_physics.cpp'; then $(CYGPATH_W) '../src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_physics.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_physics.cpp' object='../src/___bin_SU2_CFD_REVERSE-transfer_physics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_physics.obj `if test -f '../src/transfer_physics.cpp'; then $(CYGPATH_W) '../src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_physics.cpp'; fi` + +../src/___bin_SU2_CFD_REVERSE-transfer_structure.o: ../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_REVERSE-transfer_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Tpo -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_structure.o `test -f '../src/transfer_structure.cpp' || echo '$(srcdir)/'`../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_structure.cpp' object='../src/___bin_SU2_CFD_REVERSE-transfer_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_structure.o `test -f '../src/transfer_structure.cpp' || echo '$(srcdir)/'`../src/transfer_structure.cpp + +../src/___bin_SU2_CFD_REVERSE-transfer_structure.obj: ../src/transfer_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_REVERSE-transfer_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Tpo -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_structure.obj `if test -f '../src/transfer_structure.cpp'; then $(CYGPATH_W) '../src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-transfer_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/transfer_structure.cpp' object='../src/___bin_SU2_CFD_REVERSE-transfer_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_REVERSE-transfer_structure.obj `if test -f '../src/transfer_structure.cpp'; then $(CYGPATH_W) '../src/transfer_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/transfer_structure.cpp'; fi` + ../src/___bin_SU2_CFD_REVERSE-SU2_CFD.o: ../src/SU2_CFD.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_REVERSE_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_REVERSE-SU2_CFD.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-SU2_CFD.Tpo -c -o ../src/___bin_SU2_CFD_REVERSE-SU2_CFD.o `test -f '../src/SU2_CFD.cpp' || echo '$(srcdir)/'`../src/SU2_CFD.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-SU2_CFD.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_REVERSE-SU2_CFD.Po diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 2552f7addd8..0ebc7ca6804 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1513,3 +1513,81 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, } } + +void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geometry_container, + CConfig **config_container, unsigned short nZone, unsigned short nDim) { + + int rank = MASTER_NODE; + unsigned short donorZone, targetZone; + unsigned short nVarTransfer; + + /*--- Initialize some useful booleans ---*/ + bool fluid_donor, structural_donor; + bool fluid_target, structural_target; + + fluid_donor = false; structural_donor = false; + fluid_target = false; structural_target = false; + + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Coupling between zones (limited to two zones at the moment) ---*/ + for (donorZone = 0; donorZone < nZone; donorZone++){ + + /*--- Initialize donor booleans ---*/ + fluid_donor = false; structural_donor = false; + + /*--- Set the donor boolean: as of now, only Fluid-Structure Interaction considered ---*/ + switch (config_container[donorZone]->GetKind_Solver()) { + case EULER : case NAVIER_STOKES: case RANS: fluid_donor = true; break; + case FEM_ELASTICITY: structural_donor = true; break; + } + + for (targetZone = 0; targetZone < nZone; targetZone++){ + + /*--- Initialize donor booleans ---*/ + fluid_target = false; structural_target = false; + + /*--- Set the target boolean: as of now, only Fluid-Structure Interaction considered ---*/ + switch (config_container[targetZone]->GetKind_Solver()) { + case EULER : case NAVIER_STOKES: case RANS: fluid_target = true; break; + case FEM_ELASTICITY: structural_target = true; break; + } + + /*--- Interface conditions are only defined between different zones ---*/ + if (donorZone != targetZone){ + + /*--- Match Zones ---*/ + if (rank == MASTER_NODE) cout << "Setting coupling "; + + geometry_container[donorZone][MESH_0]->MatchZone(config_container[donorZone], geometry_container[targetZone][MESH_0], + config_container[targetZone], donorZone, nZone); + + /*--- Initialize the appropriate transfer strategy ---*/ + if (rank == MASTER_NODE) cout << "and transferring "; + + if (fluid_donor && structural_target) { + nVarTransfer = 0; + transfer_container[donorZone][targetZone] = new CTransfer_FlowTraction(nDim, nVarTransfer, config_container[donorZone]); + if (rank == MASTER_NODE) cout << "flow tractions from zone " << donorZone << " to zone " << targetZone << ". "<< endl; + } + else if (structural_donor && fluid_target){ + nVarTransfer = 2; + transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements(nDim, nVarTransfer, config_container[donorZone]); + if (rank == MASTER_NODE) cout << "structural displacements from zone " << donorZone << " to zone " << targetZone << ". "<< endl; + } + else { + if (rank == MASTER_NODE) cout << " between zone " << donorZone << " and zone " << targetZone << ". " << endl; + } + + } + + + } + + } + + +} diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp new file mode 100644 index 00000000000..44c781d9ff3 --- /dev/null +++ b/SU2_CFD/src/transfer_physics.cpp @@ -0,0 +1,260 @@ +/*! + * \file transfer_structure.cpp + * \brief Main subroutines for physics of the information transfer between zones + * \author R. Sanchez + * \version 4.0.1 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/transfer_structure.hpp" + +CTransfer_FlowTraction::CTransfer_FlowTraction(void) : CTransfer() { + +} + +CTransfer_FlowTraction::CTransfer_FlowTraction(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + +} + +CTransfer_FlowTraction::~CTransfer_FlowTraction(void) { + +} + +void CTransfer_FlowTraction::GetPhysical_Constants(CSolver *flow_solution, CSolver *struct_solution, + CGeometry *flow_geometry, CGeometry *struct_geometry, + CConfig *flow_config, CConfig *struct_config){ + + unsigned short iVar; + + /*--- We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ + + for (unsigned long iPoint = 0; iPoint < struct_geometry->GetnPoint(); iPoint++){ + struct_solution->node[iPoint]->Clear_FlowTraction(); + } + + /*--- Redimensionalize the pressure ---*/ + + su2double *Velocity_ND, *Velocity_Real; + su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; + su2double factorForces; + + Velocity_Real = flow_config->GetVelocity_FreeStream(); + Density_Real = flow_config->GetDensity_FreeStream(); + + Velocity_ND = flow_config->GetVelocity_FreeStreamND(); + Density_ND = flow_config->GetDensity_FreeStreamND(); + + Velocity2_Real = 0.0; + Velocity2_ND = 0.0; + for (iVar = 0; iVar < nVar; iVar++){ + Velocity2_Real += Velocity_Real[iVar]*Velocity_Real[iVar]; + Velocity2_ND += Velocity_ND[iVar]*Velocity_ND[iVar]; + } + + Physical_Constants[0] = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); + + /*--- Apply a ramp to the transfer of the fluid loads ---*/ + + su2double ModAmpl; + su2double CurrentTime = struct_config->GetCurrent_DynTime(); + su2double Static_Time = struct_config->GetStatic_Time(); + + bool Ramp_Load = struct_config->GetRamp_Load(); + su2double Ramp_Time = struct_config->GetRamp_Time(); + + if (CurrentTime <= Static_Time){ ModAmpl=0.0; } + else if((CurrentTime > Static_Time) && + (CurrentTime <= (Static_Time + Ramp_Time)) && + (Ramp_Load)){ + ModAmpl = (CurrentTime-Static_Time) / Ramp_Time; + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); + Physical_Constants[1] = ModAmpl; + } + else{ Physical_Constants[1] = 1.0; } + +} + +void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry *flow_geometry, CConfig *flow_config, + unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Struct){ + + + unsigned short iVar, jVar; + unsigned long Point_Flow; + su2double *Normal_Flow; + + // Check the kind of fluid problem + bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); + bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || + (flow_config->GetKind_Solver() == RANS) ); + + // Parameters for the calculations + // Pn: Pressure + // Pinf: Pressure_infinite + // div_vel: Velocity divergence + // Dij: Dirac delta + su2double Pn = 0.0, div_vel = 0.0, Dij = 0.0; + su2double Viscosity = 0.0, Density = 0.0; + su2double **Grad_PrimVar; + su2double Tau[3][3] = { {0.0, 0.0, 0.0} , + {0.0, 0.0, 0.0} , + {0.0, 0.0, 0.0} } ; + + su2double Pinf = flow_solution->GetPressure_Inf(); + + Point_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNode(); + // Get the normal at the vertex: this normal goes inside the fluid domain. + Normal_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNormal(); + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn = flow_solution->node[Point_Flow]->GetPressureInc(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosityInc(); + Density = flow_solution->node[Point_Flow]->GetDensityInc(); + + } + } + else if (compressible){ + + Pn = flow_solution->node[Point_Flow]->GetPressure(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosity(); + Density = flow_solution->node[Point_Flow]->GetDensity(); + + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iVar = 0; iVar < nVar; iVar++) { + Donor_Variable[iVar] = -(Pn-Pinf)*Normal_Flow[iVar]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iVar = 0; iVar < nVar; iVar++) div_vel += Grad_PrimVar[iVar+1][iVar]; + if (incompressible) div_vel = 0.0; + + for (iVar = 0; iVar < nVar; iVar++) { + + for (jVar = 0 ; jVar < nVar; jVar++) { + // Dirac delta + Dij = 0.0; if (iVar == jVar) Dij = 1.0; + + // Viscous stress + Tau[iVar][jVar] = Viscosity*(Grad_PrimVar[jVar+1][iVar] + Grad_PrimVar[iVar+1][jVar]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + Donor_Variable[iVar] += Tau[iVar][jVar]*Normal_Flow[jVar]; + } + } + } + + // Redimensionalize and take into account ramp transfer of the loads + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = Donor_Variable[iVar] * Physical_Constants[0] * Physical_Constants[1]; + } + +} + +void CTransfer_FlowTraction::SetTarget_Variable(CSolver *fea_solution, CGeometry *fea_geometry, + CConfig *fea_config, unsigned long Marker_Struct, + unsigned long Vertex_Struct, unsigned long Point_Struct){ + + /*--- Add to the Flow traction ---*/ + fea_solution->node[Point_Struct]->Add_FlowTraction(Target_Variable); + +} + +CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(void) : CTransfer() { + +} + +CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + +} + +CTransfer_StructuralDisplacements::~CTransfer_StructuralDisplacements(void) { + +} + + +void CTransfer_StructuralDisplacements::GetPhysical_Constants(CSolver *struct_solution, CSolver *flow_solution, + CGeometry *struct_geometry, CGeometry *flow_geometry, + CConfig *struct_config, CConfig *flow_config){ + +} + +void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, + unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ + + + su2double *Coord_Struct, *Displacement_Struct; + unsigned short iVar; + + Coord_Struct = struct_geometry->node[Point_Struct]->GetCoord(); + + /*--- The displacements come from the predicted solution ---*/ + Displacement_Struct = struct_solution->node[Point_Struct]->GetSolution_Pred(); + +// cout << "For point " << Point_Struct << " we have coordinates " << Coord_Struct[0] << " " << Coord_Struct[1] << endl; +// cout << "and displacements " << Displacement_Struct[0] << " " << Displacement_Struct[1] << endl; + + + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = Coord_Struct[iVar] + Displacement_Struct[iVar]; + } + +} + +void CTransfer_StructuralDisplacements::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, + CConfig *flow_config, unsigned long Marker_Flow, + unsigned long Vertex_Flow, unsigned long Point_Flow){ + + su2double *Coord, VarCoord[3] = {0.0, 0.0, 0.0}; + unsigned short iVar; + + Coord = flow_geometry->node[Point_Flow]->GetCoord(); + + for (iVar = 0; iVar < nVar; iVar++) + VarCoord[iVar] = Target_Variable[iVar]-Coord[iVar]; + + flow_geometry->vertex[Marker_Flow][Vertex_Flow]->SetVarCoord(VarCoord); + +} + diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 88262bbf336..42b8df708fc 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -1,6 +1,6 @@ /*! * \file transfer_structure.cpp - * \brief Main subroutines for physical transfer of information + * \brief Main subroutines for MPI transfer of information between zones * \author R. Sanchez * \version 4.0.1 "Cardinal" * @@ -441,8 +441,6 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve CGeometry *donor_geometry, CGeometry *target_geometry, CConfig *donor_config, CConfig *target_config){ - - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers int Marker_Donor = -1, Marker_Target = -1; @@ -696,6 +694,7 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + /*--- If this processor owns the node ---*/ if (target_geometry->node[Point_Target]->GetDomain()){ /*--- Find the global index of the donor point for Point_Target ---*/ @@ -759,239 +758,322 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo CConfig *donor_config, CConfig *target_config){ -} + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; -void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ + unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side + unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + unsigned short iVar, jDim; -} + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + unsigned long Point_Donor_Global, Donor_Global_Index; + unsigned long Point_Donor, Point_Target; + su2double *Normal_Donor, *Normal_Target; -CTransfer_FlowTraction::CTransfer_FlowTraction(void) : CTransfer() { + int rank = MASTER_NODE; + int size = SINGLE_NODE; -} +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif -CTransfer_FlowTraction::CTransfer_FlowTraction(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + unsigned long iLocalVertex = 0; + unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; + unsigned long iVertexDonor = 0, iVertexTarget = 0; + unsigned long nPoint_Total = 0; -} + unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; + unsigned long TotalVertexDonor = 0; -CTransfer_FlowTraction::~CTransfer_FlowTraction(void) { + unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; -} + unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; -void CTransfer_FlowTraction::GetPhysical_Constants(CSolver *flow_solution, CSolver *struct_solution, - CGeometry *flow_geometry, CGeometry *struct_geometry, - CConfig *flow_config, CConfig *struct_config){ + unsigned long Processor_Donor, Processor_Target; - unsigned short iVar; + int iProcessor, nProcessor = 0; + unsigned long iVariable; - /*--- We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ + /*--- Number of markers on the FSI interface ---*/ - for (unsigned long iPoint = 0; iPoint < struct_geometry->GetnPoint(); iPoint++){ - struct_solution->node[iPoint]->Clear_FlowTraction(); - } + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); - /*--- Redimensionalize the pressure ---*/ + nProcessor = size; - su2double *Velocity_ND, *Velocity_Real; - su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; - su2double factorForces; + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - Velocity_Real = flow_config->GetVelocity_FreeStream(); - Density_Real = flow_config->GetDensity_FreeStream(); + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ - Velocity_ND = flow_config->GetVelocity_FreeStreamND(); - Density_ND = flow_config->GetDensity_FreeStreamND(); + Marker_Donor = -1; + Marker_Target = -1; - Velocity2_Real = 0.0; - Velocity2_ND = 0.0; - for (iVar = 0; iVar < nVar; iVar++){ - Velocity2_Real += Velocity_Real[iVar]*Velocity_Real[iVar]; - Velocity2_ND += Velocity_ND[iVar]*Velocity_ND[iVar]; - } + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + unsigned long Buffer_Send_nVertexDonorOwned[1], *Buffer_Recv_nVertexDonorOwned = NULL; + unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; - Physical_Constants[0] = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ - /*--- Apply a ramp to the transfer of the fluid loads ---*/ + /*--- On the donor side ---*/ - su2double ModAmpl; - su2double CurrentTime = struct_config->GetCurrent_DynTime(); - su2double Static_Time = struct_config->GetStatic_Time(); + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- nLocalVertexDonorOwned WILL NOT include halo nodes ---*/ + /*--- nLocalVertexDonor WILL include halo nodes ---*/ + nLocalVertexDonorOwned = 0; + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); + if (donor_geometry->node[Point_Donor]->GetDomain()){ + nLocalVertexDonorOwned++; + } + } + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + nLocalVertexDonorOwned = 0; + Marker_Donor = -1; + } + } - bool Ramp_Load = struct_config->GetRamp_Load(); - su2double Ramp_Time = struct_config->GetRamp_Time(); + /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the donor points ---*/ - if (CurrentTime <= Static_Time){ ModAmpl=0.0; } - else if((CurrentTime > Static_Time) && - (CurrentTime <= (Static_Time + Ramp_Time)) && - (Ramp_Load)){ - ModAmpl = (CurrentTime-Static_Time) / Ramp_Time; - ModAmpl = max(ModAmpl,0.0); - ModAmpl = min(ModAmpl,1.0); - Physical_Constants[1] = ModAmpl; - } - else{ Physical_Constants[1] = 1.0; } + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + Marker_Target = -1; + } + } -} + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side -void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry *flow_geometry, CConfig *flow_config, - unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Struct){ +#ifdef HAVE_MPI + /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive TotalVertexDonorOwned as the total (real) number of vertices in one single interface marker on the donor side ---*/ + SU2_MPI::Allreduce(&nLocalVertexDonorOwned, &TotalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); +#else + MaxLocalVertexDonor = nLocalVertexDonor; + TotalVertexDonor = nLocalVertexDonorOwned; + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; +#endif + /*--- We will be gathering the donor information into the master node ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_DonorIndices = MaxLocalVertexDonor; - unsigned short iVar, jVar; - unsigned long Point_Flow; - su2double *Normal_Flow; + /*--- Then we will broadcasting it to all the processors so they can retrieve the info they need ---*/ + /*--- We only broadcast those nodes that we need ---*/ + nBuffer_BcastVariables = TotalVertexDonor * nVar; + nBuffer_BcastIndices = TotalVertexDonor; - // Check the kind of fluid problem - bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); - bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || - (flow_config->GetKind_Solver() == RANS) ); + /*--- Send and Recv buffers ---*/ - // Parameters for the calculations - // Pn: Pressure - // Pinf: Pressure_infinite - // div_vel: Velocity divergence - // Dij: Dirac delta - su2double Pn = 0.0, div_vel = 0.0, Dij = 0.0; - su2double Viscosity = 0.0, Density = 0.0; - su2double **Grad_PrimVar; - su2double Tau[3][3] = { {0.0, 0.0, 0.0} , - {0.0, 0.0, 0.0} , - {0.0, 0.0, 0.0} } ; + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = NULL; - su2double Pinf = flow_solution->GetPressure_Inf(); + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; - Point_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNode(); - // Get the normal at the vertex: this normal goes inside the fluid domain. - Normal_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNormal(); + /*--- Buffers to broadcast the variables and the indices ---*/ + su2double *Buffer_Bcast_Variables = new su2double[nBuffer_BcastVariables]; + long *Buffer_Bcast_Indices = new long[nBuffer_BcastIndices]; - // Retrieve the values of pressure, viscosity and density - if (incompressible){ + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ - Pn = flow_solution->node[Point_Flow]->GetPressureInc(); + if (rank == MASTER_NODE) { + Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + } - if (viscous_flow){ + /*--- On the donor side ---*/ + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; - Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosityInc(); - Density = flow_solution->node[Point_Flow]->GetDensityInc(); + if (Marker_Donor >= 0){ - } - } - else if (compressible){ + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ - Pn = flow_solution->node[Point_Flow]->GetPressure(); + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); - if (viscous_flow){ + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); - Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosity(); - Density = flow_solution->node[Point_Flow]->GetDensity(); + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); + Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[iVertex] = -1; + } + + } } - } - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iVar = 0; iVar < nVar; iVar++) { - Donor_Variable[iVar] = -(Pn-Pinf)*Normal_Flow[iVar]; - } +#ifdef HAVE_MPI + /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - // Calculate tn in the fluid nodes for the viscous term +#else + for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; +#endif - if (viscous_flow){ + /*--- Now we pack the information to send it over to the different processors ---*/ - // Divergence of the velocity - div_vel = 0.0; for (iVar = 0; iVar < nVar; iVar++) div_vel += Grad_PrimVar[iVar+1][iVar]; - if (incompressible) div_vel = 0.0; + if (rank == MASTER_NODE){ - for (iVar = 0; iVar < nVar; iVar++) { + /*--- For all the data we have received ---*/ + /*--- We initialize a counter to determine the position in the broadcast vector ---*/ + iLocalVertex = 0; - for (jVar = 0 ; jVar < nVar; jVar++) { - // Dirac delta - Dij = 0.0; if (iVar == jVar) Dij = 1.0; + for (iVertex = 0; iVertex < nProcessor*nBuffer_DonorIndices; iVertex++){ - // Viscous stress - Tau[iVar][jVar] = Viscosity*(Grad_PrimVar[jVar+1][iVar] + Grad_PrimVar[iVar+1][jVar]) - - TWO3*Viscosity*div_vel*Dij; + /*--- If the donor index is not -1 (this is, if the node is not originally a halo node) ---*/ + if (Buffer_Recv_DonorIndices[iVertex] != -1){ + + /*--- We set the donor index ---*/ + Buffer_Bcast_Indices[iLocalVertex] = Buffer_Recv_DonorIndices[iVertex]; + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Bcast_Variables[iLocalVertex*nVar+iVar] = Buffer_Recv_DonorVariables[iVertex*nVar + iVar]; + } + + iLocalVertex++; + + } + + if (iLocalVertex == TotalVertexDonor) break; - // Viscous component in the tn vector --> Units of force (non-dimensional). - Donor_Variable[iVar] += Tau[iVar][jVar]*Normal_Flow[jVar]; } - } - } - // Redimensionalize and take into account ramp transfer of the loads - for (iVar = 0; iVar < nVar; iVar++){ - Donor_Variable[iVar] = Donor_Variable[iVar] * Physical_Constants[0] * Physical_Constants[1]; - } + } -} +#ifdef HAVE_MPI + SU2_MPI::Bcast(Buffer_Bcast_Variables, nBuffer_BcastVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(Buffer_Bcast_Indices, nBuffer_BcastIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); +#endif -void CTransfer_FlowTraction::SetTarget_Variable(CSolver *fea_solution, CGeometry *fea_geometry, - CConfig *fea_config, unsigned long Marker_Struct, - unsigned long Vertex_Struct, unsigned long Point_Struct){ + long indexPoint_iVertex, Point_Target_Check; + unsigned short iDonorPoint, nDonorPoints; + su2double donorCoeff; - /*--- Add to the Flow traction ---*/ - fea_solution->node[Point_Struct]->Add_FlowTraction(Target_Variable); + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ -} + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ -CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(void) : CTransfer() { + for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ -} + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); -CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + /*--- If this processor owns the node ---*/ + if (target_geometry->node[Point_Target]->GetDomain()){ -} + nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); -CTransfer_StructuralDisplacements::~CTransfer_StructuralDisplacements(void) { + /*--- As we will be adding data, we need to set the variable to 0 ---*/ + for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; -} + for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ + /*--- Find the global index of the donor points for Point_Target ---*/ + // Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(iDonorPoint); + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); -void CTransfer_StructuralDisplacements::GetPhysical_Constants(CSolver *struct_solution, CSolver *flow_solution, - CGeometry *struct_geometry, CGeometry *flow_geometry, - CConfig *struct_config, CConfig *flow_config){ + /*--- We need to get the donor coefficient in a way like this: ---*/ + // donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); + donorCoeff = 1.0; -} + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ + indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); -void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, - unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ + Point_Target_Check = Buffer_Bcast_Indices[indexPoint_iVertex]; + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } - su2double *Coord_Struct, *Displacement_Struct; - unsigned short iVar; + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] += donorCoeff * Buffer_Bcast_Variables[indexPoint_iVertex*nVar+iVar]; + } - Coord_Struct = struct_geometry->node[Point_Struct]->GetCoord(); + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); - /*--- The displacements come from the predicted solution ---*/ - Displacement_Struct = struct_solution->node[Point_Struct]->GetSolution_Pred(); + } -// cout << "For point " << Point_Struct << " we have coordinates " << Coord_Struct[0] << " " << Coord_Struct[1] << endl; -// cout << "and displacements " << Displacement_Struct[0] << " " << Displacement_Struct[1] << endl; + } + } - for (iVar = 0; iVar < nVar; iVar++){ - Donor_Variable[iVar] = Coord_Struct[iVar] + Displacement_Struct[iVar]; - } + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Bcast_Variables; + delete [] Buffer_Bcast_Indices; -} + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexDonor; + delete [] Buffer_Recv_nVertexTarget; + delete [] Buffer_Recv_nVertexDonorOwned; + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + } -void CTransfer_StructuralDisplacements::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, - CConfig *flow_config, unsigned long Marker_Flow, - unsigned long Vertex_Flow, unsigned long Point_Flow){ - su2double *Coord, VarCoord[3] = {0.0, 0.0, 0.0}; - unsigned short iVar; + } - Coord = flow_geometry->node[Point_Flow]->GetCoord(); +} - for (iVar = 0; iVar < nVar; iVar++) - VarCoord[iVar] = Target_Variable[iVar]-Coord[iVar]; +void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ - flow_geometry->vertex[Marker_Flow][Vertex_Flow]->SetVarCoord(VarCoord); } diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 268b25d255b..a93755cf4b8 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -119,6 +119,7 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transfer_physics.cpp \ ../../SU2_CFD/src/transfer_structure.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 6314c56bc49..69cf0a45ec2 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -210,6 +210,7 @@ am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transfer_physics.cpp \ ../../SU2_CFD/src/transfer_structure.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ @@ -289,6 +290,7 @@ am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-transport_model.$(OBJEXT) \ ../../SU2_CFD/src/___bin_SU2_FSI-variable_adjoint_levelset.$(OBJEXT) \ @@ -606,6 +608,7 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/src/solver_fem_elasticity.cpp \ ../../SU2_CFD/src/solver_structure.cpp \ ../../SU2_CFD/src/solver_template.cpp \ + ../../SU2_CFD/src/transfer_physics.cpp \ ../../SU2_CFD/src/transfer_structure.cpp \ ../../SU2_CFD/src/transport_model.cpp \ ../../SU2_CFD/src/variable_adjoint_levelset.cpp \ @@ -915,6 +918,9 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) @@ -1047,6 +1053,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_linearized_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_template.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transport_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-variable_adjoint_discrete.Po@am__quote@ @@ -1898,6 +1905,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_template.obj `if test -f '../../SU2_CFD/src/solver_template.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_template.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.o: ../../SU2_CFD/src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.o `test -f '../../SU2_CFD/src/transfer_physics.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transfer_physics.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.o `test -f '../../SU2_CFD/src/transfer_physics.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transfer_physics.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.obj: ../../SU2_CFD/src/transfer_physics.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.obj `if test -f '../../SU2_CFD/src/transfer_physics.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transfer_physics.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_physics.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/transfer_physics.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_physics.obj `if test -f '../../SU2_CFD/src/transfer_physics.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/transfer_physics.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/transfer_physics.cpp'; fi` + ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o: ../../SU2_CFD/src/transfer_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-transfer_structure.o `test -f '../../SU2_CFD/src/transfer_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/transfer_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-transfer_structure.Po diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 06d0571de65..ca36c43ccdc 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -263,49 +263,46 @@ int main(int argc, char *argv[]) { } -// if (!config_container[ZONE_0]->GetMatchingMesh()){ -// unsigned int Zones[2]; -// unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure -// Zones[0]=ZONE_0; -// Zones[1]=ZONE_1; -// if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) -// interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); -// if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) -// interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); -// } - - if (!config_container[ZONE_0]->GetMatchingMesh()){ - for (iZone = 0; iZone < nZone; iZone++){ - transfer_container[iZone] = new CTransfer*[nZone]; - } - for (iZone = 0; iZone < nZone; iZone++){ - for (jZone = 0; jZone < nZone; jZone++){ - transfer_container[iZone][jZone] = NULL; - } - } - unsigned short nVarTransferFlow = 0, nVarTrasferStruct = 2; - - transfer_container[ZONE_0][ZONE_1] = new CTransfer_FlowTraction(nDim, nVarTransferFlow, config_container[ZONE_0]); - transfer_container[ZONE_1][ZONE_0] = new CTransfer_StructuralDisplacements(nDim, nVarTrasferStruct, config_container[ZONE_1]); - - } /*--- For the time-spectral solver, set the grid node velocities. ---*/ if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) SetTimeSpectral_Velocities(geometry_container, config_container, nZone); - /*--- Coupling between zones (limited to two zones at the moment) ---*/ + /*--- Definition of the interface and transfer conditions between different zones. + *--- The transfer container is defined for zones paired one to one. + *--- This only works for a multizone problem (nZone > 1). + *--- Also, at the moment this capability is limited to two zones (nZone < 3). + *--- This will change in the future. ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------- Multizone Interface Preprocessing -------------------" << endl; + + + if ((nZone > 1) && (nZone < 3)) { + + // if (!config_container[ZONE_0]->GetMatchingMesh()){ + // unsigned int Zones[2]; + // unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure + // Zones[0]=ZONE_0; + // Zones[1]=ZONE_1; + // if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) + // interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); + // if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) + // interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); + // } + + for (iZone = 0; iZone < nZone; iZone++){ + transfer_container[iZone] = new CTransfer*[nZone]; + for (jZone = 0; jZone < nZone; jZone++){ + transfer_container[iZone][jZone] = NULL; + } + } + + Interface_Preprocessing(transfer_container, geometry_container, config_container, nZone, nDim); - if (nZone == 2) { - if (rank == MASTER_NODE) - cout << endl <<"--------------------- Setting Coupling Between Zones --------------------" << endl; - geometry_container[ZONE_0][MESH_0]->MatchZone(config_container[ZONE_0], geometry_container[ZONE_1][MESH_0], - config_container[ZONE_1], ZONE_0, nZone); - geometry_container[ZONE_1][MESH_0]->MatchZone(config_container[ZONE_1], geometry_container[ZONE_0][MESH_0], - config_container[ZONE_0], ZONE_1, nZone); } /*--- Definition of the output class (one for all zones). The output class diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 54901b222c3..a0eb0c5502c 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -772,24 +772,92 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); - /*--- Displacement transfer -- This will have to be modified for non-matching meshes ---*/ + /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ - if (MatchingMesh){ - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); - } - else{ + switch (config_container[ZONE_0]->GetKind_TransferMethod()) { + case BROADCAST_DATA: + if (MatchingMesh){ + transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - /*--- Transfer the information scattered (this is, each processor only receives the information it needs ---*/ - transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); + } + else { + transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + break; + case SCATTER_DATA: + if (MatchingMesh){ + transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + else { + transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + break; + case ALLGATHER_DATA: + if (MatchingMesh){ + transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + else { + transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + break; + case LEGACY_METHOD: + if (MatchingMesh){ + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + } + else { + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + } + break; + } - } + +// /*--- Displacement transfer -- This will have to be modified for non-matching meshes ---*/ +// +// if (MatchingMesh){ +// solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], +// config_container[ZONE_0], config_container[ZONE_1], +// geometry_container[ZONE_1], solver_container[ZONE_1]); +// } +// else{ +// +// /*--- Transfer the information scattered (this is, each processor only receives the information it needs ---*/ +// transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], +// geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], +// config_container[ZONE_1], config_container[ZONE_0]); +// +// /*--- Set the volume deformation for the fluid zone ---*/ +// grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); +// +// } } @@ -815,21 +883,72 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C config_container[ZONE_1]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - if (MatchingMesh){ + /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + switch (config_container[ZONE_0]->GetKind_TransferMethod()) { + case BROADCAST_DATA: + if (MatchingMesh){ + transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + else { + transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + break; + case SCATTER_DATA: + if (MatchingMesh){ + transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + else { + transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + break; + case ALLGATHER_DATA: + if (MatchingMesh){ + transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + else { + transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + break; + case LEGACY_METHOD: + if (MatchingMesh){ + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } + else { + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } + break; + } - } - else{ -// solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], +// if (MatchingMesh){ +// +// solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], // config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); - - transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - - } +// +// } +// else{ +//// solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], +//// config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); +// +// transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], +// geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], +// config_container[ZONE_0], config_container[ZONE_1]); +// +// } } From 4a6f1828ea3ad7e90bd427e7355513221d657f25 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 15 Sep 2015 10:54:46 -0700 Subject: [PATCH 082/269] changed name of Consistent and Conservative to isoparametric b/c C&C refers to combo of interpolation and data transfer, option controls interpolation method only --- Common/include/option_structure.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 7d0befdb1a9..db5697912db 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -302,12 +302,12 @@ static const map MatComp_Map = CCreateMap Interpolator_Map = CCreateMap ("NEAREST_NEIGHBOR", NEAREST_NEIGHBOR) -("CONSISTENT_AND_CONSERVATIVE", CONSISTENT_AND_CONSERVATIVE); +("ISOPARAMETRIC", ISOPARAMETRIC); /*! From c4e0d68314588bac78247d4e0239df6d9b83da37 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 15 Sep 2015 10:55:43 -0700 Subject: [PATCH 083/269] changed all relative distance comparison calculations to NOT use sqrt - no need for this if only comparing magnitude --- Common/src/geometry_structure.cpp | 42 ++++++++++++++----------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index fbb122299ba..f54bdca1202 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -714,7 +714,7 @@ void CGeometry::ComputeAirfoil_Section(su2double *Plane_P0, su2double *Plane_Nor Segment[0] = Xcoord[jVertex] - Xcoord[iVertex]; Segment[1] = Ycoord[jVertex] - Ycoord[iVertex]; Segment[2] = Zcoord[jVertex] - Zcoord[iVertex]; - Dist_Value = sqrt(pow(Segment[0], 2.0) + pow(Segment[1], 2.0) + pow(Segment[2], 2.0)); + Dist_Value = (pow(Segment[0], 2.0) + pow(Segment[1], 2.0) + pow(Segment[2], 2.0)); if (Dist_Value < 1E-6) { Duplicate.push_back (jVertex); } @@ -1236,8 +1236,6 @@ void CGeometry::ComputeSurf_Curvature(CConfig *config) { Dist += (Coord[iDim]-Buffer_Receive_Coord[(iProcessor*MaxLocalVertex+iVertex)*nDim+iDim])* (Coord[iDim]-Buffer_Receive_Coord[(iProcessor*MaxLocalVertex+iVertex)*nDim+iDim]); } - if (Dist!=0.0) Dist = sqrt(Dist); - else Dist = 0.0; if (Dist < MinDist) MinDist = Dist; } } @@ -9509,8 +9507,8 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { for (jVertex = 0; jVertex < nVertex[jMarker]; jVertex++) { jPoint = vertex[jMarker][jVertex]->GetNode(); Coord_j = node[jPoint]->GetCoord(); - if (nDim == 2) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); - if (nDim == 3) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); + if (nDim == 2) dist = (pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); + if (nDim == 3) dist = (pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); if (dist < mindist) {mindist = dist; pPoint = jPoint;} } maxdist = max(maxdist, mindist); @@ -9621,7 +9619,7 @@ void CPhysicalGeometry::MatchInterface(CConfig *config) { dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_Interface+jVertex)*nDim+iDim]; dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); - } dist = sqrt(dist); + } if (((dist < mindist) && (iProcessor != rank)) || ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { @@ -9695,8 +9693,8 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { for (jVertex = 0; jVertex < nVertex[jMarker]; jVertex++) { jPoint = vertex[jMarker][jVertex]->GetNode(); Coord_j = node[jPoint]->GetCoord(); - if (nDim == 2) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); - if (nDim == 3) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); + if (nDim == 2) dist = (pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); + if (nDim == 3) dist = (pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); if (dist < mindist) { mindist = dist; pPoint = jPoint; } } maxdist = max(maxdist, mindist); @@ -9809,7 +9807,7 @@ void CPhysicalGeometry::MatchNearField(CConfig *config) { dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_NearField+jVertex)*nDim+iDim]; dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); - } dist = sqrt(dist); + } if (((dist < mindist) && (iProcessor != rank)) || ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { @@ -9986,8 +9984,8 @@ void CPhysicalGeometry::MatchActuator_Disk(CConfig *config) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_ActDisk+jVertex)*nDim+iDim]; dist += pow(Coord_j[iDim]-Coord_i[iDim], 2.0); } - dist = sqrt(dist); + if (dist < mindist) { mindist = dist; pProcessor = iProcessor; pPoint = jPoint; if (dist == 0.0) break; @@ -10060,8 +10058,8 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC for (jVertex = 0; jVertex < geometry_donor->GetnVertex(jMarker); jVertex++) { jPoint = geometry_donor->vertex[jMarker][jVertex]->GetNode(); Coord_j = geometry_donor->node[jPoint]->GetCoord(); - if (nDim == 2) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); - if (nDim == 3) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); + if (nDim == 2) dist = (pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); + if (nDim == 3) dist = (pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); if (dist < mindist) { mindist = dist; pPoint = jPoint; } } @@ -10154,7 +10152,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_Zone+jVertex)*nDim+iDim]; dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); - } dist = sqrt(dist); + } if (((dist < mindist) && (iProcessor != rank)) || ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { @@ -11861,8 +11859,8 @@ void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { for (iDim = 0; iDim < nDim; iDim++) { dist += (Coord_j[iDim]-rotCoord[iDim])*(Coord_j[iDim]-rotCoord[iDim]); } - dist = sqrt(dist); + /*--- Store vertex information if this is the closest point found thus far. ---*/ if (dist < mindist) { mindist = dist; pPoint = jPoint; } @@ -12492,7 +12490,7 @@ su2double CPhysicalGeometry::Compute_MaxThickness(su2double *Plane_P0, su2double MaxDistance = 0.0; Trailing_Point = 0; Leading_Point = 0; for (iVertex = 1; iVertex < Xcoord_Airfoil.size(); iVertex++) { - Distance = sqrt(pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + + Distance = (pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + pow(Ycoord_Airfoil[iVertex] - Ycoord_Airfoil[Trailing_Point], 2.0) + pow(Zcoord_Airfoil[iVertex] - Zcoord_Airfoil[Trailing_Point], 2.0)); @@ -12599,7 +12597,7 @@ su2double CPhysicalGeometry::Compute_AoA(su2double *Plane_P0, su2double *Plane_N /*--- Find the leading and trailing edges and compute the angle of attack ---*/ MaxDistance = 0.0; Trailing_Point = 0; Leading_Point = 0; for (iVertex = 1; iVertex < Xcoord_Airfoil.size(); iVertex++) { - Distance = sqrt(pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + + Distance = (pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + pow(Ycoord_Airfoil[iVertex] - Ycoord_Airfoil[Trailing_Point], 2.0) + pow(Zcoord_Airfoil[iVertex] - Zcoord_Airfoil[Trailing_Point], 2.0)); @@ -12620,7 +12618,7 @@ su2double CPhysicalGeometry::Compute_Chord(su2double *Plane_P0, su2double *Plane MaxDistance = 0.0; Trailing_Point = 0; for (iVertex = 1; iVertex < Xcoord_Airfoil.size(); iVertex++) { - Distance = sqrt(pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + + Distance = (pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + pow(Ycoord_Airfoil[iVertex] - Ycoord_Airfoil[Trailing_Point], 2.0) + pow(Zcoord_Airfoil[iVertex] - Zcoord_Airfoil[Trailing_Point], 2.0)); @@ -12642,7 +12640,7 @@ su2double CPhysicalGeometry::Compute_Thickness(su2double *Plane_P0, su2double *P MaxDistance = 0.0; Trailing_Point = 0; Leading_Point = 0; for (iVertex = 1; iVertex < Xcoord_Airfoil.size(); iVertex++) { - Distance = sqrt(pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + + Distance = (pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + pow(Ycoord_Airfoil[iVertex] - Ycoord_Airfoil[Trailing_Point], 2.0) + pow(Zcoord_Airfoil[iVertex] - Zcoord_Airfoil[Trailing_Point], 2.0)); @@ -12772,7 +12770,7 @@ su2double CPhysicalGeometry::Compute_Area(su2double *Plane_P0, su2double *Plane_ MaxDistance = 0.0; Trailing_Point = 0; Leading_Point = 0; for (iVertex = 1; iVertex < Xcoord_Airfoil.size(); iVertex++) { - Distance = sqrt(pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + + Distance = (pow(Xcoord_Airfoil[iVertex] - Xcoord_Airfoil[Trailing_Point], 2.0) + pow(Ycoord_Airfoil[iVertex] - Ycoord_Airfoil[Trailing_Point], 2.0) + pow(Zcoord_Airfoil[iVertex] - Zcoord_Airfoil[Trailing_Point], 2.0)); @@ -13693,11 +13691,9 @@ bool CMultiGridGeometry::SetBoundAgglomeration(unsigned long CVPoint, short mark else { agglomerate_CV = true; } } - - return agglomerate_CV; - delete [] copy_marker; - + return agglomerate_CV; + } From d1eb4ef7e79a4e5fb7770d2dd5b907bb0de9cf4e Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 15 Sep 2015 10:57:31 -0700 Subject: [PATCH 084/269] multiple changes to isoparametric interpolation (including name change): addlt projected pnt calc, corrected some indexing errors, further work required for 2D version --- Common/include/interpolation_structure.hpp | 78 ++-- Common/src/interpolation_structure.cpp | 454 +++++++++++++-------- 2 files changed, 312 insertions(+), 220 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 81d5d7a9790..b21e3cba025 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -58,7 +58,7 @@ class CInterpolator { protected: unsigned int nZone; unsigned short nVar; - su2double ***Data; /*!\brief container for some data to be interpolated */ + //su2double ***Data; /*!\brief container for some data to be interpolated */ public: CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ @@ -77,26 +77,26 @@ class CInterpolator { */ virtual ~CInterpolator(void); - /*! - * \brief initialize the Data structure to the appropriate size. - */ - void InitializeData(unsigned int* Zones, unsigned short val_nVar); - - /*! - * \brief interpolate Data from one mesh to another. - * The data for zone 0 will be overwritten. transfer coefficients must be defined with Set_TransferCoeff. - * \param[in] iZone_0 - zone to recieve interpolated data - * \param[in] config - */ - void Interpolate_Data(unsigned int iZone, CConfig **config); - - /*! - * \brief interpolate deformations from one mesh to another. - * Uses information stored by the geometry class, updates values in VarCoord of iZone_0. Set_TransferCoeff must be run first. - * \param[in] iZone_0 - zone to recieve interpolated data. - * \param[in] config - */ - void Interpolate_Deformation(unsigned int iZone, CConfig **config); +// /*! +// * \brief initialize the Data structure to the appropriate size. +// */ +// void InitializeData(unsigned int* Zones, unsigned short val_nVar); +// +// /*! +// * \brief interpolate Data from one mesh to another. +// * The data for zone 0 will be overwritten. transfer coefficients must be defined with Set_TransferCoeff. +// * \param[in] iZone_0 - zone to recieve interpolated data +// * \param[in] config +// */ +// void Interpolate_Data(unsigned int iZone, CConfig **config); +// +// /*! +// * \brief interpolate deformations from one mesh to another. +// * Uses information stored by the geometry class, updates values in VarCoord of iZone_0. Set_TransferCoeff must be run first. +// * \param[in] iZone_0 - zone to recieve interpolated data. +// * \param[in] config +// */ +// void Interpolate_Deformation(unsigned int iZone, CConfig **config); /*! * \brief Set up transfer matrix defining relation between two meshes @@ -106,23 +106,23 @@ class CInterpolator { virtual void Set_TransferCoeff(unsigned int* Zones, CConfig **config)=0; - /*! - * \brief Return the value of the Data at the specified zone, point, and dimension. - * \param[in] iZone - zone index - * \param[in] iPoint - point index - * \param[in[ iDim - index of the data - */ - su2double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); - - /*! - * \brief Return the pointer to the Data vector at the specified zone and point. - */ - su2double* GetData(unsigned int iZone, unsigned long iPoint); - - /*! - * \brief Set the value of the Data at the specified zone, point, and index. - */ - void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val); +// /*! +// * \brief Return the value of the Data at the specified zone, point, and dimension. +// * \param[in] iZone - zone index +// * \param[in] iPoint - point index +// * \param[in[ iDim - index of the data +// */ +// su2double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); +// +// /*! +// * \brief Return the pointer to the Data vector at the specified zone and point. +// */ +// su2double* GetData(unsigned int iZone, unsigned long iPoint); +// +// /*! +// * \brief Set the value of the Data at the specified zone, point, and index. +// */ +// void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val); @@ -187,6 +187,6 @@ class CIsoparametric : public CInterpolator { * \param[in] donor_elem - element index of the element to use for interpolation * \param[in[ nDonorPoints - number of donor points in the element. */ - void Isoparameters(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints); + void Isoparameters(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned short nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints); }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 644a4870c35..9f819ba30ec 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -32,7 +32,7 @@ #include "../include/interpolation_structure.hpp" CInterpolator::CInterpolator(void){ - Data = NULL; + //Data = NULL; } CInterpolator::~CInterpolator(void){} @@ -47,20 +47,17 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, /*--- Initialize transfer coefficients between the zones ---*/ /* Since this is a virtual function, call it in the child class constructor */ //Set_TransferCoeff(iZone_0,iZone_1,config); - - /*--- Initialize Data vectors to 0, by default with length = nDim ---*/ - /* This should be done in the child class ---*/ - //InitializeData(iZone_0,iZone_1,nDim); - Data = NULL; + /*--- Initialize transfer coefficients between the zones ---*/ + //Set_TransferCoeff(Zones,config); } - +/* void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar){ nVar=val_nVar; unsigned int iZone; unsigned short it; if (nVar>0){ - /*--- Initialize Data vectors to 0 ---*/ + //--- Initialize Data vectors to 0 ---// Data = new su2double**[nZone]; for (it=0; itGetnMarker_All(); iMarker++){ - if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); - /*--- Set Data to 0 before interpolation ---*/ - for (unsigned short iVar=0; iVarvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - /* Unpack info about the donor point */ - iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); - /*--- Increment the value of the data ---*/ - for (unsigned short iVar=0; iVarGetnDim(); - /*--- Loop over vertices in the interface marker (zone 0) ---*/ - for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ - if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ - for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { - iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); - /*--- Set NewCoord to 0 ---*/ - for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ - iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); - jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); - jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); - jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); - weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); - /* Get translation and rotation from the solution */ - VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); - VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); - - for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); - } - /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ - if (nDim==2){ - NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); - NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); - } - if (nDim==3){ - NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); - NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); - NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); - } - } - /*--- Set the varcoord information ---*/ - Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); - } - } - } - - // must be called later: - //flow_grid_movement->SetVolume_Deformation(Geometry[ZONE_0][MESH_0], config[ZONE_0], true); - -} - -su2double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ - if (Data !=NULL) - return Data[iZone][iPoint][iVar]; - else - return 0.0; // Check this. -} - -su2double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ - if (Data !=NULL) - return Data[iZone][iPoint]; - else - return NULL; -} - -void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val){ - if (Data !=NULL) - Data[iZone][iPoint][iVar]=val; - else - cout <<" CInterpolator object has not been initialized"<GetnMarker_All(); iMarker++){ +// if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ +// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { +// iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); +// /*--- Set Data to 0 before interpolation ---*/ +// for (unsigned short iVar=0; iVarvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ +// /* Unpack info about the donor point */ +// iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); +// jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); +// jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); +// jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); +// weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); +// /*--- Increment the value of the data ---*/ +// for (unsigned short iVar=0; iVarGetnDim(); +// /*--- Loop over vertices in the interface marker (zone 0) ---*/ +// for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ +// if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ +// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { +// iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); +// /*--- Set NewCoord to 0 ---*/ +// for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ +// iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); +// jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); +// jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); +// jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); +// weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); +// /* Get translation and rotation from the solution */ +// VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); +// VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); +// +// for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); +// } +// /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ +// if (nDim==2){ +// NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); +// NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); +// } +// if (nDim==3){ +// NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); +// NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); +// NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); +// } +// } +// /*--- Set the varcoord information ---*/ +// Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); +// } +// } +// } +// +// // must be called later: +// //flow_grid_movement->SetVolume_Deformation(Geometry[ZONE_0][MESH_0], config[ZONE_0], true); +// +//} +// +//su2double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ +// if (Data !=NULL) +// return Data[iZone][iPoint][iVar]; +// else +// return 0.0; // Check this. +//} +// +//su2double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ +// if (Data !=NULL) +// return Data[iZone][iPoint]; +// else +// return NULL; +//} +// +//void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val){ +// if (Data !=NULL) +// Data[iZone][iPoint][iVar]=val; +// else +// cout <<" CInterpolator object has not been initialized"<GetnDim(); - unsigned short iDonor, jDonor; su2double distance = 0.0, last_distance=-1.0, *Coord; su2double* myCoeff; su2double* myCoefftemp; su2double* donorCoord; - su2double coeff; + su2double coeff, tmp, tmp2; long donor_elem=0, temp_donor; - unsigned int donor_face; - unsigned short int donorindex = 0; unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; unsigned short markFEA, markFlow, iFace; unsigned short index = 3; // index of the vertex info in the donorinfo array - unsigned int nNodes; + unsigned int nNodes=0; /*--- Restricted to 2-zone fluid-structure for now ---*/ unsigned int iZone_0 = Zones[0]; unsigned int iZone_1 = Zones[1]; - unsigned int nDonor=0; + unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' + bool face_on_marker=true; + unsigned int it2=0; + su2double projected_point[nDim]; + su2double *Normal; nn = new unsigned long[4]; + //cout <<"SetTransfer Coeff"<< endl; /*--- Number of markers on the FSI interface ---*/ nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; nMarkerFEA = config[iZone_1]->GetnMarker_All(); @@ -383,72 +382,119 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- For the markers on the fluid side ---*/ /*--- Loop over the vertices on the marker ---*/ for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); + iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); // Global index of iVertex last_distance=-1.0; - nDonor = 0; - //cout << "Vertex i: "<< iVertex << endl; - /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ + /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { - jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); + jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); // Global index of jVertex distance = 0.0; for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); + distance+=pow(Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetCoord(iDim)- + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancenode[iNearestNode]->GetnElem(); jElem++){ + + temp_donor = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetElem(jElem); - unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' if (nDim==3) nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); - /*--- Loop over all the faces of this element to find one(s) on the interface boundary ---*/ + + /*--- Loop over all the faces of this element to find ones on the interface boundary + * If a face is on markFEA, then find the distance and check against previous to find closest + * face. ---*/ for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); /*-- Check if on marker of interface---*/ - for (unsigned int iNode=0; iNodeelem[jElem]->GetFaces(iFace, iNode); - face_on_marker = (face_on_marker && (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); + for (unsigned int ifacenode=0; ifacenodeelem[jElem]->GetFaces(iFace, ifacenode); + jPoint = Geometry[iZone_1][MESH_0]->elem[jElem]->GetNode(inode); + + face_on_marker = (face_on_marker and (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); } } else nNodes = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnNodes(); - /*--- face_on_marker is true iff all nodes on face iFace are in marker markFEA ---*/ + /*--- face_on_marker is true iff all nodes on face iFace are in marker markFEA (or 2D) ---*/ + /*--- if iFace is part of markFEA, calculate the isoparametric coefficients ---*/ if (face_on_marker){ + /*--- Find projected distance ---*/ + Coord = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(); + Normal = Geometry[iZone_1][MESH_0]->vertex[markFEA][iNearestVertex]->GetNormal(); + donorCoord = Geometry[iZone_1][MESH_0]->vertex[markFEA][iNearestVertex]->GetCoord(); + /*--- Project point xj onto surface --*/ + + tmp = 0; + tmp2=0; + for (iDim=0; iDimvertex[markFlow][iVertex]->GetCoord(); + for (it=0; it< nNodes; it++){ /*--- If 3D loop over a face. if 2D loop over an element ---*/ - if (nDim==3) - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + if (nDim==3){ + //jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it); + jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + //cout << "jPoint " << jPoint << endl; + } else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); + jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(it); donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); - for (iDim=0; iDimvertex[markFlow][iVertex]->SetDonorElem(temp_donor); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorFace(iFace); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); + //cout <<"updated closest face/edge" << endl; } } } } /*--- If nDonorPoints ==0, no match was found, set nearest neighbor ---*/ + if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()==0){ nNodes=1; Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); donor_elem = -1; - //cout <<" NN" << iVertex << endl; myCoeff = new su2double[1]; myCoeff[0] = 1; } - /*--- print the eventual matched point ---*/ - /* - cout << " Final case for "<< iVertex << " : " << distance <<", " << - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace() - <<", "<vertex[markFlow][iVertex]->GetDonorElem() - <<", iso: "; - for (it=0; it< nNodes; it++){ - cout << myCoeff[it] << " "; - } - cout << endl; - */ + + /*--- Set the appropriate amount of memory ---*/ Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); + /*--- Loop over vertices of the element ---*/ if (nDim==3){ - unsigned int it2=0; + it2=0; for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ if (donor_elem!=-1){ //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + //jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); } else{ - jPoint = nn[1]; + jPoint = iNearestNode; } ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); if (ivtx!=-1){ @@ -523,14 +563,14 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } else{ - unsigned int it2=0; + it2=0; for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ if (donor_elem!=-1){ //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); } else{ - jPoint = nn[1]; + jPoint = iNearestNode; } ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); if (ivtx!=-1){ @@ -600,16 +640,17 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, - unsigned short iMarker, unsigned long iVertex, unsigned int nDim, unsigned int iZone_1, + unsigned short iMarker, unsigned long iVertex, unsigned short nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ - int i,j,k; - int n0 = nDim+1, n; - int m = nDonorPoints, m0; - unsigned long jVertex, jPoint; - su2double tmp, tmp2, distance; - su2double x[m], x_tmp[m]; + short i,j,k; + short n0 = nDim+1, n, iDim; + short m = nDonorPoints, m0; + unsigned long jPoint, jNode; + su2double tmp, tmp2; + su2double x[m], xj[m], x_tmp[m]; su2double Q[m*m], R[m*m], A[n0*m]; su2double x2[n0]; + su2double* Normal; bool test[n0], testi[n0],on_marker[m]; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ @@ -624,24 +665,47 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, A[i]=1.0; /*j,n: dimension. i,m: # neighbor point*/ + xj[0]=1; x[0]=1; for (j=1; jvertex[iMarker][iVertex]->GetCoord(j-1); + xj[j]=Geometry[iZone_0][MESH_0]->vertex[iMarker][iVertex]->GetCoord(j-1); + + /*--- Project point xj onto surface --*/ + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,0)); + jNode = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker); + Normal = Geometry[iZone_1][MESH_0]->vertex[jMarker][jNode]->GetNormal(); + tmp = 0; + tmp2=0; + for (iDim=0; iDimnode[jPoint]->GetCoord(iDim)); + } + //cout << tmp << endl; + tmp = 1/tmp; + for (iDim=0; iDimelem[donor_elem]->GetFaces(iFace,k); + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,k)); else jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(k); // Neglect donor points that are not members of the matching marker. on_marker[k] =(Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker)!=-1); if (on_marker[k]){ // jth coordinate of the ith donor vertex - for (j=1; jnode[jPoint]->GetCoord(j-1); + //cout <<" node " << jPoint <<" dim "<< j-1 <<" Coord "<< A[j*m+i]; + } i++; } else @@ -741,6 +805,17 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, /*--- Isoparametric coefficients have been calculated. Run checks ---*/ su2double tol = 1e-13; // hardcoded tolerance + /*--- Check 0: normalize to 1: corrects for points not in face---*/ +// tmp=0; +// for (i=0; i1) isoparams[i]=1; +// if (isoparams[i]<0) isoparams[i]=0; +// tmp+=isoparams[i]*isoparams[i]; +// } +// tmp = pow(tmp,0.5); +// for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + if (nDim==3){ + //jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i); + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); + } else jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); @@ -784,4 +861,19 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, else isoparams[k] = 0; } + /*--- Check 4: print the result --- + for (k=0; kelem[donor_elem]->GetFaces(iFace,i); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); + tmp+=isoparams[i]*(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(k)); + } + cout << tmp << endl; + + } + */ } From 1b914adae8a5f99e7e87b720ce29a04cf3496f7b Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 15 Sep 2015 23:59:20 -0700 Subject: [PATCH 085/269] fix to 2D, other changes to isoparam --- Common/src/interpolation_structure.cpp | 794 ++++++++++++------------- SU2_FSI/src/SU2_FSI.cpp | 4 +- 2 files changed, 392 insertions(+), 406 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 9f819ba30ec..86311f14077 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -201,109 +201,109 @@ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **co CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long iPoint, jPoint, iVertex, jVertex,*nn; - unsigned short iMarker, iDim, jMarker; - unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; - su2double distance = 0.0, last_distance=-1.0; - - unsigned short int donorindex = 0; - unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; - unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; - unsigned short markFEA, markFlow; - - /*--- Restricted to 2-zone fluid-structure for now ---*/ - unsigned int iZone_0 = Zones[0]; - unsigned int iZone_1 = Zones[1]; - - nn = new unsigned long[4]; - - /*--- Loop through the vertices in Interface of both zones - * for Nearest Neighbor each vertex has only one donor point, but for other types of - * interpolation the number of donor points must be determined first. ---*/ - - /*--- Number of markers on the FSI interface ---*/ - nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; - nMarkerFEA = config[iZone_1]->GetnMarker_All(); - nMarkerFlow = config[iZone_0]->GetnMarker_All(); - - /*--- For the number of markers on the interface... ---*/ - for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - - /*--- ... the marker markFEA ... ---*/ - for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA=iMarkerFEA; - } - } - /*--- ... corresponds to the marker markFlow. ---*/ - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow=iMarkerFlow; - } - } - - /*--- For the markers on the fluid side ---*/ - /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); - last_distance=-1.0; - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(1); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); - /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ - - for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { - jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); - } - - /*--- For the marker on the FEA side ---*/ - /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { - iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); - last_distance=-1.0; - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetnDonorPoints(1); - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); - /*--- Loop over vertices in the interface marker (zone 0) --*/ - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); - for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { - jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); - if ((jVertex==0) or (distancevertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); - } - } +// unsigned long iPoint, jPoint, iVertex, jVertex,*nn; +// unsigned short iMarker, iDim, jMarker; +// unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; +// su2double distance = 0.0, last_distance=-1.0; +// +// unsigned short int donorindex = 0; +// unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; +// unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; +// unsigned short markFEA, markFlow; +// +// /*--- Restricted to 2-zone fluid-structure for now ---*/ +// unsigned int iZone_0 = Zones[0]; +// unsigned int iZone_1 = Zones[1]; +// +// nn = new unsigned long[4]; +// +// /*--- Loop through the vertices in Interface of both zones +// * for Nearest Neighbor each vertex has only one donor point, but for other types of +// * interpolation the number of donor points must be determined first. ---*/ +// +// /*--- Number of markers on the FSI interface ---*/ +// nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; +// nMarkerFEA = config[iZone_1]->GetnMarker_All(); +// nMarkerFlow = config[iZone_0]->GetnMarker_All(); +// +// /*--- For the number of markers on the interface... ---*/ +// for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ +// +// /*--- ... the marker markFEA ... ---*/ +// for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ +// if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ +// markFEA=iMarkerFEA; +// } +// } +// /*--- ... corresponds to the marker markFlow. ---*/ +// for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ +// if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ +// markFlow=iMarkerFlow; +// } +// } +// +// /*--- For the markers on the fluid side ---*/ +// /*--- Loop over the vertices on the marker ---*/ +// for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { +// iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); +// last_distance=-1.0; +// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ +// Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(1); +// Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); +// /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ +// +// for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { +// jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); +// distance = 0.0; +// for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); +// if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); +// } +// +// /*--- For the marker on the FEA side ---*/ +// /*--- Loop over the vertices on the marker ---*/ +// for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { +// iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); +// last_distance=-1.0; +// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ +// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetnDonorPoints(1); +// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); +// /*--- Loop over vertices in the interface marker (zone 0) --*/ +// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); +// for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { +// jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); +// distance = 0.0; +// for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); +// if ((jVertex==0) or (distancevertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); +// } +// } } @@ -319,7 +319,7 @@ CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long iPoint, jPoint, iVertex, jVertex,*nn, inode, jElem, iNearestNode=0, iNearestVertex=0; + unsigned long iPoint, jPoint, jPoint2, iVertex, jVertex,*nn, inode, jElem, iNearestNode=0, iNearestVertex=0; long ivtx; unsigned short iDim, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); @@ -333,7 +333,6 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; unsigned short markFEA, markFlow, iFace; - unsigned short index = 3; // index of the vertex info in the donorinfo array unsigned int nNodes=0; /*--- Restricted to 2-zone fluid-structure for now ---*/ unsigned int iZone_0 = Zones[0]; @@ -409,12 +408,15 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ temp_donor = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetElem(jElem); - if (nDim==3) - nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); - /*--- Loop over all the faces of this element to find ones on the interface boundary * If a face is on markFEA, then find the distance and check against previous to find closest * face. ---*/ + if (nDim==3) + nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); + else + nFaces = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetnPoint(); + + for (iFace=0; iFaceelem[jElem]->GetFaces(iFace, ifacenode); - jPoint = Geometry[iZone_1][MESH_0]->elem[jElem]->GetNode(inode); + inode = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace, ifacenode); + jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(inode); face_on_marker = (face_on_marker and (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); } } - else - nNodes = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnNodes(); + else{ + /*-- 2D: 'face' is an edge connected to the nearest node ---*/ + nNodes = 2; // edges have two nodes + for (unsigned int ifacenode=0; ifacenodenode[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(ifacenode); + face_on_marker = (face_on_marker and (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); + } + } + /*--- face_on_marker is true iff all nodes on face iFace are in marker markFEA (or 2D) ---*/ @@ -463,37 +473,10 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- use Isoparametric rep. to find distance to projected point on the surface ---*/ - myCoefftemp = new su2double[nNodes]; - - Isoparameters( myCoefftemp, iZone_0, markFlow, iVertex, nDim, iZone_1, markFEA, temp_donor, iFace, nNodes); - - /*--- If closer than last closest projected point, save. ---*/ - Coord = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(); - - for (it=0; it< nNodes; it++){ - /*--- If 3D loop over a face. if 2D loop over an element ---*/ - if (nDim==3){ - //jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it); - jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); - //cout << "jPoint " << jPoint << endl; - } - else - jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(it); - - donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); - //cout <<" isoparam: " << myCoefftemp[it] <<" Coord: "; - for (iDim=0; iDimvertex[markFlow][iVertex]->GetCoord(); + + for (it=0; it< nNodes; it++){ + /*--- If 3D loop over a face. if 2D loop over an element ---*/ + if (nDim==3){ + //jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it); + jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + //cout << "jPoint " << jPoint << endl; + } + else{ + inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); + } + + donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); + //cout <<" isoparam: " << myCoefftemp[it] <<" Coord: "; + for (iDim=0; iDimvertex[markFlow][iVertex]->GetnDonorPoints()==0){ @@ -531,104 +545,64 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); /*--- Loop over vertices of the element ---*/ - if (nDim==3){ - it2=0; - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - if (donor_elem!=-1){ - //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. - //jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,it); + for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + if (donor_elem!=-1){ + if (nDim==3){ jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); } else{ - jPoint = iNearestNode; - } - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); - if (ivtx!=-1){ - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); - } - else{ - /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 - and we should neglect this point (TODO: make sure this is also taken into account in isoparam) - Reduce the number of donor points --*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); - if (abs(myCoeff[it])>1e-12) - cout <<"Warning: interior pt assigned nonzero coeff."<< endl; - it2++; - } - } - } - else{ - it2=0; - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ - if (donor_elem!=-1){ - //Important: jPoint is set to the nearest neighbor above. Be careful not to overwrite it. - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(it); - } - else{ - jPoint = iNearestNode; - } - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); - if (ivtx!=-1){ - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ - Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it-it2,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it-it2,myCoeff[it]); - } - else { - /*---If this node of the element is not a vertex of markFEA GetVertex will return -1 - and we should neglect this point (TODO: make sure this is also taken into account in isoparam) - Reduce the number of donor points --*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints( - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()-1); - if (abs(myCoeff[it])>1e-12) - cout <<"Warning: interior pt assigned nonzero coeff."<< endl; - it2++; + inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); } } + else + jPoint = iNearestNode; // If no matching element is found, revert to Nearest Neighbor + + ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + nn[1] = jPoint; /* global index of the donor point */ + nn[3] = ivtx; /* vertex index within marker of the donor point */ + //Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); + Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,myCoeff[it]); } } + /*--- Now that all the transfer coefficients have been calculated, loop through the structure vertices * and set the same transfer coefficients at the matching points */ - index=3; - for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { - ivtx=0; - Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->Allocate_DonorInfo(); - /*--- Loop over all aero points ---*/ - for (iVertex=0; iVertexGetnVertex(markFlow); iVertex++){ - /*--- Loop over the donor vertices for iVertex (flow vertex) ---*/ - for (inode=0; inodevertex[markFlow][iVertex]->GetnDonorPoints(); inode++){ - /*--- If one of the donor points is the same as the FEA vertex, add information ---*/ - if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]-> GetDonorInfo(inode,index) == jVertex){ - iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); - nn[0] = iZone_0; /* Zone of the donor point */ - nn[1] = iPoint; /* global index of the donor point */ - nn[2] = markFlow; /* marker of the donor point */ - nn[3] = iVertex; /* vertex index within marker of the donor point */ - coeff = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorCoeff(inode); - Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorInfo(ivtx,nn); - Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorCoeff(ivtx,coeff); - ivtx++; - } - if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ - break; - } - } - if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ - break; - } - - } - if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ - break; - } - } +// index=3; +// for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { +// ivtx=0; +// Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->Allocate_DonorInfo(); +// /*--- Loop over all aero points ---*/ +// for (iVertex=0; iVertexGetnVertex(markFlow); iVertex++){ +// /*--- Loop over the donor vertices for iVertex (flow vertex) ---*/ +// for (inode=0; inodevertex[markFlow][iVertex]->GetnDonorPoints(); inode++){ +// /*--- If one of the donor points is the same as the FEA vertex, add information ---*/ +// if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]-> GetDonorInfo(inode,index) == jVertex){ +// iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); +// nn[0] = iZone_0; /* Zone of the donor point */ +// nn[1] = iPoint; /* global index of the donor point */ +// nn[2] = markFlow; /* marker of the donor point */ +// nn[3] = iVertex; /* vertex index within marker of the donor point */ +// coeff = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorCoeff(inode); +// Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorInfo(ivtx,nn); +// Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorCoeff(ivtx,coeff); +// ivtx++; +// } +// if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ +// break; +// } +// } +// if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ +// break; +// } +// +// } +// if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ +// break; +// } +// } } /*-- Delete locally allocated memory ---*/ @@ -642,36 +616,41 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned short nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ - short i,j,k; + short i,j,k, iedge; short n0 = nDim+1, n, iDim; short m = nDonorPoints, m0; - unsigned long jPoint, jNode; + unsigned long jPoint, jNode, jPoint2; su2double tmp, tmp2; su2double x[m], xj[m], x_tmp[m]; su2double Q[m*m], R[m*m], A[n0*m]; su2double x2[n0]; su2double* Normal; - bool test[n0], testi[n0],on_marker[m]; + + bool test[n0], testi[n0],on_marker[m]; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; m0=m; - /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ /*--- Right hand side is [1, \vec{x}']'---*/ for (i=0; ivertex[iMarker][iVertex]->GetCoord(j-1); /*--- Project point xj onto surface --*/ - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,0)); + if (nDim==3){ + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,0)); + } + else{ + iedge = Geometry[iZone_1][MESH_0]->node[donor_elem]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(0); + } jNode = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker); Normal = Geometry[iZone_1][MESH_0]->vertex[jMarker][jNode]->GetNormal(); tmp = 0; @@ -680,7 +659,6 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, tmp+=Normal[iDim]*Normal[iDim]; tmp2+=Normal[iDim]*(xj[iDim+1]-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim)); } - //cout << tmp << endl; tmp = 1/tmp; for (iDim=0; iDimnode[donor_elem]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(0); + jPoint2= Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(1); + tmp = pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(0)- Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(0),2.0); + tmp += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1)- Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1),2.0); + tmp = sqrt(tmp); + + tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(0) - x[0],2.0); + tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1) - x[1],2.0); + tmp2 = sqrt(tmp2); + isoparams[0] = tmp2/tmp; + + tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(0) - x[0],2.0); + tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1) - x[1],2.0); + tmp2 = sqrt(tmp2); + isoparams[1] = tmp2/tmp; + } + else{ + /*--- temp2 contains node #s that are on the surface (aka, we are excluding interior points) ---*/ + for (k=0; kelem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,k)); - else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(k); - // Neglect donor points that are not members of the matching marker. - on_marker[k] =(Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker)!=-1); - if (on_marker[k]){ - // jth coordinate of the ith donor vertex - for (j=1; jnode[jPoint]->GetCoord(j-1); - //cout <<" node " << jPoint <<" dim "<< j-1 <<" Coord "<< A[j*m+i]; + // Neglect donor points that are not members of the matching marker. + on_marker[k] =(Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker)!=-1); + if (on_marker[k]){ + // jth coordinate of the ith donor vertex + for (j=1; jnode[jPoint]->GetCoord(j-1); + } + i++; } - i++; + else + m--; } - else - m--; - } - - /*--- Eliminate degenerate rows: - * for example, if z constant including the z values will make the system degenerate - * TODO: improve efficiency of this loop---*/ - test[0]=true; // always keep the 1st row - for (i=1; ieps && i=0; i--){ - if (R[i*m+i]>eps) - isoparams[i]=x_tmp[i]/R[i*m+i]; - else - isoparams[i]=0; - for (j=0; jeps && i1) isoparams[i]=1; -// if (isoparams[i]<0) isoparams[i]=0; -// tmp+=isoparams[i]*isoparams[i]; -// } -// tmp = pow(tmp,0.5); -// for (i=0; i 1, point is ouside face, not really represented accurately ---*/ - bool inside_face = true; - for (i=0; i 1.1 ) - inside_face = false; - } - if (!inside_face){ - /*--- Revert to nearest neighbor ---*/ - tmp=-1; tmp2=0.0; k=0; - for (i=0; ielem[donor_elem]->GetFaces(iFace,i); - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); + for (k=0; k=0; i--){ + if (R[i*m+i]>eps) + isoparams[i]=x_tmp[i]/R[i*m+i]; else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); + isoparams[i]=0; + for (j=0; jnode[jPoint]->GetCoord(j)-x[j]),2.0); - if (tmp==-1 or tmp21) isoparams[i]=1; + // if (isoparams[i]<0) isoparams[i]=0; + // tmp+=isoparams[i]*isoparams[i]; + // } + // tmp = pow(tmp,0.5); + // for (i=0; i=0;k--){ - if (on_marker[k]){ - isoparams[k] = isoparams[i]; - i--; + /*--- Check 2: if > 1, point is ouside face, not really represented accurately ---*/ + bool inside_face = true; + for (i=0; i 1.1 ) + inside_face = false; } - else - isoparams[k] = 0; - } - /*--- Check 4: print the result --- - for (k=0; kelem[donor_elem]->GetFaces(iFace,i); + if (!inside_face){ + /*--- Revert to nearest neighbor ---*/ + tmp=-1; tmp2=0.0; k=0; + for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); + for (j=0;jnode[jPoint]->GetCoord(j)-x[j]),2.0); + if (tmp==-1 or tmp2=0;k--){ + if (on_marker[k]){ + isoparams[k] = isoparams[i]; + i--; + } else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); - tmp+=isoparams[i]*(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(k)); + isoparams[k] = 0; } - cout << tmp << endl; - } - */ + /*--- Check 4: print the result --- + for (k=0; kelem[donor_elem]->GetFaces(iFace,i); + else + jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); + tmp+=isoparams[i]*(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(k)); + } + cout << tmp << endl; + + } + */ } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 4db5613799f..925bbffe67d 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -283,8 +283,8 @@ int main(int argc, char *argv[]) { Zones[1]=ZONE_1; if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) - interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); + if (config_container[ZONE_0]->GetKindInterpolation()== ISOPARAMETRIC ) + interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); } From 118f0c4e081fff2ed24115fa69711b1f1abe1b19 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 00:14:08 -0700 Subject: [PATCH 086/269] simplified isoparam subfunction --- Common/include/interpolation_structure.hpp | 4 +- Common/src/interpolation_structure.cpp | 70 ++++++---------------- 2 files changed, 21 insertions(+), 53 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index b21e3cba025..c0e05e4d2a4 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -187,6 +187,8 @@ class CIsoparametric : public CInterpolator { * \param[in] donor_elem - element index of the element to use for interpolation * \param[in[ nDonorPoints - number of donor points in the element. */ - void Isoparameters(su2double* isoparams, unsigned int iZone_0, unsigned short iMarker, unsigned long iVertex, unsigned short nDim, unsigned int iZone_1, unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints); + void Isoparameters(su2double* isoparams, unsigned long iVertex, + unsigned short nDim, unsigned int iZone_1, long donor_elem, unsigned short iFace, + unsigned int nDonorPoints, su2double* xj); }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 86311f14077..f3237b86073 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -487,9 +487,9 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ myCoefftemp = new su2double[nNodes]; if (nDim==3) - Isoparameters( myCoefftemp, iZone_0, markFlow, iVertex, nDim, iZone_1, markFEA, temp_donor, iFace, nNodes); + Isoparameters( myCoefftemp, iVertex,nDim, iZone_1, temp_donor, iFace, nNodes, projected_point); else{ - Isoparameters( myCoefftemp, iZone_0, markFlow, iVertex, nDim, iZone_1, markFEA, iNearestNode, iFace, nNodes); + Isoparameters( myCoefftemp, iVertex,nDim, iZone_1, iNearestNode, iFace, nNodes, projected_point); } /*--- If closer than last closest projected point, save. ---*/ Coord = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(); @@ -613,21 +613,20 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, - unsigned short iMarker, unsigned long iVertex, unsigned short nDim, unsigned int iZone_1, - unsigned short jMarker, long donor_elem, unsigned short iFace, unsigned int nDonorPoints){ +void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, + unsigned short nDim, unsigned int iZone_1, long donor_elem, unsigned short iFace, + unsigned int nDonorPoints, su2double* xj){ short i,j,k, iedge; short n0 = nDim+1, n, iDim; short m = nDonorPoints, m0; - unsigned long jPoint, jNode, jPoint2; + unsigned long jPoint, jPoint2; su2double tmp, tmp2; - su2double x[m], xj[m], x_tmp[m]; + su2double x[m], x_tmp[m]; su2double Q[m*m], R[m*m], A[n0*m]; su2double x2[n0]; - su2double* Normal; - bool test[n0], testi[n0],on_marker[m]; + bool test[n0], testi[n0]; /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ n=n0; m0=m; @@ -638,35 +637,9 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, for (i=0; ivertex[iMarker][iVertex]->GetCoord(j-1); - - /*--- Project point xj onto surface --*/ - if (nDim==3){ - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,0)); - } - else{ - iedge = Geometry[iZone_1][MESH_0]->node[donor_elem]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(0); - } - jNode = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker); - Normal = Geometry[iZone_1][MESH_0]->vertex[jMarker][jNode]->GetNormal(); - tmp = 0; - tmp2=0; - for (iDim=0; iDimnode[jPoint]->GetCoord(iDim)); - } - tmp = 1/tmp; - for (iDim=0; iDimelem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,k)); // Neglect donor points that are not members of the matching marker. - on_marker[k] =(Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(jMarker)!=-1); - if (on_marker[k]){ - // jth coordinate of the ith donor vertex - for (j=1; jnode[jPoint]->GetCoord(j-1); - } - i++; + // jth coordinate of the ith donor vertex + for (j=1; jnode[jPoint]->GetCoord(j-1); } - else - m--; + i++; + } /*--- Eliminate degenerate rows: * for example, if z constant including the z values will make the system degenerate @@ -839,12 +808,9 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned int iZone_0, /*--- Check 3: reorg for neglected points--- */ i=m-1; for (k=m0-1;k>=0;k--){ - if (on_marker[k]){ - isoparams[k] = isoparams[i]; - i--; - } - else - isoparams[k] = 0; + isoparams[k] = isoparams[i]; + i--; + } } /*--- Check 4: print the result --- From a893b358fad0d12b3c756919d2e23cab8dedc19b Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 02:37:16 -0700 Subject: [PATCH 087/269] further changes to isoparametric interp. --- Common/src/interpolation_structure.cpp | 186 ++++++++++++------------- 1 file changed, 92 insertions(+), 94 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index f3237b86073..508026d1ce1 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -324,8 +324,8 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned short iDim, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); su2double distance = 0.0, last_distance=-1.0, *Coord; - su2double* myCoeff; - su2double* myCoefftemp; + su2double myCoeff[10]; + //su2double* myCoefftemp; su2double* donorCoord; su2double coeff, tmp, tmp2; long donor_elem=0, temp_donor; @@ -438,7 +438,9 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ for (unsigned int ifacenode=0; ifacenodenode[iNearestNode]->GetEdge(iFace); jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(ifacenode); + face_on_marker = (face_on_marker and (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); + //cout <elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + } + else{ + inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); + } + donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); + for (iDim=0; iDimvertex[markFlow][iVertex]->GetCoord(); for (it=0; it< nNodes; it++){ /*--- If 3D loop over a face. if 2D loop over an element ---*/ if (nDim==3){ - //jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it); jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); - //cout << "jPoint " << jPoint << endl; } else{ inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); } - donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); - //cout <<" isoparam: " << myCoefftemp[it] <<" Coord: "; + //cout <<" isoparam: " << myCoeff[it] <<" Coord: "; for (iDim=0; iDimvertex[markFlow][iVertex]->SetDonorElem(temp_donor); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorFace(iFace); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); @@ -535,7 +537,6 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nNodes=1; Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); donor_elem = -1; - myCoeff = new su2double[1]; myCoeff[0] = 1; } @@ -564,7 +565,9 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ //Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,myCoeff[it]); + //cout <<" myCoeff " << myCoeff[it] << " "; } + //cout << endl; } /*--- Now that all the transfer coefficients have been calculated, loop through the structure vertices @@ -604,13 +607,6 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ // } // } } - /*-- Delete locally allocated memory ---*/ - - if (myCoeff!=NULL) - delete[] myCoeff; - if (myCoefftemp!=NULL) - delete[] myCoefftemp; - } void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, @@ -627,22 +623,10 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, bool test[n0], testi[n0]; - /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ - n=n0; - m0=m; - /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ - /*--- Right hand side is [1, \vec{x}']'---*/ - for (i=0; inode[donor_elem]->GetEdge(iFace); jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(0); jPoint2= Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(1); @@ -650,17 +634,32 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, tmp += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1)- Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1),2.0); tmp = sqrt(tmp); - tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(0) - x[0],2.0); - tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1) - x[1],2.0); + tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(0) - xj[0],2.0); + tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1) - xj[1],2.0); tmp2 = sqrt(tmp2); isoparams[0] = tmp2/tmp; - tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(0) - x[0],2.0); - tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1) - x[1],2.0); + tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(0) - xj[0],2.0); + tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1) - xj[1],2.0); tmp2 = sqrt(tmp2); isoparams[1] = tmp2/tmp; + } else{ + /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ + n=n0; + m0=m; + /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ + /*--- Right hand side is [1, \vec{x}']'---*/ + for (i=0; i1) isoparams[i]=1; - // if (isoparams[i]<0) isoparams[i]=0; - // tmp+=isoparams[i]*isoparams[i]; - // } - // tmp = pow(tmp,0.5); - // for (i=0; i 1, point is ouside face, not really represented accurately ---*/ - bool inside_face = true; + } + /*--- Isoparametric coefficients have been calculated. Run checks to eliminate ---*/ + + su2double tol = 1e-13; // hardcoded tolerance + /*--- Check 0: normalize to 1: corrects for points not in face---*/ +// tmp=0; +// for (i=0; i1) isoparams[i]=1; +// if (isoparams[i]<0) isoparams[i]=0; +// tmp+=isoparams[i]*isoparams[i]; +// } +// tmp = pow(tmp,0.5); +// for (i=0; i 1, point is ouside face, not really represented accurately ---*/ + bool inside_face = true; + for (i=0; i 1.0 or isoparams[i]<-0.0 ) + inside_face = false; + } + if (!inside_face){ + //cout <<"Reverted to nearest neighbor " << endl; + /*--- Revert to nearest neighbor ---*/ + tmp=-1; tmp2=0.0; k=0; for (i=0; i 1.1 ) - inside_face = false; - } - if (!inside_face){ - /*--- Revert to nearest neighbor ---*/ - tmp=-1; tmp2=0.0; k=0; - for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + /*--- If 3D loop over a face. if 2D loop over an element ---*/ + //jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i); + if (nDim==3) jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); - for (j=0;jnode[jPoint]->GetCoord(j)-x[j]),2.0); - if (tmp==-1 or tmp2node[donor_elem]->GetEdge(iFace); + jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(i); } - isoparams[k]=1; - } - /*--- Check 3: reorg for neglected points--- */ - i=m-1; - for (k=m0-1;k>=0;k--){ - isoparams[k] = isoparams[i]; - i--; + for (j=0;jnode[jPoint]->GetCoord(j)-x[j]),2.0); + if (tmp==-1 or tmp2 Date: Wed, 16 Sep 2015 10:22:52 -0700 Subject: [PATCH 088/269] yet another fix to isoparam 2D --- Common/include/interpolation_structure.hpp | 27 +- Common/src/interpolation_structure.cpp | 350 +++++++++++---------- 2 files changed, 197 insertions(+), 180 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index c0e05e4d2a4..4cfe222b527 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -160,6 +160,13 @@ class CIsoparametric : public CInterpolator { /*! * \brief Constructor of the class. + * \param[in] geometry_container + * \param[in] config - config container + * \param[in] Zones - list of zone indices to use for interpolation. in the order: [Recipient/Target, Donor ] + * \param[in] nZone - number of zones + * + * Data is set in geometry[targetZone] + * */ CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); @@ -170,22 +177,26 @@ class CIsoparametric : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes - * \param[in] Zones - list of zones to use for interpolation - * \param[in] config - + * \param[in] Zones - list of zones to use for interpolation. in the order: [Recipient/Target, Donor ] + * \param[in] config - config container + * + * Data is set in geometry[targetZone] */ void Set_TransferCoeff(unsigned int* Zones, CConfig **config); /*! * \brief Calculate the isoparametric representation of point iVertex in marker iZone_0 by nodes of element donor_elem in marker jMarker of zone iZone_1. - * \param[out] isoparams - isoparametric coefficients. Must be allocated to size nNodes ahead of time. - * \param[in] iZone_0 - zone index of the point being interpolated - * \param[in] iMarker - marker index of the point being interpolated + * \param[out] isoparams - isoparametric coefficients. Must be allocated to size nNodes ahead of time. (size> nDonors) * \param[in] iVertex - vertex index of the point being interpolated. * \param[in] nDim - the dimension of the coordinates. - * \param[in] iZone_1 - zone index of the element to use for interpolation - * \param[in] jMarker - marker index of the element to use for interpolation - * \param[in] donor_elem - element index of the element to use for interpolation + * \param[in] iZone_1 - zone index of the element to use for interpolation (the DONOR zone) + * \param[in] donor_elem - element index of the element to use for interpolation (or global index of a point in 2D) * \param[in[ nDonorPoints - number of donor points in the element. + * \param[in[ xj - point projected onto the plane of the donor element. + * + * If the problem is 2D, the 'face' projected onto is actually an edge; the local index + * of the edge is then stored in iFace, and the global index of the node (from which the edge + * is referenced) */ void Isoparameters(su2double* isoparams, unsigned long iVertex, unsigned short nDim, unsigned int iZone_1, long donor_elem, unsigned short iFace, diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 508026d1ce1..00bd4f0a930 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -46,7 +46,7 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, /*--- Initialize transfer coefficients between the zones ---*/ /* Since this is a virtual function, call it in the child class constructor */ - //Set_TransferCoeff(iZone_0,iZone_1,config); + //Set_TransferCoeff(targetZone,donorZone,config); /*--- Initialize transfer coefficients between the zones ---*/ //Set_TransferCoeff(Zones,config); @@ -79,7 +79,7 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) //void CInterpolator::Interpolate_Data(unsigned int iZone, CConfig **config){ // unsigned long iPoint, jPoint, jVertex, iMarker, iVertex; // unsigned short jMarker; -// unsigned int iZone_1; +// unsigned int donorZone; // su2double weight=0.0; // // /*--- Loop through points, increment Data in the input zone by the weight in the transfer matrix ---*/ @@ -96,14 +96,14 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) // /*--- Interpolate ---*/ // for (unsigned short jDonor = 0; jDonor< Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ // /* Unpack info about the donor point */ -// iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); +// donorZone = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); // jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); // jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); // jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); // weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); // /*--- Increment the value of the data ---*/ // for (unsigned short iVar=0; iVarGetnDim(); @@ -128,20 +128,20 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) // for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ -// iZone_1 = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); +// donorZone = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); // jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); // jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); // jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); // weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); // /* Get translation and rotation from the solution */ -// VarCoord = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); -// VarRot = Geometry[iZone_1][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); +// VarCoord = Geometry[donorZone][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); +// VarRot = Geometry[donorZone][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); // // for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(iDim); +// distance[iDim] = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(iDim); // } // /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ // if (nDim==2){ @@ -207,13 +207,13 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ // su2double distance = 0.0, last_distance=-1.0; // // unsigned short int donorindex = 0; -// unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; -// unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; -// unsigned short markFEA, markFlow; +// unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; +// unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; +// unsigned short markDonor, markTarget; // // /*--- Restricted to 2-zone fluid-structure for now ---*/ -// unsigned int iZone_0 = Zones[0]; -// unsigned int iZone_1 = Zones[1]; +// unsigned int targetZone = Zones[0]; +// unsigned int donorZone = Zones[1]; // // nn = new unsigned long[4]; // @@ -222,86 +222,86 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ // * interpolation the number of donor points must be determined first. ---*/ // // /*--- Number of markers on the FSI interface ---*/ -// nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; -// nMarkerFEA = config[iZone_1]->GetnMarker_All(); -// nMarkerFlow = config[iZone_0]->GetnMarker_All(); +// nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; +// nMarkerDonor = config[donorZone]->GetnMarker_All(); +// nMarkerTarget = config[targetZone]->GetnMarker_All(); // // /*--- For the number of markers on the interface... ---*/ -// for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ +// for (iMarkerInt=0; iMarkerInt < nMarkerInt; iMarkerInt++){ // -// /*--- ... the marker markFEA ... ---*/ -// for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ -// if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ -// markFEA=iMarkerFEA; +// /*--- ... the marker markDonor ... ---*/ +// for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ +// if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt+1)){ +// markDonor=iMarkerDonor; // } // } -// /*--- ... corresponds to the marker markFlow. ---*/ -// for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ -// if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ -// markFlow=iMarkerFlow; +// /*--- ... corresponds to the marker markTarget. ---*/ +// for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ +// if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt+1)){ +// markTarget=iMarkerTarget; // } // } // // /*--- For the markers on the fluid side ---*/ // /*--- Loop over the vertices on the marker ---*/ -// for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { -// iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); +// for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { +// iPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetNode(); // last_distance=-1.0; // /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ -// Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(1); -// Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); +// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(1); +// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->Allocate_DonorInfo(); // /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ // -// for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { -// jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); +// for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { +// jPoint =Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetNode(); // distance = 0.0; // for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); +// distance+=pow(Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetCoord(iDim)-Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetCoord(iDim),2.0); // if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); +// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,1.0); // } // // /*--- For the marker on the FEA side ---*/ // /*--- Loop over the vertices on the marker ---*/ -// for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { -// iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); +// for (iVertex = 0; iVertexGetnVertex(markDonor); iVertex++) { +// iPoint =Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->GetNode(); // last_distance=-1.0; // /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ -// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetnDonorPoints(1); -// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); +// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetnDonorPoints(1); +// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->Allocate_DonorInfo(); // /*--- Loop over vertices in the interface marker (zone 0) --*/ -// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); -// for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { -// jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); +// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetDonorInfo(donorindex,nn); +// for (jVertex = 0; jVertexGetnVertex(markTarget); jVertex++) { +// jPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][jVertex]->GetNode(); // distance = 0.0; // for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); +// distance+=pow(Geometry[targetZone][MESH_0]->vertex[markTarget][jVertex]->GetCoord(iDim)-Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->GetCoord(iDim),2.0); // if ((jVertex==0) or (distancevertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); +// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetDonorInfo(donorindex,nn); +// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetDonorCoeff(donorindex,1.0); // } // } } @@ -330,13 +330,14 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ su2double coeff, tmp, tmp2; long donor_elem=0, temp_donor; - unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; - unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; - unsigned short markFEA, markFlow, iFace; + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; + unsigned short markDonor, markTarget, iFace; + unsigned int nNodes=0; /*--- Restricted to 2-zone fluid-structure for now ---*/ - unsigned int iZone_0 = Zones[0]; - unsigned int iZone_1 = Zones[1]; + unsigned int targetZone = Zones[0]; + unsigned int donorZone = Zones[1]; unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; unsigned int it2=0; @@ -344,13 +345,13 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ su2double *Normal; nn = new unsigned long[4]; - //cout <<"SetTransfer Coeff"<< endl; - /*--- Number of markers on the FSI interface ---*/ - nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; - nMarkerFEA = config[iZone_1]->GetnMarker_All(); - nMarkerFlow = config[iZone_0]->GetnMarker_All(); + + /*--- Number of markers on the interface ---*/ + nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; + nMarkerDonor = config[donorZone]->GetnMarker_All(); + nMarkerTarget = config[targetZone]->GetnMarker_All(); /*--- For the number of markers on the interface... ---*/ - for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + for (iMarkerInt=0; iMarkerInt < nMarkerInt; iMarkerInt++){ /*--- Procedure: * -Loop through vertices of the aero grid * -Find nearest element and allocate enough space in the aero grid donor point info @@ -361,36 +362,36 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ * -Loop through the aero vertices and set the donor info at the structure vertices */ - /*--- ... the marker markFEA ... ---*/ - for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA=iMarkerFEA; + /*--- ... the marker markDonor ... ---*/ + for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt+1)){ + markDonor=iMarkerDonor; } } - /*--- ... corresponds to the marker markFlow. ---*/ - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow=iMarkerFlow; + /*--- ... corresponds to the marker markTarget. ---*/ + for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt+1)){ + markTarget=iMarkerTarget; } } - //cout <<"markers: " << markFEA << " " << markFlow << endl; + //cout <<"markers: " << markDonor << " " << markTarget << endl; /*--Same for all points: -*/ - nn[0] = iZone_1; /* Zone of the donor point */ - nn[2] = markFEA; /* marker of the donor point */ + nn[0] = donorZone; /* Zone of the donor point */ + nn[2] = markDonor; /* marker of the donor point */ /*--- For the markers on the fluid side ---*/ /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); // Global index of iVertex + for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { + iPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetNode(); // Global index of iVertex last_distance=-1.0; /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ - for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { - jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); // Global index of jVertex + for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + jPoint =Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetNode(); // Global index of jVertex distance = 0.0; for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)- - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); + distance+=pow(Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetCoord(iDim)- + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetCoord(iDim),2.0); if ((last_distance==-1.0) or (distancenode[iNearestNode]->GetnElem(); jElem++){ + for (jElem=0; jElemnode[iNearestNode]->GetnElem(); jElem++){ + - temp_donor = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetElem(jElem); /*--- Loop over all the faces of this element to find ones on the interface boundary - * If a face is on markFEA, then find the distance and check against previous to find closest + * If a face is on markDonor, then find the distance and check against previous to find closest * face. ---*/ - if (nDim==3) - nFaces = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetnFaces(); - else - nFaces = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetnPoint(); + if (nDim==3){ + nFaces = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetnFaces(); + temp_donor = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetElem(jElem); + } + else{ + nFaces = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetnPoint(); + temp_donor = iNearestNode; + } for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); + nNodes = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetnNodesFace(iFace); /*-- Check if on marker of interface---*/ for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); - jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(inode); + inode = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace, ifacenode); + jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(inode); - face_on_marker = (face_on_marker and (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); + face_on_marker = (face_on_marker and (Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor) !=-1)); } } else{ /*-- 2D: 'face' is an edge connected to the nearest node ---*/ nNodes = 2; // edges have two nodes for (unsigned int ifacenode=0; ifacenodenode[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(ifacenode); + inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(ifacenode); - face_on_marker = (face_on_marker and (Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA) !=-1)); + face_on_marker = (face_on_marker and (Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor) !=-1)); //cout <vertex[markFlow][iVertex]->GetCoord(); - Normal = Geometry[iZone_1][MESH_0]->vertex[markFEA][iNearestVertex]->GetNormal(); - donorCoord = Geometry[iZone_1][MESH_0]->vertex[markFEA][iNearestVertex]->GetCoord(); + Coord = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetCoord(); + Normal = Geometry[donorZone][MESH_0]->vertex[markDonor][iNearestVertex]->GetNormal(); + donorCoord = Geometry[donorZone][MESH_0]->vertex[markDonor][iNearestVertex]->GetCoord(); /*--- Project point xj onto surface --*/ tmp = 0; @@ -462,38 +467,37 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ tmp2+=Normal[iDim]*(Coord[iDim]-donorCoord[iDim]); } tmp = 1/tmp; + tmp2 = tmp2*sqrt(tmp); for (iDim=0; iDimelem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); } else{ - inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); + inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(it); } - donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); + donorCoord = Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(); for (iDim=0; iDimvertex[markFlow][iVertex]->GetCoord(); - + // Print check + for (iDim=0; iDimelem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); } else{ - inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); + inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(it); } - donorCoord = Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(); + donorCoord = Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(); //cout <<" isoparam: " << myCoeff[it] <<" Coord: "; for (iDim=0; iDimvertex[markFlow][iVertex]->SetDonorElem(temp_donor); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorFace(iFace); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); - //cout <<"updated closest face/edge" << endl; + for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(temp_donor); // in 2D is nearest neighbor + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorFace(iFace); + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); + cout <<"updated closest face/edge" << endl; } } } } /*--- If nDonorPoints ==0, no match was found, set nearest neighbor ---*/ - if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints()==0){ + if (Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetnDonorPoints()==0){ nNodes=1; - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(nNodes); + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); donor_elem = -1; myCoeff[0] = 1; } /*--- Set the appropriate amount of memory ---*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); - iFace = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorFace(); + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + iFace = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetDonorFace(); /*--- Loop over vertices of the element ---*/ - for (it=0; it< Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetnDonorPoints(); it++){ + for (it=0; it< Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetnDonorPoints(); it++){ if (donor_elem!=-1){ if (nDim==3){ - jPoint = Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetNode(Geometry[iZone_1][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); } else{ - inode = Geometry[iZone_1][MESH_0]->node[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[inode]->GetNode(it); + inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); + jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(it); } } else jPoint = iNearestNode; // If no matching element is found, revert to Nearest Neighbor - ivtx = Geometry[iZone_1][MESH_0]->node[jPoint]->GetVertex(markFEA); + ivtx = Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor); nn[1] = jPoint; /* global index of the donor point */ nn[3] = ivtx; /* vertex index within marker of the donor point */ - //Geometry[iZone_1][MESH_0]->vertex[markFEA][ivtx]->IncrementnDonor(); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorInfo(it,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(it,myCoeff[it]); + //Geometry[donorZone][MESH_0]->vertex[markDonor][ivtx]->IncrementnDonor(); + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorInfo(it,nn); + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorCoeff(it,myCoeff[it]); //cout <<" myCoeff " << myCoeff[it] << " "; } //cout << endl; @@ -574,35 +580,35 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ * and set the same transfer coefficients at the matching points */ // index=3; -// for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { +// for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { // ivtx=0; -// Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->Allocate_DonorInfo(); +// Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->Allocate_DonorInfo(); // /*--- Loop over all aero points ---*/ -// for (iVertex=0; iVertexGetnVertex(markFlow); iVertex++){ +// for (iVertex=0; iVertexGetnVertex(markTarget); iVertex++){ // /*--- Loop over the donor vertices for iVertex (flow vertex) ---*/ -// for (inode=0; inodevertex[markFlow][iVertex]->GetnDonorPoints(); inode++){ +// for (inode=0; inodevertex[markTarget][iVertex]->GetnDonorPoints(); inode++){ // /*--- If one of the donor points is the same as the FEA vertex, add information ---*/ -// if (Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]-> GetDonorInfo(inode,index) == jVertex){ -// iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); -// nn[0] = iZone_0; /* Zone of the donor point */ +// if (Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]-> GetDonorInfo(inode,index) == jVertex){ +// iPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetNode(); +// nn[0] = targetZone; /* Zone of the donor point */ // nn[1] = iPoint; /* global index of the donor point */ -// nn[2] = markFlow; /* marker of the donor point */ +// nn[2] = markTarget; /* marker of the donor point */ // nn[3] = iVertex; /* vertex index within marker of the donor point */ -// coeff = Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetDonorCoeff(inode); -// Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorInfo(ivtx,nn); -// Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->SetDonorCoeff(ivtx,coeff); +// coeff = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetDonorCoeff(inode); +// Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->SetDonorInfo(ivtx,nn); +// Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->SetDonorCoeff(ivtx,coeff); // ivtx++; // } -// if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ +// if (ivtx>=Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetnDonorPoints()-1){ // break; // } // } -// if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ +// if (ivtx>=Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetnDonorPoints()-1){ // break; // } // // } -// if (ivtx>=Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetnDonorPoints()-1){ +// if (ivtx>=Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetnDonorPoints()-1){ // break; // } // } @@ -610,7 +616,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, - unsigned short nDim, unsigned int iZone_1, long donor_elem, unsigned short iFace, + unsigned short nDim, unsigned int donorZone, long donor_elem, unsigned short iFace, unsigned int nDonorPoints, su2double* xj){ short i,j,k, iedge; short n0 = nDim+1, n, iDim; @@ -627,22 +633,22 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, /*--- 2D: line, no need to go through computation --*/ if (nDim==2){ - iedge = Geometry[iZone_1][MESH_0]->node[donor_elem]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(0); - jPoint2= Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(1); - tmp = pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(0)- Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(0),2.0); - tmp += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1)- Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1),2.0); + iedge = Geometry[donorZone][MESH_0]->node[donor_elem]->GetEdge(iFace); + jPoint = Geometry[donorZone][MESH_0]->edge[iedge]->GetNode(0); + jPoint2= Geometry[donorZone][MESH_0]->edge[iedge]->GetNode(1); + tmp = pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(0)- Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(0),2.0); + tmp += pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(1)- Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(1),2.0); tmp = sqrt(tmp); - tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(0) - xj[0],2.0); - tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(1) - xj[1],2.0); + tmp2 = pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(0) - xj[0],2.0); + tmp2 += pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(1) - xj[1],2.0); tmp2 = sqrt(tmp2); - isoparams[0] = tmp2/tmp; + isoparams[1] = tmp2/tmp; - tmp2 = pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(0) - xj[0],2.0); - tmp2 += pow(Geometry[iZone_1][MESH_0]->node[jPoint2]->GetCoord(1) - xj[1],2.0); + tmp2 = pow(Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(0) - xj[0],2.0); + tmp2 += pow(Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(1) - xj[1],2.0); tmp2 = sqrt(tmp2); - isoparams[1] = tmp2/tmp; + isoparams[0] = tmp2/tmp; } else{ @@ -664,11 +670,11 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, for (k=0; kelem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,k)); + jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetNode(Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,k)); // Neglect donor points that are not members of the matching marker. // jth coordinate of the ith donor vertex for (j=1; jnode[jPoint]->GetCoord(j-1); + A[j*m+i] = Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(j-1); } i++; @@ -793,16 +799,16 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, tmp=-1; tmp2=0.0; k=0; for (i=0; ielem[donor_elem]->GetFaces(iFace,i); + //jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,i); if (nDim==3) - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); + jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetNode(Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); else{ - iedge = Geometry[iZone_1][MESH_0]->node[donor_elem]->GetEdge(iFace); - jPoint = Geometry[iZone_1][MESH_0]->edge[iedge]->GetNode(i); + iedge = Geometry[donorZone][MESH_0]->node[donor_elem]->GetEdge(iFace); + jPoint = Geometry[donorZone][MESH_0]->edge[iedge]->GetNode(i); } for (j=0;jnode[jPoint]->GetCoord(j)-x[j]),2.0); + tmp2+=pow((Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(j)-x[j]),2.0); if (tmp==-1 or tmp2elem[donor_elem]->GetFaces(iFace,i); + jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,i); else - jPoint = Geometry[iZone_1][MESH_0]->elem[donor_elem]->GetNode(i); - tmp+=isoparams[i]*(Geometry[iZone_1][MESH_0]->node[jPoint]->GetCoord(k)); + jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetNode(i); + tmp+=isoparams[i]*(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(k)); } cout << tmp << endl; From bdad39c6c1d63b79892ca077188c5a87072d4a96 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 10:57:07 -0700 Subject: [PATCH 089/269] further fixes to isoparam --- Common/src/interpolation_structure.cpp | 38 +++++++++++--------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 00bd4f0a930..a35ba8d5f67 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -399,7 +399,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ iNearestVertex = jVertex; } } - //cout <<" Nearest Neighbor for flow point " << iPoint <<" is "<< iNearestNode << "; d = " << last_distance << endl; + cout <<" Nearest Neighbor for flow point " << iPoint <<" is "<< iNearestNode << "; d = " << last_distance << endl; donor_elem=-1; last_distance=-1; @@ -407,21 +407,18 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Now that we know the closest vertex, the closest element must be one of the ones connected to the vertex--*/ for (jElem=0; jElemnode[iNearestNode]->GetnElem(); jElem++){ - - /*--- Loop over all the faces of this element to find ones on the interface boundary * If a face is on markDonor, then find the distance and check against previous to find closest * face. ---*/ if (nDim==3){ - nFaces = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetnFaces(); temp_donor = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetElem(jElem); + nFaces = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetnFaces(); } else{ - nFaces = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetnPoint(); temp_donor = iNearestNode; + nFaces = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetnPoint(); } - for (iFace=0; iFaceelem[temp_donor]->GetFaces(iFace, ifacenode); jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(inode); - face_on_marker = (face_on_marker and (Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor) !=-1)); } } @@ -443,9 +439,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ for (unsigned int ifacenode=0; ifacenodenode[iNearestNode]->GetEdge(iFace); jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(ifacenode); - face_on_marker = (face_on_marker and (Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor) !=-1)); - //cout <edge[inode]->GetNode(it); } donorCoord = Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(); - //cout <<" isoparam: " << myCoeff[it] <<" Coord: "; + cout <<" isoparam: " << myCoeff[it] <<" Coord: "; for (iDim=0; iDimnode[iNearestNode]->GetCoord(); + cout << endl; for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(temp_donor); // in 2D is nearest neighbor Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorFace(iFace); @@ -627,6 +621,9 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, su2double Q[m*m], R[m*m], A[n0*m]; su2double x2[n0]; + /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ + n=n0; + m0=m; bool test[n0], testi[n0]; @@ -652,9 +649,7 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, } else{ - /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ - n=n0; - m0=m; + /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ /*--- Right hand side is [1, \vec{x}']'---*/ for (i=0; i 1, point is ouside face, not really represented accurately ---*/ bool inside_face = true; for (i=0; i 1.0 or isoparams[i]<-0.0 ) + if (isoparams[i]> 1.1 or isoparams[i]<-0.1 ) inside_face = false; } if (!inside_face){ - //cout <<"Reverted to nearest neighbor " << endl; + cout <<"Reverted to nearest neighbor " << endl; /*--- Revert to nearest neighbor ---*/ tmp=-1; tmp2=0.0; k=0; - for (i=0; ielem[donor_elem]->GetFaces(iFace,i); if (nDim==3) jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetNode(Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); else{ From 9c75549fbb7918000c76b0fa00ef3b3e60f7a47a Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 11:00:45 -0700 Subject: [PATCH 090/269] commenting out print statements --- Common/src/interpolation_structure.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index a35ba8d5f67..08fb3948b04 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -399,7 +399,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ iNearestVertex = jVertex; } } - cout <<" Nearest Neighbor for flow point " << iPoint <<" is "<< iNearestNode << "; d = " << last_distance << endl; + //cout <<" Nearest Neighbor for flow point " << iPoint <<" is "<< iNearestNode << "; d = " << last_distance << endl; donor_elem=-1; last_distance=-1; @@ -499,10 +499,11 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Store info ---*/ donor_elem = temp_donor; // Print check + /* for (iDim=0; iDimelem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); } @@ -523,10 +524,11 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(temp_donor); // in 2D is nearest neighbor Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorFace(iFace); Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - cout <<"updated closest face/edge" << endl; + //cout <<"updated closest face/edge" << endl; } } } @@ -789,7 +791,7 @@ void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, inside_face = false; } if (!inside_face){ - cout <<"Reverted to nearest neighbor " << endl; + //cout <<"Reverted to nearest neighbor " << endl; /*--- Revert to nearest neighbor ---*/ tmp=-1; tmp2=0.0; k=0; for (i=0; i Date: Wed, 16 Sep 2015 11:18:56 -0700 Subject: [PATCH 091/269] cleaning up compiler warnings --- Common/include/interpolation_structure.hpp | 2 +- Common/src/interpolation_structure.cpp | 27 ++++++++-------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 4cfe222b527..3005ab3ca29 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -198,7 +198,7 @@ class CIsoparametric : public CInterpolator { * of the edge is then stored in iFace, and the global index of the node (from which the edge * is referenced) */ - void Isoparameters(su2double* isoparams, unsigned long iVertex, + void Isoparameters(su2double* isoparams, unsigned short nDim, unsigned int iZone_1, long donor_elem, unsigned short iFace, unsigned int nDonorPoints, su2double* xj); diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 08fb3948b04..ab5f23159e3 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -319,31 +319,25 @@ CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long iPoint, jPoint, jPoint2, iVertex, jVertex,*nn, inode, jElem, iNearestNode=0, iNearestVertex=0; + unsigned long jPoint, iVertex, jVertex,*nn, inode, jElem, iNearestNode=0, iNearestVertex=0; long ivtx; + long donor_elem=0, temp_donor=0; unsigned short iDim, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); - su2double distance = 0.0, last_distance=-1.0, *Coord; - su2double myCoeff[10]; - //su2double* myCoefftemp; - su2double* donorCoord; - su2double coeff, tmp, tmp2; - long donor_elem=0, temp_donor; - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; - unsigned short markDonor, markTarget, iFace; - + unsigned short markDonor=0, markTarget=0, iFace; unsigned int nNodes=0; - /*--- Restricted to 2-zone fluid-structure for now ---*/ + /*--- Restricted to 2-zone for now ---*/ unsigned int targetZone = Zones[0]; unsigned int donorZone = Zones[1]; unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; - unsigned int it2=0; + su2double distance = 0.0, last_distance=-1.0, *Coord; + su2double myCoeff[10]; // Maximum # of donor points + su2double *donorCoord, *Normal; su2double projected_point[nDim]; - su2double *Normal; - + su2double tmp, tmp2; nn = new unsigned long[4]; /*--- Number of markers on the interface ---*/ @@ -382,7 +376,6 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- For the markers on the fluid side ---*/ /*--- Loop over the vertices on the marker ---*/ for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { - iPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetNode(); // Global index of iVertex last_distance=-1.0; /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ @@ -472,7 +465,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- find isoparametric representation. if the point is outside the face (or edge, in 2D), the method will return * coefficients associated with setting the nearest neighbor ---*/ - Isoparameters( myCoeff, iVertex,nDim, donorZone, temp_donor, iFace, nNodes, projected_point); + Isoparameters( myCoeff, nDim, donorZone, temp_donor, iFace, nNodes, projected_point); distance = 0; for(it=0; it< nNodes; it++){ @@ -611,7 +604,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } -void CIsoparametric::Isoparameters(su2double* isoparams, unsigned long iVertex, +void CIsoparametric::Isoparameters(su2double* isoparams, unsigned short nDim, unsigned int donorZone, long donor_elem, unsigned short iFace, unsigned int nDonorPoints, su2double* xj){ short i,j,k, iedge; From 9ecfc55602284dc62afbb2f996eb99c00ab49ded Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 13:48:49 -0700 Subject: [PATCH 092/269] updated get/set for interpolation donor info --- Common/include/dual_grid_structure.hpp | 47 +++++---- Common/include/dual_grid_structure.inl | 12 ++- Common/src/dual_grid_structure.cpp | 14 ++- Common/src/interpolation_structure.cpp | 129 +++---------------------- 4 files changed, 57 insertions(+), 145 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 8a6f0a6cbe7..1e3e05bef78 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -878,10 +878,11 @@ class CVertex : public CDualGrid { long PeriodicPoint[2]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ + unsigned long *Donor_Points; /*!< \brief indices of donor points for interpolation across zones */ + unsigned long *Donor_Proc; /*!< \brief indices of donor processor for interpolation across zones in parallel */ unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */ unsigned short Donor_Face; /*!<\brief Store the donor face (w/in donor element) for interpolation across zones */ su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ - unsigned long **Donor_Info; /*!\brief Store a list of donor points (by global index) for interpolation across zones: zone,point,marker,vertex */ su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points;*/ @@ -1055,7 +1056,7 @@ class CVertex : public CDualGrid { * \param[in] val_donorelem - donor element index. */ void SetDonorElem(long val_donorelem); - + /*! * \brief Get the donor element of a vertex for interpolation across zones. * \return Value of the donor element of a vertex. @@ -1117,22 +1118,6 @@ class CVertex : public CDualGrid { */ unsigned short GetnDonorPoints(void); - /*! - * \brief Set the values of a donor point. - * \param[in] iDonor - Index of the donor point. - * \param[in] val - Pointer to the array of values to be set for the donor point. (zone, global point id, marker id, vertex within that marker) - */ - void SetDonorInfo(unsigned short iDonor, unsigned long*val); - - /*! - * \brief Return the values of a donor point. - * \param[in] iDonor - Index of the donor point. - * \param[in] it - Index of the information to be returned.(zone, global point id, marker id, vertex within that marker) - * \return - the value stored at Donor_Info[iDonor][it]. - */ - unsigned long GetDonorInfo(unsigned short iDonor, unsigned short it); - - /*! * \brief Set the coefficient value of a donor point. * \param[in] iDonor - Index of the donor point. @@ -1147,6 +1132,32 @@ class CVertex : public CDualGrid { */ su2double GetDonorCoeff(unsigned short iDonor); + /*! + * \brief Set the donor point of a vertex for interpolation across zones. + * \param[in] val_donorpoint- donor face index (w/in donor elem). + */ + void SetInterpDonorPoint(unsigned short val_donorindex, long val_donorpoint); + + /*! + * \brief Get the value of the donor point of a vertex (for interpolation). + * \return Value of the donor point of a vertex. + */ + long GetInterpDonorPoint(unsigned short val_donorpoint); + + + /*! + * \brief Set the donor point of a vertex for interpolation across zones. + * \param[in] val_donorpoint- donor face index (w/in donor elem). + */ + void SetInterpDonorProcessor(unsigned short val_donorindex, long val_rank); + + /*! + * \brief Get the value of the donor point of a vertex (for interpolation). + * \return Value of the donor point of a vertex. + */ + long GetInterpDonorProcessor(unsigned short val_donorindex); + + /*! * \brief Allocate memory based on how many donor points need to be stored. * Uses nDonor_Points diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 898e72cb422..28fd92e15d1 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -342,13 +342,15 @@ inline void CVertex::SetNormal_Neighbor(unsigned long val_Normal_Neighbor) { Nor inline void CVertex::IncrementnDonor(void){nDonor_Points++;} -inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long *val){ - for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; -} +inline void CVertex::SetInterpDonorPoint(unsigned short val_donorindex, long val_donorpoint) { Donor_Points[val_donorindex] = val_donorpoint; } -inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } +inline long CVertex::GetInterpDonorPoint(unsigned short val_donorindex) { return Donor_Points[val_donorindex]; } + +inline void CVertex::SetInterpDonorProcessor(unsigned short val_donorindex, long val_donorpoint) { Donor_Proc[val_donorindex] = val_donorpoint; } -inline unsigned long CVertex::GetDonorInfo(unsigned short iDonor, unsigned short it){ return Donor_Info[iDonor][it];} +inline long CVertex::GetInterpDonorProcessor(unsigned short val_donorindex) { return Donor_Proc[val_donorindex]; } + +inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } inline su2double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 48d4461879f..3c7727c451d 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -456,7 +456,8 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v VarRot = NULL; /*--- Set to NULL donor arrays for interpolation ---*/ - Donor_Info = NULL; + Donor_Points = NULL; + Donor_Proc = NULL; Donor_Coeff = NULL; nDonor_Points = 0; } @@ -467,10 +468,9 @@ CVertex::~CVertex() { if (Nodes != NULL) delete[] Nodes; /*--- donor arrays for interpolation ---*/ - if (Donor_Info != NULL) - for (unsigned long iDonor=0; iDonorGetnDim(), iDonor, jDonor; -// su2double distance = 0.0, last_distance=-1.0; -// -// unsigned short int donorindex = 0; -// unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; -// unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; -// unsigned short markDonor, markTarget; -// -// /*--- Restricted to 2-zone fluid-structure for now ---*/ -// unsigned int targetZone = Zones[0]; -// unsigned int donorZone = Zones[1]; -// -// nn = new unsigned long[4]; -// -// /*--- Loop through the vertices in Interface of both zones -// * for Nearest Neighbor each vertex has only one donor point, but for other types of -// * interpolation the number of donor points must be determined first. ---*/ -// -// /*--- Number of markers on the FSI interface ---*/ -// nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; -// nMarkerDonor = config[donorZone]->GetnMarker_All(); -// nMarkerTarget = config[targetZone]->GetnMarker_All(); -// -// /*--- For the number of markers on the interface... ---*/ -// for (iMarkerInt=0; iMarkerInt < nMarkerInt; iMarkerInt++){ -// -// /*--- ... the marker markDonor ... ---*/ -// for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ -// if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt+1)){ -// markDonor=iMarkerDonor; -// } -// } -// /*--- ... corresponds to the marker markTarget. ---*/ -// for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ -// if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt+1)){ -// markTarget=iMarkerTarget; -// } -// } -// -// /*--- For the markers on the fluid side ---*/ -// /*--- Loop over the vertices on the marker ---*/ -// for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { -// iPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetNode(); -// last_distance=-1.0; -// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ -// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(1); -// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->Allocate_DonorInfo(); -// /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ -// -// for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { -// jPoint =Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetNode(); -// distance = 0.0; -// for (iDim=0; iDimvertex[markDonor][jVertex]->GetCoord(iDim)-Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetCoord(iDim),2.0); -// if ((last_distance==-1.0) or (distancevertex[markTarget][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,1.0); -// } -// -// /*--- For the marker on the FEA side ---*/ -// /*--- Loop over the vertices on the marker ---*/ -// for (iVertex = 0; iVertexGetnVertex(markDonor); iVertex++) { -// iPoint =Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->GetNode(); -// last_distance=-1.0; -// /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ -// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetnDonorPoints(1); -// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->Allocate_DonorInfo(); -// /*--- Loop over vertices in the interface marker (zone 0) --*/ -// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetDonorInfo(donorindex,nn); -// for (jVertex = 0; jVertexGetnVertex(markTarget); jVertex++) { -// jPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][jVertex]->GetNode(); -// distance = 0.0; -// for (iDim=0; iDimvertex[markTarget][jVertex]->GetCoord(iDim)-Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->GetCoord(iDim),2.0); -// if ((jVertex==0) or (distancevertex[markDonor][iVertex]->SetDonorInfo(donorindex,nn); -// Geometry[donorZone][MESH_0]->vertex[markDonor][iVertex]->SetDonorCoeff(donorindex,1.0); -// } -// } + } @@ -319,8 +217,7 @@ CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long jPoint, iVertex, jVertex,*nn, inode, jElem, iNearestNode=0, iNearestVertex=0; - long ivtx; + unsigned long jPoint, iVertex, jVertex, inode, jElem, iNearestNode=0, iNearestVertex=0; long donor_elem=0, temp_donor=0; unsigned short iDim, it; unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); @@ -338,7 +235,6 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ su2double *donorCoord, *Normal; su2double projected_point[nDim]; su2double tmp, tmp2; - nn = new unsigned long[4]; /*--- Number of markers on the interface ---*/ nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; @@ -370,9 +266,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } //cout <<"markers: " << markDonor << " " << markTarget << endl; - /*--Same for all points: -*/ - nn[0] = donorZone; /* Zone of the donor point */ - nn[2] = markDonor; /* marker of the donor point */ + /*--- For the markers on the fluid side ---*/ /*--- Loop over the vertices on the marker ---*/ for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { @@ -538,9 +432,10 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Set the appropriate amount of memory ---*/ Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + /*--- Recal the closest face/edge ---*/ iFace = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetDonorFace(); - /*--- Loop over vertices of the element ---*/ + /*--- Loop over vertices of the element to set the values at the vertex ---*/ for (it=0; it< Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetnDonorPoints(); it++){ if (donor_elem!=-1){ if (nDim==3){ @@ -554,12 +449,18 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ else jPoint = iNearestNode; // If no matching element is found, revert to Nearest Neighbor - ivtx = Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor); - nn[1] = jPoint; /* global index of the donor point */ - nn[3] = ivtx; /* vertex index within marker of the donor point */ + /*--- NOTE: in parallel, jPoint must be converted to global index ---*/ + + //ivtx = Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor); + + + //Geometry[donorZone][MESH_0]->vertex[markDonor][ivtx]->IncrementnDonor(); - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorInfo(it,nn); + + Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetInterpDonorPoint(it,jPoint); Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorCoeff(it,myCoeff[it]); + // FOR PARALELL: + //Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetInterpDonorProc(it,proc); //cout <<" myCoeff " << myCoeff[it] << " "; } //cout << endl; From ab0462220c5cc3f3fa8070b2ff7065dc201453f5 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 13:51:34 -0700 Subject: [PATCH 093/269] updated calls to donor info --- SU2_CFD/src/solver_direct_elasticity.cpp | 4 +++- SU2_CFD/src/solver_direct_mean.cpp | 25 ++++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 1174539e948..08a9f1e1fa1 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2301,9 +2301,11 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome // Corresponding node on the structural mesh // donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); - donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorInfo(0,1); // If point + //donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorInfo(0,1); // If point //donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorInfo(0,3); // If vertex + donorVertex[iVertex]= flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetInterpDonorPoint(0); // if point + // Retrieve the values of pressure, viscosity and density if (incompressible){ diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 5ce5e76d869..a205da31a8a 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -10399,12 +10399,12 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { - unsigned short iMarker, iDim; + unsigned short iMarker, iDim, nDonor; unsigned long iVertex, iPoint; su2double *Coord, VarCoord[3]; unsigned long iPoint_Donor; - su2double *CoordDonor, *DisplacementDonor, *DisplacementDonor_Prev; + su2double *CoordDonor, *DisplacementDonor, *DisplacementDonor_Prev, coeff; for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { @@ -10412,22 +10412,27 @@ void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetr for(iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { - iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); - - iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(0,1); + for (iDim = 0; iDim < nDim; iDim++) + VarCoord[iDim]=0.0; + iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + nDonor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); + for (unsigned short iDonor; iDonor < nDonor; iDonor++){ + iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetInterpDonorPoint(iDonor); + coeff = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(iDonor); // Coord = flow_geometry[MESH_0]->node[iPoint]->GetCoord(); // CoordDonor = fea_geometry[MESH_0]->node[iPoint_Donor]->GetCoord(); - /*--- The displacements come from the predicted solution ---*/ - DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); + /*--- The displacements come from the predicted solution ---*/ + DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); - DisplacementDonor_Prev = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred_Old(); + DisplacementDonor_Prev = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred_Old(); - for (iDim = 0; iDim < nDim; iDim++) + for (iDim = 0; iDim < nDim; iDim++) - VarCoord[iDim] = DisplacementDonor[iDim] - DisplacementDonor_Prev[iDim]; + VarCoord[iDim] += (DisplacementDonor[iDim] - DisplacementDonor_Prev[iDim])*coeff; + } //TODO Double check this to make sure the coordinates are updated as they should be From e03e2c83461d4643538954f930851f560c41e598 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 16 Sep 2015 14:55:35 -0700 Subject: [PATCH 094/269] NN Interpolation - Some mods (unstable). --- Common/include/dual_grid_structure.inl | 2 +- Common/include/interpolation_structure.hpp | 18 +- Common/src/dual_grid_structure.cpp | 2 +- Common/src/geometry_structure.cpp | 3 +- Common/src/interpolation_structure.cpp | 314 +++++++++++++++------ SU2_CFD/include/SU2_CFD.hpp | 1 + SU2_CFD/include/definition_structure.hpp | 4 +- SU2_CFD/src/definition_structure.cpp | 31 +- SU2_CFD/src/transfer_structure.cpp | 2 - SU2_FSI/include/SU2_FSI.hpp | 3 +- SU2_FSI/obj/Makefile.am | 5 +- SU2_FSI/obj/Makefile.in | 50 +++- SU2_FSI/src/SU2_FSI.cpp | 49 ++-- 13 files changed, 341 insertions(+), 143 deletions(-) diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index b5832d13bf8..31eb947ba05 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -353,7 +353,7 @@ inline void CVertex::SetNormal_Neighbor(unsigned long val_Normal_Neighbor) { Nor inline void CVertex::IncrementnDonor(void){nDonor_Points++;} inline void CVertex::SetDonorInfo(unsigned short iDonor, unsigned long *val){ - for ( unsigned short it =0; it<4; it++) Donor_Info[iDonor][it]=val[it]; + for ( unsigned short it = 0; it < 5; it++) Donor_Info[iDonor][it]=val[it]; } inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index b21e3cba025..1078c60801e 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -45,8 +45,6 @@ using namespace std; - - /*! * \class CInterpolator * \brief Main class for defining the interpolator, it requires @@ -57,10 +55,13 @@ using namespace std; class CInterpolator { protected: unsigned int nZone; - unsigned short nVar; + unsigned int donorZone, targetZone; + //unsigned short nVar; //su2double ***Data; /*!\brief container for some data to be interpolated */ public: - CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ + CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ + CGeometry* donor_geometry; /*! \brief Vector which stores the donor geometry. */ + CGeometry* target_geometry; /*! \brief Vector which stores the target geometry. */ /*! * \brief Constructor of the class. @@ -103,7 +104,7 @@ class CInterpolator { * \param[in] Zones - list of zones to set up interpolation for. This method must be overwritten in the child classes. * \param[in] config */ - virtual void Set_TransferCoeff(unsigned int* Zones, CConfig **config)=0; + virtual void Set_TransferCoeff(unsigned int* Zones, CConfig **config); // /*! @@ -138,7 +139,12 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); + CNearestNeighbor(void); + + /*! + * \brief Constructor of the class. + */ + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int nZone); /*! * \brief Destructor of the class. diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index e2b8259dc9d..43faaa86258 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -519,7 +519,7 @@ void CVertex::Allocate_DonorInfo(void){ Donor_Info = new unsigned long*[nDonor_Points]; Donor_Coeff = new su2double[nDonor_Points]; for (unsigned short iDonor=0; iDonornode[jPoint]->GetCoord(); if (nDim == 2) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); if (nDim == 3) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); - if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = node[jPoint]->GetGlobalIndex();} +// if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = node[jPoint]->GetGlobalIndex();} + if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = geometry_donor->node[jPoint]->GetGlobalIndex();} } maxdist = max(maxdist, mindist); diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 9f819ba30ec..eb7a0550655 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -32,7 +32,16 @@ #include "../include/interpolation_structure.hpp" CInterpolator::CInterpolator(void){ - //Data = NULL; + + nZone = 0; + Geometry = NULL; + + donor_geometry = NULL; + target_geometry = NULL; + + donorZone = 0; + targetZone = 0; + } CInterpolator::~CInterpolator(void){} @@ -42,8 +51,15 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, /* Store pointers*/ Geometry = geometry_container; + nZone = val_nZone; + donorZone = Zones[0]; + targetZone = Zones[1]; + + donor_geometry = geometry_container[donorZone][MESH_0]; + target_geometry = geometry_container[targetZone][MESH_0]; + /*--- Initialize transfer coefficients between the zones ---*/ /* Since this is a virtual function, call it in the child class constructor */ //Set_TransferCoeff(iZone_0,iZone_1,config); @@ -51,6 +67,9 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, //Set_TransferCoeff(Zones,config); } + +inline void CInterpolator::Set_TransferCoeff(unsigned int* Zones, CConfig **config) { } + /* void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar){ nVar=val_nVar; @@ -186,9 +205,10 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) // cout <<" CInterpolator object has not been initialized"<GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(Zones,config); @@ -201,109 +221,223 @@ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **co CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long iPoint, jPoint, iVertex, jVertex,*nn; + + unsigned long iPoint, jPoint, iVertex, jVertex, *nn; unsigned short iMarker, iDim, jMarker; - unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(), iDonor, jDonor; + unsigned short nDim = donor_geometry->GetnDim(); su2double distance = 0.0, last_distance=-1.0; - unsigned short int donorindex = 0; - unsigned short nMarkerFSIint, nMarkerFEA, nMarkerFlow; - unsigned short iMarkerFSIint, iMarkerFEA, iMarkerFlow; - unsigned short markFEA, markFlow; + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; - /*--- Restricted to 2-zone fluid-structure for now ---*/ - unsigned int iZone_0 = Zones[0]; - unsigned int iZone_1 = Zones[1]; + unsigned long nVertexDonor = 0, nVertexTarget= 0; + unsigned long Point_Donor = 0, Point_Target = 0; + unsigned long Vertex_Donor = 0, Vertex_Target = 0; - nn = new unsigned long[4]; + unsigned long iVertexDonor, iPointDonor = 0; + unsigned long iVertexTarget, iPointTarget = 0; + unsigned long pPoint = 0, Global_Point = 0; + unsigned long jGlobalPoint = 0, pGlobalPoint = 0; + int iProcessor, pProcessor = 0; - /*--- Loop through the vertices in Interface of both zones - * for Nearest Neighbor each vertex has only one donor point, but for other types of - * interpolation the number of donor points must be determined first. ---*/ + unsigned long nLocalVertex_Donor = 0, nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; - /*--- Number of markers on the FSI interface ---*/ - nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; - nMarkerFEA = config[iZone_1]->GetnMarker_All(); - nMarkerFlow = config[iZone_0]->GetnMarker_All(); + unsigned long Global_Point_Donor; + int Donor_Processor; - /*--- For the number of markers on the interface... ---*/ - for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ + /*--- Number of markers on the FSI interface ---*/ + nMarkerInt = (config[donorZone]->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); - /*--- ... the marker markFEA ... ---*/ - for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if ( config[iZone_1]->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA=iMarkerFEA; - } - } - /*--- ... corresponds to the marker markFlow. ---*/ - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (config[iZone_0]->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow=iMarkerFlow; - } + nn = new unsigned long[5]; + + su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; + + int rank = MASTER_NODE; + int nProcessor = SINGLE_NODE; + + unsigned short int donorindex = 0; + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); +#endif + + // For the markers on the interface + for (iMarkerInt = 0; iMarkerInt < nMarkerInt; iMarkerInt++) { + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if (config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Store the number of local points that belong to Marker_Donor ---*/ + nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + Marker_Donor = -1; + nVertexDonor = 0; + } + } + + /*--- On the target side ---*/ + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- We have identified the identifier for the target marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Store the number of local points that belong to Marker_Target ---*/ + nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nVertexTarget = 0; + Marker_Target = -1; + } + } + + unsigned long *Buffer_Send_nVertex = new unsigned long [1]; + unsigned long *Buffer_Receive_nVertex = new unsigned long [nProcessor]; + + nLocalVertex_Donor = 0; + for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { + iPoint = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + if (donor_geometry->node[iPoint]->GetDomain()) nLocalVertex_Donor++; + } + + Buffer_Send_nVertex[0] = nLocalVertex_Donor; + + /*--- Send Interface vertex information --*/ +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&nLocalVertex_Donor, &nGlobalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Donor, &MaxLocalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); +#else + nGlobalVertex_Donor = nLocalVertex_Donor; + MaxLocalVertex_Donor = nLocalVertex_Donor; + Buffer_Receive_nVertex[0] = Buffer_Send_nVertex[0]; +#endif + + su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; + unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_Donor]; + unsigned long *Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Donor]; + + su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; + unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_Donor]; + unsigned long *Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Donor]; + + unsigned long nBuffer_Coord = MaxLocalVertex_Donor*nDim; + unsigned long nBuffer_Point = MaxLocalVertex_Donor; + + for (iVertex = 0; iVertex < MaxLocalVertex_Donor; iVertex++) { + Buffer_Send_Point[iVertex] = 0; + Buffer_Send_GlobalPoint[iVertex] = 0; + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; + } + + /*--- Copy coordinates and point to the auxiliar vector --*/ + nLocalVertex_Donor = 0; + for (iMarker = 0; iMarker < config[donorZone]->GetnMarker_All(); iMarker++) + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarker); iVertex++) { + iPoint = donor_geometry->vertex[iMarker][iVertex]->GetNode(); + if (donor_geometry->node[iPoint]->GetDomain()) { + Buffer_Send_Point[nLocalVertex_Donor] = iPoint; + Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPoint]->GetGlobalIndex(); + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPoint]->GetCoord(iDim); + nLocalVertex_Donor++; + } } - /*--- For the markers on the fluid side ---*/ - /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFlow); iVertex++) { - iPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetNode(); - last_distance=-1.0; - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetnDonorPoints(1); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->Allocate_DonorInfo(); - /*--- Loop over the vertices in the corresponding interface marker (zone 1) --*/ +#ifdef HAVE_MPI + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); +#else + for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++){ + Buffer_Receive_Coord[iVertex] = Buffer_Send_Coord[iVertex]; + } + for (iVertex = 0; iVertex < nBuffer_Point; iVertex++){ + Buffer_Receive_Point[iVertex] = Buffer_Send_Point[iVertex]; + Buffer_Receive_GlobalPoint[iVertex] = Buffer_Send_GlobalPoint[iVertex]; + } +#endif + + /*--- Compute the closest point to a Near-Field boundary point ---*/ + maxdist = 0.0; + for (iVertexTarget = 0; iVertexTarget < nVertexTarget; iVertexTarget++) { + + Point_Target = target_geometry->vertex[Marker_Target][iVertexTarget]->GetNode(); + + if (target_geometry->node[Point_Target]->GetDomain()) { + + /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ + target_geometry->vertex[Marker_Target][iVertexTarget]->SetnDonorPoints(1); + target_geometry->vertex[Marker_Target][iVertexTarget]->Allocate_DonorInfo(); + + /*--- Coordinates of the boundary point ---*/ + Coord_i = target_geometry->node[Point_Target]->GetCoord(); + mindist = 1E6; pProcessor = 0; pPoint = 0; + + /*--- Loop over all the boundaries to find the pair ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + for (jVertex = 0; jVertex < Buffer_Receive_nVertex[iProcessor]; jVertex++) { + Point_Donor = Buffer_Receive_Point[iProcessor*MaxLocalVertex_Donor+jVertex]; + Global_Point_Donor = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Donor+jVertex]; + + /*--- Compute the distance ---*/ + dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { + Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_Donor+jVertex)*nDim+iDim]; + dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); + } + + if (((dist < mindist) && (iProcessor != rank)) || + ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { + mindist = dist; pProcessor = iProcessor; pPoint = jPoint; + pGlobalPoint = jGlobalPoint; + } + } + } + + /*--- Store the value of the pair ---*/ + maxdist = max(maxdist, mindist); + + // This will be changed when merged with the new version + nn[0] = donorZone; /* Zone of the donor point */ + nn[1] = pPoint; /* Local index of the donor point (if no MPI it's the same as the global) */ + nn[2] = Marker_Donor; /* marker of the donor point --> TODO: CONFLICT WITH DATA TYPE ---*/ + nn[3] = Vertex_Donor; /* vertex index within marker of the donor point */ + nn[4] = Global_Point_Donor; /* Global index of the donor point */ + + target_geometry->vertex[Marker_Target][iVertexTarget]->SetDonorInfo(donorindex,nn); + target_geometry->vertex[Marker_Target][iVertexTarget]->SetDonorCoeff(donorindex,1.0); - for (jVertex = 0; jVertexGetnVertex(markFEA); jVertex++) { - jPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[markFEA][jVertex]->GetCoord(iDim)-Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancevertex[markFlow][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_0][MESH_0]->vertex[markFlow][iVertex]->SetDonorCoeff(donorindex,1.0); - } + delete[] Buffer_Receive_Coord; + delete[] Buffer_Receive_Point; + delete[] Buffer_Receive_GlobalPoint; + + delete[] Buffer_Send_nVertex; + delete[] Buffer_Receive_nVertex; + } - /*--- For the marker on the FEA side ---*/ - /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markFEA); iVertex++) { - iPoint =Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetNode(); - last_distance=-1.0; - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetnDonorPoints(1); - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->Allocate_DonorInfo(); - /*--- Loop over vertices in the interface marker (zone 0) --*/ - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); - for (jVertex = 0; jVertexGetnVertex(markFlow); jVertex++) { - jPoint =Geometry[iZone_0][MESH_0]->vertex[markFlow][jVertex]->GetNode(); - distance = 0.0; - for (iDim=0; iDimvertex[markFlow][jVertex]->GetCoord(iDim)-Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->GetCoord(iDim),2.0); - if ((jVertex==0) or (distancevertex[markFEA][iVertex]->SetDonorInfo(donorindex,nn); - Geometry[iZone_1][MESH_0]->vertex[markFEA][iVertex]->SetDonorCoeff(donorindex,1.0); - } - } } @@ -344,7 +478,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ su2double projected_point[nDim]; su2double *Normal; - nn = new unsigned long[4]; + nn = new unsigned long[5]; //cout <<"SetTransfer Coeff"<< endl; /*--- Number of markers on the FSI interface ---*/ nMarkerFSIint = (config[iZone_0]->GetMarker_n_FSIinterface())/2; diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index 2143c8ca583..558f378792c 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -41,6 +41,7 @@ #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" #include "../../Common/include/config_structure.hpp" +#include "../../Common/include/interpolation_structure.hpp" #include "../include/definition_structure.hpp" #include "../include/iteration_structure.hpp" #include "../include/transfer_structure.hpp" diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 8fa1e0a7003..61ef773e762 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -41,6 +41,7 @@ #include "transfer_structure.hpp" #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/config_structure.hpp" +#include "../../Common/include/interpolation_structure.hpp" using namespace std; @@ -105,4 +106,5 @@ void Geometrical_Preprocessing(CGeometry ***geometry, CConfig **config, unsigned * \param[in] config - Definition of the particular problem. * \param[in] val_nZone - Total number of zones. */ -void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geometry_container, CConfig **config_container, unsigned short nZone, unsigned short nDim); +void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***interpolator_container, + CGeometry ***geometry_container, CConfig **config_container, unsigned short nZone, unsigned short nDim); diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index b149e939b79..532770b303b 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1514,12 +1514,15 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, } -void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geometry_container, - CConfig **config_container, unsigned short nZone, unsigned short nDim) { +void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***interpolator_container, + CGeometry ***geometry_container, CConfig **config_container, + unsigned short nZone, unsigned short nDim) { int rank = MASTER_NODE; unsigned short donorZone, targetZone; unsigned short nVarTransfer; + unsigned int Zones[2]; + unsigned int nzn = 2; // Temporary, I'm not sure I need it /*--- Initialize some useful booleans ---*/ bool fluid_donor, structural_donor; @@ -1539,6 +1542,9 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geome /*--- Initialize donor booleans ---*/ fluid_donor = false; structural_donor = false; + /*--- Initialize donor zone for interpolation classes ---*/ + Zones[0] = donorZone; + /*--- Set the donor boolean: as of now, only Fluid-Structure Interaction considered ---*/ switch (config_container[donorZone]->GetKind_Solver()) { case EULER : case NAVIER_STOKES: case RANS: fluid_donor = true; break; @@ -1550,6 +1556,9 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geome /*--- Initialize donor booleans ---*/ fluid_target = false; structural_target = false; + /*--- Initialize target zone for interpolation classes ---*/ + Zones[1] = targetZone; + /*--- Set the target boolean: as of now, only Fluid-Structure Interaction considered ---*/ switch (config_container[targetZone]->GetKind_Solver()) { case EULER : case NAVIER_STOKES: case RANS: fluid_target = true; break; @@ -1562,8 +1571,22 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CGeometry ***geome /*--- Match Zones ---*/ if (rank == MASTER_NODE) cout << "Setting coupling "; - geometry_container[donorZone][MESH_0]->MatchZone(config_container[donorZone], geometry_container[targetZone][MESH_0], - config_container[targetZone], donorZone, nZone); + /*--- If the mesh is matching: match points ---*/ + if (config_container[donorZone]->GetMatchingMesh()){ + geometry_container[donorZone][MESH_0]->MatchZone(config_container[donorZone], geometry_container[targetZone][MESH_0], + config_container[targetZone], donorZone, nZone); + } + /*--- Else: interpolate ---*/ + else { + switch (config_container[donorZone]->GetKindInterpolation()){ + case NEAREST_NEIGHBOR: + interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, Zones, nzn); + break; + case ISOPARAMETRIC: + interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); + break; + } + } /*--- Initialize the appropriate transfer strategy ---*/ if (rank == MASTER_NODE) cout << "and transferring "; diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 42b8df708fc..189a5fea125 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -84,8 +84,6 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver unsigned short iVar, jDim; - - GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp index 0455290b549..81a0b173f7c 100644 --- a/SU2_FSI/include/SU2_FSI.hpp +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -39,6 +39,8 @@ #include #include +#include "../../Common/include/interpolation_structure.hpp" + #include "../../SU2_CFD/include/solver_structure.hpp" #include "../../SU2_CFD/include/output_structure.hpp" #include "../../SU2_CFD/include/integration_structure.hpp" @@ -50,7 +52,6 @@ #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/config_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" -#include "../../Common/include/interpolation_structure.hpp" #include "../include/iteration_structure_fsi.hpp" diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index c9a1eae4c19..b80810caa8a 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -39,13 +39,14 @@ bin_PROGRAMS = ../bin/SU2_FSI su2_fsi_sources = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp \ ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp + ../src/iteration_structure_fsi.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/src/definition_structure.cpp su2_fsi_cxx_flags = su2_fsi_ldadd = su2_fsi_ldadd += \ - ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 53b827fe7d5..9c403099fe4 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -130,15 +130,16 @@ am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp + ../src/iteration_structure_fsi.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/src/definition_structure.cpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ - ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) + ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) @BUILD_NORMAL_TRUE@am____bin_SU2_FSI_OBJECTS = $(am__objects_1) ___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) -am__DEPENDENCIES_1 = \ - ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ +am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ @@ -428,7 +429,9 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} su2_fsi_sources = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp \ ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp + ../src/iteration_structure_fsi.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/src/definition_structure.cpp # always link to built dependencies from ./externals @@ -452,9 +455,7 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ su2_fsi_cxx_flags = @su2_externals_INCLUDES@ @CGNS_CXX@ \ @MUTATIONPP_CXX@ @JSONCPP_CXX@ @HDF5_CXX@ @SZIP_CXX@ \ @ZLIB_CXX@ $(am__empty) -su2_fsi_ldadd = \ - ../../SU2_CFD/src/___bin_SU2_CFD-definition_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ +su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ @@ -622,6 +623,15 @@ clean-binPROGRAMS: ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/$(am__dirstamp): + @$(MKDIR_P) ../../SU2_CFD/src + @: > ../../SU2_CFD/src/$(am__dirstamp) +../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) + @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) @@ -632,11 +642,13 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f ../../SU2_CFD/src/*.$(OBJEXT) -rm -f ../src/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ @@ -684,6 +696,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` + ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am @@ -799,6 +825,8 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) + -rm -f ../../SU2_CFD/src/$(am__dirstamp) -rm -f ../bin/$(am__dirstamp) -rm -f ../src/$(DEPDIR)/$(am__dirstamp) -rm -f ../src/$(am__dirstamp) @@ -811,7 +839,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ../src/$(DEPDIR) + -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -857,7 +885,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ../src/$(DEPDIR) + -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 9eb3752dd11..c965e693027 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -64,17 +64,17 @@ int main(int argc, char *argv[]) { heirarchy over all zones, multigrid levels, equation sets, and equation terms as described in the comments below. ---*/ - COutput *output = NULL; - CIntegration ***integration_container = NULL; - CGeometry ***geometry_container = NULL; - CSolver ****solver_container = NULL; - CNumerics *****numerics_container = NULL; - CConfig **config_container = NULL; - CSurfaceMovement **surface_movement = NULL; - CVolumetricMovement **grid_movement = NULL; - CFreeFormDefBox*** FFDBox = NULL; - CInterpolator **interpolator_container= NULL; - CTransfer ***transfer_container = NULL; + COutput *output = NULL; + CIntegration ***integration_container = NULL; + CGeometry ***geometry_container = NULL; + CSolver ****solver_container = NULL; + CNumerics *****numerics_container = NULL; + CConfig **config_container = NULL; + CSurfaceMovement **surface_movement = NULL; + CVolumetricMovement **grid_movement = NULL; + CFreeFormDefBox*** FFDBox = NULL; + CInterpolator ***interpolator_container = NULL; + CTransfer ***transfer_container = NULL; /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config file is specified, default.cfg is used) ---*/ @@ -102,7 +102,7 @@ int main(int argc, char *argv[]) { surface_movement = new CSurfaceMovement*[nZone]; grid_movement = new CVolumetricMovement*[nZone]; FFDBox = new CFreeFormDefBox**[nZone]; - interpolator_container= new CInterpolator*[nZone]; + interpolator_container= new CInterpolator**[nZone]; transfer_container = new CTransfer**[nZone]; for (iZone = 0; iZone < nZone; iZone++) { @@ -293,25 +293,28 @@ int main(int argc, char *argv[]) { for (iZone = 0; iZone < nZone; iZone++){ transfer_container[iZone] = new CTransfer*[nZone]; + interpolator_container[iZone] = new CInterpolator*[nZone]; for (jZone = 0; jZone < nZone; jZone++){ transfer_container[iZone][jZone] = NULL; + interpolator_container[iZone][jZone] = NULL; } } - Interface_Preprocessing(transfer_container, geometry_container, config_container, nZone, nDim); + Interface_Preprocessing(transfer_container, interpolator_container, geometry_container, + config_container, nZone, nDim); } - if (!config_container[ZONE_0]->GetMatchingMesh()){ - unsigned int Zones[2]; - unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - Zones[0]=ZONE_0; - Zones[1]=ZONE_1; - if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - if (config_container[ZONE_0]->GetKindInterpolation()== ISOPARAMETRIC ) - interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); - } +// if (!config_container[ZONE_0]->GetMatchingMesh()){ +// unsigned int Zones[2]; +// unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure +// Zones[0]=ZONE_0; +// Zones[1]=ZONE_1; +// if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) +// interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); +// if (config_container[ZONE_0]->GetKindInterpolation()== ISOPARAMETRIC ) +// interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); +// } /*--- Definition of the output class (one for all zones). The output class From 0f57197b6a1592ba5ff2e355c9b592ca7db807fa Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 16:43:21 -0700 Subject: [PATCH 095/269] call interpolate constructuor twice --- SU2_FSI/src/SU2_FSI.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 925bbffe67d..8dfb4c3013a 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -279,12 +279,20 @@ int main(int argc, char *argv[]) { if (!config_container[ZONE_0]->GetMatchingMesh()){ unsigned int Zones[2]; unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - Zones[0]=ZONE_0; - Zones[1]=ZONE_1; - if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - if (config_container[ZONE_0]->GetKindInterpolation()== ISOPARAMETRIC ) - interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); + for (iZone=0; iZoneGetKindInterpolation()== NEAREST_NEIGHBOR ) + interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); + if (config_container[iZone]->GetKindInterpolation()== ISOPARAMETRIC ) + interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); + } } From 597eb81514b39831865857882877a4af9b811979 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 16 Sep 2015 17:56:10 -0700 Subject: [PATCH 096/269] removing interpolator calls from main FSI --- SU2_FSI/src/SU2_FSI.cpp | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 98049acc9fa..2878d668121 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -280,17 +280,6 @@ int main(int argc, char *argv[]) { if ((nZone > 1) && (nZone < 3)) { - // if (!config_container[ZONE_0]->GetMatchingMesh()){ - // unsigned int Zones[2]; - // unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - // Zones[0]=ZONE_0; - // Zones[1]=ZONE_1; - // if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) - // interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - // if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) - // interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); - // } - for (iZone = 0; iZone < nZone; iZone++){ transfer_container[iZone] = new CTransfer*[nZone]; interpolator_container[iZone] = new CInterpolator*[nZone]; @@ -305,24 +294,6 @@ int main(int argc, char *argv[]) { } - if (!config_container[ZONE_0]->GetMatchingMesh()){ - unsigned int Zones[2]; - unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - for (iZone=0; iZoneGetKindInterpolation()== NEAREST_NEIGHBOR ) - interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - if (config_container[iZone]->GetKindInterpolation()== ISOPARAMETRIC ) - interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); - } - } /*--- Definition of the output class (one for all zones). The output class From ce27e176f41fae4fe0c69192f239f91a527bfd67 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 17 Sep 2015 11:05:03 -0700 Subject: [PATCH 097/269] FSI: enable NN interpolation in parallel - 1st stage --- Common/src/interpolation_structure.cpp | 63 +++++++++++++++----------- SU2_CFD/src/definition_structure.cpp | 20 ++++++-- SU2_CFD/src/transfer_structure.cpp | 8 ++-- 3 files changed, 56 insertions(+), 35 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index f17f370ba24..031b3c576ab 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -209,7 +209,8 @@ CNearestNeighbor::CNearestNeighbor(void): CInterpolator(){ } /* Nearest Neighbor Interpolator */ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int nZone) : CInterpolator(geometry_container, config, Zones, nZone){ - //unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); + + //unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(Zones,config); @@ -222,7 +223,7 @@ CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ - unsigned long iPoint, jPoint, iVertex, jVertex, *nn; + unsigned long iPoint, jPoint, iVertex, jVertex; unsigned short iMarker, iDim, jMarker; unsigned short nDim = donor_geometry->GetnDim(); su2double distance = 0.0, last_distance=-1.0; @@ -241,32 +242,30 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ unsigned long jGlobalPoint = 0, pGlobalPoint = 0; int iProcessor, pProcessor = 0; - unsigned long nLocalVertex_Donor = 0, nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; + unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; + unsigned long nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; unsigned long Global_Point_Donor; int Donor_Processor; + unsigned short int donorindex = 0; /*--- Number of markers on the FSI interface ---*/ nMarkerInt = (config[donorZone]->GetMarker_n_FSIinterface())/2; nMarkerTarget = target_geometry->GetnMarker(); nMarkerDonor = donor_geometry->GetnMarker(); - nn = new unsigned long[5]; - su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; - unsigned short int donorindex = 0; - #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); #endif // For the markers on the interface - for (iMarkerInt = 0; iMarkerInt < nMarkerInt; iMarkerInt++) { + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { Marker_Donor = -1; Marker_Target = -1; @@ -306,8 +305,11 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } } - unsigned long *Buffer_Send_nVertex = new unsigned long [1]; - unsigned long *Buffer_Receive_nVertex = new unsigned long [nProcessor]; + unsigned long *Buffer_Send_nVertex_Donor = new unsigned long [1]; + unsigned long *Buffer_Receive_nVertex_Donor = new unsigned long [nProcessor]; + + unsigned long *Buffer_Send_nVertex_Target = new unsigned long [1]; + unsigned long *Buffer_Receive_nVertex_Target = new unsigned long [nProcessor]; nLocalVertex_Donor = 0; for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { @@ -315,17 +317,26 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ if (donor_geometry->node[iPoint]->GetDomain()) nLocalVertex_Donor++; } - Buffer_Send_nVertex[0] = nLocalVertex_Donor; + nLocalVertex_Target = 0; + for (iVertex = 0; iVertex < nVertexTarget; iVertex++) { + iPoint = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + if (target_geometry->node[iPoint]->GetDomain()) nLocalVertex_Target++; + } + + Buffer_Send_nVertex_Donor[0] = nLocalVertex_Donor; + Buffer_Send_nVertex_Target[0] = nLocalVertex_Target; /*--- Send Interface vertex information --*/ #ifdef HAVE_MPI SU2_MPI::Allreduce(&nLocalVertex_Donor, &nGlobalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); SU2_MPI::Allreduce(&nLocalVertex_Donor, &MaxLocalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_nVertex, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex_Target, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Target, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else nGlobalVertex_Donor = nLocalVertex_Donor; MaxLocalVertex_Donor = nLocalVertex_Donor; - Buffer_Receive_nVertex[0] = Buffer_Send_nVertex[0]; + Buffer_Receive_nVertex_Donor[0] = Buffer_Send_nVertex_Donor[0]; + Buffer_Receive_nVertex_Target[0] = Buffer_Send_nVertex_Target[0]; #endif su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; @@ -348,14 +359,13 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Copy coordinates and point to the auxiliar vector --*/ nLocalVertex_Donor = 0; - for (iMarker = 0; iMarker < config[donorZone]->GetnMarker_All(); iMarker++) - for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarker); iVertex++) { - iPoint = donor_geometry->vertex[iMarker][iVertex]->GetNode(); - if (donor_geometry->node[iPoint]->GetDomain()) { - Buffer_Send_Point[nLocalVertex_Donor] = iPoint; - Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPoint]->GetGlobalIndex(); + for (iVertexDonor = 0; iVertexDonor < nVertexDonor; iVertexDonor++) { + iPointDonor = donor_geometry->vertex[Marker_Donor][iVertexDonor]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()) { + Buffer_Send_Point[nLocalVertex_Donor] = iPointDonor; + Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); for (iDim = 0; iDim < nDim; iDim++) - Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPoint]->GetCoord(iDim); + Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPointDonor]->GetCoord(iDim); nLocalVertex_Donor++; } } @@ -382,7 +392,6 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ if (target_geometry->node[Point_Target]->GetDomain()) { - /*--- Allocate memory with known number of donor points (1 for nearest neighbor) ---*/ target_geometry->vertex[Marker_Target][iVertexTarget]->SetnDonorPoints(1); target_geometry->vertex[Marker_Target][iVertexTarget]->Allocate_DonorInfo(); @@ -392,7 +401,7 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ /*--- Loop over all the boundaries to find the pair ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - for (jVertex = 0; jVertex < Buffer_Receive_nVertex[iProcessor]; jVertex++) { + for (jVertex = 0; jVertex < Buffer_Receive_nVertex_Donor[iProcessor]; jVertex++) { Point_Donor = Buffer_Receive_Point[iProcessor*MaxLocalVertex_Donor+jVertex]; Global_Point_Donor = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Donor+jVertex]; @@ -405,14 +414,13 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ if (((dist < mindist) && (iProcessor != rank)) || ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { mindist = dist; pProcessor = iProcessor; pPoint = jPoint; - pGlobalPoint = jGlobalPoint; + pGlobalPoint = Global_Point_Donor; } } } /*--- Store the value of the pair ---*/ maxdist = max(maxdist, mindist); - target_geometry->vertex[Marker_Target][iVertexTarget]->SetInterpDonorPoint(donorindex, pGlobalPoint); target_geometry->vertex[Marker_Target][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); target_geometry->vertex[Marker_Target][iVertexTarget]->SetDonorCoeff(donorindex,1.0); @@ -428,8 +436,11 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ delete[] Buffer_Receive_Point; delete[] Buffer_Receive_GlobalPoint; - delete[] Buffer_Send_nVertex; - delete[] Buffer_Receive_nVertex; + delete[] Buffer_Send_nVertex_Donor; + delete[] Buffer_Receive_nVertex_Donor; + delete[] Buffer_Send_nVertex_Target; + delete[] Buffer_Receive_nVertex_Target; + } } diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 532770b303b..67c6bd85fea 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1528,6 +1528,8 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i bool fluid_donor, structural_donor; bool fluid_target, structural_target; + bool matching_mesh; + fluid_donor = false; structural_donor = false; fluid_target = false; structural_target = false; @@ -1541,6 +1543,7 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i /*--- Initialize donor booleans ---*/ fluid_donor = false; structural_donor = false; + matching_mesh = config_container[donorZone]->GetMatchingMesh(); /*--- Initialize donor zone for interpolation classes ---*/ Zones[0] = donorZone; @@ -1568,41 +1571,48 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i /*--- Interface conditions are only defined between different zones ---*/ if (donorZone != targetZone){ + if (rank == MASTER_NODE) cout << "From zone " << donorZone << " to zone " << targetZone << ": " << endl; + /*--- Match Zones ---*/ if (rank == MASTER_NODE) cout << "Setting coupling "; /*--- If the mesh is matching: match points ---*/ - if (config_container[donorZone]->GetMatchingMesh()){ + if (matching_mesh){ + if (rank == MASTER_NODE) cout << "between matching meshes. " << endl; geometry_container[donorZone][MESH_0]->MatchZone(config_container[donorZone], geometry_container[targetZone][MESH_0], config_container[targetZone], donorZone, nZone); } /*--- Else: interpolate ---*/ else { + if (rank == MASTER_NODE) cout << "between non-matching meshes "; switch (config_container[donorZone]->GetKindInterpolation()){ case NEAREST_NEIGHBOR: interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, Zones, nzn); + if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; break; case ISOPARAMETRIC: interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); + if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; break; } } /*--- Initialize the appropriate transfer strategy ---*/ - if (rank == MASTER_NODE) cout << "and transferring "; + if (rank == MASTER_NODE) cout << "Transferring "; if (fluid_donor && structural_target) { nVarTransfer = 0; transfer_container[donorZone][targetZone] = new CTransfer_FlowTraction(nDim, nVarTransfer, config_container[donorZone]); - if (rank == MASTER_NODE) cout << "flow tractions from zone " << donorZone << " to zone " << targetZone << ". "<< endl; + if (rank == MASTER_NODE) cout << "flow tractions. "<< endl; } else if (structural_donor && fluid_target){ nVarTransfer = 2; transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements(nDim, nVarTransfer, config_container[donorZone]); - if (rank == MASTER_NODE) cout << "structural displacements from zone " << donorZone << " to zone " << targetZone << ". "<< endl; + if (rank == MASTER_NODE) cout << "structural displacements. "<< endl; } else { - if (rank == MASTER_NODE) cout << " between zone " << donorZone << " and zone " << targetZone << ". " << endl; + nVarTransfer = 0; + if (rank == MASTER_NODE) cout << "generic conservative variables. " << endl; } } diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 189a5fea125..7d4079a791f 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -1022,12 +1022,12 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ /*--- Find the global index of the donor points for Point_Target ---*/ - // Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(iDonorPoint); - Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); + //Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); /*--- We need to get the donor coefficient in a way like this: ---*/ - // donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); - donorCoeff = 1.0; + donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); + //donorCoeff = 1.0; /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); From 5763a65bf936a36619232339b671b41f4df23288 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 18 Sep 2015 11:07:44 -0700 Subject: [PATCH 098/269] correction to markerinterface loop, start from 1 not 0 --- Common/src/interpolation_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 031b3c576ab..76b26030be2 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -482,7 +482,7 @@ void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ nMarkerDonor = config[donorZone]->GetnMarker_All(); nMarkerTarget = config[targetZone]->GetnMarker_All(); /*--- For the number of markers on the interface... ---*/ - for (iMarkerInt=0; iMarkerInt < nMarkerInt; iMarkerInt++){ + for (iMarkerInt=1; iMarkerInt < nMarkerInt; iMarkerInt++){ /*--- Procedure: * -Loop through vertices of the aero grid * -Find nearest element and allocate enough space in the aero grid donor point info From c761b29f19ee66609202ba5c93b58ac0bcf10d81 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 18 Sep 2015 11:58:24 -0700 Subject: [PATCH 099/269] FSI: some changes on interpolation, transfer and MPI comm. --- Common/include/interpolation_structure.hpp | 16 +-- Common/src/interpolation_structure.cpp | 31 +++-- SU2_CFD/include/definition_structure.hpp | 3 +- SU2_CFD/include/transfer_structure.hpp | 149 ++++++++++++++++++++- SU2_CFD/src/definition_structure.cpp | 40 +++--- SU2_CFD/src/solver_fem_elasticity.cpp | 27 ++-- SU2_CFD/src/transfer_physics.cpp | 97 ++++++++++++++ SU2_FSI/src/SU2_FSI.cpp | 2 +- 8 files changed, 310 insertions(+), 55 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index b79eddc766c..5ca31bb1539 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -71,7 +71,7 @@ class CInterpolator { /*! * \brief Constructor of the class. */ - CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int nZone); + CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); /*! * \brief Destructor of the class. @@ -104,7 +104,7 @@ class CInterpolator { * \param[in] Zones - list of zones to set up interpolation for. This method must be overwritten in the child classes. * \param[in] config */ - virtual void Set_TransferCoeff(unsigned int* Zones, CConfig **config); + virtual void Set_TransferCoeff(CConfig **config); // /*! @@ -144,7 +144,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. */ - CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int nZone); + CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); /*! * \brief Destructor of the class. @@ -154,7 +154,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes */ - void Set_TransferCoeff(unsigned int* Zones, CConfig **config); + void Set_TransferCoeff(CConfig **config); }; @@ -168,13 +168,13 @@ class CIsoparametric : public CInterpolator { * \brief Constructor of the class. * \param[in] geometry_container * \param[in] config - config container - * \param[in] Zones - list of zone indices to use for interpolation. in the order: [Recipient/Target, Donor ] - * \param[in] nZone - number of zones + * \param[in] iZone - First zone + * \param[in] jZone - Second zone * * Data is set in geometry[targetZone] * */ - CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone); + CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); /*! * \brief Destructor of the class. @@ -188,7 +188,7 @@ class CIsoparametric : public CInterpolator { * * Data is set in geometry[targetZone] */ - void Set_TransferCoeff(unsigned int* Zones, CConfig **config); + void Set_TransferCoeff(CConfig **config); /*! * \brief Calculate the isoparametric representation of point iVertex in marker iZone_0 by nodes of element donor_elem in marker jMarker of zone iZone_1. diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 031b3c576ab..3423c23bafa 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -47,15 +47,15 @@ CInterpolator::CInterpolator(void){ CInterpolator::~CInterpolator(void){} -CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int val_nZone){ +CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone){ /* Store pointers*/ Geometry = geometry_container; - nZone = val_nZone; + nZone = 2; - donorZone = Zones[0]; - targetZone = Zones[1]; + donorZone = iZone; + targetZone = jZone; donor_geometry = geometry_container[donorZone][MESH_0]; target_geometry = geometry_container[targetZone][MESH_0]; @@ -68,7 +68,7 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, } -inline void CInterpolator::Set_TransferCoeff(unsigned int* Zones, CConfig **config) { } +inline void CInterpolator::Set_TransferCoeff(CConfig **config) { } /* void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar){ @@ -208,11 +208,11 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) CNearestNeighbor::CNearestNeighbor(void): CInterpolator(){ } /* Nearest Neighbor Interpolator */ -CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones, unsigned int nZone) : CInterpolator(geometry_container, config, Zones, nZone){ +CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ //unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ - Set_TransferCoeff(Zones,config); + Set_TransferCoeff(config); /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ //InitializeData(Zones,nDim); @@ -221,12 +221,11 @@ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **co CNearestNeighbor::~CNearestNeighbor(){} -void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ +void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex; unsigned short iMarker, iDim, jMarker; unsigned short nDim = donor_geometry->GetnDim(); - su2double distance = 0.0, last_distance=-1.0; unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers @@ -446,10 +445,12 @@ void CNearestNeighbor::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ } -CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int* Zones,unsigned int nZone) : CInterpolator(geometry_container, config, Zones,nZone){ - unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); +CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ + + unsigned short nDim = geometry_container[donorZone][MESH_0]->GetnDim(); + /*--- Initialize transfer coefficients between the zones ---*/ - Set_TransferCoeff(Zones,config); + Set_TransferCoeff(config); /*--- For fluid-structure interaction data interpolated with have nDim dimensions ---*/ // InitializeData(Zones,nDim); @@ -457,18 +458,16 @@ CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config CIsoparametric::~CIsoparametric(){} -void CIsoparametric::Set_TransferCoeff(unsigned int* Zones, CConfig **config){ +void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long jPoint, iVertex, jVertex, inode, jElem, iNearestNode=0, iNearestVertex=0; long donor_elem=0, temp_donor=0; unsigned short iDim, it; - unsigned short nDim = Geometry[Zones[0]][MESH_0]->GetnDim(); + unsigned short nDim = Geometry[targetZone][MESH_0]->GetnDim(); unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; unsigned short markDonor=0, markTarget=0, iFace; unsigned int nNodes=0; /*--- Restricted to 2-zone for now ---*/ - unsigned int targetZone = Zones[0]; - unsigned int donorZone = Zones[1]; unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; su2double distance = 0.0, last_distance=-1.0, *Coord; diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 61ef773e762..e60f899b492 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -107,4 +107,5 @@ void Geometrical_Preprocessing(CGeometry ***geometry, CConfig **config, unsigned * \param[in] val_nZone - Total number of zones. */ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***interpolator_container, - CGeometry ***geometry_container, CConfig **config_container, unsigned short nZone, unsigned short nDim); + CGeometry ***geometry_container, CConfig **config_container, CSolver ****solver_container, + unsigned short nZone, unsigned short nDim); diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp index b14f407e758..33dac8e96c4 100644 --- a/SU2_CFD/include/transfer_structure.hpp +++ b/SU2_CFD/include/transfer_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the transfer structure * The subroutines and functions are in the transfer_structure.cpp and transfer_physics.cpp files. * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -201,7 +201,7 @@ class CTransfer { * \class CTransfer_FlowTraction * \brief Transfer flow tractions from a fluid zone into a structural zone * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTransfer_FlowTraction : public CTransfer { @@ -267,10 +267,10 @@ class CTransfer_FlowTraction : public CTransfer { }; /*! - * \class CTransfer_FlowTraction - * \brief Transfer flow tractions from a fluid zone into a structural zone + * \class CTransfer_StructuralDisplacements + * \brief Transfer structural displacements from a structural zone into a fluid zone * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.0.1 "Cardinal" */ class CTransfer_StructuralDisplacements : public CTransfer { @@ -333,5 +333,144 @@ class CTransfer_StructuralDisplacements : public CTransfer { CConfig *flow_config, unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Flow); +}; + +/*! + * \class CTransfer_StructuralDisplacements_NN + * \brief Transfer structural displacements from a structural zone into a fluid zone using a nearest neighbor method + * \author R. Sanchez + * \version 4.0.1 "Cardinal" + */ + +class CTransfer_StructuralDisplacements_NN : public CTransfer { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CTransfer_StructuralDisplacements_NN(void); + + /*! + * \overload + * \param[in] val_nVar - Number of variables that need to be transferred. + * \param[in] config - Definition of the particular problem. + */ + CTransfer_StructuralDisplacements_NN(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + virtual ~CTransfer_StructuralDisplacements_NN(void); + + /*! + * \brief Retrieve some constants needed for the calculations. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Retrieve the variable that will be sent from donor mesh to target mesh. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] Marker_Donor - Index of the donor marker. + * \param[in] Vertex_Donor - Index of the donor vertex. + */ + void GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, + unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct); + + /*! + * \brief Set the variable that has been received from the target mesh into the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + * \param[in] Marker_Target - Index of the target marker. + * \param[in] Vertex_Target - Index of the target vertex. + * \param[in] Point_Target - Index of the target point. + */ + void SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, + CConfig *flow_config, unsigned long Marker_Flow, + unsigned long Vertex_Flow, unsigned long Point_Flow); + +}; + +/*! + * \class CTransfer_ConservativeVars + * \brief Transfer conservative variables from a generic zone into another + * \author R. Sanchez + * \version 4.0.1 "Cardinal" + */ + +class CTransfer_ConservativeVars : public CTransfer { + +protected: + +public: + + /*! + * \brief Constructor of the class. + */ + CTransfer_ConservativeVars(void); + + /*! + * \overload + * \param[in] val_nVar - Number of variables that need to be transferred. + * \param[in] config - Definition of the particular problem. + */ + CTransfer_ConservativeVars(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + virtual ~CTransfer_ConservativeVars(void); + + /*! + * \brief Retrieve some constants needed for the calculations. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + */ + void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); + + /*! + * \brief Retrieve the variable that will be sent from donor mesh to target mesh. + * \param[in] donor_solution - Solution from the donor mesh. + * \param[in] donor_geometry - Geometry of the donor mesh. + * \param[in] donor_config - Definition of the problem at the donor mesh. + * \param[in] Marker_Donor - Index of the donor marker. + * \param[in] Vertex_Donor - Index of the donor vertex. + * \param[in] Point_Donor - Index of the donor point. + */ + void GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry, CConfig *donor_config, + unsigned long Marker_Donor, unsigned long Vertex_Donor, unsigned long Point_Donor); + + /*! + * \brief Set the variable that has been received from the target mesh into the target mesh. + * \param[in] target_solution - Solution from the target mesh. + * \param[in] target_geometry - Geometry of the target mesh. + * \param[in] target_config - Definition of the problem at the target mesh. + * \param[in] Marker_Target - Index of the target marker. + * \param[in] Vertex_Target - Index of the target vertex. + * \param[in] Point_Target - Index of the target point. + */ + void SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, CConfig *target_config, + unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target); + + }; #include "transfer_structure.inl" diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 67c6bd85fea..0931338a0fc 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1516,12 +1516,11 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***interpolator_container, CGeometry ***geometry_container, CConfig **config_container, - unsigned short nZone, unsigned short nDim) { + CSolver ****solver_container, unsigned short nZone, unsigned short nDim) { int rank = MASTER_NODE; unsigned short donorZone, targetZone; - unsigned short nVarTransfer; - unsigned int Zones[2]; + unsigned short nVar, nVarTransfer; unsigned int nzn = 2; // Temporary, I'm not sure I need it /*--- Initialize some useful booleans ---*/ @@ -1545,9 +1544,6 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i fluid_donor = false; structural_donor = false; matching_mesh = config_container[donorZone]->GetMatchingMesh(); - /*--- Initialize donor zone for interpolation classes ---*/ - Zones[0] = donorZone; - /*--- Set the donor boolean: as of now, only Fluid-Structure Interaction considered ---*/ switch (config_container[donorZone]->GetKind_Solver()) { case EULER : case NAVIER_STOKES: case RANS: fluid_donor = true; break; @@ -1559,15 +1555,21 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i /*--- Initialize donor booleans ---*/ fluid_target = false; structural_target = false; - /*--- Initialize target zone for interpolation classes ---*/ - Zones[1] = targetZone; - /*--- Set the target boolean: as of now, only Fluid-Structure Interaction considered ---*/ switch (config_container[targetZone]->GetKind_Solver()) { case EULER : case NAVIER_STOKES: case RANS: fluid_target = true; break; case FEM_ELASTICITY: structural_target = true; break; } + /*--- Retrieve the number of conservative variables (for problems not involving structural analysis ---*/ + if (!structural_donor && !structural_target){ + nVar = solver_container[donorZone][MESH_0][FLOW_SOL]->GetnVar(); + } + else{ + /*--- If at least one of the components is structural ---*/ + nVar = nDim; + } + /*--- Interface conditions are only defined between different zones ---*/ if (donorZone != targetZone){ @@ -1587,11 +1589,11 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i if (rank == MASTER_NODE) cout << "between non-matching meshes "; switch (config_container[donorZone]->GetKindInterpolation()){ case NEAREST_NEIGHBOR: - interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, Zones, nzn); + interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, donorZone, targetZone); if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; break; case ISOPARAMETRIC: - interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); + interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container, config_container, donorZone, targetZone); if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; break; } @@ -1601,17 +1603,23 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i if (rank == MASTER_NODE) cout << "Transferring "; if (fluid_donor && structural_target) { - nVarTransfer = 0; - transfer_container[donorZone][targetZone] = new CTransfer_FlowTraction(nDim, nVarTransfer, config_container[donorZone]); + nVarTransfer = 2; + transfer_container[donorZone][targetZone] = new CTransfer_FlowTraction(nVar, nVarTransfer, config_container[donorZone]); if (rank == MASTER_NODE) cout << "flow tractions. "<< endl; } - else if (structural_donor && fluid_target){ - nVarTransfer = 2; - transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements(nDim, nVarTransfer, config_container[donorZone]); + else if (structural_donor && fluid_target && matching_mesh){ + nVarTransfer = 0; + transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements(nVar, nVarTransfer, config_container[donorZone]); if (rank == MASTER_NODE) cout << "structural displacements. "<< endl; } + else if (structural_donor && fluid_target && !matching_mesh){ + nVarTransfer = 0; + transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements_NN(nVar, nVarTransfer, config_container[donorZone]); + if (rank == MASTER_NODE) cout << "structural displacements (NN). "<< endl; + } else { nVarTransfer = 0; + transfer_container[donorZone][targetZone] = new CTransfer_ConservativeVars(nVar, nVarTransfer, config_container[donorZone]); if (rank == MASTER_NODE) cout << "generic conservative variables. " << endl; } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index bfdbd31f189..c4c64a50233 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2715,10 +2715,15 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, unsigned long iPoint, iDim; unsigned long nPoint, nDim; + + su2double rbuf_numAitk = 0, sbuf_numAitk = 0; + su2double rbuf_denAitk = 0, sbuf_denAitk = 0; + + su2double WAitken; + su2double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; su2double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; - su2double numAitk, denAitk, WAitken; su2double CurrentTime=fea_config->GetCurrent_DynTime(); su2double Static_Time=fea_config->GetStatic_Time(); su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; @@ -2728,9 +2733,6 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, WAitken=fea_config->GetAitkenStatRelax(); - numAitk = 0.0; - denAitk = 0.0; - ofstream historyFile_FSI; bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); if (writeHistFSI){ @@ -2783,17 +2785,26 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; /*--- Add numerator and denominator ---*/ - numAitk += deltaU[iDim] * delta_deltaU[iDim]; - denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; + sbuf_numAitk += deltaU[iDim] * delta_deltaU[iDim]; + sbuf_denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; } } +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&sbuf_numAitk, &rbuf_numAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&sbuf_denAitk, &rbuf_denAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +#else + rbuf_numAitk = sbuf_numAitk; + rbuf_denAitk = sbuf_denAitk; +#endif + WAitkDyn = GetWAitken_Dyn(); - if (denAitk > 1E-8){ - WAitkDyn = - 1.0 * WAitkDyn * numAitk / denAitk ; + //TODO: double check this. + if (rbuf_denAitk > 1E-8){ + WAitkDyn = - 1.0 * WAitkDyn * rbuf_numAitk / rbuf_denAitk ; } WAitkDyn = max(WAitkDyn, 0.1); diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 44c781d9ff3..160dab3c51e 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -258,3 +258,100 @@ void CTransfer_StructuralDisplacements::SetTarget_Variable(CSolver *flow_solutio } +CTransfer_StructuralDisplacements_NN::CTransfer_StructuralDisplacements_NN(void) : CTransfer() { + +} + +CTransfer_StructuralDisplacements_NN::CTransfer_StructuralDisplacements_NN(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + +} + +CTransfer_StructuralDisplacements_NN::~CTransfer_StructuralDisplacements_NN(void) { + +} + + +void CTransfer_StructuralDisplacements_NN::GetPhysical_Constants(CSolver *struct_solution, CSolver *flow_solution, + CGeometry *struct_geometry, CGeometry *flow_geometry, + CConfig *struct_config, CConfig *flow_config){ + +} + +void CTransfer_StructuralDisplacements_NN::GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, + unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ + + + su2double *DisplacementDonor, *DisplacementDonor_Prev; + unsigned short iVar; + + /*--- The displacements come from the predicted solution ---*/ + DisplacementDonor = struct_solution->node[Point_Struct]->GetSolution_Pred(); + + DisplacementDonor_Prev = struct_solution->node[Point_Struct]->GetSolution_Pred_Old(); + + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = DisplacementDonor[iVar] - DisplacementDonor_Prev[iVar]; + } + +} + +void CTransfer_StructuralDisplacements_NN::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, + CConfig *flow_config, unsigned long Marker_Flow, + unsigned long Vertex_Flow, unsigned long Point_Flow){ + + su2double VarCoord[3] = {0.0, 0.0, 0.0}; + unsigned short iVar; + + for (iVar = 0; iVar < nVar; iVar++) + VarCoord[iVar] = Target_Variable[iVar]; + + flow_geometry->vertex[Marker_Flow][Vertex_Flow]->SetVarCoord(VarCoord); + +} + + + +CTransfer_ConservativeVars::CTransfer_ConservativeVars(void) : CTransfer() { + +} + +CTransfer_ConservativeVars::CTransfer_ConservativeVars(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { + +} + +CTransfer_ConservativeVars::~CTransfer_ConservativeVars(void) { + +} + + +void CTransfer_ConservativeVars::GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + +} + +void CTransfer_ConservativeVars::GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry, CConfig *donor_config, + unsigned long Marker_Donor, unsigned long Vertex_Donor, unsigned long Point_Donor){ + + su2double *Solution; + unsigned short iVar; + + /*--- Retrieve solution and set it as the donor variable ---*/ + Solution = donor_solution->node[Point_Donor]->GetSolution(); + + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = Solution[iVar]; + } + + +} + +void CTransfer_ConservativeVars::SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, + CConfig *target_config, unsigned long Marker_Target, + unsigned long Vertex_Target, unsigned long Point_Target){ + + /*--- Set the target solution with the value of the Target Variable ---*/ + target_solution->node[Point_Target]->SetSolution(Target_Variable); + +} + diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index c965e693027..76d6905d144 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -301,7 +301,7 @@ int main(int argc, char *argv[]) { } Interface_Preprocessing(transfer_container, interpolator_container, geometry_container, - config_container, nZone, nDim); + config_container, solver_container, nZone, nDim); } From 8ec271fc525d69d874c3d29b967afb419e674f41 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 18 Sep 2015 16:56:16 -0700 Subject: [PATCH 100/269] FSI: some minor changes. --- Common/src/interpolation_structure.cpp | 1 - SU2_CFD/include/transfer_structure.hpp | 12 +- SU2_CFD/src/definition_structure.cpp | 7 +- SU2_CFD/src/transfer_physics.cpp | 49 +++-- SU2_CFD/src/transfer_structure.cpp | 245 ++++++++++++++++++++++++- SU2_FSI/src/SU2_FSI.cpp | 22 --- 6 files changed, 274 insertions(+), 62 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 3423c23bafa..3ae11905494 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -210,7 +210,6 @@ CNearestNeighbor::CNearestNeighbor(void): CInterpolator(){ } /* Nearest Neighbor Interpolator */ CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ - //unsigned short nDim = geometry_container[Zones[0]][MESH_0]->GetnDim(); /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(config); diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp index 33dac8e96c4..46ec2ab0899 100644 --- a/SU2_CFD/include/transfer_structure.hpp +++ b/SU2_CFD/include/transfer_structure.hpp @@ -336,13 +336,13 @@ class CTransfer_StructuralDisplacements : public CTransfer { }; /*! - * \class CTransfer_StructuralDisplacements_NN - * \brief Transfer structural displacements from a structural zone into a fluid zone using a nearest neighbor method + * \class CTransfer_StructuralDisplacements_Original + * \brief Transfer structural displacements from a structural zone into a fluid zone (legacy method, kept for V&V) * \author R. Sanchez * \version 4.0.1 "Cardinal" */ -class CTransfer_StructuralDisplacements_NN : public CTransfer { +class CTransfer_StructuralDisplacements_Original : public CTransfer { protected: @@ -351,19 +351,19 @@ class CTransfer_StructuralDisplacements_NN : public CTransfer { /*! * \brief Constructor of the class. */ - CTransfer_StructuralDisplacements_NN(void); + CTransfer_StructuralDisplacements_Original(void); /*! * \overload * \param[in] val_nVar - Number of variables that need to be transferred. * \param[in] config - Definition of the particular problem. */ - CTransfer_StructuralDisplacements_NN(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); + CTransfer_StructuralDisplacements_Original(unsigned short val_nVar, unsigned short val_nConst, CConfig *config); /*! * \brief Destructor of the class. */ - virtual ~CTransfer_StructuralDisplacements_NN(void); + virtual ~CTransfer_StructuralDisplacements_Original(void); /*! * \brief Retrieve some constants needed for the calculations. diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 0931338a0fc..a9b6d83c296 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1607,16 +1607,11 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i transfer_container[donorZone][targetZone] = new CTransfer_FlowTraction(nVar, nVarTransfer, config_container[donorZone]); if (rank == MASTER_NODE) cout << "flow tractions. "<< endl; } - else if (structural_donor && fluid_target && matching_mesh){ + else if (structural_donor && fluid_target){ nVarTransfer = 0; transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements(nVar, nVarTransfer, config_container[donorZone]); if (rank == MASTER_NODE) cout << "structural displacements. "<< endl; } - else if (structural_donor && fluid_target && !matching_mesh){ - nVarTransfer = 0; - transfer_container[donorZone][targetZone] = new CTransfer_StructuralDisplacements_NN(nVar, nVarTransfer, config_container[donorZone]); - if (rank == MASTER_NODE) cout << "structural displacements (NN). "<< endl; - } else { nVarTransfer = 0; transfer_container[donorZone][targetZone] = new CTransfer_ConservativeVars(nVar, nVarTransfer, config_container[donorZone]); diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 160dab3c51e..8becda5a231 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -201,6 +201,8 @@ void CTransfer_FlowTraction::SetTarget_Variable(CSolver *fea_solution, CGeometry } + + CTransfer_StructuralDisplacements::CTransfer_StructuralDisplacements(void) : CTransfer() { } @@ -224,20 +226,16 @@ void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_soluti unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ - su2double *Coord_Struct, *Displacement_Struct; + su2double *DisplacementDonor, *DisplacementDonor_Prev; unsigned short iVar; - Coord_Struct = struct_geometry->node[Point_Struct]->GetCoord(); - /*--- The displacements come from the predicted solution ---*/ - Displacement_Struct = struct_solution->node[Point_Struct]->GetSolution_Pred(); - -// cout << "For point " << Point_Struct << " we have coordinates " << Coord_Struct[0] << " " << Coord_Struct[1] << endl; -// cout << "and displacements " << Displacement_Struct[0] << " " << Displacement_Struct[1] << endl; + DisplacementDonor = struct_solution->node[Point_Struct]->GetSolution_Pred(); + DisplacementDonor_Prev = struct_solution->node[Point_Struct]->GetSolution_Pred_Old(); for (iVar = 0; iVar < nVar; iVar++){ - Donor_Variable[iVar] = Coord_Struct[iVar] + Displacement_Struct[iVar]; + Donor_Variable[iVar] = DisplacementDonor[iVar] - DisplacementDonor_Prev[iVar]; } } @@ -246,64 +244,64 @@ void CTransfer_StructuralDisplacements::SetTarget_Variable(CSolver *flow_solutio CConfig *flow_config, unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Flow){ - su2double *Coord, VarCoord[3] = {0.0, 0.0, 0.0}; + su2double VarCoord[3] = {0.0, 0.0, 0.0}; unsigned short iVar; - Coord = flow_geometry->node[Point_Flow]->GetCoord(); - for (iVar = 0; iVar < nVar; iVar++) - VarCoord[iVar] = Target_Variable[iVar]-Coord[iVar]; + VarCoord[iVar] = Target_Variable[iVar]; flow_geometry->vertex[Marker_Flow][Vertex_Flow]->SetVarCoord(VarCoord); } -CTransfer_StructuralDisplacements_NN::CTransfer_StructuralDisplacements_NN(void) : CTransfer() { +CTransfer_StructuralDisplacements_Original::CTransfer_StructuralDisplacements_Original(void) : CTransfer() { } -CTransfer_StructuralDisplacements_NN::CTransfer_StructuralDisplacements_NN(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { +CTransfer_StructuralDisplacements_Original::CTransfer_StructuralDisplacements_Original(unsigned short val_nVar, unsigned short val_nConst, CConfig *config) : CTransfer(val_nVar, val_nConst, config) { } -CTransfer_StructuralDisplacements_NN::~CTransfer_StructuralDisplacements_NN(void) { +CTransfer_StructuralDisplacements_Original::~CTransfer_StructuralDisplacements_Original(void) { } -void CTransfer_StructuralDisplacements_NN::GetPhysical_Constants(CSolver *struct_solution, CSolver *flow_solution, +void CTransfer_StructuralDisplacements_Original::GetPhysical_Constants(CSolver *struct_solution, CSolver *flow_solution, CGeometry *struct_geometry, CGeometry *flow_geometry, CConfig *struct_config, CConfig *flow_config){ } -void CTransfer_StructuralDisplacements_NN::GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, +void CTransfer_StructuralDisplacements_Original::GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config, unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ - su2double *DisplacementDonor, *DisplacementDonor_Prev; + su2double *Coord_Struct, *Displacement_Struct; unsigned short iVar; - /*--- The displacements come from the predicted solution ---*/ - DisplacementDonor = struct_solution->node[Point_Struct]->GetSolution_Pred(); + Coord_Struct = struct_geometry->node[Point_Struct]->GetCoord(); - DisplacementDonor_Prev = struct_solution->node[Point_Struct]->GetSolution_Pred_Old(); + /*--- The displacements come from the predicted solution ---*/ + Displacement_Struct = struct_solution->node[Point_Struct]->GetSolution_Pred(); for (iVar = 0; iVar < nVar; iVar++){ - Donor_Variable[iVar] = DisplacementDonor[iVar] - DisplacementDonor_Prev[iVar]; + Donor_Variable[iVar] = Coord_Struct[iVar] + Displacement_Struct[iVar]; } } -void CTransfer_StructuralDisplacements_NN::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, +void CTransfer_StructuralDisplacements_Original::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, CConfig *flow_config, unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Flow){ - su2double VarCoord[3] = {0.0, 0.0, 0.0}; + su2double *Coord, VarCoord[3] = {0.0, 0.0, 0.0}; unsigned short iVar; + Coord = flow_geometry->node[Point_Flow]->GetCoord(); + for (iVar = 0; iVar < nVar; iVar++) - VarCoord[iVar] = Target_Variable[iVar]; + VarCoord[iVar] = Target_Variable[iVar]-Coord[iVar]; flow_geometry->vertex[Marker_Flow][Vertex_Flow]->SetVarCoord(VarCoord); @@ -311,6 +309,7 @@ void CTransfer_StructuralDisplacements_NN::SetTarget_Variable(CSolver *flow_solu + CTransfer_ConservativeVars::CTransfer_ConservativeVars(void) : CTransfer() { } diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 7d4079a791f..73548828306 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -1019,15 +1019,14 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo /*--- As we will be adding data, we need to set the variable to 0 ---*/ for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; + /*--- For the number of donor points ---*/ for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ /*--- Find the global index of the donor points for Point_Target ---*/ Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); - //Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); /*--- We need to get the donor coefficient in a way like this: ---*/ donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); - //donorCoeff = 1.0; /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); @@ -1074,4 +1073,246 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo CConfig *donor_config, CConfig *target_config){ + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side + unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + + unsigned short iVar, jDim; + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + unsigned long Point_Donor_Global, Donor_Global_Index; + unsigned long Point_Donor, Point_Target; + su2double *Normal_Donor, *Normal_Target; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + + unsigned long iLocalVertex = 0; + unsigned long nLocalVertexDonor = 0; + unsigned long iVertexDonor = 0, iVertexTarget = 0; + unsigned long nPoint_Total = 0; + + unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; + unsigned long TotalVertexDonor = 0; + + unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + + unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; + + unsigned long Processor_Donor, Processor_Target; + + int iProcessor, nProcessor = 0; + unsigned long iVariable; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + /*--- We are only sending the values the processor owns ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- nLocalVertexDonor WILL include halo nodes ---*/ + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the donor points ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + +#ifdef HAVE_MPI + /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We gather a vector in all processors that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Allgather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); +#else + MaxLocalVertexDonor = nLocalVertexDonor; + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; +#endif + + /*--- We will be gathering the donor information into the master node ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_DonorIndices = MaxLocalVertexDonor; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + + /*--- On the donor side ---*/ + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Donor >= 0){ + + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); + Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[iVertex] = -1; + } + + } + + } + + cout << "STOPS HERE:" << endl; + +#ifdef HAVE_MPI + /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Allgather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MPI_COMM_WORLD); +#else + for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; +#endif + + long indexPoint_iVertex, Point_Target_Check; + unsigned short iDonorPoint, nDonorPoints; + su2double donorCoeff; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + /*--- If this processor owns the node ---*/ + if (target_geometry->node[Point_Target]->GetDomain()){ + + nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); + + /*--- As we will be adding data, we need to set the variable to 0 ---*/ + for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; + + /*--- For the number of donor points ---*/ + for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ + + /*--- Find the global index of the donor points for Point_Target ---*/ + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); + + /*--- We need to get the donor coefficient in a way like this: ---*/ + donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); + + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_DonorIndices, std::find(Buffer_Recv_DonorIndices, Buffer_Recv_DonorIndices + nBuffer_DonorIndices, Donor_Global_Index)); + + Point_Target_Check = Buffer_Recv_DonorIndices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] += donorCoeff * Buffer_Recv_DonorVariables[indexPoint_iVertex*nVar+iVar]; + } + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + + delete [] Buffer_Recv_nVertexDonor; + + } + + } diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index 76d6905d144..09326487cde 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -280,17 +280,6 @@ int main(int argc, char *argv[]) { if ((nZone > 1) && (nZone < 3)) { - // if (!config_container[ZONE_0]->GetMatchingMesh()){ - // unsigned int Zones[2]; - // unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure - // Zones[0]=ZONE_0; - // Zones[1]=ZONE_1; - // if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) - // interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); - // if (config_container[ZONE_0]->GetKindInterpolation()== CONSISTENT_AND_CONSERVATIVE ) - // interpolator_container[iZone] = new CConsistConserve(geometry_container,config_container,Zones,nzn); - // } - for (iZone = 0; iZone < nZone; iZone++){ transfer_container[iZone] = new CTransfer*[nZone]; interpolator_container[iZone] = new CInterpolator*[nZone]; @@ -305,17 +294,6 @@ int main(int argc, char *argv[]) { } -// if (!config_container[ZONE_0]->GetMatchingMesh()){ -// unsigned int Zones[2]; -// unsigned int nzn = 2; // temporary nZones for interpolation: 2 in the case of fluid-structure -// Zones[0]=ZONE_0; -// Zones[1]=ZONE_1; -// if (config_container[ZONE_0]->GetKindInterpolation()== NEAREST_NEIGHBOR ) -// interpolator_container[iZone] = new CNearestNeighbor(geometry_container,config_container,Zones,nzn); -// if (config_container[ZONE_0]->GetKindInterpolation()== ISOPARAMETRIC ) -// interpolator_container[iZone] = new CIsoparametric(geometry_container,config_container,Zones,nzn); -// } - /*--- Definition of the output class (one for all zones). The output class manages the writing of all restart, volume solution, surface solution, From 604a988e482286255ec94425dd012784d6e49a52 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 21 Sep 2015 11:37:07 -0700 Subject: [PATCH 101/269] FSI-MPI: fixed small bug in allgather routine. --- SU2_CFD/src/transfer_structure.cpp | 47 ++++++++++++++++++------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 73548828306..f2c4b9400d7 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -1149,8 +1149,14 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo /*--- We have identified the local index of the Donor marker ---*/ /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ /*--- This are the number of points that will be sent from this particular processor ---*/ - /*--- nLocalVertexDonor WILL include halo nodes ---*/ - nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- nLocalVertexDonor WILL NOT include halo nodes ---*/ + nLocalVertexDonor = 0; + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); + if (donor_geometry->node[Point_Donor]->GetDomain()){ + nLocalVertexDonor++; + } + } /*--- Store the identifier for the structural marker ---*/ Marker_Donor = iMarkerDonor; /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ @@ -1179,8 +1185,8 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo } } - Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker - if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side #ifdef HAVE_MPI /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ @@ -1212,36 +1218,41 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) Buffer_Send_DonorIndices[iVertex] = -1; + /*--- Also to avoid having random values in the variables vector ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++){ + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar + iVar] = 0.0; + } + } + if (Marker_Donor >= 0){ - for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + iLocalVertex = 0; + + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(Marker_Donor); iVertex++){ Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; - } - /*--- If this processor owns the node ---*/ if (donor_geometry->node[Point_Donor]->GetDomain()){ + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iLocalVertex*nVar+iVar] = Donor_Variable[iVar]; + } + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); - Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; - } - else{ - /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[iVertex] = -1; + Buffer_Send_DonorIndices[iLocalVertex] = Point_Donor_Global; + + iLocalVertex++; } } } - cout << "STOPS HERE:" << endl; - #ifdef HAVE_MPI - /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ + /*--- Once all the messages have been prepared, we gather them all into all the processors ---*/ SU2_MPI::Allgather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MPI_COMM_WORLD); SU2_MPI::Allgather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MPI_COMM_WORLD); #else @@ -1283,7 +1294,7 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ - indexPoint_iVertex = std::distance(Buffer_Recv_DonorIndices, std::find(Buffer_Recv_DonorIndices, Buffer_Recv_DonorIndices + nBuffer_DonorIndices, Donor_Global_Index)); + indexPoint_iVertex = std::distance(Buffer_Recv_DonorIndices, std::find(Buffer_Recv_DonorIndices, Buffer_Recv_DonorIndices + nProcessor*nBuffer_DonorIndices, Donor_Global_Index)); Point_Target_Check = Buffer_Recv_DonorIndices[indexPoint_iVertex]; From acec993ef3190104099941cfed521f21adec1692 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 21 Sep 2015 11:39:27 -0700 Subject: [PATCH 102/269] adding SU2_FSI to python tools --- SU2_PY/Makefile.am | 1 + SU2_PY/SU2/run/interface.py | 54 ++++++++++++-- SU2_PY/parallel_computation_fsi.py | 111 +++++++++++++++++++++++++++++ 3 files changed, 161 insertions(+), 5 deletions(-) create mode 100644 SU2_PY/parallel_computation_fsi.py diff --git a/SU2_PY/Makefile.am b/SU2_PY/Makefile.am index b06ee328a0f..0406aa14110 100644 --- a/SU2_PY/Makefile.am +++ b/SU2_PY/Makefile.am @@ -36,6 +36,7 @@ bin_SCRIPTS = \ finite_differences.py \ mesh_deformation.py \ parallel_computation.py \ + parallel_computation_fsi.py \ package_tests.py \ patient_designspace.py \ shape_optimization.py \ diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index b01e5db75a6..f77c7ba6aea 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -88,15 +88,15 @@ def CFD(config): processes = konfig['NUMBER_PART'] - the_Command = 'SU2_CFD_AD ' + tempname + the_Command = 'SU2_CFD_DIRECTDIFF ' + tempname elif discrete_adjoint: - tempname = 'config_CFD_AD.cfg' + tempname = 'config_CFD_REVERSE.cfg' konfig.dump(tempname) processes = konfig['NUMBER_PART'] - the_Command = 'SU2_CFD_AD ' + tempname + the_Command = 'SU2_CFD_REVERSE ' + tempname else: tempname = 'config_CFD.cfg' @@ -113,6 +113,50 @@ def CFD(config): return +def FSI(config): + """ run SU2_FSI + partitions set by config.NUMBER_PART + """ + konfig = copy.deepcopy(config) + + direct_diff = not konfig.get('DIRECT_DIFF',"") in ["NONE", ""] + + discrete_adjoint = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' + + if direct_diff: + tempname = 'config_FSI_DIRECTDIFF.cfg' + + konfig.dump(tempname) + + processes = konfig['NUMBER_PART'] + + the_Command = 'SU2_FSI_DIRECTDIFF ' + tempname + + elif discrete_adjoint: + tempname = 'config_FSI_REVERSE.cfg' + konfig.dump(tempname) + + processes = konfig['NUMBER_PART'] + + the_Command = 'SU2_FSI_REVERSE ' + tempname + + else: + tempname = 'config_FSI.cfg' + konfig.dump(tempname) + + processes = konfig['NUMBER_PART'] + + the_Command = 'SU2_FSI ' + tempname + + the_Command = build_command( the_Command , processes ) + run_command( the_Command ) + + #os.remove(tempname) + + return + + + def MSH(config): """ run SU2_MSH partitions set by config.NUMBER_PART @@ -166,12 +210,12 @@ def DOT(config): if discrete_adjoint: - tempname = 'config_DOT_AD.cfg' + tempname = 'config_DOT_REVERSE.cfg' konfig.dump(tempname) processes = konfig['NUMBER_PART'] - the_Command = 'SU2_DOT_AD ' + tempname + the_Command = 'SU2_DOT_REVERSE ' + tempname else: tempname = 'config_DOT.cfg' diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py new file mode 100644 index 00000000000..300bbd0f586 --- /dev/null +++ b/SU2_PY/parallel_computation_fsi.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python + +## \file parallel_computation.py +# \brief Python script for doing the continuous adjoint computation using the SU2 suite. +# \author T. Economon, T. Lukaczyk, F. Palacios +# \version 4.0.1 "Cardinal" +# +# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). +# Dr. Thomas D. Economon (economon@stanford.edu). +# +# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. +# Prof. Piero Colonna's group at Delft University of Technology. +# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +# Prof. Alberto Guardone's group at Polytechnic University of Milan. +# Prof. Rafael Palacios' group at Imperial College London. +# +# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . + +import os, sys, shutil, copy +from optparse import OptionParser +sys.path.append(os.environ['SU2_RUN']) +import SU2 + +# ------------------------------------------------------------------- +# Main +# ------------------------------------------------------------------- + +def main(): + + # Command Line Options + parser=OptionParser() + parser.add_option("-f", "--file", dest="filename", + help="read config from FILE", metavar="FILE") + parser.add_option("-n", "--partitions", dest="partitions", default=2, + help="number of PARTITIONS", metavar="PARTITIONS") + parser.add_option("-c", "--compute", dest="compute", default="True", + help="COMPUTE direct and adjoint problem", metavar="COMPUTE") + + (options, args)=parser.parse_args() + options.partitions = int( options.partitions ) + options.compute = options.compute.upper() == 'TRUE' + + if options.filename == None: + raise Exception("No config file provided. Use -f flag") + + parallel_computation( options.filename , + options.partitions , + options.compute ) + +#: def main() + + +# ------------------------------------------------------------------- +# CFD Solution +# ------------------------------------------------------------------- + +def parallel_computation( filename , + partitions = 0 , + compute = True ): + + # Config + config = SU2.io.Config(filename) + config.NUMBER_PART = partitions + + # State + state = SU2.io.State() + + # check for existing files + if not compute: + state.find_files(config) + else: + state.FILES.MESH = config.MESH_FILENAME + + # CFD Solution (direct or adjoint) + info = SU2.run.FSI(config) + state.update(info) + + # Solution merging + if config.MATH_PROBLEM == 'DIRECT': + config.SOLUTION_FLOW_FILENAME = config.RESTART_FLOW_FILENAME + elif config.MATH_PROBLEM == 'CONTINUOUS_ADJOINT': + config.SOLUTION_ADJ_FILENAME = config.RESTART_ADJ_FILENAME + info = SU2.run.merge(config) + state.update(info) + + return state + +#: parallel_computation() + + +# ------------------------------------------------------------------- +# Run Main Program +# ------------------------------------------------------------------- + +# this is only accessed if running from command prompt +if __name__ == '__main__': + main() + From 4fa5b2d3a8c2e7d80cb94cace2ad4641c6ee323b Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 21 Sep 2015 11:42:58 -0700 Subject: [PATCH 103/269] adding Su2_fsi to run module --- SU2_PY/SU2/run/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/SU2_PY/SU2/run/__init__.py b/SU2_PY/SU2/run/__init__.py index 56e6a3f2a1d..8d6d57223ba 100644 --- a/SU2_PY/SU2/run/__init__.py +++ b/SU2_PY/SU2/run/__init__.py @@ -4,6 +4,7 @@ build_command ,\ run_command ,\ CFD ,\ + FSI ,\ MSH ,\ DEF ,\ DOT ,\ From 022465876b5098219992dfab31919dc0d63a8f05 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 21 Sep 2015 17:00:45 -0700 Subject: [PATCH 104/269] Bug fix --- SU2_CFD/include/solver_structure.inl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index b8c197fa1e7..432bf75b57b 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -601,7 +601,7 @@ inline void CSolver::AddRes_Max(unsigned short val_var, su2double val_residual, inline su2double CSolver::GetRes_Max(unsigned short val_var) { return Residual_Max[val_var]; } -inline su2double CSolver::GetRes_FEM(unsigned short val_var) { } +inline su2double CSolver::GetRes_FEM(unsigned short val_var) { return 0.0; } inline unsigned long CSolver::GetPoint_Max(unsigned short val_var) { return Point_Max[val_var]; } From 4299dbcf9395b76b00eaeaa09668c8722f8d9ab2 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 22 Sep 2015 21:04:31 -0700 Subject: [PATCH 105/269] isoparams running better (not ideal yet) --- Common/include/interpolation_structure.hpp | 2 +- Common/src/dual_grid_structure.cpp | 2 +- Common/src/interpolation_structure.cpp | 383 ++++++++++----------- 3 files changed, 185 insertions(+), 202 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 5ca31bb1539..59b7288eed4 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -205,7 +205,7 @@ class CIsoparametric : public CInterpolator { * is referenced) */ void Isoparameters(su2double* isoparams, - unsigned short nDim, unsigned int iZone_1, long donor_elem, unsigned short iFace, + unsigned short nDim, long donor_elem, unsigned short iFace, unsigned int nDonorPoints, su2double* xj); }; diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 914b78654a6..8411047f715 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -459,7 +459,7 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v Donor_Points = NULL; Donor_Proc = NULL; Donor_Coeff = NULL; - nDonor_Points = 1; + nDonor_Points = 0; } CVertex::~CVertex() { diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 7182b6ae2cb..bed9a179f7d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -135,7 +135,7 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) // unsigned long GlobalIndex, iPoint, i2Point, jPoint, j2Point, iVertex, jVertex; // unsigned short iMarker, jMarker, iDim; // unsigned int donorZone; -// su2double *NewVarCoord = NULL, *VarCoord, *VarRot, *distance = NULL; +// su2double *NewVarCoord = NULL, *VarCoord, *VarRot, *dist = NULL; // su2double weight; // unsigned short nDim = Geometry[iZone][MESH_0]->GetnDim(); // /*--- Loop over vertices in the interface marker (zone 0) ---*/ @@ -153,24 +153,24 @@ void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar) // jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); // weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); // /* Get translation and rotation from the solution */ -// VarCoord = Geometry[donorZone][MESH_0]->vertex[jMarker][jVertex]->GetVarCoord(); -// VarRot = Geometry[donorZone][MESH_0]->vertex[jMarker][jVertex]->GetVarRot(); +// VarCoord = donor_geometry->vertex[jMarker][jVertex]->GetVarCoord(); +// VarRot = donor_geometry->vertex[jMarker][jVertex]->GetVarRot(); // -// for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(iDim); +// dist[iDim] = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetCoord(iDim)-donor_geometry->node[jPoint]->GetCoord(iDim); // } -// /*--- Add contribution of rotation (cross product of donor point rotation and distance to donor point) ---*/ +// /*--- Add contribution of rotation (cross product of donor point rotation and dist to donor point) ---*/ // if (nDim==2){ -// NewVarCoord[0]+=weight*(-distance[1]*VarRot[2]); -// NewVarCoord[1]+=weight*(distance[0]*VarRot[2]); +// NewVarCoord[0]+=weight*(-dist[1]*VarRot[2]); +// NewVarCoord[1]+=weight*(dist[0]*VarRot[2]); // } // if (nDim==3){ -// NewVarCoord[0]+=weight*(distance[2]*VarRot[1]-distance[1]*VarRot[2]); -// NewVarCoord[1]+=weight*(distance[0]*VarRot[2]-distance[2]*VarRot[0]); -// NewVarCoord[2]+=weight*(distance[1]*VarRot[0]-distance[0]*VarRot[1]); +// NewVarCoord[0]+=weight*(dist[2]*VarRot[1]-dist[1]*VarRot[2]); +// NewVarCoord[1]+=weight*(dist[0]*VarRot[2]-dist[2]*VarRot[0]); +// NewVarCoord[2]+=weight*(dist[1]*VarRot[0]-dist[0]*VarRot[1]); // } // } // /*--- Set the varcoord information ---*/ @@ -223,12 +223,12 @@ CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ unsigned long iPoint, jPoint, iVertex, jVertex; - unsigned short iMarker, iDim, jMarker; + unsigned short iDim; unsigned short nDim = donor_geometry->GetnDim(); unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers - int Marker_Donor = -1, Marker_Target = -1; + int markDonor = -1, markTarget = -1; unsigned long nVertexDonor = 0, nVertexTarget= 0; unsigned long Point_Donor = 0, Point_Target = 0; @@ -265,8 +265,8 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ // For the markers on the interface for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { - Marker_Donor = -1; - Marker_Target = -1; + markDonor = -1; + markTarget = -1; /*--- On the donor side ---*/ @@ -274,14 +274,14 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ if (config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ /*--- We have identified the identifier for the structural marker ---*/ - Marker_Donor = iMarkerDonor; - /*--- Store the number of local points that belong to Marker_Donor ---*/ + markDonor = iMarkerDonor; + /*--- Store the number of local points that belong to markDonor ---*/ nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); break; } else { /*--- If the tag hasn't matched any tag within the donor markers ---*/ - Marker_Donor = -1; + markDonor = -1; nVertexDonor = 0; } } @@ -291,15 +291,15 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ /*--- We have identified the identifier for the target marker ---*/ - Marker_Target = iMarkerTarget; - /*--- Store the number of local points that belong to Marker_Target ---*/ + markTarget = iMarkerTarget; + /*--- Store the number of local points that belong to markTarget ---*/ nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); break; } else { /*--- If the tag hasn't matched any tag within the Flow markers ---*/ nVertexTarget = 0; - Marker_Target = -1; + markTarget = -1; } } @@ -311,13 +311,13 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ nLocalVertex_Donor = 0; for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { - iPoint = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + iPoint = donor_geometry->vertex[markDonor][iVertex]->GetNode(); if (donor_geometry->node[iPoint]->GetDomain()) nLocalVertex_Donor++; } nLocalVertex_Target = 0; for (iVertex = 0; iVertex < nVertexTarget; iVertex++) { - iPoint = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + iPoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); if (target_geometry->node[iPoint]->GetDomain()) nLocalVertex_Target++; } @@ -358,7 +358,7 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- Copy coordinates and point to the auxiliar vector --*/ nLocalVertex_Donor = 0; for (iVertexDonor = 0; iVertexDonor < nVertexDonor; iVertexDonor++) { - iPointDonor = donor_geometry->vertex[Marker_Donor][iVertexDonor]->GetNode(); + iPointDonor = donor_geometry->vertex[markDonor][iVertexDonor]->GetNode(); if (donor_geometry->node[iPointDonor]->GetDomain()) { Buffer_Send_Point[nLocalVertex_Donor] = iPointDonor; Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); @@ -386,12 +386,12 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ maxdist = 0.0; for (iVertexTarget = 0; iVertexTarget < nVertexTarget; iVertexTarget++) { - Point_Target = target_geometry->vertex[Marker_Target][iVertexTarget]->GetNode(); + Point_Target = target_geometry->vertex[markTarget][iVertexTarget]->GetNode(); if (target_geometry->node[Point_Target]->GetDomain()) { - target_geometry->vertex[Marker_Target][iVertexTarget]->SetnDonorPoints(1); - target_geometry->vertex[Marker_Target][iVertexTarget]->Allocate_DonorInfo(); + target_geometry->vertex[markTarget][iVertexTarget]->SetnDonorPoints(1); + target_geometry->vertex[markTarget][iVertexTarget]->Allocate_DonorInfo(); /*--- Coordinates of the boundary point ---*/ Coord_i = target_geometry->node[Point_Target]->GetCoord(); @@ -403,7 +403,7 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ Point_Donor = Buffer_Receive_Point[iProcessor*MaxLocalVertex_Donor+jVertex]; Global_Point_Donor = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Donor+jVertex]; - /*--- Compute the distance ---*/ + /*--- Compute the dist ---*/ dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_Donor+jVertex)*nDim+iDim]; dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); @@ -419,10 +419,12 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- Store the value of the pair ---*/ maxdist = max(maxdist, mindist); - target_geometry->vertex[Marker_Target][iVertexTarget]->SetInterpDonorPoint(donorindex, pGlobalPoint); - target_geometry->vertex[Marker_Target][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); - target_geometry->vertex[Marker_Target][iVertexTarget]->SetDonorCoeff(donorindex,1.0); + target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorPoint(donorindex, pGlobalPoint); + target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); + target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(donorindex,1.0); + //unsigned long gpoint = target_geometry->vertex[markTarget][iVertexTarget]->GetNode(); + //cout <<" Nearest Neighbor for target g.i " << target_geometry->node[gpoint]->GetGlobalIndex() <<" is "<< pGlobalPoint << "; d = " << mindist<< endl; } } @@ -444,9 +446,7 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ } -CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ - - unsigned short nDim = geometry_container[donorZone][MESH_0]->GetnDim(); +CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ /*--- Initialize transfer coefficients between the zones ---*/ Set_TransferCoeff(config); @@ -460,18 +460,19 @@ CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long jPoint, iVertex, jVertex, inode, jElem, iNearestNode=0, iNearestVertex=0; long donor_elem=0, temp_donor=0; - unsigned short iDim, it; - unsigned short nDim = Geometry[targetZone][MESH_0]->GetnDim(); + unsigned short iDim, donorindex; + unsigned short nDim = target_geometry->GetnDim(); unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; unsigned short markDonor=0, markTarget=0, iFace; + unsigned long pGlobalPoint = 0; unsigned int nNodes=0; /*--- Restricted to 2-zone for now ---*/ unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; - su2double distance = 0.0, last_distance=-1.0, *Coord; + su2double dist = 0.0, mindist=1E6, *Coord, *Coord_i, *Coord_j; su2double myCoeff[10]; // Maximum # of donor points - su2double *donorCoord, *Normal; + su2double *Normal; su2double projected_point[nDim]; su2double tmp, tmp2; @@ -480,111 +481,111 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ nMarkerDonor = config[donorZone]->GetnMarker_All(); nMarkerTarget = config[targetZone]->GetnMarker_All(); /*--- For the number of markers on the interface... ---*/ - for (iMarkerInt=1; iMarkerInt < nMarkerInt; iMarkerInt++){ + for (iMarkerInt=1; iMarkerInt <= nMarkerInt; iMarkerInt++){ /*--- Procedure: * -Loop through vertices of the aero grid * -Find nearest element and allocate enough space in the aero grid donor point info * -set the transfer coefficient values - * -increment nDonor for each of the element vertices - * -Loop through vertices of the structure grid - * -Allocate enough space for the donor info - * -Loop through the aero vertices and set the donor info at the structure vertices */ /*--- ... the marker markDonor ... ---*/ for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt+1)){ + if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt)){ markDonor=iMarkerDonor; } } - /*--- ... corresponds to the marker markTarget. ---*/ + /*--- ... the marker markTarget. ---*/ for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt+1)){ + if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt)){ markTarget=iMarkerTarget; } } - //cout <<"markers: " << markDonor << " " << markTarget << endl; - - /*--- For the markers on the fluid side ---*/ - /*--- Loop over the vertices on the marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { - last_distance=-1.0; - /*--- Loop over the vertices in the corresponding interface marker (zone 1), find the closest vertex --*/ - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { - jPoint =Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetNode(); // Global index of jVertex - distance = 0.0; + /*--- Loop over the vertices on the target Marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { + Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); + + /*--- Find the Nearest Neighbor Point ---*/ + // Parallel: replace w/ loop over processors, recieve Coord_j + mindist=1E6; + for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex + Coord_j = donor_geometry->node[jPoint]->GetCoord(); + dist = 0.0; for (iDim=0; iDimvertex[markDonor][jVertex]->GetCoord(iDim)- - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetCoord(iDim),2.0); - if ((last_distance==-1.0) or (distancenode[jPoint]->GetGlobalIndex()<node[iNearestNode]->GetGlobalIndex()<node[iNearestNode]->GetnElem(); jElem++){ - /*--- Now that we know the closest vertex, the closest element must be one of the ones connected to the vertex--*/ - for (jElem=0; jElemnode[iNearestNode]->GetnElem(); jElem++){ /*--- Loop over all the faces of this element to find ones on the interface boundary - * If a face is on markDonor, then find the distance and check against previous to find closest + * If a face is on markDonor, then find the dist and check against previous to find closest * face. ---*/ if (nDim==3){ - temp_donor = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetElem(jElem); - nFaces = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetnFaces(); + temp_donor = donor_geometry->node[iNearestNode]->GetElem(jElem); + nFaces = donor_geometry->elem[temp_donor]->GetnFaces(); } else{ temp_donor = iNearestNode; - nFaces = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetnPoint(); + nFaces = donor_geometry->node[iNearestNode]->GetnPoint(); } - + /*--- Loop over faces (edges) attached to iNearestNode/vertex ---*/ for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); + nNodes = donor_geometry->elem[temp_donor]->GetnNodesFace(iFace); /*-- Check if on marker of interface---*/ for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); - jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(inode); - face_on_marker = (face_on_marker and (Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor) !=-1)); + inode = donor_geometry->elem[temp_donor]->GetFaces(iFace, ifacenode); + jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); } } else{ /*-- 2D: 'face' is an edge connected to the nearest node ---*/ nNodes = 2; // edges have two nodes for (unsigned int ifacenode=0; ifacenodenode[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(ifacenode); - face_on_marker = (face_on_marker and (Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor) !=-1)); + inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); } } /*--- face_on_marker is true iff all nodes on face iFace are in marker markDonor (or 2D) ---*/ - + //Coord = target_geometry->vertex[markTarget][iVertex]->GetCoord(); /*--- if iFace is part of markDonor, calculate the isoparametric coefficients ---*/ - if (face_on_marker){ - /*--- Find projected distance ---*/ - Coord = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetCoord(); - Normal = Geometry[donorZone][MESH_0]->vertex[markDonor][iNearestVertex]->GetNormal(); - donorCoord = Geometry[donorZone][MESH_0]->vertex[markDonor][iNearestVertex]->GetCoord(); + if (face_on_marker ){ + /*--- Find projected dist ---*/ + //Coord = target_geometry->vertex[markTarget][iVertex]->GetCoord(); + Normal = donor_geometry->vertex[markDonor][iNearestVertex]->GetNormal(); + Coord_j = donor_geometry->vertex[markDonor][iNearestVertex]->GetCoord(); /*--- Project point xj onto surface --*/ tmp = 0; tmp2=0; for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(); + for(donorindex=0; donorindex< nNodes; donorindex++){ if (nDim==3){ - jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + jPoint = donor_geometry->elem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); } else{ - inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(it); + inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(donorindex); } - donorCoord = Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(); + Coord_j = donor_geometry->node[jPoint]->GetCoord(); for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(); for (iDim=0; iDimelem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + jPoint = donor_geometry->elem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); } else{ - inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(it); + inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(donorindex); } - donorCoord = Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(); - cout <<" isoparam: " << myCoeff[it] <<" Coord: "; + Coord_j = donor_geometry->node[jPoint]->GetCoord(); + cout <<" isoparam: " << myCoeff[donorindex] <<" Coord: "; for (iDim=0; iDimnode[iNearestNode]->GetCoord(); + Coord_j = donor_geometry->node[iNearestNode]->GetCoord(); cout << endl; for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(temp_donor); // in 2D is nearest neighbor - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorFace(iFace); - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - //cout <<"updated closest face/edge" << endl; + */ + target_geometry->vertex[markTarget][iVertex]->SetDonorElem(donor_elem); // in 2D is nearest neighbor + target_geometry->vertex[markTarget][iVertex]->SetDonorFace(iFace); // in 2D is the edge + target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); } } } } + /*--- If nDonorPoints ==0, no match was found, set nearest neighbor ---*/ + //unsigned long gpoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); + //cout <<" Nearest Neighbor for target g.i " << target_geometry->node[gpoint]->GetGlobalIndex() <<" is "<< donor_geometry->node[iNearestNode]->GetGlobalIndex() << "; d = " << mindist<< endl; - if (Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetnDonorPoints()==0){ + if (target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints()==0){ nNodes=1; - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); + target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); donor_elem = -1; myCoeff[0] = 1; } /*--- Set the appropriate amount of memory ---*/ - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); /*--- Recal the closest face/edge ---*/ - iFace = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetDonorFace(); + iFace = target_geometry->vertex[markTarget][iVertex]->GetDonorFace(); /*--- Loop over vertices of the element to set the values at the vertex ---*/ - for (it=0; it< Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetnDonorPoints(); it++){ + for (donorindex=0; donorindex< target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints(); donorindex++){ if (donor_elem!=-1){ if (nDim==3){ - jPoint = Geometry[donorZone][MESH_0]->elem[temp_donor]->GetNode(Geometry[donorZone][MESH_0]->elem[temp_donor]->GetFaces(iFace,it)); + jPoint = donor_geometry->elem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); } else{ - inode = Geometry[donorZone][MESH_0]->node[iNearestNode]->GetEdge(iFace); - jPoint = Geometry[donorZone][MESH_0]->edge[inode]->GetNode(it); + inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(donorindex); } } else jPoint = iNearestNode; // If no matching element is found, revert to Nearest Neighbor - /*--- NOTE: in parallel, jPoint must be converted to global index ---*/ - - //ivtx = Geometry[donorZone][MESH_0]->node[jPoint]->GetVertex(markDonor); + /*--- jPoint must be converted to global index ---*/ + //ivtx = donor_geometry->node[jPoint]->GetVertex(markDonor); + //donor_geometry->vertex[markDonor][ivtx]->IncrementnDonor(); + pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,myCoeff[donorindex]); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); + /* From NN + target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorPoint(donorindex, pGlobalPoint); + target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); + target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(donorindex,1.0); + */ - //Geometry[donorZone][MESH_0]->vertex[markDonor][ivtx]->IncrementnDonor(); - - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetInterpDonorPoint(it,jPoint); - Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetDonorCoeff(it,myCoeff[it]); // FOR PARALELL: - //Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->SetInterpDonorProc(it,proc); - //cout <<" myCoeff " << myCoeff[it] << " "; + //target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProc(donorindex,proc); + //cout <<" myCoeff " << myCoeff[donorindex] << " "; } //cout << endl; } - /*--- Now that all the transfer coefficients have been calculated, loop through the structure vertices - * and set the same transfer coefficients at the matching points - */ -// index=3; -// for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { -// ivtx=0; -// Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->Allocate_DonorInfo(); -// /*--- Loop over all aero points ---*/ -// for (iVertex=0; iVertexGetnVertex(markTarget); iVertex++){ -// /*--- Loop over the donor vertices for iVertex (flow vertex) ---*/ -// for (inode=0; inodevertex[markTarget][iVertex]->GetnDonorPoints(); inode++){ -// /*--- If one of the donor points is the same as the FEA vertex, add information ---*/ -// if (Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]-> GetDonorInfo(inode,index) == jVertex){ -// iPoint =Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetNode(); -// nn[0] = targetZone; /* Zone of the donor point */ -// nn[1] = iPoint; /* global index of the donor point */ -// nn[2] = markTarget; /* marker of the donor point */ -// nn[3] = iVertex; /* vertex index within marker of the donor point */ -// coeff = Geometry[targetZone][MESH_0]->vertex[markTarget][iVertex]->GetDonorCoeff(inode); -// Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->SetDonorInfo(ivtx,nn); -// Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->SetDonorCoeff(ivtx,coeff); -// ivtx++; -// } -// if (ivtx>=Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetnDonorPoints()-1){ -// break; -// } -// } -// if (ivtx>=Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetnDonorPoints()-1){ -// break; -// } -// -// } -// if (ivtx>=Geometry[donorZone][MESH_0]->vertex[markDonor][jVertex]->GetnDonorPoints()-1){ -// break; -// } -// } } + } void CIsoparametric::Isoparameters(su2double* isoparams, - unsigned short nDim, unsigned int donorZone, long donor_elem, unsigned short iFace, + unsigned short nDim, long donor_elem, unsigned short iFace, unsigned int nDonorPoints, su2double* xj){ short i,j,k, iedge; short n0 = nDim+1, n, iDim; @@ -765,23 +743,24 @@ void CIsoparametric::Isoparameters(su2double* isoparams, /*--- 2D: line, no need to go through computation --*/ if (nDim==2){ - iedge = Geometry[donorZone][MESH_0]->node[donor_elem]->GetEdge(iFace); - jPoint = Geometry[donorZone][MESH_0]->edge[iedge]->GetNode(0); - jPoint2= Geometry[donorZone][MESH_0]->edge[iedge]->GetNode(1); - tmp = pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(0)- Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(0),2.0); - tmp += pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(1)- Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(1),2.0); + iedge = donor_geometry->node[donor_elem]->GetEdge(iFace); + jPoint = donor_geometry->edge[iedge]->GetNode(0); + jPoint2= donor_geometry->edge[iedge]->GetNode(1); + tmp = pow(donor_geometry->node[jPoint]->GetCoord(0)- donor_geometry->node[jPoint2]->GetCoord(0),2.0); + tmp += pow(donor_geometry->node[jPoint]->GetCoord(1)- donor_geometry->node[jPoint2]->GetCoord(1),2.0); tmp = sqrt(tmp); - tmp2 = pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(0) - xj[0],2.0); - tmp2 += pow(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(1) - xj[1],2.0); + tmp2 = pow(donor_geometry->node[jPoint]->GetCoord(0) - xj[0],2.0); + tmp2 += pow(donor_geometry->node[jPoint]->GetCoord(1) - xj[1],2.0); tmp2 = sqrt(tmp2); isoparams[1] = tmp2/tmp; - tmp2 = pow(Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(0) - xj[0],2.0); - tmp2 += pow(Geometry[donorZone][MESH_0]->node[jPoint2]->GetCoord(1) - xj[1],2.0); + tmp2 = pow(donor_geometry->node[jPoint2]->GetCoord(0) - xj[0],2.0); + tmp2 += pow(donor_geometry->node[jPoint2]->GetCoord(1) - xj[1],2.0); tmp2 = sqrt(tmp2); isoparams[0] = tmp2/tmp; + //cout << "iso " << isoparams[0] << " " << isoparams[1] << endl; } else{ @@ -800,11 +779,11 @@ void CIsoparametric::Isoparameters(su2double* isoparams, for (k=0; kelem[donor_elem]->GetNode(Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,k)); + jPoint = donor_geometry->elem[donor_elem]->GetNode(donor_geometry->elem[donor_elem]->GetFaces(iFace,k)); // Neglect donor points that are not members of the matching marker. // jth coordinate of the ith donor vertex for (j=1; jnode[jPoint]->GetCoord(j-1); + A[j*m+i] = donor_geometry->node[jPoint]->GetCoord(j-1); } i++; @@ -926,19 +905,19 @@ void CIsoparametric::Isoparameters(su2double* isoparams, if (!inside_face){ //cout <<"Reverted to nearest neighbor " << endl; /*--- Revert to nearest neighbor ---*/ - tmp=-1; tmp2=0.0; k=0; + tmp=1E6; tmp2=0.0; k=0; for (i=0; ielem[donor_elem]->GetNode(Geometry[donorZone][MESH_0]->elem[donor_elem]->GetFaces(iFace,i)); + jPoint = donor_geometry->elem[donor_elem]->GetNode(donor_geometry->elem[donor_elem]->GetFaces(iFace,i)); else{ - iedge = Geometry[donorZone][MESH_0]->node[donor_elem]->GetEdge(iFace); - jPoint = Geometry[donorZone][MESH_0]->edge[iedge]->GetNode(i); + iedge = donor_geometry->node[donor_elem]->GetEdge(iFace); + jPoint = donor_geometry->edge[iedge]->GetNode(i); } for (j=0;jnode[jPoint]->GetCoord(j)-x[j]),2.0); - if (tmp==-1 or tmp2node[jPoint]->GetCoord(j)-xj[j]),2.0); + if (tmp2elem[donor_elem]->GetFaces(iFace,i); - else - jPoint = Geometry[donorZone][MESH_0]->elem[donor_elem]->GetNode(i); - tmp+=isoparams[i]*(Geometry[donorZone][MESH_0]->node[jPoint]->GetCoord(k)); + /*--- Check 4: print the result --- + if (nDim==2) + n0=2; + for (k=0; kelem[donor_elem]->GetFaces(iFace,i); + else{ + iedge = donor_geometry->node[donor_elem]->GetEdge(iFace); + jPoint = donor_geometry->edge[iedge]->GetNode(i); } - cout << tmp << endl; - + tmp+=isoparams[i]*(donor_geometry->node[jPoint]->GetCoord(k)); } - */ + cout << tmp << endl; + + } + */ } From d04b245e9de0265c88866e1c7b2fa033d8a7bbbf Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 29 Sep 2015 16:00:07 +0100 Subject: [PATCH 106/269] Run bootstrap for local automake tools. --- Common/lib/Makefile.in | 132 +-- Makefile.in | 223 +++-- SU2_CFD/obj/Makefile.in | 161 ++-- SU2_DEF/obj/Makefile.in | 159 ++-- SU2_DOT/obj/Makefile.in | 160 ++-- SU2_FSI/obj/Makefile.in | 159 ++-- SU2_GEO/obj/Makefile.in | 159 ++-- SU2_MSH/obj/Makefile.in | 159 ++-- SU2_PY/Makefile.in | 92 +- SU2_SOL/obj/Makefile.in | 159 ++-- aclocal.m4 | 381 +++----- configure | 279 +++--- externals/Makefile.in | 187 ++-- .../share/autoconf/autoconf/autoconf.m4f | 848 +++++++++--------- .../autotools/share/autoconf/autom4te.cfg | 8 +- .../share/autoconf/autotest/autotest.m4f | 132 +-- .../autotools/share/autoconf/m4sugar/m4sh.m4f | 130 +-- .../share/autoconf/m4sugar/m4sugar.m4f | 10 +- .../share/automake-1.12/Automake/Config.pm | 2 +- externals/autotools/share/info/dir | 32 +- .../autotools/share/man/man1/aclocal-1.12.1 | 2 +- .../autotools/share/man/man1/automake-1.12.1 | 2 +- externals/metis/Makefile.in | 132 ++- externals/parmetis/Makefile.in | 132 ++- externals/tecio/Makefile.in | 132 ++- 25 files changed, 1698 insertions(+), 2274 deletions(-) diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 7b5465b2e77..d5f100acd84 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -116,7 +88,7 @@ target_triplet = @target@ @BUILD_DIRECTDIFF_TRUE@am__append_2 = libSU2_DIRECTDIFF.a @BUILD_REVERSE_TRUE@am__append_3 = libSU2_AD.a subdir = Common/lib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -371,23 +343,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -678,7 +633,6 @@ clean-noinstLIBRARIES: ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2.a $(AM_V_AR)$(libSU2_a_AR) libSU2.a $(libSU2_a_OBJECTS) $(libSU2_a_LIBADD) @@ -709,7 +663,6 @@ libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDEN ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_AD_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2_AD.a $(AM_V_AR)$(libSU2_AD_a_AR) libSU2_AD.a $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_LIBADD) @@ -740,7 +693,6 @@ libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_A ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - libSU2_DIRECTDIFF.a: $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_DEPENDENCIES) $(EXTRA_libSU2_DIRECTDIFF_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2_DIRECTDIFF.a $(AM_V_AR)$(libSU2_DIRECTDIFF_a_AR) libSU2_DIRECTDIFF.a $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_LIBADD) @@ -1355,15 +1307,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1375,11 +1338,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1388,10 +1355,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1544,8 +1510,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1554,7 +1520,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/Makefile.in b/Makefile.in index 36c7d633199..a63dfbed1bf 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -47,51 +47,23 @@ # ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -119,8 +91,8 @@ target_triplet = @target@ @BUILD_SOL_TRUE@am__append_6 = SU2_SOL/obj @BUILD_GEO_TRUE@am__append_7 = SU2_GEO/obj subdir = . -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) COPYING INSTALL \ +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -148,14 +120,13 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -163,29 +134,9 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ cscope distdir dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope @@ -416,13 +367,14 @@ $(am__aclocal_m4_deps): # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ +$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ @@ -443,13 +395,31 @@ $(am__recursive_targets): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done +cscopelist-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ + done -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -465,7 +435,12 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -477,11 +452,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -490,16 +469,18 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" + cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) + clean-cscope: -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscope.files: clean-cscope cscopelist-recursive cscopelist + +cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -597,16 +578,10 @@ dist-xz: distdir $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -648,10 +623,9 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -808,22 +782,25 @@ ps-am: uninstall-am: -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope clean-generic \ - cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ + cscopelist-recursive ctags-recursive install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-cscope \ + clean-generic cscope cscopelist cscopelist-recursive ctags \ + ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzip \ + dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index a08a3a3dc70..3d6e37d5e2c 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -117,7 +89,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) @BUILD_DIRECTDIFF_TRUE@am__append_2 = ../bin/SU2_CFD_DIRECTDIFF @BUILD_REVERSE_TRUE@am__append_3 = ../bin/SU2_CFD_AD subdir = SU2_CFD/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -705,23 +677,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -1041,11 +996,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -1066,8 +1020,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -1239,7 +1192,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_CFD$(EXEEXT): $(___bin_SU2_CFD_OBJECTS) $(___bin_SU2_CFD_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_LINK) $(___bin_SU2_CFD_OBJECTS) $(___bin_SU2_CFD_LDADD) $(LIBS) @@ -1399,7 +1351,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - ../bin/SU2_CFD_AD$(EXEEXT): $(___bin_SU2_CFD_AD_OBJECTS) $(___bin_SU2_CFD_AD_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_AD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD_AD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_AD_LINK) $(___bin_SU2_CFD_AD_OBJECTS) $(___bin_SU2_CFD_AD_LDADD) $(LIBS) @@ -1559,7 +1510,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - ../bin/SU2_CFD_DIRECTDIFF$(EXEEXT): $(___bin_SU2_CFD_DIRECTDIFF_OBJECTS) $(___bin_SU2_CFD_DIRECTDIFF_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_DIRECTDIFF_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD_DIRECTDIFF$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_DIRECTDIFF_LINK) $(___bin_SU2_CFD_DIRECTDIFF_OBJECTS) $(___bin_SU2_CFD_DIRECTDIFF_LDADD) $(LIBS) @@ -5098,15 +5048,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.obj `if test -f '../src/variable_template.cpp'; then $(CYGPATH_W) '../src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_template.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -5118,11 +5079,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -5131,10 +5096,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -5291,19 +5255,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index cb719710b6d..c17a01752b2 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_DEF$(EXEEXT) subdir = SU2_DEF/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -194,23 +166,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -428,11 +383,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -453,8 +407,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -472,7 +425,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_DEF$(EXEEXT): $(___bin_SU2_DEF_OBJECTS) $(___bin_SU2_DEF_DEPENDENCIES) $(EXTRA____bin_SU2_DEF_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DEF$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DEF_LINK) $(___bin_SU2_DEF_OBJECTS) $(___bin_SU2_DEF_LDADD) $(LIBS) @@ -516,15 +468,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DEF-SU2_DEF.obj `if test -f '../src/SU2_DEF.cpp'; then $(CYGPATH_W) '../src/SU2_DEF.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DEF.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -536,11 +499,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -549,10 +516,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -709,19 +675,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index 26c6d90f5ae..abddd32655c 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -116,7 +88,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @BUILD_NORMAL_TRUE@am__append_1 = ../bin/SU2_DOT @BUILD_REVERSE_TRUE@am__append_2 = ../bin/SU2_DOT_AD subdir = SU2_DOT/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -207,23 +179,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -438,11 +393,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -463,8 +417,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -482,13 +435,11 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_DOT$(EXEEXT): $(___bin_SU2_DOT_OBJECTS) $(___bin_SU2_DOT_DEPENDENCIES) $(EXTRA____bin_SU2_DOT_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DOT$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DOT_LINK) $(___bin_SU2_DOT_OBJECTS) $(___bin_SU2_DOT_LDADD) $(LIBS) ../src/___bin_SU2_DOT_AD-SU2_DOT.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) - ../bin/SU2_DOT_AD$(EXEEXT): $(___bin_SU2_DOT_AD_OBJECTS) $(___bin_SU2_DOT_AD_DEPENDENCIES) $(EXTRA____bin_SU2_DOT_AD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DOT_AD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DOT_AD_LINK) $(___bin_SU2_DOT_AD_OBJECTS) $(___bin_SU2_DOT_AD_LDADD) $(LIBS) @@ -547,15 +498,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DOT_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DOT_AD-SU2_DOT.obj `if test -f '../src/SU2_DOT.cpp'; then $(CYGPATH_W) '../src/SU2_DOT.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DOT.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -567,11 +529,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -580,10 +546,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -740,19 +705,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 9c403099fe4..2e77307d36a 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) subdir = SU2_FSI/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -272,23 +244,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -580,11 +535,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -605,8 +559,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -635,7 +588,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_FSI$(EXEEXT): $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_DEPENDENCIES) $(EXTRA____bin_SU2_FSI_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_FSI$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_FSI_LINK) $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_LDADD) $(LIBS) @@ -710,15 +662,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -730,11 +693,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -743,10 +710,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -905,19 +871,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 066b8a265d8..1858da137c8 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_GEO$(EXEEXT) subdir = SU2_GEO/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -186,23 +158,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -412,11 +367,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -437,8 +391,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -456,7 +409,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_GEO$(EXEEXT): $(___bin_SU2_GEO_OBJECTS) $(___bin_SU2_GEO_DEPENDENCIES) $(EXTRA____bin_SU2_GEO_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_GEO$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_GEO_LINK) $(___bin_SU2_GEO_OBJECTS) $(___bin_SU2_GEO_LDADD) $(LIBS) @@ -500,15 +452,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_GEO_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_GEO-SU2_GEO.obj `if test -f '../src/SU2_GEO.cpp'; then $(CYGPATH_W) '../src/SU2_GEO.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_GEO.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -520,11 +483,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -533,10 +500,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -693,19 +659,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index 52353d81fce..28d9977f28b 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_MSH$(EXEEXT) subdir = SU2_MSH/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -186,23 +158,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -412,11 +367,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -437,8 +391,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -456,7 +409,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_MSH$(EXEEXT): $(___bin_SU2_MSH_OBJECTS) $(___bin_SU2_MSH_DEPENDENCIES) $(EXTRA____bin_SU2_MSH_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_MSH$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_MSH_LINK) $(___bin_SU2_MSH_OBJECTS) $(___bin_SU2_MSH_LDADD) $(LIBS) @@ -500,15 +452,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_MSH_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_MSH-SU2_MSH.obj `if test -f '../src/SU2_MSH.cpp'; then $(CYGPATH_W) '../src/SU2_MSH.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_MSH.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -520,11 +483,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -533,10 +500,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -693,19 +659,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index 1ffbeb34c2e..c01c6f7b7d3 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -49,51 +49,23 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,8 +86,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = SU2_PY -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(nobase_dist_mypkg_DATA) +DIST_COMMON = $(nobase_dist_mypkg_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -175,7 +147,6 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(nobase_dist_mypkg_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -460,9 +431,11 @@ uninstall-nobase_dist_mypkgDATA: @list='$(nobase_dist_mypkg_DATA)'; test -n "$(mypkgdir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(mypkgdir)'; $(am__uninstall_files_from_dir) -tags TAGS: +tags: TAGS +TAGS: -ctags CTAGS: +ctags: CTAGS +CTAGS: cscope cscopelist: @@ -602,17 +575,16 @@ uninstall-am: uninstall-binSCRIPTS uninstall-nobase_dist_mypkgDATA .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-binSCRIPTS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man \ - install-nobase_dist_mypkgDATA install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-binSCRIPTS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-nobase_dist_mypkgDATA \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-nobase_dist_mypkgDATA diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 6d284fcb90a..354efd7300b 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_SOL$(EXEEXT) subdir = SU2_SOL/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -194,23 +166,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -431,11 +386,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -456,8 +410,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -505,7 +458,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_SOL$(EXEEXT): $(___bin_SU2_SOL_OBJECTS) $(___bin_SU2_SOL_DEPENDENCIES) $(EXTRA____bin_SU2_SOL_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_SOL$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_SOL_LINK) $(___bin_SU2_SOL_OBJECTS) $(___bin_SU2_SOL_LDADD) $(LIBS) @@ -670,15 +622,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -690,11 +653,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -703,10 +670,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -865,19 +831,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/aclocal.m4 b/aclocal.m4 index 948679b42a5..af0b34cc478 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.12.5 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11,7 +11,6 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, @@ -20,7 +19,7 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +31,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.12' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.12.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +50,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.12.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -111,7 +110,7 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -142,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -333,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -344,7 +343,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Older Autoconf quotes --file arguments for eval, but not when files + # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -373,7 +372,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue + test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the @@ -409,7 +408,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -418,12 +417,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -436,7 +429,7 @@ m4_defn([AC_PROG_CC]) # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl +[AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -466,7 +459,8 @@ AC_SUBST([CYGPATH_W]) dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) +[$0: two- and three-arguments forms are deprecated. For more info, see: +http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], @@ -520,60 +514,22 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], +dnl Support for Objective C++ was only introduced in Autoconf 2.65, +dnl but we still cater to Autoconf 2.62. +m4_ifdef([AC_PROG_OBJCXX], +[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl ]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi]) +]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further @@ -581,6 +537,7 @@ dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. @@ -602,7 +559,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -623,7 +580,7 @@ if test x"${install_sh}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -644,7 +601,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -692,9 +649,41 @@ AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) +# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -709,8 +698,8 @@ AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -723,8 +712,8 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) @@ -733,7 +722,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -762,73 +751,9 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -909,7 +834,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -969,7 +894,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -997,7 +922,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1016,7 +941,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1035,114 +960,76 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar -# AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of '-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done + # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR diff --git a/configure b/configure index 2c3beedc695..5a884ea3900 100755 --- a/configure +++ b/configure @@ -2572,7 +2572,7 @@ test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- -am__api_version='1.14' +am__api_version='1.12' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2756,8 +2756,8 @@ if test x"${MISSING+set}" != xset; then esac fi # Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 @@ -2997,45 +2997,6 @@ else fi rmdir .tst 2>/dev/null -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -3098,58 +3059,12 @@ mkdir_p='$(MKDIR_P)' # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; @@ -4300,65 +4215,6 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -4489,6 +4345,131 @@ fi # -------------------------------------------------------------- +if test "x$CC" != xcc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 +$as_echo_n "checking whether cc understands -c and -o together... " >&6; } +fi +set dummy $CC; ac_cc=`$as_echo "$2" | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. @@ -8394,7 +8375,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files + # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -8445,7 +8426,7 @@ $as_echo X"$mf" | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue + test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the diff --git a/externals/Makefile.in b/externals/Makefile.in index 01253cbc7c6..0a4bae5294a 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -47,51 +47,23 @@ # ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -115,7 +87,7 @@ target_triplet = @target@ @BUILD_METIS_TRUE@am__append_2 = metis @BUILD_METIS_TRUE@@BUILD_PARMETIS_TRUE@am__append_3 = parmetis subdir = externals -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -140,14 +112,13 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -155,29 +126,9 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = tecio metis parmetis @@ -382,13 +333,14 @@ $(am__aclocal_m4_deps): # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ +$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ @@ -409,13 +361,31 @@ $(am__recursive_targets): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done +cscopelist-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ + done -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -431,7 +401,12 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -443,11 +418,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -456,10 +435,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -631,19 +609,22 @@ ps-am: uninstall-am: -.MAKE: $(am__recursive_targets) install-am install-strip +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ + cscopelist-recursive ctags-recursive install-am install-strip \ + tags-recursive -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic cscopelist \ + cscopelist-recursive ctags ctags-recursive distclean \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/externals/autotools/share/autoconf/autoconf/autoconf.m4f b/externals/autotools/share/autoconf/autoconf/autoconf.m4f index 429b6d7726b..08fd2b488e0 100644 --- a/externals/autotools/share/autoconf/autoconf/autoconf.m4f +++ b/externals/autotools/share/autoconf/autoconf/autoconf.m4f @@ -1,11 +1,11 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] T28,27 -m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:803 +m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:779 T27,30 -m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:158 +m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:156 T22,133 _AS_LITERAL_HEREDOC_IFm4_if(m4_index([$1], [@S|@]), [-1], [m4_if(m4_index(m4_translit([[$1]], [\`], [$]), [$]), [-1], @@ -17,7 +17,7 @@ T27,54 AC_PATH_PROGS_FEATURE_CHECK_$0([$1], [$2], [$3], m4_default([$4], [:]), [$5])dnl T37,32 -m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:236 +m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:217 T16,400 _AS_EXIT_PREPARE_m4_defun_pro([$0])AS_REQUIRE_SHELL_FN([as_fn_set_status], [AS_FUNCTION_DESCRIBE([as_fn_set_status], [STATUS], @@ -165,17 +165,17 @@ AC_AIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_AIX' is obsolete You should run autoupdate.])dnl AC_USE_SYSTEM_EXTENSIONS[]_m4_defun_epi([$0]) T31,31 -m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:81 +m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:73 T17,0 AS_MESSAGE_LOG_FD T28,68 AC_LANG_PREPROC(Objective C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCPP])[]_m4_defun_epi([$0]) T24,33 -m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:351 +m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:323 T23,34 -m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2530 +m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2529 T34,33 -m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:742 +m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:737 T22,1406 AC_SYS_LONG_FILE_NAMES_m4_defun_pro([$0])AC_CACHE_CHECK(for long file names, ac_cv_sys_long_file_names, [ac_cv_sys_long_file_names=yes @@ -210,9 +210,9 @@ if test $ac_cv_sys_long_file_names = yes; then fi []_m4_defun_epi([$0]) T27,36 -m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1939 +m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1845 T34,30 -m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:282 +m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:280 T29,212 _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -224,7 +224,7 @@ _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) T18,65 AC_LANG_PREPROC(C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2405 +m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2403 T14,159 ac_cv_prog_gxx_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_gxx' is obsolete. You should run autoupdate.])dnl @@ -292,9 +292,9 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then fi T26,33 -m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:603 +m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:581 T31,31 -m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:91 +m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:86 T17,1105 AC_FUNC_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_GETGROUPS])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl @@ -330,15 +330,15 @@ LIBS=$ac_save_LIBS T18,23 AC_DEFINE_UNQUOTED_AC_DEFINE_Q([_$0], $@) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 T24,33 m4_location(AC_TIMEZONE)../../lib/autoconf/oldnames.m4:80 T25,30 -m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:478 +m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:365 T28,32 -m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:72 +m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:67 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -399,9 +399,9 @@ AC_LANG_CONFTEST(C++)cat confdefs.h - <<_ACEOF >conftest.$ac_ext $1 _ACEOF T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 T23,34 -m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1126 +m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1121 F5,5 ifdefifdef T20,113 @@ -410,11 +410,11 @@ _AC_ENABLE_IF_ACTIONm4_append_uniq([_AC_USER_OPTS], [$1_$2], [ AS_IF([test "${$1_$2+set}" = set], [$1val=$$1_$2; $3], [$4])dnl T28,33 -m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:545 +m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:510 T28,30 -m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:142 +m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:141 T28,31 -m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:791 +m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:773 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -448,7 +448,7 @@ esac F6,6 syscmdsyscmd T30,33 -m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:131 +m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:123 T28,33 m4_location(AC_HAVE_HEADERS)../../lib/autoconf/oldnames.m4:35 T18,50 @@ -460,7 +460,7 @@ m4_patsubstm4_expand_once([m4_warn([syntax], [do not use m4_patsubst: use patsubst or m4_bpatsubst])])dnl patsubst($@) T34,34 -m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2965 +m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2949 T18,94 _m4_set_contents_2_m4_stack_reverse([_m4_set_($1)], [_m4_set([$1])], [$2[]_m4_defn([_m4_set_($1)])$3], [$4[]]) @@ -472,7 +472,7 @@ ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && echo " T27,31 m4_location(AC_TYPE_SIZE_T)../../lib/autoconf/types.m4:602 T27,33 -m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:591 +m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:564 T8,81 m4_chompm4_format([[%.*s]], m4_index(m4_translit([[$1]], [ /.], [/ ])[./.], [/.]), [$1]) @@ -516,11 +516,11 @@ m4_ifset([AC_PACKAGE_BUGREPORT], T9,0 AN_OUTPUT T27,35 -m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:412 +m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:362 T30,34 -m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1536 +m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1486 T29,33 -m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:255 +m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:249 T23,103 AC_LANG_PREPROC(Erlang)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) @@ -661,9 +661,9 @@ AC_TYPE_INT32_T_m4_defun_pro([$0])_AC_TYPE_INT(32)[]_m4_defun_epi([$0]) T18,2 AC_LANG_SOURCE(Go)$1 T33,33 -m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1737 +m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1599 T24,30 -m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:115 +m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:107 T11,165 _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], @@ -785,7 +785,7 @@ char *realloc (); AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2]) []_m4_defun_epi([$0]) T27,33 -m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:480 +m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:475 T29,33 m4_location(AC_PROGRAM_CHECK)../../lib/autoconf/oldnames.m4:41 T16,2 @@ -835,7 +835,7 @@ T15,267 _AC_CONFIG_FOOSm4_map_args_w([$2], [_AC_CONFIG_REGISTER([$1],], [, [$3])])m4_define([_AC_SEEN_CONFIG(ANY)])m4_define([_AC_SEEN_CONFIG($1)])_AC_CONFIG_COMMANDS_INIT([$4])ac_config_[]m4_tolower([$1])="$ac_config_[]m4_tolower([$1]) m4_if([$1], [COMMANDS], [$2], [m4_normalize([$2])])" T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 T14,441 AC_C_VARARRAYS_m4_defun_pro([$0]) AC_CACHE_CHECK([for variable-length arrays], @@ -858,7 +858,7 @@ T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) T31,36 -m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1660 +m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1625 F7,4 m4_incrincr F8,4 @@ -867,7 +867,7 @@ T33,36 AC_LANG_FUNC_LINK_TRY(Fortran 77)AC_LANG_PROGRAM([], [ call $1]) T28,34 -m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3081 +m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3074 T13,124 _m4_defun_prom4_ifdef([_m4_expansion_stack], [], [_m4_defun_pro_outer([$1])])m4_expansion_stack_push([$1])m4_pushdef([_m4_expanding($1)]) T15,114 @@ -881,7 +881,7 @@ T27,103 AC_LANG_PREPROC(Fortran 77)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -893,7 +893,7 @@ _AS_ECHO_LOG_m4_defun_pro([$0])AS_REQUIRE([_AS_LINENO_PREPARE])[]_m4_popdef([$0] T14,110 AC_DIVERT_PUSHm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], [$1])_m4_divert_raw(_m4_divert([$1], [$2])) T29,33 -m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:500 +m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:485 T17,604 _AS_SHELL_FN_WORKas_fn_return () { (exit [$]1); } as_fn_success () { as_fn_return 0; } @@ -943,13 +943,13 @@ AC_C_FLEXIBLE_ARRAY_MEMBER_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,33 -m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:996 +m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:924 T27,31 m4_location(AC_TYPE_MODE_T)../../lib/autoconf/types.m4:614 T20,34 -m4_location(AC_INIT)../../lib/autoconf/general.m4:1363 +m4_location(AC_INIT)../../lib/autoconf/general.m4:1358 T27,28 -m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1895 +m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1882 T21,97 m4_copyright_condensem4_text_wrap(m4_bpatsubst(m4_flatten([[$1]]), [(C)[- ,0-9]*\([1-9][0-9][0-9][0-9]\)], [(C) \1])) @@ -995,7 +995,7 @@ _AC_LANG_IO_PROGRAM(C++)AC_LANG_PROGRAM([@%:@include ], return ferror (f) || fclose (f) != 0; ]) T31,32 -m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:92 +m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:79 T17,203 m4_cr_not_Letters  !"#*%&'()$+,./0123456789:;<=>?@[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -1063,7 +1063,7 @@ ATEOF ERLCFLAGS="$ERLCFLAGS" ])])[]_m4_defun_epi([$0]) T30,34 -m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2520 +m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2518 T18,3219 AC_FUNC_GETLOADAVG_m4_defun_pro([$0])ac_have_func=no # yes means we've found a way to get the load average. @@ -1166,9 +1166,9 @@ AC_SUBST([$1])dnl _AC_ARG_VAR_PRECIOUS([$1])dnl []_m4_defun_epi([$0]) T30,31 -m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:305 +m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:304 T27,33 -m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:777 +m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:761 T21,1 _m4_divert(M4SH-INIT)6 T18,1 @@ -1241,9 +1241,9 @@ AS_IF([test "$cross_compiling" = yes], T12,66 m4_re_string[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T31,34 -m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2325 +m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2315 T24,33 -m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:834 +m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:833 T31,86 _AC_LANG_IO_PROGRAM(Fortran 77)AC_LANG_PROGRAM([], [dnl @@ -1305,7 +1305,7 @@ AC_TYPE_LONG_DOUBLE_WIDER_m4_defun_pro([$0]) T32,36 m4_location(AC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1719 T25,34 -m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:214 +m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:198 T23,47 _AC_CONFIG_COMPUTE_DESTm4_format([[%.*s]], m4_index([$1:], [:]), [$1]) T18,676 @@ -1360,9 +1360,9 @@ ac_link='$GOC -o conftest$ac_exeext $GOFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&A ac_compiler_gnu=yes T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 T26,34 -m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2757 +m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2748 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 @@ -1376,7 +1376,7 @@ __AC_FC_NAME_MANGLING AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 T34,35 m4_location(AM_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:501 T15,165 @@ -1514,7 +1514,7 @@ m4_PACKAGE_YEAR2012 T44,34 m4_location(AC_VALIDATE_CACHED_SYSTEM_TUPLE)../../lib/autoconf/general.m4:1865 T30,33 -m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:473 +m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:463 T10,211 m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_ifdef([$1], [m4_errprintn( @@ -1583,7 +1583,7 @@ AC_SUBST([FC_DEFINE])dnl AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 F6,3 m4_lenlen T14,42 @@ -1627,7 +1627,7 @@ _AC_FC_LIBRARY_LDFLAGS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 T12,4697 AC_PATH_XTRA_m4_defun_pro([$0])AC_REQUIRE([AC_PATH_X])dnl if test "$no_x" = yes; then @@ -1743,9 +1743,9 @@ AC_SUBST(X_LIBS)dnl AC_SUBST(X_EXTRA_LIBS)dnl []_m4_defun_epi([$0]) T24,34 -m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1106 +m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1094 T30,34 -m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1671 +m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1670 F12,9 m4_debugmodedebugmode T10,280 @@ -1757,7 +1757,7 @@ m4_set_addm4_ifdef([_m4_set([$1],$2)], [1])m4_pushdef([_m4_set([$1])], [$2])_m4_set_size([$1], [m4_incr])$3]) T28,31 -m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:849 +m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:841 T14,549 _AC_RUN_IFELSE_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_try_run], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_try_run], [LINENO], @@ -1777,7 +1777,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu T24,34 -m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2453 +m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2452 T14,122 m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], [m4_warn([syntax], @@ -1843,13 +1843,13 @@ fi T19,92 AC_CHECK_DECLS_ONCE_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_DECL_ONCE(], [)], [], $1)[]_m4_defun_epi([$0]) T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 T25,34 -m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:902 +m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:894 T27,1 _AC_LANG_PREFIX(Fortran 77)F T23,28 -m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:177 +m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:150 T32,0 m4_include(autoconf/programs.m4) T10,412 @@ -1865,7 +1865,7 @@ test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ]) T37,33 -m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:173 +m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:162 T33,34 m4_location(AC_CHECK_TOOL_PREFIX)../../lib/autoconf/programs.m4:183 T17,92 @@ -1874,7 +1874,7 @@ _AC_COMPILE_IFELSE($@)[]_m4_defun_epi([$0]) T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T27,34 -m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1654 +m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1636 T18,268 _AC_INIT_COPYRIGHTAC_COPYRIGHT(m4_defn([_AC_COPYRIGHT_YEARS]), [VERSION_FSF], [ m4_copyright_condense])dnl @@ -1911,9 +1911,9 @@ dnl # for best performing tool in a list breaks down. rm -f conftest.in conftest.tmp conftest.nl conftest.out])dnl T24,34 -m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:350 +m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:349 T31,34 -m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1616 +m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1564 T19,700 AC_TYPE_LONG_DOUBLE_m4_defun_pro([$0]) AC_CACHE_CHECK([for long double], [ac_cv_type_long_double], @@ -2063,7 +2063,7 @@ m4_ifdef([_m4_diverting([AC_PROG_INSTALL])], [-]), [-], [[m4_unquote(], [)]], T17,70 AC_CONFIG_HEADERS_m4_defun_pro([$0])_AC_CONFIG_FOOS([HEADERS], $@)[]_m4_defun_epi([$0]) T32,35 -m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:108 +m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:107 T8,66 m4_ifsetm4_ifdef([$1], [m4_ifval(_m4_defn([$1]), [$2], [$3])], @@ -2088,7 +2088,7 @@ T17,41 AC_PROVIDE_IFELSEm4_ifdef([m4_provide($1)], [$2], [$3]) T27,28 -m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1608 +m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1444 T12,30 m4_esyscmd_sm4_chomp_all(m4_esyscmd([$1])) T6,264 @@ -2116,7 +2116,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 T32,0 m4_include(autoconf/autoscan.m4) T20,201 @@ -2137,7 +2137,7 @@ AC_TEST_PROGRAM_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_PR You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_RUN], [AC_TRY_RUN($@)])[]_m4_defun_epi([$0]) T33,34 -m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2908 +m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2907 T17,272 _AS_IDENTIFIER_IFm4_cond([[$1]], [], [], [m4_eval(m4_len(m4_translit([[$1]], ][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]][)) > 0)], [1], [], @@ -2256,9 +2256,9 @@ AC_PROGRAMS_PATH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGRA You should run autoupdate.])dnl m4_if($#, 0, [AC_PATH_PROGS], [AC_PATH_PROGS($@)])[]_m4_defun_epi([$0]) T25,29 -m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:82 +m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:81 T27,34 -m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:852 +m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:851 T13,84 _AS_QUOTE_OLDm4_warn([obsolete], [back quotes and double quotes must not be escaped in: $1])$1 @@ -2302,18 +2302,18 @@ T9,72 m4_mapallm4_if([$2], [], [], [_m4_foreach([m4_apply([$1],], [)], [], $2)]) T37,33 -m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:247 +m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:245 F14,6 _m4_divert_rawdivert T13,71 AC_LIBSOURCES_m4_defun_pro([$0])m4_map_args([AC_LIBSOURCE], $1)[]_m4_defun_epi([$0]) T37,32 -m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:320 +m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:301 T12,94 AH_CHECK_LIBAH_TEMPLATE(AS_TR_CPP([HAVE_LIB$1]), [Define to 1 if you have the `$1' library (-l$1).]) T40,33 -m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:240 +m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:238 T6,122 m4_cdrm4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], @@ -2491,9 +2491,9 @@ ac_ext=$ac_save_ext _AC_PROG_FC_G []_m4_defun_epi([$0]) T29,33 -m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:452 +m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:437 T30,33 -m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:79 +m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:76 T23,60 AC_LANG_PROGRAM(Erlang)[-module(conftest). -export([start/0]).] @@ -2565,7 +2565,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 T22,2800 _AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_CANONICAL_HOST])dnl _AC_FORTRAN_ASSERT()dnl @@ -2656,7 +2656,7 @@ fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" AC_SUBST([]_AC_LANG_PREFIX[]LIBS) []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2511 +m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2503 F5,5 indirindir T19,572 @@ -2738,11 +2738,11 @@ AC_HAVE_FUNCS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_FUNC You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_FUNCS], [AC_CHECK_FUNCS($@)])[]_m4_defun_epi([$0]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 T28,33 m4_location(AM_PROG_INSTALL)../../lib/autoconf/oldnames.m4:92 T30,30 -m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:437 +m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:406 T24,23 _AC_LANG_NULL_PROGRAM(C)AC_LANG_PROGRAM([], []) T19,295 @@ -2757,15 +2757,15 @@ AC_CHECK_DECLS([sys_siglist],,, ]) []_m4_defun_epi([$0]) T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 T31,35 -m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:577 +m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:573 T29,30 -m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:298 +m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:297 T28,28 -m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1391 +m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1378 T26,28 -m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1776 +m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1739 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -2791,7 +2791,7 @@ AC_PROGRAMS_CHECK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGR You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_PROGS], [AC_CHECK_PROGS($@)])[]_m4_defun_epi([$0]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -2803,9 +2803,9 @@ m4_if($#, 0, [AC_FUNC_STRCOLL], [AC_FUNC_STRCOLL($@)])[]_m4_defun_epi([$0]) F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 T34,33 -m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:274 +m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:273 T18,8 m4_PACKAGE_TARNAMEautoconf T14,87 @@ -2897,9 +2897,9 @@ AC_FUNC_STRTOLD_m4_defun_pro([$0]) T21,90 AC_CHECK_HEADERS_ONCE_m4_defun_pro([$0])m4_map_args_w([$1], [_AC_CHECK_HEADER_ONCE(], [)])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 T26,34 -m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:365 +m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:355 T18,3540 _AC_OUTPUT_SUBDIRS # @@ -3033,7 +3033,7 @@ AC_DEFINE_UNQUOTED(AS_TR_CPP(sizeof_$1), $AS_TR_SH([ac_cv_sizeof_$1]), [The size of `$1', as computed by sizeof.]) []_m4_defun_epi([$0]) T30,34 -m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1800 +m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1752 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -3043,9 +3043,9 @@ AC_REQUIRE_AUX_FILEAS_LITERAL_WORD_IF([$1], [], T17,31 m4_default_quotedm4_if([$1], [], [[$2]], [[$1]]) T27,34 -m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2739 +m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2729 T29,27 -m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:330 +m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:328 T11,88 AH_VERBATIMAS_LITERAL_WORD_IF([$1], [AH_OUTPUT(_m4_expand([$1]), AS_ESCAPE([[$2]], [\']))]) @@ -3104,7 +3104,7 @@ AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0 T12,21 AC_LANG_CASEm4_case(_AC_LANG, $@) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 T26,33 m4_location(AC_ST_BLKSIZE)../../lib/autoconf/oldnames.m4:76 T15,470 @@ -3120,7 +3120,7 @@ AC_LANG_CONFTEST(Fortran 77)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,35 -m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:541 +m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:508 T21,33 m4_location(AC_UID_T)../../lib/autoconf/oldnames.m4:82 T31,33 @@ -3134,11 +3134,11 @@ AC_MSG_CHECKING{ _AS_ECHO_LOG([checking $1]) _AS_ECHO_N([checking $1... ]); }dnl T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 T31,36 -m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1774 +m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1749 T27,35 -m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:921 +m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:912 T14,97 AC_CHECK_FILES_m4_defun_pro([$0])m4_map_args_w([$1], [AC_CHECK_FILE(_$0(], [)[$2], [$3])])[]_m4_defun_epi([$0]) T17,733 @@ -3159,7 +3159,7 @@ _AC_CANONICAL_SPLIT([host]) m4_ifdef([_m4_diverting([AC_CANONICAL_HOST])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_HOST],], [, _m4_divert_dump)]])) T24,34 -m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2688 +m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2687 T17,109 _AC_LANG_DISPATCHm4_ifdef([$1($2)], [m4_indir([$1($2)], m4_shift2($@))], @@ -3167,7 +3167,7 @@ _AC_LANG_DISPATCHm4_ifdef([$1($2)], F9,6 m4_syscmdsyscmd T20,29 -m4_location(AC_LANG)../../lib/autoconf/lang.m4:91 +m4_location(AC_LANG)../../lib/autoconf/lang.m4:88 T16,116 _AC_ARG_VAR_LIBS_m4_defun_pro([$0])AC_ARG_VAR([LIBS], [libraries to pass to the linker, e.g. -l])[]_m4_defun_epi([$0]) @@ -3186,7 +3186,7 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T30,33 -m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:77 +m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:42 T32,0 m4_include(autoconf/autotest.m4) T16,84 @@ -3601,7 +3601,7 @@ fi T9,22 m4_shift2m4_shift(m4_shift($@)) T23,28 -m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1721 +m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1661 T18,80 m4_expansion_stackm4_stack_foreach_sep_lifo([_$0], [_$0_entry(], [) ])m4_location[: the top level] @@ -3642,10 +3642,10 @@ m4_version_prereqm4_if(m4_version_compare([2.69], [$1]), [m4_fatal([Autoconf version $1 or higher is required], [63])])], [$2]) -T25,30 -m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:100 +T25,29 +m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:97 T25,36 -m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1349 +m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1201 T10,43 _AC_DEFINEAS_ECHO(["AS_ESCAPE([[$1]])"]) >>confdefs.h T24,33 @@ -3655,9 +3655,9 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 T30,34 -m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2608 +m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2606 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -3687,7 +3687,7 @@ AC_LANG_POP(Fortran 77)dnl T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 T13,110 _AC_ENABLE_IF@%:@ Check whether --$1-$2 was given. _AC_ENABLE_IF_ACTION([$1], m4_translit([$2], [-+.], [___]), [$3], [$4]) @@ -3724,7 +3724,7 @@ else fi []_m4_defun_epi([$0]) T29,32 -m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:720 +m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:719 T15,97 _AC_CHECK_FILES[$1], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1]), [1], [Define to 1 if you have the file `$1'.])] @@ -3757,9 +3757,9 @@ AC_CACHE_CHECK([for Erlang/OTP root directory], AC_SUBST([ERLANG_ROOT_DIR], [$ac_cv_erlang_root_dir]) []_m4_defun_epi([$0]) T32,31 -m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:409 +m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:389 T28,28 -m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1840 +m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1828 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -3797,11 +3797,11 @@ fi rm -f conftest.data []_m4_defun_epi([$0]) T28,34 -m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1066 +m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1030 T19,34 -m4_location(AC_RSH)../../lib/autoconf/programs.m4:860 +m4_location(AC_RSH)../../lib/autoconf/programs.m4:858 T29,31 -m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:803 +m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:800 T13,333 m4_divert_popm4_if([$1], [], [], [$1], _m4_defn([_m4_divert_diversion]), [], @@ -3832,7 +3832,7 @@ AC_ARG_VAR(YFLAGS, will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications.])[]_m4_defun_epi([$0]) T32,33 -m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:182 +m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:181 T9,190 AC_PREFIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PREFIX' is obsolete. You should run autoupdate.])dnl @@ -3868,7 +3868,7 @@ AC_CHECK_HEADERS(string.h)[]_m4_defun_epi([$0]) T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T42,27 -m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:378 +m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:345 T12,115 AC_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text(m4_default_quoted([$2], [VERSION_USER]), [m4_default([$3], [m4_newline])([$1])]) @@ -3883,13 +3883,13 @@ _AC_FC_FUNC([$1],[$2]) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:393 +m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:388 T27,35 -m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:981 +m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:950 T31,0 m4_include(autoconf/headers.m4) T27,34 -m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3068 +m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3056 T9,86 AH_BOTTOMm4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl AH_VERBATIM([zzzz]_AH_COUNTER, [$1]) @@ -3898,7 +3898,7 @@ m4_location(AC_TYPE_INT16_T)../../lib/autoconf/types.m4:625 T25,33 m4_location(AC_FIND_XTRA)../../lib/autoconf/oldnames.m4:58 T26,34 -m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2791 +m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2777 T34,292 _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTLAC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ], ac_cv_sys_tiocgwinsz_in_sys_ioctl_h, @@ -3941,11 +3941,11 @@ AC_LANG_POP(C++)dnl T17,2 AC_LANG_SOURCE(C)$1 T33,33 -m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:223 +m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:220 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 T27,34 -m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2809 +m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2808 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -4148,7 +4148,7 @@ m4_translittranslit T28,35 m4_location(fp_FUNC_FNMATCH)../../lib/autoconf/functions.m4:594 T27,34 -m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1395 +m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1363 T29,220 _AC_CHECK_HEADER_COMPILE_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -4171,7 +4171,7 @@ m4_divert_pushm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], T21,95 _AC_LANG_NULL_PROGRAM_m4_defun_pro([$0])AC_LANG_SOURCE([_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:299 +m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:259 T8,87 m4_fatalm4_errprintn(m4_location[: error: $1] m4_expansion_stack)m4_exit(m4_if([$2],, 1, [$2])) @@ -4251,9 +4251,9 @@ ${ DEFS=`sed -n "$ac_script" confdefs.h` ] T26,31 -m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:598 +m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:590 T24,33 -m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:896 +m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:891 T20,98 _AC_LANG_OPENMP(C++) #ifndef _OPENMP @@ -4265,13 +4265,13 @@ int main () { return omp_get_num_threads (); } T27,2 AC_LANG_SOURCE(Objective C)$1 T24,34 -m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2371 +m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2350 T29,31 m4_location(AC_TYPE_UINT64_T)../../lib/autoconf/types.m4:631 T20,33 m4_location(AC_LN_S)../../lib/autoconf/oldnames.m4:62 T27,31 -m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:836 +m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:829 T16,225 _AS_LINENO_WORKS as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO @@ -4349,19 +4349,19 @@ m4_wrap_m4_wrap([], [$1[]]) T16,9 _AS_TEST_X_WORKStest -x / T28,35 -m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:945 +m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:927 T25,34 -m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2550 +m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2538 T29,34 -m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2696 +m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2694 T26,36 -m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1840 +m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1829 T25,34 -m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:464 +m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:451 T26,34 -m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2921 +m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2920 T22,34 -m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2941 +m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2938 T12,110 _m4_set_sizem4_define([_m4_set_size($1)], m4_ifdef([_m4_set_size($1)], [$2(m4_indir([_m4_set_size($1)]))], @@ -4405,7 +4405,7 @@ AC_STRUCT_ST_BLOCKS_m4_defun_pro([$0])AC_CHECK_MEMBERS([struct stat.st_blocks], T6,43 m4_map_m4_foreach([_m4_apply([$1],], [)], [], $2) T28,34 -m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:612 +m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:524 T10,54 m4_includem4_include_unique([$1])dnl m4_builtin([include], [$1]) @@ -4583,9 +4583,9 @@ AC_CONFIG_SUBDIRS_m4_defun_pro([$0])AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])AC_RE T28,36 m4_location(AM_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1385 T22,30 -m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:358 +m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:323 T36,33 -m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1073 +m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1071 T26,1 _m4_divert(HEADER-COMMENT)2 T26,688 @@ -4884,21 +4884,21 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T22,33 -m4_location(AC_PREREQ)../../lib/autoconf/general.m4:307 +m4_location(AC_PREREQ)../../lib/autoconf/general.m4:305 T28,35 -m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:551 +m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:546 T10,177 AM_MINGW32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_MINGW32' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MINGW32], [AC_MINGW32($@)])[]_m4_defun_epi([$0]) T31,35 -m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:803 +m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:715 T11,150 AC_SCO_INTL_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SCO_INTL' is obsolete. You should run autoupdate.])dnl AC_FUNC_STRFTIME[]_m4_defun_epi([$0]) T27,33 -m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:269 +m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:268 T23,36 m4_location(AC_VPRINTF)../../lib/autoconf/functions.m4:1966 T21,36 @@ -4927,19 +4927,19 @@ _AS_DIRNAME_SED_m4_defun_pro([$0])AS_ECHO([X[]$1]) | T25,33 m4_location(AC_ST_BLOCKS)../../lib/autoconf/oldnames.m4:77 T33,33 -m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:828 +m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:819 T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T30,34 -m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2344 +m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2332 T30,33 -m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:838 +m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:833 T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -4948,9 +4948,9 @@ AM_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T37,30 -m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:331 +m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:329 T27,33 -m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:729 +m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:677 T6,37 _AC_CC_AC_LANG_DISPATCH([$0], _AC_LANG, $@) T16,65 @@ -4968,9 +4968,9 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 T27,27 -m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:847 +m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:822 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -4980,7 +4980,7 @@ m4_providem4_ifdef([m4_provide($1)], [], [m4_set_add([_m4_provide], [$1], [m4_define([m4_provide($1)], m4_ifdef([_m4_diverting], [_m4_defn([_m4_diverting])]))])]) T26,28 -m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1801 +m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1787 T18,209 AC_LONG_FILE_NAMES_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LONG_FILE_NAMES' is obsolete. You should run autoupdate.])dnl @@ -4992,7 +4992,7 @@ AC_CYGWIN32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_CYGWIN32' i You should run autoupdate.])dnl m4_if($#, 0, [AC_CYGWIN], [AC_CYGWIN($@)])[]_m4_defun_epi([$0]) T28,30 -m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:145 +m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:137 T13,100 AS_LINENO_POP_m4_defun_pro([$0])eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno[]_m4_defun_epi([$0]) T11,65 @@ -5002,7 +5002,7 @@ m4_ignore T28,33 m4_location(AC_STDC_HEADERS)../../lib/autoconf/oldnames.m4:75 T29,35 -m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:150 +m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:149 T20,184 _AC_FC_NAME_MANGLING_m4_defun_pro([$0])AC_REQUIRE([AC_FC_LIBRARY_LDFLAGS])dnl AC_REQUIRE([AC_FC_DUMMY_MAIN])dnl @@ -5069,19 +5069,19 @@ if test $ac_cv_func_chown_works = yes; then fi []_m4_defun_epi([$0]) T30,34 -m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1828 +m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1815 T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T9,0 AU_DEFINE T28,34 -m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2559 +m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2556 T8,179 AC_ERROR_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MSG_ERROR], [AC_MSG_ERROR($@)])[]_m4_defun_epi([$0]) T27,34 -m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2463 +m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2461 T9,184 AC_SIZE_T_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SIZE_T' is obsolete. You should run autoupdate.])dnl @@ -5119,11 +5119,11 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 T27,27 -m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:661 +m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:636 T32,32 -m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:211 +m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:175 T19,153 _AC_CONFIG_REGISTERm4_if([$1], [COMMANDS], [], @@ -5153,15 +5153,15 @@ _AC_FC_MAIN AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T34,30 -m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:257 +m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:256 T24,33 m4_location(AC_CYGWIN32)../../lib/autoconf/oldnames.m4:86 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T24,27 -m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:417 +m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:388 T23,27 -m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:496 +m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:448 T7,75 m4_warn_m4_warn([$1], [$2], m4_ifdef([_m4_expansion_stack], [m4_expansion_stack])) @@ -5214,9 +5214,9 @@ T16,110 AC_CHECK_MEMBERS_m4_defun_pro([$0])m4_map_args_sep([AC_CHECK_MEMBER(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:582 +m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:567 T31,33 -m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1031 +m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1026 T16,245 m4_cr_not_digits  !"#*%&'()$+,./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -5230,7 +5230,7 @@ AC_CACHE_VAL([ac_cv_func_setvbuf_reversed], [ac_cv_func_setvbuf_reversed=no]) T12,25 m4_set_listcm4_set_map_sep([$1], [,]) T27,36 -m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1584 +m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1545 T21,33 m4_location(AC_ERROR)../../lib/autoconf/oldnames.m4:34 T19,584 @@ -5277,13 +5277,13 @@ if test $ac_cv_func_$1_empty_string_bug = yes; then fi T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 T21,210 AM_FUNC_ERROR_AT_LINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_ERROR_AT_LINE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_ERROR_AT_LINE], [AC_FUNC_ERROR_AT_LINE($@)])[]_m4_defun_epi([$0]) T34,35 -m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:479 +m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:460 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -5583,7 +5583,7 @@ AC_TYPE_UINTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2046 +m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2031 T31,443 _AC_SYS_LARGEFILE_TEST_INCLUDES@%:@include /* Check that off_t can represent 2**63 - 1 correctly. @@ -5611,7 +5611,7 @@ T26,96 AC_DISABLE_OPTION_CHECKING_m4_defun_pro([$0])m4_divert_once([DEFAULTS], [enable_option_checking=no]) []_m4_defun_epi([$0]) T23,34 -m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2396 +m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2395 T34,0 m4_include(autoconf/autoheader.m4) T24,1 @@ -5624,7 +5624,7 @@ T10,3 m4_newline $1 T28,30 -m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:242 +m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:241 T15,77 _AC_LANG_PREFIX_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T37,125 @@ -6003,10 +6003,10 @@ fi []_m4_defun_epi([$0]) T19,40 AC_CONFIG_MACRO_DIR_m4_defun_pro([$0])[]_m4_defun_epi([$0]) -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp T31,35 -m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:568 +m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:557 T32,0 m4_include(autoconf/specific.m4) T16,73 @@ -6046,9 +6046,9 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T26,34 -m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:150 +m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:120 T29,28 -m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1414 +m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1396 T19,2 _AC_LANG_PREFIX(Go)GO T9,184 @@ -6077,7 +6077,7 @@ __program____program__ T6,26 AS_BOX_$0(m4_expand([$1]), [$2]) T28,36 -m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1426 +m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1417 T7,156 m4_defnm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_defn([$1])], @@ -6088,9 +6088,9 @@ fp_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `fp_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T28,28 -m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1156 +m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1101 T28,36 -m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1380 +m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1362 T11,544 _AS_PREPARE_m4_defun_pro([$0])m4_pushdef([AS_REQUIRE])m4_pushdef([AS_REQUIRE_SHELL_FN], _m4_defn([_AS_REQUIRE_SHELL_FN]) )m4_pushdef([AS_MESSAGE_LOG_FD], [-1])_AS_ERROR_PREPARE @@ -6138,9 +6138,9 @@ m4_location(AC_ST_RDEV)../../lib/autoconf/oldnames.m4:78 T33,33 m4_location(AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:999 T27,28 -m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1821 +m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1808 T24,34 -m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2267 +m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2266 T6,4 m4_car[$1] T21,196 @@ -6252,7 +6252,7 @@ fi])dnl T14,62 m4_set_foreachm4_pushdef([$2])m4_set_map_sep([$1], [m4_define([$2],], [)$3]) T30,33 -m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:828 +m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:779 T11,190 AC_SET_MAKE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SET_MAKE' is obsolete. You should run autoupdate.])dnl @@ -6269,7 +6269,7 @@ AC_SEARCH_LIBS([strerror], [cposix])[]_m4_defun_epi([$0]) T16,101 m4_stack_foreach_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2(_m4_defn([m4_tmp-$1]))]) T26,34 -m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:171 +m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:164 T12,77 m4_chomp_allm4_format([[%.*s]], m4_bregexp(m4_translit([[$1]], [ /], [/ ]), [/*$]), [$1]) @@ -6278,7 +6278,7 @@ AC_LN_S_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LN_S' is obsole You should run autoupdate.])dnl m4_if($#, 0, [AC_PROG_LN_S], [AC_PROG_LN_S($@)])[]_m4_defun_epi([$0]) T19,33 -m4_location(AC_USG)../../lib/autoconf/headers.m4:852 +m4_location(AC_USG)../../lib/autoconf/headers.m4:840 T6,46 m4_cmpm4_eval((([$1]) > ([$2])) - (([$1]) < ([$2]))) T9,373 @@ -6316,9 +6316,9 @@ AC_FUNC_MBRTOWC_m4_defun_pro([$0]) T31,33 m4_location(AC_WORDS_BIGENDIAN)../../lib/autoconf/oldnames.m4:83 T28,34 -m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:699 +m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:662 T26,36 -m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:2025 +m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:1975 T17,51 _AS_ECHO_UNQUOTEDAS_ECHO(["$1"]) >&m4_default([$2], [AS_MESSAGE_FD]) T19,120 @@ -6328,11 +6328,11 @@ _AC_FUNCS_EXPANSION m4_define([_AC_FUNCS_EXPANSION], []) T19,34 -m4_location(_AC_DO)../../lib/autoconf/general.m4:2379 +m4_location(_AC_DO)../../lib/autoconf/general.m4:2377 T30,33 m4_location(AC_YYTEXT_POINTER)../../lib/autoconf/oldnames.m4:84 T37,30 -m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:290 +m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:289 T20,96 _AS_DETECT_SUGGESTED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_SUGGESTED_BODY], [$1 || AS_EXIT])[]_m4_defun_epi([$0]) T17,57 @@ -6469,7 +6469,7 @@ AC_CHECK_HEADERS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_HEADER(], [)]) [$3], [$4])dnl]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:451 +m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:450 F8,5 m4_indirindir T12,1 @@ -6510,7 +6510,7 @@ m4_divert_pop()dnl m4_ifdef([_m4_diverting([AC_NO_EXECUTABLES])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_NO_EXECUTABLES],], [, _m4_divert_dump)]])) T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 F12,9 m4_changecomchangecom F6,6 @@ -6526,7 +6526,7 @@ $2 T10,62 m4_noquotem4_changequote([-=<{(],[)}>=-])$1-=<{()}>=-m4_changequote([,]) T27,34 -m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:92 +m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:86 T13,42 AS_VAR_SET_IFAS_IF([AS_VAR_TEST_SET([$1])], [$2], [$3]) F8,5 @@ -6539,7 +6539,7 @@ _AS_RUNm4_ifval([$2], [{ $as_echo "$as_bourne_compatible"$1 | as_run=a $2; }], T36,33 m4_location(AC_SYS_SIGLIST_DECLARED)../../lib/autoconf/oldnames.m4:79 T27,30 -m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:225 +m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:224 T19,260 _AC_FC_DIALECT_YEAR_m4_defun_pro([$0])m4_case(m4_bpatsubsts(m4_tolower([$1]), [fortran],[], [ *],[]), [77],[1977], [1977],[1977], @@ -6690,9 +6690,9 @@ AC_CHECK_HEADER_STDBOOL_m4_defun_pro([$0])AC_CACHE_CHECK([for stdbool.h that con AC_CHECK_TYPES([_Bool]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:672 +m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:667 T27,34 -m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1086 +m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1081 T18,98 _AC_LANG_OPENMP(C) #ifndef _OPENMP @@ -6814,7 +6814,7 @@ esac AS_LINENO_POP T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 T23,2 AC_LANG_SOURCE(Fortran)$1 T12,4700 @@ -6973,9 +6973,9 @@ T12,145 AC_LANG_CALL_m4_defun_pro([$0])m4_ifval([$2], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 T32,33 -m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:357 +m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:353 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -7157,7 +7157,7 @@ case $ac_cv_c_int$1_t in #( esac []_m4_defun_epi([$0]) T44,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:278 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:268 T19,166 _AC_CHECK_FUNC_ONCE_AH_CHECK_FUNC([$1])AC_DEFUN([_AC_Func_$1], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" $1"])]) @@ -7167,13 +7167,13 @@ AM_EXEEXT_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_EXEEXT' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_EXEEXT], [AC_EXEEXT($@)])[]_m4_defun_epi([$0]) T34,31 -m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:738 +m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:718 T28,28 -m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1942 +m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1941 T35,34 -m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:225 +m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:193 T35,34 -m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1723 +m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1696 T17,1432 AC_TYPE_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_UID_T])dnl AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups, @@ -7257,11 +7257,11 @@ else fi []_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2387 +m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2385 T25,27 m4_location(AC_LANG_OBJC)../../lib/autoconf/c.m4:274 T38,34 -m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1679 +m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1678 F7,4 m4_evaleval T26,2 @@ -7289,7 +7289,7 @@ program_transform_name=`AS_ECHO(["$program_transform_name"]) | sed "$ac_script"` m4_ifdef([_m4_diverting([AC_ARG_PROGRAM])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_ARG_PROGRAM],], [, _m4_divert_dump)]])) T47,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:295 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:283 T24,3 _m4_divert(VERSION_USER)202 T15,186 @@ -7320,9 +7320,9 @@ AC_TRY_LINK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_LINK' i You should run autoupdate.])dnl AC_LINK_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])[]_m4_defun_epi([$0]) T23,30 -m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:313 +m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:297 T35,33 -m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:722 +m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:634 T15,23 AS_EXECUTABLE_Pas_fn_executable_p $1[] T15,129 @@ -7364,9 +7364,9 @@ AC_FUNC_MEMCMP_m4_defun_pro([$0])AC_CACHE_CHECK([for working memcmp], ac_cv_func test $ac_cv_func_memcmp_working = no && AC_LIBOBJ([memcmp]) []_m4_defun_epi([$0]) T31,31 -m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:160 +m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:148 T27,27 -m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:615 +m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:567 T13,50 AC_MSG_RESULT{ _AS_ECHO_LOG([result: $1]) _AS_ECHO([$1]); }dnl @@ -7376,7 +7376,7 @@ AC_LANG_CONFTEST(Fortran)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,34 -m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2067 +m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2064 T6,598 m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4], @@ -7466,7 +7466,7 @@ AC_PREREQm4_if(m4_version_compare([2.69], [$1]), [63])])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 T14,1574 _AC_CHECK_PROG_m4_defun_pro([$0])# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=$[2] @@ -7522,7 +7522,7 @@ else fi []_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1961 +m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1955 T33,0 m4_include(autoconf/functions.m4) T17,185 @@ -7679,7 +7679,7 @@ test -n "$target_alias" && m4_ifdef([_m4_diverting([AC_CANONICAL_TARGET])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_TARGET],], [, _m4_divert_dump)]])) T31,35 -m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:904 +m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:887 T13,196 AC_GETLOADAVG_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_GETLOADAVG' is obsolete. You should run autoupdate.])dnl @@ -7761,7 +7761,7 @@ AC_TEST_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_CPP' i You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_CPP], [AC_TRY_CPP($@)])[]_m4_defun_epi([$0]) T24,28 -m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1934 +m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1903 T16,265 AC_LANG(Fortran)ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&AS_MESSAGE_LOG_FD' @@ -7769,13 +7769,13 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu T32,27 -m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:321 +m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:318 T34,33 m4_location(AC_STAT_MACROS_BROKEN)../../lib/autoconf/oldnames.m4:74 T24,34 -m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:883 +m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:867 T25,27 -m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:900 +m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:871 T25,34 m4_location(AC_ISC_POSIX)../../lib/autoconf/specific.m4:446 T16,27 @@ -7804,7 +7804,7 @@ _AC_CACHE_CHECK_INT_m4_defun_pro([$0])AC_CACHE_CHECK([$1], [$2], T15,64 AC_TYPE_UINT8_T_m4_defun_pro([$0])_AC_TYPE_UNSIGNED_INT(8)[]_m4_defun_epi([$0]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -7859,7 +7859,7 @@ _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T22,33 m4_location(AC_FD_MSG)../../lib/autoconf/general.m4:384 T33,34 -m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1679 +m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1675 T25,53 _m4_expansion_stack_entry_m4_defn([m4_location($1)])[: $1 is expanded from...] T19,191 @@ -7997,7 +7997,7 @@ AS_VAR_IF([ac_Lib], [yes], AS_VAR_POPDEF([ac_Lib])dnl []_m4_defun_epi([$0]) T25,30 -m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:128 +m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:125 T14,159 ac_cv_prog_g77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_g77' is obsolete. You should run autoupdate.])dnl @@ -8054,9 +8054,9 @@ _AC_PROG_FC_C_O AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T29,31 -m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:361 +m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:344 T26,33 -m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:895 +m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:883 T14,78 AC_TRY_COMMAND_m4_defun_pro([$0]){ ac_try='$1' _AC_EVAL([$ac_try]); }[]_m4_defun_epi([$0]) @@ -8091,11 +8091,11 @@ AC_TYPE_INTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1188 +m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1154 T28,34 -m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1449 +m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1420 T36,33 -m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:661 +m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:600 T9,127 _m4_splitm4_changequote([-=<{(],[)}>=-])[m4_bpatsubst(-=<{(-=<{($1)}>=-)}>=-, -=<{($2)}>=-, -=<{(]$3[)}>=-)]m4_changequote([, ]) @@ -8205,13 +8205,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T35,34 -m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1442 +m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1433 T26,35 m4_location(AC_GETLOADAVG)../../lib/autoconf/functions.m4:808 T24,34 -m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1116 +m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1111 T36,32 -m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:162 +m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:160 T8,85 _m4_joinm4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift2($@))]) @@ -8238,13 +8238,13 @@ AC_INLINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_INLINE' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_C_INLINE], [AC_C_INLINE($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2856 +m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2844 T10,24 AN_PROGRAMAN_OUTPUT([program], $@) T36,30 -m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:374 +m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:372 T34,31 -m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:542 +m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:503 T16,4 _m4_divert(BODY)1000 T18,1268 @@ -8294,7 +8294,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T29,34 -m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:177 +m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:134 T35,31 m4_location(AC_STRUCT_DIRENT_D_INO)../../lib/autoconf/types.m4:964 T11,967 @@ -8330,11 +8330,11 @@ AC_C_TYPEOF_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 T28,33 m4_location(AC_PROGRAM_PATH)../../lib/autoconf/oldnames.m4:43 T32,31 -m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:68 +m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:63 T20,177 _AC_CHECK_HEADER_OLD_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `$0' is obsolete. You should use AC_CHECK_HEADER with a fourth argument.])_AC_CHECK_HEADER_PREPROC($@)[]_m4_defun_epi([$0]) @@ -8352,15 +8352,15 @@ else fi []_m4_defun_epi([$0]) T27,30 -m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:382 +m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:381 T24,34 -m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:713 +m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:709 T12,10 m4_cr_digits0123456789 T31,33 -m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:161 +m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:158 T33,27 -m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:311 +m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:308 T17,17 m4_PACKAGE_STRINGGNU Autoconf 2.69 T30,6 @@ -8382,12 +8382,12 @@ AS_TEST_X_m4_defun_pro([$0])AS_REQUIRE([_AS_TEST_PREPARE])[]_m4_popdef([$0])m4_i T21,145 AC_LANG_FUNC_LINK_TRY_m4_defun_pro([$0])m4_ifval([$1], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) -T27,36 -m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:1190 +T27,35 +m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:987 T32,34 -m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1688 +m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1684 T25,33 -m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:84 +m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:82 T28,33 m4_location(AC_HEADER_EGREP)../../lib/autoconf/oldnames.m4:37 T15,863 @@ -8414,9 +8414,9 @@ if test $ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o = no; then fi []_m4_defun_epi([$0]) T23,34 -m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2765 +m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2764 T31,32 -m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1077 +m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1050 F10,6 _m4_popdefpopdef T9,68 @@ -8463,7 +8463,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 T24,2 _AC_LANG_PREFIX(Fortran)FC T15,376 @@ -8529,9 +8529,9 @@ AC_CONFIG_COMMANDS_PRE([case $FC_MODOUT in #( esac])dnl []_m4_defun_epi([$0]) T32,33 -m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:285 +m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:278 T28,34 -m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2670 +m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2661 T29,33 m4_location(AC_PROGRAM_EGREP)../../lib/autoconf/oldnames.m4:42 T11,162 @@ -8591,7 +8591,7 @@ AC_MSG_RESULT([$cross_compiling]) T12,16 m4_wrap_lifo_m4_wrap([$1[]]) T22,34 -m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1476 +m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1475 T10,103 m4_flattenm4_if(m4_index([$1], [ ]), [-1], [[$1]], @@ -8632,9 +8632,9 @@ _AC_LANG_OPENMP(Fortran 77) T31,68 AC_LANG_COMPILER(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXX])[]_m4_defun_epi([$0]) T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 T34,34 -m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:332 +m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:314 T8,28 _AS_CASE [@%:@(] $1[)] : @@ -8675,9 +8675,9 @@ AC_ST_BLKSIZE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLKSIZ You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_BLKSIZE], [AC_STRUCT_ST_BLKSIZE($@)])[]_m4_defun_epi([$0]) T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 T29,36 -m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1671 +m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1665 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -8771,9 +8771,9 @@ AS_VAR_IF([ac_File], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_File])dnl []_m4_defun_epi([$0]) T37,34 -m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1862 +m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1812 T24,34 -m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1490 +m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1481 T11,322 AC_LANG_POP_m4_defun_pro([$0])m4_ifval([$1], [m4_if([$1], m4_defn([_AC_LANG]), [], @@ -8798,9 +8798,9 @@ if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then fi []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 T28,28 -m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1357 +m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1205 T20,112 _AC_MSG_LOG_CONFTESTAS_ECHO(["$as_me: failed program was:"]) >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.$ac_ext >&AS_MESSAGE_LOG_FD @@ -8839,11 +8839,11 @@ AC_CHECK_TYPE_m4_defun_pro([$0])m4_cond([$#], [3], T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 T20,294 _AC_COMPUTE_INT_BODY AS_LINENO_PUSH([$[]1]) if test "$cross_compiling" = yes; then @@ -8865,7 +8865,7 @@ AC_LANG_FORTRAN77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_ You should run autoupdate.])dnl AC_LANG(Fortran 77)[]_m4_defun_epi([$0]) T32,34 -m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2895 +m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2894 T6,91 _AC_DO_m4_defun_pro([$0])_AC_RUN_LOG([eval "$1"], [_AC_DO_ECHO([$1])])[]_m4_defun_epi([$0]) @@ -8895,7 +8895,7 @@ fi T18,71 AC_CONFIG_COMMANDS_m4_defun_pro([$0])_AC_CONFIG_FOOS([COMMANDS], $@)[]_m4_defun_epi([$0]) T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 T15,393 AC_HAVE_LIBRARY_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_LIBRARY' is obsolete. You should run autoupdate.])dnl @@ -8910,7 +8910,7 @@ m4_popdef([AC_Lib_Name])dnl T25,98 AC_CONFIG_AUX_DIR_DEFAULT_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS("$srcdir" "$srcdir/.." "$srcdir/../..")[]_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1492 +m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1477 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -8930,11 +8930,11 @@ m4_set_intersectionm4_if([$1], [$2], [m4_set_listc([$1])], m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])], [m4_set_map_sep([$1], [_$0([$2],], [)])]) T27,28 -m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1365 +m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1362 T27,30 -m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:721 +m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:719 T29,33 -m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:848 +m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:843 T19,147 AS_REQUIRE_SHELL_FNm4_provide_if([AS_SHELL_FN_$1], [], [AS_REQUIRE([AS_SHELL_FN_$1], @@ -8963,7 +8963,7 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T30,35 -m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:822 +m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:814 T27,155 _AC_LANG_IO_PROGRAM(Erlang)AC_LANG_PROGRAM([], [dnl ReturnValue = case file:write_file("conftest.out", "") of @@ -8992,9 +8992,9 @@ m4_ifdef([_m4_diverting([AC_PROG_LEX])], [-]), [-], [[m4_unquote(], [)]], T21,65 AC_LANG_COMPILER(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXX])[]_m4_defun_epi([$0]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 T31,154 AC_VALIDATE_CACHED_SYSTEM_TUPLE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_VALIDATE_CACHED_SYSTEM_TUPLE' is obsolete. You should run autoupdate.])dnl @@ -9013,7 +9013,7 @@ test ac_cv_header_dirent_sys_dir_h && test ac_cv_header_dirent_ndir_h && AC_DEFINE([NDIR], 1, [Same as `HAVE_NDIR_H', don't depend on me.])[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 F8,8 __line____line__ T23,350 @@ -9033,7 +9033,7 @@ _AC_CHECK_TYPE_NEW_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T34,35 -m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:496 +m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:486 T13,41 _m4_set_unionm4_ifdef([_m4_set([$1],$2)], [], [,[$2]]) T15,88 @@ -9049,9 +9049,9 @@ _AC_COPYRIGHT_YEARS Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. T27,31 -m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:759 +m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:746 T28,36 -m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1614 +m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1589 T10,55 _m4_shift2m4_if([$#], [2], [], [, m4_shift(m4_shift($@))]) @@ -9105,7 +9105,7 @@ m4_if($#, 0, [AC_TYPE_PID_T], [AC_TYPE_PID_T($@)])[]_m4_defun_epi([$0]) T23,3 _m4_divert(VERSION_END)203 T43,27 -m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:955 +m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:954 T13,383 _AS_PATH_WALKas_save_IFS=$IFS; IFS=$PATH_SEPARATOR m4_ifvaln([$3], [as_found=false])dnl @@ -9144,11 +9144,11 @@ _AC_CHECK_DECL_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T36,27 -m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:562 +m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:543 T28,1 _m4_divert(HEADER-COPYRIGHT)3 T29,31 -m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:322 +m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:310 T11,58 _AS_CLEANUPm4_divert_text([M4SH-SANITIZE], [_AS_DETECT_BETTER_SHELL]) T21,1512 @@ -9237,7 +9237,7 @@ m4_text_boxm4_pushdef([m4_Border], [##] $1 [##] [##] _m4_defn([m4_Border]) [##]_m4_popdef([m4_Border]) T36,36 -m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1472 +m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1434 T23,378 _AC_CHECK_HEADER_DIRENTAS_VAR_PUSHDEF([ac_Header], [ac_cv_header_dirent_$1])dnl AC_CACHE_CHECK([for $1 that defines DIR], [ac_Header], @@ -9286,9 +9286,9 @@ m4_set_containsm4_ifdef([_m4_set_cleanup($1)], F10,7 m4_esyscmdesyscmd T32,36 -m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1409 +m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1392 T27,31 -m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:180 +m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:178 T31,0 m4_include(autoconf/fortran.m4) T34,23 @@ -9304,9 +9304,9 @@ m4_set_mapm4_set_map_sep([$1], [$2(], [)]) T23,36 m4_location(AC_STRCOLL)../../lib/autoconf/functions.m4:1744 T34,27 -m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:668 +m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:667 T30,33 -m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1106 +m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1097 T14,53 m4_cr_symbols1abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ T14,181 @@ -9354,7 +9354,7 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP, AC_SUBST([EGREP]) []_m4_defun_epi([$0]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 F7,4 m4_decrdecr T14,32 @@ -9399,7 +9399,7 @@ fi T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T18,316 @@ -9416,13 +9416,13 @@ $2 return 0; } T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 T28,33 m4_location(AC_TEST_PROGRAM)../../lib/autoconf/oldnames.m4:46 T27,33 m4_location(AC_SIZEOF_TYPE)../../lib/autoconf/oldnames.m4:44 T22,28 -m4_location(AC_OPENMP)../../lib/autoconf/c.m4:2031 +m4_location(AC_OPENMP)../../lib/autoconf/c.m4:1986 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -9547,20 +9547,20 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 T27,34 -m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2615 +m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2614 T33,34 -m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:305 +m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:291 T26,34 -m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:103 +m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:100 F12,8 m4_bpatsubstpatsubst T30,36 AC_LANG_FUNC_LINK_TRY(Fortran)AC_LANG_PROGRAM([], [ call $1]) T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 T28,31 m4_location(AC_TYPE_SSIZE_T)../../lib/autoconf/types.m4:605 T7,2 @@ -9570,7 +9570,7 @@ AS_ORIGINAL_STDIN_FD7 T31,33 m4_location(AC_LONG_FILE_NAMES)../../lib/autoconf/oldnames.m4:64 T32,34 -m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1854 +m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1833 T13,76 _AC_DO_TOKENS_m4_defun_pro([$0]){ ac_try='$1' _AC_DO([$ac_try]); }[]_m4_defun_epi([$0]) @@ -9579,7 +9579,7 @@ AC_LANG_m4_defun_pro([$0])_AC_LANG_SET(m4_ifdef([_AC_LANG], [m4_defn([_AC_LANG]) [$1])dnl m4_define([_AC_LANG], [$1])[]_m4_defun_epi([$0]) T37,36 -m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1714 +m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1710 T28,86 _AC_LANG_IO_PROGRAM(Fortran)AC_LANG_PROGRAM([], [dnl @@ -9596,13 +9596,13 @@ AC_TRY_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_CPP' is You should run autoupdate.])dnl AC_PREPROC_IFELSE([AC_LANG_SOURCE([[$1]])], [$2], [$3])[]_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 T37,33 -m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:203 +m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:193 T24,33 -m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:875 +m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:868 T30,35 -m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:656 +m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:625 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) F7,7 @@ -9647,9 +9647,9 @@ _AC_FC_WRAPPERS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T27,27 -m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:437 +m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:436 T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -9678,7 +9678,7 @@ AC_SUBST([ERLANG_ERTS_VER], [$ac_cv_erlang_erts_ver]) T29,31 m4_location(AC_TYPE_UINT32_T)../../lib/autoconf/types.m4:630 T40,34 -m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:287 +m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:232 T16,63 AC_CONFIG_HEADER_m4_defun_pro([$0])AC_CONFIG_HEADERS([$1])[]_m4_defun_epi([$0]) T26,34 @@ -9694,8 +9694,8 @@ You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_UTIME_NULL], [AC_FUNC_UTIME_NULL($@)])[]_m4_defun_epi([$0]) T11,55 AC_TRY_EVAL_m4_defun_pro([$0])_AC_EVAL([$$1])[]_m4_defun_epi([$0]) -T32,32 -m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:1006 +T32,31 +m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:999 T30,33 m4_location(AC_PROGRAMS_CHECK)../../lib/autoconf/oldnames.m4:39 T14,157 @@ -9723,7 +9723,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T28,33 -m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:470 +m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:465 T15,865 _AC_PROG_OBJC_Gac_test_OBJCFLAGS=${OBJCFLAGS+set} ac_save_OBJCFLAGS=$OBJCFLAGS @@ -9813,7 +9813,7 @@ T13,41 m4_provide_ifm4_ifdef([m4_provide($1)], [$2], [$3]) T33,34 -m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1021 +m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1015 T16,838 _AS_LN_S_PREPARE_m4_defun_pro([$0])rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -9891,11 +9891,11 @@ _ASUNAME _AS_PATH_WALK([$PATH], [AS_ECHO(["PATH: $as_dir"])]) } T46,33 -m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:341 +m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:297 T30,27 -m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:986 +m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:961 T24,34 -m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:476 +m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:474 T29,33 m4_location(AC_CHAR_UNSIGNED)../../lib/autoconf/oldnames.m4:54 T7,16 @@ -9917,15 +9917,15 @@ m4_location(AC_SIZE_T)../../lib/autoconf/oldnames.m4:73 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 T21,33 m4_location(AC_OFF_T)../../lib/autoconf/oldnames.m4:68 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 T26,0 m4_include(autoconf/go.m4) F12,8 @@ -9976,7 +9976,7 @@ T10,86 m4_toupperm4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ]) T25,30 -m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:274 +m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:272 T8,19 m4_curry$1(m4_shift($@,)_$0 F4,4 @@ -9990,7 +9990,7 @@ AC_HELP_STRING_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HELP_STR You should run autoupdate.])dnl m4_if($#, 0, [AS_HELP_STRING], [AS_HELP_STRING($@)])[]_m4_defun_epi([$0]) T33,31 -m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:981 +m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:973 T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T23,83 @@ -10052,9 +10052,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1810 +m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1788 T30,31 -m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:960 +m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:939 T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) T11,3 @@ -10064,8 +10064,8 @@ AC_TYPE_SSIZE_T_m4_defun_pro([$0])AC_CHECK_TYPE(ssize_t, int)[]_m4_defun_epi([$0 T14,113 AC_CHECK_TYPES_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_TYPE_NEW(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) -T28,30 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 +T28,29 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -10138,9 +10138,9 @@ T12,48 m4_re_escapem4_bpatsubst([$1], [[][*+.?\^$]], [\\\&]) T31,27 -m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:337 +m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:336 T25,36 -m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1824 +m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1786 T12,26 m4_normalizem4_strip(m4_flatten([$1])) T6,132 @@ -10154,11 +10154,11 @@ _ACEOF T16,89 AC_CONFIG_SRCDIR_m4_defun_pro([$0])m4_divert_text([DEFAULTS], [ac_unique_file="$1"])[]_m4_defun_epi([$0]) T23,34 -m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2470 +m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2468 F3,3 dnldnl T27,34 -m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2881 +m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2880 T16,807 _AC_INIT_PACKAGE_AC_INIT_LITERAL([$1]) _AC_INIT_LITERAL([$2]) @@ -10185,7 +10185,7 @@ m4_ifndef([AC_PACKAGE_URL], [[$5]]))]) T31,33 -m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:756 +m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:734 T25,3 _m4_divert(VERSION_BEGIN)200 T27,2052 @@ -10261,7 +10261,7 @@ if test $ac_cv_lib_error_at_line = no; then fi []_m4_defun_epi([$0]) T31,33 -m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:73 +m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:59 T22,33 m4_location(AC_MODE_T)../../lib/autoconf/oldnames.m4:67 T14,116 @@ -10275,7 +10275,7 @@ T18,95 AC_PROG_CPP_WERROR_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])dnl ac_c_preproc_warn_flag=yes[]_m4_defun_epi([$0]) T29,30 -m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:197 +m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:193 T10,79 _m4_shiftnm4_if([$1], 1, [m4_shift(], [$0(m4_decr([$1])]), m4_shift(m4_shift($@))) @@ -10433,7 +10433,7 @@ m4_if([$0], [m4_require], [[m4_defun]], [[AC_DEFUN]])['d macro])])m4_provide_if( [_m4_require_check([$1], _m4_defn([m4_provide($1)]), [$0])], [m4_ignore])], [_m4_require_call])([$1], [$2], _m4_divert_dump) T28,36 -m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1705 +m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1677 T7,119 m4_casem4_if([$#], 0, [], [$#], 1, [], @@ -10476,11 +10476,11 @@ T11,55 m4_sincludem4_include_unique([$1])dnl m4_builtin([sinclude], [$1]) T32,34 -m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:285 +m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:271 T41,33 -m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:255 +m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:254 T23,33 -m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:906 +m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:901 F6,6 definedefine T25,2 @@ -10518,7 +10518,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T27,34 -m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:265 +m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:245 T12,197 AC_ST_BLOCKS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLOCKS' is obsolete. You should run autoupdate.])dnl @@ -10551,13 +10551,13 @@ else fi []_m4_defun_epi([$0]) T31,27 -m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:424 +m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:422 T19,62 m4_version_unletterm4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [3]) T23,34 -m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:356 +m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:349 T26,31 -m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:242 +m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:232 T26,23 _AC_LANG_NULL_PROGRAM(C++)AC_LANG_PROGRAM([], []) T15,318 @@ -10578,7 +10578,7 @@ AC_DIVERT_POPm4_if([$1], [], [], ]m4_divert_stack)])_m4_popdef([_m4_divert_stack], [_m4_divert_diversion])m4_ifdef([_m4_divert_diversion], [], [m4_fatal([too many m4_divert_pop])])_m4_divert_raw(_m4_divert(_m4_defn([_m4_divert_diversion]), [-])) T24,33 -m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:371 +m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:358 T17,32 m4_define_defaultm4_ifndef([$1], [m4_define($@)]) T21,696 @@ -10624,9 +10624,9 @@ m4_PACKAGE_NAMEGNU Autoconf T36,31 m4_location(AC_STRUCT_DIRENT_D_TYPE)../../lib/autoconf/types.m4:968 T27,34 -m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2680 +m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2678 T29,33 -m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:482 +m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:481 F10,7 m4_builtinbuiltin T19,2 @@ -10644,23 +10644,23 @@ _AC_CHECK_HEADER_MONGREL_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ AS_VAR_IF([ac_Header], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_Header])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:380 +m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:370 T41,27 -m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:816 +m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:815 T34,0 m4_include(autoconf/autoupdate.m4) T31,33 m4_location(AC_MINUS_C_MINUS_O)../../lib/autoconf/oldnames.m4:66 T26,35 -m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:453 +m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:424 T35,33 -m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:732 +m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:727 T10,266 AS_REQUIRE_m4_defun_pro([$0])m4_define([_m4_divert_desired], [m4_default_quoted([$3], [M4SH-INIT])])m4_if(m4_eval(_m4_divert_dump - 0 <= _m4_divert(_m4_divert_desired, [-])), 1, [m4_require(], [m4_divert_require(_m4_divert_desired,]) [$1], [$2])[]_m4_defun_epi([$0]) T34,34 -m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1010 +m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1004 T14,44 m4_divert_oncem4_expand_once([m4_divert_text([$1], [$2])]) T11,146 @@ -10698,11 +10698,11 @@ _AC_PROG_OBJC_G AC_LANG_POP(Objective C)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 T27,33 -m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:93 +m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:40 T27,29 -m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:71 +m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:47 T20,374 AC_CONFIG_LIBOBJ_DIR_m4_defun_once([AC_CONFIG_LIBOBJ_DIR], [m4_divert_text([DEFAULTS], [ac_config_libobj_dir=$1])], m4_if(_m4_divert_dump, [], [[_m4_defun_pro([AC_CONFIG_LIBOBJ_DIR])m4_unquote(], [)_m4_defun_epi([AC_CONFIG_LIBOBJ_DIR])]], @@ -10715,7 +10715,7 @@ AC_CHECK_FUNCS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_FUNC(], [)])AS_F [$3])dnl]) []_m4_defun_epi([$0]) T19,33 -m4_location(_AC_FC)../../lib/autoconf/fortran.m4:170 +m4_location(_AC_FC)../../lib/autoconf/fortran.m4:167 T11,183 AC_IRIX_SUN_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_IRIX_SUN' is obsolete. You should run autoupdate.])dnl @@ -10760,7 +10760,7 @@ m4_include(autoconf/oldnames.m4) F6,6 regexpregexp T27,28 -m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1373 +m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1370 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -10854,7 +10854,7 @@ m4_sysvalsysval T28,33 m4_location(AC_MAJOR_HEADER)../../lib/autoconf/oldnames.m4:65 T23,34 -m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1522 +m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1511 T13,91 AS_SET_STATUS_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_set_status $1[]_m4_defun_epi([$0]) T14,127 @@ -10868,11 +10868,11 @@ ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ ac_compiler_gnu=$ac_cv_objc_compiler_gnu T25,31 -m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:685 +m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:671 T30,31 -m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:384 +m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:366 T31,34 -m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1718 +m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1688 T22,527 _AS_VAR_APPEND_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_append], [VAR VALUE], [Append the text in VALUE to the end of the definition contained in @@ -10900,7 +10900,7 @@ AC_FUNC_VFORK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_FUNC_VFOR You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FORK], [AC_FUNC_FORK($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:193 +m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:188 T18,371 AC_SYS_INTERPRETER_m4_defun_pro([$0])AC_CACHE_CHECK(whether @%:@! works in shell scripts, ac_cv_sys_interpreter, [echo '#! /bin/cat @@ -10921,7 +10921,7 @@ AC_LANG_CALL(Go)AC_LANG_PROGRAM([$1 m4_if([$2], [main], , [func $2()])],[$2()]) T35,34 -m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2276 +m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2273 T15,77 _AC_LANG_ABBREV_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T15,550 @@ -10940,9 +10940,9 @@ if test $ac_cv_func_strcoll_works = yes; then fi []_m4_defun_epi([$0]) T33,34 -m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1670 +m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1638 T24,28 -m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1656 +m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1621 T29,1130 _AC_PROG_PREPROC_WORKS_IFELSE_m4_defun_pro([$0])ac_preproc_ok=false for ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag in '' yes @@ -11098,13 +11098,13 @@ AC_DIAGNOSEm4_warn($@) T17,0 m4_pattern_forbid T24,34 -m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2303 +m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2298 T30,33 -m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:502 +m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:491 T33,34 -m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:302 +m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:292 T27,34 -m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:115 +m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:109 T9,69 m4_assertm4_if(m4_eval([$1]), 0, [m4_fatal([assert failed: $1], [$2])]) @@ -11150,7 +11150,7 @@ m4_pushdefpushdef T27,32 m4_location(AC_LANG_ERLANG)../../lib/autoconf/erlang.m4:112 T22,34 -m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:342 +m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:335 T21,140 AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_FC])dnl AC_LANG_PUSH(Fortran)dnl @@ -11184,9 +11184,9 @@ _AC_CANONICAL_SPLIT(build) m4_ifdef([_m4_diverting([AC_CANONICAL_BUILD])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_BUILD],], [, _m4_divert_dump)]])) T39,31 -m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:498 +m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:474 T28,33 -m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:531 +m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:509 T17,395 _AC_STRUCT_DIRENT_m4_defun_pro([$0]) AC_REQUIRE([AC_HEADER_DIRENT]) @@ -11217,7 +11217,7 @@ _AS_ECHO([$as_me: $1], [$2]);}], T13,127 AC_MSG_NOTICE_m4_defun_pro([$0])AS_REQUIRE([_AS_ME_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:158 +m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:155 T20,53 m4_divert_stack_pushm4_pushdef([_m4_divert_stack], m4_location[: $1: $2]) T17,105 @@ -11234,12 +11234,12 @@ T9,75 AC_BEFOREm4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) T37,34 -m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:422 +m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:368 T15,67 AC_LANG_PREPROCAC_LANG_COMPILER_REQUIRE()dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T28,36 -m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1739 +m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1725 T23,39 m4_expansion_stack_pushm4_pushdef([_m4_expansion_stack], [$1]) T22,3 @@ -11274,7 +11274,7 @@ AC_LANG_OBJC_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_OBJC' You should run autoupdate.])dnl AC_LANG(Objective C)[]_m4_defun_epi([$0]) T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 T11,30 AC_MSG_WARNAS_MESSAGE([WARNING: $1], [2]) T13,26 @@ -11302,7 +11302,7 @@ AS_LITERAL_WORD_IF([$2], T20,36 m4_location(AC_MMAP)../../lib/autoconf/functions.m4:1354 T26,34 -m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:68 +m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:59 T30,71 AC_LANG_PREPROC(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXXCPP])[]_m4_defun_epi([$0]) T24,34 @@ -11328,7 +11328,7 @@ m4_map_argsm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [2], [$1([$2])[]], [_m4_foreach([$1(], [)], $@)]) T26,28 -m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1192 +m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1167 T19,288 _m4_set_contents_1cm4_ifdef([_m4_set([$1])], [m4_set_contains([$1], _m4_defn([_m4_set([$1])]), @@ -11350,13 +11350,13 @@ AC_TYPE_INT64_T_m4_defun_pro([$0])_AC_TYPE_INT(64)[]_m4_defun_epi([$0]) F8,5 m4_shiftshift T28,33 -m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:460 +m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:438 T37,33 -m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:141 +m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:129 T27,28 -m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1039 +m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1010 T38,33 -m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:262 +m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:261 T16,452 _m4_require_callm4_pushdef([_m4_divert_grow], m4_decr(_m4_divert_grow))m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_divert_push(_m4_divert_grow, [-])m4_if([$2], [], [$1], [$2]) m4_provide_if([$1], [m4_set_remove([_m4_provide], [$1])], @@ -11480,7 +11480,7 @@ fi T9,23 AC_DEFINE_AC_DEFINE_Q([_$0], $@) T24,33 -m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:886 +m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:859 T23,27 m4_location(AC_LANG_GO)../../lib/autoconf/go.m4:44 T13,160 @@ -11516,7 +11516,7 @@ m4_location(AC_INLINE)../../lib/autoconf/oldnames.m4:61 T7,65 _m4_maxm4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2])) T28,34 -m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1076 +m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1071 F8,8 __file____file__ T18,2 @@ -11534,9 +11534,9 @@ m4_bregexpregexp F7,7 pushdefpushdef T32,35 -m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:587 +m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:582 T36,32 -m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:260 +m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:241 T15,345 _AC_COMPUTE_INT_m4_defun_pro([$0])AC_COMPUTE_INT([$2], [$1], [$3], [$4]) AC_DIAGNOSE([obsolete], @@ -11658,7 +11658,7 @@ AC_SUBST([ERLANG_LIB_VER_$1], [$ac_cv_erlang_lib_ver_$1]) AS_IF([test "$ac_cv_erlang_lib_dir_$1" = "not found"], [$3], [$2]) []_m4_defun_epi([$0]) T32,33 -m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:47 +m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:39 T14,103 _AS_TR_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])AS_REQUIRE([_AS_TR_CPP_PREPARE])[]_m4_defun_epi([$0]) T14,81 @@ -11693,7 +11693,7 @@ extern char *tzname[]; fi []_m4_defun_epi([$0]) T31,28 -m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1438 +m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1425 T24,3 _m4_divert(HELP_VAR_END)105 T10,24 @@ -11701,7 +11701,7 @@ AN_LIBRARYAN_OUTPUT([library], $@) T11,25 AN_FUNCTIONAN_OUTPUT([function], $@) T39,34 -m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1499 +m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1497 T12,47 AS_VAR_ARITHas_fn_arith $2 && AS_VAR_SET([$1], [$as_val])[] T12,197 @@ -11758,7 +11758,7 @@ else fi T24,27 -m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:730 +m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:694 T10,520 _AC_PATH_X_m4_defun_pro([$0])AC_CACHE_VAL(ac_cv_have_x, [# One or both of the vars are not set, and there is no cached value. @@ -11824,13 +11824,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 T25,34 -m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2414 +m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2412 T27,33 m4_location(AC_LONG_DOUBLE)../../lib/autoconf/oldnames.m4:63 T39,28 -m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1876 +m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1846 T23,106 _AH_CHECK_HEADER_DIRENTAH_TEMPLATE(AS_TR_CPP([HAVE_$1]), [Define to 1 if you have the <$1> header file, and it defines `DIR'.]) @@ -11845,11 +11845,11 @@ if test "$ERLC" = "not found"; then fi []_m4_defun_epi([$0]) T33,28 -m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:144 +m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:143 T20,3 _AC_LANG_ABBREV(C++)cxx T26,34 -m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1472 +m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1462 T34,122 _AC_LANG_IO_PROGRAM(Objective C++)AC_LANG_PROGRAM([@%:@include ], [FILE *f = fopen ("conftest.out", "w"); @@ -11878,10 +11878,10 @@ fi []_m4_defun_epi([$0]) T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) -T25,30 -m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:117 +T25,29 +m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:99 T21,34 -m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2424 +m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2422 F11,11 changequotechangequote T16,118 @@ -11893,7 +11893,7 @@ AC_ST_RDEV_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_RDEV' is You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_RDEV], [AC_STRUCT_ST_RDEV($@)])[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:807 +m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:799 T9,26 m4_ifndefm4_ifdef([$1], [$3], [$2]) T18,144 @@ -11920,7 +11920,7 @@ _AC_LANG_IO_PROGRAM(Objective C)AC_LANG_PROGRAM([@%:@include ], T27,36 m4_location(AM_FUNC_STRTOD)../../lib/autoconf/functions.m4:1619 T27,35 -m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:617 +m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:601 T24,495 _AC_CHECK_HEADER_PREPROC_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], @@ -11937,7 +11937,7 @@ AC_FATALm4_fatal($@) T22,33 m4_location(AC_FIND_X)../../lib/autoconf/oldnames.m4:57 T22,34 -m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:328 +m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:321 T7,108 m4_joinm4_if([$#], [1], [], [$#], [2], [[$2]], @@ -12321,7 +12321,7 @@ DUALCASE=1; export DUALCASE # for MKS sh _$0 T30,31 -m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:339 +m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:327 T16,2 _m4_divert(KILL)-1 T18,211 @@ -12333,11 +12333,11 @@ m4_foreachm4_if([$2], [], [], [m4_pushdef([$1])_$0([m4_define([$1],], [)$3], [], $2)m4_popdef([$1])]) T20,34 -m4_location(AC_WITH)../../lib/autoconf/general.m4:1493 +m4_location(AC_WITH)../../lib/autoconf/general.m4:1492 T20,33 m4_location(AC_WARN)../../lib/autoconf/oldnames.m4:33 T28,34 -m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1337 +m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1302 T9,265 _AS_QUOTEm4_cond([m4_index([$1], [\])], [-1], [_AS_QUOTE_MODERN], [m4_eval(m4_index(m4_translit([[$1]], [$], [\]), [\\]) >= 0)], @@ -12450,11 +12450,11 @@ m4_include(m4sugar/version.m4) T28,31 m4_location(AC_TYPE_INT32_T)../../lib/autoconf/types.m4:626 T30,32 -m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1019 +m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1011 T37,32 -m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:168 +m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:167 T32,27 -m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:430 +m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:429 T11,43 AC_OBSOLETEAC_DIAGNOSE([obsolete], [$1 is obsolete$2]) T14,181 @@ -12471,19 +12471,19 @@ if test $ac_cv_type_uid_t = no; then fi []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:571 +m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:497 T23,33 -m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:391 +m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:378 T33,27 -m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:628 +m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:627 T44,27 -m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:993 +m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:992 T28,34 -m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2434 +m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2432 T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 T26,32 -m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:954 +m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:938 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -12499,7 +12499,7 @@ AC_CONFIG_AUX_DIR_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS($1 "$srcdir"/$1)[]_m4_def F10,7 m4_traceontraceon T27,27 -m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:675 +m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:674 T11,1061 _AC_SRCDIRSac_builddir=. @@ -12536,7 +12536,7 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix T26,34 -m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:236 +m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:220 T13,52 m4_cr_LettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ T18,457 @@ -12562,7 +12562,7 @@ _AC_FC_DUMMY_MAIN($@) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T28,31 -m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:904 +m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:888 T24,117 _AC_LANG_OPENMP(Fortran) program main @@ -12573,7 +12573,7 @@ _AC_LANG_OPENMP(Fortran) end T32,30 -m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:266 +m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:265 T9,75 m4_beforem4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) @@ -12834,16 +12834,16 @@ AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS"])])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2598 +m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2590 T43,31 -m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:562 +m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:547 T28,35 -m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:840 +m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:828 T7,93 _AS_BOXm4_if(m4_index(m4_translit([[$1]], [`\"], [$$$]), [$]), [-1], [$0_LITERAL], [$0_INDIR])($@) T35,33 -m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1055 +m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1053 T8,189 _m4_wrapm4_ifdef([$0_text], [m4_define([$0_text], [$1]_m4_defn([$0_text])[$2])], @@ -12924,7 +12924,7 @@ AC_TYPE_MBSTATE_T_m4_defun_pro([$0])AC_CACHE_CHECK([for mbstate_t], ac_cv_type_m [Define to a type if does not define.]) fi[]_m4_defun_epi([$0]) T28,30 -m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:150 +m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:149 T28,4 _AC_LANG_ABBREV(Objective C)objc T14,87 @@ -12932,7 +12932,7 @@ AC_PROG_CC_C89_m4_defun_pro([$0]) AC_REQUIRE([AC_PROG_CC])dnl _AC_PROG_CC_C89 []_m4_defun_epi([$0]) T22,33 -m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1244 +m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1239 T14,1273 _AC_CACHE_DUMP# The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. @@ -13024,13 +13024,13 @@ _ACEOF esac []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:218 +m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:215 T23,33 -m4_location(AC_FOREACH)../../lib/autoconf/general.m4:196 +m4_location(AC_FOREACH)../../lib/autoconf/general.m4:194 T38,31 -m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:447 +m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:414 T50,35 -m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:881 +m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:849 F9,6 m4_definedefine T24,1910 @@ -13724,7 +13724,7 @@ $2]) F7,7 traceontraceon T32,31 -m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:58 +m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:49 T22,496 AC_PRESERVE_HELP_ORDER_m4_defun_pro([$0])m4_divert_once([HELP_ENABLE], [[ Optional Features and Packages: @@ -13830,7 +13830,7 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran 77])dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -13854,9 +13854,9 @@ T10,72 m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], [$0(m4_shift($@)), [$1]]) T29,34 -m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:844 +m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:818 T29,31 -m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:923 +m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:921 T31,53 _AC_FILE_DEPENDENCY_TRACE_COLONAC_FILE_DEPENDENCY_TRACE(m4_translit([$1], [:], [,])) T13,1 @@ -14067,9 +14067,9 @@ AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) T20,68 AC_LANG_PREPROC(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXXCPP])[]_m4_defun_epi([$0]) T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 T27,34 -m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2059 +m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2052 T19,34 AC_LANG_PROGRAM(Go)package main $1 @@ -14146,11 +14146,11 @@ dnl SVR4 -Xc -D__EXTENSIONS__ T11,54 AS_VAR_COPYAS_LITERAL_WORD_IF([$1[]$2], [$1=$$2], [eval $1=\$$2]) T29,31 -m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:464 +m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:452 F3,3 lenlen T29,33 -m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:558 +m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:543 T17,229 m4_cr_not_letters  !"#*%&'()$+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -14200,7 +14200,7 @@ AC_DYNIX_SEQ_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_DYNIX_SEQ' You should run autoupdate.])dnl AC_FUNC_GETMNTENT[]_m4_defun_epi([$0]) T28,34 -m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1287 +m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1240 T6,158 popdefm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_popdef([$1])], @@ -14211,7 +14211,7 @@ m4_location(AC_ALLOCA)../../lib/autoconf/functions.m4:417 T19,34 m4_location(AC_AIX)../../lib/autoconf/specific.m4:436 T42,27 -m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:854 +m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:853 T17,117 m4_include_uniquem4_ifdef([m4_include($1)], [m4_warn([syntax], [file `$1' included several times])])dnl @@ -14308,9 +14308,9 @@ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5, ($[3]), rm -f conftest* []_m4_defun_epi([$0]) T25,32 -m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1041 +m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1026 T29,35 -m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:133 +m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:132 T18,188 AC_ERLANG_NEED_ERL_m4_defun_pro([$0])AC_ERLANG_PATH_ERL([not found], [$1]) if test "$ERL" = "not found"; then diff --git a/externals/autotools/share/autoconf/autom4te.cfg b/externals/autotools/share/autoconf/autom4te.cfg index c418a71b12b..36776e11f51 100644 --- a/externals/autotools/share/autoconf/autom4te.cfg +++ b/externals/autotools/share/autoconf/autom4te.cfg @@ -106,7 +106,7 @@ end-language: "Autoreconf-preselections" # This intermediate language is used by aclocal to build aclocal.m4. begin-language: "Autoconf-without-aclocal-m4" -args: --prepend-include '/Users/fpalacios/SU2_OPEN/trunk/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: --cache=autom4te.cache args: autoconf/autoconf.m4f args: acsite.m4? @@ -133,7 +133,7 @@ end-language: "Autoconf" ## -------- ## begin-language: "Autotest" -args: --prepend-include '/Users/fpalacios/SU2_OPEN/trunk/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: autotest/autotest.m4f args: package.m4? args: local.at? @@ -147,7 +147,7 @@ end-language: "Autotest" ## ---- ## begin-language: "M4sh" -args: --prepend-include '/Users/fpalacios/SU2_OPEN/trunk/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sh.m4f args: --mode 777 args: --language M4sugar @@ -159,7 +159,7 @@ end-language: "M4sh" ## ------- ## begin-language: "M4sugar" -args: --prepend-include '/Users/fpalacios/SU2_OPEN/trunk/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sugar.m4f args: --warnings syntax end-language: "M4sugar" diff --git a/externals/autotools/share/autoconf/autotest/autotest.m4f b/externals/autotools/share/autoconf/autotest/autotest.m4f index a309ef040c0..6dd14a68441 100644 --- a/externals/autotools/share/autoconf/autotest/autotest.m4f +++ b/externals/autotools/share/autoconf/autotest/autotest.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] @@ -45,9 +45,9 @@ m4_divert_push([TEST_SCRIPT])dnl T8,46 AT_SETUPm4_fatal([AT_SETUP: missing AT_INIT detected]) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -71,7 +71,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 T16,3 _m4_divert(HELP)300 T8,150 @@ -129,7 +129,7 @@ T7,84 _m4_for$4[$1]$5[]m4_if([$1], [$2], [], [$0(m4_eval([$1 + $3]), [$2], [$3], [$4], [$5])]) T27,34 -m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1746 +m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1674 T12,78 m4_foreach_wm4_pushdef([$1])m4_map_args_w([$2], [m4_define([$1],], [)$3])m4_popdef([$1]) @@ -144,7 +144,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], T20,3 _m4_divert(HELP_END)305 T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -162,7 +162,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -203,14 +203,14 @@ m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unlet T32,0 m4_include(autotest/specific.m4) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -269,7 +269,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 F6,3 m4_lenlen T14,42 @@ -282,7 +282,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 F12,9 m4_debugmodedebugmode T10,280 @@ -300,7 +300,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T22,38 @@ -343,7 +343,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -401,7 +401,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -433,9 +433,9 @@ m4_case([$1], [m4_append([AT_xfail], [ $1 && at_xfail=yes])]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 T14,142 _AT_CHECK_EXITm4_define([AT_ingroup])AS_ECHO(_AT_LINE_ESCAPED) >"$at_check_line_file" m4_ifval([$1], [($1) \ @@ -459,7 +459,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -467,7 +467,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -479,7 +479,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -490,9 +490,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 F9,6 m4_syscmdsyscmd T28,44 @@ -532,7 +532,7 @@ __unix__ T17,77 AT_ARG_OPTION_ARG_m4_defun_pro([$0])_AT_ARG_OPTION([$1],[$2],1,[$3],[$4])[]_m4_defun_epi([$0]) T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -548,7 +548,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -582,7 +582,7 @@ AT_DIFF_STDERR(ignore-nolog) T27,3 _m4_divert(VERSION_NOTICES)351 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -2226,8 +2226,8 @@ m4_divert([KILL]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -2237,7 +2237,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -2259,7 +2259,7 @@ _m4_divert(HELP_TUNING_BEGIN)302 T22,3 _m4_divert(HELP_MODES)301 T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 T22,3 _m4_divert(HELP_OTHER)304 T9,35 @@ -2277,7 +2277,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -2328,8 +2328,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp T12,93 AT_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text([VERSION_NOTICES], [m4_default([$2], [m4_newline])([$1])]) @@ -2517,7 +2517,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 F12,9 m4_changecomchangecom T20,40 @@ -2659,11 +2659,11 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 T22,30 AT_DIFF_STDERR(ignore)echo stderr:; cat "$at_stderr" T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -2707,7 +2707,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -2758,7 +2758,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -2834,7 +2834,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 T12,10 m4_cr_digits0123456789 T17,17 @@ -2887,7 +2887,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -2909,13 +2909,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -2938,17 +2938,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -2978,11 +2978,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 F8,8 __line____line__ T9,793 @@ -3116,7 +3116,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 F7,4 m4_decrdecr T12,93 @@ -3130,11 +3130,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -3154,11 +3154,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 T7,2 m4_echo$@ T20,1 @@ -3171,11 +3171,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -3274,17 +3274,17 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 T15,131 AT_CAPTURE_FILEm4_ifndef([AT_ingroup], [m4_fatal([AT_CAPTURE_FILE: missing AT_SETUP detected])])m4_append_uniq([AT_capture_files], ["$1"], [ \ ]) T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 F12,8 _m4_undivertundivert T7,54 @@ -3299,8 +3299,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,30 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 +T28,29 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -3494,7 +3494,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 T14,29 AT_COLOR_TESTSm4_define([AT_color], [auto]) T17,64 @@ -3561,7 +3561,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T11,140 @@ -3631,7 +3631,7 @@ AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir T23,3 _m4_divert(TEST_SCRIPT)450 T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -3759,7 +3759,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 T19,3 _m4_divert(VERSION)350 T14,73 @@ -3818,7 +3818,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -3831,7 +3831,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f index 8033a183565..93fbffb4fad 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] @@ -25,9 +25,9 @@ AS_MESSAGE_LOG_FD T8,0 _m4_warn T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -51,7 +51,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -112,7 +112,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], [m4_map_args_sep([m4_builtin([dumpdef],], [)], [], $@)]) T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -130,7 +130,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -169,14 +169,14 @@ _m4_divert(GROW)10000 T18,72 m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unletter([$2])) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -221,7 +221,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 F6,3 m4_lenlen T14,42 @@ -234,7 +234,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 F12,9 m4_debugmodedebugmode T10,280 @@ -252,7 +252,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T8,66 @@ -289,7 +289,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -345,7 +345,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -363,9 +363,9 @@ T12,32 m4_make_listm4_join([, ], m4_dquote_elt($@)) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -385,7 +385,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -393,7 +393,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -405,7 +405,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -416,9 +416,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 F9,6 m4_syscmdsyscmd T11,136 @@ -454,7 +454,7 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -470,7 +470,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -500,7 +500,7 @@ _AS_DETECT_REQUIRED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_REQUIRED_BODY], [$1 T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -671,8 +671,8 @@ _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -682,7 +682,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -700,7 +700,7 @@ m4_ignore T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T7,75 @@ -714,7 +714,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -753,8 +753,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp F11,11 __program____program__ T6,26 @@ -880,7 +880,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 F12,9 m4_changecomchangecom T20,40 @@ -949,9 +949,9 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -980,7 +980,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -1021,7 +1021,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -1093,7 +1093,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 T12,10 m4_cr_digits0123456789 T17,17 @@ -1146,7 +1146,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -1168,13 +1168,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -1197,17 +1197,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -1237,11 +1237,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 F8,8 __line____line__ T13,41 @@ -1342,7 +1342,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 F7,4 m4_decrdecr T12,93 @@ -1354,11 +1354,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -1378,11 +1378,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 T7,2 m4_echo$@ T20,1 @@ -1393,11 +1393,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -1496,13 +1496,13 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 F12,8 _m4_undivertundivert T7,54 @@ -1517,8 +1517,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,30 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 +T28,29 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -1698,7 +1698,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -1761,7 +1761,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T7,13 @@ -1823,7 +1823,7 @@ _AS_DIRNAME_SED([$1])[] T10,124 AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -1944,7 +1944,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -1986,7 +1986,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -1999,7 +1999,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f index 2d81e697bd3..9d649aa1426 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] @@ -305,8 +305,8 @@ m4_cr_LETTERSABCDEFGHIJKLMNOPQRSTUVWXYZ T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T4,37 m4_nm4_if([$1], [], [], @@ -353,8 +353,8 @@ _m4_text_wrapm4_pushdef([m4_Indent], m4_qlen([$2]))m4_pushdef([m4_Cursor], m4_ql m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])m4_map_args_w([$1], [$0_word(], [, [$2], [$4])])_m4_popdef([m4_Separator], [m4_Cursor], [m4_Indent]) F9,6 m4_formatformat -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp F11,11 __program____program__ T7,156 diff --git a/externals/autotools/share/automake-1.12/Automake/Config.pm b/externals/autotools/share/automake-1.12/Automake/Config.pm index e5c3bec09e6..b96d7cd861f 100644 --- a/externals/autotools/share/automake-1.12/Automake/Config.pm +++ b/externals/autotools/share/automake-1.12/Automake/Config.pm @@ -32,7 +32,7 @@ our $PACKAGE = 'automake'; our $PACKAGE_BUGREPORT = 'bug-automake@gnu.org'; our $VERSION = '1.12.5'; our $RELEASE_YEAR = '2012'; -our $libdir = '/Users/fpalacios/SU2_OPEN/trunk/externals/autotools/share/automake-1.12'; +our $libdir = '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/automake-1.12'; our $perl_threads = 1; 1; diff --git a/externals/autotools/share/info/dir b/externals/autotools/share/info/dir index e495396dfa0..73c759cfa09 100644 --- a/externals/autotools/share/info/dir +++ b/externals/autotools/share/info/dir @@ -15,21 +15,25 @@ File: dir, Node: Top This is the top of the INFO tree * Menu: Individual utilities -* aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. +* aclocal-invocation: (automake)aclocal Invocation. + Generating aclocal.m4. * autoconf-invocation: (autoconf)autoconf Invocation. - How to create configuration scripts -* autoheader: (autoconf)autoheader Invocation. - How to create configuration templates -* autom4te: (autoconf)autom4te Invocation. - The Autoconf executables backbone -* automake-invocation: (automake)automake Invocation. Generating Makefile.in. -* autoreconf: (autoconf)autoreconf Invocation. - Remaking multiple `configure' scripts -* autoscan: (autoconf)autoscan Invocation. - Semi-automatic `configure.ac' writing -* autoupdate: (autoconf)autoupdate Invocation. - Automatic update of `configure.ac' -* config.status: (autoconf)config.status Invocation. Recreating configurations. + How to create configuration + scripts +* autoheader: (autoconf)autoheader Invocation. How to create configuration + templates +* autom4te: (autoconf)autom4te Invocation. The Autoconf executables + backbone +* automake-invocation: (automake)automake Invocation. + Generating Makefile.in. +* autoreconf: (autoconf)autoreconf Invocation. Remaking multiple `configure' + scripts +* autoscan: (autoconf)autoscan Invocation. Semi-automatic `configure.ac' + writing +* autoupdate: (autoconf)autoupdate Invocation. Automatic update of + `configure.ac' +* config.status: (autoconf)config.status Invocation. + Recreating configurations. * configure: (autoconf)configure Invocation. Configuring a package. * ifnames: (autoconf)ifnames Invocation. Listing conditionals in source. * libtool-invocation: (libtool)Invoking libtool. diff --git a/externals/autotools/share/man/man1/aclocal-1.12.1 b/externals/autotools/share/man/man1/aclocal-1.12.1 index 0952f8d0a4e..084cedcd4c4 100644 --- a/externals/autotools/share/man/man1/aclocal-1.12.1 +++ b/externals/autotools/share/man/man1/aclocal-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH ACLOCAL "1" "March 2015" "aclocal 1.12.5" "User Commands" +.TH ACLOCAL "1" "September 2015" "aclocal 1.12.5" "User Commands" .SH NAME aclocal \- manual page for aclocal 1.12.5 .SH SYNOPSIS diff --git a/externals/autotools/share/man/man1/automake-1.12.1 b/externals/autotools/share/man/man1/automake-1.12.1 index cc1c83143c9..90709f057bb 100644 --- a/externals/autotools/share/man/man1/automake-1.12.1 +++ b/externals/autotools/share/man/man1/automake-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH AUTOMAKE "1" "March 2015" "automake 1.12.5" "User Commands" +.TH AUTOMAKE "1" "September 2015" "automake 1.12.5" "User Commands" .SH NAME automake \- manual page for automake 1.12.5 .SH SYNOPSIS diff --git a/externals/metis/Makefile.in b/externals/metis/Makefile.in index 9f03a6afcc9..5b2e02d2273 100644 --- a/externals/metis/Makefile.in +++ b/externals/metis/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,51 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -80,8 +52,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/metis -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp README +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -201,23 +173,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -631,7 +586,6 @@ libmetis/libmetis_a-util.$(OBJEXT): libmetis/$(am__dirstamp) \ libmetis/$(DEPDIR)/$(am__dirstamp) libmetis/libmetis_a-wspace.$(OBJEXT): libmetis/$(am__dirstamp) \ libmetis/$(DEPDIR)/$(am__dirstamp) - libmetis.a: $(libmetis_a_OBJECTS) $(libmetis_a_DEPENDENCIES) $(EXTRA_libmetis_a_DEPENDENCIES) $(AM_V_at)-rm -f libmetis.a $(AM_V_AR)$(libmetis_a_AR) libmetis.a $(libmetis_a_OBJECTS) $(libmetis_a_LIBADD) @@ -1577,15 +1531,26 @@ libmetis/libmetis_a-wspace.obj: libmetis/wspace.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmetis_a_CPPFLAGS) $(CPPFLAGS) $(libmetis_a_CFLAGS) $(CFLAGS) -c -o libmetis/libmetis_a-wspace.obj `if test -f 'libmetis/wspace.c'; then $(CYGPATH_W) 'libmetis/wspace.c'; else $(CYGPATH_W) '$(srcdir)/libmetis/wspace.c'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1597,11 +1562,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1610,10 +1579,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1768,8 +1736,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1778,7 +1746,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/externals/parmetis/Makefile.in b/externals/parmetis/Makefile.in index c35230e3df7..1cb9561a5f4 100644 --- a/externals/parmetis/Makefile.in +++ b/externals/parmetis/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,51 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -80,8 +52,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/parmetis -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp README +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -182,23 +154,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -553,7 +508,6 @@ libparmetis/libparmetis_a-wspace.$(OBJEXT): \ libparmetis/libparmetis_a-xyzpart.$(OBJEXT): \ libparmetis/$(am__dirstamp) \ libparmetis/$(DEPDIR)/$(am__dirstamp) - libparmetis.a: $(libparmetis_a_OBJECTS) $(libparmetis_a_DEPENDENCIES) $(EXTRA_libparmetis_a_DEPENDENCIES) $(AM_V_at)-rm -f libparmetis.a $(AM_V_AR)$(libparmetis_a_AR) libparmetis.a $(libparmetis_a_OBJECTS) $(libparmetis_a_LIBADD) @@ -1168,15 +1122,26 @@ libparmetis/libparmetis_a-xyzpart.obj: libparmetis/xyzpart.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparmetis_a_CPPFLAGS) $(CPPFLAGS) $(libparmetis_a_CFLAGS) $(CFLAGS) -c -o libparmetis/libparmetis_a-xyzpart.obj `if test -f 'libparmetis/xyzpart.c'; then $(CYGPATH_W) 'libparmetis/xyzpart.c'; else $(CYGPATH_W) '$(srcdir)/libparmetis/xyzpart.c'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1188,11 +1153,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1201,10 +1170,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1357,8 +1325,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1367,7 +1335,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/externals/tecio/Makefile.in b/externals/tecio/Makefile.in index bc5de8d5e7b..6825c36b6f6 100644 --- a/externals/tecio/Makefile.in +++ b/externals/tecio/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,51 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -80,8 +52,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/tecio -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp README +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -174,23 +146,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -471,7 +426,6 @@ tecsrc/libtecio_a-tassert.$(OBJEXT): tecsrc/$(am__dirstamp) \ tecsrc/$(DEPDIR)/$(am__dirstamp) tecsrc/libtecio_a-tecxxx.$(OBJEXT): tecsrc/$(am__dirstamp) \ tecsrc/$(DEPDIR)/$(am__dirstamp) - libtecio.a: $(libtecio_a_OBJECTS) $(libtecio_a_DEPENDENCIES) $(EXTRA_libtecio_a_DEPENDENCIES) $(AM_V_at)-rm -f libtecio.a $(AM_V_AR)$(libtecio_a_AR) libtecio.a $(libtecio_a_OBJECTS) $(libtecio_a_LIBADD) @@ -771,15 +725,26 @@ tecsrc/libtecio_a-tecxxx.obj: tecsrc/tecxxx.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtecio_a_CPPFLAGS) $(CPPFLAGS) $(libtecio_a_CXXFLAGS) $(CXXFLAGS) -c -o tecsrc/libtecio_a-tecxxx.obj `if test -f 'tecsrc/tecxxx.cpp'; then $(CYGPATH_W) 'tecsrc/tecxxx.cpp'; else $(CYGPATH_W) '$(srcdir)/tecsrc/tecxxx.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -791,11 +756,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -804,10 +773,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -960,8 +928,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -970,7 +938,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am From 5d4840aef9663cec8b5ffc793814891a5fb93bee Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 29 Sep 2015 16:56:57 +0100 Subject: [PATCH 107/269] Merged with Interpolate --- Common/src/dual_grid_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 8411047f715..914b78654a6 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -459,7 +459,7 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v Donor_Points = NULL; Donor_Proc = NULL; Donor_Coeff = NULL; - nDonor_Points = 0; + nDonor_Points = 1; } CVertex::~CVertex() { From 94a832686087fa508ffd7e8cb18d609c94e880a7 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 30 Sep 2015 15:16:14 +0100 Subject: [PATCH 108/269] FEM - cleaning warnings (1) --- SU2_CFD/src/element_linear.cpp | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/SU2_CFD/src/element_linear.cpp b/SU2_CFD/src/element_linear.cpp index 86993af9a6e..7ceb930ea8e 100644 --- a/SU2_CFD/src/element_linear.cpp +++ b/SU2_CFD/src/element_linear.cpp @@ -38,7 +38,6 @@ CTRIA1::CTRIA1(void) : CElement() { CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { - unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; unsigned short nDimSq; @@ -168,7 +167,6 @@ CTRIA1::~CTRIA1(void) { void CTRIA1::ComputeGrad_Linear(void){ - su2double Xi, Eta; su2double Jacobian[2][2], dNiXj[3][2]; su2double detJac, GradNi_Xj; su2double ad[2][2]; @@ -176,9 +174,6 @@ void CTRIA1::ComputeGrad_Linear(void){ for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - Xi = GaussCoord[iGauss][0]; - Eta = GaussCoord[iGauss][1]; - /*--- dN/d xi, dN/d eta ---*/ dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; @@ -235,7 +230,6 @@ void CTRIA1::ComputeGrad_Linear(void){ void CTRIA1::ComputeGrad_NonLinear(void){ - su2double Xi, Eta; su2double Jac_Ref[2][2], Jac_Curr[2][2], dNiXj[3][2]; su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; su2double ad_Ref[2][2], ad_Curr[2][2]; @@ -243,9 +237,6 @@ void CTRIA1::ComputeGrad_NonLinear(void){ for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - Xi = GaussCoord[iGauss][0]; - Eta = GaussCoord[iGauss][1]; - /*--- dN/d xi, dN/d eta ---*/ dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; @@ -321,7 +312,6 @@ CQUAD4::CQUAD4(void) : CElement() { CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { - unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; unsigned short nDimSq; @@ -630,7 +620,6 @@ CQUAD4P1::CQUAD4P1(void) : CQUAD4() { CQUAD4P1::CQUAD4P1(unsigned short val_nDim, CConfig *config) : CQUAD4(val_nDim, config) { - unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; unsigned short nDimSq; @@ -773,7 +762,6 @@ CTETRA1::CTETRA1(void) : CElement() { CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { - unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; unsigned short nDimSq; @@ -902,7 +890,6 @@ CTETRA1::~CTETRA1(void) { void CTETRA1::ComputeGrad_Linear(void){ - su2double Xi, Eta, Zeta; su2double Jacobian[3][3], dNiXj[4][3]; su2double detJac, GradNi_Xj; su2double ad[3][3]; @@ -910,10 +897,6 @@ void CTETRA1::ComputeGrad_Linear(void){ for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - Xi = GaussCoord[iGauss][0]; - Eta = GaussCoord[iGauss][1]; - Zeta = GaussCoord[iGauss][2]; - /*--- dN/d xi, dN/d eta ---*/ dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; dNiXj[0][2] = 0.0; @@ -976,7 +959,6 @@ void CTETRA1::ComputeGrad_Linear(void){ void CTETRA1::ComputeGrad_NonLinear(void){ - su2double Xi, Eta, Zeta; su2double Jac_Ref[3][3], Jac_Curr[3][3], dNiXj[4][3]; su2double detJac_Ref, detJac_Curr, GradNi_Xj_Ref, GradNi_Xj_Curr; su2double ad_Ref[3][3], ad_Curr[3][3]; @@ -984,10 +966,6 @@ void CTETRA1::ComputeGrad_NonLinear(void){ for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ - Xi = GaussCoord[iGauss][0]; - Eta = GaussCoord[iGauss][1]; - Zeta = GaussCoord[iGauss][2]; - /*--- dN/d xi, dN/d eta ---*/ dNiXj[0][0] = 1.0; dNiXj[0][1] = 0.0; dNiXj[0][2] = 0.0; @@ -1074,7 +1052,6 @@ CHEXA8::CHEXA8(void) : CElement() { CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) : CElement(val_nDim, config) { - unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; unsigned short nDimSq; @@ -1468,7 +1445,6 @@ CHEXA8P1::CHEXA8P1(void) : CHEXA8() { CHEXA8P1::CHEXA8P1(unsigned short val_nDim, CConfig *config) : CHEXA8(val_nDim, config) { - unsigned short iGaussPoint=0; unsigned short iNode, iGauss, jNode; unsigned short nDimSq; From f74813fea0740d78df085c9edf87f8bb4a7aaf25 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 1 Oct 2015 19:17:34 +0100 Subject: [PATCH 109/269] FEM: remove warnings --- SU2_CFD/include/transfer_structure.hpp | 38 +-- SU2_CFD/src/definition_structure.cpp | 3 +- SU2_CFD/src/element_structure.cpp | 3 +- SU2_CFD/src/integration_structure.cpp | 6 +- SU2_CFD/src/integration_time.cpp | 8 +- SU2_CFD/src/iteration_structure.cpp | 2 +- SU2_CFD/src/numerics_fem_elasticity.cpp | 4 +- .../src/numerics_fem_linear_elasticity.cpp | 11 +- .../src/numerics_fem_nonlinear_elasticity.cpp | 47 ++-- SU2_CFD/src/solver_direct_elasticity.cpp | 37 +-- SU2_CFD/src/solver_direct_mean.cpp | 103 ++----- SU2_CFD/src/solver_fem_elasticity.cpp | 259 ++++++++---------- SU2_CFD/src/transfer_physics.cpp | 9 +- SU2_CFD/src/transfer_structure.cpp | 150 ++++------ SU2_CFD/src/variable_fem_elasticity.cpp | 2 +- SU2_FSI/src/iteration_structure_fsi.cpp | 98 ++----- SU2_SOL/src/SU2_SOL.cpp | 6 +- configure | 216 +++++++-------- 18 files changed, 351 insertions(+), 651 deletions(-) diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp index 46ec2ab0899..8ead8eef8ae 100644 --- a/SU2_CFD/include/transfer_structure.hpp +++ b/SU2_CFD/include/transfer_structure.hpp @@ -94,9 +94,9 @@ class CTransfer { * \param[in] donor_config - Definition of the problem at the donor mesh. * \param[in] target_config - Definition of the problem at the target mesh. */ - void Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config); + void Scatter_InterfaceData(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); /*! * \brief Interpolate data and broadcast it into all processors, for matching meshes. @@ -111,32 +111,6 @@ class CTransfer { CGeometry *donor_geometry, CGeometry *target_geometry, CConfig *donor_config, CConfig *target_config); - /*! - * \brief Interpolate data, operate over it and broadcast it into all processors, for matching meshes. - * \param[in] donor_solution - Solution from the donor mesh. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] donor_geometry - Geometry of the donor mesh. - * \param[in] target_geometry - Geometry of the target mesh. - * \param[in] donor_config - Definition of the problem at the donor mesh. - * \param[in] target_config - Definition of the problem at the target mesh. - */ - void Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config); - - /*! - * \brief Interpolate data and scatter it into different processors, for nonmatching meshes. - * \param[in] donor_solution - Solution from the donor mesh. - * \param[in] target_solution - Solution from the target mesh. - * \param[in] donor_geometry - Geometry of the donor mesh. - * \param[in] target_geometry - Geometry of the target mesh. - * \param[in] donor_config - Definition of the problem at the donor mesh. - * \param[in] target_config - Definition of the problem at the target mesh. - */ - void Scatter_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config); - /*! * \brief Interpolate data and broadcast it into all processors, for nonmatching meshes. * \param[in] donor_solution - Solution from the donor mesh. @@ -159,9 +133,9 @@ class CTransfer { * \param[in] donor_config - Definition of the problem at the donor mesh. * \param[in] target_config - Definition of the problem at the target mesh. */ - void Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config); + void Allgather_InterfaceData(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config); /*! * \brief A virtual member. diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index a9b6d83c296..939bfcc4d5d 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -1480,7 +1480,7 @@ void Numerics_Preprocessing(CNumerics ****numerics_container, if (fea) { /*--- Definition of the viscous scheme for each equation and mesh level ---*/ - numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CGalerkin_FEA(nDim, nVar_Wave, config); + numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CGalerkin_FEA(nDim, nVar_FEA, config); } @@ -1521,7 +1521,6 @@ void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***i int rank = MASTER_NODE; unsigned short donorZone, targetZone; unsigned short nVar, nVarTransfer; - unsigned int nzn = 2; // Temporary, I'm not sure I need it /*--- Initialize some useful booleans ---*/ bool fluid_donor, structural_donor; diff --git a/SU2_CFD/src/element_structure.cpp b/SU2_CFD/src/element_structure.cpp index 5c6d18e09f6..33b121bfcd8 100644 --- a/SU2_CFD/src/element_structure.cpp +++ b/SU2_CFD/src/element_structure.cpp @@ -99,7 +99,6 @@ CElement::CElement(unsigned short val_nDim, CConfig *config) { } CElement::~CElement(void) { - unsigned short iVar; if (CurrentCoord != NULL) delete [] CurrentCoord; if (RefCoord != NULL) delete [] RefCoord; @@ -189,7 +188,7 @@ void CElement::clearStress(void){ unsigned short iNode, iStress, nStress; if (nDim == 2) nStress = 3; - else if (nDim == 3) nStress = 6; + else nStress = 6; for(iNode = 0; iNode < nNodes; iNode++) { for (iStress = 0; iStress < nStress; iStress++){ diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 8d0b176af8d..1a2a73a6755 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -217,8 +217,8 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); - bool restart = config->GetRestart(); // Restart solution - bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); // Restart iteration + bool restart = config->GetRestart(); // Restart solution + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration /*--- Compute Mass Matrix ---*/ /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ @@ -393,7 +393,6 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co unsigned short iMarker; unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); - unsigned short KindSolver = config->GetKind_Solver(); /*--- Set the Jacobian according to the different time integration methods ---*/ @@ -818,7 +817,6 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * MPI_Comm_size(MPI_COMM_WORLD, &size); #endif - unsigned short iCounter; su2double FEA_check[2] = {0.0, 0.0}; su2double magResidualFSI, logResidualFSI_initial, logResidualFSI; su2double magResidualFSI_criteria, logResidualFSI_criteria; diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index d74c0e1cc6d..4161ba6296c 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -1030,7 +1030,7 @@ void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { - su2double monitor = 0.0; +// su2double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); @@ -1054,9 +1054,9 @@ void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSo solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); - /*--- Compute adimensional parameters and the convergence monitor ---*/ - - monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); +// /*--- Compute adimensional parameters and the convergence monitor ---*/ +// +// monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); /*--- Convergence strategy ---*/ Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 7cc8530f87c..e47f3c1143c 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -912,7 +912,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai su2double Physical_dt, Physical_t; su2double loadIncrement; - unsigned short iMesh, iZone; + unsigned short iZone; unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 53a161e2a53..efd2856f0a9 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -86,7 +86,7 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa CFEM_Elasticity::~CFEM_Elasticity(void) { - unsigned short iVar, jVar; + unsigned short iVar; for (iVar = 0; iVar < nDim; iVar++){ delete [] KAux_ab[iVar]; @@ -128,8 +128,6 @@ void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; - unsigned short iDim; - unsigned short bDim; su2double Weight, Jac_X; diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index 98a92bdcd38..0eda88371e2 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -70,7 +70,7 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Initialize auxiliary matrices ---*/ if (nDim == 2) bDim = 3; - else if (nDim == 3) bDim = 6; + else bDim = 6; for (iVar = 0; iVar < bDim; iVar++){ for (jVar = 0; jVar < nDim; jVar++){ @@ -203,11 +203,8 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ unsigned short iVar, jVar; unsigned short iGauss, nGauss; - unsigned short iNode, jNode, nNode; - unsigned short iDim; - unsigned short bDim; - - su2double Weight, Jac_X; + unsigned short iNode, nNode; + unsigned short iDim, bDim; /*--- Auxiliary vector ---*/ su2double Strain[6], Stress[6]; @@ -215,7 +212,7 @@ void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Initialize auxiliary matrices ---*/ if (nDim == 2) bDim = 3; - else if (nDim == 3) bDim = 6; + else bDim = 6; for (iVar = 0; iVar < bDim; iVar++){ for (jVar = 0; jVar < nDim; jVar++){ diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index d2386e118f7..f96878eaec8 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -67,7 +67,7 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsi CFEM_NonlinearElasticity::~CFEM_NonlinearElasticity(void) { - unsigned short iVar, jVar; + unsigned short iVar; for (iVar = 0; iVar < 3; iVar++){ delete [] F_Mat[iVar]; @@ -109,7 +109,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ su2double Ks_Aux_ab; - su2double Weight, Jac_X, Jac_x; + su2double Weight, Jac_x; su2double AuxMatrixKc[3][6]; su2double AuxMatrixKs[3]; @@ -117,7 +117,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Initialize auxiliary matrices ---*/ if (nDim == 2) bDim = 3; - else if (nDim == 3) bDim = 6; + else bDim = 6; for (iVar = 0; iVar < bDim; iVar++){ for (jVar = 0; jVar < nDim; jVar++){ @@ -147,7 +147,6 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ for (iGauss = 0; iGauss < nGauss; iGauss++){ Weight = element->GetWeight(iGauss); - Jac_X = element->GetJ_X(iGauss); Jac_x = element->GetJ_x(iGauss); /*--- Initialize the deformation gradient for each Gauss Point ---*/ @@ -379,7 +378,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ } - if ((Vol_current != 0.0) && (Vol_reference != 0.0)) { + if ((Vol_current > 0.0) && (Vol_reference > 0.0)) { /*--- It is necessary to divide over the current volume to obtain the averaged gradients ---*/ /*--- TODO: Check this operation and add exit if the volumes are 0. ---*/ @@ -398,6 +397,10 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ // cout << "ELEMENT PRESSURE: " << el_Pressure << endl; } + else { + cout << "Warning: Negative volume computed during FE structural analysis. Exiting..." << endl; + exit(EXIT_FAILURE); + } for (iNode = 0; iNode < nNode; iNode++){ @@ -423,20 +426,10 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; - unsigned short iNode, jNode, nNode; - unsigned short iDim, bDim; + unsigned short iNode, nNode; + unsigned short iDim; - su2double Ks_Aux_ab; - - su2double Weight, Jac_X, Jac_x; - - su2double AuxMatrixKt[3]; - - /*--- Initialize auxiliary matrices ---*/ - - for (iVar = 0; iVar < 3; iVar++){ - AuxMatrixKt[iVar] = 0.0; - } + su2double Weight, Jac_x; element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ element->ComputeGrad_NonLinear(); /*--- Check if we can take this out... so we don't have to do it twice ---*/ @@ -449,7 +442,6 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ for (iGauss = 0; iGauss < nGauss; iGauss++){ Weight = element->GetWeight(iGauss); - Jac_X = element->GetJ_X(iGauss); Jac_x = element->GetJ_x(iGauss); /*--- Initialize the deformation gradient for each Gauss Point ---*/ @@ -535,12 +527,9 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; - unsigned short iNode, jNode, nNode; - unsigned short iDim, bDim; + unsigned short iDim, iNode, nNode; - su2double Ks_Aux_ab; - - su2double Weight, Jac_X, Jac_x; + su2double Weight, Jac_x; element->clearStress(); /*--- TODO: put these two together ---*/ element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ @@ -554,7 +543,6 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ for (iGauss = 0; iGauss < nGauss; iGauss++){ Weight = element->GetWeight(iGauss); - Jac_X = element->GetJ_X(iGauss); Jac_x = element->GetJ_x(iGauss); /*--- Initialize the deformation gradient for each Gauss Point ---*/ @@ -661,8 +649,7 @@ CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { - su2double Mu_p, Lambda_p; - su2double dij; + su2double Mu_p = 0.0, Lambda_p = 0.0; /*--- This can be done in a better way ---*/ if (J_F != 0.0){ @@ -691,8 +678,8 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { unsigned short iVar,jVar; - su2double Mu_J, Lambda_J; - su2double dij; + su2double Mu_J = 0.0, Lambda_J = 0.0; + su2double dij = 0.0; /*--- This can be done in a better way ---*/ if (J_F != 0.0){ @@ -723,7 +710,7 @@ CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { unsigned short iVar; - su2double dij, el_P; + su2double el_P; su2double Ib = 0.0, Jft; /*--- First invariant of b -> Ib = tr(b) ---*/ diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index bc8d8c15366..27d10d9b422 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2028,7 +2028,7 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, // Corresponding node on the structural mesh donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); - // Retrieve the values of pressure, viscosity and density + // Retrieve the values of pressure, viscosity if (incompressible){ Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressureInc(); @@ -2061,7 +2061,7 @@ void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, // Calculate tn in the fluid nodes for the viscous term - if (viscous_flow){ + if ((compressible || incompressible) && viscous_flow){ // Divergence of the velocity div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; @@ -2115,13 +2115,12 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - unsigned short nVertexFEA, nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; - unsigned short markFEA, markFlow, iPoint, iMarkerFSIint; - unsigned short nMarkerFEA, nMarkerFlow, iMarkerFEA, iMarkerFlow; + unsigned short nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; + unsigned short markFlow, iPoint, iMarkerFSIint; + unsigned short nMarkerFlow, iMarkerFlow; unsigned long *nodeVertex, *donorVertex; - su2double *nodePress, *nodeShearStress, **normalsVertex, **normalsVertex_Unit, **tn_f, *tn_e; + su2double **normalsVertex, **normalsVertex_Unit, **tn_f; su2double factorForces; - su2double Viscosity_Ref, Velocity_Ref, Density_Ref, Pressure_Ref; su2double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; @@ -2181,43 +2180,27 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; } - Velocity_Ref = flow_config->GetVelocity_Ref(); - Viscosity_Ref = flow_config->GetViscosity_Ref(); - Density_Ref = flow_solution[MESH_0][FLOW_SOL]->GetDensity_Inf(); - Pressure_Ref = flow_config->GetPressure_Ref(); - factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); /*--- Loop over all the markers on the interface ---*/ for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - nMarkerFEA=fea_geometry[MESH_0]->GetnMarker(); nMarkerFlow=flow_geometry[MESH_0]->GetnMarker(); /*--- Identification of the markers ---*/ - for (iMarkerFEA=0; iMarkerFEA < nMarkerFEA; iMarkerFEA++){ - if ( fea_config->GetMarker_All_FSIinterface(iMarkerFEA) == (iMarkerFSIint+1)){ - markFEA=iMarkerFEA; - } - } - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ markFlow=iMarkerFlow; } } - - nVertexFEA = fea_geometry[MESH_0]->GetnVertex(markFEA); nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); nodeVertex = new unsigned long [nVertexFlow]; donorVertex = new unsigned long [nVertexFlow]; - tn_e = new su2double [nVar*nDim]; - tn_f = new su2double* [nVertexFlow]; for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { tn_f[iVertex] = new su2double[nDim]; @@ -2234,7 +2217,7 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome } su2double **Grad_PrimVar; - su2double Viscosity = 0.0, Density = 0.0; + su2double Viscosity = 0.0; su2double Tau[3][3]; su2double div_vel, Delta; su2double Area; @@ -2275,7 +2258,6 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosityInc(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetDensityInc(); } } @@ -2288,7 +2270,6 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosity(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetDensity(); } } @@ -2300,7 +2281,7 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome // Calculate tn in the fluid nodes for the viscous term - if (viscous_flow){ + if ( (compressible || incompressible) && viscous_flow) { // Divergence of the velocity div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; @@ -2384,7 +2365,7 @@ void CFEASolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *f su2double Delta_t= fea_config->GetDelta_DynTime(); unsigned long iPoint, iDim; unsigned long nPoint, nDim; - su2double *solDisp, *solVel, *solVel_tn, *valPred, *checkPred; + su2double *solDisp, *solVel, *solVel_tn, *valPred; nPoint = fea_geometry[MESH_0]->GetnPoint(); nDim = fea_geometry[MESH_0]->GetnDim(); diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 3158bd5293d..a881469a42b 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -9967,8 +9967,8 @@ void CEulerSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_co void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { - unsigned short iMarker, iDim; - unsigned long iVertex, iPoint; + unsigned short iDim; + unsigned long iVertex; su2double *Coord, VarCoord[3] = {0,0,0}; #ifndef HAVE_MPI @@ -10010,8 +10010,6 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo MPI_Comm_size(MPI_COMM_WORLD, &size); unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; - unsigned long iVertexFlow = 0; - unsigned long nPoint_Total = 0; unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers @@ -10022,7 +10020,8 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; unsigned long Point_Flow, Point_Struct; - unsigned long Processor_Flow, Processor_Struct; + long Point_Flow_Rcv, Processor_Flow_Rcv; + unsigned long Processor_Flow; int Marker_Flow = -1, Marker_Struct = -1; @@ -10177,22 +10176,6 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo /*--- The displacements come from the predicted solution ---*/ Displacement_Struct = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(); -// if (rank == MASTER_NODE){ -// cout << "For point " << Point_Struct << " we have "; -// for (iDim = 0; iDim < nDim; iDim++){ -// Buffer_Send_StructCoord[iVertex*nDim+iDim] = Coord_Struct[iDim] + Displacement_Struct[iDim]; -// cout << "d" << iDim << "= " << Buffer_Send_StructCoord[iVertex*nDim+iDim] << ", "; -// } -// Buffer_Send_DonorIndices[2*iVertex] = Point_Flow; -// cout << "the donor index is " << Buffer_Send_DonorIndices[2*iVertex] ; -// Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Flow; -// cout << " and the donor processor is " << Buffer_Send_DonorIndices[2*iVertex + 1]; -// -// if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()) cout << ", and this processor owns it" << endl; -// else cout << ", and it's a halo node" << endl; -// -// } - for (iDim = 0; iDim < nDim; iDim++){ Buffer_Send_StructCoord[iVertex*nDim+iDim] = Coord_Struct[iDim] + Displacement_Struct[iDim]; } @@ -10214,33 +10197,6 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo SU2_MPI::Gather(Buffer_Send_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, Buffer_Recv_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); -// if (rank == MASTER_NODE){ -// cout << endl << "-----------------------------------------------------------" << endl; -// cout << "For tag " << iMarkerFSI << ":" << endl; -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// cout << "The processor " << iProcessor << " has " << Buffer_Recv_nVertexStruct[iProcessor] << " nodes on the structural side and "; -// cout << Buffer_Recv_nVertexFlow[iProcessor] << " nodes on the fluid side " << endl; -// } -// cout << "The max number of vertices is " << MaxLocalVertexStruct << " on the structural side and "; -// cout << MaxLocalVertexFlow << " on the fluid side." << endl; -// -// cout << "---------------- Check received buffers ---------------------" << endl; -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// long initialIndex, initialIndex2; -// initialIndex = iProcessor*nBuffer_StructCoord; -// initialIndex2 = iProcessor*nBuffer_DonorIndices; -// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexStruct[iProcessor]; iCheck++){ -// cout << "From processor " << iProcessor << " we get coordinates ("; -// for (iDim = 0; iDim < nDim; iDim++) -// cout << Buffer_Recv_StructCoord[initialIndex+iCheck*nDim+iDim] << ","; -// cout << "), the donor index for the flow " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2] ; -// cout << " and the donor processor " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2+1] << endl; -// -// } -// } -// -// } - /*--- Counter to determine where in the array we have to set the information ---*/ long *Counter_Processor_Flow = NULL; long iProcessor_Struct = 0, iIndex_Struct = 0; @@ -10279,8 +10235,8 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo for (iVertex = 0; iVertex < Buffer_Recv_nVertexStruct[iProcessor]; iVertex++) { /*--- The processor and index for the flow are: ---*/ - Processor_Flow = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2+1]; - Point_Flow = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2]; + Processor_Flow_Rcv = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2+1]; + Point_Flow_Rcv = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2]; /*--- Load the buffer at the appropriate position ---*/ /*--- This is determined on the fluid side by: @@ -10297,40 +10253,24 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo */ /*--- We check that we are not setting the value for a halo node ---*/ - if (Point_Flow != -1){ - iProcessor_Flow = Processor_Flow*nBuffer_FlowNewCoord; - iIndex_Flow = Processor_Flow*nBuffer_SetIndex; - iPoint_Flow = Counter_Processor_Flow[Processor_Flow]*nDim; + if (Point_Flow_Rcv != -1){ + iProcessor_Flow = Processor_Flow_Rcv*nBuffer_FlowNewCoord; + iIndex_Flow = Processor_Flow_Rcv*nBuffer_SetIndex; + iPoint_Flow = Counter_Processor_Flow[Processor_Flow_Rcv]*nDim; for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_FlowNewCoord[iProcessor_Flow + iPoint_Flow + iDim] = Buffer_Recv_StructCoord[iProcessor_Struct + iVertex*nDim + iDim]; /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ - Buffer_Send_SetIndex[iIndex_Flow + Counter_Processor_Flow[Processor_Flow]] = Point_Flow; + Buffer_Send_SetIndex[iIndex_Flow + Counter_Processor_Flow[Processor_Flow_Rcv]] = Point_Flow_Rcv; - Counter_Processor_Flow[Processor_Flow]++; + Counter_Processor_Flow[Processor_Flow_Rcv]++; } } } -// cout << "---------------- Check send buffers ---------------------" << endl; -// -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// long initialIndex, initialIndex2; -// initialIndex = iProcessor*nBuffer_FlowNewCoord; -// initialIndex2 = iProcessor*nBuffer_SetIndex; -// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexFlow[iProcessor]; iCheck++){ -// cout << "Processor " << iProcessor << " will receive the node " ; -// cout << Buffer_Send_SetIndex[initialIndex2+iCheck] << " which corresponds to the coordinates "; -// for (iDim = 0; iDim < nDim; iDim++) -// cout << "x" << iDim << "=" << Buffer_Send_FlowNewCoord[initialIndex + iCheck*nDim + iDim] << ", "; -// cout << endl; -// } -// -// } - } /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ @@ -10399,12 +10339,12 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { - unsigned short iMarker, iDim, nDonor; - unsigned long iVertex, iPoint; - su2double *Coord, VarCoord[3]; + unsigned short iMarker, iDim, iDonor, nDonor; + unsigned long iVertex; + su2double VarCoord[3]; unsigned long iPoint_Donor; - su2double *CoordDonor, *DisplacementDonor, *DisplacementDonor_Prev, coeff; + su2double *DisplacementDonor, *DisplacementDonor_Prev, coeff; for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { @@ -10415,14 +10355,11 @@ void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetr for (iDim = 0; iDim < nDim; iDim++) VarCoord[iDim]=0.0; - iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); nDonor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); - for (unsigned short iDonor; iDonor < nDonor; iDonor++){ + + for (iDonor = 0; iDonor < nDonor; iDonor++){ iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetInterpDonorPoint(iDonor); coeff = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(iDonor); -// Coord = flow_geometry[MESH_0]->node[iPoint]->GetCoord(); - -// CoordDonor = fea_geometry[MESH_0]->node[iPoint_Donor]->GetCoord(); /*--- The displacements come from the predicted solution ---*/ DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); @@ -10434,10 +10371,6 @@ void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetr VarCoord[iDim] += (DisplacementDonor[iDim] - DisplacementDonor_Prev[iDim])*coeff; } -//TODO Double check this to make sure the coordinates are updated as they should be - - //VarCoord[iDim] = (CoordDonor[iDim]+DisplacementDonor[iDim])-Coord[iDim]; - flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index c4c64a50233..80149c2dec4 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -76,14 +76,11 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { - unsigned long iPoint, iElem = 0; - unsigned short iVar, jVar, iDim, jDim, NodesElement = 0, nKindElements; + unsigned long iPoint; + unsigned short iVar, jVar, iDim, jDim, nKindElements; - bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation int rank = MASTER_NODE; @@ -280,44 +277,58 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); - /*--- Term ij of the Mass Matrix ---*/ - - MassMatrix_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - MassMatrix_ij[iVar][jVar] = 0.0; - } - } - /*--- Term ij of the Jacobian ---*/ Jacobian_ij = new su2double*[nVar]; for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_ij[iVar][jVar] = 0.0; - } + Jacobian_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_ij[iVar][jVar] = 0.0; + } } - /*--- Term ij of the Jacobian (constitutive contribution) ---*/ + /*--- Term ij of the Mass Matrix (only if dynamic analysis) ---*/ - Jacobian_c_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_c_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_c_ij[iVar][jVar] = 0.0; - } + if (dynamic){ + MassMatrix_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + MassMatrix_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + MassMatrix_ij[iVar][jVar] = 0.0; + } + } + } + else { + MassMatrix_ij = NULL; } - /*--- Term ij of the Jacobian (stress contribution) ---*/ - Jacobian_s_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_s_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_s_ij[iVar][jVar] = 0.0; - } + if (nonlinear_analysis){ + + /*--- Term ij of the Jacobian (constitutive contribution) ---*/ + + Jacobian_c_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_c_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_c_ij[iVar][jVar] = 0.0; + } + } + + /*--- Term ij of the Jacobian (stress contribution) ---*/ + + Jacobian_s_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_s_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_s_ij[iVar][jVar] = 0.0; + } + } + + } + else{ + Jacobian_c_ij = NULL; + Jacobian_s_ij = NULL; } /*--- Term ij of the Jacobian (incompressibility term) ---*/ @@ -358,7 +369,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Res_Time_Cont = NULL; } - /*--- Matrices to impose clamped boundary conditions (TODO: Initialize them conditionally). ---*/ + /*--- Matrices to impose clamped boundary conditions ---*/ mZeros_Aux = new su2double *[nDim]; for(iDim = 0; iDim < nDim; iDim++) @@ -453,9 +464,9 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { } for (iVar = 0; iVar < nVar; iVar++){ - delete [] Jacobian_s_ij[iVar]; delete [] Jacobian_ij[iVar]; - delete [] Jacobian_c_ij[iVar]; + if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij[iVar]; + if (Jacobian_c_ij != NULL) delete [] Jacobian_c_ij[iVar]; if (Jacobian_k_ij != NULL) delete[] Jacobian_k_ij[iVar]; delete [] Point_Max_Coord[iVar]; delete [] mZeros_Aux[iVar]; @@ -465,10 +476,10 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] element_container; delete [] node; - delete [] Jacobian_s_ij; delete [] Jacobian_ij; - delete [] Jacobian_c_ij; - if (Jacobian_k_ij != NULL) delete[] Jacobian_k_ij; + if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij; + if (Jacobian_c_ij != NULL) delete [] Jacobian_c_ij; + if (Jacobian_k_ij != NULL) delete [] Jacobian_k_ij; delete [] Res_Stress_i; delete [] Res_Ext_Surf; if (Res_Time_Cont != NULL) delete[] Res_Time_Cont; @@ -496,7 +507,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { - unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; @@ -604,7 +615,7 @@ void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *confi void CFEM_ElasticitySolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) { - unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; @@ -684,7 +695,7 @@ void CFEM_ElasticitySolver::Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConf /*--- We are communicating the solution predicted, current and old, and the old solution ---*/ /*--- necessary for the Aitken relaxation ---*/ - unsigned short iVar, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned short iVar, iMarker, MarkerS, MarkerR; unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; @@ -781,10 +792,9 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool restart = config->GetRestart(); // Restart analysis - bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); // Initial calculation for restart + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Initial calculation for restart /*--- Set vector entries to zero ---*/ - //TODO: nPoint or nPointDomain for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { LinSysAux.SetBlock_Zero(iPoint); LinSysRes.SetBlock_Zero(iPoint); @@ -875,21 +885,15 @@ void CFEM_ElasticitySolver::ResetInitialCondition(CGeometry **geometry, CSolver void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { - unsigned long iPoint, iElem, iVar, jVar; - unsigned short iNode, iGauss, iDim; - unsigned short nNodes, nGauss; + unsigned long iElem, iVar, jVar; + unsigned short iNode, iDim, nNodes; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord, val_Sol; + su2double val_Coord; int EL_KIND; - su2double Ks_ab; su2double *Kab = NULL; - su2double *Kk_ab = NULL; - su2double *Ta = NULL; unsigned short NelNodes, jNode; - su2double checkJacobian, *checkCoord; - /*--- Loops over all the elements ---*/ for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { @@ -910,7 +914,6 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); } } @@ -944,9 +947,8 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { - unsigned long iPoint, iElem, iVar, jVar; - unsigned short iNode, iGauss, iDim; - unsigned short nNodes, nGauss; + unsigned long iElem, iVar, jVar; + unsigned short iNode, iDim, nNodes; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; su2double val_Coord, val_Sol; int EL_KIND; @@ -958,7 +960,6 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet unsigned short NelNodes, jNode; bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); /*--- Loops over all the elements ---*/ @@ -1028,11 +1029,10 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { - unsigned long iPoint, iElem, iVar, jVar; - unsigned short iNode, iGauss, iDim; - unsigned short nNodes, nGauss; + unsigned long iElem, iVar; + unsigned short iNode, iDim, nNodes; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord, val_Sol; + su2double val_Coord; int EL_KIND; su2double Mab; @@ -1087,20 +1087,14 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { - unsigned long iPoint, iElem, iVar, jVar; - unsigned short iNode, iGauss, iDim; - unsigned short nNodes, nGauss; + unsigned long iElem, iVar; + unsigned short iNode, iDim, nNodes; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; su2double val_Coord, val_Sol; int EL_KIND; - su2double Ks_ab; - su2double *Kab = NULL; - su2double *Kk_ab = NULL; su2double *Ta = NULL; - unsigned short NelNodes, jNode; - - bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + unsigned short NelNodes; /*--- Loops over all the elements ---*/ @@ -1150,7 +1144,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { - unsigned long iPoint, iElem, iVar, jVar; + unsigned long iPoint, iElem, iVar; unsigned short iNode, iDim, iStress; unsigned short nNodes, nStress; unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; @@ -1160,7 +1154,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); if (nDim == 2) nStress = 3; - else if (nDim == 3) nStress = 6; + else nStress = 6; su2double *Ta = NULL; @@ -1233,7 +1227,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ - if (geometry->GetnDim() == 2) { + if (nDim == 2) { Sxx=Stress[0]; Syy=Stress[1]; @@ -1245,7 +1239,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); } - else if (geometry->GetnDim() == 3) { + else { Sxx = Stress[0]; Syy = Stress[1]; @@ -1269,10 +1263,10 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); + // TODO: we need communication here + } - su2double checkJacobian; - unsigned long jNode; bool outputReactions = false; @@ -1456,13 +1450,8 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con unsigned long iPoint, iVertex; unsigned short iVar, jVar; - su2double tempCoord; - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - unsigned short iNode, jNode; - - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { /*--- Get node index ---*/ @@ -1572,7 +1561,7 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver bool first_iter = (config->GetIntIter() == 0); bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - su2double solNorm = 0.0, tempCheck[3]; + su2double solNorm = 0.0; if (nonlinear_analysis){ @@ -1656,7 +1645,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co su2double a[3], b[3], AC[3], BD[3]; unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0, Normal_Elem[3] = {0.0, 0.0, 0.0}; + su2double Length_Elem = 0.0, Area_Elem = 0.0; unsigned short iDim; su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); @@ -1686,7 +1675,7 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co } /*--- Compute the norm of the vector that was passed in the config file ---*/ - su2double Norm; + su2double Norm = 1.0; if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); @@ -1710,8 +1699,8 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); +// Normal_Elem[0] = a[1]; +// Normal_Elem[1] = -(a[0]); } @@ -1816,7 +1805,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool fsi = config->GetFSI_Simulation(); // FSI simulation. bool restart = config->GetRestart(); // Restart solution - bool initial_calc_restart = (config->GetExtIter() == config->GetDyn_RestartIter()); // Restart iteration + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration bool incremental_load = config->GetIncrementalLoad(); @@ -1931,14 +1920,12 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { unsigned short iVar; - unsigned long iPoint, total_index; + unsigned long iPoint; bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - unsigned short iNode, jNode, jVar; - /*--- Update solution ---*/ for (iPoint = 0; iPoint < nPointDomain; iPoint++) { @@ -2004,13 +1991,12 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ - - unsigned long IterLinSol, iPoint, jPoint, total_index; + unsigned long IterLinSol = 0, iPoint, total_index; unsigned short iVar; /*--- Initialize residual and solution at the ghost points ---*/ - for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { + for (iPoint = nPointDomain; iPoint < nPoint; iPoint++) { for (iVar = 0; iVar < nVar; iVar++) { total_index = iPoint*nVar + iVar; @@ -2023,6 +2009,10 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + /*--- The the number of iterations of the linear solver ---*/ + + SetIterLinSolver(IterLinSol); + } @@ -2035,9 +2025,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers int Marker_Flow = -1, Marker_Struct = -1; - unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - unsigned long jVertex; // Variables for iteration over vertices and nodes unsigned short iDim, jDim; @@ -2100,18 +2088,20 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe // div_vel: Velocity divergence // Dij: Dirac delta su2double Pn = 0.0, Pinf = 0.0, div_vel = 0.0, Dij = 0.0; - su2double Viscosity = 0.0, Density = 0.0; + su2double Viscosity = 0.0; su2double **Grad_PrimVar; su2double Tau[3][3]; unsigned long Point_Flow, Point_Struct; - su2double *Normal_Flow, *Normal_Struct; + su2double *Normal_Flow; su2double *tn_f; tn_f = new su2double [nVar]; // Fluid traction #ifndef HAVE_MPI + unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side + /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ /*--- This may be improved ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++){ @@ -2164,8 +2154,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); - } } else if (compressible){ @@ -2177,8 +2165,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); - } } @@ -2234,15 +2220,13 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe MPI_Comm_size(MPI_COMM_WORLD, &size); unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; - unsigned long iVertexFlow = 0; - unsigned long nPoint_Total = 0; unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; unsigned long nBuffer_FlowTraction = 0, nBuffer_StructTraction = 0; unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; - unsigned long Processor_Flow, Processor_Struct; + unsigned long Processor_Struct; int iProcessor, nProcessor = 0; @@ -2407,8 +2391,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensityInc(); - } } else if (compressible){ @@ -2421,8 +2403,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); - Density = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetDensity(); - } } @@ -2433,7 +2413,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe // Calculate tn in the fluid nodes for the viscous term - if (viscous_flow){ + if ((incompressible || compressible) && viscous_flow){ // Divergence of the velocity div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; @@ -2507,6 +2487,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe long *Counter_Processor_Struct = NULL; long iProcessor_Flow = 0, iIndex_Flow = 0; long iProcessor_Struct = 0, iPoint_Struct = 0, iIndex_Struct = 0; + long Point_Struct_Send, Processor_Struct_Send; /*--- Now we pack the information to send it over to the different processors ---*/ @@ -2541,8 +2522,8 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe for (iVertex = 0; iVertex < Buffer_Recv_nVertexFlow[iProcessor]; iVertex++) { /*--- The processor and index for the flow are: ---*/ - Processor_Struct = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2+1]; - Point_Struct = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2]; + Processor_Struct_Send = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2+1]; + Point_Struct_Send = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2]; /*--- Load the buffer at the appropriate position ---*/ /*--- This is determined on the fluid side by: @@ -2559,18 +2540,18 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe */ /*--- We check that we are not setting the value for a halo node ---*/ - if (Point_Struct != -1){ - iProcessor_Struct = Processor_Struct*nBuffer_StructTraction; - iIndex_Struct = Processor_Struct*nBuffer_SetIndex; - iPoint_Struct = Counter_Processor_Struct[Processor_Struct]*nDim; + if (Point_Struct_Send != -1){ + iProcessor_Struct = Processor_Struct_Send*nBuffer_StructTraction; + iIndex_Struct = Processor_Struct_Send*nBuffer_SetIndex; + iPoint_Struct = Counter_Processor_Struct[Processor_Struct_Send]*nDim; for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_StructTraction[iProcessor_Struct + iPoint_Struct + iDim] = Buffer_Recv_FlowTraction[iProcessor_Flow + iVertex*nDim + iDim]; /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ - Buffer_Send_SetIndex[iIndex_Struct + Counter_Processor_Struct[Processor_Struct]] = Point_Struct; + Buffer_Send_SetIndex[iIndex_Struct + Counter_Processor_Struct[Processor_Struct_Send]] = Point_Struct_Send; - Counter_Processor_Struct[Processor_Struct]++; + Counter_Processor_Struct[Processor_Struct_Send]++; } } @@ -2600,6 +2581,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); long indexPoint_iVertex, Point_Struct_Check; + long Point_Struct_Recv; /*--- For the flow marker we are studying ---*/ if (Marker_Struct >= 0){ @@ -2609,11 +2591,11 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ - Point_Struct = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); + Point_Struct_Recv = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); - if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()){ + if (fea_geometry[MESH_0]->node[Point_Struct_Recv]->GetDomain()){ /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ - indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexStruct, Point_Struct)); + indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexStruct, Point_Struct_Recv)); Point_Struct_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; @@ -2626,7 +2608,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe Residual[iDim] = Buffer_Recv_StructTraction[indexPoint_iVertex*nDim+iDim]; /*--- Add to the Flow traction ---*/ - node[Point_Struct]->Add_FlowTraction(Residual); + node[Point_Struct_Recv]->Add_FlowTraction(Residual); } @@ -2668,12 +2650,7 @@ void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, unsigned short predOrder = fea_config->GetPredictorOrder(); su2double Delta_t = fea_config->GetDelta_DynTime(); unsigned long iPoint, iDim; - unsigned long nPoint, nDim; su2double *solDisp, *solVel, *solVel_tn, *valPred; - su2double *DisplacementDonor, *SolutionDonor; - - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); //To nPointDomain: we need to communicate the predicted solution after setting it for (iPoint=0; iPoint < nPointDomain; iPoint++){ @@ -2684,7 +2661,7 @@ void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - for (iDim=0; iDimnode[iPoint]->GetSolution_Vel_time_n(); valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - for (iDim=0; iDimGetStatic_Time(); su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - - WAitken=fea_config->GetAitkenStatRelax(); - - ofstream historyFile_FSI; + ofstream historyFile_FSI; bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); if (writeHistFSI){ char cstrFSI[200]; @@ -2830,16 +2797,12 @@ void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution){ unsigned long iPoint, iDim; - unsigned long nPoint, nDim; unsigned short RelaxMethod_FSI; su2double *dispPred, *dispCalc; su2double WAitken; su2double CurrentTime=fea_config->GetCurrent_DynTime(); su2double Static_Time=fea_config->GetStatic_Time(); - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); /*--- Only when there is movement it makes sense to update the solutions... ---*/ @@ -2887,15 +2850,11 @@ void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution){ - unsigned long iPoint, iDim; - unsigned long nPoint, nDim; - su2double *valSolutionPred, *valSolution; + unsigned long iPoint; + su2double *valSolutionPred; /*--- TODO: I don't think I'm using this routine right now, but I may need to use it after SetAitken_Relaxation... ---*/ - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - //TODO: nPoint or nPointDomain for (iPoint=0; iPoint < nPointDomain; iPoint++){ valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 8becda5a231..71da65278e8 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -59,7 +59,6 @@ void CTransfer_FlowTraction::GetPhysical_Constants(CSolver *flow_solution, CSolv su2double *Velocity_ND, *Velocity_Real; su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; - su2double factorForces; Velocity_Real = flow_config->GetVelocity_FreeStream(); Density_Real = flow_config->GetDensity_FreeStream(); @@ -118,7 +117,7 @@ void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry // div_vel: Velocity divergence // Dij: Dirac delta su2double Pn = 0.0, div_vel = 0.0, Dij = 0.0; - su2double Viscosity = 0.0, Density = 0.0; + su2double Viscosity = 0.0; su2double **Grad_PrimVar; su2double Tau[3][3] = { {0.0, 0.0, 0.0} , {0.0, 0.0, 0.0} , @@ -130,7 +129,7 @@ void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry // Get the normal at the vertex: this normal goes inside the fluid domain. Normal_Flow = flow_geometry->vertex[Marker_Flow][Vertex_Flow]->GetNormal(); - // Retrieve the values of pressure, viscosity and density + // Retrieve the values of pressure and viscosity if (incompressible){ Pn = flow_solution->node[Point_Flow]->GetPressureInc(); @@ -139,7 +138,6 @@ void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosityInc(); - Density = flow_solution->node[Point_Flow]->GetDensityInc(); } } @@ -151,7 +149,6 @@ void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry Grad_PrimVar = flow_solution->node[Point_Flow]->GetGradient_Primitive(); Viscosity = flow_solution->node[Point_Flow]->GetLaminarViscosity(); - Density = flow_solution->node[Point_Flow]->GetDensity(); } } @@ -163,7 +160,7 @@ void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry // Calculate tn in the fluid nodes for the viscous term - if (viscous_flow){ + if ((incompressible || compressible) && viscous_flow){ // Divergence of the velocity div_vel = 0.0; for (iVar = 0; iVar < nVar; iVar++) div_vel += Grad_PrimVar[iVar+1][iVar]; diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index f2c4b9400d7..9928f2b7db5 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -70,26 +70,22 @@ CTransfer::~CTransfer(void) { } -void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ +void CTransfer::Scatter_InterfaceData(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers int Marker_Donor = -1, Marker_Target = -1; - unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side - unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + unsigned long iVertex; // Variables for iteration over vertices and nodes - unsigned short iVar, jDim; + unsigned short iVar; GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); - unsigned long Check_Point_Global; unsigned long Point_Donor, Point_Target; - su2double *Normal_Donor, *Normal_Target; int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -100,18 +96,14 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver #endif unsigned long nLocalVertexDonor = 0, nLocalVertexTarget= 0; - unsigned long iVertexDonor = 0, iVertexTarget; - unsigned long nPoint_Total = 0; - unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; - unsigned long Processor_Donor, Processor_Target; + unsigned long Processor_Target; int iProcessor, nProcessor = 0; - unsigned long iVariable; /*--- Number of markers on the FSI interface ---*/ @@ -288,9 +280,9 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif @@ -298,6 +290,7 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver long *Counter_Processor_Target = NULL; long iProcessor_Donor = 0, iIndex_Donor = 0; long iProcessor_Target = 0, iPoint_Target = 0, iIndex_Target = 0; + long Point_Target_Send = 0, Processor_Target_Send = 0; /*--- Now we pack the information to send it over to the different processors ---*/ @@ -332,8 +325,8 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver for (iVertex = 0; iVertex < Buffer_Recv_nVertexDonor[iProcessor]; iVertex++) { /*--- The processor and index for the flow are: ---*/ - Processor_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; - Point_Target = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; + Processor_Target_Send = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; + Point_Target_Send = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; /*--- Load the buffer at the appropriate position ---*/ /*--- This is determined on the fluid side by: @@ -350,18 +343,18 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver */ /*--- We check that we are not setting the value for a halo node ---*/ - if (Point_Target != -1){ - iProcessor_Target = Processor_Target*nBuffer_TargetVariables; - iIndex_Target = Processor_Target*nBuffer_TargetIndices; - iPoint_Target = Counter_Processor_Target[Processor_Target]*nVar; + if (Point_Target_Send != -1){ + iProcessor_Target = Processor_Target_Send*nBuffer_TargetVariables; + iIndex_Target = Processor_Target_Send*nBuffer_TargetIndices; + iPoint_Target = Counter_Processor_Target[Processor_Target_Send]*nVar; for (iVar = 0; iVar < nVar; iVar++) Buffer_Send_TargetVariables[iProcessor_Target + iPoint_Target + iVar] = Buffer_Recv_DonorVariables[iProcessor_Donor + iVertex*nVar + iVar]; /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ - Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target]] = Point_Target; + Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target_Send]] = Point_Target_Send; - Counter_Processor_Target[Processor_Target]++; + Counter_Processor_Target[Processor_Target_Send]++; } } @@ -375,9 +368,9 @@ void CTransfer::Scatter_InterfaceData_Matching(CSolver *donor_solution, CSolver SU2_MPI::Scatter(Buffer_Send_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, Buffer_Recv_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); SU2_MPI::Scatter(Buffer_Send_TargetIndices, nBuffer_TargetIndices, MPI_LONG, Buffer_Recv_TargetIndices, nBuffer_TargetIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - for (iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) Buffer_Recv_TargetVariables[iVariable] = Buffer_Send_TargetVariables[iVariable]; - for (iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) Buffer_Recv_TargetIndices[iVariable] = Buffer_Send_TargetIndices[iVariable]; #endif @@ -443,18 +436,15 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers int Marker_Donor = -1, Marker_Target = -1; - unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side - unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + unsigned long iVertex; // Variables for iteration over vertices and nodes - unsigned short iVar, jDim; + unsigned short iVar; GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); unsigned long Point_Donor_Global, Donor_Global_Index; unsigned long Point_Donor, Point_Target; - su2double *Normal_Donor, *Normal_Target; int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -466,21 +456,16 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve unsigned long iLocalVertex = 0; unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; - unsigned long iVertexDonor = 0, iVertexTarget = 0; - unsigned long nPoint_Total = 0; - unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; + unsigned long MaxLocalVertexDonor = 0; unsigned long TotalVertexDonor = 0; - unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; - unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + unsigned long nBuffer_DonorVariables = 0; + unsigned long nBuffer_DonorIndices = 0; unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; - unsigned long Processor_Donor, Processor_Target; - - int iProcessor, nProcessor = 0; - unsigned long iVariable; + int nProcessor = 0; /*--- Number of markers on the FSI interface ---*/ @@ -500,8 +485,6 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; - unsigned long Buffer_Send_nVertexDonorOwned[1], *Buffer_Recv_nVertexDonorOwned = NULL; - unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; /*--- The donor and target markers are tagged with the same index. *--- This is independent of the MPI domain decomposition. @@ -639,9 +622,9 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif @@ -726,8 +709,6 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve if (rank == MASTER_NODE) { delete [] Buffer_Recv_nVertexDonor; - delete [] Buffer_Recv_nVertexTarget; - delete [] Buffer_Recv_nVertexDonorOwned; delete [] Buffer_Recv_DonorVariables; delete [] Buffer_Recv_DonorIndices; } @@ -737,20 +718,6 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve } - -void CTransfer::Allgather_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ - - -} - -void CTransfer::Scatter_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ - -} - void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, CGeometry *donor_geometry, CGeometry *target_geometry, CConfig *donor_config, CConfig *target_config){ @@ -760,18 +727,15 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers int Marker_Donor = -1, Marker_Target = -1; - unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side - unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes + unsigned long iVertex; // Variables for iteration over vertices and nodes - unsigned short iVar, jDim; + unsigned short iVar; GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); unsigned long Point_Donor_Global, Donor_Global_Index; unsigned long Point_Donor, Point_Target; - su2double *Normal_Donor, *Normal_Target; int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -783,21 +747,15 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo unsigned long iLocalVertex = 0; unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; - unsigned long iVertexDonor = 0, iVertexTarget = 0; - unsigned long nPoint_Total = 0; - unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; - unsigned long TotalVertexDonor = 0; + unsigned long MaxLocalVertexDonor = 0, TotalVertexDonor = 0; - unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; - unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + unsigned long nBuffer_DonorVariables = 0; + unsigned long nBuffer_DonorIndices = 0; unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; - unsigned long Processor_Donor, Processor_Target; - - int iProcessor, nProcessor = 0; - unsigned long iVariable; + int nProcessor = 0; /*--- Number of markers on the FSI interface ---*/ @@ -817,8 +775,6 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; - unsigned long Buffer_Send_nVertexDonorOwned[1], *Buffer_Recv_nVertexDonorOwned = NULL; - unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; /*--- The donor and target markers are tagged with the same index. *--- This is independent of the MPI domain decomposition. @@ -956,9 +912,9 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif @@ -1057,8 +1013,6 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo if (rank == MASTER_NODE) { delete [] Buffer_Recv_nVertexDonor; - delete [] Buffer_Recv_nVertexTarget; - delete [] Buffer_Recv_nVertexDonorOwned; delete [] Buffer_Recv_DonorVariables; delete [] Buffer_Recv_DonorIndices; } @@ -1068,27 +1022,23 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo } -void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ +void CTransfer::Allgather_InterfaceData(CSolver *donor_solution, CSolver *target_solution, + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers int Marker_Donor = -1, Marker_Target = -1; - unsigned long nVertexDonor, nVertexTarget; // Number of vertices on Donor and Target side - unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - unsigned long jVertex, jPoint; // Variables for iteration over vertices and nodes - - unsigned short iVar, jDim; + unsigned long iVertex; // Variables for iteration over vertices and nodes + unsigned short iVar; GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, donor_config, target_config); unsigned long Point_Donor_Global, Donor_Global_Index; unsigned long Point_Donor, Point_Target; - su2double *Normal_Donor, *Normal_Target; int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -1100,21 +1050,13 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo unsigned long iLocalVertex = 0; unsigned long nLocalVertexDonor = 0; - unsigned long iVertexDonor = 0, iVertexTarget = 0; - unsigned long nPoint_Total = 0; - unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; - unsigned long TotalVertexDonor = 0; + unsigned long MaxLocalVertexDonor = 0; - unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; - unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + unsigned long nBuffer_DonorVariables = 0; + unsigned long nBuffer_DonorIndices = 0; - unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; - - unsigned long Processor_Donor, Processor_Target; - - int iProcessor, nProcessor = 0; - unsigned long iVariable; + int nProcessor = 0; /*--- Number of markers on the FSI interface ---*/ @@ -1256,9 +1198,9 @@ void CTransfer::Allgather_InterfaceData_Interpolate(CSolver *donor_solution, CSo SU2_MPI::Allgather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MPI_COMM_WORLD); SU2_MPI::Allgather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MPI_COMM_WORLD); #else - for (iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 9a0afc680cc..be28dae27b2 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -59,7 +59,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(void) : CVariable() { CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) : CVariable(val_nDim, val_nvar, config) { - unsigned short iVar, iDim, jDim; + unsigned short iVar; bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool body_forces = false; // Bool for adding body forces in the future. bool incremental_load = config->GetIncrementalLoad(); diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index a0eb0c5502c..6b62e67ca79 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -36,8 +36,6 @@ void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, C CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt) { - su2double Physical_dt, Physical_t; - unsigned short iMesh; unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); unsigned long iFSIIter = 0; @@ -167,7 +165,7 @@ void Flow_Subiteration(COutput *output, CIntegration ***integration_container, C unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - unsigned short iMesh, iZone; + unsigned short iZone; /*--- Only one zone allowed for the fluid as for now ---*/ unsigned short nFluidZone = 1; @@ -396,8 +394,6 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr nTotalZone = nFluidZone + nStrucZone; bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems - bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - /*----------------- Compute averaged nodal stress ------------------------*/ @@ -426,9 +422,8 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - su2double Physical_dt, Physical_t; - unsigned short iMesh, iZone; - unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + + unsigned short iZone; unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); @@ -482,25 +477,21 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG unsigned int ZONE_STRUC = nFluidZone; - su2double Physical_dt, Physical_t; su2double loadIncrement; - unsigned short iMesh, iZone; - unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned short iZone; unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); unsigned long iIncrement; unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); - bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems bool initial_calc = config_container[ZONE_STRUC]->GetExtIter() == 0; // Checks if it is the first calculation. bool first_iter = config_container[ZONE_STRUC]->GetIntIter() == 0; // Checks if it is the first iteration bool restart = config_container[ZONE_STRUC]->GetRestart(); // Restart analysis - bool initial_calc_restart = (config_container[ZONE_STRUC]->GetExtIter() == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart - + bool initial_calc_restart = (SU2_TYPE::Int(config_container[ZONE_STRUC]->GetExtIter()) == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart su2double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); su2double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); @@ -795,31 +786,25 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C break; case SCATTER_DATA: if (MatchingMesh){ - transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); + transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); /*--- Set the volume deformation for the fluid zone ---*/ grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); } else { - transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); } break; case ALLGATHER_DATA: if (MatchingMesh){ - transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); } else { - transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], config_container[ZONE_1], config_container[ZONE_0]); /*--- Set the volume deformation for the fluid zone ---*/ grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); @@ -840,26 +825,6 @@ void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, C } -// /*--- Displacement transfer -- This will have to be modified for non-matching meshes ---*/ -// -// if (MatchingMesh){ -// solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], -// config_container[ZONE_0], config_container[ZONE_1], -// geometry_container[ZONE_1], solver_container[ZONE_1]); -// } -// else{ -// -// /*--- Transfer the information scattered (this is, each processor only receives the information it needs ---*/ -// transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], -// geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], -// config_container[ZONE_1], config_container[ZONE_0]); -// -// /*--- Set the volume deformation for the fluid zone ---*/ -// grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); -// -// } - - } @@ -900,24 +865,22 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C break; case SCATTER_DATA: if (MatchingMesh){ - transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); + transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); } else { - transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); + cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); } break; case ALLGATHER_DATA: if (MatchingMesh){ - transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); + cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); } else { - transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], config_container[ZONE_0], config_container[ZONE_1]); } @@ -934,23 +897,6 @@ void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, C break; } -// if (MatchingMesh){ -// -// solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], -// config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); -// -// } -// else{ -//// solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], -//// config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); -// -// transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], -// geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], -// config_container[ZONE_0], config_container[ZONE_1]); -// -// } - - } diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 2ecf8c3d261..bc479a1601d 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -221,7 +221,7 @@ int main(int argc, char *argv[]) { /*--- For the fluid zone (ZONE_0) ---*/ /*--- Either instantiate the solution class or load a restart file. ---*/ if (SolutionInstantiatedFlow == false && (iExtIter == 0 || - ((config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetUnst_RestartIter())) || + ((config_container[ZONE_0]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_0]->GetUnst_RestartIter())) || iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { solver_container[ZONE_0] = new CBaselineSolver(geometry_container[ZONE_0], config_container[ZONE_0], MESH_0); @@ -236,7 +236,7 @@ int main(int argc, char *argv[]) { /*--- Either instantiate the solution class or load a restart file. ---*/ /*--- Either instantiate the solution class or load a restart file. ---*/ if (SolutionInstantiatedFEM == false && (iExtIter == 0 || - ((config_container[ZONE_1]->GetRestart() && (iExtIter == config_container[ZONE_1]->GetDyn_RestartIter())) || + ((config_container[ZONE_1]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_1]->GetDyn_RestartIter())) || iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0 || iExtIter+1 == config_container[ZONE_1]->GetnExtIter()))) { solver_container[ZONE_1] = new CBaselineSolver(geometry_container[ZONE_1], config_container[ZONE_1], MESH_0); @@ -382,7 +382,7 @@ int main(int argc, char *argv[]) { /*--- Either instantiate the solution class or load a restart file. ---*/ if (SolutionInstantiated == false && (iExtIter == 0 || - ((config_container[ZONE_0]->GetRestart() && (iExtIter == config_container[ZONE_0]->GetDyn_RestartIter())) || + ((config_container[ZONE_0]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_0]->GetDyn_RestartIter())) || iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); diff --git a/configure b/configure index d1fa08e304a..e3e19330a4a 100755 --- a/configure +++ b/configure @@ -1,11 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for SU2 4.0.1. +# Generated by GNU Autoconf 2.68 for SU2 4.0.1. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,31 +136,6 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -192,8 +169,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" +test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -238,25 +214,21 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -359,14 +331,6 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -488,10 +452,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -526,16 +486,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -547,8 +507,28 @@ else as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -1304,6 +1284,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1607,9 +1589,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF SU2 configure 4.0.1 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.68 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1755,8 +1737,7 @@ int main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1772,8 +1753,7 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1799,8 +1779,7 @@ int main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1816,8 +1795,7 @@ int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -1851,8 +1829,7 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2084,7 +2061,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by SU2 $as_me 4.0.1, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2611,7 +2588,7 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2795,7 +2772,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2835,7 +2812,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2886,7 +2863,7 @@ do test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -2933,7 +2910,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3240,7 +3217,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3284,7 +3261,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3892,7 +3869,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3936,7 +3913,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4130,7 +4107,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -struct stat; +#include +#include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4488,7 +4466,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4528,7 +4506,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4592,7 +4570,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4636,7 +4614,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5110,7 +5088,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -5176,7 +5154,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -7655,16 +7633,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -7724,16 +7702,28 @@ else as_mkdir_p=false fi - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -7755,7 +7745,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by SU2 $as_me 4.0.1, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -7813,10 +7803,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ SU2 config.status 4.0.1 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -7896,7 +7886,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' From f3d5675a01acb8e6eb9b96076d9a174d9276603d Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 5 Oct 2015 18:42:32 +0100 Subject: [PATCH 110/269] FEM: fixed bug in parallel implementation. --- SU2_CFD/src/integration_structure.cpp | 4 +- SU2_CFD/src/solver_fem_elasticity.cpp | 140 ++++++++++++++------------ 2 files changed, 77 insertions(+), 67 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 1a2a73a6755..6c1a3de7c25 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -716,8 +716,8 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, unsigned long iPoint; - /*--- Update the solution only at the local points ---*/ - for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { + /*--- Update the solution at both the local points and the halo points ---*/ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { solver->node[iPoint]->SetSolution_time_n(); solver->node[iPoint]->SetSolution_Vel_time_n(); diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 80149c2dec4..df19187bf4d 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1263,10 +1263,21 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); - // TODO: we need communication here - } +#ifdef HAVE_MPI + + /*--- Compute MaxVonMises_Stress using all the nodes ---*/ + + su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + +#endif + + /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ + + Total_CFEA = MaxVonMises_Stress; + bool outputReactions = false; @@ -1406,19 +1417,6 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } - #ifdef HAVE_MPI - - /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - - su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - - #endif - - /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ - - Total_CFEA = MaxVonMises_Stress; - } void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { @@ -1458,65 +1456,69 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - if (nDim == 2) { - Solution[0] = 0.0; Solution[1] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; - } - else { - Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; - } + if (geometry->node[iPoint]->GetDomain()) { - node[iPoint]->SetSolution(Solution); + if (nDim == 2) { + Solution[0] = 0.0; Solution[1] = 0.0; + Residual[0] = 0.0; Residual[1] = 0.0; + } + else { + Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; + Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; + } - if (dynamic){ - node[iPoint]->SetSolution_Vel(Solution); - node[iPoint]->SetSolution_Accel(Solution); - } + node[iPoint]->SetSolution(Solution); -// for (iVar = 0; iVar < nVar; iVar++){ -// nodeReactions[iVar] = - 1.0 * LinSysRes.GetBlock(iPoint, iVar); -// } -// -// LinSysReact.SetBlock(iPoint,nodeReactions); + if (dynamic){ + node[iPoint]->SetSolution_Vel(Solution); + node[iPoint]->SetSolution_Accel(Solution); + } - /*--- Initialize the reaction vector ---*/ - LinSysReact.SetBlock(iPoint, Residual); + // for (iVar = 0; iVar < nVar; iVar++){ + // nodeReactions[iVar] = - 1.0 * LinSysRes.GetBlock(iPoint, iVar); + // } + // + // LinSysReact.SetBlock(iPoint,nodeReactions); + /*--- Initialize the reaction vector ---*/ + LinSysReact.SetBlock(iPoint, Residual); - LinSysRes.SetBlock(iPoint, Residual); - /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ + LinSysRes.SetBlock(iPoint, Residual); - /*--- Delete the columns for a particular node ---*/ + /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ - for (iVar = 0; iVar < nPoint; iVar++){ - if (iVar==iPoint) { - Jacobian.SetBlock(iVar,iPoint,mId_Aux); - } - else { - Jacobian.SetBlock(iVar,iPoint,mZeros_Aux); - } - } + /*--- Delete the columns for a particular node ---*/ - /*--- Delete the rows for a particular node ---*/ - for (jVar = 0; jVar < nPoint; jVar++){ - if (iPoint!=jVar) { - Jacobian.SetBlock(iPoint,jVar,mZeros_Aux); - } - } + for (iVar = 0; iVar < nPoint; iVar++){ + if (iVar==iPoint) { + Jacobian.SetBlock(iVar,iPoint,mId_Aux); + } + else { + Jacobian.SetBlock(iVar,iPoint,mZeros_Aux); + } + } - /*--- If the problem is dynamic ---*/ - /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ - /*--- TODO: Do I really need to do this? ---*/ + /*--- Delete the rows for a particular node ---*/ + for (jVar = 0; jVar < nPoint; jVar++){ + if (iPoint!=jVar) { + Jacobian.SetBlock(iPoint,jVar,mZeros_Aux); + } + } - if(dynamic){ + /*--- If the problem is dynamic ---*/ + /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ + /*--- TODO: Do I really need to do this? ---*/ - node[iPoint]->SetSolution_time_n(Solution); - node[iPoint]->SetSolution_Vel_time_n(Solution); - node[iPoint]->SetSolution_Accel_time_n(Solution); + if(dynamic){ - } + node[iPoint]->SetSolution_time_n(Solution); + node[iPoint]->SetSolution_Vel_time_n(Solution); + node[iPoint]->SetSolution_Accel_time_n(Solution); + + } + + } } @@ -1563,6 +1565,8 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver su2double solNorm = 0.0; + // TODO: Check communication here to ensure the residuals are the same + if (nonlinear_analysis){ /*--- If the problem is nonlinear, we have 3 convergence criteria ---*/ @@ -1595,6 +1599,10 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver Conv_Check[2] = dotProd(LinSysSol, LinSysRes) / Conv_Ref[2]; // Position for the energy tolerance } + /*--- MPI solution ---*/ + + Set_MPI_Solution(geometry, config); + } else{ @@ -1845,8 +1853,8 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv if ((nonlinear_analysis && (newton_raphson || first_iter)) || (linear_analysis && initial_calc) || (linear_analysis && restart && initial_calc_restart)) { - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ - for (jPoint = 0; jPoint < nPointDomain; jPoint++){ + for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (jPoint = 0; jPoint < nPoint; jPoint++){ for(iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); @@ -1857,9 +1865,10 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } } + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ if (linear_analysis){ - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + for (iPoint = 0; iPoint < nPoint; iPoint++) { for (iVar = 0; iVar < nVar; iVar++){ Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) @@ -1869,7 +1878,8 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } } else if (nonlinear_analysis){ - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) @@ -1882,7 +1892,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- Once computed, compute M*TimeRes_Aux ---*/ MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + for (iPoint = 0; iPoint < nPoint; iPoint++) { /*--- Dynamic contribution ---*/ /*--- TODO: Do I have to scale this one? I don't think so... ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); From 55c9e0e95c76436b1089419c4ec233e174372ed8 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 6 Oct 2015 11:28:26 +0100 Subject: [PATCH 111/269] Moved element and gauss structure into Common. --- .../include/element_structure.hpp | 9 +- .../include/element_structure.inl | 0 .../include/gauss_structure.hpp | 6 +- .../include/gauss_structure.inl | 0 Common/lib/Makefile.am | 7 + Common/lib/Makefile.in | 341 +++++++++--- {SU2_CFD => Common}/src/element_linear.cpp | 0 {SU2_CFD => Common}/src/element_structure.cpp | 0 {SU2_CFD => Common}/src/gauss_structure.cpp | 0 Makefile.in | 196 +++---- SU2_CFD/include/numerics_structure.hpp | 4 +- SU2_CFD/include/solver_structure.hpp | 4 +- SU2_CFD/obj/Makefile.am | 7 - SU2_CFD/obj/Makefile.in | 510 +++++++++--------- SU2_DEF/obj/Makefile.in | 86 +-- SU2_DOT/obj/Makefile.in | 87 +-- SU2_FSI/obj/Makefile.in | 89 +-- SU2_GEO/obj/Makefile.in | 86 +-- SU2_MSH/obj/Makefile.in | 86 +-- SU2_PY/Makefile.in | 52 +- SU2_SOL/obj/Makefile.in | 95 +--- aclocal.m4 | 375 +++++++------ configure | 185 +++---- externals/Makefile.in | 142 +++-- .../autotools/share/man/man1/aclocal-1.12.1 | 2 +- .../autotools/share/man/man1/automake-1.12.1 | 2 +- externals/metis/Makefile.in | 153 +++--- externals/parmetis/Makefile.in | 130 +++-- externals/tecio/Makefile.in | 115 ++-- 29 files changed, 1275 insertions(+), 1494 deletions(-) rename {SU2_CFD => Common}/include/element_structure.hpp (99%) rename {SU2_CFD => Common}/include/element_structure.inl (100%) rename {SU2_CFD => Common}/include/gauss_structure.hpp (95%) rename {SU2_CFD => Common}/include/gauss_structure.inl (100%) rename {SU2_CFD => Common}/src/element_linear.cpp (100%) rename {SU2_CFD => Common}/src/element_structure.cpp (100%) rename {SU2_CFD => Common}/src/gauss_structure.cpp (100%) diff --git a/SU2_CFD/include/element_structure.hpp b/Common/include/element_structure.hpp similarity index 99% rename from SU2_CFD/include/element_structure.hpp rename to Common/include/element_structure.hpp index 71a681c7058..c79fd4505e9 100644 --- a/SU2_CFD/include/element_structure.hpp +++ b/Common/include/element_structure.hpp @@ -1,7 +1,8 @@ /*! * \file element_structure.hpp * \brief Headers of the finite element structure (elements) - * The subroutines and functions are in the element_structure.cpp file. + * The subroutines and functions are in the element_structure.cpp + * and element_linear.cpp files. * \author R. Sanchez * \version 4.0.0 "Cardinal" * @@ -32,14 +33,14 @@ #pragma once -#include "../../Common/include/mpi_structure.hpp" +#include "mpi_structure.hpp" #include #include #include -#include "../../Common/include/config_structure.hpp" -#include "../../Common/include/geometry_structure.hpp" +#include "config_structure.hpp" +#include "geometry_structure.hpp" #include "gauss_structure.hpp" using namespace std; diff --git a/SU2_CFD/include/element_structure.inl b/Common/include/element_structure.inl similarity index 100% rename from SU2_CFD/include/element_structure.inl rename to Common/include/element_structure.inl diff --git a/SU2_CFD/include/gauss_structure.hpp b/Common/include/gauss_structure.hpp similarity index 95% rename from SU2_CFD/include/gauss_structure.hpp rename to Common/include/gauss_structure.hpp index 055cbd2109e..d4a9973f815 100644 --- a/SU2_CFD/include/gauss_structure.hpp +++ b/Common/include/gauss_structure.hpp @@ -32,14 +32,14 @@ #pragma once -#include "../../Common/include/mpi_structure.hpp" +#include "mpi_structure.hpp" #include #include #include -#include "../../Common/include/config_structure.hpp" -#include "../../Common/include/geometry_structure.hpp" +#include "config_structure.hpp" +#include "geometry_structure.hpp" using namespace std; diff --git a/SU2_CFD/include/gauss_structure.inl b/Common/include/gauss_structure.inl similarity index 100% rename from SU2_CFD/include/gauss_structure.inl rename to Common/include/gauss_structure.inl diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index 87475f9e564..5879c24bcf1 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -83,6 +83,10 @@ lib_sources = \ ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../include/interpolation_structure.hpp \ + ../include/gauss_structure.hpp \ + ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl \ ../src/config_structure.cpp \ ../src/dual_grid_structure.cpp \ ../src/geometry_structure.cpp \ @@ -95,6 +99,9 @@ lib_sources = \ ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp \ + ../src/gauss_structure.cpp \ + ../src/element_linear.cpp \ + ../src/element_structure.cpp \ ../src/interpolation_structure.cpp lib_cxxflags = diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index d5f100acd84..6dd7e1fe0dd 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -88,8 +72,7 @@ target_triplet = @target@ @BUILD_DIRECTDIFF_TRUE@am__append_2 = libSU2_DIRECTDIFF.a @BUILD_REVERSE_TRUE@am__append_3 = libSU2_AD.a subdir = Common/lib -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -105,8 +88,10 @@ AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ libSU2_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = @BUILD_NORMAL_TRUE@libSU2_a_DEPENDENCIES = $(am__DEPENDENCIES_1) @@ -142,15 +127,18 @@ am__libSU2_a_SOURCES_DIST = \ ../include/mpi_structure.inl ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../include/interpolation_structure.hpp \ - ../src/config_structure.cpp ../src/dual_grid_structure.cpp \ - ../src/geometry_structure.cpp \ + ../include/gauss_structure.hpp ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl ../src/config_structure.cpp \ + ../src/dual_grid_structure.cpp ../src/geometry_structure.cpp \ ../src/grid_adaptation_structure.cpp \ ../src/grid_movement_structure.cpp \ ../src/linear_solvers_structure.cpp \ ../src/primal_grid_structure.cpp ../src/vector_structure.cpp \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ - ../src/datatype_structure.cpp \ + ../src/datatype_structure.cpp ../src/gauss_structure.cpp \ + ../src/element_linear.cpp ../src/element_structure.cpp \ ../src/interpolation_structure.cpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/libSU2_a-config_structure.$(OBJEXT) \ @@ -165,6 +153,9 @@ am__objects_1 = ../src/libSU2_a-config_structure.$(OBJEXT) \ ../src/libSU2_a-mpi_structure.$(OBJEXT) \ ../src/libSU2_a-linear_solvers_structure_b.$(OBJEXT) \ ../src/libSU2_a-datatype_structure.$(OBJEXT) \ + ../src/libSU2_a-gauss_structure.$(OBJEXT) \ + ../src/libSU2_a-element_linear.$(OBJEXT) \ + ../src/libSU2_a-element_structure.$(OBJEXT) \ ../src/libSU2_a-interpolation_structure.$(OBJEXT) @BUILD_NORMAL_TRUE@am_libSU2_a_OBJECTS = $(am__objects_1) libSU2_a_OBJECTS = $(am_libSU2_a_OBJECTS) @@ -202,15 +193,18 @@ am__libSU2_AD_a_SOURCES_DIST = \ ../include/mpi_structure.inl ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../include/interpolation_structure.hpp \ - ../src/config_structure.cpp ../src/dual_grid_structure.cpp \ - ../src/geometry_structure.cpp \ + ../include/gauss_structure.hpp ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl ../src/config_structure.cpp \ + ../src/dual_grid_structure.cpp ../src/geometry_structure.cpp \ ../src/grid_adaptation_structure.cpp \ ../src/grid_movement_structure.cpp \ ../src/linear_solvers_structure.cpp \ ../src/primal_grid_structure.cpp ../src/vector_structure.cpp \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ - ../src/datatype_structure.cpp \ + ../src/datatype_structure.cpp ../src/gauss_structure.cpp \ + ../src/element_linear.cpp ../src/element_structure.cpp \ ../src/interpolation_structure.cpp am__objects_2 = ../src/libSU2_AD_a-config_structure.$(OBJEXT) \ ../src/libSU2_AD_a-dual_grid_structure.$(OBJEXT) \ @@ -224,6 +218,9 @@ am__objects_2 = ../src/libSU2_AD_a-config_structure.$(OBJEXT) \ ../src/libSU2_AD_a-mpi_structure.$(OBJEXT) \ ../src/libSU2_AD_a-linear_solvers_structure_b.$(OBJEXT) \ ../src/libSU2_AD_a-datatype_structure.$(OBJEXT) \ + ../src/libSU2_AD_a-gauss_structure.$(OBJEXT) \ + ../src/libSU2_AD_a-element_linear.$(OBJEXT) \ + ../src/libSU2_AD_a-element_structure.$(OBJEXT) \ ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT) @BUILD_REVERSE_TRUE@am_libSU2_AD_a_OBJECTS = $(am__objects_2) libSU2_AD_a_OBJECTS = $(am_libSU2_AD_a_OBJECTS) @@ -262,15 +259,18 @@ am__libSU2_DIRECTDIFF_a_SOURCES_DIST = \ ../include/mpi_structure.inl ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../include/interpolation_structure.hpp \ - ../src/config_structure.cpp ../src/dual_grid_structure.cpp \ - ../src/geometry_structure.cpp \ + ../include/gauss_structure.hpp ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl ../src/config_structure.cpp \ + ../src/dual_grid_structure.cpp ../src/geometry_structure.cpp \ ../src/grid_adaptation_structure.cpp \ ../src/grid_movement_structure.cpp \ ../src/linear_solvers_structure.cpp \ ../src/primal_grid_structure.cpp ../src/vector_structure.cpp \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ - ../src/datatype_structure.cpp \ + ../src/datatype_structure.cpp ../src/gauss_structure.cpp \ + ../src/element_linear.cpp ../src/element_structure.cpp \ ../src/interpolation_structure.cpp am__objects_3 = ../src/libSU2_DIRECTDIFF_a-config_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-dual_grid_structure.$(OBJEXT) \ @@ -284,22 +284,13 @@ am__objects_3 = ../src/libSU2_DIRECTDIFF_a-config_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-mpi_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-linear_solvers_structure_b.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-datatype_structure.$(OBJEXT) \ + ../src/libSU2_DIRECTDIFF_a-gauss_structure.$(OBJEXT) \ + ../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT) \ + ../src/libSU2_DIRECTDIFF_a-element_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT) @BUILD_DIRECTDIFF_TRUE@am_libSU2_DIRECTDIFF_a_OBJECTS = \ @BUILD_DIRECTDIFF_TRUE@ $(am__objects_3) libSU2_DIRECTDIFF_a_OBJECTS = $(am_libSU2_DIRECTDIFF_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -307,42 +298,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libSU2_a_SOURCES) $(libSU2_AD_a_SOURCES) \ $(libSU2_DIRECTDIFF_a_SOURCES) DIST_SOURCES = $(am__libSU2_a_SOURCES_DIST) \ $(am__libSU2_AD_a_SOURCES_DIST) \ $(am__libSU2_DIRECTDIFF_a_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -516,6 +500,10 @@ lib_sources = \ ../include/datatype_structure.hpp \ ../include/datatype_structure.inl \ ../include/interpolation_structure.hpp \ + ../include/gauss_structure.hpp \ + ../include/gauss_structure.inl \ + ../include/element_structure.hpp \ + ../include/element_structure.inl \ ../src/config_structure.cpp \ ../src/dual_grid_structure.cpp \ ../src/geometry_structure.cpp \ @@ -528,6 +516,9 @@ lib_sources = \ ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp \ + ../src/gauss_structure.cpp \ + ../src/element_linear.cpp \ + ../src/element_structure.cpp \ ../src/interpolation_structure.cpp @@ -631,6 +622,12 @@ clean-noinstLIBRARIES: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-datatype_structure.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_a-gauss_structure.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_a-element_linear.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_a-element_structure.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDENCIES) @@ -661,6 +658,12 @@ libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDEN ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-datatype_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_AD_a-gauss_structure.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_AD_a-element_linear.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_AD_a-element_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_AD_a_DEPENDENCIES) @@ -691,6 +694,12 @@ libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_A ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-datatype_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_DIRECTDIFF_a-gauss_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_DIRECTDIFF_a-element_structure.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2_DIRECTDIFF.a: $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_DEPENDENCIES) $(EXTRA_libSU2_DIRECTDIFF_a_DEPENDENCIES) @@ -700,7 +709,54 @@ libSU2_DIRECTDIFF.a: $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_DEPEND mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-config_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-datatype_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-dual_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-element_linear.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-element_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-gauss_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-geometry_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-grid_adaptation_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-grid_movement_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-linear_solvers_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-linear_solvers_structure_b.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-matrix_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-mpi_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-primal_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_AD_a-vector_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-config_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-datatype_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-dual_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-element_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-gauss_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-geometry_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-grid_adaptation_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-grid_movement_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-linear_solvers_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-linear_solvers_structure_b.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-matrix_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-mpi_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-primal_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_DIRECTDIFF_a-vector_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-config_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-datatype_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-dual_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-element_linear.$(OBJEXT) + -rm -f ../src/libSU2_a-element_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-gauss_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-geometry_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-grid_adaptation_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-grid_movement_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-interpolation_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-linear_solvers_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-linear_solvers_structure_b.$(OBJEXT) + -rm -f ../src/libSU2_a-matrix_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-mpi_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-primal_grid_structure.$(OBJEXT) + -rm -f ../src/libSU2_a-vector_structure.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -708,6 +764,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-config_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-datatype_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-dual_grid_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-element_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-geometry_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-grid_adaptation_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_AD_a-grid_movement_structure.Po@am__quote@ @@ -721,6 +780,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-config_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-datatype_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-dual_grid_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-geometry_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-grid_adaptation_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-grid_movement_structure.Po@am__quote@ @@ -734,6 +796,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-config_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-datatype_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-dual_grid_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-element_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-element_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-geometry_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-grid_adaptation_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/libSU2_a-grid_movement_structure.Po@am__quote@ @@ -929,6 +994,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-datatype_structure.obj `if test -f '../src/datatype_structure.cpp'; then $(CYGPATH_W) '../src/datatype_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/datatype_structure.cpp'; fi` +../src/libSU2_a-gauss_structure.o: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-gauss_structure.Tpo -c -o ../src/libSU2_a-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-gauss_structure.Tpo ../src/$(DEPDIR)/libSU2_a-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/libSU2_a-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp + +../src/libSU2_a-gauss_structure.obj: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-gauss_structure.Tpo -c -o ../src/libSU2_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-gauss_structure.Tpo ../src/$(DEPDIR)/libSU2_a-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/libSU2_a-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` + +../src/libSU2_a-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo -c -o ../src/libSU2_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/libSU2_a-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo -c -o ../src/libSU2_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + +../src/libSU2_a-element_structure.o: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_structure.Tpo -c -o ../src/libSU2_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_a-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/libSU2_a-element_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp + +../src/libSU2_a-element_structure.obj: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_structure.Tpo -c -o ../src/libSU2_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_a-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/libSU2_a-element_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` + ../src/libSU2_a-interpolation_structure.o: ../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo -c -o ../src/libSU2_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po @@ -1111,6 +1218,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-datatype_structure.obj `if test -f '../src/datatype_structure.cpp'; then $(CYGPATH_W) '../src/datatype_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/datatype_structure.cpp'; fi` +../src/libSU2_AD_a-gauss_structure.o: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Tpo -c -o ../src/libSU2_AD_a-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/libSU2_AD_a-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp + +../src/libSU2_AD_a-gauss_structure.obj: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Tpo -c -o ../src/libSU2_AD_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/libSU2_AD_a-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` + +../src/libSU2_AD_a-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo -c -o ../src/libSU2_AD_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_AD_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/libSU2_AD_a-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo -c -o ../src/libSU2_AD_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_AD_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + +../src/libSU2_AD_a-element_structure.o: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Tpo -c -o ../src/libSU2_AD_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/libSU2_AD_a-element_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp + +../src/libSU2_AD_a-element_structure.obj: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Tpo -c -o ../src/libSU2_AD_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/libSU2_AD_a-element_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` + ../src/libSU2_AD_a-interpolation_structure.o: ../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-interpolation_structure.Tpo -c -o ../src/libSU2_AD_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-interpolation_structure.Po @@ -1293,6 +1442,48 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-datatype_structure.obj `if test -f '../src/datatype_structure.cpp'; then $(CYGPATH_W) '../src/datatype_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/datatype_structure.cpp'; fi` +../src/libSU2_DIRECTDIFF_a-gauss_structure.o: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/libSU2_DIRECTDIFF_a-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp + +../src/libSU2_DIRECTDIFF_a-gauss_structure.obj: ../src/gauss_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-gauss_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/libSU2_DIRECTDIFF_a-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` + +../src/libSU2_DIRECTDIFF_a-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_DIRECTDIFF_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/libSU2_DIRECTDIFF_a-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_DIRECTDIFF_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + +../src/libSU2_DIRECTDIFF_a-element_structure.o: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/libSU2_DIRECTDIFF_a-element_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp + +../src/libSU2_DIRECTDIFF_a-element_structure.obj: ../src/element_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/libSU2_DIRECTDIFF_a-element_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` + ../src/libSU2_DIRECTDIFF_a-interpolation_structure.o: ../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-interpolation_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-interpolation_structure.Po @@ -1356,20 +1547,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1511,14 +1688,14 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/SU2_CFD/src/element_linear.cpp b/Common/src/element_linear.cpp similarity index 100% rename from SU2_CFD/src/element_linear.cpp rename to Common/src/element_linear.cpp diff --git a/SU2_CFD/src/element_structure.cpp b/Common/src/element_structure.cpp similarity index 100% rename from SU2_CFD/src/element_structure.cpp rename to Common/src/element_structure.cpp diff --git a/SU2_CFD/src/gauss_structure.cpp b/Common/src/gauss_structure.cpp similarity index 100% rename from SU2_CFD/src/gauss_structure.cpp rename to Common/src/gauss_structure.cpp diff --git a/Makefile.in b/Makefile.in index a63dfbed1bf..1830a533870 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -47,23 +48,6 @@ # ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -106,18 +90,12 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -127,19 +105,13 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - cscope distdir dist dist-all distcheck + distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags -CSCOPE = cscope DIST_SUBDIRS = externals Common/lib SU2_PY SU2_CFD/obj SU2_FSI/obj \ SU2_DOT/obj SU2_MSH/obj SU2_DEF/obj SU2_SOL/obj SU2_GEO/obj DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -151,7 +123,6 @@ am__remove_distdir = \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi -am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -179,7 +150,6 @@ am__relativize = \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best -DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -362,12 +332,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -377,11 +347,7 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ + list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -395,6 +361,37 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ @@ -403,10 +400,6 @@ ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done -cscopelist-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ - done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -470,32 +463,8 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) - -clean-cscope: - -rm -f cscope.files - -cscope.files: clean-cscope cscopelist-recursive cscopelist - -cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -531,10 +500,13 @@ distdir: $(DISTFILES) done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -563,36 +535,40 @@ distdir: $(DISTFILES) || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__post_remove_distdir) + $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) + $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) + $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) + $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__post_remove_distdir) + $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) + $(am__remove_distdir) -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -603,6 +579,8 @@ distcheck: dist GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -614,9 +592,9 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ @@ -648,7 +626,7 @@ distcheck: dist && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__post_remove_distdir) + $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' @@ -782,25 +760,23 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ - cscopelist-recursive ctags-recursive install-am install-strip \ - tags-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-cscope \ - clean-generic cscope cscopelist cscopelist-recursive ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzip \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-generic distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-recursive uninstall uninstall-am + all all-am am--refresh check check-am clean clean-generic \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 2cb4ec65ffb..5814886a15a 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -42,8 +42,8 @@ #include #include "../../Common/include/config_structure.hpp" -#include "gauss_structure.hpp" -#include "element_structure.hpp" +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" #include "numerics_machine_learning.hpp" #include "numerics_machine_learning_turbulent.hpp" #include "variable_structure.hpp" diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index bf05e1ca0cd..d54564cf500 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -44,8 +44,8 @@ #include #include "fluid_model.hpp" -#include "gauss_structure.hpp" -#include "element_structure.hpp" +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" #include "numerics_structure.hpp" #include "variable_structure.hpp" #include "../../Common/include/geometry_structure.hpp" diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index 9ca5f78cd28..64ef6a441df 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -53,10 +53,6 @@ su2_cfd_sources = \ ../include/definition_structure.hpp \ ../include/fluid_model.hpp \ ../include/fluid_model.inl \ - ../include/gauss_structure.hpp \ - ../include/gauss_structure.inl \ - ../include/element_structure.hpp \ - ../include/element_structure.inl \ ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ @@ -80,9 +76,6 @@ su2_cfd_sources = \ ../src/fluid_model_pig.cpp \ ../src/fluid_model_pvdw.cpp \ ../src/fluid_model_ppr.cpp \ - ../src/gauss_structure.cpp \ - ../src/element_linear.cpp \ - ../src/element_structure.cpp \ ../src/integration_structure.cpp \ ../src/integration_time.cpp \ ../src/iteration_structure.cpp \ diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 3d6e37d5e2c..73f1d501009 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -89,8 +73,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) @BUILD_DIRECTDIFF_TRUE@am__append_2 = ../bin/SU2_CFD_DIRECTDIFF @BUILD_REVERSE_TRUE@am__append_3 = ../bin/SU2_CFD_AD subdir = SU2_CFD/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -109,9 +92,6 @@ am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../include/fluid_model.hpp ../include/fluid_model.inl \ - ../include/gauss_structure.hpp ../include/gauss_structure.inl \ - ../include/element_structure.hpp \ - ../include/element_structure.inl \ ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ @@ -130,10 +110,8 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../include/transfer_structure.inl \ ../src/definition_structure.cpp ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp ../src/fluid_model_pvdw.cpp \ - ../src/fluid_model_ppr.cpp ../src/gauss_structure.cpp \ - ../src/element_linear.cpp ../src/element_structure.cpp \ - ../src/integration_structure.cpp ../src/integration_time.cpp \ - ../src/iteration_structure.cpp \ + ../src/fluid_model_ppr.cpp ../src/integration_structure.cpp \ + ../src/integration_time.cpp ../src/iteration_structure.cpp \ ../src/numerics_adjoint_levelset.cpp \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_tne2.cpp \ @@ -197,9 +175,6 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT) \ ../src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT) \ ../src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT) \ - ../src/___bin_SU2_CFD-gauss_structure.$(OBJEXT) \ - ../src/___bin_SU2_CFD-element_linear.$(OBJEXT) \ - ../src/___bin_SU2_CFD-element_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-integration_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-integration_time.$(OBJEXT) \ ../src/___bin_SU2_CFD-iteration_structure.$(OBJEXT) \ @@ -280,10 +255,7 @@ ___bin_SU2_CFD_LINK = $(CXXLD) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../include/definition_structure.hpp ../include/fluid_model.hpp \ - ../include/fluid_model.inl ../include/gauss_structure.hpp \ - ../include/gauss_structure.inl \ - ../include/element_structure.hpp \ - ../include/element_structure.inl \ + ../include/fluid_model.inl \ ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ @@ -302,10 +274,8 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../include/transfer_structure.inl \ ../src/definition_structure.cpp ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp ../src/fluid_model_pvdw.cpp \ - ../src/fluid_model_ppr.cpp ../src/gauss_structure.cpp \ - ../src/element_linear.cpp ../src/element_structure.cpp \ - ../src/integration_structure.cpp ../src/integration_time.cpp \ - ../src/iteration_structure.cpp \ + ../src/fluid_model_ppr.cpp ../src/integration_structure.cpp \ + ../src/integration_time.cpp ../src/iteration_structure.cpp \ ../src/numerics_adjoint_levelset.cpp \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_tne2.cpp \ @@ -369,9 +339,6 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-fluid_model_pig.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-fluid_model_pvdw.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-fluid_model_ppr.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-gauss_structure.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-element_linear.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-element_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-integration_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-integration_time.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-iteration_structure.$(OBJEXT) \ @@ -451,10 +418,7 @@ ___bin_SU2_CFD_AD_LINK = $(CXXLD) $(___bin_SU2_CFD_AD_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../include/definition_structure.hpp ../include/fluid_model.hpp \ - ../include/fluid_model.inl ../include/gauss_structure.hpp \ - ../include/gauss_structure.inl \ - ../include/element_structure.hpp \ - ../include/element_structure.inl \ + ../include/fluid_model.inl \ ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ @@ -473,10 +437,8 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../include/transfer_structure.inl \ ../src/definition_structure.cpp ../src/fluid_model.cpp \ ../src/fluid_model_pig.cpp ../src/fluid_model_pvdw.cpp \ - ../src/fluid_model_ppr.cpp ../src/gauss_structure.cpp \ - ../src/element_linear.cpp ../src/element_structure.cpp \ - ../src/integration_structure.cpp ../src/integration_time.cpp \ - ../src/iteration_structure.cpp \ + ../src/fluid_model_ppr.cpp ../src/integration_structure.cpp \ + ../src/integration_time.cpp ../src/iteration_structure.cpp \ ../src/numerics_adjoint_levelset.cpp \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_tne2.cpp \ @@ -539,9 +501,6 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_pig.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_pvdw.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_ppr.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-integration_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-integration_time.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-iteration_structure.$(OBJEXT) \ @@ -622,18 +581,6 @@ ___bin_SU2_CFD_DIRECTDIFF_OBJECTS = \ ___bin_SU2_CFD_DIRECTDIFF_LINK = $(CXXLD) \ $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -641,42 +588,38 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_CFD_SOURCES) $(___bin_SU2_CFD_AD_SOURCES) \ $(___bin_SU2_CFD_DIRECTDIFF_SOURCES) DIST_SOURCES = $(am_____bin_SU2_CFD_SOURCES_DIST) \ $(am_____bin_SU2_CFD_AD_SOURCES_DIST) \ $(am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -818,10 +761,6 @@ su2_cfd_sources = \ ../include/definition_structure.hpp \ ../include/fluid_model.hpp \ ../include/fluid_model.inl \ - ../include/gauss_structure.hpp \ - ../include/gauss_structure.inl \ - ../include/element_structure.hpp \ - ../include/element_structure.inl \ ../include/integration_structure.hpp \ ../include/integration_structure.inl \ ../include/iteration_structure.hpp \ @@ -845,9 +784,6 @@ su2_cfd_sources = \ ../src/fluid_model_pig.cpp \ ../src/fluid_model_pvdw.cpp \ ../src/fluid_model_ppr.cpp \ - ../src/gauss_structure.cpp \ - ../src/element_linear.cpp \ - ../src/element_structure.cpp \ ../src/integration_structure.cpp \ ../src/integration_time.cpp \ ../src/iteration_structure.cpp \ @@ -989,11 +925,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -1043,12 +976,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-gauss_structure.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-element_linear.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-element_structure.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-integration_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-integration_time.$(OBJEXT): \ @@ -1205,12 +1132,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-fluid_model_ppr.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-gauss_structure.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-element_linear.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-element_structure.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-integration_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-integration_time.$(OBJEXT): \ @@ -1364,12 +1285,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_ppr.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-integration_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-integration_time.$(OBJEXT): \ @@ -1516,20 +1431,241 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-SU2_CFD.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model_pig.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model_ppr.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-fluid_model_pvdw.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-integration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-integration_time.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-iteration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_machine_learning.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_machine_learning_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-numerics_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_cgns.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_fieldview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_paraview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_su2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-output_tecplot.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_discrete.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-solver_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-transfer_physics.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-transfer_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-transport_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_discrete.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD-variable_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-SU2_CFD.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-definition_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-fluid_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-fluid_model_pig.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-fluid_model_ppr.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-fluid_model_pvdw.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-integration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-integration_time.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-iteration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_machine_learning.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_machine_learning_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-numerics_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-output_cgns.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-output_fieldview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-output_paraview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-output_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-output_su2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-output_tecplot.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_adjoint_discrete.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-solver_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-transfer_physics.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-transfer_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-transport_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_adjoint_discrete.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_AD-variable_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_pig.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_ppr.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_pvdw.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-integration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-integration_time.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-iteration_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_machine_learning.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_machine_learning_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-output_cgns.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-output_fieldview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-output_paraview.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-output_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-output_su2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-output_tecplot.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_discrete.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-solver_template.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-transport_model.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_discrete.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_levelset.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_poisson.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_tne2.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_transition.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_wave.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_linearized_mean.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_linearized_turbulent.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-SU2_CFD.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_ppr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-fluid_model_pvdw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-integration_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-iteration_structure.Po@am__quote@ @@ -1601,13 +1737,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-SU2_CFD.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-fluid_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-fluid_model_pig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-fluid_model_ppr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-fluid_model_pvdw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-integration_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-integration_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-iteration_structure.Po@am__quote@ @@ -1679,13 +1812,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-fluid_model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-fluid_model_pig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-fluid_model_ppr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-fluid_model_pvdw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-integration_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-integration_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-iteration_structure.Po@am__quote@ @@ -1842,48 +1972,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-fluid_model_ppr.obj `if test -f '../src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/fluid_model_ppr.cpp'; fi` -../src/___bin_SU2_CFD-gauss_structure.o: ../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp - -../src/___bin_SU2_CFD-gauss_structure.obj: ../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` - -../src/___bin_SU2_CFD-element_linear.o: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo -c -o ../src/___bin_SU2_CFD-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp - -../src/___bin_SU2_CFD-element_linear.obj: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo -c -o ../src/___bin_SU2_CFD-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` - -../src/___bin_SU2_CFD-element_structure.o: ../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo -c -o ../src/___bin_SU2_CFD-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD-element_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp - -../src/___bin_SU2_CFD-element_structure.obj: ../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo -c -o ../src/___bin_SU2_CFD-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD-element_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` - ../src/___bin_SU2_CFD-integration_structure.o: ../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-integration_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo -c -o ../src/___bin_SU2_CFD-integration_structure.o `test -f '../src/integration_structure.cpp' || echo '$(srcdir)/'`../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-integration_structure.Po @@ -2934,48 +3022,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-fluid_model_ppr.obj `if test -f '../src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/fluid_model_ppr.cpp'; fi` -../src/___bin_SU2_CFD_AD-gauss_structure.o: ../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD_AD-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp - -../src/___bin_SU2_CFD_AD-gauss_structure.obj: ../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD_AD-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` - -../src/___bin_SU2_CFD_AD-element_linear.o: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Tpo -c -o ../src/___bin_SU2_CFD_AD-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD_AD-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp - -../src/___bin_SU2_CFD_AD-element_linear.obj: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Tpo -c -o ../src/___bin_SU2_CFD_AD-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD_AD-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` - -../src/___bin_SU2_CFD_AD-element_structure.o: ../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD_AD-element_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp - -../src/___bin_SU2_CFD_AD-element_structure.obj: ../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD_AD-element_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` - ../src/___bin_SU2_CFD_AD-integration_structure.o: ../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-integration_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-integration_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-integration_structure.o `test -f '../src/integration_structure.cpp' || echo '$(srcdir)/'`../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-integration_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-integration_structure.Po @@ -4026,48 +4072,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model_ppr.obj `if test -f '../src/fluid_model_ppr.cpp'; then $(CYGPATH_W) '../src/fluid_model_ppr.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/fluid_model_ppr.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.o: ../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.o `test -f '../src/gauss_structure.cpp' || echo '$(srcdir)/'`../src/gauss_structure.cpp - -../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.obj: ../src/gauss_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/gauss_structure.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` - -../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.o: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp - -../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.obj: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` - -../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.o: ../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp - -../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.obj: ../src/element_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-element_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_structure.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` - ../src/___bin_SU2_CFD_DIRECTDIFF-integration_structure.o: ../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-integration_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-integration_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-integration_structure.o `test -f '../src/integration_structure.cpp' || echo '$(srcdir)/'`../src/integration_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-integration_structure.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-integration_structure.Po @@ -5097,20 +5101,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -5256,7 +5246,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index c17a01752b2..18c3362231f 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,8 +70,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_DEF$(EXEEXT) subdir = SU2_DEF/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -114,18 +97,6 @@ ___bin_SU2_DEF_DEPENDENCIES = ../../Common/lib/libSU2.a \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o ___bin_SU2_DEF_LINK = $(CXXLD) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -133,39 +104,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_DEF_SOURCES) DIST_SOURCES = $(___bin_SU2_DEF_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -376,11 +343,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -431,7 +395,7 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/___bin_SU2_DEF-SU2_DEF.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -517,20 +481,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -676,7 +626,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index abddd32655c..4dc6d37e91e 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -88,8 +72,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @BUILD_NORMAL_TRUE@am__append_1 = ../bin/SU2_DOT @BUILD_REVERSE_TRUE@am__append_2 = ../bin/SU2_DOT_AD subdir = SU2_DOT/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -126,18 +109,6 @@ ___bin_SU2_DOT_AD_OBJECTS = $(am____bin_SU2_DOT_AD_OBJECTS) @BUILD_REVERSE_TRUE@ $(am__DEPENDENCIES_1) ___bin_SU2_DOT_AD_LINK = $(CXXLD) $(___bin_SU2_DOT_AD_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -145,40 +116,36 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_DOT_SOURCES) $(___bin_SU2_DOT_AD_SOURCES) DIST_SOURCES = $(am_____bin_SU2_DOT_SOURCES_DIST) \ $(am_____bin_SU2_DOT_AD_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -386,11 +353,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -446,7 +410,8 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/___bin_SU2_DOT-SU2_DOT.$(OBJEXT) + -rm -f ../src/___bin_SU2_DOT_AD-SU2_DOT.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -547,20 +512,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -706,7 +657,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index 2e77307d36a..d7ac6e04535 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,8 +70,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) subdir = SU2_FSI/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -192,18 +175,6 @@ am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ @BUILD_NORMAL_TRUE@ $(am__DEPENDENCIES_1) ___bin_SU2_FSI_LINK = $(CXXLD) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -211,39 +182,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_FSI_SOURCES) DIST_SOURCES = $(am_____bin_SU2_FSI_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -528,11 +495,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -594,8 +558,9 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) + -rm -f ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -711,20 +676,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -872,7 +823,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 1858da137c8..07a464ff5c0 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,8 +70,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_GEO$(EXEEXT) subdir = SU2_GEO/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -106,18 +89,6 @@ ___bin_SU2_GEO_OBJECTS = $(am____bin_SU2_GEO_OBJECTS) ___bin_SU2_GEO_DEPENDENCIES = ../../Common/lib/libSU2.a ___bin_SU2_GEO_LINK = $(CXXLD) $(___bin_SU2_GEO_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -125,39 +96,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_GEO_SOURCES) DIST_SOURCES = $(___bin_SU2_GEO_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -360,11 +327,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -415,7 +379,7 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/___bin_SU2_GEO-SU2_GEO.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -501,20 +465,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -660,7 +610,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index 28d9977f28b..0b0f58a503e 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,8 +70,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_MSH$(EXEEXT) subdir = SU2_MSH/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -106,18 +89,6 @@ ___bin_SU2_MSH_OBJECTS = $(am____bin_SU2_MSH_OBJECTS) ___bin_SU2_MSH_DEPENDENCIES = ../../Common/lib/libSU2.a ___bin_SU2_MSH_LINK = $(CXXLD) $(___bin_SU2_MSH_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -125,39 +96,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_MSH_SOURCES) DIST_SOURCES = $(___bin_SU2_MSH_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -360,11 +327,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -415,7 +379,7 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../src/___bin_SU2_MSH-SU2_MSH.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -501,20 +465,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -660,7 +610,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index c01c6f7b7d3..2cdb6ce4a13 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -49,23 +50,6 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -127,25 +111,14 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(mypkgdir)" SCRIPTS = $(bin_SCRIPTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = SOURCES = DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac DATA = $(nobase_dist_mypkg_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -285,6 +258,7 @@ bin_SCRIPTS = \ finite_differences.py \ mesh_deformation.py \ parallel_computation.py \ + parallel_computation_fsi.py \ package_tests.py \ patient_designspace.py \ shape_optimization.py \ @@ -374,11 +348,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ @@ -409,18 +380,15 @@ uninstall-binSCRIPTS: dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) install-nobase_dist_mypkgDATA: $(nobase_dist_mypkg_DATA) @$(NORMAL_INSTALL) + test -z "$(mypkgdir)" || $(MKDIR_P) "$(DESTDIR)$(mypkgdir)" @list='$(nobase_dist_mypkg_DATA)'; test -n "$(mypkgdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(mypkgdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(mypkgdir)" || exit 1; \ - fi; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(mypkgdir)/$$dir'"; \ + echo "$(MKDIR_P) '$(DESTDIR)$(mypkgdir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(mypkgdir)/$$dir"; }; \ echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(mypkgdir)/$$dir'"; \ $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(mypkgdir)/$$dir" || exit $$?; }; \ @@ -437,8 +405,6 @@ TAGS: ctags: CTAGS CTAGS: -cscope cscopelist: - distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 354efd7300b..6b8f02e687b 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,23 +49,6 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,8 +70,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_SOL$(EXEEXT) subdir = SU2_SOL/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -114,18 +97,6 @@ ___bin_SU2_SOL_OBJECTS = $(am____bin_SU2_SOL_OBJECTS) ___bin_SU2_SOL_DEPENDENCIES = ../../Common/lib/libSU2.a ___bin_SU2_SOL_LINK = $(CXXLD) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -133,39 +104,35 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(___bin_SU2_SOL_SOURCES) DIST_SOURCES = $(___bin_SU2_SOL_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -379,11 +346,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ @@ -464,8 +428,15 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.$(OBJEXT) + -rm -f ../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -671,20 +642,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -832,7 +789,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ + clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/aclocal.m4 b/aclocal.m4 index af0b34cc478..87ea33c4a9a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.12.5 -*- Autoconf -*- - -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,28 +14,31 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) +To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.12' +[am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.12.5], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,22 +54,24 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.12.5])dnl +[AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -84,7 +90,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you +# harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -110,19 +116,22 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2012 Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 9 + # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -141,14 +150,16 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 12 -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -158,7 +169,7 @@ fi])]) # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -171,13 +182,12 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -185,8 +195,8 @@ AC_CACHE_CHECK([dependency style of $depcc], # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -226,16 +236,16 @@ AC_CACHE_CHECK([dependency style of $depcc], : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -244,8 +254,8 @@ AC_CACHE_CHECK([dependency style of $depcc], test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -253,7 +263,7 @@ AC_CACHE_CHECK([dependency style of $depcc], fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -301,7 +311,7 @@ AM_CONDITIONAL([am__fastdep$1], [ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -311,13 +321,9 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -332,12 +338,14 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ @@ -356,7 +364,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but + # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -368,19 +376,21 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -398,7 +408,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will +# is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -408,12 +418,15 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 16 + # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -458,41 +471,31 @@ AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[AC_DIAGNOSE([obsolete], -[$0: two- and three-arguments forms are deprecated. For more info, see: -http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -503,35 +506,28 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -dnl Support for Objective C++ was only introduced in Autoconf 2.65, -dnl but we still cater to Autoconf 2.62. -m4_ifdef([AC_PROG_OBJCXX], -[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], @@ -559,12 +555,15 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -578,14 +577,16 @@ if test x"${install_sh}" != xset; then install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST([install_sh])]) +AC_SUBST(install_sh)]) -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -601,12 +602,14 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 4 + # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -624,7 +627,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. +# Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -649,12 +652,15 @@ AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 6 + # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. @@ -683,12 +689,15 @@ m4_define([AC_PROG_CC], # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2012 Free Software Foundation, Inc. +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 6 + # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -696,6 +705,7 @@ AC_DEFUN([AM_MISSING_PROG], $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) + # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. @@ -716,18 +726,50 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) + AC_MSG_WARN([`missing' script is too old or missing]) fi ]) +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 5 + # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -737,7 +779,7 @@ AC_DEFUN([_AM_MANGLE_OPTION], # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -753,16 +795,22 @@ AC_DEFUN([_AM_IF_OPTION], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 5 + # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -773,40 +821,32 @@ case `pwd` in esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac -# Do 'set' in a subshell so we don't clobber the current shell's +# Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + test "$[2]" = conftest.file ) then @@ -816,50 +856,31 @@ else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) +AC_MSG_RESULT(yes)]) -# Copyright (C) 2009-2012 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). +# (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl A few `make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} @@ -877,7 +898,7 @@ else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. + dnl Using `$V' instead of `$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else @@ -894,40 +915,44 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor 'install' (even GNU) is that you can't +# One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize +# always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2012 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 3 + # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -941,16 +966,18 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2012 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -973,7 +1000,7 @@ AC_MSG_CHECKING([how to create a $1 tar archive]) _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of '-'. +# Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in diff --git a/configure b/configure index e3e19330a4a..0c8566c4324 100755 --- a/configure +++ b/configure @@ -1450,13 +1450,11 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') --enable-mpi build with MPI message passing support - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors --disable-CFD build the SU2_CFD executable (default = yes) --disable-FSI build the SU2_FSI executable (default = yes) --disable-DOT build the SU2_DOT executable (default = yes) @@ -2549,7 +2547,7 @@ test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- -am__api_version='1.12' +am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2646,6 +2644,9 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2656,40 +2657,32 @@ case `pwd` in esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac -# Do 'set' in a subshell so we don't clobber the current shell's +# Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + test "$2" = conftest.file ) then @@ -2701,16 +2694,6 @@ Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2737,8 +2720,8 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -2750,10 +2733,10 @@ if test x"${install_sh}" != xset; then esac fi -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. +# will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -2892,6 +2875,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -3024,12 +3013,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used @@ -3047,10 +3030,10 @@ if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 @@ -3102,7 +3085,7 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. +# Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3707,8 +3690,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -3743,16 +3726,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -3761,8 +3744,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -3770,7 +3753,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4204,8 +4187,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4240,16 +4223,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4258,8 +4241,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4267,7 +4250,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4810,8 +4793,8 @@ else # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4846,16 +4829,16 @@ else : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with '-c' and '-o' for the sake of the "dashmstdout" + # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4864,8 +4847,8 @@ else test "$am__universal" = false || continue ;; nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4873,7 +4856,7 @@ else fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has + # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -7195,14 +7178,6 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -8378,7 +8353,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but + # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -8412,19 +8387,21 @@ $as_echo X"$mf" | continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || diff --git a/externals/Makefile.in b/externals/Makefile.in index 0a4bae5294a..53046bba14e 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -47,23 +48,6 @@ # ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -98,18 +82,12 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -119,11 +97,6 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ @@ -328,12 +301,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -343,11 +316,7 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ + list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -361,6 +330,37 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ @@ -369,10 +369,6 @@ ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done -cscopelist-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ - done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -436,20 +432,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -485,10 +467,13 @@ distdir: $(DISTFILES) done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -609,22 +594,21 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ - cscopelist-recursive ctags-recursive install-am install-strip \ - tags-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic cscopelist \ - cscopelist-recursive ctags ctags-recursive distclean \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/externals/autotools/share/man/man1/aclocal-1.12.1 b/externals/autotools/share/man/man1/aclocal-1.12.1 index 084cedcd4c4..4439b053726 100644 --- a/externals/autotools/share/man/man1/aclocal-1.12.1 +++ b/externals/autotools/share/man/man1/aclocal-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH ACLOCAL "1" "September 2015" "aclocal 1.12.5" "User Commands" +.TH ACLOCAL "1" "October 2015" "aclocal 1.12.5" "User Commands" .SH NAME aclocal \- manual page for aclocal 1.12.5 .SH SYNOPSIS diff --git a/externals/autotools/share/man/man1/automake-1.12.1 b/externals/autotools/share/man/man1/automake-1.12.1 index 90709f057bb..eb0d77f8fd3 100644 --- a/externals/autotools/share/man/man1/automake-1.12.1 +++ b/externals/autotools/share/man/man1/automake-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH AUTOMAKE "1" "September 2015" "automake 1.12.5" "User Commands" +.TH AUTOMAKE "1" "October 2015" "automake 1.12.5" "User Commands" .SH NAME automake \- manual page for automake 1.12.5 .SH SYNOPSIS diff --git a/externals/metis/Makefile.in b/externals/metis/Makefile.in index 5b2e02d2273..94127620513 100644 --- a/externals/metis/Makefile.in +++ b/externals/metis/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +16,6 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +36,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/metis -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -69,8 +52,10 @@ AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ libmetis_a_AR = $(AR) $(ARFLAGS) libmetis_a_LIBADD = am__dirstamp = $(am__leading_dot)dirstamp @@ -134,18 +119,6 @@ am__objects_1 = GKlib/libmetis_a-b64.$(OBJEXT) \ libmetis/libmetis_a-wspace.$(OBJEXT) am_libmetis_a_OBJECTS = $(am__objects_1) libmetis_a_OBJECTS = $(am_libmetis_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -153,26 +126,21 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libmetis_a_SOURCES) DIST_SOURCES = $(libmetis_a_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -593,8 +561,67 @@ libmetis.a: $(libmetis_a_OBJECTS) $(libmetis_a_DEPENDENCIES) $(EXTRA_libmetis_a_ mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f GKlib/*.$(OBJEXT) - -rm -f libmetis/*.$(OBJEXT) + -rm -f GKlib/libmetis_a-b64.$(OBJEXT) + -rm -f GKlib/libmetis_a-blas.$(OBJEXT) + -rm -f GKlib/libmetis_a-csr.$(OBJEXT) + -rm -f GKlib/libmetis_a-error.$(OBJEXT) + -rm -f GKlib/libmetis_a-evaluate.$(OBJEXT) + -rm -f GKlib/libmetis_a-fkvkselect.$(OBJEXT) + -rm -f GKlib/libmetis_a-fs.$(OBJEXT) + -rm -f GKlib/libmetis_a-getopt.$(OBJEXT) + -rm -f GKlib/libmetis_a-gkregex.$(OBJEXT) + -rm -f GKlib/libmetis_a-graph.$(OBJEXT) + -rm -f GKlib/libmetis_a-htable.$(OBJEXT) + -rm -f GKlib/libmetis_a-io.$(OBJEXT) + -rm -f GKlib/libmetis_a-itemsets.$(OBJEXT) + -rm -f GKlib/libmetis_a-mcore.$(OBJEXT) + -rm -f GKlib/libmetis_a-memory.$(OBJEXT) + -rm -f GKlib/libmetis_a-omp.$(OBJEXT) + -rm -f GKlib/libmetis_a-pdb.$(OBJEXT) + -rm -f GKlib/libmetis_a-pqueue.$(OBJEXT) + -rm -f GKlib/libmetis_a-random.$(OBJEXT) + -rm -f GKlib/libmetis_a-rw.$(OBJEXT) + -rm -f GKlib/libmetis_a-seq.$(OBJEXT) + -rm -f GKlib/libmetis_a-sort.$(OBJEXT) + -rm -f GKlib/libmetis_a-string.$(OBJEXT) + -rm -f GKlib/libmetis_a-timers.$(OBJEXT) + -rm -f GKlib/libmetis_a-tokenizer.$(OBJEXT) + -rm -f GKlib/libmetis_a-util.$(OBJEXT) + -rm -f libmetis/libmetis_a-auxapi.$(OBJEXT) + -rm -f libmetis/libmetis_a-balance.$(OBJEXT) + -rm -f libmetis/libmetis_a-bucketsort.$(OBJEXT) + -rm -f libmetis/libmetis_a-checkgraph.$(OBJEXT) + -rm -f libmetis/libmetis_a-coarsen.$(OBJEXT) + -rm -f libmetis/libmetis_a-compress.$(OBJEXT) + -rm -f libmetis/libmetis_a-contig.$(OBJEXT) + -rm -f libmetis/libmetis_a-debug.$(OBJEXT) + -rm -f libmetis/libmetis_a-fm.$(OBJEXT) + -rm -f libmetis/libmetis_a-fortran.$(OBJEXT) + -rm -f libmetis/libmetis_a-frename.$(OBJEXT) + -rm -f libmetis/libmetis_a-gklib.$(OBJEXT) + -rm -f libmetis/libmetis_a-graph.$(OBJEXT) + -rm -f libmetis/libmetis_a-initpart.$(OBJEXT) + -rm -f libmetis/libmetis_a-kmetis.$(OBJEXT) + -rm -f libmetis/libmetis_a-kwayfm.$(OBJEXT) + -rm -f libmetis/libmetis_a-kwayrefine.$(OBJEXT) + -rm -f libmetis/libmetis_a-mcutil.$(OBJEXT) + -rm -f libmetis/libmetis_a-mesh.$(OBJEXT) + -rm -f libmetis/libmetis_a-meshpart.$(OBJEXT) + -rm -f libmetis/libmetis_a-minconn.$(OBJEXT) + -rm -f libmetis/libmetis_a-mincover.$(OBJEXT) + -rm -f libmetis/libmetis_a-mmd.$(OBJEXT) + -rm -f libmetis/libmetis_a-ometis.$(OBJEXT) + -rm -f libmetis/libmetis_a-options.$(OBJEXT) + -rm -f libmetis/libmetis_a-parmetis.$(OBJEXT) + -rm -f libmetis/libmetis_a-pmetis.$(OBJEXT) + -rm -f libmetis/libmetis_a-refine.$(OBJEXT) + -rm -f libmetis/libmetis_a-separator.$(OBJEXT) + -rm -f libmetis/libmetis_a-sfm.$(OBJEXT) + -rm -f libmetis/libmetis_a-srefine.$(OBJEXT) + -rm -f libmetis/libmetis_a-stat.$(OBJEXT) + -rm -f libmetis/libmetis_a-timing.$(OBJEXT) + -rm -f libmetis/libmetis_a-util.$(OBJEXT) + -rm -f libmetis/libmetis_a-wspace.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -1580,20 +1607,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1737,14 +1750,14 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/externals/parmetis/Makefile.in b/externals/parmetis/Makefile.in index 1cb9561a5f4..3862f7ec826 100644 --- a/externals/parmetis/Makefile.in +++ b/externals/parmetis/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +16,6 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +36,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/parmetis -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -69,8 +52,10 @@ AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ libparmetis_a_AR = $(AR) $(ARFLAGS) libparmetis_a_LIBADD = am__dirstamp = $(am__leading_dot)dirstamp @@ -115,18 +100,6 @@ am__objects_1 = libparmetis/libparmetis_a-akwayfm.$(OBJEXT) \ libparmetis/libparmetis_a-xyzpart.$(OBJEXT) am_libparmetis_a_OBJECTS = $(am__objects_1) libparmetis_a_OBJECTS = $(am_libparmetis_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -134,26 +107,21 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libparmetis_a_SOURCES) DIST_SOURCES = $(libparmetis_a_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -515,7 +483,45 @@ libparmetis.a: $(libparmetis_a_OBJECTS) $(libparmetis_a_DEPENDENCIES) $(EXTRA_li mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f libparmetis/*.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-akwayfm.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-ametis.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-balancemylink.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-comm.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-csrmatch.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-ctrl.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-debug.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-diffutil.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-frename.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-gkmetis.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-gkmpi.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-graph.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-initbalance.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-initmsection.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-initpart.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-kmetis.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-kwayrefine.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-match.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-mdiffusion.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-mesh.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-mmetis.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-move.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-msetup.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-node_refine.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-ometis.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-pspases.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-redomylink.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-remap.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-renumber.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-rmetis.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-selectq.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-serial.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-stat.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-timer.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-util.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-wave.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-weird.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-wspace.$(OBJEXT) + -rm -f libparmetis/libparmetis_a-xyzpart.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -1171,20 +1177,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1326,14 +1318,14 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/externals/tecio/Makefile.in b/externals/tecio/Makefile.in index 6825c36b6f6..a0bba57165b 100644 --- a/externals/tecio/Makefile.in +++ b/externals/tecio/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,23 +16,6 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +36,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/tecio -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -69,8 +52,10 @@ AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ libtecio_a_AR = $(AR) $(ARFLAGS) libtecio_a_LIBADD = am__dirstamp = $(am__leading_dot)dirstamp @@ -94,18 +79,6 @@ am__objects_1 = tecsrc/libtecio_a-TranslatedString.$(OBJEXT) \ tecsrc/libtecio_a-tecxxx.$(OBJEXT) am_libtecio_a_OBJECTS = $(am__objects_1) libtecio_a_OBJECTS = $(am_libtecio_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -113,39 +86,32 @@ am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_0 = @echo " CXX " $@; CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_0 = @echo " CXXLD " $@; COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libtecio_a_SOURCES) DIST_SOURCES = $(libtecio_a_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -433,7 +399,24 @@ libtecio.a: $(libtecio_a_OBJECTS) $(libtecio_a_DEPENDENCIES) $(EXTRA_libtecio_a_ mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f tecsrc/*.$(OBJEXT) + -rm -f tecsrc/libtecio_a-TranslatedString.$(OBJEXT) + -rm -f tecsrc/libtecio_a-alloc.$(OBJEXT) + -rm -f tecsrc/libtecio_a-arrlist.$(OBJEXT) + -rm -f tecsrc/libtecio_a-auxdata.$(OBJEXT) + -rm -f tecsrc/libtecio_a-dataio.$(OBJEXT) + -rm -f tecsrc/libtecio_a-dataio4.$(OBJEXT) + -rm -f tecsrc/libtecio_a-dataset.$(OBJEXT) + -rm -f tecsrc/libtecio_a-dataset0.$(OBJEXT) + -rm -f tecsrc/libtecio_a-datautil.$(OBJEXT) + -rm -f tecsrc/libtecio_a-filestream.$(OBJEXT) + -rm -f tecsrc/libtecio_a-geom2.$(OBJEXT) + -rm -f tecsrc/libtecio_a-q_msg.$(OBJEXT) + -rm -f tecsrc/libtecio_a-q_unicode.$(OBJEXT) + -rm -f tecsrc/libtecio_a-set.$(OBJEXT) + -rm -f tecsrc/libtecio_a-strlist.$(OBJEXT) + -rm -f tecsrc/libtecio_a-strutil.$(OBJEXT) + -rm -f tecsrc/libtecio_a-tassert.$(OBJEXT) + -rm -f tecsrc/libtecio_a-tecxxx.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -774,20 +757,6 @@ GTAGS: && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -929,14 +898,14 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am From 6c170c8cbb1cd38e50315c8224144ba378a817b7 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 6 Oct 2015 15:57:28 +0100 Subject: [PATCH 112/269] Solved some dependencies issues. --- .gitignore | 1 + Common/lib/Makefile.am | 2 +- Common/lib/Makefile.in | 110 ++++++++++---------- SU2_CFD/include/definition_structure.hpp | 4 + SU2_CFD/include/solver_structure.hpp | 4 +- SU2_FSI/include/SU2_FSI.hpp | 3 + SU2_FSI/include/iteration_structure_fsi.hpp | 2 + SU2_FSI/obj/Makefile.am | 4 +- SU2_FSI/obj/Makefile.in | 8 +- 9 files changed, 77 insertions(+), 61 deletions(-) diff --git a/.gitignore b/.gitignore index c78684c91b7..6f5c8178680 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ Makefile externals/autotools/bin externals/autotools/include externals/autotools/share +externals/autotools/lib # externally downloaded tools externals/CoDi diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index 5879c24bcf1..7f6fa1df679 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -100,8 +100,8 @@ lib_sources = \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp \ ../src/gauss_structure.cpp \ - ../src/element_linear.cpp \ ../src/element_structure.cpp \ + ../src/element_linear.cpp \ ../src/interpolation_structure.cpp lib_cxxflags = diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 6dd7e1fe0dd..852f7a268fc 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -138,7 +138,7 @@ am__libSU2_a_SOURCES_DIST = \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp ../src/gauss_structure.cpp \ - ../src/element_linear.cpp ../src/element_structure.cpp \ + ../src/element_structure.cpp ../src/element_linear.cpp \ ../src/interpolation_structure.cpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/libSU2_a-config_structure.$(OBJEXT) \ @@ -154,8 +154,8 @@ am__objects_1 = ../src/libSU2_a-config_structure.$(OBJEXT) \ ../src/libSU2_a-linear_solvers_structure_b.$(OBJEXT) \ ../src/libSU2_a-datatype_structure.$(OBJEXT) \ ../src/libSU2_a-gauss_structure.$(OBJEXT) \ - ../src/libSU2_a-element_linear.$(OBJEXT) \ ../src/libSU2_a-element_structure.$(OBJEXT) \ + ../src/libSU2_a-element_linear.$(OBJEXT) \ ../src/libSU2_a-interpolation_structure.$(OBJEXT) @BUILD_NORMAL_TRUE@am_libSU2_a_OBJECTS = $(am__objects_1) libSU2_a_OBJECTS = $(am_libSU2_a_OBJECTS) @@ -204,7 +204,7 @@ am__libSU2_AD_a_SOURCES_DIST = \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp ../src/gauss_structure.cpp \ - ../src/element_linear.cpp ../src/element_structure.cpp \ + ../src/element_structure.cpp ../src/element_linear.cpp \ ../src/interpolation_structure.cpp am__objects_2 = ../src/libSU2_AD_a-config_structure.$(OBJEXT) \ ../src/libSU2_AD_a-dual_grid_structure.$(OBJEXT) \ @@ -219,8 +219,8 @@ am__objects_2 = ../src/libSU2_AD_a-config_structure.$(OBJEXT) \ ../src/libSU2_AD_a-linear_solvers_structure_b.$(OBJEXT) \ ../src/libSU2_AD_a-datatype_structure.$(OBJEXT) \ ../src/libSU2_AD_a-gauss_structure.$(OBJEXT) \ - ../src/libSU2_AD_a-element_linear.$(OBJEXT) \ ../src/libSU2_AD_a-element_structure.$(OBJEXT) \ + ../src/libSU2_AD_a-element_linear.$(OBJEXT) \ ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT) @BUILD_REVERSE_TRUE@am_libSU2_AD_a_OBJECTS = $(am__objects_2) libSU2_AD_a_OBJECTS = $(am_libSU2_AD_a_OBJECTS) @@ -270,7 +270,7 @@ am__libSU2_DIRECTDIFF_a_SOURCES_DIST = \ ../src/matrix_structure.cpp ../src/mpi_structure.cpp \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp ../src/gauss_structure.cpp \ - ../src/element_linear.cpp ../src/element_structure.cpp \ + ../src/element_structure.cpp ../src/element_linear.cpp \ ../src/interpolation_structure.cpp am__objects_3 = ../src/libSU2_DIRECTDIFF_a-config_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-dual_grid_structure.$(OBJEXT) \ @@ -285,8 +285,8 @@ am__objects_3 = ../src/libSU2_DIRECTDIFF_a-config_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-linear_solvers_structure_b.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-datatype_structure.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-gauss_structure.$(OBJEXT) \ - ../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-element_structure.$(OBJEXT) \ + ../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT) \ ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT) @BUILD_DIRECTDIFF_TRUE@am_libSU2_DIRECTDIFF_a_OBJECTS = \ @BUILD_DIRECTDIFF_TRUE@ $(am__objects_3) @@ -517,8 +517,8 @@ lib_sources = \ ../src/linear_solvers_structure_b.cpp \ ../src/datatype_structure.cpp \ ../src/gauss_structure.cpp \ - ../src/element_linear.cpp \ ../src/element_structure.cpp \ + ../src/element_linear.cpp \ ../src/interpolation_structure.cpp @@ -624,10 +624,10 @@ clean-noinstLIBRARIES: ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-gauss_structure.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) -../src/libSU2_a-element_linear.$(OBJEXT): ../src/$(am__dirstamp) \ - ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-element_structure.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_a-element_linear.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDENCIES) @@ -660,10 +660,10 @@ libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDEN ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-gauss_structure.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) -../src/libSU2_AD_a-element_linear.$(OBJEXT): ../src/$(am__dirstamp) \ - ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-element_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_AD_a-element_linear.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_AD_a_DEPENDENCIES) @@ -696,10 +696,10 @@ libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_A ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-gauss_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-element_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../src/libSU2_DIRECTDIFF_a-element_linear.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) libSU2_DIRECTDIFF.a: $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_DEPENDENCIES) $(EXTRA_libSU2_DIRECTDIFF_a_DEPENDENCIES) @@ -1008,20 +1008,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` -../src/libSU2_a-element_linear.o: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo -c -o ../src/libSU2_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_a-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp - -../src/libSU2_a-element_linear.obj: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo -c -o ../src/libSU2_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_a-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` - ../src/libSU2_a-element_structure.o: ../src/element_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_structure.Tpo -c -o ../src/libSU2_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_a-element_structure.Po @@ -1036,6 +1022,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +../src/libSU2_a-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo -c -o ../src/libSU2_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/libSU2_a-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo -c -o ../src/libSU2_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + ../src/libSU2_a-interpolation_structure.o: ../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo -c -o ../src/libSU2_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_a-interpolation_structure.Po @@ -1232,20 +1232,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` -../src/libSU2_AD_a-element_linear.o: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo -c -o ../src/libSU2_AD_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_AD_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp - -../src/libSU2_AD_a-element_linear.obj: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo -c -o ../src/libSU2_AD_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_AD_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` - ../src/libSU2_AD_a-element_structure.o: ../src/element_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Tpo -c -o ../src/libSU2_AD_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_structure.Po @@ -1260,6 +1246,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +../src/libSU2_AD_a-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo -c -o ../src/libSU2_AD_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_AD_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/libSU2_AD_a-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo -c -o ../src/libSU2_AD_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_AD_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_AD_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_AD_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + ../src/libSU2_AD_a-interpolation_structure.o: ../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_AD_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_AD_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_AD_a-interpolation_structure.Tpo -c -o ../src/libSU2_AD_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_AD_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_AD_a-interpolation_structure.Po @@ -1456,20 +1456,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-gauss_structure.obj `if test -f '../src/gauss_structure.cpp'; then $(CYGPATH_W) '../src/gauss_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/gauss_structure.cpp'; fi` -../src/libSU2_DIRECTDIFF_a-element_linear.o: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_DIRECTDIFF_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp - -../src/libSU2_DIRECTDIFF_a-element_linear.obj: ../src/element_linear.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_DIRECTDIFF_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` - ../src/libSU2_DIRECTDIFF_a-element_structure.o: ../src/element_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_structure.o `test -f '../src/element_structure.cpp' || echo '$(srcdir)/'`../src/element_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_structure.Po @@ -1484,6 +1470,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_structure.obj `if test -f '../src/element_structure.cpp'; then $(CYGPATH_W) '../src/element_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_structure.cpp'; fi` +../src/libSU2_DIRECTDIFF_a-element_linear.o: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_linear.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_DIRECTDIFF_a-element_linear.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.o `test -f '../src/element_linear.cpp' || echo '$(srcdir)/'`../src/element_linear.cpp + +../src/libSU2_DIRECTDIFF_a-element_linear.obj: ../src/element_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-element_linear.obj -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-element_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/element_linear.cpp' object='../src/libSU2_DIRECTDIFF_a-element_linear.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-element_linear.obj `if test -f '../src/element_linear.cpp'; then $(CYGPATH_W) '../src/element_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/element_linear.cpp'; fi` + ../src/libSU2_DIRECTDIFF_a-interpolation_structure.o: ../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -MT ../src/libSU2_DIRECTDIFF_a-interpolation_structure.o -MD -MP -MF ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-interpolation_structure.Tpo -c -o ../src/libSU2_DIRECTDIFF_a-interpolation_structure.o `test -f '../src/interpolation_structure.cpp' || echo '$(srcdir)/'`../src/interpolation_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-interpolation_structure.Tpo ../src/$(DEPDIR)/libSU2_DIRECTDIFF_a-interpolation_structure.Po diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index e60f899b492..dd1280c1ee9 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -34,6 +34,8 @@ #include +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" #include "solver_structure.hpp" #include "integration_structure.hpp" #include "output_structure.hpp" @@ -43,6 +45,8 @@ #include "../../Common/include/config_structure.hpp" #include "../../Common/include/interpolation_structure.hpp" + + using namespace std; /*! diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index d54564cf500..7d475ffd1fe 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -44,10 +44,10 @@ #include #include "fluid_model.hpp" -#include "../../Common/include/gauss_structure.hpp" -#include "../../Common/include/element_structure.hpp" #include "numerics_structure.hpp" #include "variable_structure.hpp" +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/config_structure.hpp" #include "../../Common/include/matrix_structure.hpp" diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp index 81a0b173f7c..9e095babba8 100644 --- a/SU2_FSI/include/SU2_FSI.hpp +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -41,6 +41,8 @@ #include "../../Common/include/interpolation_structure.hpp" +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" #include "../../SU2_CFD/include/solver_structure.hpp" #include "../../SU2_CFD/include/output_structure.hpp" #include "../../SU2_CFD/include/integration_structure.hpp" @@ -53,6 +55,7 @@ #include "../../Common/include/config_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" + #include "../include/iteration_structure_fsi.hpp" using namespace std; diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp index 9ba45da4bb5..f3a3a4fd657 100644 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -34,6 +34,8 @@ #include +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" #include "../../SU2_CFD/include/solver_structure.hpp" #include "../../SU2_CFD/include/integration_structure.hpp" #include "../../SU2_CFD/include/output_structure.hpp" diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index b80810caa8a..7ee420ebf45 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -41,7 +41,9 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/include/numerics_structure.hpp su2_fsi_cxx_flags = su2_fsi_ldadd = diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index d7ac6e04535..a96bff9e052 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -87,7 +87,9 @@ am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../src/SU2_FSI.cpp ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/include/numerics_structure.hpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ @@ -353,7 +355,9 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../include/iteration_structure_fsi.hpp \ ../src/iteration_structure_fsi.cpp \ ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/include/numerics_structure.hpp # always link to built dependencies from ./externals From a3c4ce55fa80daf8c8238baef83dba8fb8508ec9 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 6 Oct 2015 16:24:14 +0100 Subject: [PATCH 113/269] More dependency issues... --- SU2_FSI/obj/Makefile.am | 13 ++--- SU2_FSI/obj/Makefile.in | 108 +++++++++++++++++++++++++++++++++------- 2 files changed, 96 insertions(+), 25 deletions(-) diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index 7ee420ebf45..f20ff11b688 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -43,7 +43,11 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/definition_structure.hpp \ ../../SU2_CFD/src/definition_structure.cpp \ ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/include/numerics_structure.hpp + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp su2_fsi_cxx_flags = su2_fsi_ldadd = @@ -53,9 +57,6 @@ su2_fsi_ldadd += \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-gauss_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-element_linear.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-element_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o \ @@ -75,9 +76,6 @@ su2_fsi_ldadd += \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ @@ -102,7 +100,6 @@ su2_fsi_ldadd += \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in index a96bff9e052..ed3658263d4 100644 --- a/SU2_FSI/obj/Makefile.in +++ b/SU2_FSI/obj/Makefile.in @@ -89,20 +89,25 @@ am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/definition_structure.hpp \ ../../SU2_CFD/src/definition_structure.cpp \ ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/include/numerics_structure.hpp + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) + ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) @BUILD_NORMAL_TRUE@am____bin_SU2_FSI_OBJECTS = $(am__objects_1) ___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-gauss_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-element_linear.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-element_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o \ @@ -122,9 +127,6 @@ am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ @@ -149,7 +151,6 @@ am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ @@ -357,7 +358,11 @@ su2_fsi_sources = ../include/SU2_FSI.hpp \ ../../SU2_CFD/include/definition_structure.hpp \ ../../SU2_CFD/src/definition_structure.cpp \ ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/include/numerics_structure.hpp + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp # always link to built dependencies from ./externals @@ -385,9 +390,6 @@ su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-gauss_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-element_linear.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-element_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ ../../SU2_CFD/src/___bin_SU2_CFD-iteration_structure.o \ @@ -407,9 +409,6 @@ su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ @@ -434,7 +433,6 @@ su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ @@ -553,6 +551,18 @@ clean-binPROGRAMS: ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) @@ -563,6 +573,10 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) + -rm -f ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) -rm -f ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) -rm -f ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) @@ -570,6 +584,10 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ @@ -631,6 +649,62 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o: ../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj: ../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o: ../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj: ../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ From 2dba24282d331547b25712f5c8e44dcd4f706e7c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 7 Oct 2015 19:24:56 +0100 Subject: [PATCH 114/269] Transfer: bug fix and interpolation check. --- Common/src/interpolation_structure.cpp | 24 +++++++++++++----------- SU2_CFD/src/transfer_structure.cpp | 8 ++++++++ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index bed9a179f7d..f1f87026a8e 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -222,7 +222,7 @@ CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ - unsigned long iPoint, jPoint, iVertex, jVertex; + unsigned long iVertex, jVertex; unsigned short iDim; unsigned short nDim = donor_geometry->GetnDim(); @@ -311,14 +311,14 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ nLocalVertex_Donor = 0; for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { - iPoint = donor_geometry->vertex[markDonor][iVertex]->GetNode(); - if (donor_geometry->node[iPoint]->GetDomain()) nLocalVertex_Donor++; + iPointDonor = donor_geometry->vertex[markDonor][iVertex]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()) nLocalVertex_Donor++; } nLocalVertex_Target = 0; for (iVertex = 0; iVertex < nVertexTarget; iVertex++) { - iPoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); - if (target_geometry->node[iPoint]->GetDomain()) nLocalVertex_Target++; + iPointTarget = target_geometry->vertex[markTarget][iVertex]->GetNode(); + if (target_geometry->node[iPointTarget]->GetDomain()) nLocalVertex_Target++; } Buffer_Send_nVertex_Donor[0] = nLocalVertex_Donor; @@ -409,11 +409,13 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); } - if (((dist < mindist) && (iProcessor != rank)) || - ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { - mindist = dist; pProcessor = iProcessor; pPoint = jPoint; - pGlobalPoint = Global_Point_Donor; +// if (((dist < mindist) && (iProcessor != rank)) || +// ((dist < mindist) && (iProcessor == rank) && (Point_Donor != Point_Target))) { + if (dist < mindist) { + mindist = dist; pProcessor = iProcessor; pGlobalPoint = Global_Point_Donor; } + + if (dist == 0.0) break; } } @@ -423,8 +425,8 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(donorindex,1.0); - //unsigned long gpoint = target_geometry->vertex[markTarget][iVertexTarget]->GetNode(); - //cout <<" Nearest Neighbor for target g.i " << target_geometry->node[gpoint]->GetGlobalIndex() <<" is "<< pGlobalPoint << "; d = " << mindist<< endl; +// unsigned long gpoint = target_geometry->vertex[markTarget][iVertexTarget]->GetNode(); +// cout <<" Nearest Neighbor for target g.i " << target_geometry->node[gpoint]->GetGlobalIndex() <<" is "<< pGlobalPoint << "; d = " << mindist<< endl; } } diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 9928f2b7db5..c9d196dcbaa 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -770,6 +770,8 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + cout << " ------------------------------ BOUNDARY " << iMarkerInt << " ------------------------------ " << endl; + Marker_Donor = -1; Marker_Target = -1; @@ -967,11 +969,15 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + cout << "Target Point " << Point_Target; + /*--- If this processor owns the node ---*/ if (target_geometry->node[Point_Target]->GetDomain()){ nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); + cout << " receives data from " << nDonorPoints << " donor points: " << endl; + /*--- As we will be adding data, we need to set the variable to 0 ---*/ for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; @@ -984,6 +990,8 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo /*--- We need to get the donor coefficient in a way like this: ---*/ donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); + cout << "Donor Point " << Donor_Global_Index << " has a coefficient of " << donorCoeff << endl; + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); From 9aa64d5ff420483164e82643fc9de09f24dbfa06 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 9 Oct 2015 18:58:55 +0100 Subject: [PATCH 115/269] FSI: preliminary implementation in SU2_CFD using iteration structure --- SU2_CFD/include/definition_structure.hpp | 7 +- SU2_CFD/include/driver_structure.hpp | 153 ++- SU2_CFD/include/iteration_structure.hpp | 283 ++++- SU2_CFD/src/SU2_CFD.cpp | 54 +- SU2_CFD/src/definition_structure.cpp | 22 +- SU2_CFD/src/driver_structure.cpp | 473 +++++++- SU2_CFD/src/iteration_structure.cpp | 1395 +++++++++++++++++++++- SU2_FSI/src/iteration_structure_fsi.cpp | 84 +- 8 files changed, 2303 insertions(+), 168 deletions(-) diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index bf0ae7b2b53..a3801a373af 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -80,8 +80,11 @@ void Driver_Preprocessing(CDriver **driver, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CConfig **config, - unsigned short val_nZone); + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, + CConfig **config, + unsigned short val_nZone, + unsigned short val_nDim); /*! diff --git a/SU2_CFD/include/driver_structure.hpp b/SU2_CFD/include/driver_structure.hpp index 9c3c3ae4ce6..dca35323af1 100644 --- a/SU2_CFD/include/driver_structure.hpp +++ b/SU2_CFD/include/driver_structure.hpp @@ -73,8 +73,11 @@ class CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -104,7 +107,10 @@ class CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox){}; + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container){ + }; /*! * \brief Definition of the physics iteration class or within a single zone. * \param[in] iteration_container - Pointer to the iteration container to be instantiated. @@ -153,6 +159,64 @@ class CDriver { */ void Numerics_Preprocessing(CNumerics ****numerics_container, CSolver ***solver_container, CGeometry **geometry, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] donorZone - zone in which the displacements will be predicted. + * \param[in] targetZone - zone which receives the predicted displacements. + */ + virtual void Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - zone in which the tractions will be predicted. + * \param[in] targetZone - zone which receives the predicted traction. + */ + virtual void Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - zone in which the displacements will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + virtual void Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - zone from which the tractions will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + virtual void Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + virtual void Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + virtual void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; + }; /*! * \class CSingleZoneDriver @@ -178,8 +242,11 @@ class CSingleZoneDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -209,7 +276,9 @@ class CSingleZoneDriver : public CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox); + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); }; @@ -239,8 +308,11 @@ class CMultiZoneDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -270,7 +342,9 @@ class CMultiZoneDriver : public CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox); + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); }; @@ -299,8 +373,11 @@ class CFSIDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -330,7 +407,67 @@ class CFSIDriver : public CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox); + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); + + /*! + * \brief Predict the structural displacements to pass them into the fluid solver on a BGS implementation. + * \param[in] donorZone - zone in which the displacements will be predicted. + * \param[in] targetZone - zone which receives the predicted displacements. + */ + void Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Predict the fluid tractions to pass them into the structural solver on a BGS implementation. + * \param[in] donorZone - zone in which the tractions will be predicted. + * \param[in] targetZone - zone which receives the predicted traction. + */ + void Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Transfer the displacements computed on the structural solver into the fluid solver. + * \param[in] donorZone - zone in which the displacements will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + void Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Transfer the tractions computed on the fluid solver into the structural solver. + * \param[in] donorZone - zone from which the tractions will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + void Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Apply a relaxation method into the computed displacements. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + void Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); + + /*! + * \brief Apply a relaxation method into the computed tractions. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); }; diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index 3fd1d4db3a7..3102d1cf5bd 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -88,12 +88,32 @@ class CIteration { virtual void Iterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + + /*! + * \brief A virtual member. Created to check while avoiding clashes with other implementations. Meant to disappear. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + virtual void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief A virtual member. * \param[in] ??? - Description here. */ - virtual void Update(); + virtual void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief A virtual member. @@ -157,12 +177,32 @@ class CMeanFlowIteration : public CIteration { void Iterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + + /*! + * \brief Perform a single iteration of the mean flow system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Updates the containers for the mean flow system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the mean flow system. @@ -226,11 +266,30 @@ class CTNE2Iteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the TNE2 system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Updates the containers for the TNE2 system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the TNE2 system. @@ -294,11 +353,31 @@ class CWaveIteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the wave system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the wave system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the wave system. @@ -362,11 +441,31 @@ class CHeatIteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the heat system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the heat system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the heat system. @@ -430,11 +529,31 @@ class CPoissonIteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the poisson system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the poisson system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the poisson system. @@ -498,11 +617,31 @@ class CFEAIteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the FEA system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the FEA system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the FEA system. @@ -568,11 +707,32 @@ class CFEM_StructuralAnalysis : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of structural analysis, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] iZone - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the FEM system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the FEM system. @@ -592,28 +752,6 @@ class CFEM_StructuralAnalysis : public CIteration { */ void Postprocess(); - -/*! - * \brief Iteration function for structural analysis using the Finite Element Method. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - - - - }; /*! @@ -658,11 +796,31 @@ class CAdjMeanFlowIteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the adjoint mean flow system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the adjoint mean flow system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the adjoint mean flow system. @@ -726,11 +884,31 @@ class CAdjTNE2Iteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the adjoint TNE2 system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the adjoint TNE2 system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the adjoint TNE2 system. @@ -794,11 +972,31 @@ class CDiscAdjMeanFlowIteration : public CIteration { CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + /*! + * \brief Perform a single iteration of the adjoint mean flow system, without updating the system. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + */ + void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); + /*! * \brief Updates the containers for the discrete adjoint mean flow system. * \param[in] ??? - Description here. */ - void Update(); + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short iZone); /*! * \brief Monitors the convergence and other metrics for the discrete adjoint mean flow system. @@ -856,6 +1054,25 @@ void FluidStructureIteration(COutput *output, CIntegration ***integration_contai CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned long iFluidIt, unsigned long nFluidIt); +/*! + * \brief Iteration function for structural analysis using the Finite Element Method. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + + /*! * \brief Imposes a gust via the grid velocities. * \author S. Padron diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 376b4fcd1bd..b4be0ff987d 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -71,6 +71,8 @@ int main(int argc, char *argv[]) { CSurfaceMovement **surface_movement = NULL; CVolumetricMovement **grid_movement = NULL; CFreeFormDefBox*** FFDBox = NULL; + CInterpolator ***interpolator_container = NULL; + CTransfer ***transfer_container = NULL; /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config file is specified, default.cfg is used) ---*/ @@ -99,6 +101,8 @@ int main(int argc, char *argv[]) { surface_movement = new CSurfaceMovement*[nZone]; grid_movement = new CVolumetricMovement*[nZone]; FFDBox = new CFreeFormDefBox**[nZone]; + interpolator_container= new CInterpolator**[nZone]; + transfer_container = new CTransfer**[nZone]; for (iZone = 0; iZone < nZone; iZone++) { solver_container[iZone] = NULL; @@ -109,6 +113,8 @@ int main(int argc, char *argv[]) { surface_movement[iZone] = NULL; grid_movement[iZone] = NULL; FFDBox[iZone] = NULL; + interpolator_container[iZone] = NULL; + transfer_container[iZone] = NULL; } /*--- Loop over all zones to initialize the various classes. In most @@ -197,7 +203,8 @@ int main(int argc, char *argv[]) { solver types from the config, instantiate the appropriate driver for the problem. ---*/ Driver_Preprocessing(&driver, iteration_container, solver_container, - geometry_container, integration_container, numerics_container, config_container, nZone); + geometry_container, integration_container, numerics_container, + interpolator_container, transfer_container, config_container, nZone, nDim); /*--- Instantiate the geometry movement classes for the solution of unsteady @@ -254,14 +261,14 @@ int main(int argc, char *argv[]) { /*--- Coupling between zones (limited to two zones at the moment) ---*/ - if (nZone == 2) { - if (rank == MASTER_NODE) - cout << endl <<"--------------------- Setting Coupling Between Zones --------------------" << endl; - geometry_container[ZONE_0][MESH_0]->MatchZone(config_container[ZONE_0], geometry_container[ZONE_1][MESH_0], - config_container[ZONE_1], ZONE_0, nZone); - geometry_container[ZONE_1][MESH_0]->MatchZone(config_container[ZONE_1], geometry_container[ZONE_0][MESH_0], - config_container[ZONE_0], ZONE_1, nZone); - } +// if (nZone == 2) { +// if (rank == MASTER_NODE) +// cout << endl <<"--------------------- Setting Coupling Between Zones --------------------" << endl; +// geometry_container[ZONE_0][MESH_0]->MatchZone(config_container[ZONE_0], geometry_container[ZONE_1][MESH_0], +// config_container[ZONE_1], ZONE_0, nZone); +// geometry_container[ZONE_1][MESH_0]->MatchZone(config_container[ZONE_1], geometry_container[ZONE_0][MESH_0], +// config_container[ZONE_0], ZONE_1, nZone); +// } /*--- Definition of the output class (one for all zones). The output class manages the writing of all restart, volume solution, surface solution, @@ -320,8 +327,8 @@ int main(int argc, char *argv[]) { while (ExtIter < config_container[ZONE_0]->GetnExtIter()) { /*--- Set the value of the external iteration. ---*/ - - config_container[ZONE_0]->SetExtIter(ExtIter); + for (iZone = 0; iZone < nZone; iZone++) + config_container[iZone]->SetExtIter(ExtIter); /*--- Read the target pressure ---*/ @@ -337,23 +344,24 @@ int main(int argc, char *argv[]) { /*--- Perform a single iteration of the chosen PDE solver. ---*/ - if (fsi){ - config_container[ZONE_1]->SetExtIter(ExtIter); - FluidStructureIteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, - iFluidIt, nFluidIt); - } - - else { +// if (fsi){ +// config_container[ZONE_1]->SetExtIter(ExtIter); +// FluidStructureIteration(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox, +// iFluidIt, nFluidIt); +// } +// +// else { /*--- Run a single iteration of the problem using the driver class. ---*/ - + driver->Run(iteration_container, output, integration_container, geometry_container, solver_container, numerics_container, - config_container, surface_movement, grid_movement, FFDBox); + config_container, surface_movement, grid_movement, FFDBox, + interpolator_container, transfer_container); - } +// } /*--- Synchronization point after a single solver iteration. Compute the wall clock time required. ---*/ diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index de3a7e7ca7d..47c13f84c28 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -192,8 +192,11 @@ void Driver_Preprocessing(CDriver **driver, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config_container, - unsigned short val_nZone) { + unsigned short val_nZone, + unsigned short val_nDim) { int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -202,6 +205,8 @@ void Driver_Preprocessing(CDriver **driver, /*--- For now, time spectral will use a single-zone driver. ---*/ bool time_spectral = (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL); + /*--- fsi implementations will use, as of now, BGS implentation. More to come. ---*/ + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); if (val_nZone == SINGLE_ZONE || time_spectral) { @@ -209,8 +214,18 @@ void Driver_Preprocessing(CDriver **driver, if (rank == MASTER_NODE) cout << "Instantiating a single zone driver for the problem. " << endl; *driver = new CSingleZoneDriver(iteration_container, solver_container, geometry_container, - integration_container, numerics_container, config_container, val_nZone); + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); + } else if ((val_nZone == 2) && fsi) { + + /*--- FSI problem: instantiate the FSI driver class. ---*/ + + if (rank == MASTER_NODE) cout << "Instantiating a Fluid-Structure Interaction driver for the problem. " << endl; + *driver = new CFSIDriver(iteration_container, solver_container, geometry_container, + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); + } else { /*--- Multi-zone problem: instantiate the multi-zone driver class by default @@ -218,7 +233,8 @@ void Driver_Preprocessing(CDriver **driver, if (rank == MASTER_NODE) cout << "Instantiating a multi-zone driver for the problem. " << endl; *driver = new CMultiZoneDriver(iteration_container, solver_container, geometry_container, - integration_container, numerics_container, config_container, val_nZone); + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); /*--- Future multi-zone drivers instatiated here. ---*/ diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 5257779ae32..a0f1e4e2428 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -36,10 +36,14 @@ CDriver::CDriver(CIteration **iteration_container, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config_container, - unsigned short val_nZone) { + unsigned short val_nZone, + unsigned short val_nDim) { - unsigned short iMesh, iZone, iSol, nZone; + unsigned short iMesh, iZone, jZone, iSol; + unsigned short nZone, nDim; int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -47,6 +51,7 @@ CDriver::CDriver(CIteration **iteration_container, #endif nZone = val_nZone; + nDim = val_nDim; for (iZone = 0; iZone < nZone; iZone++) { @@ -113,6 +118,32 @@ CDriver::CDriver(CIteration **iteration_container, } + /*--- Definition of the interface and transfer conditions between different zones. + *--- The transfer container is defined for zones paired one to one. + *--- This only works for a multizone problem (nZone > 1). + *--- Also, at the moment this capability is limited to two zones (nZone < 3). + *--- This will change in the future. ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------- Multizone Interface Preprocessing -------------------" << endl; + + + if ((nZone > 1) && (nZone < 3)) { + + for (iZone = 0; iZone < nZone; iZone++){ + transfer_container[iZone] = new CTransfer*[nZone]; + interpolator_container[iZone] = new CInterpolator*[nZone]; + for (jZone = 0; jZone < nZone; jZone++){ + transfer_container[iZone][jZone] = NULL; + interpolator_container[iZone][jZone] = NULL; + } + } + + Interface_Preprocessing(transfer_container, interpolator_container, geometry_container, + config_container, solver_container, nZone, nDim); + + } + } @@ -1507,14 +1538,20 @@ CSingleZoneDriver::CSingleZoneDriver(CIteration **iteration_container, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config_container, - unsigned short val_nZone) : CDriver(iteration_container, + unsigned short val_nZone, + unsigned short val_nDim) : CDriver(iteration_container, solver_container, geometry_container, integration_container, numerics_container, + interpolator_container, + transfer_container, config_container, - val_nZone) { } + val_nZone, + val_nDim) { } CSingleZoneDriver::~CSingleZoneDriver(void) { } @@ -1527,19 +1564,36 @@ void CSingleZoneDriver::Run(CIteration **iteration_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox) { + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container) { + + unsigned short iZone = ZONE_0; /*--- Run an iteration of the physics within this single zone. We assume that the zone of interest is in the ZONE_0 container position. ---*/ iteration_container[ZONE_0]->Preprocess(); /*--- Does nothing for now. ---*/ - iteration_container[ZONE_0]->Iterate(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - - iteration_container[ZONE_0]->Update(); /*--- Does nothing for now. ---*/ + bool checkSubiter = true; + if (!checkSubiter){ + iteration_container[ZONE_0]->Iterate(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + } + else { + + cout << "YES! I'M SUBITERATING!!!!" << endl; + iteration_container[ZONE_0]->Subiterate(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ZONE_0); + + iteration_container[ZONE_0]->Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ZONE_0); + } + iteration_container[ZONE_0]->Monitor(); /*--- Does nothing for now. ---*/ iteration_container[ZONE_0]->Output(); /*--- Does nothing for now. ---*/ @@ -1554,14 +1608,20 @@ CMultiZoneDriver::CMultiZoneDriver(CIteration **iteration_container, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config_container, - unsigned short val_nZone) : CDriver(iteration_container, + unsigned short val_nZone, + unsigned short val_nDim) : CDriver(iteration_container, solver_container, geometry_container, integration_container, numerics_container, + interpolator_container, + transfer_container, config_container, - val_nZone) { } + val_nZone, + val_nDim) { } CMultiZoneDriver::~CMultiZoneDriver(void) { } @@ -1575,7 +1635,9 @@ void CMultiZoneDriver::Run(CIteration **iteration_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox) { + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container) { unsigned short iZone; @@ -1591,7 +1653,9 @@ void CMultiZoneDriver::Run(CIteration **iteration_container, solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox); - iteration_container[iZone]->Update(); /*--- Does nothing for now. ---*/ + iteration_container[iZone]->Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, iZone); /*--- Does nothing for now. ---*/ iteration_container[iZone]->Monitor(); /*--- Does nothing for now. ---*/ @@ -1609,14 +1673,20 @@ CFSIDriver::CFSIDriver(CIteration **iteration_container, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config_container, - unsigned short val_nZone) : CDriver(iteration_container, + unsigned short val_nZone, + unsigned short val_nDim) : CDriver(iteration_container, solver_container, geometry_container, integration_container, numerics_container, + interpolator_container, + transfer_container, config_container, - val_nZone) { } + val_nZone, + val_nDim) { } CFSIDriver::~CFSIDriver(void) { } @@ -1629,10 +1699,375 @@ void CFSIDriver::Run(CIteration **iteration_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox) { - - /*--- For example, FSI BGS implementation could go here here. ---*/ + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container) { + + /*--- As of now, we are coding it for just 2 zones. ---*/ + /*--- This will become more general, but we need to modify the configuration for that ---*/ + unsigned short ZONE_FLOW = 0, ZONE_STRUCT = 1; + unsigned short iZone; + + unsigned long IntIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[IntIter]->SetIntIter(IntIter); + unsigned long iFSIIter = 0; + unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); + unsigned long ExtIter = config_container[ZONE_FLOW]->GetExtIter(); + + bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*-----------------------------------------------------------------*/ + /*---------------- Predict structural displacements ---------------*/ + /*-----------------------------------------------------------------*/ + +// FSI_Disp_Predictor(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox); + + + Predict_Displacements(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, + ZONE_STRUCT, ZONE_FLOW); + + while (iFSIIter < nFSIIter){ + + /*-----------------------------------------------------------------*/ + /*------------------------ Update mesh ----------------------------*/ + /*-----------------------------------------------------------------*/ + +// FSI_Disp_Transfer(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox, transfer_container); + + Transfer_Displacements(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, transfer_container, + ZONE_STRUCT, ZONE_FLOW); + + /*-----------------------------------------------------------------*/ + /*-------------------- Fluid subiteration -------------------------*/ + /*-----------------------------------------------------------------*/ + +// Flow_Subiteration(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox); + + iteration_container[ZONE_FLOW]->Subiterate(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ZONE_FLOW); + + /*--- Write the convergence history for the fluid (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_FLOW); + + /*-----------------------------------------------------------------*/ + /*------------------- Set FEA loads from fluid --------------------*/ + /*-----------------------------------------------------------------*/ + +// FSI_Load_Transfer(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox, transfer_container, ExtIter); + + Transfer_Tractions(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, transfer_container, + ZONE_FLOW, ZONE_STRUCT); + + /*-----------------------------------------------------------------*/ + /*------------------ Structural subiteration ----------------------*/ + /*-----------------------------------------------------------------*/ + +// if (fem_solver){ +// FEM_Subiteration(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox); +// } +// else{ +// FEA_Subiteration(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox); +// } + + iteration_container[ZONE_STRUCT]->Subiterate(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ZONE_STRUCT); + + /*--- Write the convergence history for the structure (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUCT); + + /*-----------------------------------------------------------------*/ + /*----------------- Displacements relaxation ----------------------*/ + /*-----------------------------------------------------------------*/ + +// FSI_Disp_Relaxation(output, geometry_container, solver_container, config_container, iFSIIter); + + Relaxation_Displacements(output, geometry_container, solver_container, config_container, + ZONE_STRUCT, ZONE_FLOW, iFSIIter); + + /*-----------------------------------------------------------------*/ + /*-------------------- Check convergence --------------------------*/ + /*-----------------------------------------------------------------*/ + + integration_container[ZONE_STRUCT][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_STRUCT][MESH_0], config_container[ZONE_STRUCT], + solver_container[ZONE_STRUCT][MESH_0][FEA_SOL], iFSIIter); + + if (integration_container[ZONE_STRUCT][FEA_SOL]->GetConvergence_FSI()) break; + + /*-----------------------------------------------------------------*/ + /*--------------------- Update iFSIIter ---------------------------*/ + /*-----------------------------------------------------------------*/ + + iFSIIter++; + + } + + /*-----------------------------------------------------------------*/ + /*-------------------- Update fluid solver ------------------------*/ + /*-----------------------------------------------------------------*/ + +// Flow_Update(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox, ExtIter); + + iteration_container[ZONE_FLOW]->Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ZONE_FLOW); + + /*-----------------------------------------------------------------*/ + /*----------------- Update structural solver ----------------------*/ + /*-----------------------------------------------------------------*/ + +// if (fem_solver){ +// FEM_Update(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, ExtIter); +// } +// else{ +// FEA_Update(output, integration_container, geometry_container, +// solver_container, config_container, ExtIter); +// } + + iteration_container[ZONE_STRUCT]->Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ZONE_STRUCT); + + + /*-----------------------------------------------------------------*/ + /*--------------- Update convergence parameter --------------------*/ + /*-----------------------------------------------------------------*/ + integration_container[ZONE_STRUCT][FEA_SOL]->SetConvergence_FSI(false); + } +void CFSIDriver::Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone){ + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + solver_container[donorZone][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[donorZone], config_container[donorZone], + solver_container[donorZone]); + + /*--- For parallel simulations we need to communicate the predicted solution before updating the fluid mesh ---*/ + + solver_container[donorZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred(geometry_container[donorZone][MESH_0], config_container[donorZone]); + + +} + +void CFSIDriver::Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone){ + +} + +void CFSIDriver::Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){ + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + bool MatchingMesh = config_container[targetZone]->GetMatchingMesh(); + + /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ + + switch (config_container[targetZone]->GetKind_TransferMethod()) { + case BROADCAST_DATA: + if (MatchingMesh){ + transfer_container[donorZone][targetZone]->Broadcast_InterfaceData_Matching(solver_container[donorZone][MESH_0][FEA_SOL],solver_container[targetZone][MESH_0][FLOW_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); + + } + else { + transfer_container[donorZone][targetZone]->Broadcast_InterfaceData_Interpolate(solver_container[donorZone][MESH_0][FEA_SOL],solver_container[targetZone][MESH_0][FLOW_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); + + } + break; + case SCATTER_DATA: + if (MatchingMesh){ + transfer_container[donorZone][targetZone]->Scatter_InterfaceData(solver_container[donorZone][MESH_0][FEA_SOL],solver_container[targetZone][MESH_0][FLOW_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); + } + else { + cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + break; + case ALLGATHER_DATA: + if (MatchingMesh){ + cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + else { + transfer_container[donorZone][targetZone]->Allgather_InterfaceData(solver_container[donorZone][MESH_0][FEA_SOL],solver_container[targetZone][MESH_0][FLOW_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); + } + break; + case LEGACY_METHOD: + if (MatchingMesh){ + solver_container[targetZone][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[targetZone], grid_movement[targetZone], + config_container[targetZone], config_container[donorZone], + geometry_container[donorZone], solver_container[donorZone]); + } + else { + solver_container[targetZone][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[targetZone], grid_movement[targetZone], + config_container[targetZone], config_container[donorZone], + geometry_container[donorZone], solver_container[donorZone]); + } + break; + } + +} + +void CFSIDriver::Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){ + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + bool MatchingMesh = config_container[donorZone]->GetMatchingMesh(); + + /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ + + unsigned short SolContainer_Position_fea = config_container[targetZone]->GetContainerPosition(RUNTIME_FEA_SYS); + + /*--- FEA equations -- Necessary as the SetFEA_Load routine is as of now contained in the structural solver ---*/ + unsigned long ExtIter = config_container[targetZone]->GetExtIter(); + config_container[targetZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ + + switch (config_container[donorZone]->GetKind_TransferMethod()) { + case BROADCAST_DATA: + if (MatchingMesh){ + transfer_container[donorZone][targetZone]->Broadcast_InterfaceData_Matching(solver_container[donorZone][MESH_0][FLOW_SOL],solver_container[targetZone][MESH_0][FEA_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + } + else { + transfer_container[donorZone][targetZone]->Broadcast_InterfaceData_Interpolate(solver_container[donorZone][MESH_0][FLOW_SOL],solver_container[targetZone][MESH_0][FEA_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + } + break; + case SCATTER_DATA: + if (MatchingMesh){ + transfer_container[donorZone][targetZone]->Scatter_InterfaceData(solver_container[donorZone][MESH_0][FLOW_SOL],solver_container[targetZone][MESH_0][FEA_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + } + else { + cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + break; + case ALLGATHER_DATA: + if (MatchingMesh){ + cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + else { + transfer_container[donorZone][targetZone]->Allgather_InterfaceData(solver_container[donorZone][MESH_0][FLOW_SOL],solver_container[targetZone][MESH_0][FEA_SOL], + geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], + config_container[donorZone], config_container[targetZone]); + } + break; + case LEGACY_METHOD: + if (MatchingMesh){ + solver_container[targetZone][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[donorZone], geometry_container[targetZone], geometry_container[donorZone], + config_container[targetZone], config_container[donorZone], numerics_container[targetZone][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } + else { + solver_container[targetZone][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[donorZone], geometry_container[targetZone], geometry_container[donorZone], + config_container[targetZone], config_container[donorZone], numerics_container[targetZone][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } + break; + } + +} + +void CFSIDriver::Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){ + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*-------------------- Aitken's relaxation ------------------------*/ + + /*------------------- Compute the coefficient ---------------------*/ + + solver_container[donorZone][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[donorZone], config_container[donorZone], + solver_container[donorZone], iFSIIter); + + /*----------------- Set the relaxation parameter ------------------*/ + + solver_container[donorZone][MESH_0][FEA_SOL]->SetAitken_Relaxation(geometry_container[donorZone], config_container[donorZone], + solver_container[donorZone]); + + + /*----------------- Communicate the predicted solution and the old one ------------------*/ + solver_container[donorZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred_Old(geometry_container[donorZone][MESH_0], config_container[donorZone]); + + +} + +void CFSIDriver::Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){ + +} + diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 97b3ee3dcc3..c200f3a9fe8 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -46,7 +46,26 @@ void CIteration::Iterate(COutput *output, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { } -void CIteration::Update() { } +void CIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } +void CIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CIteration::Monitor() { } void CIteration::Output() { } void CIteration::Postprocess() { } @@ -268,8 +287,231 @@ void CMeanFlowIteration::Iterate(COutput *output, } } +void CMeanFlowIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + su2double Physical_dt, Physical_t; + unsigned short iMesh; + unsigned short nZone = 1; + + bool time_spectral = (config_container[iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL); + if (time_spectral) { + nZone = config_container[iZone]->GetnTimeInstances(); + } + unsigned long IntIter = 0; config_container[iZone]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[iZone]->GetExtIter(); + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- Set the initial condition ---*/ + + solver_container[iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- Initial set up for unsteady problems with dynamic meshes. ---*/ + + /*--- Dynamic mesh update ---*/ + + if ((config_container[iZone]->GetGrid_Movement()) && (!time_spectral)) { + SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); + } + + /*--- Apply a Wind Gust ---*/ + + if (config_container[iZone]->GetWind_Gust()) { + SetWind_GustField(config_container[iZone], geometry_container[iZone], solver_container[iZone]); + } + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Update global parameters ---*/ + + if ((config_container[iZone]->GetKind_Solver() == EULER) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_EULER)) { + config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); + } + if ((config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_NAVIER_STOKES)) { + config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + } + if ((config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); + } + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, IntIter, iZone); + + if ((config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + + } + + /*--- Compute & store time-spectral source terms across all zones ---*/ + + if (time_spectral) + SetTimeSpectral(geometry_container, solver_container, config_container, nZone, (iZone+1)%nZone); + + /*--- Dual time stepping strategy ---*/ + + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + for (IntIter = 1; IntIter < config_container[iZone]->GetUnst_nIntIter(); IntIter++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + + /*--- Set the value of the internal iteration ---*/ + + config_container[iZone]->SetIntIter(IntIter); + + /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ + + if ((config_container[iZone]->GetKind_Solver() == EULER) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_EULER)) { + config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); + } + if ((config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_NAVIER_STOKES)) { + config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + } + if ((config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); + } + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, IntIter, iZone); + + /*--- Pseudo-timestepping the turbulence model ---*/ + + if ((config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + + } + + /*--- Call Dynamic mesh update if AEROELASTIC motion was specified ---*/ + if ((config_container[iZone]->GetGrid_Movement()) && (config_container[iZone]->GetAeroelastic_Simulation())) { + SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], FFDBox[iZone], + solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); + /*--- Apply a Wind Gust ---*/ + if (config_container[iZone]->GetWind_Gust()) { + if (IntIter % config_container[iZone]->GetAeroelasticIter() ==0) + SetWind_GustField(config_container[iZone], geometry_container[iZone], solver_container[iZone]); + } + } + + if (integration_container[iZone][FLOW_SOL]->GetConvergence()) break; + + } -void CMeanFlowIteration::Update() { } + } + +} +void CMeanFlowIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + su2double Physical_dt, Physical_t; + unsigned short iMesh; + + unsigned long ExtIter = config_container[iZone]->GetExtIter(); + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + /*--- Update dual time solver on all mesh levels ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + integration_container[iZone][FLOW_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][FLOW_SOL], config_container[iZone], iMesh); + integration_container[iZone][FLOW_SOL]->SetConvergence(false); + } + + /*--- Update dual time solver for the turbulence model ---*/ + + if ((config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { + integration_container[iZone][TURB_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TURB_SOL], config_container[iZone], MESH_0); + integration_container[iZone][TURB_SOL]->SetConvergence(false); + } + + /*--- Update dual time solver for the transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + integration_container[iZone][TRANS_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TRANS_SOL], config_container[iZone], MESH_0); + integration_container[iZone][TRANS_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[iZone]->GetDelta_UnstTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) + integration_container[iZone][FLOW_SOL]->SetConvergence(true); + + } + +} void CMeanFlowIteration::Monitor() { } void CMeanFlowIteration::Output() { } void CMeanFlowIteration::Postprocess() { } @@ -322,7 +564,59 @@ void CTNE2Iteration::Iterate(COutput *output, } -void CTNE2Iteration::Update() { } +void CTNE2Iteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = ExtIter; + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Set the initial condition ---*/ + solver_container[iZone][MESH_0][TNE2_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- Update global parameters ---*/ + if (config_container[iZone]->GetKind_Solver() == TNE2_EULER) + config_container[iZone]->SetGlobalParam(TNE2_EULER, RUNTIME_TNE2_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == TNE2_NAVIER_STOKES) + config_container[iZone]->SetGlobalParam(TNE2_NAVIER_STOKES, RUNTIME_TNE2_SYS, ExtIter); + + /*--- Solve the inviscid or viscous two-temperature flow equations (one iteration) ---*/ + integration_container[iZone][TNE2_SOL]->MultiGrid_Iteration(geometry_container, solver_container, + numerics_container, config_container, + RUNTIME_TNE2_SYS, IntIter, iZone); + } + +} +void CTNE2Iteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CTNE2Iteration::Monitor() { } void CTNE2Iteration::Output() { } void CTNE2Iteration::Postprocess() { } @@ -384,7 +678,71 @@ void CWaveIteration::Iterate(COutput *output, } -void CWaveIteration::Update() { } +void CWaveIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + + su2double Physical_dt, Physical_t; + unsigned short iMesh; + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = ExtIter; + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Wave equations ---*/ + config_container[iZone]->SetGlobalParam(WAVE_EQUATION, RUNTIME_WAVE_SYS, ExtIter); + integration_container[iZone][WAVE_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_WAVE_SYS, IntIter, iZone); + + /*--- Dual time stepping strategy ---*/ + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + for (IntIter = 1; IntIter < config_container[iZone]->GetUnst_nIntIter(); IntIter++) { + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + config_container[iZone]->SetIntIter(IntIter); + integration_container[iZone][WAVE_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_WAVE_SYS, IntIter, iZone); + if (integration_container[iZone][WAVE_SOL]->GetConvergence()) break; + } + + /*--- Update dual time solver ---*/ + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + integration_container[iZone][WAVE_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][WAVE_SOL], config_container[iZone], iMesh); + integration_container[iZone][WAVE_SOL]->SetConvergence(false); + } + + Physical_dt = config_container[iZone]->GetDelta_UnstTime(); Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) integration_container[iZone][WAVE_SOL]->SetConvergence(true); + } + + } + +} + +void CWaveIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CWaveIteration::Monitor() { } void CWaveIteration::Output() { } void CWaveIteration::Postprocess() { } @@ -445,7 +803,69 @@ void CHeatIteration::Iterate(COutput *output, } } -void CHeatIteration::Update() { } +void CHeatIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + su2double Physical_dt, Physical_t; + unsigned short iMesh; + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = ExtIter; + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Wave equations ---*/ + config_container[iZone]->SetGlobalParam(HEAT_EQUATION, RUNTIME_HEAT_SYS, ExtIter); + integration_container[iZone][HEAT_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_HEAT_SYS, IntIter, iZone); + + /*--- Dual time stepping strategy ---*/ + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + for (IntIter = 1; IntIter < config_container[iZone]->GetUnst_nIntIter(); IntIter++) { + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + config_container[iZone]->SetIntIter(IntIter); + integration_container[iZone][HEAT_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_HEAT_SYS, IntIter, iZone); + if (integration_container[iZone][HEAT_SOL]->GetConvergence()) break; + } + + /*--- Update dual time solver ---*/ + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + integration_container[iZone][HEAT_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][HEAT_SOL], config_container[iZone], iMesh); + integration_container[iZone][HEAT_SOL]->SetConvergence(false); + } + + Physical_dt = config_container[iZone]->GetDelta_UnstTime(); Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) integration_container[iZone][HEAT_SOL]->SetConvergence(true); + } + + } + +} +void CHeatIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CHeatIteration::Monitor() { } void CHeatIteration::Output() { } void CHeatIteration::Postprocess() { } @@ -484,7 +904,46 @@ void CPoissonIteration::Iterate(COutput *output, } } -void CPoissonIteration::Update() { } +void CPoissonIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = ExtIter; + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Wave equations ---*/ + config_container[iZone]->SetGlobalParam(POISSON_EQUATION, RUNTIME_POISSON_SYS, ExtIter); + integration_container[iZone][POISSON_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_POISSON_SYS, IntIter, iZone); + + } + +} +void CPoissonIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CPoissonIteration::Monitor() { } void CPoissonIteration::Output() { } void CPoissonIteration::Postprocess() { } @@ -542,7 +1001,65 @@ void CFEAIteration::Iterate(COutput *output, } } -void CFEAIteration::Update() { } +void CFEAIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + unsigned short nZone = geometry_container[iZone][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[iZone]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[iZone]->GetExtIter(); + + for (iZone = 0; iZone < nZone; iZone++) { + + if (config_container[iZone]->GetGrid_Movement()) + SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], + grid_movement[iZone], FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + /*--- Set the initial condition at the first iteration ---*/ + + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + /*----------------- Update structural solver ----------------------*/ + + bool dynamic = (config_container[iZone]->GetDynamic_Analysis() == DYNAMIC); + + if (dynamic){ + integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + } + + } + +} +void CFEAIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CFEAIteration::Monitor() { } void CFEAIteration::Output() { } void CFEAIteration::Postprocess() { } @@ -830,7 +1347,299 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, } } -void CFEM_StructuralAnalysis::Update() { } +void CFEM_StructuralAnalysis::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + su2double loadIncrement; + unsigned long IntIter = 0; config_container[iZone]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[iZone]->GetExtIter(); + + unsigned long iIncrement; + unsigned long nIncrements = config_container[iZone]->GetNumberIncrements(); + + bool nonlinear = (config_container[iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool linear = (config_container[iZone]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems + + bool initial_calc = config_container[iZone]->GetExtIter() == 0; // Checks if it is the first calculation. + bool first_iter = config_container[iZone]->GetIntIter() == 0; // Checks if it is the first iteration + bool restart = config_container[iZone]->GetRestart(); // Restart analysis + bool initial_calc_restart = (SU2_TYPE::Int(config_container[iZone]->GetExtIter()) == config_container[iZone]->GetDyn_RestartIter()); // Initial calculation for restart + + su2double CurrentTime = config_container[iZone]->GetCurrent_DynTime(); + su2double Static_Time = config_container[iZone]->GetStatic_Time(); + + bool statTime = (CurrentTime <= Static_Time); + + bool incremental_load = config_container[iZone]->GetIncrementalLoad(); // If an incremental load is applied + + /*--- TODO: Convergence only checked for iZone ---*/ + + /*--- This is to prevent problems when running a linear solver ---*/ + if (!nonlinear) incremental_load = false; + + /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ + integration_container[iZone][FEA_SOL]->SetConvergence(false); + + if (linear){ + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ + else if ((nonlinear) && (!statTime)){ + + /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ + + if (!incremental_load){ + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[iZone]->GetDyn_nIntIter(); IntIter++){ + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + if (integration_container[iZone][FEA_SOL]->GetConvergence()) break; + + } + + } + /*--- The incremental load is only used in nonlinear cases ---*/ + else if (incremental_load){ + + /*--- Set the initial condition: store the current solution as Solution_Old ---*/ + + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- The load increment is 1.0 ---*/ + loadIncrement = 1.0; + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the first iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + + /*--- Run the second iteration ---*/ + + IntIter = 1; + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + bool meetCriteria; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + + Criteria_UTOL = config_container[iZone]->GetIncLoad_Criteria(0); + Criteria_RTOL = config_container[iZone]->GetIncLoad_Criteria(1); + Criteria_ETOL = config_container[iZone]->GetIncLoad_Criteria(2); + + Residual_UTOL = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_FEM(0)); + Residual_RTOL = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_FEM(1)); + Residual_ETOL = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_FEM(2)); + + meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); + + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ + if (meetCriteria){ + + for (IntIter = 2; IntIter < config_container[iZone]->GetDyn_nIntIter(); IntIter++){ + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + if (integration_container[iZone][FEA_SOL]->GetConvergence()) break; + + } + + } + + /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ + + else { + + /*--- Here we have to restart the solution to the original one of the iteration ---*/ + /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ + + solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- For the number of increments ---*/ + for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ + + loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); + + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ + + /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ + integration_container[iZone][FEA_SOL]->SetConvergence(false); + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + + if (rank == MASTER_NODE){ + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + } + + /*--- Set the value of the internal iteration ---*/ + IntIter = 0; + config_container[iZone]->SetIntIter(IntIter); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[iZone]->GetDyn_nIntIter(); IntIter++){ + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + if (integration_container[iZone][FEA_SOL]->GetConvergence()) break; + + } + + } + + } + + } + + + } + else if ( (nonlinear && statTime) && + ((first_iter && initial_calc) || (restart && initial_calc_restart)) + ){ + + /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ + solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], + config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); + + } +} +void CFEM_StructuralAnalysis::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone){ + + su2double Physical_dt, Physical_t; + unsigned long ExtIter = config_container[iZone]->GetExtIter(); + bool dynamic = (config_container[iZone]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + + /*----------------- Compute averaged nodal stress and reactions ------------------------*/ + + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); + + /*----------------- Update structural solver ----------------------*/ + + if (dynamic){ + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetConvergence(false); + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[iZone]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_DynTime()) + integration_container[iZone][FEA_SOL]->SetConvergence(true); + } + + +} void CFEM_StructuralAnalysis::Monitor() { } void CFEM_StructuralAnalysis::Output() { } void CFEM_StructuralAnalysis::Postprocess() { } @@ -1030,7 +1839,210 @@ void CAdjMeanFlowIteration::Iterate(COutput *output, } } -void CAdjMeanFlowIteration::Update() { } +void CAdjMeanFlowIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + + su2double Physical_dt, Physical_t; + unsigned short iMesh; + + bool time_spectral = (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL); + bool dynamic_mesh = config_container[ZONE_0]->GetGrid_Movement(); + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + if (time_spectral) nZone = config_container[ZONE_0]->GetnTimeInstances(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- For the unsteady adjoint, load a new direct solution from a restart file. ---*/ + + for (iZone = 0; iZone < nZone; iZone++) { + if (((dynamic_mesh && ExtIter == 0) || config_container[ZONE_0]->GetUnsteady_Simulation()) && !time_spectral) { + int Direct_Iter = SU2_TYPE::Int(config_container[iZone]->GetUnst_AdjointIter()) - SU2_TYPE::Int(ExtIter) - 1; + if (rank == MASTER_NODE && iZone == ZONE_0 && config_container[iZone]->GetUnsteady_Simulation()) + cout << endl << " Loading flow solution from direct iteration " << Direct_Iter << "." << endl; + solver_container[iZone][MESH_0][FLOW_SOL]->LoadRestart(geometry_container[iZone], solver_container[iZone], config_container[iZone], Direct_Iter); + } + } + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Continuous adjoint Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations ---*/ + + if ((ExtIter == 0) || config_container[iZone]->GetUnsteady_Simulation()) { + + if (config_container[iZone]->GetKind_Solver() == ADJ_EULER) config_container[iZone]->SetGlobalParam(ADJ_EULER, RUNTIME_FLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == ADJ_NAVIER_STOKES) config_container[iZone]->SetGlobalParam(ADJ_NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == ADJ_RANS) config_container[iZone]->SetGlobalParam(ADJ_RANS, RUNTIME_FLOW_SYS, ExtIter); + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + if (rank == MASTER_NODE && iZone == ZONE_0) + cout << "Begin direct solver to store flow data (single iteration)." << endl; + + if (rank == MASTER_NODE && iZone == ZONE_0) + cout << "Compute residuals to check the convergence of the direct problem." << endl; + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, 0, iZone); + + if (config_container[iZone]->GetKind_Solver() == ADJ_RANS) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(ADJ_RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + + } + + /*--- Output the residual (visualization purpouses to identify if + the direct solution is converged)---*/ + if (rank == MASTER_NODE && iZone == ZONE_0) + cout << "log10[Maximum residual]: " << log10(solver_container[iZone][MESH_0][FLOW_SOL]->GetRes_Max(0)) + <<", located at point "<< solver_container[iZone][MESH_0][FLOW_SOL]->GetPoint_Max(0) << "." << endl; + + /*--- Compute gradients of the flow variables, this is necessary for sensitivity computation, + note that in the direct Euler problem we are not computing the gradients of the primitive variables ---*/ + + if (config_container[iZone]->GetKind_Gradient_Method() == GREEN_GAUSS) + solver_container[iZone][MESH_0][FLOW_SOL]->SetPrimitive_Gradient_GG(geometry_container[iZone][MESH_0], config_container[iZone]); + if (config_container[iZone]->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) + solver_container[iZone][MESH_0][FLOW_SOL]->SetPrimitive_Gradient_LS(geometry_container[iZone][MESH_0], config_container[iZone]); + + /*--- Set contribution from cost function for boundary conditions ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + + /*--- Set the value of the non-dimensional coefficients in the coarse levels, using the fine level solution ---*/ + + solver_container[iZone][iMesh][FLOW_SOL]->SetTotal_CDrag(solver_container[iZone][MESH_0][FLOW_SOL]->GetTotal_CDrag()); + solver_container[iZone][iMesh][FLOW_SOL]->SetTotal_CLift(solver_container[iZone][MESH_0][FLOW_SOL]->GetTotal_CLift()); + solver_container[iZone][iMesh][FLOW_SOL]->SetTotal_CT(solver_container[iZone][MESH_0][FLOW_SOL]->GetTotal_CT()); + solver_container[iZone][iMesh][FLOW_SOL]->SetTotal_CQ(solver_container[iZone][MESH_0][FLOW_SOL]->GetTotal_CQ()); + + /*--- Compute the adjoint boundary condition on Euler walls ---*/ + + solver_container[iZone][iMesh][ADJFLOW_SOL]->SetForceProj_Vector(geometry_container[iZone][iMesh], solver_container[iZone][iMesh], config_container[iZone]); + + /*--- Set the internal boundary condition on nearfield surfaces ---*/ + + if ((config_container[iZone]->GetKind_ObjFunc() == EQUIVALENT_AREA) || (config_container[iZone]->GetKind_ObjFunc() == NEARFIELD_PRESSURE)) + solver_container[iZone][iMesh][ADJFLOW_SOL]->SetIntBoundary_Jump(geometry_container[iZone][iMesh], solver_container[iZone][iMesh], config_container[iZone]); + + } + + if (rank == MASTER_NODE && iZone == ZONE_0) + cout << "End direct solver, begin adjoint problem." << endl; + + } + + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + IntIter = 0; + } + + if (config_container[iZone]->GetKind_Solver() == ADJ_EULER) config_container[iZone]->SetGlobalParam(ADJ_EULER, RUNTIME_ADJFLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == ADJ_NAVIER_STOKES) config_container[iZone]->SetGlobalParam(ADJ_NAVIER_STOKES, RUNTIME_ADJFLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == ADJ_RANS) config_container[iZone]->SetGlobalParam(ADJ_RANS, RUNTIME_ADJFLOW_SYS, ExtIter); + + /*--- Iteration of the flow adjoint problem ---*/ + + integration_container[iZone][ADJFLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_ADJFLOW_SYS, IntIter, iZone); + + /*--- Iteration of the turbulence model adjoint ---*/ + + if ((config_container[iZone]->GetKind_Solver() == ADJ_RANS) && (!config_container[iZone]->GetFrozen_Visc())) { + + /*--- Turbulent model solution ---*/ + + config_container[iZone]->SetGlobalParam(ADJ_RANS, RUNTIME_ADJTURB_SYS, ExtIter); + integration_container[iZone][ADJTURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_ADJTURB_SYS, IntIter, iZone); + + } + + } + + /*--- Dual time stepping strategy ---*/ + + if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + for (IntIter = 1; IntIter < config_container[ZONE_0]->GetUnst_nIntIter(); IntIter++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*--- Set the value of the internal iteration ---*/ + + config_container[ZONE_0]->SetIntIter(IntIter); + + /*--- All zones must be advanced and coupled with each pseudo timestep ---*/ + + for (iZone = 0; iZone < nZone; iZone++) + integration_container[iZone][ADJFLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_ADJFLOW_SYS, IntIter, iZone); + + /*--- Check to see if the convergence criteria has been met ---*/ + + if (integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence()) break; + } + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Update dual time solver ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + integration_container[iZone][ADJFLOW_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][ADJFLOW_SOL], config_container[iZone], iMesh); + integration_container[iZone][ADJFLOW_SOL]->SetConvergence(false); + } + + Physical_dt = config_container[iZone]->GetDelta_UnstTime(); Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) integration_container[iZone][ADJFLOW_SOL]->SetConvergence(true); + + } + + } + + +} +void CAdjMeanFlowIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CAdjMeanFlowIteration::Monitor() { } void CAdjMeanFlowIteration::Output() { } void CAdjMeanFlowIteration::Postprocess() { } @@ -1143,7 +2155,121 @@ void CAdjTNE2Iteration::Iterate(COutput *output, } } -void CAdjTNE2Iteration::Update() { } +void CAdjTNE2Iteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + unsigned short iMesh, nZone; + unsigned long IntIter, ExtIter; + int rank; + + /*--- Initialize parameters ---*/ + nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + ExtIter = config_container[ZONE_0]->GetExtIter(); + rank = MASTER_NODE; + + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Continuous adjoint two-temperature equations ---*/ + if (ExtIter == 0) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = ExtIter; + + /*--- Set the initial condition ---*/ + solver_container[iZone][MESH_0][TNE2_SOL]->SetInitialCondition(geometry_container[iZone], + solver_container[iZone], + config_container[iZone], ExtIter); + + /*--- Update global parameters ---*/ + if (config_container[iZone]->GetKind_Solver() == ADJ_TNE2_EULER) + config_container[iZone]->SetGlobalParam(TNE2_EULER, + RUNTIME_TNE2_SYS, ExtIter); + else if (config_container[iZone]->GetKind_Solver() == ADJ_TNE2_NAVIER_STOKES) + config_container[iZone]->SetGlobalParam(ADJ_TNE2_NAVIER_STOKES, + RUNTIME_TNE2_SYS, ExtIter); + + /*--- Perform one iteration of the gov. eqns. to store data ---*/ + if (rank == MASTER_NODE && iZone == ZONE_0) + cout << "Single iteration of the direct solver to store flow data..."; + integration_container[iZone][TNE2_SOL]->MultiGrid_Iteration(geometry_container, + solver_container, + numerics_container, + config_container, + RUNTIME_TNE2_SYS, + IntIter, iZone); + if (rank == MASTER_NODE && iZone == ZONE_0) + cout << " Done." << endl; + + /*--- Compute gradients of the flow variables, this is necessary for + sensitivity computation, note that in the direct Euler problem we + are not computing the gradients of the primitive variables ---*/ + if (config_container[iZone]->GetKind_Gradient_Method() == GREEN_GAUSS) + solver_container[iZone][MESH_0][TNE2_SOL]->SetPrimitive_Gradient_GG(geometry_container[iZone][MESH_0], + config_container[iZone]); + if (config_container[iZone]->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) + solver_container[iZone][MESH_0][TNE2_SOL]->SetPrimitive_Gradient_LS(geometry_container[iZone][MESH_0], + config_container[iZone]); + + /*--- Set contribution from cost function for boundary conditions ---*/ + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + + /*--- Set the value of the non-dimensional coefficients in the coarse + levels, using the fine level solution ---*/ + solver_container[iZone][iMesh][TNE2_SOL]->SetTotal_CDrag(solver_container[iZone][MESH_0][TNE2_SOL]->GetTotal_CDrag()); + solver_container[iZone][iMesh][TNE2_SOL]->SetTotal_CLift(solver_container[iZone][MESH_0][TNE2_SOL]->GetTotal_CLift()); + solver_container[iZone][iMesh][TNE2_SOL]->SetTotal_CT(solver_container[iZone][MESH_0][TNE2_SOL]->GetTotal_CT()); + solver_container[iZone][iMesh][TNE2_SOL]->SetTotal_CQ(solver_container[iZone][MESH_0][TNE2_SOL]->GetTotal_CQ()); + + /*--- Compute the adjoint boundary condition on Euler walls ---*/ + solver_container[iZone][iMesh][ADJTNE2_SOL]->SetForceProj_Vector(geometry_container[iZone][iMesh], + solver_container[iZone][iMesh], + config_container[iZone]); + } + } + + /*--- Set the value of the internal iteration ---*/ + IntIter = ExtIter; + + if (config_container[iZone]->GetKind_Solver() == ADJ_TNE2_EULER) + config_container[iZone]->SetGlobalParam(ADJ_TNE2_EULER, + RUNTIME_ADJTNE2_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == ADJ_TNE2_NAVIER_STOKES) + config_container[iZone]->SetGlobalParam(ADJ_TNE2_NAVIER_STOKES, + RUNTIME_ADJTNE2_SYS, ExtIter); + + /*--- Iteration of the flow adjoint problem ---*/ + integration_container[iZone][ADJTNE2_SOL]->MultiGrid_Iteration(geometry_container, + solver_container, + numerics_container, + config_container, + RUNTIME_ADJTNE2_SYS, + IntIter, iZone); + } + +} +void CAdjTNE2Iteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CAdjTNE2Iteration::Monitor() { } void CAdjTNE2Iteration::Output() { } void CAdjTNE2Iteration::Postprocess() { } @@ -1161,37 +2287,37 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, CSurfaceMovement **surface_movement, CVolumetricMovement **volume_grid_movement, CFreeFormDefBox*** FFDBox) { - + unsigned short iZone, iMesh, ExtIter = config_container[ZONE_0]->GetExtIter(); unsigned short nZone = config_container[ZONE_0]->GetnZone(); - + bool turbulent = false, flow = false; - + switch(config_container[ZONE_0]->GetKind_Solver()){ case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: flow = true; break; case DISC_ADJ_RANS: flow = true; turbulent = true; break; } - + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - + if (ExtIter == 0){ - + /*--- Start the recording of all operations ---*/ - + AD::StartRecording(); - + /*--- Register all necessary variables on the tape ---*/ for (iZone = 0; iZone < nZone; iZone++){ - + /*--- Register the node coordinates as input of the iteration ---*/ - + geometry_container[iZone][MESH_0]->RegisterCoordinates(config_container[iZone]); - + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ - + /*--- Register the conservative variables as input of the iteration ---*/ if (flow){ solver_container[iZone][iMesh][ADJFLOW_SOL]->RegisterInput(geometry_container[iZone][iMesh], @@ -1213,8 +2339,8 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, if (rank == MASTER_NODE){ cout << "Begin direct solver to store computational graph (single iteration)." << endl; } - - + + /* --- Preprocessing of flow solver and postprocessing of turbulent solver. * We need this to get the dependency of the flow variables on the eddy viscosity. ---*/ if (turbulent){ @@ -1225,15 +2351,15 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, } } } - + /*--- One iteration of the flow solver ---*/ - + if (flow){ MeanFlowIteration(output, integration_container, geometry_container, solver_container, numerics_container, config_container, surface_movement, volume_grid_movement, FFDBox); } - + if (rank == MASTER_NODE){ if(flow){ cout << "log10[RMS Density]: " << log10(solver_container[ZONE_0][MESH_0][FLOW_SOL]->GetRes_RMS(0)) @@ -1244,14 +2370,14 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, cout << "log10[RMS k]: " << log10(solver_container[ZONE_0][MESH_0][TURB_SOL]->GetRes_RMS(0)) << std::endl; } } - + for (iZone = 0; iZone < nZone; iZone++){ /*--- Register objective function as output of the iteration ---*/ if (flow){ solver_container[iZone][MESH_0][ADJFLOW_SOL]->RegisterObj_Func(config_container[iZone]); } for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ - + /*--- Register conservative variables as output of the iteration ---*/ if (flow){ solver_container[iZone][iMesh][ADJFLOW_SOL]->RegisterOutput(geometry_container[iZone][iMesh], @@ -1263,11 +2389,11 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, } } } - + /*--- Stop the recording ---*/ - + AD::StopRecording(); - + } for (iZone = 0; iZone < nZone; iZone++){ @@ -1312,13 +2438,13 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, } } } - + /*--- Clear all adjoints to re-use the stored computational graph in the next iteration ---*/ - + AD::ClearAdjoints(); - + /*--- Set the convergence criteria ---*/ - + if (config_container[ZONE_0]->GetConvCriteria() == RESIDUAL){ if (flow){ integration_container[ZONE_0][ADJFLOW_SOL]->Convergence_Monitoring(geometry_container[ZONE_0][MESH_0],config_container[ZONE_0], @@ -1331,9 +2457,202 @@ void CDiscAdjMeanFlowIteration::Iterate(COutput *output, ExtIter,solver_container[ZONE_0][MESH_0][ADJFLOW_SOL]->GetTotal_Sens_Geo(), MESH_0); } } - + } -void CDiscAdjMeanFlowIteration::Update() { } + +void CDiscAdjMeanFlowIteration::Subiterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **volume_grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { + + unsigned short iMesh, ExtIter = config_container[ZONE_0]->GetExtIter(); + unsigned short nZone = config_container[ZONE_0]->GetnZone(); + + bool turbulent = false, flow = false; + + switch(config_container[ZONE_0]->GetKind_Solver()){ + case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: flow = true; break; + case DISC_ADJ_RANS: flow = true; turbulent = true; break; + } + + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + if (ExtIter == 0){ + + /*--- Start the recording of all operations ---*/ + + AD::StartRecording(); + + /*--- Register all necessary variables on the tape ---*/ + for (iZone = 0; iZone < nZone; iZone++){ + + /*--- Register the node coordinates as input of the iteration ---*/ + + geometry_container[iZone][MESH_0]->RegisterCoordinates(config_container[iZone]); + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ + + /*--- Register the conservative variables as input of the iteration ---*/ + if (flow){ + solver_container[iZone][iMesh][ADJFLOW_SOL]->RegisterInput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + if (turbulent){ + solver_container[iZone][iMesh][ADJTURB_SOL]->RegisterInput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + } + } + + /*--- Update the mesh structure to get the influence of node coordinates ---*/ + + for (iZone = 0; iZone < nZone; iZone++){ + geometry_container[iZone][MESH_0]->UpdateGeometry(geometry_container[iZone],config_container[iZone]); + } + + if (rank == MASTER_NODE){ + cout << "Begin direct solver to store computational graph (single iteration)." << endl; + } + + + /* --- Preprocessing of flow solver and postprocessing of turbulent solver. + * We need this to get the dependency of the flow variables on the eddy viscosity. ---*/ + if (turbulent){ + for (iZone = 0; iZone < nZone; iZone++){ + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ + solver_container[iZone][iMesh][FLOW_SOL]->Preprocessing(geometry_container[iZone][iMesh], solver_container[iZone][iMesh], config_container[iZone], iMesh, NO_RK_ITER, RUNTIME_FLOW_SYS, false); + solver_container[iZone][iMesh][TURB_SOL]->Postprocessing(geometry_container[iZone][iMesh],solver_container[iZone][iMesh], config_container[iZone], iMesh); + } + } + } + + /*--- One iteration of the flow solver ---*/ + + if (flow){ + MeanFlowIteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, volume_grid_movement, FFDBox); + } + + if (rank == MASTER_NODE){ + if(flow){ + cout << "log10[RMS Density]: " << log10(solver_container[ZONE_0][MESH_0][FLOW_SOL]->GetRes_RMS(0)) + <<", Drag: "<< solver_container[ZONE_0][MESH_0][FLOW_SOL]->GetTotal_CDrag() + <<", Lift: "<< solver_container[ZONE_0][MESH_0][FLOW_SOL]->GetTotal_CLift() << "." << endl; + } + if (turbulent){ + cout << "log10[RMS k]: " << log10(solver_container[ZONE_0][MESH_0][TURB_SOL]->GetRes_RMS(0)) << std::endl; + } + } + + for (iZone = 0; iZone < nZone; iZone++){ + /*--- Register objective function as output of the iteration ---*/ + if (flow){ + solver_container[iZone][MESH_0][ADJFLOW_SOL]->RegisterObj_Func(config_container[iZone]); + } + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ + + /*--- Register conservative variables as output of the iteration ---*/ + if (flow){ + solver_container[iZone][iMesh][ADJFLOW_SOL]->RegisterOutput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + if (turbulent){ + solver_container[iZone][iMesh][ADJTURB_SOL]->RegisterOutput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + } + } + + /*--- Stop the recording ---*/ + + AD::StopRecording(); + + } + for (iZone = 0; iZone < nZone; iZone++){ + + /*--- Initialize the adjoint of the objective function (typically with 1.0) ---*/ + if (flow){ + solver_container[iZone][MESH_0][ADJFLOW_SOL]->SetAdj_ObjFunc(geometry_container[iZone][MESH_0], config_container[iZone]); + } + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ + + /*--- Initialize the adjoints the conservative variables ---*/ + if (flow){ + solver_container[iZone][iMesh][ADJFLOW_SOL]->SetAdjointOutput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + if (turbulent){ + solver_container[iZone][iMesh][ADJTURB_SOL]->SetAdjointOutput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + } + } + + /*--- Run the adjoint computation ---*/ + + AD::ComputeAdjoint(); + + for (iZone = 0; iZone < nZone; iZone++){ + + /*--- Set the sensitivities by extracting the adjoints of the node coordinates ---*/ + if (flow){ + solver_container[iZone][MESH_0][ADJFLOW_SOL]->SetSensitivity(geometry_container[iZone][MESH_0],config_container[iZone]); + } + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++){ + + /*--- Extract the adjoints of the conservative input variables and store them for the next iteration ---*/ + if (flow){ + solver_container[iZone][iMesh][ADJFLOW_SOL]->SetAdjointInput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + if (turbulent){ + solver_container[iZone][iMesh][ADJTURB_SOL]->SetAdjointInput(geometry_container[iZone][iMesh], + config_container[iZone]); + } + } + } + + /*--- Clear all adjoints to re-use the stored computational graph in the next iteration ---*/ + + AD::ClearAdjoints(); + + /*--- Set the convergence criteria ---*/ + + if (config_container[ZONE_0]->GetConvCriteria() == RESIDUAL){ + if (flow){ + integration_container[ZONE_0][ADJFLOW_SOL]->Convergence_Monitoring(geometry_container[ZONE_0][MESH_0],config_container[ZONE_0], + ExtIter,log10(solver_container[ZONE_0][MESH_0][ADJFLOW_SOL]->GetRes_RMS(0)), MESH_0); + } + } + else if (config_container[ZONE_0]->GetConvCriteria() == CAUCHY){ + if (flow){ + integration_container[ZONE_0][ADJFLOW_SOL]->Convergence_Monitoring(geometry_container[ZONE_0][MESH_0],config_container[ZONE_0], + ExtIter,solver_container[ZONE_0][MESH_0][ADJFLOW_SOL]->GetTotal_Sens_Geo(), MESH_0); + } + } + +} + +void CDiscAdjMeanFlowIteration::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short iZone) { } void CDiscAdjMeanFlowIteration::Monitor() { } void CDiscAdjMeanFlowIteration::Output() { } void CDiscAdjMeanFlowIteration::Postprocess() { } diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 6b62e67ca79..c78d943d954 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -461,14 +461,14 @@ void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CG } void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif /*--- Only one zone allowed for the fluid as for now ---*/ unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; @@ -480,10 +480,10 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG su2double loadIncrement; unsigned short iZone; unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); + unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); - unsigned long iIncrement; - unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); + unsigned long iIncrement; + unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems @@ -518,7 +518,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG /*--- Run the iteration ---*/ integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -543,7 +543,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG /*--- Run the iteration ---*/ integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container, RUNTIME_FEA_SYS, IntIter, iZone); @@ -562,7 +562,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG config_container[iZone]->SetIntIter(IntIter); integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -581,36 +581,36 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - /*--- The load increment is 1.0: all the load applied ---*/ - loadIncrement = 1.0; - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + /*--- The load increment is 1.0: all the load applied ---*/ + loadIncrement = 1.0; + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - /*--- Set the value of the internal iteration ---*/ + /*--- Set the value of the internal iteration ---*/ - IntIter = 0; + IntIter = 0; - /*--- FEA equations ---*/ + /*--- FEA equations ---*/ - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - /*--- Run the first iteration ---*/ + /*--- Run the first iteration ---*/ - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); - /*--- Write the convergence history (only screen output) ---*/ + /*--- Write the convergence history (only screen output) ---*/ - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - /*--- Run the second iteration ---*/ + /*--- Run the second iteration ---*/ - IntIter = 1; + IntIter = 1; - config_container[iZone]->SetIntIter(IntIter); + config_container[iZone]->SetIntIter(IntIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -627,8 +627,8 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG Residual_ETOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(2)); meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && - ( Residual_RTOL < Criteria_RTOL ) && - ( Residual_ETOL < Criteria_ETOL ) ); + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ if (meetCriteria){ @@ -637,14 +637,14 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - /*--- Write the convergence history (only screen output) ---*/ + /*--- Write the convergence history (only screen output) ---*/ - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - config_container[iZone]->SetIntIter(IntIter); + config_container[iZone]->SetIntIter(IntIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -702,7 +702,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG /*--- Run the iteration ---*/ integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container, RUNTIME_FEA_SYS, IntIter, iZone); @@ -721,7 +721,7 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG config_container[iZone]->SetIntIter(IntIter); integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); + config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -738,13 +738,13 @@ void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CG } else if ( (nonlinear && statTime) && - ((first_iter && initial_calc) || (restart && initial_calc_restart)) - ){ + ((first_iter && initial_calc) || (restart && initial_calc_restart)) + ){ /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], - config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); + solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], + config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); } } From b06839bf69dc13dfcd9b2edede7ccbcba6c88d1c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 12 Oct 2015 12:36:47 +0100 Subject: [PATCH 116/269] Fixed two bugs on FEM implementation. --- SU2_CFD/src/integration_structure.cpp | 1 - SU2_CFD/src/iteration_structure.cpp | 7 +++---- SU2_CFD/src/solver_fem_elasticity.cpp | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 6c1a3de7c25..527f3d31453 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -235,7 +235,6 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, } else if (!linear_analysis){ /*--- If the analysis is nonlinear, also the stress terms need to be computed ---*/ - /*--- If the method is full Newton-Raphson, the stiffness matrix and the nodal term are updated every time ---*/ /*--- They are calculated together to avoid looping twice over the elements ---*/ if (IterativeScheme == NEWTON_RAPHSON){ diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index f564864022f..ab069ed23b2 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1108,6 +1108,8 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + bool fsi = config_container[val_iZone]->GetFSI_Simulation(); + unsigned long iIncrement; unsigned long nIncrements = config_container[val_iZone]->GetNumberIncrements(); @@ -1151,7 +1153,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, } /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ - else if ((nonlinear) && (!statTime)){ + else if ((nonlinear) && ((!statTime) || (!fsi))){ /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ @@ -1345,9 +1347,6 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, config_container[val_iZone], numerics_container[val_iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); } - else { - - } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index df19187bf4d..7f029e03020 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -930,11 +930,11 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s for (iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_c_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; } } - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); } From 7e75010ef5ed6640df1bfc69dbac3cf356367ecf Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 12 Oct 2015 14:58:42 +0100 Subject: [PATCH 117/269] CDriver: deleted Subiterate functions. --- SU2_CFD/include/iteration_structure.hpp | 59 ---- SU2_CFD/src/iteration_structure.cpp | 432 ------------------------ 2 files changed, 491 deletions(-) diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index 5c8995e18a7..b81f3ccc8ef 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -104,29 +104,6 @@ class CIteration { CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone); - - /*! - * \brief A virtual member. Created to check while avoiding clashes with other implementations. Meant to disappear. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - */ - virtual void Subiterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short iZone); /*! * \brief A virtual member. @@ -221,24 +198,6 @@ class CMeanFlowIteration : public CIteration { CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone); - - /*! - * \brief Perform a single iteration of the mean flow system, without updating the system. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - */ - void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned short iZone); - /*! * \brief Updates the containers for the mean flow system. @@ -811,24 +770,6 @@ class CFEM_StructuralAnalysis : public CIteration { CFreeFormDefBox*** FFDBox, unsigned short val_iZone); - /*! - * \brief Perform a single iteration of structural analysis, without updating the system. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] iZone - FFD FFDBoxes of the problem. - */ - void Subiterate(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned short iZone); - /*! * \brief Updates the containers for the FEM system. * \param[in] ??? - Description here. diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index ab069ed23b2..5b0064697fb 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -56,16 +56,6 @@ void CIteration::Iterate(COutput *output, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone) { } -void CIteration::Subiterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short iZone) { } void CIteration::Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, @@ -256,170 +246,6 @@ void CMeanFlowIteration::Iterate(COutput *output, } -void CMeanFlowIteration::Subiterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short iZone) { - - su2double Physical_dt, Physical_t; - unsigned short iMesh; - unsigned short nZone = 1; - - bool time_spectral = (config_container[iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL); - if (time_spectral) { - nZone = config_container[iZone]->GetnTimeInstances(); - } - unsigned long IntIter = 0; config_container[iZone]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[iZone]->GetExtIter(); - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Set the initial condition ---*/ - - solver_container[iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- Initial set up for unsteady problems with dynamic meshes. ---*/ - - /*--- Dynamic mesh update ---*/ - - if ((config_container[iZone]->GetGrid_Movement()) && (!time_spectral)) { - SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); - } - - /*--- Apply a Wind Gust ---*/ - - if (config_container[iZone]->GetWind_Gust()) { - SetWind_GustField(config_container[iZone], geometry_container[iZone], solver_container[iZone]); - } - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; - - /*--- Update global parameters ---*/ - - if ((config_container[iZone]->GetKind_Solver() == EULER) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_EULER)) { - config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - } - if ((config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_NAVIER_STOKES)) { - config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - } - if ((config_container[iZone]->GetKind_Solver() == RANS) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - } - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, iZone); - - if ((config_container[iZone]->GetKind_Solver() == RANS) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { - - /*--- Solve the turbulence model ---*/ - - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, iZone); - - /*--- Solve transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, iZone); - } - - } - - /*--- Dual time stepping strategy ---*/ - - if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - for (IntIter = 1; IntIter < config_container[iZone]->GetUnst_nIntIter(); IntIter++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); - - /*--- Set the value of the internal iteration ---*/ - - config_container[iZone]->SetIntIter(IntIter); - - /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ - - if ((config_container[iZone]->GetKind_Solver() == EULER) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_EULER)) { - config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - } - if ((config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_NAVIER_STOKES)) { - config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - } - if ((config_container[iZone]->GetKind_Solver() == RANS) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - } - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, iZone); - - /*--- Pseudo-timestepping the turbulence model ---*/ - - if ((config_container[iZone]->GetKind_Solver() == RANS) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) { - - /*--- Solve the turbulence model ---*/ - - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, iZone); - - /*--- Solve transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, iZone); - } - - } - - /*--- Call Dynamic mesh update if AEROELASTIC motion was specified ---*/ - if ((config_container[iZone]->GetGrid_Movement()) && (config_container[iZone]->GetAeroelastic_Simulation())) { - SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], FFDBox[iZone], - solver_container[iZone], config_container[iZone], iZone, IntIter, ExtIter); - /*--- Apply a Wind Gust ---*/ - if (config_container[iZone]->GetWind_Gust()) { - if (IntIter % config_container[iZone]->GetAeroelasticIter() ==0) - SetWind_GustField(config_container[iZone], geometry_container[iZone], solver_container[iZone]); - } - } - - if (integration_container[iZone][FLOW_SOL]->GetConvergence()) break; - - } - - } - -} - void CMeanFlowIteration::Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, @@ -1350,264 +1176,6 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, } -void CFEM_StructuralAnalysis::Subiterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short iZone) { - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - su2double loadIncrement; - unsigned long IntIter = 0; config_container[iZone]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[iZone]->GetExtIter(); - - unsigned long iIncrement; - unsigned long nIncrements = config_container[iZone]->GetNumberIncrements(); - - bool nonlinear = (config_container[iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool linear = (config_container[iZone]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems - - bool initial_calc = config_container[iZone]->GetExtIter() == 0; // Checks if it is the first calculation. - bool first_iter = config_container[iZone]->GetIntIter() == 0; // Checks if it is the first iteration - bool restart = config_container[iZone]->GetRestart(); // Restart analysis - bool initial_calc_restart = (SU2_TYPE::Int(config_container[iZone]->GetExtIter()) == config_container[iZone]->GetDyn_RestartIter()); // Initial calculation for restart - - su2double CurrentTime = config_container[iZone]->GetCurrent_DynTime(); - su2double Static_Time = config_container[iZone]->GetStatic_Time(); - - bool statTime = (CurrentTime <= Static_Time); - - bool incremental_load = config_container[iZone]->GetIncrementalLoad(); // If an incremental load is applied - - /*--- TODO: Convergence only checked for iZone ---*/ - - /*--- This is to prevent problems when running a linear solver ---*/ - if (!nonlinear) incremental_load = false; - - /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ - integration_container[iZone][FEA_SOL]->SetConvergence(false); - - if (linear){ - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ - else if ((nonlinear) && (!statTime)){ - - /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - - if (!incremental_load){ - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[iZone]->GetDyn_nIntIter(); IntIter++){ - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - if (integration_container[iZone][FEA_SOL]->GetConvergence()) break; - - } - - } - /*--- The incremental load is only used in nonlinear cases ---*/ - else if (incremental_load){ - - /*--- Set the initial condition: store the current solution as Solution_Old ---*/ - - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- The load increment is 1.0 ---*/ - loadIncrement = 1.0; - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the first iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); - - /*--- Run the second iteration ---*/ - - IntIter = 1; - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - bool meetCriteria; - su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; - su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; - - Criteria_UTOL = config_container[iZone]->GetIncLoad_Criteria(0); - Criteria_RTOL = config_container[iZone]->GetIncLoad_Criteria(1); - Criteria_ETOL = config_container[iZone]->GetIncLoad_Criteria(2); - - Residual_UTOL = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_FEM(0)); - Residual_RTOL = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_FEM(1)); - Residual_ETOL = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_FEM(2)); - - meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && - ( Residual_RTOL < Criteria_RTOL ) && - ( Residual_ETOL < Criteria_ETOL ) ); - - /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ - if (meetCriteria){ - - for (IntIter = 2; IntIter < config_container[iZone]->GetDyn_nIntIter(); IntIter++){ - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - if (integration_container[iZone][FEA_SOL]->GetConvergence()) break; - - } - - } - - /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ - - else { - - /*--- Here we have to restart the solution to the original one of the iteration ---*/ - /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ - - solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- For the number of increments ---*/ - for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ - - loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); - - /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ - - /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ - integration_container[iZone][FEA_SOL]->SetConvergence(false); - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - if (rank == MASTER_NODE){ - cout << endl; - cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; - } - - /*--- Set the value of the internal iteration ---*/ - IntIter = 0; - config_container[iZone]->SetIntIter(IntIter); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[iZone]->GetDyn_nIntIter(); IntIter++){ - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, iZone); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - if (integration_container[iZone][FEA_SOL]->GetConvergence()) break; - - } - - } - - } - - } - - - } - else if ( (nonlinear && statTime) && - ((first_iter && initial_calc) || (restart && initial_calc_restart)) - ){ - - /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ - solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], - config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); - - } -} void CFEM_StructuralAnalysis::Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, From edc9e7aaaf92e96b197bbd610e28c447bc66dc7c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 12 Oct 2015 18:09:26 +0100 Subject: [PATCH 118/269] Deleted some warnings. --- SU2_CFD/src/SU2_CFD.cpp | 20 ++++++++++++++------ SU2_CFD/src/definition_structure.cpp | 2 -- SU2_CFD/src/driver_structure.cpp | 5 ----- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 8e2d82cae49..5978ae5e607 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -300,12 +300,7 @@ int main(int argc, char *argv[]) { #endif bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); - - unsigned short iFluidIt, nFluidIt; - - iFluidIt=0; - nFluidIt=config_container[ZONE_0]->GetnIterFSI(); - + /*--- This is temporal and just to check. It will have to be added to the regular history file ---*/ ofstream historyFile_FSI; @@ -383,6 +378,19 @@ int main(int argc, char *argv[]) { runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); runtime->SetExtIter(ExtIter); +// /*--- Update the convergence history file (serial and parallel computations). ---*/ +// if (fsi){ +// if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; +// for (iZone = 0; iZone < nZone; iZone++){ +// if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; +// else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; +// output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, +// config_container, integration_container, false, UsedTime, iZone); +// } +// +// if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; +// } + /*--- Update the convergence history file (serial and parallel computations). ---*/ output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 5451eee3f1c..23e3150da7e 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -203,8 +203,6 @@ void Driver_Preprocessing(CDriver **driver, MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - /*--- For now, time spectral will use a single-zone driver. ---*/ - bool time_spectral = (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL); /*--- fsi implementations will use, as of now, BGS implentation. More to come. ---*/ bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 8c555b009cb..063e67e684a 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1568,8 +1568,6 @@ void CSingleZoneDriver::Run(CIteration **iteration_container, CInterpolator ***interpolator_container, CTransfer ***transfer_container) { - unsigned short iZone = ZONE_0; - /*--- Run an iteration of the physics within this single zone. We assume that the zone of interest is in the ZONE_0 container position. ---*/ @@ -2193,9 +2191,6 @@ void CFSIDriver::Run(CIteration **iteration_container, unsigned long IntIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[IntIter]->SetIntIter(IntIter); unsigned long iFSIIter = 0; unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); - unsigned long ExtIter = config_container[ZONE_FLOW]->GetExtIter(); - - bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); int rank = MASTER_NODE; #ifdef HAVE_MPI From 59a385f48aa12e473811d196c115a8237219c274 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 13 Oct 2015 13:44:16 +0100 Subject: [PATCH 119/269] Fixed a memory issue in volumetric mesh update. --- Common/include/grid_movement_structure.hpp | 2 +- Common/src/grid_movement_structure.cpp | 139 ++++++++++----------- SU2_CFD/src/SU2_CFD.cpp | 2 +- SU2_DEF/src/SU2_DEF.cpp | 2 +- SU2_DOT/src/SU2_DOT.cpp | 2 +- SU2_FSI/src/SU2_FSI.cpp | 2 +- 6 files changed, 74 insertions(+), 75 deletions(-) diff --git a/Common/include/grid_movement_structure.hpp b/Common/include/grid_movement_structure.hpp index 99e371f9b01..8cb980cc9dd 100644 --- a/Common/include/grid_movement_structure.hpp +++ b/Common/include/grid_movement_structure.hpp @@ -757,7 +757,7 @@ class CVolumetricMovement : public CGridMovement { /*! * \brief Constructor of the class. */ - CVolumetricMovement(CGeometry *geometry); + CVolumetricMovement(CGeometry *geometry, CConfig *config); /*! * \brief Destructor of the class. diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index a144aaed658..60660c597d5 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -38,14 +38,34 @@ CGridMovement::CGridMovement(void) { } CGridMovement::~CGridMovement(void) { } -CVolumetricMovement::CVolumetricMovement(CGeometry *geometry) : CGridMovement() { +CVolumetricMovement::CVolumetricMovement(CGeometry *geometry, CConfig *config) : CGridMovement() { - nDim = geometry->GetnDim(); + /*--- Initialize the number of spatial dimensions, length of the state + vector (same as spatial dimensions for grid deformation), and grid nodes. ---*/ + + nDim = geometry->GetnDim(); + nVar = geometry->GetnDim(); + nPoint = geometry->GetnPoint(); + nPointDomain = geometry->GetnPointDomain(); + + /*--- Initialize matrix, solution, and r.h.s. structures for the linear solver. ---*/ + + config->SetKind_Linear_Solver_Prec(LU_SGS); + LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); + LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); + StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + } CVolumetricMovement::~CVolumetricMovement(void) { + /*--- Deallocate vectors for the linear system. ---*/ + + LinSysSol.~CSysVector(); + LinSysRes.~CSysVector(); + StiffMatrix.~CSysMatrix(); + } @@ -111,60 +131,45 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co #endif /*--- Retrieve number or iterations, tol, output, etc. from config ---*/ - + Smoothing_Iter = config->GetGridDef_Linear_Iter(); Screen_Output = config->GetDeform_Output(); Tol_Factor = config->GetDeform_Tol_Factor(); Nonlinear_Iter = config->GetGridDef_Nonlinear_Iter(); - + /*--- Disable the screen output if we're running SU2_CFD ---*/ - + if (config->GetKind_SU2() == SU2_CFD && !Derivative) Screen_Output = false; /*--- Set the number of nonlinear iterations to 1 if Derivative computation is enabled ---*/ if (Derivative) Nonlinear_Iter = 1; - /*--- Initialize the number of spatial dimensions, length of the state - vector (same as spatial dimensions for grid deformation), and grid nodes. ---*/ - - nDim = geometry->GetnDim(); - nVar = geometry->GetnDim(); - nPoint = geometry->GetnPoint(); - nPointDomain = geometry->GetnPointDomain(); - - /*--- Initialize matrix, solution, and r.h.s. structures for the linear solver. ---*/ - - config->SetKind_Linear_Solver_Prec(LU_SGS); - LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); - LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); - StiffMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - /*--- Loop over the total number of grid deformation iterations. The surface deformation can be divided into increments to help with stability. In particular, the linear elasticity equations hold only for small deformations. ---*/ - + for (iNonlinear_Iter = 0; iNonlinear_Iter < Nonlinear_Iter; iNonlinear_Iter++) { - + /*--- Initialize vector and sparse matrix ---*/ - + LinSysSol.SetValZero(); LinSysRes.SetValZero(); StiffMatrix.SetValZero(); - + /*--- Compute the stiffness matrix entries for all nodes/elements in the mesh. FEA uses a finite element method discretization of the linear elasticity equations (transfers element stiffnesses to point-to-point). ---*/ - + MinVolume = SetFEAMethodContributions_Elem(geometry, config); - + /*--- Compute the tolerance of the linear solver using MinLength ---*/ - + NumError = MinVolume * Tol_Factor; - + /*--- Set the boundary displacements (as prescribed by the design variable perturbations controlling the surface shape) as a Dirichlet BC. ---*/ - + SetBoundaryDisplacements(geometry, config); /*--- Set the boundary derivatives (overrides the actual displacements) ---*/ @@ -172,12 +177,12 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co if (Derivative){ SetBoundaryDerivatives(geometry, config); } - + /*--- Fix the location of any points in the domain, if requested. ---*/ - + if (config->GetHold_GridFixed()) SetDomainDisplacements(geometry, config); - + CMatrixVectorProduct* mat_vec = NULL; CPreconditioner* precond = NULL; @@ -207,70 +212,70 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co } CSysSolve *system = new CSysSolve(); - + switch (config->GetDeform_Linear_Solver()) { - + /*--- Solve the linear system (GMRES with restart) ---*/ - + case RESTARTED_FGMRES: - + Tot_Iter = 0; MaxIter = RestartIter; - + system->FGMRES_LinSolver(LinSysRes, LinSysSol, *mat_vec, *precond, NumError, 1, &Residual_Init, false); - + if ((rank == MASTER_NODE) && Screen_Output) { cout << "\n# FGMRES (with restart) residual history" << endl; cout << "# Residual tolerance target = " << NumError << endl; cout << "# Initial residual norm = " << Residual_Init << endl; } - + if (rank == MASTER_NODE) { cout << " " << Tot_Iter << " " << Residual_Init/Residual_Init << endl; } - + while (Tot_Iter < Smoothing_Iter) { - + if (IterLinSol + RestartIter > Smoothing_Iter) MaxIter = Smoothing_Iter - IterLinSol; - + IterLinSol = system->FGMRES_LinSolver(LinSysRes, LinSysSol, *mat_vec, *precond, NumError, MaxIter, &Residual, false); Tot_Iter += IterLinSol; - + if ((rank == MASTER_NODE) && Screen_Output) { cout << " " << Tot_Iter << " " << Residual/Residual_Init << endl; } - + if (Residual < Residual_Init*NumError) { break; } - + } - + if ((rank == MASTER_NODE) && Screen_Output) { cout << "# FGMRES (with restart) final (true) residual:" << endl; cout << "# Iteration = " << Tot_Iter << ": |res|/|res0| = " << Residual/Residual_Init << ".\n" << endl; } - + break; - + /*--- Solve the linear system (GMRES) ---*/ - + case FGMRES: - + Tot_Iter = system->FGMRES_LinSolver(LinSysRes, LinSysSol, *mat_vec, *precond, NumError, Smoothing_Iter, &Residual, Screen_Output); - + break; - + /*--- Solve the linear system (BCGSTAB) ---*/ - + case BCGSTAB: - + Tot_Iter = system->BCGSTAB_LinSolver(LinSysRes, LinSysSol, *mat_vec, *precond, NumError, Smoothing_Iter, &Residual, Screen_Output); - + break; - + } - + /*--- Deallocate memory needed by the Krylov linear solver ---*/ - + delete system; delete mat_vec; delete precond; - + /*--- Update the grid coordinates and cell volumes using the solution of the linear system (usol contains the x, y, z displacements). ---*/ @@ -282,20 +287,20 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co if (UpdateGeo) UpdateDualGrid(geometry, config); - + /*--- Check for failed deformation (negative volumes). ---*/ - + MinVolume = Check_Grid(geometry); - + if (rank == MASTER_NODE) { cout << "Non-linear iter.: " << iNonlinear_Iter+1 << "/" << Nonlinear_Iter << ". Linear iter.: " << Tot_Iter << ". "; if (nDim == 2) cout << "Min. area: " << MinVolume << ". Error: " << Residual << "." << endl; else cout << "Min. volume: " << MinVolume << ". Error: " << Residual << "." << endl; } - + } - + if (fsi){ /*--- Grid velocity (there is a function that does this -> Modify) ---*/ @@ -335,12 +340,6 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co } - - /*--- Deallocate vectors for the linear system. ---*/ - - LinSysSol.~CSysVector(); - LinSysRes.~CSysVector(); - StiffMatrix.~CSysMatrix(); } diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 5978ae5e607..e9283079dfe 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -217,7 +217,7 @@ int main(int argc, char *argv[]) { (config_container[iZone]->GetDirectDiff() == D_DESIGN)) { if (rank == MASTER_NODE) cout << "Setting dynamic mesh structure." << endl; - grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0]); + grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0], config_container[iZone]); FFDBox[iZone] = new CFreeFormDefBox*[MAX_NUMBER_FFD]; surface_movement[iZone] = new CSurfaceMovement(); surface_movement[iZone]->CopyBoundary(geometry_container[iZone][MESH_0], config_container[iZone]); diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index f49af2df033..4af859cf213 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -190,7 +190,7 @@ int main(int argc, char *argv[]) { cout << endl << "----------------------- Volumetric grid deformation ---------------------" << endl; /*--- Definition of the Class for grid movement ---*/ - grid_movement = new CVolumetricMovement(geometry_container[ZONE_0]); + grid_movement = new CVolumetricMovement(geometry_container[ZONE_0], config_container[ZONE_0]); } diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 16a754cf56c..b7eb909cc3d 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -162,7 +162,7 @@ int main(int argc, char *argv[]) { if (rank == MASTER_NODE) cout << "Reading surface sensitivities at each node from file." << endl; geometry_container[ZONE_0]->SetBoundSensitivity(config_container[ZONE_0]); } else { - mesh_movement = new CVolumetricMovement(geometry_container[ZONE_0]); + mesh_movement = new CVolumetricMovement(geometry_container[ZONE_0], config_container[ZONE_0]); geometry_container[ZONE_0]->SetSensitivity(config_container[ZONE_0]); if (rank == MASTER_NODE) cout << "Setting mesh sensitivity." << endl; diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index c08929bc03d..bd933e5b5a3 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -256,7 +256,7 @@ int main(int argc, char *argv[]) { if (config_container[iZone]->GetGrid_Movement()) { if (rank == MASTER_NODE) cout << "Setting dynamic mesh structure." << endl; - grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0]); + grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0], config_container[iZone]); FFDBox[iZone] = new CFreeFormDefBox*[MAX_NUMBER_FFD]; surface_movement[iZone] = new CSurfaceMovement(); surface_movement[iZone]->CopyBoundary(geometry_container[iZone][MESH_0], config_container[iZone]); From 2b6c7419df006982d43bb3217ec89f4d2e2a41b4 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 19 Oct 2015 19:22:41 +0100 Subject: [PATCH 120/269] FSI - enable restart from steady state solution. --- Common/include/config_structure.hpp | 9 ++++++++ Common/include/config_structure.inl | 2 ++ Common/src/config_structure.cpp | 3 +++ SU2_CFD/src/SU2_CFD.cpp | 32 ++++++++++++++--------------- SU2_CFD/src/driver_structure.cpp | 8 ++++++++ SU2_CFD/src/solver_direct_mean.cpp | 13 +++++++++--- 6 files changed, 48 insertions(+), 19 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 1a07921ecf6..08046aa4bcb 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -747,6 +747,7 @@ class CConfig { bool ExtraOutput; bool DeadLoad; /*!< Application of dead loads to the FE analysis */ bool MatchingMesh; /*!< Matching mesh (while implementing interpolation procedures). */ + bool SteadyRestart; /*!< Restart from a steady state for FSI problems. */ su2double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ bool Gradual_Load, /*!< \brief Apply the load gradually. */ @@ -5490,6 +5491,14 @@ class CConfig { bool GetMatchingMesh(void); + /*! + * \brief Identifies if we want to restart from a steady or an unsteady solution. + * \return TRUE if we restart from steady state solution, FALSE otherwise. + */ + + bool GetSteadyRestart(void); + + /*! * \brief Provides information about the time integration of the structural analysis, and change the write in the output * files information about the iteration. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 21e7f6c7831..afbf6538967 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1232,6 +1232,8 @@ inline bool CConfig::GetDeadLoad(void) { return DeadLoad; } inline bool CConfig::GetMatchingMesh(void) { return MatchingMesh; } +inline bool CConfig::GetSteadyRestart(void) { return SteadyRestart; } + inline unsigned short CConfig::GetDynamic_Analysis(void) { return Dynamic_Analysis; } inline su2double CConfig::GetDelta_DynTime(void) { return Delta_DynTime; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 0cb2cd0c555..4cb7a7d2d75 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1272,6 +1272,9 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Maximum number of iterations of the linear solver for the implicit formulation */ addUnsignedLongOption("FSI_LINEAR_SOLVER_ITER_STRUC", Linear_Solver_Iter_FSI_Struc, 500); + /* DESCRIPTION: Restart from a steady state (sets grid velocities to 0 when loading the restart). */ + addBoolOption("RESTART_STEADY_STATE", SteadyRestart, false); + /* DESCRIPTION: Apply dead loads * Options: NO, YES \ingroup Config */ addBoolOption("MATCHING_MESH", MatchingMesh, true); diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index e9283079dfe..22fecaf055a 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -378,23 +378,23 @@ int main(int argc, char *argv[]) { runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); runtime->SetExtIter(ExtIter); -// /*--- Update the convergence history file (serial and parallel computations). ---*/ -// if (fsi){ -// if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; -// for (iZone = 0; iZone < nZone; iZone++){ -// if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; -// else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; -// output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, -// config_container, integration_container, false, UsedTime, iZone); -// } -// -// if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; -// } + /*--- Update the convergence history file (serial and parallel computations). ---*/ + if (fsi){ + if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; + for (iZone = 0; iZone < nZone; iZone++){ + if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; + else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; + output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, + config_container, integration_container, false, UsedTime, iZone); + } - /*--- Update the convergence history file (serial and parallel computations). ---*/ - - output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, - config_container, integration_container, false, UsedTime, ZONE_0); + if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; + } + +// /*--- Update the convergence history file (serial and parallel computations). ---*/ +// +// output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, +// config_container, integration_container, false, UsedTime, ZONE_0); /*--- Evaluate the new CFL number (adaptive). ---*/ diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 063e67e684a..01dc17b6172 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -2233,6 +2233,10 @@ void CFSIDriver::Run(CIteration **iteration_container, output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_FLOW); + /*--- Set the fluid convergence to false (to make sure FSI subiterations converge) ---*/ + + integration_container[ZONE_FLOW][FLOW_SOL]->SetConvergence(false); + /*-----------------------------------------------------------------*/ /*------------------- Set FEA loads from fluid --------------------*/ /*-----------------------------------------------------------------*/ @@ -2254,6 +2258,10 @@ void CFSIDriver::Run(CIteration **iteration_container, output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUCT); + /*--- Set the fluid convergence to false (to make sure FSI subiterations converge) ---*/ + + integration_container[ZONE_STRUCT][FEA_SOL]->SetConvergence(false); + /*-----------------------------------------------------------------*/ /*----------------- Displacements relaxation ----------------------*/ /*-----------------------------------------------------------------*/ diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index a881469a42b..4745c57ac21 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -9972,7 +9972,8 @@ void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMo su2double *Coord, VarCoord[3] = {0,0,0}; #ifndef HAVE_MPI - unsigned long iPoint_Donor; + unsigned long iPoint_Donor, iPoint; + unsigned short iMarker; su2double *CoordDonor, *DisplacementDonor; for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { @@ -10392,6 +10393,7 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig bool grid_movement = config->GetGrid_Movement(); bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || (config->GetUnsteady_Simulation() == DT_STEPPING_2ND)); + bool steady_restart = config->GetSteadyRestart(); string UnstExt, text_line; ifstream restart_file; @@ -10485,10 +10487,15 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig } /*--- Read in the next 2 or 3 variables which are the grid velocities ---*/ + /*--- If we are restarting the solution from a previously computed steady state calculation ---*/ + /*--- the grid velocities are set to 0. This is useful for FSI computations ---*/ su2double GridVel[3] = {0.0,0.0,0.0}; - if (nDim == 2) point_line >> GridVel[0] >> GridVel[1]; - else point_line >> GridVel[0] >> GridVel[1] >> GridVel[2]; + if (!steady_restart){ + if (nDim == 2) point_line >> GridVel[0] >> GridVel[1]; + else point_line >> GridVel[0] >> GridVel[1] >> GridVel[2]; + } + for (iDim = 0; iDim < nDim; iDim++) { geometry[MESH_0]->node[iPoint_Local]->SetCoord(iDim, Coord[iDim]); From 4556af4b8a64644da20b8b62cc3930d4c4e38c32 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 22 Oct 2015 19:38:30 +0100 Subject: [PATCH 121/269] FEM: Preliminary implementation of generalized-alpha method. --- Common/include/config_structure.hpp | 15 + Common/include/config_structure.inl | 4 + Common/include/option_structure.hpp | 4 +- Common/src/config_structure.cpp | 7 + SU2_CFD/include/integration_structure.hpp | 4 +- SU2_CFD/include/solver_structure.hpp | 86 ++++- SU2_CFD/include/solver_structure.inl | 10 + SU2_CFD/include/variable_structure.hpp | 42 +++ SU2_CFD/include/variable_structure.inl | 20 ++ SU2_CFD/src/SU2_CFD.cpp | 7 +- SU2_CFD/src/integration_structure.cpp | 37 +- SU2_CFD/src/iteration_structure.cpp | 4 +- SU2_CFD/src/solver_fem_elasticity.cpp | 405 +++++++++++++++++++++- SU2_CFD/src/variable_fem_elasticity.cpp | 16 + 14 files changed, 626 insertions(+), 35 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 08046aa4bcb..138e6b448a4 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -750,6 +750,8 @@ class CConfig { bool SteadyRestart; /*!< Restart from a steady state for FSI problems. */ su2double Newmark_alpha, /*!< \brief Parameter alpha for Newmark method. */ Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ + unsigned short nIntCoeffs; /*!< \brief Number of integration coeffs for structural calculations. */ + su2double *Int_Coeffs; /*!< \brief Time integration coefficients for structural method. */ bool Gradual_Load, /*!< \brief Apply the load gradually. */ Ramp_Load; /*!< \brief Apply the load with linear increases. */ bool IncrementalLoad; /*!< \brief Apply the load in increments (for nonlinear structural analysis). */ @@ -5545,6 +5547,19 @@ class CConfig { */ su2double GetNewmark_delta(void); + /*! + * \brief Get the number of integration coefficients provided by the user. + * \return Number of integration coefficients. + */ + unsigned short GetnIntCoeffs(void); + + /*! + * \brief Get the integration coefficients for the Generalized Alpha - Newmark integration integration scheme. + * \param[in] val_coeff - Index of the coefficient. + * \return Alpha coefficient for the Runge-Kutta integration scheme. + */ + su2double Get_Int_Coeffs(unsigned short val_coeff); + /*! * \brief Check if the user wants to apply the load gradually. * \return TRUE means that the load is to be applied gradually. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index afbf6538967..2b727d897e6 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1248,6 +1248,10 @@ inline su2double CConfig::GetNewmark_alpha(void) { return Newmark_alpha; } inline su2double CConfig::GetNewmark_delta(void) { return Newmark_delta; } +inline unsigned short CConfig::GetnIntCoeffs(void) { return nIntCoeffs; } + +inline su2double CConfig::Get_Int_Coeffs(unsigned short val_coeff) { return Int_Coeffs[val_coeff]; } + inline bool CConfig::GetGradual_Load(void) { return Gradual_Load; } inline bool CConfig::GetRamp_Load(void) { return Ramp_Load; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 855bfe411e8..c2eae4c3e54 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -717,12 +717,12 @@ static const map Time_Int_Map = CCreateMap Time_Int_Map_FEA = CCreateMap ("CD_EXPLICIT", CD_EXPLICIT) ("NEWMARK_IMPLICIT", NEWMARK_IMPLICIT) -("GA_IMPLICIT", GA_IMPLICIT); +("GENERALIZED_ALPHA", GENERALIZED_ALPHA); /*! * \brief type of time integration schemes diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 4cb7a7d2d75..13f8fbf90f6 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1231,6 +1231,8 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Time while the load is to be increased linearly */ addDoubleOption("RAMP_TIME", Ramp_Time, 1.0); + /* DESCRIPTION: Newmark - Generalized alpha - coefficients */ + addDoubleListOption("TIME_INT_STRUCT_COEFFS", nIntCoeffs, Int_Coeffs); /* DESCRIPTION: Apply dead loads. Options: NO, YES \ingroup Config */ addBoolOption("INCREMENTAL_LOAD", IncrementalLoad, false); @@ -2472,6 +2474,11 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ RK_Alpha_Step = new su2double[1]; RK_Alpha_Step[0] = 1.0; } + if (nIntCoeffs == 0) { + nIntCoeffs = 2; + Int_Coeffs = new su2double[2]; Int_Coeffs[0] = 0.25; Int_Coeffs[1] = 0.5; + } + if ((Kind_SU2 == SU2_CFD) && (Kind_Solver == NO_SOLVER)) { cout << "PHYSICAL_PROBLEM must be set in the configuration file" << endl; exit(EXIT_FAILURE); diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index eb206990d6b..92f179ca968 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -231,10 +231,10 @@ class CIntegration { /*! * \brief Save the structural solution at different time steps. * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solution - Flow solution. + * \param[in] solver_container - Structural solution. * \param[in] config - Definition of the particular problem. */ - void SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh); + void SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh); /*! * \brief A virtual member. diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 7d475ffd1fe..a1aa0a0a687 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -171,6 +171,13 @@ class CSolver { */ virtual void Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config); + /*! + * \brief Impose the send-receive boundary condition for velocities and accelerations in structural solutions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + virtual void Set_MPI_Solution_DispOnly(CGeometry *geometry, CConfig *config); + /*! * \brief Impose the send-receive boundary condition for predicted FSI structural solutions. * \param[in] geometry - Geometrical definition of the problem. @@ -1008,7 +1015,39 @@ class CSolver { * \param[in] config - Definition of the particular problem. */ virtual void ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config); - + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void GeneralizedAlpha_UpdateSolution(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -6265,7 +6304,7 @@ class CFEASolver : public CSolver { *DeadLoadVector_Elem, /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ *DeadLoadVector_Node; /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ - su2double a_dt[8]; /*!< \brief Integration constants. */ + su2double a_dt[8]; /*!< \brief Integration constants. */ su2double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ su2double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ @@ -6669,6 +6708,8 @@ class CFEM_ElasticitySolver : public CSolver { su2double *solutionPredictor; /*!< \brief Auxiliary vector to store the solution predictor */ + su2double *Solution_Interm; /*!< \brief Auxiliary vector to store the intermediate solution */ + su2double *SolRest; /*!< \brief Auxiliary vector to restart the solution */ su2double *nodeReactions; /*!< \brief Auxiliary vector to store the reactions */ @@ -6679,7 +6720,7 @@ class CFEM_ElasticitySolver : public CSolver { su2double **mZeros_Aux; /*!< \brief Submatrix to make zeros and impose clamped boundary conditions. */ su2double **mId_Aux; /*!< \brief Diagonal submatrix to impose clamped boundary conditions. */ - su2double a_dt[8]; /*!< \brief Integration constants. */ + su2double a_dt[9]; /*!< \brief Integration constants. */ su2double Conv_Ref[3]; /*!< \brief Reference values for convergence check: DTOL, RTOL, ETOL */ su2double Conv_Check[3]; /*!< \brief Current values for convergence check: DTOL, RTOL, ETOL */ @@ -6724,6 +6765,13 @@ class CFEM_ElasticitySolver : public CSolver { */ void Set_MPI_Solution(CGeometry *geometry, CConfig *config); + /*! + * \brief Impose the send-receive boundary condition only for displacements in structural solutions. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Set_MPI_Solution_DispOnly(CGeometry *geometry, CConfig *config); + /*! * \brief Impose the send-receive boundary condition for predicted FSI structural solutions. * \param[in] geometry - Geometrical definition of the problem. @@ -6941,6 +6989,38 @@ class CFEM_ElasticitySolver : public CSolver { */ void ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! + * \brief Iterate using an implicit Generalized Alpha solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief Update the solution using an implicit Generalized Alpha solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief Update the solution using an implicit Generalized Alpha solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void GeneralizedAlpha_UpdateSolution(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief Update the solution using an implicit Generalized Alpha solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief Postprocessing. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 432bf75b57b..9d256f54a54 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -49,6 +49,8 @@ inline void CSolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) inline void CSolver::Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config) { } +inline void CSolver::Set_MPI_Solution_DispOnly(CGeometry *geometry, CConfig *config) { } + inline void CSolver::Set_MPI_Solution_Limiter(CGeometry *geometry, CConfig *config) { } inline void CSolver::Set_MPI_Primitive_Limiter(CGeometry *geometry, CConfig *config) { } @@ -579,6 +581,14 @@ inline void CSolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **so inline void CSolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } +inline void CSolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + +inline void CSolver::GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + +inline void CSolver::GeneralizedAlpha_UpdateSolution(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + +inline void CSolver::GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + inline void CSolver::Compute_Residual(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index beec3248fd0..4880059d7d5 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1487,6 +1487,16 @@ class CVariable { */ virtual void Clear_SurfaceLoad_Res(void); + /*! + * \brief A virtual member. + */ + virtual void Set_SurfaceLoad_Res_n(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_SurfaceLoad_Res_n(unsigned short iVar); + /*! * \brief A virtual member. */ @@ -1507,6 +1517,16 @@ class CVariable { */ virtual su2double Get_FlowTraction(unsigned short iVar); + /*! + * \brief A virtual member. + */ + virtual void Set_FlowTraction_n(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_FlowTraction_n(unsigned short iVar); + /*! * \brief A virtual member. */ @@ -2625,9 +2645,11 @@ class CFEM_ElasVariable : public CVariable { su2double *Stress; /*!< \brief Stress tensor. */ su2double *FlowTraction; /*!< \brief Traction from the fluid field. */ + su2double *FlowTraction_n; /*!< \brief Traction from the fluid field at time n. */ // su2double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ su2double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ + su2double *Residual_Ext_Surf_n; /*!< \brief Term of the residual due to external forces at time n */ su2double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ su2double VonMises_Stress; /*!< \brief Von Mises stress. */ @@ -2706,6 +2728,16 @@ class CFEM_ElasVariable : public CVariable { */ void Clear_SurfaceLoad_Res(void); + /*! + * \brief Store the surface load as the load for the previous time step. + */ + void Set_SurfaceLoad_Res_n(void); + + /*! + * \brief Get the surface load from the previous time step. + */ + su2double Get_SurfaceLoad_Res_n(unsigned short iVar); + /*! * \brief Set the flow traction at a node on the structural side */ @@ -2726,6 +2758,16 @@ class CFEM_ElasVariable : public CVariable { */ su2double Get_FlowTraction(unsigned short iVar); + /*! + * \brief Set the value of the flow traction at the previous time step. + */ + void Set_FlowTraction_n(void); + + /*! + * \brief Retrieve the value of the flow traction from the previous time step. + */ + su2double Get_FlowTraction_n(unsigned short iVar); + /*! * \brief Clear the flow traction residual */ diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index b8668dd6f6c..6f3b27ee605 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -77,6 +77,10 @@ inline su2double CVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return 0.0 inline void CVariable::Clear_SurfaceLoad_Res(void) { } +inline void CVariable::Set_SurfaceLoad_Res_n(void) { } + +inline su2double CVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) { return 0.0;} + inline void CVariable::Set_FlowTraction(su2double *val_flowTraction) { } inline void CVariable::Add_FlowTraction(su2double *val_flowTraction) { } @@ -87,6 +91,10 @@ inline su2double CVariable::Get_FlowTraction(unsigned short iVar) {return 0.0;} inline void CVariable::Clear_FlowTraction(void) { } +inline void CVariable::Set_FlowTraction_n(void) { } + +inline su2double CVariable::Get_FlowTraction_n(unsigned short iVar) { return 0.0; } + inline su2double CVariable::GetBetaInc2(void) { return 0; } inline su2double CVariable::GetDiffLevelSet(void) { return 0; } @@ -917,6 +925,12 @@ inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; } +inline void CFEM_ElasVariable::Set_SurfaceLoad_Res_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf_n[iVar] = Residual_Ext_Surf[iVar]; +} + +inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) {return Residual_Ext_Surf_n[iVar];} + inline void CFEM_ElasVariable::Set_FlowTraction(su2double *val_flowTraction) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = val_flowTraction[iVar]; @@ -935,6 +949,12 @@ inline void CFEM_ElasVariable::Clear_FlowTraction(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = 0.0; } +inline void CFEM_ElasVariable::Set_FlowTraction_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction_n[iVar] = FlowTraction[iVar]; +} + +inline su2double CFEM_ElasVariable::Get_FlowTraction_n(unsigned short iVar) {return FlowTraction_n[iVar];} + inline void CFEM_ElasVariable::SetSolution_time_n(void) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = Solution[iVar]; } diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 22fecaf055a..95e2f307388 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -313,7 +313,7 @@ int main(int argc, char *argv[]) { historyFile_FSI << "Time,Iteration,Aitken,URes,logResidual,orderMagnResidual" << endl; historyFile_FSI.close(); } - + while (ExtIter < config_container[ZONE_0]->GetnExtIter()) { /*--- Set the value of the external iteration. ---*/ @@ -390,6 +390,11 @@ int main(int argc, char *argv[]) { if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; } + else { + output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, + config_container, integration_container, false, UsedTime, ZONE_0); + + } // /*--- Update the convergence history file (serial and parallel computations). ---*/ // diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 527f3d31453..82435ca46bb 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -378,7 +378,7 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai case (NEWMARK_IMPLICIT): solver_container[MainSolver]->ImplicitNewmark_Iteration(geometry, solver_container, config); break; - case (GA_IMPLICIT): + case (GENERALIZED_ALPHA): solver_container[MainSolver]->ImplicitEuler_Iteration(geometry, solver_container, config); break; } @@ -402,8 +402,8 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co case (NEWMARK_IMPLICIT): solver_container[MainSolver]->ImplicitNewmark_Iteration(geometry, solver_container, config); break; - case (GA_IMPLICIT): - solver_container[MainSolver]->ImplicitEuler_Iteration(geometry, solver_container, config); + case (GENERALIZED_ALPHA): + solver_container[MainSolver]->GeneralizedAlpha_Iteration(geometry, solver_container, config); break; } @@ -432,8 +432,8 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co case (NEWMARK_IMPLICIT): solver_container[MainSolver]->ImplicitNewmark_Update(geometry, solver_container, config); break; - case (GA_IMPLICIT): - solver_container[MainSolver]->ImplicitNewmark_Update(geometry, solver_container, config); + case (GENERALIZED_ALPHA): + solver_container[MainSolver]->GeneralizedAlpha_UpdateDisp(geometry, solver_container, config); break; } @@ -711,16 +711,29 @@ void CIntegration::SetStructural_Solver(CGeometry *geometry, CSolver *solver, CC } -void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh) { +void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { unsigned long iPoint; - /*--- Update the solution at both the local points and the halo points ---*/ + /*--- Update the solution according to the integration scheme used ---*/ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + break; + case (NEWMARK_IMPLICIT): + break; + case (GENERALIZED_ALPHA): + solver_container[FEA_SOL]->GeneralizedAlpha_UpdateSolution(geometry, solver_container, config); + solver_container[FEA_SOL]->GeneralizedAlpha_UpdateLoads(geometry, solver_container, config); + break; + } + + /*--- Store the solution at t+1 as solution at t, both for the local points and for the halo points ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - solver->node[iPoint]->SetSolution_time_n(); - solver->node[iPoint]->SetSolution_Vel_time_n(); - solver->node[iPoint]->SetSolution_Accel_time_n(); + solver_container[FEA_SOL]->node[iPoint]->SetSolution_time_n(); + solver_container[FEA_SOL]->node[iPoint]->SetSolution_Vel_time_n(); + solver_container[FEA_SOL]->node[iPoint]->SetSolution_Accel_time_n(); } @@ -732,8 +745,8 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver *solver, su2double WAitk=0.0; - WAitk = solver->GetWAitken_Dyn(); - solver->SetWAitken_Dyn_tn1(WAitk); + WAitk = solver_container[FEA_SOL]->GetWAitken_Dyn(); + solver_container[FEA_SOL]->SetWAitken_Dyn_tn1(WAitk); } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 5b0064697fb..d71333064d1 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1198,7 +1198,7 @@ void CFEM_StructuralAnalysis::Update(COutput *output, /*----------------- Update structural solver ----------------------*/ if (dynamic){ - integration_container[val_iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0][FEA_SOL], config_container[val_iZone], MESH_0); + integration_container[val_iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], config_container[val_iZone], MESH_0); integration_container[val_iZone][FEA_SOL]->SetConvergence(false); /*--- Verify convergence criteria (based on total time) ---*/ @@ -2027,7 +2027,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai if (dynamic){ for (iZone = 0; iZone < nZone; iZone++) { - integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], config_container[iZone], MESH_0); integration_container[iZone][FEA_SOL]->SetConvergence(false); } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 7f029e03020..a556a330d7f 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -72,6 +72,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { normalVertex = NULL; stressTensor = NULL; + Solution_Interm = NULL; + } CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { @@ -82,6 +84,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool fsi = config->GetFSI_Simulation(); // FSI simulation + bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -131,6 +134,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + if (gen_alpha) { + Solution_Interm = new su2double[nVar]; + for (iVar = 0; iVar < nVar; iVar++) Solution_Interm[iVar] = 0.0; + } + else{ + Solution_Interm = NULL; + } + nodeReactions = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; /*--- The length of the solution vector depends on whether the problem is static or dynamic ---*/ @@ -612,6 +623,88 @@ void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *confi } +void CFEM_ElasticitySolver::Set_MPI_Solution_DispOnly(CGeometry *geometry, CConfig *config) { + + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + #ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; + #endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + + #ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + #endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); + } + + #ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + + #else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + + #endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy solution variables. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution(iVar, SolRest[iVar]); + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + +} + void CFEM_ElasticitySolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) { @@ -1404,7 +1497,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s break; - case (GA_IMPLICIT): + case (GENERALIZED_ALPHA): cout << "NOT IMPLEMENTED YET" << endl; break; } @@ -1426,18 +1519,50 @@ void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver void CFEM_ElasticitySolver::Compute_IntegrationConstants(CConfig *config) { su2double Delta_t= config->GetDelta_DynTime(); + su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); - /*--- Integration constants for Newmark scheme ---*/ + su2double beta = config->Get_Int_Coeffs(0), gamma = config->Get_Int_Coeffs(1); + su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + case (NEWMARK_IMPLICIT): + + /*--- Integration constants for Newmark scheme ---*/ + + a_dt[0]= 1 / (alpha*pow(Delta_t,2.0)); + a_dt[1]= delta / (alpha*Delta_t); + a_dt[2]= 1 / (alpha*Delta_t); + a_dt[3]= 1 /(2*alpha) - 1; + a_dt[4]= delta/alpha - 1; + a_dt[5]= (Delta_t/2) * (delta/alpha - 2); + a_dt[6]= Delta_t * (1-delta); + a_dt[7]= delta * Delta_t; + a_dt[8]= 0.0; + + break; + + case (GENERALIZED_ALPHA): + + /*--- Integration constants for Generalized Alpha ---*/ + /*--- Needs to be updated if accounting for structural damping ---*/ + + a_dt[0]= (1 / (beta*pow(Delta_t,2.0))) * ((1 - alpha_m) / (1 - alpha_f)) ; + a_dt[1]= 0.0 ; + a_dt[2]= (1 - alpha_m) / (beta*Delta_t); + a_dt[3]= ((1 - 2*beta)*(1-alpha_m) / (2*beta)) - alpha_m; + a_dt[4]= 0.0; + a_dt[5]= 0.0; + a_dt[6]= Delta_t * (1-delta); + a_dt[7]= delta * Delta_t; + a_dt[8]= (1 - alpha_m) / (beta*pow(Delta_t,2.0)); + + break; + } - a_dt[0]= 1 / (alpha*pow(Delta_t,2.0)); - a_dt[1]= delta / (alpha*Delta_t); - a_dt[2]= 1 / (alpha*Delta_t); - a_dt[3]= 1 /(2*alpha) - 1; - a_dt[4]= delta/alpha - 1; - a_dt[5]= (Delta_t/2) * (delta/alpha - 2); - a_dt[6]= Delta_t * (1-delta); - a_dt[7]= delta * Delta_t; } @@ -1782,7 +1907,6 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co node[Point_2]->Add_SurfaceLoad_Res(Residual); node[Point_3]->Add_SurfaceLoad_Res(Residual); - } } @@ -1879,7 +2003,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } else if (nonlinear_analysis){ for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) @@ -1934,7 +2057,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. /*--- Update solution ---*/ @@ -1999,6 +2122,262 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver } + +void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned long iPoint, jPoint; + unsigned short iVar, jVar; + + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + bool fsi = config->GetFSI_Simulation(); // FSI simulation. + + bool restart = config->GetRestart(); // Restart solution + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration + + su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); + + bool incremental_load = config->GetIncrementalLoad(); + + if (!dynamic){ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + /*--- Add the external contribution to the residual ---*/ + /*--- (the terms that are constant over the time step) ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + } + } + else { + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + } + + } + + if (dynamic) { + + /*--- Add the mass matrix contribution to the Jacobian ---*/ + + /* + * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning + * of each time step. If the solution method is Newton Rapshon, we repeat this step at the beginning of each + * iteration, as the Jacobian is recomputed + * + * If the problem is linear, we add the Mass Matrix contribution to the Jacobian at the first calculation. + * From then on, the Jacobian is always the same matrix. + * + */ + + if ((nonlinear_analysis && (newton_raphson || first_iter)) || + (linear_analysis && initial_calc) || + (linear_analysis && restart && initial_calc_restart)) { + for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (jPoint = 0; jPoint < nPoint; jPoint++){ + for(iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); + } + } + Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); + } + } + } + + + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); + /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + /*--- Dynamic contribution ---*/ + /*--- TODO: Do I have to scale this one? I don't think so... ---*/ + Res_Time_Cont = TimeRes.GetBlock(iPoint); + LinSysRes.AddBlock(iPoint, Res_Time_Cont); + /*--- External surface load contribution ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_SurfaceLoad_Res(iVar) + + alpha_f * node[iPoint]->Get_SurfaceLoad_Res_n(iVar) ); + } + } + else { + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = (1 - alpha_f) * node[iPoint]->Get_SurfaceLoad_Res(iVar) + + alpha_f * node[iPoint]->Get_SurfaceLoad_Res_n(iVar); + } + } + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add FSI contribution ---*/ + if (fsi) { + /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_FSI_Cont[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + + alpha_f * node[iPoint]->Get_FlowTraction_n(iVar) ); + } + } + else { + for (iVar = 0; iVar < nVar; iVar++){ + Res_FSI_Cont[iVar] = (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + + alpha_f * node[iPoint]->Get_FlowTraction_n(iVar); + } + } + LinSysRes.AddBlock(iPoint, Res_FSI_Cont); + } + } + } + +} + +void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + + /*--- Update solution ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ + + if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + + /*--- Perform the MPI communication of the solution, displacements only ---*/ + + Set_MPI_Solution_DispOnly(geometry, config); + +} + +void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateSolution(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + + su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); + + /*--- Compute solution at t_n+1, and update velocities and accelerations ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Compute the solution from the previous time step and the solution computed at t+1-alpha_f ---*/ + /*--- U(t+dt) = 1/alpha_f*(U(t+1-alpha_f)-alpha_f*U(t)) ---*/ + + Solution[iVar]=(1 / (1 - alpha_f))*(node[iPoint]->GetSolution(iVar) - + alpha_f * node[iPoint]->GetSolution_time_n(iVar)); + + } + + /*--- Set the solution in the node structure ---*/ + + node[iPoint]->SetSolution(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Acceleration component of the solution ---*/ + /*--- U''(t+dt-alpha_m) = a8*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ + + Solution_Interm[iVar]=a_dt[8]*( node[iPoint]->GetSolution(iVar) - + node[iPoint]->GetSolution_time_n(iVar)) - + a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - + a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); + + /*--- Compute the solution from the previous time step and the solution computed at t+1-alpha_f ---*/ + /*--- U''(t+dt) = 1/alpha_m*(U''(t+1-alpha_m)-alpha_m*U''(t)) ---*/ + + Solution[iVar]=(1 / (1 - alpha_m))*(Solution_Interm[iVar] - alpha_m * node[iPoint]->GetSolution_Accel_time_n(iVar)); + } + + /*--- Set the acceleration in the node structure ---*/ + + node[iPoint]->SetSolution_Accel(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Velocity component of the solution ---*/ + /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ + + Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ + a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + + a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); + + } + + /*--- Set the velocity in the node structure ---*/ + + node[iPoint]->SetSolution_Vel(Solution); + + } + + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + +} + +void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned long iPoint; + bool fsi = config->GetFSI_Simulation(); + + /*--- Set the load conditions of the time step n+1 as the load conditions for time step n ---*/ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + node[iPoint]->Set_SurfaceLoad_Res_n(); + if (fsi) node[iPoint]->Set_FlowTraction_n(); + } + + /*--- TODO: Perform the MPI communication of the solution (I think this may be needed) ---*/ + +} + void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ unsigned long IterLinSol = 0, iPoint, total_index; diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index be28dae27b2..50cf54accd7 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -44,6 +44,9 @@ CFEM_ElasVariable::CFEM_ElasVariable(void) : CVariable() { Residual_Ext_Surf = NULL; // Residual component due to external surface forces Residual_Ext_Body = NULL; // Residual component due to body forces + FlowTraction_n = NULL; // Nodal traction due to the fluid (fsi) at time n (for gen-alpha methods) + Residual_Ext_Surf_n = NULL; // Residual component due to external surface forces at time n (for gen-alpha methods) + Solution_time_n = NULL; // Solution at the node at the previous subiteration Solution_Vel = NULL; // Velocity at the node at time t+dt @@ -63,6 +66,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. bool body_forces = false; // Bool for adding body forces in the future. bool incremental_load = config->GetIncrementalLoad(); + bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. VonMises_Stress = 0.0; @@ -120,6 +124,15 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim Solution_Old = new su2double [nVar]; } + /*--- If we are going to use a generalized alpha integration method, we need a way to store the old residuals ---*/ + if (gen_alpha){ + Residual_Ext_Surf_n = new su2double [nVar]; + + if (fsi_analysis) FlowTraction_n = new su2double [nVar]; + else FlowTraction_n = NULL; + + } + // if (nonlinear_analysis) Residual_Int = new su2double [nVar]; else Residual_Int = NULL; if (body_forces) Residual_Ext_Body = new su2double [nVar]; else Residual_Ext_Body = NULL; Residual_Ext_Surf = new su2double [nVar]; @@ -138,6 +151,9 @@ CFEM_ElasVariable::~CFEM_ElasVariable(void) { if (Residual_Ext_Surf != NULL) delete [] Residual_Ext_Surf; if (Residual_Ext_Body != NULL) delete [] Residual_Ext_Body; + if (FlowTraction_n != NULL) delete [] FlowTraction_n; + if (Residual_Ext_Surf_n != NULL) delete [] Residual_Ext_Surf_n; + if (Solution_time_n != NULL) delete [] Solution_time_n; if (Solution_Vel != NULL) delete [] Solution_Vel; From 0812ff5fc27e6d11aa0a083b957b81ebdae8187a Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 29 Oct 2015 18:01:15 +0000 Subject: [PATCH 122/269] FEM: Added plane stress support for linear FEA. --- Common/src/config_structure.cpp | 2 +- SU2_CFD/include/numerics_structure.hpp | 1 + SU2_CFD/src/numerics_fem_elasticity.cpp | 2 ++ .../src/numerics_fem_linear_elasticity.cpp | 34 +++++++++++++------ 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 13f8fbf90f6..5a34f61d78b 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1210,7 +1210,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addUnsignedLongOption("NONLINEAR_FEM_INT_ITER", Dyn_nIntIter, 100); /* DESCRIPTION: Formulation for bidimensional elasticity solver */ - addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRESS); + addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRAIN); /* DESCRIPTION: Apply dead loads * Options: NO, YES \ingroup Config */ addBoolOption("DEAD_LOAD", DeadLoad, false); diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 5814886a15a..54c50d99dce 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -4342,6 +4342,7 @@ class CFEM_Elasticity : public CNumerics { su2double Mu; /*!< \brief Lame's coeficient. */ su2double Lambda; /*!< \brief Lame's coeficient. */ su2double Kappa; /*!< \brief Compressibility constant. */ + bool plane_stress; /*!< \brief Checks if we are solving a plane stress case */ su2double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index efd2856f0a9..30681368729 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -40,6 +40,8 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); Kappa = config->GetBulk_Modulus_Struct(); + plane_stress = (config->GetElas2D_Formulation() == PLANE_STRESS); + unsigned short iVar; KAux_ab = new su2double* [nDim]; diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index 0eda88371e2..0e67a741719 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -179,21 +179,35 @@ void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ - /*--- Assuming plane strain ---*/ + /*--- Compute the D Matrix (for plane stress and 2-D)---*/ + if (nDim == 2){ - D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = 0.0; - D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = 0.0; - D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = Mu; + if (plane_stress){ + + /*--- We enable plane stress cases ---*/ + + D_Mat[0][0] = E/(1-Nu*Nu); D_Mat[0][1] = (E*Nu)/(1-Nu*Nu); D_Mat[0][2] = 0.0; + D_Mat[1][0] = (E*Nu)/(1-Nu*Nu); D_Mat[1][1] = E/(1-Nu*Nu); D_Mat[1][2] = 0.0; + D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); + } + else{ + /*--- Assuming plane strain as a general case ---*/ + + D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = 0.0; + D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = 0.0; + D_Mat[2][0] = 0.0; D_Mat[2][1] = 0.0; D_Mat[2][2] = Mu; + } + } else if (nDim == 3){ - D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = Lambda; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; - D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = Lambda; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; - D_Mat[2][0] = Lambda; D_Mat[2][1] = Lambda; D_Mat[2][2] = Lambda + 2.0*Mu; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; - D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; - D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu; D_Mat[4][5] = 0.0; - D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu; + D_Mat[0][0] = Lambda + 2.0*Mu; D_Mat[0][1] = Lambda; D_Mat[0][2] = Lambda; D_Mat[0][3] = 0.0; D_Mat[0][4] = 0.0; D_Mat[0][5] = 0.0; + D_Mat[1][0] = Lambda; D_Mat[1][1] = Lambda + 2.0*Mu; D_Mat[1][2] = Lambda; D_Mat[1][3] = 0.0; D_Mat[1][4] = 0.0; D_Mat[1][5] = 0.0; + D_Mat[2][0] = Lambda; D_Mat[2][1] = Lambda; D_Mat[2][2] = Lambda + 2.0*Mu; D_Mat[2][3] = 0.0; D_Mat[2][4] = 0.0; D_Mat[2][5] = 0.0; + D_Mat[3][0] = 0.0; D_Mat[3][1] = 0.0; D_Mat[3][2] = 0.0; D_Mat[3][3] = Mu; D_Mat[3][4] = 0.0; D_Mat[3][5] = 0.0; + D_Mat[4][0] = 0.0; D_Mat[4][1] = 0.0; D_Mat[4][2] = 0.0; D_Mat[4][3] = 0.0; D_Mat[4][4] = Mu; D_Mat[4][5] = 0.0; + D_Mat[5][0] = 0.0; D_Mat[5][1] = 0.0; D_Mat[5][2] = 0.0; D_Mat[5][3] = 0.0; D_Mat[5][4] = 0.0; D_Mat[5][5] = Mu; } From f4247e84f7555e9b6cea41c65f2c1c4a5afe7a72 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 5 Nov 2015 17:57:49 +0000 Subject: [PATCH 123/269] FEM: Preliminary plane stress imp. for non-linear analysis --- SU2_CFD/include/numerics_structure.hpp | 18 +++- SU2_CFD/include/numerics_structure.inl | 6 ++ .../src/numerics_fem_nonlinear_elasticity.cpp | 90 +++++++++++++++++++ 3 files changed, 113 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index 54c50d99dce..47090a7afbd 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1617,6 +1617,12 @@ class CNumerics { */ virtual void Compute_NodalStress_Term(CElement *element_container); + /*! + * \brief A virtual member to compute the plane stress term in an element for nonlinear structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Plane_Stress_Term(CElement *element_container); + /*! * \brief A virtual member to compute the constitutive matrix in an element for structural problems * \param[in] config - Definition of the particular problem. @@ -4377,6 +4383,8 @@ class CFEM_Elasticity : public CNumerics { virtual void Compute_Averaged_NodalStress(CElement *element_container); + virtual void Compute_Plane_Stress_Term(CElement *element_container); + virtual void Compute_Constitutive_Matrix(CElement *element_container); virtual void Compute_Stress_Tensor(CElement *element_container); @@ -4442,7 +4450,9 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { su2double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ su2double *KAux_t_a; /*!< \brief Auxiliar matrix for the pressure term */ - su2double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ + su2double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ + + su2double f33; /*!< \brief Plane stress term for non-linear 2D plane stress analysis */ public: @@ -4467,6 +4477,8 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { void Compute_Averaged_NodalStress(CElement *element_container); + virtual void Compute_Plane_Stress_Term(CElement *element_container); + virtual void Compute_Constitutive_Matrix(CElement *element_container); virtual void Compute_Stress_Tensor(CElement *element_container); @@ -4498,6 +4510,8 @@ class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { */ ~CFEM_NeoHookean_Comp(void); + void Compute_Plane_Stress_Term(CElement *element_container); + void Compute_Constitutive_Matrix(CElement *element_container); void Compute_Stress_Tensor(CElement *element_container); @@ -4528,6 +4542,8 @@ class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { */ ~CFEM_NeoHookean_Incomp(void); + void Compute_Plane_Stress_Term(CElement *element_container); + void Compute_Constitutive_Matrix(CElement *element_container); void Compute_Stress_Tensor(CElement *element_container); diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 57342fe4f49..2f1a6038155 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -73,6 +73,12 @@ inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container) inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container){ } +inline void CNumerics::Compute_Plane_Stress_Term(CElement *element_container) { } + +inline void CFEM_Elasticity::Compute_Plane_Stress_Term(CElement *element_container){ } + +inline void CFEM_NonlinearElasticity::Compute_Plane_Stress_Term(CElement *element_container) { } + inline void CNumerics::Compute_Constitutive_Matrix(CElement *element_container){ } inline void CFEM_Elasticity::Compute_Constitutive_Matrix(CElement *element_container){ } diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index f96878eaec8..26ca94b82b2 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -61,6 +61,7 @@ CFEM_NonlinearElasticity::CFEM_NonlinearElasticity(unsigned short val_nDim, unsi } J_F = 0.0; + f33 = 1.0; } @@ -184,6 +185,17 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } + if (nDim == 2) { + if (plane_stress){ + // Compute the value of the term 33 for the deformation gradient + Compute_Plane_Stress_Term(element); + F_Mat[2][2] = f33; + } + else{ + F_Mat[2][2] = 1.0; + } + } + /*--- Determinant of F --> Jacobian of the transformation ---*/ J_F = F_Mat[0][0]*F_Mat[1][1]*F_Mat[2][2]+ @@ -479,6 +491,17 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ } + if (nDim == 2) { + if (plane_stress){ + // Compute the value of the term 33 for the deformation gradient + Compute_Plane_Stress_Term(element); + F_Mat[2][2] = f33; + } + else{ + F_Mat[2][2] = 1.0; + } + } + /*--- Determinant of F --> Jacobian of the transformation ---*/ J_F = F_Mat[0][0]*F_Mat[1][1]*F_Mat[2][2]+ @@ -580,6 +603,17 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ } + if (nDim == 2) { + if (plane_stress){ + // Compute the value of the term 33 for the deformation gradient + Compute_Plane_Stress_Term(element); + F_Mat[2][2] = f33; + } + else{ + F_Mat[2][2] = 1.0; + } + } + /*--- Determinant of F --> Jacobian of the transformation ---*/ J_F = F_Mat[0][0]*F_Mat[1][1]*F_Mat[2][2]+ @@ -647,6 +681,40 @@ CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { } +void CFEM_NeoHookean_Comp::Compute_Plane_Stress_Term(CElement *element) { + + su2double j_red = 1.0; + su2double fx = 0.0, fpx = 1.0; + su2double xkm1 = 1.0, xk = 1.0; + su2double cte = 0.0; + + unsigned short iNR, nNR; + su2double NRTOL; + + // Maximum number of iterations and tolerance (relative) + nNR = 10; + NRTOL = 1E-25; + + // j_red: reduced jacobian, for the 2x2 submatrix of F + j_red = F_Mat[0][0] * F_Mat[1][1] - F_Mat[1][0] * F_Mat[0][1]; + // cte: constant term in the NR method + cte = Lambda*log(j_red) - Mu; + + // f(f33) = mu*f33^2 + lambda*ln(f33) + (lambda*ln(j_red)-mu) = 0 + // f'(f33) = 2*mu*f33 + lambda/f33 + + for (iNR = 0; iNR < nNR; iNR++){ + fx = Mu*pow(xk,2.0) + Lambda*log(xk) + cte; + fpx = 2*Mu*xk + (Lambda / xk); + xkm1 = xk - fx / fpx; + if (((xkm1 - xk) / xk) < NRTOL) break; + xk = xkm1; + } + + f33 = xkm1; + +} + void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { su2double Mu_p = 0.0, Lambda_p = 0.0; @@ -695,6 +763,24 @@ void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { } } +/// if (plane_stress) { +// cout << "Deformation gradient (F): " << endl; +// cout << F_Mat[0][0] << " " << F_Mat[0][1] << " " << F_Mat[0][2] << endl; +// cout << F_Mat[1][0] << " " << F_Mat[1][1] << " " << F_Mat[1][2] << endl; +// cout << F_Mat[2][0] << " " << F_Mat[2][1] << " " << F_Mat[2][2] << endl; +// cout << endl; +// cout << "Left Cauchy-Green tensor (b): " << endl; +// cout << b_Mat[0][0] << " " << b_Mat[0][1] << " " << b_Mat[0][2] << endl; +// cout << b_Mat[1][0] << " " << b_Mat[1][1] << " " << b_Mat[1][2] << endl; +// cout << b_Mat[2][0] << " " << b_Mat[2][1] << " " << b_Mat[2][2] << endl; +// cout << endl; +// cout << "Stress Tensor (sigma): " << endl; +// cout << Stress_Tensor[0][0] << " " << Stress_Tensor[0][1] << " " << Stress_Tensor[0][2] << endl; +// cout << Stress_Tensor[1][0] << " " << Stress_Tensor[1][1] << " " << Stress_Tensor[1][2] << endl; +// cout << Stress_Tensor[2][0] << " " << Stress_Tensor[2][1] << " " << Stress_Tensor[2][2] << endl; +// cout << endl; +// } + } CFEM_NeoHookean_Incomp::CFEM_NeoHookean_Incomp(unsigned short val_nDim, unsigned short val_nVar, @@ -707,6 +793,10 @@ CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { } +void CFEM_NeoHookean_Incomp::Compute_Plane_Stress_Term(CElement *element) { + +} + void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { unsigned short iVar; From aca0f90320cc8f228a16407b46c7c681b0201093 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 4 Dec 2015 15:43:58 -0800 Subject: [PATCH 124/269] travis update --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f05ae5cb63c..85663ca3f0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ compiler: notifications: email: recipients: - - su2code-dev@lists.stanford.edu + - hlkline@stanford.edu branches: only: From 12fbda7ba071408da59176b6ed86ccf9aed1085b Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Dec 2015 13:54:52 +0000 Subject: [PATCH 125/269] Append zone before time step. --- SU2_CFD/src/output_structure.cpp | 8 +++--- SU2_CFD/src/solver_direct_mean.cpp | 17 ++++++++---- SU2_CFD/src/solver_direct_turbulent.cpp | 14 ++++++---- SU2_CFD/src/solver_structure.cpp | 37 +++++++++++++------------ 4 files changed, 44 insertions(+), 32 deletions(-) diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 33b800383db..cb23436ee11 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -3639,6 +3639,10 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, filename = config->GetRestart_FlowFileName(); } + /*--- Append the zone number if multizone problems ---*/ + if (nZone > 1) + filename= config->GetMultizone_FileName(filename, val_iZone); + /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { @@ -3648,10 +3652,6 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, } else if (config->GetWrt_Dynamic()) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } - - /*--- Append the zone number if multizone problems ---*/ - if (nZone > 1) - filename= config->GetMultizone_FileName(filename, val_iZone); /*--- Open the restart file and write the solution. ---*/ diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 99cc8fe9619..da974c52620 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -555,6 +555,11 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short node[iPoint] = new CEulerVariable(Density_Inf, Velocity_Inf, Energy_Inf, nDim, nVar, config); } else { + + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); /*--- Modify file name for an unsteady restart ---*/ @@ -568,8 +573,6 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } - if (nZone > 1) - filename= config->GetMultizone_FileName(filename, iZone); /*--- Open the restart file, throw an error if this fails. ---*/ @@ -12365,7 +12368,12 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Modify file name for an unsteady restart ---*/ if (dual_time) { - + + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); + if (adjoint) { Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) @@ -12377,9 +12385,6 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) } - if (nZone > 1) - filename= config->GetMultizone_FileName(filename, iZone); - /*--- Open the restart file, throw an error if this fails. ---*/ restart_file.open(filename.data(), ios::in); diff --git a/SU2_CFD/src/solver_direct_turbulent.cpp b/SU2_CFD/src/solver_direct_turbulent.cpp index 87cee556ce4..9b8b0397de3 100644 --- a/SU2_CFD/src/solver_direct_turbulent.cpp +++ b/SU2_CFD/src/solver_direct_turbulent.cpp @@ -1138,6 +1138,10 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor ifstream restart_file; string filename = config->GetSolution_FlowFileName(); su2double Density, StaticEnergy, Laminar_Viscosity, nu, nu_hat, muT = 0.0, U[5]; + + /*--- Modify file name for multizone problems ---*/ + if (nZone >1) + filename= config->GetMultizone_FileName(filename, iZone); /*--- Modify file name for an unsteady restart ---*/ if (dual_time) { @@ -1150,9 +1154,7 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } - if (nZone >1) - filename= config->GetMultizone_FileName(filename, iZone); - + /*--- Open the restart file, throw an error if this fails. ---*/ restart_file.open(filename.data(), ios::in); @@ -2619,6 +2621,10 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh ifstream restart_file; string filename = config->GetSolution_FlowFileName(); + /*--- Modify file name for multizone problems ---*/ + if (nZone >1) + filename= config->GetMultizone_FileName(filename, iZone); + /*--- Modify file name for an unsteady restart ---*/ if (dual_time) { int Unst_RestartIter; @@ -2630,8 +2636,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); } - if (nZone >1) - filename= config->GetMultizone_FileName(filename, iZone); /*--- Open the restart file, throw an error if this fails. ---*/ diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index 2a355ba5832..2eccef9530a 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1628,6 +1628,10 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned filename = config->GetRestart_FlowFileName(); } + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); /*--- Unsteady problems require an iteration number to be appended. ---*/ @@ -1637,11 +1641,6 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } - /*--- Multizone problems require the number of the zone to be appended. ---*/ - - if (nZone > 1) - filename = config->GetMultizone_FileName(filename, iZone); - /*--- Open the restart file ---*/ restart_file.open(filename.data(), ios::in); @@ -1932,20 +1931,22 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ - filename = config->GetSolution_FEMFileName(); + filename = config->GetRestart_FEMFileName(); } else { - filename = config->GetSolution_FlowFileName(); + filename = config->GetRestart_FlowFileName(); } + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); + /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } else if (config->GetWrt_Dynamic()) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } - - if (nZone > 1) - filename = config->GetMultizone_FileName(filename, iZone); /*--- Open the restart file ---*/ solution_file.open(filename.data(), ios::in); @@ -2044,20 +2045,22 @@ void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CC filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ - filename = config->GetSolution_FEMFileName(); + filename = config->GetRestart_FEMFileName(); } else { - filename = config->GetSolution_FlowFileName(); - } + filename = config->GetRestart_FlowFileName(); + } + + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } else if (config->GetWrt_Dynamic()) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); - } - - if (nZone > 1) - filename = config->GetMultizone_FileName(filename, iZone); + } /*--- Open the restart file ---*/ solution_file.open(filename.data(), ios::in); From b256953c2c4564343154ee9ee9cf4808f67b0750 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Dec 2015 16:34:50 +0000 Subject: [PATCH 126/269] FEM: improved restart for dynamic problems. --- SU2_CFD/include/solver_structure.hpp | 7 ++ SU2_CFD/include/variable_structure.hpp | 15 +++- SU2_CFD/include/variable_structure.inl | 6 +- SU2_CFD/src/solver_direct_elasticity.cpp | 4 - SU2_CFD/src/solver_fem_elasticity.cpp | 97 ++++++++++++++++++++++++ 5 files changed, 122 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 5d93a826716..88e7eb8579e 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -7188,6 +7188,13 @@ class CFEM_ElasticitySolver : public CSolver { */ void Set_MPI_Solution(CGeometry *geometry, CConfig *config); + /*! + * \brief Impose the send-receive boundary condition. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config); + /*! * \brief Impose the send-receive boundary condition only for displacements in structural solutions. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 9fcf4888683..3eb406316ae 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1830,6 +1830,12 @@ class CVariable { */ virtual void SetSolution_time_n(void); + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + virtual void SetSolution_time_n(unsigned short val_var, su2double val_solution); + /*! * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. @@ -2717,8 +2723,13 @@ class CFEM_ElasVariable : public CVariable { * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_time_n(su2double *val_solution_time_n); - + void SetSolution_time_n(su2double *val_solution_time_n); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_time_n(unsigned short val_var, su2double val_solution); /*! * \brief Set the value of the velocity (Structural Analysis). diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 25a03e82b73..c9d4f1ac234 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -537,6 +537,8 @@ inline su2double *CVariable::GetEddyViscSens(void) { return NULL; } inline void CVariable::SetSolution_time_n(void) { } +inline void CVariable::SetSolution_time_n(unsigned short val_var, su2double val_solution_time_n) { } + inline void CVariable::SetSolution_Vel(su2double *val_solution_vel) { } inline void CVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { } @@ -931,7 +933,9 @@ inline void CFEM_ElasVariable::SetSolution_time_n(void) { inline void CFEM_ElasVariable::SetSolution_time_n(su2double *val_solution_time_n) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; -} +} + +inline void CFEM_ElasVariable::SetSolution_time_n(unsigned short val_var, su2double val_solution_time_n) { Solution_time_n[val_var] = val_solution_time_n; } inline void CFEM_ElasVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index b9dcc570c73..3ca85f8ae39 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2,11 +2,7 @@ * \file solution_direct_elasticity.cpp * \brief Main subrotuines for solving the linear elasticity equation. * \author F. Palacios, R. Sanchez -<<<<<<< HEAD - * \version 4.0.1 "Cardinal" -======= * \version 4.0.2 "Cardinal" ->>>>>>> develop * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 2d7c9a161d6..6eadf52d02f 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -466,6 +466,10 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Set_MPI_Solution(geometry, config); + /*--- If dynamic, we also need to communicate the old solution ---*/ + + if(dynamic) Set_MPI_Solution_Old(geometry, config); + } CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { @@ -630,6 +634,98 @@ void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *confi } +void CFEM_ElasticitySolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { + + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + unsigned short nSolVar; + + nSolVar = 3 * nVar; + + #ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; + #endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + + #ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; + #endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_time_n(iVar); + Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Vel_time_n(iVar); + Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Accel_time_n(iVar); + } + } + + #ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + + #else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nSolVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + + #endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy solution variables. ---*/ + for (iVar = 0; iVar < nSolVar; iVar++) + SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++){ + node[iPoint]->SetSolution_time_n(iVar, SolRest[iVar]); + node[iPoint]->SetSolution_Vel_time_n(iVar, SolRest[iVar+nVar]); + node[iPoint]->SetSolution_Accel_time_n(iVar, SolRest[iVar+2*nVar]); + } + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + +} + void CFEM_ElasticitySolver::Set_MPI_Solution_DispOnly(CGeometry *geometry, CConfig *config) { @@ -2019,6 +2115,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv TimeRes_Aux.SetBlock(iPoint, Residual); } } + /*--- Once computed, compute M*TimeRes_Aux ---*/ MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ From 14235bad1d1ca76ad4fc386bbe96cca6ef3d2385 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 10 Dec 2015 19:12:49 +0000 Subject: [PATCH 127/269] CFD: Added feature to restart dynamic meshes and compute GridVel. --- Common/include/dual_grid_structure.hpp | 12 ++ Common/include/dual_grid_structure.inl | 10 ++ Common/src/config_structure.cpp | 1 + Common/src/geometry_structure.cpp | 2 +- Common/src/grid_movement_structure.cpp | 80 +++++---- SU2_CFD/include/solver_structure.hpp | 8 +- SU2_CFD/src/driver_structure.cpp | 20 ++- SU2_CFD/src/iteration_structure.cpp | 25 +++ SU2_CFD/src/solver_direct_mean.cpp | 10 +- SU2_CFD/src/solver_structure.cpp | 240 +++++++++++++++++++++++++ 10 files changed, 361 insertions(+), 47 deletions(-) diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 64084776172..a3c7869cb8c 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -538,6 +538,18 @@ class CPoint : public CDualGrid { * \brief Set the coordinates of the control volume at time n-1. */ void SetCoord_n1(void); + + /*! + * \brief Set the coordinates of the control volume at time n, for restart cases. + * \param[in] val_coord - Value of the grid coordinates at time n. + */ + void SetCoord_n(su2double *val_coord); + + /*! + * \brief Set the coordinates of the control volume at time n-1, for restart cases. + * \param[in] val_coord - Value of the grid coordinates at time n-1. + */ + void SetCoord_n1(su2double *val_coord); /*! * \brief Set the coordinates of the control volume at time n+1. diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 7158ed2911c..955bf17c18e 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -176,6 +176,16 @@ inline void CPoint::SetCoord_n1 (void) { Coord_n1[iDim] = Coord_n[iDim]; } +inline void CPoint::SetCoord_n(su2double *val_coord) { + for (unsigned short iDim = 0; iDim < nDim; iDim++) + Coord_n[iDim] = val_coord[iDim]; +} + +inline void CPoint::SetCoord_n1(su2double *val_coord) { + for (unsigned short iDim = 0; iDim < nDim; iDim++) + Coord_n1[iDim] = val_coord[iDim]; +} + inline void CPoint::SetCoord_p1(su2double *val_coord) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Coord_p1[iDim] = val_coord[iDim]; diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 9aa94cc924b..55673ae3412 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1746,6 +1746,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ (Kind_GridMovement[ZONE_0] != RIGID_MOTION) && (Kind_GridMovement[ZONE_0] != ROTATING_FRAME) && (Kind_GridMovement[ZONE_0] != STEADY_TRANSLATION) && + (Kind_GridMovement[ZONE_0] != FLUID_STRUCTURE) && (Kind_GridMovement[ZONE_0] != GUST) && (nGridMovement != nMarker_Moving)) { cout << "Number of GRID_MOVEMENT_KIND must match number of MARKER_MOVING!!" << endl; diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index d75d39c4bed..f2af373d966 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -11437,7 +11437,7 @@ void CPhysicalGeometry::SetGridVelocity(CConfig *config, unsigned long iter) { Coord_nM1 = node[iPoint]->GetCoord_n1(); Coord_n = node[iPoint]->GetCoord_n(); Coord_nP1 = node[iPoint]->GetCoord(); - + /*--- Unsteady time step ---*/ TimeStep = config->GetDelta_UnstTimeND(); diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 5b6e6ea29af..ffaae6129bc 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -117,7 +117,7 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co unsigned long iPoint, iDim; su2double MinVolume, NumError, Tol_Factor, Residual = 0.0, Residual_Init = 0.0; bool Screen_Output; - bool fsi=config->GetFSI_Simulation(); +// bool fsi=config->GetFSI_Simulation(); int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -295,44 +295,46 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co } - if (fsi){ - /*--- Grid velocity (there is a function that does this -> Modify) ---*/ - - /*--- Local variables ---*/ - - su2double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; - su2double TimeStep, GridVel = 0.0; - - /*--- Compute the velocity of each node in the volume mesh ---*/ - - for (iPoint = 0; iPoint < nPoint; iPoint++) { - - /*--- Coordinates of the current point at n+1, n, & n-1 time levels ---*/ - - Coord_nM1 = geometry->node[iPoint]->GetCoord_n1(); - Coord_n = geometry->node[iPoint]->GetCoord_n(); - Coord_nP1 = geometry->node[iPoint]->GetCoord(); - - /*--- Unsteady time step ---*/ - - TimeStep = config->GetDelta_UnstTimeND(); - - /*--- Compute mesh velocity with 1st or 2nd-order approximation ---*/ - - for(iDim = 0; iDim < nDim; iDim++) { - if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) - GridVel = ( Coord_nP1[iDim] - Coord_n[iDim] ) / TimeStep; - if (config->GetUnsteady_Simulation() == DT_STEPPING_2ND) - GridVel = ( 3.0*Coord_nP1[iDim] - 4.0*Coord_n[iDim] - + 1.0*Coord_nM1[iDim] ) / (2.0*TimeStep); - - /*--- Store grid velocity for this point ---*/ - - geometry->node[iPoint]->SetGridVel(iDim, GridVel); - } - } - - } +// bool check = false; +// +// if (check && fsi){ +// /*--- Grid velocity (there is a function that does this -> Modify) ---*/ +// +// /*--- Local variables ---*/ +// +// su2double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; +// su2double TimeStep, GridVel = 0.0; +// +// /*--- Compute the velocity of each node in the volume mesh ---*/ +// +// for (iPoint = 0; iPoint < nPoint; iPoint++) { +// +// /*--- Coordinates of the current point at n+1, n, & n-1 time levels ---*/ +// +// Coord_nM1 = geometry->node[iPoint]->GetCoord_n1(); +// Coord_n = geometry->node[iPoint]->GetCoord_n(); +// Coord_nP1 = geometry->node[iPoint]->GetCoord(); +// +// /*--- Unsteady time step ---*/ +// +// TimeStep = config->GetDelta_UnstTimeND(); +// +// /*--- Compute mesh velocity with 1st or 2nd-order approximation ---*/ +// +// for(iDim = 0; iDim < nDim; iDim++) { +// if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) +// GridVel = ( Coord_nP1[iDim] - Coord_n[iDim] ) / TimeStep; +// if (config->GetUnsteady_Simulation() == DT_STEPPING_2ND) +// GridVel = ( 3.0*Coord_nP1[iDim] - 4.0*Coord_n[iDim] +// + 1.0*Coord_nM1[iDim] ) / (2.0*TimeStep); +// +// /*--- Store grid velocity for this point ---*/ +// +// geometry->node[iPoint]->SetGridVel(iDim, GridVel); +// } +// } +// +// } } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 88e7eb8579e..01db608b182 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -452,7 +452,13 @@ class CSolver { * \param[in] geometry - Geometrical definition of the problem. */ void Set_OldSolution(CGeometry *geometry); - + + /*! + * \brief Load the geometries at the previous time states n and nM1. + * \param[in] geometry - Geometrical definition of the problem. + */ + void Restart_OldGeometry(CGeometry *geometry, CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index c6fdaf271df..12458b41e36 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1910,11 +1910,21 @@ void CFSIDriver::Run(CIteration **iteration_container, unsigned long iFSIIter = 0; unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif + /*--- If there is a restart, we need to get the old geometry from the fluid field ---*/ + bool restart = (config_container[ZONE_FLOW]->GetRestart() || config_container[ZONE_FLOW]->GetRestart_Flow()); + unsigned long ExtIter = config_container[ZONE_FLOW]->GetExtIter(); + + if (restart && (long)ExtIter == config_container[ZONE_FLOW]->GetUnst_RestartIter()){ + unsigned short ZONE_FLOW = 0; + solver_container[ZONE_FLOW][MESH_0][FLOW_SOL]->Restart_OldGeometry(geometry_container[ZONE_FLOW][MESH_0],config_container[ZONE_FLOW]); + } + /*-----------------------------------------------------------------*/ /*---------------- Predict structural displacements ---------------*/ /*-----------------------------------------------------------------*/ @@ -1927,7 +1937,7 @@ void CFSIDriver::Run(CIteration **iteration_container, while (iFSIIter < nFSIIter){ /*-----------------------------------------------------------------*/ - /*------------------------ Update mesh ----------------------------*/ + /*------------------- Transfer Displacements ----------------------*/ /*-----------------------------------------------------------------*/ Transfer_Displacements(output, integration_container, geometry_container, @@ -2077,7 +2087,7 @@ void CFSIDriver::Transfer_Displacements(COutput *output, CIntegration ***integra geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], config_container[donorZone], config_container[targetZone]); /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); +// grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); } else { @@ -2085,7 +2095,7 @@ void CFSIDriver::Transfer_Displacements(COutput *output, CIntegration ***integra geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], config_container[donorZone], config_container[targetZone]); /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); +// grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); } break; @@ -2095,7 +2105,7 @@ void CFSIDriver::Transfer_Displacements(COutput *output, CIntegration ***integra geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], config_container[donorZone], config_container[targetZone]); /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); +// grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); } else { cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; @@ -2112,7 +2122,7 @@ void CFSIDriver::Transfer_Displacements(COutput *output, CIntegration ***integra geometry_container[donorZone][MESH_0],geometry_container[targetZone][MESH_0], config_container[donorZone], config_container[targetZone]); /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); +// grid_movement[targetZone]->SetVolume_Deformation(geometry_container[targetZone][MESH_0], config_container[targetZone], true); } break; case LEGACY_METHOD: diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 7d96c549b51..a0cbdd0d992 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -2532,6 +2532,31 @@ void SetGrid_Movement(CGeometry **geometry_container, CSurfaceMovement *surface_ break; + case FLUID_STRUCTURE: + + if (rank == MASTER_NODE) + cout << endl << "Deforming the grid for Fluid-Structure Interaction applications." << endl; + + /*--- Deform the volume grid around the new boundary locations ---*/ + + if (rank == MASTER_NODE) + cout << "Deforming the volume grid." << endl; + grid_movement->SetVolume_Deformation(geometry_container[MESH_0], + config_container, true); + + if (!adjoint) { + if (rank == MASTER_NODE) + cout << "Computing grid velocities by finite differencing." << endl; + geometry_container[MESH_0]->SetGridVelocity(config_container, ExtIter); + } + + /*--- Update the multigrid structure after moving the finest grid, + including computing the grid velocities on the coarser levels. ---*/ + + grid_movement->UpdateMultiGrid(geometry_container, config_container); + + break; + case NO_MOVEMENT: case GUST: default: /*--- There is no mesh motion specified for this zone. ---*/ diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index da974c52620..a140cf8b56b 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -11427,8 +11427,11 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig string UnstExt, text_line; ifstream restart_file; + unsigned short iZone = config->GetiZone(); + unsigned short nZone = geometry[iZone]->GetnZone(); + string restart_filename = config->GetSolution_FlowFileName(); - + Coord = new su2double [nDim]; for (iDim = 0; iDim < nDim; iDim++) Coord[iDim] = 0.0; @@ -11438,6 +11441,11 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + restart_filename = config->GetMultizone_FileName(restart_filename, iZone); + /*--- Modify file name for an unsteady restart ---*/ if (dual_time) diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index 2eccef9530a..c409500feb2 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1584,6 +1584,246 @@ void CSolver::SolveTypicalSectionWingModel(CGeometry *geometry, su2double Cl, su } +void CSolver::Restart_OldGeometry(CGeometry *geometry, CConfig *config) { + + /*--- This function is intended for dual time simulations ---*/ + + unsigned long iPoint, index, counter_local = 0, counter_global = 0, iVertex; + + int Unst_RestartIter; + ifstream restart_file_n; + unsigned short iZone = config->GetiZone(); + unsigned short nZone = geometry->GetnZone(); + string filename = config->GetSolution_FlowFileName(); + string filename_n; + + /*--- Auxiliary vector for storing the coordinates ---*/ + su2double *Coord; + Coord = new su2double[nDim]; + + /*--- Variables for reading the restart files ---*/ + string text_line; + long iPoint_Local; + unsigned long iPoint_Global_Local = 0, iPoint_Global = 0; + unsigned short rbuf_NotMatching, sbuf_NotMatching; + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Multizone problems require the number of the zone to be appended. ---*/ + + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); + + /*--- First, we load the restart file for time n ---*/ + + /*-------------------------------------------------------------------------------------------*/ + + /*--- Modify file name for an unsteady restart ---*/ + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; + filename_n = config->GetUnsteady_FileName(filename, Unst_RestartIter); + + /*--- Open the restart file, throw an error if this fails. ---*/ + + restart_file_n.open(filename_n.data(), ios::in); + if (restart_file_n.fail()) { + if (rank == MASTER_NODE) + cout << "There is no flow restart file!! " << filename_n.data() << "."<< endl; + exit(EXIT_FAILURE); + } + + /*--- In case this is a parallel simulation, we need to perform the + Global2Local index transformation first. ---*/ + + long *Global2Local_n = new long[geometry->GetGlobal_nPointDomain()]; + + /*--- First, set all indices to a negative value by default, and Global n indices to 0 ---*/ + iPoint_Global_Local = 0, iPoint_Global = 0; + + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) + Global2Local_n[iPoint] = -1; + + /*--- Now fill array with the transform values only for local points ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) + Global2Local_n[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; + + /*--- Read all lines in the restart file ---*/ + /*--- The first line is the header ---*/ + + getline (restart_file_n, text_line); + + while (getline (restart_file_n, text_line)) { + istringstream point_line(text_line); + + /*--- Retrieve local index. If this node from the restart file lives + on a different processor, the value of iPoint_Local will be -1. + Otherwise, the local index for this node on the current processor + will be returned and used to instantiate the vars. ---*/ + + iPoint_Local = Global2Local_n[iPoint_Global]; + + /*--- Load the solution for this node. Note that the first entry + on the restart file line is the global index, followed by the + node coordinates, and then the conservative variables. ---*/ + + if (iPoint_Local >= 0) { + + if (nDim == 2) point_line >> index >> Coord[0] >> Coord[1]; + if (nDim == 3) point_line >> index >> Coord[0] >> Coord[1] >> Coord[2]; + + geometry->node[iPoint_Local]->SetCoord_n(Coord); + + iPoint_Global_Local++; + } + iPoint_Global++; + } + + /*--- Detect a wrong solution file ---*/ + + rbuf_NotMatching = 0, sbuf_NotMatching = 0; + + if (iPoint_Global_Local < geometry->GetnPointDomain()) { sbuf_NotMatching = 1; } + +#ifndef HAVE_MPI + rbuf_NotMatching = sbuf_NotMatching; +#else + SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); +#endif + + if (rbuf_NotMatching != 0) { + if (rank == MASTER_NODE) { + cout << endl << "The solution file " << filename_n.data() << " doesn't match with the mesh file!" << endl; + cout << "It could be empty lines at the end of the file." << endl << endl; + } +#ifndef HAVE_MPI + exit(EXIT_FAILURE); +#else + MPI_Barrier(MPI_COMM_WORLD); + MPI_Abort(MPI_COMM_WORLD,1); + MPI_Finalize(); +#endif + } + + /*--- Close the restart file ---*/ + + restart_file_n.close(); + + /*--- Free memory needed for the transformation ---*/ + + delete [] Global2Local_n; + + /*-------------------------------------------------------------------------------------------*/ + /*-------------------------------------------------------------------------------------------*/ + + /*--- Now, we load the restart file for time n-1, if the simulation is 2nd Order ---*/ + + if (config->GetUnsteady_Simulation() == DT_STEPPING_2ND){ + + ifstream restart_file_n1; + string filename_n1; + + /*--- Modify file name for an unsteady restart ---*/ + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; + filename_n1 = config->GetUnsteady_FileName(filename, Unst_RestartIter); + + /*--- Open the restart file, throw an error if this fails. ---*/ + + restart_file_n.open(filename_n1.data(), ios::in); + if (restart_file_n.fail()) { + if (rank == MASTER_NODE) + cout << "There is no flow restart file!! " << filename_n1.data() << "."<< endl; + exit(EXIT_FAILURE); + } + + /*--- In case this is a parallel simulation, we need to perform the + Global2Local index transformation first. ---*/ + + long *Global2Local_n1 = new long[geometry->GetGlobal_nPointDomain()]; + + /*--- First, set all indices to a negative value by default, and Global n indices to 0 ---*/ + iPoint_Global_Local = 0, iPoint_Global = 0; + + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) + Global2Local_n1[iPoint] = -1; + + /*--- Now fill array with the transform values only for local points ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) + Global2Local_n1[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; + + /*--- Read all lines in the restart file ---*/ + /*--- The first line is the header ---*/ + + getline (restart_file_n, text_line); + + while (getline (restart_file_n, text_line)) { + istringstream point_line(text_line); + + /*--- Retrieve local index. If this node from the restart file lives + on a different processor, the value of iPoint_Local will be -1. + Otherwise, the local index for this node on the current processor + will be returned and used to instantiate the vars. ---*/ + + iPoint_Local = Global2Local_n1[iPoint_Global]; + + /*--- Load the solution for this node. Note that the first entry + on the restart file line is the global index, followed by the + node coordinates, and then the conservative variables. ---*/ + + if (iPoint_Local >= 0) { + + if (nDim == 2) point_line >> index >> Coord[0] >> Coord[1]; + if (nDim == 3) point_line >> index >> Coord[0] >> Coord[1] >> Coord[2]; + + geometry->node[iPoint_Local]->SetCoord_n1(Coord); + + iPoint_Global_Local++; + } + iPoint_Global++; + } + + /*--- Detect a wrong solution file ---*/ + + rbuf_NotMatching = 0, sbuf_NotMatching = 0; + + if (iPoint_Global_Local < geometry->GetnPointDomain()) { sbuf_NotMatching = 1; } + +#ifndef HAVE_MPI + rbuf_NotMatching = sbuf_NotMatching; +#else + SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); +#endif + + if (rbuf_NotMatching != 0) { + if (rank == MASTER_NODE) { + cout << endl << "The solution file " << filename_n1.data() << " doesn't match with the mesh file!" << endl; + cout << "It could be empty lines at the end of the file." << endl << endl; + } +#ifndef HAVE_MPI + exit(EXIT_FAILURE); +#else + MPI_Barrier(MPI_COMM_WORLD); + MPI_Abort(MPI_COMM_WORLD,1); + MPI_Finalize(); +#endif + } + + /*--- Close the restart file ---*/ + + restart_file_n1.close(); + + /*--- Free memory needed for the transformation ---*/ + + delete [] Global2Local_n1; + + } + + +} + CBaselineSolver::CBaselineSolver(void) : CSolver() { } CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CSolver() { From f00a6479ca954417c7a81475182b52b72b24ac42 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 10 Dec 2015 21:45:36 -0800 Subject: [PATCH 128/269] removing SU2_FSI subdirectory --- SU2_FSI/include/SU2_FSI.hpp | 61 -- SU2_FSI/include/iteration_structure_fsi.hpp | 268 ----- SU2_FSI/obj/Makefile.am | 167 --- SU2_FSI/obj/Makefile.in | 1008 ------------------- SU2_FSI/src/SU2_FSI.cpp | 582 ----------- SU2_FSI/src/iteration_structure_fsi.cpp | 983 ------------------ 6 files changed, 3069 deletions(-) delete mode 100644 SU2_FSI/include/SU2_FSI.hpp delete mode 100644 SU2_FSI/include/iteration_structure_fsi.hpp delete mode 100644 SU2_FSI/obj/Makefile.am delete mode 100644 SU2_FSI/obj/Makefile.in delete mode 100644 SU2_FSI/src/SU2_FSI.cpp delete mode 100644 SU2_FSI/src/iteration_structure_fsi.cpp diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp deleted file mode 100644 index 2248fb7ca68..00000000000 --- a/SU2_FSI/include/SU2_FSI.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/*! - * \file SU2_FSI.hpp - * \brief Headers of the main subroutines of the code SU2_FSI. - * The subroutines and functions are in the SU2_FSI.cpp file. - * \author R. Sanchez, F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#pragma once - -#include "../../Common/include/mpi_structure.hpp" - -#include -#include -#include -#include - -#include "../../Common/include/interpolation_structure.hpp" -#include "../../SU2_CFD/include/driver_structure.hpp" -#include "../../Common/include/gauss_structure.hpp" -#include "../../Common/include/element_structure.hpp" -#include "../../SU2_CFD/include/solver_structure.hpp" -#include "../../SU2_CFD/include/output_structure.hpp" -#include "../../SU2_CFD/include/integration_structure.hpp" -#include "../../SU2_CFD/include/numerics_structure.hpp" -#include "../../SU2_CFD/include/definition_structure.hpp" -#include "../../SU2_CFD/include/iteration_structure.hpp" -#include "../../SU2_CFD/include/transfer_structure.hpp" - -#include "../../Common/include/geometry_structure.hpp" -#include "../../Common/include/config_structure.hpp" -#include "../../Common/include/grid_movement_structure.hpp" - - -#include "../include/iteration_structure_fsi.hpp" - -using namespace std; diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp deleted file mode 100644 index f3a3a4fd657..00000000000 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ /dev/null @@ -1,268 +0,0 @@ -/*! - * \file iteration_structure_fsi.hpp - * \brief Headers of the main subroutines used by SU2_CFD. - * The subroutines and functions are in the definition_structure.cpp file. - * \author R. Sanchez - * \version 4.0.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#pragma once - -#include "../../Common/include/mpi_structure.hpp" - -#include - -#include "../../Common/include/gauss_structure.hpp" -#include "../../Common/include/element_structure.hpp" -#include "../../SU2_CFD/include/solver_structure.hpp" -#include "../../SU2_CFD/include/integration_structure.hpp" -#include "../../SU2_CFD/include/output_structure.hpp" -#include "../../SU2_CFD/include/numerics_structure.hpp" -#include "../../SU2_CFD/include/transfer_structure.hpp" - -#include "../../Common/include/geometry_structure.hpp" -#include "../../Common/include/grid_movement_structure.hpp" -#include "../../Common/include/config_structure.hpp" - -using namespace std; - -/*! - * \brief Block Gauss-Seidel Iteration function for Fluid-Structure Interaction applications. - * \author R. Sanchez, F. Palacios. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - * \param[in] nFluidIt - Number of fluid iterations within a fixed time step. - */ -void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt); - -/*! - * \brief CFD Subiteration function for Fluid-Structure Interaction applications. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief CFD update function for Fluid-Structure Interaction applications. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter); - - -/*! - * \brief FEA Subiteration function for Fluid-Structure Interaction applications (legacy). - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief FEM Subiteration function for Fluid-Structure Interaction applications (structural side). - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - - -/*! - * \brief Displacement transfer function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container); - -/*! - * \brief Load transfer function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long ExtIter); - - -/*! - * \brief FEA update function for Fluid-Structure Interaction applications (legacy). - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter); - -/*! - * \brief FEM update function for Fluid-Structure Interaction applications. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, unsigned long ExtIter); - - -/*! - * \brief Relaxation step for displacement transfer. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] iFSIIter - Current FSI iteration number. - */ -void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned long iFSIIter); - -/*! - * \brief Relaxation step for load transfer. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] iFSIIter - Current FSI iteration number. - */ -void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief Displacement predictor function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief Load predictor function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter); diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am deleted file mode 100644 index dbf6080c8a2..00000000000 --- a/SU2_FSI/obj/Makefile.am +++ /dev/null @@ -1,167 +0,0 @@ -################################################################################ -# -# \file Makefile.am -# \brief Makefile for SU2_FSI -# \author M. Colonno, T. Economon, F. Palacios, R. Sanchez -# \version 4.0.0 "Cardinal" -# -# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). -# Dr. Thomas D. Economon (economon@stanford.edu). -# -# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. -# Prof. Piero Colonna's group at Delft University of Technology. -# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. -# Prof. Alberto Guardone's group at Polytechnic University of Milan. -# Prof. Rafael Palacios' group at Imperial College London. -# -# Copyright (C) 2012-2015 SU2, the open-source CFD code. -# -# SU2 is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# SU2 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with SU2. If not, see . -# -################################################################################ - -AUTOMAKE_OPTIONS = subdir-objects -ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} - -bin_PROGRAMS = ../bin/SU2_FSI - -su2_fsi_sources = ../include/SU2_FSI.hpp \ - ../src/SU2_FSI.cpp \ - ../../SU2_CFD/include/driver_structure.hpp \ - ../../SU2_CFD/src/driver_structure.cpp \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - -su2_fsi_cxx_flags = -su2_fsi_ldadd = - -su2_fsi_ldadd += \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o - -# always link to built dependencies from ./externals -su2_fsi_cxx_flags += @su2_externals_INCLUDES@ -su2_fsi_ldadd += @su2_externals_LIBS@ - -# if BUILD_CGNS -su2_fsi_cxx_flags += @CGNS_CXX@ -su2_fsi_ldadd += @CGNS_LD@ -# endif - -# if BUILD_MUTATIONPP -su2_fsi_cxx_flags += @MUTATIONPP_CXX@ -su2_fsi_ldadd += @MUTATIONPP_LD@ -# endif - -# if BUILD_JSONCPP -su2_fsi_cxx_flags += @JSONCPP_CXX@ -su2_fsi_ldadd += @JSONCPP_LD@ -# endif - -# if BUILD_HDF5 -su2_fsi_cxx_flags += @HDF5_CXX@ -su2_fsi_ldadd += @HDF5_LD@ -# endif - -# if BUILD_SZIP -su2_fsi_cxx_flags += @SZIP_CXX@ -su2_fsi_ldadd += @SZIP_LD@ -# endif - -# if BUILD_ZLIB -su2_fsi_cxx_flags += @ZLIB_CXX@ -su2_fsi_ldadd += @ZLIB_LD@ -# endif - -if BUILD_NORMAL -___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) -___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} -___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a ${su2_fsi_ldadd} -endif diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in deleted file mode 100644 index 8111f67f0e0..00000000000 --- a/SU2_FSI/obj/Makefile.in +++ /dev/null @@ -1,1008 +0,0 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -################################################################################ -# -# \file Makefile.am -# \brief Makefile for SU2_FSI -# \author M. Colonno, T. Economon, F. Palacios, R. Sanchez -# \version 4.0.0 "Cardinal" -# -# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). -# Dr. Thomas D. Economon (economon@stanford.edu). -# -# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. -# Prof. Piero Colonna's group at Delft University of Technology. -# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. -# Prof. Alberto Guardone's group at Polytechnic University of Milan. -# Prof. Rafael Palacios' group at Imperial College London. -# -# Copyright (C) 2012-2015 SU2, the open-source CFD code. -# -# SU2 is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# SU2 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with SU2. If not, see . -# -################################################################################ - -VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) -subdir = SU2_FSI/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) -am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ - ../src/SU2_FSI.cpp ../../SU2_CFD/include/driver_structure.hpp \ - ../../SU2_CFD/src/driver_structure.cpp \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -am__dirstamp = $(am__leading_dot)dirstamp -am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) \ - ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) -@BUILD_NORMAL_TRUE@am____bin_SU2_FSI_OBJECTS = $(am__objects_1) -___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) -am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_DEPENDENCIES = \ -@BUILD_NORMAL_TRUE@ ../../Common/lib/libSU2.a \ -@BUILD_NORMAL_TRUE@ $(am__DEPENDENCIES_1) -___bin_SU2_FSI_LINK = $(CXXLD) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(___bin_SU2_FSI_SOURCES) -DIST_SOURCES = $(am_____bin_SU2_FSI_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CGNS_CXX = @CGNS_CXX@ -CGNS_LD = @CGNS_LD@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTDIFF_CXX = @DIRECTDIFF_CXX@ -DIRECTDIFF_LIBS = @DIRECTDIFF_LIBS@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -HDF5_CXX = @HDF5_CXX@ -HDF5_LD = @HDF5_LD@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -JSONCPP_CXX = @JSONCPP_CXX@ -JSONCPP_LD = @JSONCPP_LD@ -LAPACK_CXX = @LAPACK_CXX@ -LAPACK_LD = @LAPACK_LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -METIS_INCLUDE = @METIS_INCLUDE@ -METIS_LIB = @METIS_LIB@ -MKDIR_P = @MKDIR_P@ -MUTATIONPP_CXX = @MUTATIONPP_CXX@ -MUTATIONPP_LD = @MUTATIONPP_LD@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ -PARMETIS_LIB = @PARMETIS_LIB@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -REVERSE_CXX = @REVERSE_CXX@ -REVERSE_LIBS = @REVERSE_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ -SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ -SZIP_CXX = @SZIP_CXX@ -SZIP_LD = @SZIP_LD@ -TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ -TECIO_INCLUDE = @TECIO_INCLUDE@ -VERSION = @VERSION@ -ZLIB_CXX = @ZLIB_CXX@ -ZLIB_LD = @ZLIB_LD@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -su2_externals_INCLUDES = @su2_externals_INCLUDES@ -su2_externals_LIBS = @su2_externals_LIBS@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -su2_fsi_sources = ../include/SU2_FSI.hpp \ - ../src/SU2_FSI.cpp \ - ../../SU2_CFD/include/driver_structure.hpp \ - ../../SU2_CFD/src/driver_structure.cpp \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - - -# always link to built dependencies from ./externals - -# if BUILD_CGNS -# endif - -# if BUILD_MUTATIONPP -# endif - -# if BUILD_JSONCPP -# endif - -# if BUILD_HDF5 -# endif - -# if BUILD_SZIP -# endif - -# if BUILD_ZLIB -su2_fsi_cxx_flags = @su2_externals_INCLUDES@ @CGNS_CXX@ \ - @MUTATIONPP_CXX@ @JSONCPP_CXX@ @HDF5_CXX@ @SZIP_CXX@ \ - @ZLIB_CXX@ $(am__empty) -su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o \ - @su2_externals_LIBS@ @CGNS_LD@ @MUTATIONPP_LD@ @JSONCPP_LD@ \ - @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ $(am__empty) -# endif -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a ${su2_fsi_ldadd} -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -../src/$(am__dirstamp): - @$(MKDIR_P) ../src - @: > ../src/$(am__dirstamp) -../src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../src/$(DEPDIR) - @: > ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT): ../src/$(am__dirstamp) \ - ../src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src - @: > ../../SU2_CFD/src/$(am__dirstamp) -../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) - @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../bin/$(am__dirstamp): - @$(MKDIR_P) ../bin - @: > ../bin/$(am__dirstamp) -../bin/SU2_FSI$(EXEEXT): $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_DEPENDENCIES) $(EXTRA____bin_SU2_FSI_DEPENDENCIES) ../bin/$(am__dirstamp) - @rm -f ../bin/SU2_FSI$(EXEEXT) - $(AM_V_CXXLD)$(___bin_SU2_FSI_LINK) $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -../src/___bin_SU2_FSI-SU2_FSI.o: ../src/SU2_FSI.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp - -../src/___bin_SU2_FSI-SU2_FSI.obj: ../src/SU2_FSI.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o: ../../SU2_CFD/src/driver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o `test -f '../../SU2_CFD/src/driver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/driver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/driver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o `test -f '../../SU2_CFD/src/driver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/driver_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj: ../../SU2_CFD/src/driver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj `if test -f '../../SU2_CFD/src/driver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/driver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/driver_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/driver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj `if test -f '../../SU2_CFD/src/driver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/driver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/driver_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` - -../src/___bin_SU2_FSI-iteration_structure_fsi.o: ../src/iteration_structure_fsi.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp - -../src/___bin_SU2_FSI-iteration_structure_fsi.obj: ../src/iteration_structure_fsi.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o: ../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj: ../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o: ../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj: ../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../../SU2_CFD/src/$(am__dirstamp) - -rm -f ../bin/$(am__dirstamp) - -rm -f ../src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../src/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp deleted file mode 100644 index bd933e5b5a3..00000000000 --- a/SU2_FSI/src/SU2_FSI.cpp +++ /dev/null @@ -1,582 +0,0 @@ -/*! - * \file SU2_FSI.cpp - * \brief Main file of the Fluid Structure Interaction code - * \author R. Sanchez, F. Palacios, T. Economon - * \version 3.2.9 "eagle" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/SU2_FSI.hpp" - -using namespace std; - -int main(int argc, char *argv[]) { - - bool StopCalc = false; - su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; - unsigned long ExtIter = 0; - unsigned short iMesh, iZone, jZone, iSol, nZone, nDim; - char config_file_name[MAX_STRING_SIZE]; - char runtime_file_name[MAX_STRING_SIZE]; - ofstream ConvHist_file; - int rank = MASTER_NODE; - int size = SINGLE_NODE; - - /*--- MPI initialization, and buffer setting ---*/ - -#ifdef HAVE_MPI - int *bptr, bl; - SU2_MPI::Init(&argc, &argv); - MPI_Buffer_attach( malloc(BUFSIZE), BUFSIZE ); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); -#endif - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Start running SU2_FSI -------------------------" << endl; - - - /*--- Create pointers to all of the classes that may be used throughout - the SU2_FSI code. In general, the pointers are instantiated down a - heirarchy over all zones, multigrid levels, equation sets, and equation - terms as described in the comments below. ---*/ - - CDriver *driver = NULL; - CIteration **iteration_container = NULL; - COutput *output = NULL; - CIntegration ***integration_container = NULL; - CGeometry ***geometry_container = NULL; - CSolver ****solver_container = NULL; - CNumerics *****numerics_container = NULL; - CConfig **config_container = NULL; - CSurfaceMovement **surface_movement = NULL; - CVolumetricMovement **grid_movement = NULL; - CFreeFormDefBox*** FFDBox = NULL; - CInterpolator ***interpolator_container = NULL; - CTransfer ***transfer_container = NULL; - - /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config - file is specified, default.cfg is used) ---*/ - - if (argc == 2) { strcpy(config_file_name, argv[1]); } - else { strcpy(config_file_name, "default.cfg"); } - - /*--- Read the name and format of the input mesh file to get from the mesh - file the number of zones and dimensions from the numerical grid (required - for variables allocation) ---*/ - - CConfig *config = NULL; - config = new CConfig(config_file_name, SU2_CFD); - - nZone = GetnZone(config->GetMesh_FileName(), config->GetMesh_FileFormat(), config); - nDim = GetnDim(config->GetMesh_FileName(), config->GetMesh_FileFormat()); - - /*--- Definition and of the containers for all possible zones. ---*/ - - iteration_container = new CIteration*[nZone]; - solver_container = new CSolver***[nZone]; - integration_container = new CIntegration**[nZone]; - numerics_container = new CNumerics****[nZone]; - config_container = new CConfig*[nZone]; - geometry_container = new CGeometry**[nZone]; - surface_movement = new CSurfaceMovement*[nZone]; - grid_movement = new CVolumetricMovement*[nZone]; - FFDBox = new CFreeFormDefBox**[nZone]; - interpolator_container= new CInterpolator**[nZone]; - transfer_container = new CTransfer**[nZone]; - - for (iZone = 0; iZone < nZone; iZone++) { - solver_container[iZone] = NULL; - integration_container[iZone] = NULL; - numerics_container[iZone] = NULL; - config_container[iZone] = NULL; - geometry_container[iZone] = NULL; - surface_movement[iZone] = NULL; - grid_movement[iZone] = NULL; - FFDBox[iZone] = NULL; - interpolator_container[iZone] = NULL; - transfer_container[iZone] = NULL; - } - - /*--- Loop over all zones to initialize the various classes. In most - cases, nZone is equal to one. This represents the solution of a partial - differential equation on a single block, unstructured mesh. ---*/ - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Definition of the configuration option class for all zones. In this - constructor, the input configuration file is parsed and all options are - read and stored. ---*/ - - config_container[iZone] = new CConfig(config_file_name, SU2_CFD, iZone, nZone, nDim, VERB_HIGH); - - - /*--- Definition of the geometry class to store the primal grid in the - partitioning process. ---*/ - - CGeometry *geometry_aux = NULL; - - /*--- All ranks process the grid and call ParMETIS for partitioning ---*/ - - geometry_aux = new CPhysicalGeometry(config_container[iZone], iZone, nZone); - - /*--- Color the initial grid and set the send-receive domains (ParMETIS) ---*/ - - geometry_aux->SetColorGrid_Parallel(config_container[iZone]); - - /*--- Allocate the memory of the current domain, and divide the grid - between the ranks. ---*/ - - geometry_container[iZone] = new CGeometry *[config_container[iZone]->GetnMGLevels()+1]; - geometry_container[iZone][MESH_0] = new CPhysicalGeometry(geometry_aux, config_container[iZone], 1); - - /*--- Deallocate the memory of geometry_aux ---*/ - - delete geometry_aux; - - /*--- Add the Send/Receive boundaries ---*/ - - geometry_container[iZone][MESH_0]->SetSendReceive(config_container[iZone]); - - /*--- Add the Send/Receive boundaries ---*/ - - geometry_container[iZone][MESH_0]->SetBoundaries(config_container[iZone]); - - } - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Geometry Preprocessing ------------------------" << endl; - - /*--- Preprocessing of the geometry for all zones. In this routine, the edge- - based data structure is constructed, i.e. node and cell neighbors are - identified and linked, face areas and volumes of the dual mesh cells are - computed, and the multigrid levels are created using an agglomeration procedure. ---*/ - - Geometrical_Preprocessing(geometry_container, config_container, nZone); - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Solver Preprocessing --------------------------" << endl; - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Computation of wall distances for turbulence modeling ---*/ - - if ( (config_container[iZone]->GetKind_Solver() == RANS) || - (config_container[iZone]->GetKind_Solver() == ADJ_RANS) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) - geometry_container[iZone][MESH_0]->ComputeWall_Distance(config_container[iZone]); - - /*--- Computation of positive surface area in the z-plane which is used for - the calculation of force coefficient (non-dimensionalization). ---*/ - - geometry_container[iZone][MESH_0]->SetPositive_ZArea(config_container[iZone]); - - /*--- Set the near-field, interface and actuator disk boundary conditions, if necessary. ---*/ - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { - geometry_container[iZone][iMesh]->MatchNearField(config_container[iZone]); - geometry_container[iZone][iMesh]->MatchInterface(config_container[iZone]); - geometry_container[iZone][iMesh]->MatchActuator_Disk(config_container[iZone]); - } - - /*--- Definition of the solver class: solver_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS]. - The solver classes are specific to a particular set of governing equations, - and they contain the subroutines with instructions for computing each spatial - term of the PDE, i.e. loops over the edges to compute convective and viscous - fluxes, loops over the nodes to compute source terms, and routines for - imposing various boundary condition type for the PDE. ---*/ - - solver_container[iZone] = new CSolver** [config_container[iZone]->GetnMGLevels()+1]; - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) - solver_container[iZone][iMesh] = NULL; - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { - solver_container[iZone][iMesh] = new CSolver* [MAX_SOLS]; - for (iSol = 0; iSol < MAX_SOLS; iSol++) - solver_container[iZone][iMesh][iSol] = NULL; - } - driver->Solver_Preprocessing(solver_container[iZone], geometry_container[iZone], - config_container[iZone]); - - if (rank == MASTER_NODE) - cout << endl <<"----------------- Integration and Numerics Preprocessing ----------------" << endl; - - /*--- Definition of the integration class: integration_container[#ZONES][#EQ_SYSTEMS]. - The integration class orchestrates the execution of the spatial integration - subroutines contained in the solver class (including multigrid) for computing - the residual at each node, R(U) and then integrates the equations to a - steady state or time-accurately. ---*/ - - integration_container[iZone] = new CIntegration*[MAX_SOLS]; - driver->Integration_Preprocessing(integration_container[iZone], geometry_container[iZone], - config_container[iZone]); - - if (rank == MASTER_NODE) cout << "Integration Preprocessing." << endl; - - /*--- Definition of the numerical method class: - numerics_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS][#EQ_TERMS]. - The numerics class contains the implementation of the numerical methods for - evaluating convective or viscous fluxes between any two nodes in the edge-based - data structure (centered, upwind, galerkin), as well as any source terms - (piecewise constant reconstruction) evaluated in each dual mesh volume. ---*/ - - numerics_container[iZone] = new CNumerics***[config_container[iZone]->GetnMGLevels()+1]; - driver->Numerics_Preprocessing(numerics_container[iZone], solver_container[iZone], - geometry_container[iZone], config_container[iZone]); - - if (rank == MASTER_NODE) cout << "Numerics Preprocessing." << endl; - - /*--- Instantiate the geometry movement classes for the solution of unsteady - flows on dynamic meshes, including rigid mesh transformations, dynamically - deforming meshes, and time-spectral preprocessing. ---*/ - - if (config_container[iZone]->GetGrid_Movement()) { - if (rank == MASTER_NODE) - cout << "Setting dynamic mesh structure." << endl; - grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0], config_container[iZone]); - FFDBox[iZone] = new CFreeFormDefBox*[MAX_NUMBER_FFD]; - surface_movement[iZone] = new CSurfaceMovement(); - surface_movement[iZone]->CopyBoundary(geometry_container[iZone][MESH_0], config_container[iZone]); - if (config_container[iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL) - SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], - FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, 0, 0); - } - - } - - /*--- Definition of the interface and transfer conditions between different zones. - *--- The transfer container is defined for zones paired one to one. - *--- This only works for a multizone problem (nZone > 1). - *--- Also, at the moment this capability is limited to two zones (nZone < 3). - *--- This will change in the future. ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------- Multizone Interface Preprocessing -------------------" << endl; - - - if ((nZone > 1) && (nZone < 3)) { - - for (iZone = 0; iZone < nZone; iZone++){ - transfer_container[iZone] = new CTransfer*[nZone]; - interpolator_container[iZone] = new CInterpolator*[nZone]; - for (jZone = 0; jZone < nZone; jZone++){ - transfer_container[iZone][jZone] = NULL; - interpolator_container[iZone][jZone] = NULL; - } - } - - driver->Interface_Preprocessing(transfer_container, interpolator_container, geometry_container, - config_container, solver_container, nZone, nDim); - - } - - - /*--- Definition of the output class (one for all zones). The output class - manages the writing of all restart, volume solution, surface solution, - surface comma-separated value, and convergence history files (both in serial - and in parallel). ---*/ - - output = new COutput(); - - /*--- Open the convergence history file ---*/ - - if (rank == MASTER_NODE) - output->SetConvHistory_Header(&ConvHist_file, config_container[ZONE_0]); - - /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) - ExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); - - /*--- Check for a dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY - && config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) - ExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); - - /*--- Main external loop of the solver. Within this loop, each iteration ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------------------ Begin Solver -----------------------------" << endl; - - /*--- Set up a timer for performance benchmarking (preprocessing time is not included) ---*/ - -#ifndef HAVE_MPI - StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - StartTime = MPI_Wtime(); -#endif - - bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); - - unsigned short iFluidIt, nFluidIt; - - iFluidIt=0; - nFluidIt=config_container[ZONE_0]->GetnIterFSI(); - - /*--- This is temporal and just to check. It will have to be added to the regular history file ---*/ - - ofstream historyFile_FSI; - bool writeHistFSI = config_container[ZONE_0]->GetWrite_Conv_FSI(); - if (writeHistFSI){ - char cstrFSI[200]; - string filenameHistFSI = config_container[ZONE_0]->GetConv_FileName_FSI(); - strcpy (cstrFSI, filenameHistFSI.data()); - historyFile_FSI.open (cstrFSI); - historyFile_FSI << "Time,Iteration,Aitken,URes,logResidual,orderMagnResidual" << endl; - historyFile_FSI.close(); - } - - while (ExtIter < config_container[ZONE_0]->GetnExtIter()) { - - /*--- Set the value of the external iteration. ---*/ - - config_container[ZONE_0]->SetExtIter(ExtIter); - - /*--- Read the target pressure ---*/ - - if (config_container[ZONE_0]->GetInvDesign_Cp() == YES) - output->SetCp_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - - /*--- Read the target heat flux ---*/ - - if (config_container[ZONE_0]->GetInvDesign_HeatFlux() == YES) - output->SetHeat_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - - /*--- Perform a single iteration of the chosen PDE solver. ---*/ - - if (fsi){ - config_container[ZONE_1]->SetExtIter(ExtIter); - FSI_BGS_Iteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, transfer_container, - iFluidIt, nFluidIt); - } - - else { - -// switch (config_container[ZONE_0]->GetKind_Solver()) { -// -// case LINEAR_ELASTICITY: -// FEAIteration(output, integration_container, geometry_container, -// solver_container, numerics_container, config_container, -// surface_movement, grid_movement, FFDBox); -// break; -// -// } - } - - - /*--- Synchronization point after a single solver iteration. Compute the - wall clock time required. ---*/ - -#ifndef HAVE_MPI - StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - StopTime = MPI_Wtime(); -#endif - - UsedTime = (StopTime - StartTime); - - /*--- For specific applications, evaluate and plot the equivalent area. ---*/ - - if (config_container[ZONE_0]->GetEquivArea() == YES) { - output->SetEquivalentArea(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - } - - /*--- Check if there is any change in the runtime parameters ---*/ - - CConfig *runtime = NULL; - strcpy(runtime_file_name, "runtime.dat"); - runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); - - /*--- Update the convergence history file (serial and parallel computations). ---*/ - /*--- This is temporal and for practical purposes. ---*/ - if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; - for (iZone = 0; iZone < nZone; iZone++){ - if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; - else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; - output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, - config_container, integration_container, false, UsedTime, iZone); - } - - if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; - - /*--- Evaluate the new CFL number (adaptive). ---*/ - - if (config_container[ZONE_0]->GetCFL_Adapt() == YES) { - output->SetCFL_Number(solver_container, config_container, ZONE_0); - } - - /*--- Check whether the current simulation has reached the specified - convergence criteria, and set StopCalc to true, if so. ---*/ - - switch (config_container[ZONE_0]->GetKind_Solver()) { - case EULER: case NAVIER_STOKES: case RANS: - StopCalc = integration_container[ZONE_0][FLOW_SOL]->GetConvergence(); break; - case TNE2_EULER: case TNE2_NAVIER_STOKES: - StopCalc = integration_container[ZONE_0][TNE2_SOL]->GetConvergence(); break; - case WAVE_EQUATION: - StopCalc = integration_container[ZONE_0][WAVE_SOL]->GetConvergence(); break; - case HEAT_EQUATION: - StopCalc = integration_container[ZONE_0][HEAT_SOL]->GetConvergence(); break; - case LINEAR_ELASTICITY: - // This is a temporal fix, while we code the non-linear solver - // StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; - StopCalc = false; break; - case FEM_ELASTICITY: - StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; - StopCalc = false; break; - case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: - case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: - StopCalc = integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence(); break; - case ADJ_TNE2_EULER: case ADJ_TNE2_NAVIER_STOKES: - StopCalc = integration_container[ZONE_0][ADJTNE2_SOL]->GetConvergence(); break; - } - - /*--- Solution output. Determine whether a solution needs to be written - after the current iteration, and if so, execute the output file writing - routines. ---*/ - - if ((ExtIter+1 >= config_container[ZONE_0]->GetnExtIter()) || - - ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (ExtIter != 0) && - !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || - - (StopCalc) || - - ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) && - ((ExtIter == 0) || (ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))) || - - ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (!fsi) && - ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0) || - ((ExtIter-1) % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) || - - ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (fsi) && - ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))))) { - - /*--- Low-fidelity simulations (using a coarser multigrid level - approximation to the solution) require an interpolation back to the - finest grid. ---*/ - - if (config_container[ZONE_0]->GetLowFidelitySim()) { - integration_container[ZONE_0][FLOW_SOL]->SetProlongated_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][MESH_1][FLOW_SOL], geometry_container[ZONE_0][MESH_0], geometry_container[ZONE_0][MESH_1], config_container[ZONE_0]); - integration_container[ZONE_0][FLOW_SOL]->Smooth_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], geometry_container[ZONE_0][MESH_0], 3, 1.25, config_container[ZONE_0]); - solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Set_MPI_Solution(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0]); - solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Preprocessing(geometry_container[ZONE_0][MESH_0], solver_container[ZONE_0][MESH_0], config_container[ZONE_0], MESH_0, 0, RUNTIME_FLOW_SYS, false); - } - - if (rank == MASTER_NODE) cout << endl << "-------------------------- File Output Summary --------------------------"; - - /*--- Execute the routine for writing restart, volume solution, - surface solution, and surface comma-separated value files. ---*/ - - output->SetResult_Files(solver_container, geometry_container, config_container, ExtIter, nZone); - - /*--- Output a file with the forces breakdown. ---*/ - - output->SetForces_Breakdown(geometry_container, solver_container, - config_container, integration_container, ZONE_0); - - /*--- Compute the forces at different sections. ---*/ - - if (config_container[ZONE_0]->GetPlot_Section_Forces()) { - output->SetForceSections(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - } - - if (rank == MASTER_NODE) cout << "-------------------------------------------------------------------------" << endl << endl; - - } - - /*--- If the convergence criteria has been met, terminate the simulation. ---*/ - - if (StopCalc) break; - - ExtIter++; - - } - - /*--- Output some information to the console. ---*/ - - if (rank == MASTER_NODE) { - - /*--- Print out the number of non-physical points and reconstructions ---*/ - - if (config_container[ZONE_0]->GetNonphysical_Points() > 0) - cout << "Warning: there are " << config_container[ZONE_0]->GetNonphysical_Points() << " non-physical points in the solution." << endl; - if (config_container[ZONE_0]->GetNonphysical_Reconstr() > 0) - cout << "Warning: " << config_container[ZONE_0]->GetNonphysical_Reconstr() << " reconstructed states for upwinding are non-physical." << endl; - - /*--- Close the convergence history file. ---*/ - - ConvHist_file.close(); - cout << "History file, closed." << endl; - } - - // /*--- Deallocate config container ---*/ - // - // for (iZone = 0; iZone < nZone; iZone++) { - // if (config_container[iZone] != NULL) { - // delete config_container[iZone]; - // } - // } - // if (config_container != NULL) delete[] config_container; - - - /*--- Synchronization point after a single solver iteration. Compute the - wall clock time required. ---*/ - -#ifndef HAVE_MPI - StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - UsedTime = StopTime-StartTime; - if (rank == MASTER_NODE) { - cout << "\nCompleted in " << fixed << UsedTime << " seconds on "<< size; - if (size == 1) cout << " core." << endl; else cout << " cores." << endl; - } - - /*--- Exit the solver cleanly ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Exit Success (SU2_FSI) ------------------------" << endl << endl; - -#ifdef HAVE_MPI - /*--- Finalize MPI parallelization ---*/ - MPI_Buffer_detach(&bptr, &bl); - MPI_Finalize(); -#endif - - return EXIT_SUCCESS; - -} diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp deleted file mode 100644 index c78d943d954..00000000000 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ /dev/null @@ -1,983 +0,0 @@ -/*! - * \file iteration_structure_fsi.cpp - * \brief Main subroutines used by SU2_FSI for iteration - * \author R. Sanchez - * \version 3.2.9 "eagle" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/iteration_structure_fsi.hpp" - -void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt) { - - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); - unsigned long iFSIIter = 0; - unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*-----------------------------------------------------------------*/ - /*---------------- Predict structural displacements ---------------*/ - /*-----------------------------------------------------------------*/ - - FSI_Disp_Predictor(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - - while (iFSIIterSetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*-----------------------------------------------------------------*/ - /*------------------- Set FEA loads from fluid --------------------*/ - /*-----------------------------------------------------------------*/ - - FSI_Load_Transfer(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, transfer_container, ExtIter); - - /*-----------------------------------------------------------------*/ - /*------------------ Structural subiteration ----------------------*/ - /*-----------------------------------------------------------------*/ - - if (fem_solver){ - FEM_Subiteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - } - else{ - FEA_Subiteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - } - - /*--- Write the convergence history for the structure (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_1); - - /*-----------------------------------------------------------------*/ - /*----------------- Displacements relaxation ----------------------*/ - /*-----------------------------------------------------------------*/ - - FSI_Disp_Relaxation(output, geometry_container, solver_container, config_container, iFSIIter); - - /*-----------------------------------------------------------------*/ - /*-------------------- Check convergence --------------------------*/ - /*-----------------------------------------------------------------*/ - - integration_container[ZONE_1][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_1][MESH_0], config_container[ZONE_1], - solver_container[ZONE_1][MESH_0][FEA_SOL], iFSIIter); - - if (integration_container[ZONE_1][FEA_SOL]->GetConvergence_FSI()) break; - - /*-----------------------------------------------------------------*/ - /*--------------------- Update iFSIIter ---------------------------*/ - /*-----------------------------------------------------------------*/ - - iFSIIter++; - - } - - /*-----------------------------------------------------------------*/ - /*-------------------- Update fluid solver ------------------------*/ - /*-----------------------------------------------------------------*/ - - Flow_Update(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, ExtIter); - - /*-----------------------------------------------------------------*/ - /*----------------- Update structural solver ----------------------*/ - /*-----------------------------------------------------------------*/ - - if (fem_solver){ - FEM_Update(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, ExtIter); - } - else{ - FEA_Update(output, integration_container, geometry_container, - solver_container, config_container, ExtIter); - } - - - /*-----------------------------------------------------------------*/ - /*--------------- Update convergence parameter --------------------*/ - /*-----------------------------------------------------------------*/ - integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); - -} - -void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - unsigned short iZone; - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1; - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Set the initial condition ---*/ - for (iZone = 0; iZone < nFluidZone; iZone++) - solver_container[iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- Apply a Wind Gust ---*/ - /*--- Initial set up for unsteady problems with gusts - Not enabled yet. ---*/ - -// for (iZone = 0; iZone < nFluidZone; iZone++) { -// if (config_container[ZONE_0]->GetWind_Gust()){ -// SetWind_GustField(config_container[iZone],geometry_container[iZone],solver_container[iZone]); -// } -// } - - for (iZone = 0; iZone < nFluidZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; - - /*--- Update global parameters ---*/ - - if (config_container[iZone]->GetKind_Solver() == EULER){ - config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - } - if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES){ - config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - } - if (config_container[iZone]->GetKind_Solver() == RANS){ - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - } - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, iZone); - - if (config_container[iZone]->GetKind_Solver() == RANS) { - - /*--- Solve the turbulence model ---*/ - - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, iZone); - - /*--- Solve transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, iZone); - } - - } - - } - - /*--- Dual time stepping strategy ---*/ - - if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - for(IntIter = 1; IntIter < config_container[ZONE_0]->GetUnst_nIntIter(); IntIter++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*--- Set the value of the internal iteration ---*/ - - config_container[ZONE_0]->SetIntIter(IntIter); - - for (iZone = 0; iZone < nFluidZone; iZone++) { - - /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ - - if (config_container[iZone]->GetKind_Solver() == EULER) - config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) - config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - if (config_container[iZone]->GetKind_Solver() == RANS) - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, iZone); - - /*--- Pseudo-timestepping the turbulence model ---*/ - - if (config_container[iZone]->GetKind_Solver() == RANS) { - - /*--- Solve the turbulence model ---*/ - - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, iZone); - - /*--- Solve transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, iZone); - } - } - } - if (integration_container[ZONE_0][FLOW_SOL]->GetConvergence()) break; - } - } -} - - -void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter) { - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - - su2double Physical_dt, Physical_t; - unsigned short iMesh, iZone; - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1; - - for (iZone = 0; iZone < nFluidZone; iZone++) { - - if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - /*--- Update dual time solver on all mesh levels ---*/ - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { - integration_container[iZone][FLOW_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][FLOW_SOL], config_container[iZone], iMesh); - integration_container[iZone][FLOW_SOL]->SetConvergence(false); - } - - /*--- Update dual time solver for the turbulence model ---*/ - - if (config_container[iZone]->GetKind_Solver() == RANS) { - integration_container[iZone][TURB_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TURB_SOL], config_container[iZone], MESH_0); - integration_container[iZone][TURB_SOL]->SetConvergence(false); - } - - /*--- Update dual time solver for the transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - integration_container[iZone][TRANS_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TRANS_SOL], config_container[iZone], MESH_0); - integration_container[iZone][TRANS_SOL]->SetConvergence(false); - } - - /*--- Verify convergence criteria (based on total time) ---*/ - - Physical_dt = config_container[iZone]->GetDelta_UnstTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) - integration_container[iZone][FLOW_SOL]->SetConvergence(true); - - } - - } - - -} - - -void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CConfig **config_container, - unsigned long ExtIter) { - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - - /*--- Only one zone allowed for the structure as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*----------------- Update structural solver ----------------------*/ - - integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], - solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); - - } - - -} - -void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - unsigned long ExtIter) { - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Only one zone allowed for the structure as for now ---*/ - su2double Physical_dt, Physical_t; - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - unsigned int ZONE_STRUC = nFluidZone; - - nTotalZone = nFluidZone + nStrucZone; - - bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems - - /*----------------- Compute averaged nodal stress ------------------------*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); - - /*----------------- Update structural solver ----------------------*/ - - if (dynamic){ - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); - integration_container[iZone][FEA_SOL]->SetConvergence(false); - } - - /*--- Verify convergence criteria (based on total time) ---*/ - Physical_dt = config_container[ZONE_STRUC]->GetDelta_DynTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_STRUC]->GetTotal_DynTime()) - integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(true); - } - - -} - - -void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - unsigned short iZone; - unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - -#ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the initial condition at the first iteration ---*/ - - // solver_container[ZONE_1][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[ZONE_1], solver_container[ZONE_1], config_container[ZONE_1], ExtIter); - - /*--- Set the value of the internal iteration ---*/ - - IntIter_Struct = ExtIter; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter_Struct, iZone); - - } - -} - -void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - -#ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - - nTotalZone = nFluidZone + nStrucZone; - - unsigned int ZONE_STRUC = nFluidZone; - - su2double loadIncrement; - unsigned short iZone; - unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); - - unsigned long iIncrement; - unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); - - bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems - - bool initial_calc = config_container[ZONE_STRUC]->GetExtIter() == 0; // Checks if it is the first calculation. - bool first_iter = config_container[ZONE_STRUC]->GetIntIter() == 0; // Checks if it is the first iteration - bool restart = config_container[ZONE_STRUC]->GetRestart(); // Restart analysis - bool initial_calc_restart = (SU2_TYPE::Int(config_container[ZONE_STRUC]->GetExtIter()) == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart - - su2double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); - su2double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); - - bool statTime = (CurrentTime <= Static_Time); - - bool incremental_load = config_container[ZONE_STRUC]->GetIncrementalLoad(); // If an incremental load is applied - - /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ - integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(false); - - if (linear){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - } - /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ - else if ((nonlinear) && (!statTime)){ - - /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - - if (!incremental_load){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - - } - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; - - } - - } - /*--- The incremental load is only used in nonlinear cases ---*/ - else if (incremental_load){ - - /*--- Set the initial condition: store the current solution as Solution_Old ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- The load increment is 1.0: all the load applied ---*/ - loadIncrement = 1.0; - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the first iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - /*--- Run the second iteration ---*/ - - IntIter = 1; - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - bool meetCriteria; - su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; - su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; - - Criteria_UTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(0); - Criteria_RTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(1); - Criteria_ETOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(2); - - Residual_UTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(0)); - Residual_RTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(1)); - Residual_ETOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(2)); - - meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && - ( Residual_RTOL < Criteria_RTOL ) && - ( Residual_ETOL < Criteria_ETOL ) ); - - /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ - if (meetCriteria){ - - for (IntIter = 2; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; - - } - - } - - /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ - - else { - - /*--- Here we have to restart the solution to the original one of the iteration ---*/ - /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- For the number of increments ---*/ - for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ - - loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); - - /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++){ - - /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ - integration_container[iZone][FEA_SOL]->SetConvergence(false); - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - } - - cout << endl; - cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - IntIter = 0; - config_container[iZone]->SetIntIter(IntIter); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - - } - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; - - } - - } - - } - - } - - - } - else if ( (nonlinear && statTime) && - ((first_iter && initial_calc) || (restart && initial_calc_restart)) - ){ - - /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], - config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); - } - -} - - -void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container){ - - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); - - /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ - - switch (config_container[ZONE_0]->GetKind_TransferMethod()) { - case BROADCAST_DATA: - if (MatchingMesh){ - transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - - } - else { - transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - - } - break; - case SCATTER_DATA: - if (MatchingMesh){ - transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - } - else { - cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - break; - case ALLGATHER_DATA: - if (MatchingMesh){ - cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - else { - transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - } - break; - case LEGACY_METHOD: - if (MatchingMesh){ - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); - } - else { - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); - } - break; - } - - -} - - -void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long ExtIter){ - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); - - /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ - - unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); - - /*--- FEA equations -- Necessary as the SetFEA_Load routine is as of now contained in the structural solver ---*/ - - config_container[ZONE_1]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ - - switch (config_container[ZONE_0]->GetKind_TransferMethod()) { - case BROADCAST_DATA: - if (MatchingMesh){ - transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - else { - transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - break; - case SCATTER_DATA: - if (MatchingMesh){ - transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - else { - cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - break; - case ALLGATHER_DATA: - if (MatchingMesh){ - cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - else { - transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - break; - case LEGACY_METHOD: - if (MatchingMesh){ - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); - } - else { - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); - } - break; - } - -} - - -void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned long iFSIIter) { - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*-------------------- Aitken's relaxation ------------------------*/ - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*------------------- Compute the coefficient ---------------------*/ - - solver_container[iZone][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[iZone], config_container[iZone], - solver_container[iZone], iFSIIter); - - /*----------------- Set the relaxation parameter ------------------*/ - - solver_container[iZone][MESH_0][FEA_SOL]->SetAitken_Relaxation(geometry_container[iZone], config_container[iZone], - solver_container[iZone]); - - } - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred_Old(geometry_container[iZone][MESH_0], config_container[iZone]); - } - -} - -void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ - - -} - - -void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - solver_container[iZone][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[iZone], config_container[iZone], - solver_container[iZone]); - - } - - /*--- For parallel simulations we need to communicate the predicted solution before updating the fluid mesh ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred(geometry_container[iZone][MESH_0], config_container[iZone]); - } - -} - -void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter){ - - -} From 640249fef9e2f984df03b731a18865abaf84341a Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 10 Dec 2015 21:48:01 -0800 Subject: [PATCH 129/269] removing SU2_FSI from makefile --- Makefile.am | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index d7792083e66..ec2546db409 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,10 +45,6 @@ if BUILD_CFD SUBDIRS +=SU2_CFD/obj endif -if BUILD_FSI -SUBDIRS +=SU2_FSI/obj -endif - if BUILD_DOT SUBDIRS +=SU2_DOT/obj endif From 8b10628cdc8e6c3bc2c11efd79ab09b26368d3cf Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 10 Dec 2015 23:07:44 -0800 Subject: [PATCH 130/269] introdcues mirror interopolator, mods to isoparametric --- Common/include/interpolation_structure.hpp | 42 +- Common/src/interpolation_structure.cpp | 423 ++++++++------------- 2 files changed, 205 insertions(+), 260 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 59b7288eed4..7d0d9b1f4ba 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -159,7 +159,7 @@ class CNearestNeighbor : public CInterpolator { }; /*! - * \brief Consistent and Conservative interpolation + * \brief Isoparametric interpolation */ class CIsoparametric : public CInterpolator { public: @@ -204,8 +204,42 @@ class CIsoparametric : public CInterpolator { * of the edge is then stored in iFace, and the global index of the node (from which the edge * is referenced) */ - void Isoparameters(su2double* isoparams, - unsigned short nDim, long donor_elem, unsigned short iFace, - unsigned int nDonorPoints, su2double* xj); + void Isoparameters(su2double* isoparams,unsigned short nDim, unsigned short nDonor, su2double *X, su2double *xj); + +}; + +/*! + * \brief Mirror interpolation: copy point linking and coefficient values from the opposing mesh + * Assumes that the oppoosing mesh has already run interpolation. (otherwise this will result in empty/trivial interpolation) + */ +class CMirror : public CInterpolator { +public: + + /*! + * \brief Constructor of the class. + * \param[in] geometry_container + * \param[in] config - config container + * \param[in] iZone - First zone + * \param[in] jZone - Second zone + * + * Data is set in geometry[targetZone] + * + */ + CMirror(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); + + /*! + * \brief Destructor of the class. + */ + ~CMirror(void); + + /*! + * \brief Set up transfer matrix defining relation between two meshes + * \param[in] Zones - list of zones to use for interpolation. in the order: [Recipient/Target, Donor ] + * \param[in] config - config container + * + * Data is set in geometry[targetZone] + */ + void Set_TransferCoeff(CConfig **config); + }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index bd3ce27bca2..c54ba3e4f31 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -70,140 +70,6 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, inline void CInterpolator::Set_TransferCoeff(CConfig **config) { } -/* -void CInterpolator::InitializeData(unsigned int* Zones, unsigned short val_nVar){ - nVar=val_nVar; - unsigned int iZone; - unsigned short it; - if (nVar>0){ - //--- Initialize Data vectors to 0 ---// - Data = new su2double**[nZone]; - for (it=0; itGetnPoint()]; - for (unsigned long iPoint =0; iPoint< Geometry[iZone][MESH_0]->GetnPoint(); iPoint++){ - Data[iZone][iPoint] = new su2double[nVar]; - for (unsigned short iVar=0; iVarGetnMarker_All(); iMarker++){ -// if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ -// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { -// iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); -// /*--- Set Data to 0 before interpolation ---*/ -// for (unsigned short iVar=0; iVarvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ -// /* Unpack info about the donor point */ -// donorZone = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); -// jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); -// jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); -// jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); -// weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); -// /*--- Increment the value of the data ---*/ -// for (unsigned short iVar=0; iVarGetnDim(); -// /*--- Loop over vertices in the interface marker (zone 0) ---*/ -// for (iMarker = 0; iMarker < config[iZone]->GetnMarker_All(); iMarker++){ -// if (config[iZone]->GetMarker_All_FSIinterface(iMarker) == YES){ -// for (iVertex = 0; iVertexGetnVertex(iMarker); iVertex++) { -// iPoint =Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetNode(); -// /*--- Set NewCoord to 0 ---*/ -// for (iDim=0; iDimvertex[iMarker][iVertex]->GetnDonorPoints(); jDonor++){ -// donorZone = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,0); -// jPoint = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,1); -// jMarker = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,2); -// jVertex = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorInfo(jDonor,3); -// weight = Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(jDonor); -// /* Get translation and rotation from the solution */ -// VarCoord = donor_geometry->vertex[jMarker][jVertex]->GetVarCoord(); -// VarRot = donor_geometry->vertex[jMarker][jVertex]->GetVarRot(); -// -// for (iDim=0; iDimvertex[iMarker][iVertex]->GetCoord(iDim)-donor_geometry->node[jPoint]->GetCoord(iDim); -// } -// /*--- Add contribution of rotation (cross product of donor point rotation and dist to donor point) ---*/ -// if (nDim==2){ -// NewVarCoord[0]+=weight*(-dist[1]*VarRot[2]); -// NewVarCoord[1]+=weight*(dist[0]*VarRot[2]); -// } -// if (nDim==3){ -// NewVarCoord[0]+=weight*(dist[2]*VarRot[1]-dist[1]*VarRot[2]); -// NewVarCoord[1]+=weight*(dist[0]*VarRot[2]-dist[2]*VarRot[0]); -// NewVarCoord[2]+=weight*(dist[1]*VarRot[0]-dist[0]*VarRot[1]); -// } -// } -// /*--- Set the varcoord information ---*/ -// Geometry[iZone][MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(NewVarCoord); -// } -// } -// } -// -// // must be called later: -// //flow_grid_movement->SetVolume_Deformation(Geometry[ZONE_0][MESH_0], config[ZONE_0], true); -// -//} -// -//su2double CInterpolator::GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar){ -// if (Data !=NULL) -// return Data[iZone][iPoint][iVar]; -// else -// return 0.0; // Check this. -//} -// -//su2double* CInterpolator::GetData(unsigned int iZone, unsigned long iPoint){ -// if (Data !=NULL) -// return Data[iZone][iPoint]; -// else -// return NULL; -//} -// -//void CInterpolator::SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val){ -// if (Data !=NULL) -// Data[iZone][iPoint][iVar]=val; -// else -// cout <<" CInterpolator object has not been initialized"<elem[temp_donor]->GetFaces(iFace,donorindex); + jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + } + else{ + inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(donorindex); + } + Coord_j = donor_geometry->node[jPoint]->GetCoord(); + for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(); @@ -683,12 +561,14 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); /*--- Recal the closest face/edge ---*/ iFace = target_geometry->vertex[markTarget][iVertex]->GetDonorFace(); + donor_elem = target_geometry->vertex[markTarget][iVertex]->GetDonorElem(); /*--- Loop over vertices of the element to set the values at the vertex ---*/ for (donorindex=0; donorindex< target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints(); donorindex++){ if (donor_elem!=-1){ if (nDim==3){ - jPoint = donor_geometry->elem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); + inode =donor_geometry->elem[donor_elem]->GetFaces(iFace,donorindex); + jPoint = donor_geometry->elem[donor_elem]->GetNode(inode); } else{ inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); @@ -724,75 +604,32 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ } -void CIsoparametric::Isoparameters(su2double* isoparams, - unsigned short nDim, long donor_elem, unsigned short iFace, - unsigned int nDonorPoints, su2double* xj){ - short i,j,k, iedge; - short n0 = nDim+1, n, iDim; - short m = nDonorPoints, m0; +void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, + unsigned short nDonor, su2double *X, su2double *xj){ + short m0 = nDonor, n0=nDim+1,m,n; + short i,j,k, iedge, iDim; unsigned long jPoint, jPoint2; su2double tmp, tmp2; - su2double x[m], x_tmp[m]; - su2double Q[m*m], R[m*m], A[n0*m]; + su2double x[n0], x_tmp[n0]; + su2double Q[m0*m0], R[m0*m0], A[n0*m0]; su2double x2[n0]; - /*--- TODO: check/modify this value ---*/ - su2double eps = 1E-10; - - /*--- n0: # of dimensions + 1. n: n0 less any degenerate rows ---*/ - n=n0; - m0=m; - bool test[n0], testi[n0]; - - /*--- 2D: line, no need to go through computation --*/ - if (nDim==2){ - - iedge = donor_geometry->node[donor_elem]->GetEdge(iFace); - jPoint = donor_geometry->edge[iedge]->GetNode(0); - jPoint2= donor_geometry->edge[iedge]->GetNode(1); - tmp = pow(donor_geometry->node[jPoint]->GetCoord(0)- donor_geometry->node[jPoint2]->GetCoord(0),2.0); - tmp += pow(donor_geometry->node[jPoint]->GetCoord(1)- donor_geometry->node[jPoint2]->GetCoord(1),2.0); - tmp = sqrt(tmp); - - tmp2 = pow(donor_geometry->node[jPoint]->GetCoord(0) - xj[0],2.0); - tmp2 += pow(donor_geometry->node[jPoint]->GetCoord(1) - xj[1],2.0); - tmp2 = sqrt(tmp2); - isoparams[1] = tmp2/tmp; - - tmp2 = pow(donor_geometry->node[jPoint2]->GetCoord(0) - xj[0],2.0); - tmp2 += pow(donor_geometry->node[jPoint2]->GetCoord(1) - xj[1],2.0); - tmp2 = sqrt(tmp2); - isoparams[0] = tmp2/tmp; - - //cout << "iso " << isoparams[0] << " " << isoparams[1] << endl; - } - else{ - - /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ + m=m0; n=n0; + /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ /*--- Right hand side is [1, \vec{x}']'---*/ - for (i=0; ielem[donor_elem]->GetNode(donor_geometry->elem[donor_elem]->GetFaces(iFace,k)); - // Neglect donor points that are not members of the matching marker. - // jth coordinate of the ith donor vertex - for (j=1; jnode[jPoint]->GetCoord(j-1); - } - i++; - - } /*--- Eliminate degenerate rows: * for example, if z constant including the z values will make the system degenerate * TODO: improve efficiency of this loop---*/ @@ -819,6 +656,7 @@ void CIsoparametric::Isoparameters(su2double* isoparams, } if (!test[i]) n--; } + /*--- Initialize A2 now that we might have a smaller system --*/ su2double A2[n*m]; j=0; @@ -871,6 +709,7 @@ void CIsoparametric::Isoparameters(su2double* isoparams, for (j=0; j=0; i--){ if (R[i*m+i]>eps) @@ -881,72 +720,144 @@ void CIsoparametric::Isoparameters(su2double* isoparams, x_tmp[j]=x_tmp[j]-R[j*m+i]*isoparams[i]; } - } - /*--- Isoparametric coefficients have been calculated. Run checks to eliminate ---*/ - - su2double tol = 1e-13; // hardcoded tolerance - /*--- Check 0: normalize to 1: corrects for points not in face---*/ -// tmp=0; -// for (i=0; i1) isoparams[i]=1; -// if (isoparams[i]<0) isoparams[i]=0; -// tmp+=isoparams[i]*isoparams[i]; -// } -// tmp = pow(tmp,0.5); -// for (i=0; i 1, point is ouside face, not really represented accurately ---*/ - bool inside_face = true; - for (i=0; i 1.1 or isoparams[i]<-0.1 ) - inside_face = false; - } - if (!inside_face){ - //cout <<"Reverted to nearest neighbor " << endl; - /*--- Revert to nearest neighbor ---*/ - tmp=1E6; tmp2=0.0; k=0; - for (i=0; ielem[donor_elem]->GetNode(donor_geometry->elem[donor_elem]->GetFaces(iFace,i)); - else{ - iedge = donor_geometry->node[donor_elem]->GetEdge(iFace); - jPoint = donor_geometry->edge[iedge]->GetNode(i); + /*--- Isoparametric coefficients have been calculated. Run checks to eliminate outside-element issues ---*/ + su2double tol = 1e-13; // hardcoded tolerance + /*--- Check 0: normalize to 1: corrects for points not in face---*/ + // tmp=0; + // for (i=0; i1) isoparams[i]=1; + // if (isoparams[i]<0) isoparams[i]=0; + // tmp+=isoparams[i]*isoparams[i]; + // } + // tmp = pow(tmp,0.5); + // for (i=0; i 1, point is ouside face, not really represented accurately ---*/ + bool inside_face = true; + for (i=0; i 1. or isoparams[i]<-0. ) + inside_face = false; + } + if (!inside_face){ + //cout <<"Reverted to nearest neighbor " << m0 << endl; + /*--- Revert to nearest neighbor ---*/ + tmp=1E6; k=0; + for (i=0; inode[jPoint]->GetCoord(j)-xj[j]),2.0); - if (tmp2elem[donor_elem]->GetFaces(iFace,i); - else{ - iedge = donor_geometry->node[donor_elem]->GetEdge(iFace); - jPoint = donor_geometry->edge[iedge]->GetNode(i); + */ + +} + + +CMirror::CMirror(void): CInterpolator(){ } + +/* Nearest Neighbor Interpolator */ +CMirror::CMirror(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ + + /*--- Initialize transfer coefficients between the zones ---*/ + Set_TransferCoeff(config); + +} + +CMirror::~CMirror(){} + +void CMirror::Set_TransferCoeff(CConfig **config){ + + /*--- Number of markers on the interface ---*/ + nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; + nMarkerDonor = config[donorZone]->GetnMarker_All(); + nMarkerTarget = config[targetZone]->GetnMarker_All(); + /*--- For the number of markers on the interface... ---*/ + for (iMarkerInt=1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + /*--- Procedure: + * -Loop through vertices of the aero grid + * -Find nearest element and allocate enough space in the aero grid donor point info + * -set the transfer coefficient values + */ + + /*--- ... the marker markDonor ... ---*/ + for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt)){ + markDonor=iMarkerDonor; + } + } + + /*--- ... the marker markTarget. ---*/ + for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt)){ + markTarget=iMarkerTarget; + } + } + + /*--- Loop over the vertices on the target Marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { + iPoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); + nNodes = 0; + for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex + nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoint(); + for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); + if (tPoint==iPoint){ + nNodes++; + } + } + } + target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); + + /*--- Set the appropriate amount of memory ---*/ + target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + + for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex + nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoint(); + for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); + if (tPoint==iPoint){ + pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); + coeff = donor_geometry->vertex[markDonor][jVertex]->GetDonorCoeff(iTarget); + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,coeff); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); + donorindex++; + } + } } - tmp+=isoparams[i]*(donor_geometry->node[jPoint]->GetCoord(k)); + // FOR PARALELL: + //target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProc(donorindex,proc); + //cout <<" myCoeff " << myCoeff[donorindex] << " "; + //cout << endl; } - cout << tmp << endl; } - */ + } From 046ebb3e40eeb6ab34ff3674c79b019731c04018 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 10 Dec 2015 23:14:10 -0800 Subject: [PATCH 131/269] FSI folder re-added --- SU2_FSI/include/SU2_FSI.hpp | 61 ++ SU2_FSI/include/iteration_structure_fsi.hpp | 268 +++++ SU2_FSI/obj/Makefile.am | 167 +++ SU2_FSI/obj/Makefile.in | 1008 +++++++++++++++++++ SU2_FSI/src/SU2_FSI.cpp | 582 +++++++++++ SU2_FSI/src/iteration_structure_fsi.cpp | 983 ++++++++++++++++++ 6 files changed, 3069 insertions(+) create mode 100644 SU2_FSI/include/SU2_FSI.hpp create mode 100644 SU2_FSI/include/iteration_structure_fsi.hpp create mode 100644 SU2_FSI/obj/Makefile.am create mode 100644 SU2_FSI/obj/Makefile.in create mode 100644 SU2_FSI/src/SU2_FSI.cpp create mode 100644 SU2_FSI/src/iteration_structure_fsi.cpp diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp new file mode 100644 index 00000000000..2248fb7ca68 --- /dev/null +++ b/SU2_FSI/include/SU2_FSI.hpp @@ -0,0 +1,61 @@ +/*! + * \file SU2_FSI.hpp + * \brief Headers of the main subroutines of the code SU2_FSI. + * The subroutines and functions are in the SU2_FSI.cpp file. + * \author R. Sanchez, F. Palacios, T. Economon + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#include "../../Common/include/mpi_structure.hpp" + +#include +#include +#include +#include + +#include "../../Common/include/interpolation_structure.hpp" +#include "../../SU2_CFD/include/driver_structure.hpp" +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" +#include "../../SU2_CFD/include/solver_structure.hpp" +#include "../../SU2_CFD/include/output_structure.hpp" +#include "../../SU2_CFD/include/integration_structure.hpp" +#include "../../SU2_CFD/include/numerics_structure.hpp" +#include "../../SU2_CFD/include/definition_structure.hpp" +#include "../../SU2_CFD/include/iteration_structure.hpp" +#include "../../SU2_CFD/include/transfer_structure.hpp" + +#include "../../Common/include/geometry_structure.hpp" +#include "../../Common/include/config_structure.hpp" +#include "../../Common/include/grid_movement_structure.hpp" + + +#include "../include/iteration_structure_fsi.hpp" + +using namespace std; diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp new file mode 100644 index 00000000000..f3a3a4fd657 --- /dev/null +++ b/SU2_FSI/include/iteration_structure_fsi.hpp @@ -0,0 +1,268 @@ +/*! + * \file iteration_structure_fsi.hpp + * \brief Headers of the main subroutines used by SU2_CFD. + * The subroutines and functions are in the definition_structure.cpp file. + * \author R. Sanchez + * \version 4.0.0 "Cardinal" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#include "../../Common/include/mpi_structure.hpp" + +#include + +#include "../../Common/include/gauss_structure.hpp" +#include "../../Common/include/element_structure.hpp" +#include "../../SU2_CFD/include/solver_structure.hpp" +#include "../../SU2_CFD/include/integration_structure.hpp" +#include "../../SU2_CFD/include/output_structure.hpp" +#include "../../SU2_CFD/include/numerics_structure.hpp" +#include "../../SU2_CFD/include/transfer_structure.hpp" + +#include "../../Common/include/geometry_structure.hpp" +#include "../../Common/include/grid_movement_structure.hpp" +#include "../../Common/include/config_structure.hpp" + +using namespace std; + +/*! + * \brief Block Gauss-Seidel Iteration function for Fluid-Structure Interaction applications. + * \author R. Sanchez, F. Palacios. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + * \param[in] nFluidIt - Number of fluid iterations within a fixed time step. + */ +void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt); + +/*! + * \brief CFD Subiteration function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief CFD update function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter); + + +/*! + * \brief FEA Subiteration function for Fluid-Structure Interaction applications (legacy). + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief FEM Subiteration function for Fluid-Structure Interaction applications (structural side). + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + + +/*! + * \brief Displacement transfer function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container); + +/*! + * \brief Load transfer function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container, unsigned long ExtIter); + + +/*! + * \brief FEA update function for Fluid-Structure Interaction applications (legacy). + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter); + +/*! + * \brief FEM update function for Fluid-Structure Interaction applications. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, unsigned long ExtIter); + + +/*! + * \brief Relaxation step for displacement transfer. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] iFSIIter - Current FSI iteration number. + */ +void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned long iFSIIter); + +/*! + * \brief Relaxation step for load transfer. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config_container - Definition of the particular problem. + * \param[in] iFSIIter - Current FSI iteration number. + */ +void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief Displacement predictor function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); + +/*! + * \brief Load predictor function for Fluid-Structure Interaction applications. + * \author R. Sanchez. + * \param[in] output - Pointer to the COutput class. + * \param[in] integration_container - Container vector with all the integration methods. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config_container - Definition of the particular problem. + * \param[in] surface_movement - Surface movement classes of the problem. + * \param[in] grid_movement - Volume grid movement classes of the problem. + * \param[in] FFDBox - FFD FFDBoxes of the problem. + * \param[in] ExtIter - Current physical time iteration number. + */ +void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter); diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am new file mode 100644 index 00000000000..dbf6080c8a2 --- /dev/null +++ b/SU2_FSI/obj/Makefile.am @@ -0,0 +1,167 @@ +################################################################################ +# +# \file Makefile.am +# \brief Makefile for SU2_FSI +# \author M. Colonno, T. Economon, F. Palacios, R. Sanchez +# \version 4.0.0 "Cardinal" +# +# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). +# Dr. Thomas D. Economon (economon@stanford.edu). +# +# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. +# Prof. Piero Colonna's group at Delft University of Technology. +# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +# Prof. Alberto Guardone's group at Polytechnic University of Milan. +# Prof. Rafael Palacios' group at Imperial College London. +# +# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . +# +################################################################################ + +AUTOMAKE_OPTIONS = subdir-objects +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} + +bin_PROGRAMS = ../bin/SU2_FSI + +su2_fsi_sources = ../include/SU2_FSI.hpp \ + ../src/SU2_FSI.cpp \ + ../../SU2_CFD/include/driver_structure.hpp \ + ../../SU2_CFD/src/driver_structure.cpp \ + ../../SU2_CFD/include/iteration_structure.hpp \ + ../../SU2_CFD/src/iteration_structure.cpp \ + ../include/iteration_structure_fsi.hpp \ + ../src/iteration_structure_fsi.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp + +su2_fsi_cxx_flags = +su2_fsi_ldadd = + +su2_fsi_ldadd += \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o + +# always link to built dependencies from ./externals +su2_fsi_cxx_flags += @su2_externals_INCLUDES@ +su2_fsi_ldadd += @su2_externals_LIBS@ + +# if BUILD_CGNS +su2_fsi_cxx_flags += @CGNS_CXX@ +su2_fsi_ldadd += @CGNS_LD@ +# endif + +# if BUILD_MUTATIONPP +su2_fsi_cxx_flags += @MUTATIONPP_CXX@ +su2_fsi_ldadd += @MUTATIONPP_LD@ +# endif + +# if BUILD_JSONCPP +su2_fsi_cxx_flags += @JSONCPP_CXX@ +su2_fsi_ldadd += @JSONCPP_LD@ +# endif + +# if BUILD_HDF5 +su2_fsi_cxx_flags += @HDF5_CXX@ +su2_fsi_ldadd += @HDF5_LD@ +# endif + +# if BUILD_SZIP +su2_fsi_cxx_flags += @SZIP_CXX@ +su2_fsi_ldadd += @SZIP_LD@ +# endif + +# if BUILD_ZLIB +su2_fsi_cxx_flags += @ZLIB_CXX@ +su2_fsi_ldadd += @ZLIB_LD@ +# endif + +if BUILD_NORMAL +___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) +___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} +___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a ${su2_fsi_ldadd} +endif diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in new file mode 100644 index 00000000000..8111f67f0e0 --- /dev/null +++ b/SU2_FSI/obj/Makefile.in @@ -0,0 +1,1008 @@ +# Makefile.in generated by automake 1.12.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +################################################################################ +# +# \file Makefile.am +# \brief Makefile for SU2_FSI +# \author M. Colonno, T. Economon, F. Palacios, R. Sanchez +# \version 4.0.0 "Cardinal" +# +# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). +# Dr. Thomas D. Economon (economon@stanford.edu). +# +# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. +# Prof. Piero Colonna's group at Delft University of Technology. +# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +# Prof. Alberto Guardone's group at Polytechnic University of Milan. +# Prof. Rafael Palacios' group at Imperial College London. +# +# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# +# SU2 is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# SU2 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with SU2. If not, see . +# +################################################################################ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) +subdir = SU2_FSI/obj +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ + $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ + $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ + $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ + ../src/SU2_FSI.cpp ../../SU2_CFD/include/driver_structure.hpp \ + ../../SU2_CFD/src/driver_structure.cpp \ + ../../SU2_CFD/include/iteration_structure.hpp \ + ../../SU2_CFD/src/iteration_structure.cpp \ + ../include/iteration_structure_fsi.hpp \ + ../src/iteration_structure_fsi.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) \ + ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) \ + ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) +@BUILD_NORMAL_TRUE@am____bin_SU2_FSI_OBJECTS = $(am__objects_1) +___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) +am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o +@BUILD_NORMAL_TRUE@___bin_SU2_FSI_DEPENDENCIES = \ +@BUILD_NORMAL_TRUE@ ../../Common/lib/libSU2.a \ +@BUILD_NORMAL_TRUE@ $(am__DEPENDENCIES_1) +___bin_SU2_FSI_LINK = $(CXXLD) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(___bin_SU2_FSI_SOURCES) +DIST_SOURCES = $(am_____bin_SU2_FSI_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CGNS_CXX = @CGNS_CXX@ +CGNS_LD = @CGNS_LD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DIRECTDIFF_CXX = @DIRECTDIFF_CXX@ +DIRECTDIFF_LIBS = @DIRECTDIFF_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +HDF5_CXX = @HDF5_CXX@ +HDF5_LD = @HDF5_LD@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JSONCPP_CXX = @JSONCPP_CXX@ +JSONCPP_LD = @JSONCPP_LD@ +LAPACK_CXX = @LAPACK_CXX@ +LAPACK_LD = @LAPACK_LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +METIS_INCLUDE = @METIS_INCLUDE@ +METIS_LIB = @METIS_LIB@ +MKDIR_P = @MKDIR_P@ +MUTATIONPP_CXX = @MUTATIONPP_CXX@ +MUTATIONPP_LD = @MUTATIONPP_LD@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ +PARMETIS_LIB = @PARMETIS_LIB@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +REVERSE_CXX = @REVERSE_CXX@ +REVERSE_LIBS = @REVERSE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ +SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ +SZIP_CXX = @SZIP_CXX@ +SZIP_LD = @SZIP_LD@ +TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ +TECIO_INCLUDE = @TECIO_INCLUDE@ +VERSION = @VERSION@ +ZLIB_CXX = @ZLIB_CXX@ +ZLIB_LD = @ZLIB_LD@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +su2_externals_INCLUDES = @su2_externals_INCLUDES@ +su2_externals_LIBS = @su2_externals_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = subdir-objects +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} +su2_fsi_sources = ../include/SU2_FSI.hpp \ + ../src/SU2_FSI.cpp \ + ../../SU2_CFD/include/driver_structure.hpp \ + ../../SU2_CFD/src/driver_structure.cpp \ + ../../SU2_CFD/include/iteration_structure.hpp \ + ../../SU2_CFD/src/iteration_structure.cpp \ + ../include/iteration_structure_fsi.hpp \ + ../src/iteration_structure_fsi.cpp \ + ../../SU2_CFD/include/definition_structure.hpp \ + ../../SU2_CFD/src/definition_structure.cpp \ + ../../SU2_CFD/include/solver_structure.hpp \ + ../../SU2_CFD/src/solver_fem_elasticity.cpp \ + ../../SU2_CFD/include/numerics_structure.hpp \ + ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ + ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp + + +# always link to built dependencies from ./externals + +# if BUILD_CGNS +# endif + +# if BUILD_MUTATIONPP +# endif + +# if BUILD_JSONCPP +# endif + +# if BUILD_HDF5 +# endif + +# if BUILD_SZIP +# endif + +# if BUILD_ZLIB +su2_fsi_cxx_flags = @su2_externals_INCLUDES@ @CGNS_CXX@ \ + @MUTATIONPP_CXX@ @JSONCPP_CXX@ @HDF5_CXX@ @SZIP_CXX@ \ + @ZLIB_CXX@ $(am__empty) +su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o \ + @su2_externals_LIBS@ @CGNS_LD@ @MUTATIONPP_LD@ @JSONCPP_LD@ \ + @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ $(am__empty) +# endif +@BUILD_NORMAL_TRUE@___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) +@BUILD_NORMAL_TRUE@___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} +@BUILD_NORMAL_TRUE@___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a ${su2_fsi_ldadd} +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +../src/$(am__dirstamp): + @$(MKDIR_P) ../src + @: > ../src/$(am__dirstamp) +../src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../src/$(DEPDIR) + @: > ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/$(am__dirstamp): + @$(MKDIR_P) ../../SU2_CFD/src + @: > ../../SU2_CFD/src/$(am__dirstamp) +../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) + @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT): \ + ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ + ../../SU2_CFD/src/$(am__dirstamp) \ + ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../bin/$(am__dirstamp): + @$(MKDIR_P) ../bin + @: > ../bin/$(am__dirstamp) +../bin/SU2_FSI$(EXEEXT): $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_DEPENDENCIES) $(EXTRA____bin_SU2_FSI_DEPENDENCIES) ../bin/$(am__dirstamp) + @rm -f ../bin/SU2_FSI$(EXEEXT) + $(AM_V_CXXLD)$(___bin_SU2_FSI_LINK) $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f ../../SU2_CFD/src/*.$(OBJEXT) + -rm -f ../src/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +../src/___bin_SU2_FSI-SU2_FSI.o: ../src/SU2_FSI.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp + +../src/___bin_SU2_FSI-SU2_FSI.obj: ../src/SU2_FSI.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o: ../../SU2_CFD/src/driver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o `test -f '../../SU2_CFD/src/driver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/driver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/driver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o `test -f '../../SU2_CFD/src/driver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/driver_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj: ../../SU2_CFD/src/driver_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj `if test -f '../../SU2_CFD/src/driver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/driver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/driver_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/driver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj `if test -f '../../SU2_CFD/src/driver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/driver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/driver_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` + +../src/___bin_SU2_FSI-iteration_structure_fsi.o: ../src/iteration_structure_fsi.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp + +../src/___bin_SU2_FSI-iteration_structure_fsi.obj: ../src/iteration_structure_fsi.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o: ../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj: ../../SU2_CFD/src/solver_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o: ../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj: ../../SU2_CFD/src/numerics_fem_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp + +../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) + -rm -f ../../SU2_CFD/src/$(am__dirstamp) + -rm -f ../bin/$(am__dirstamp) + -rm -f ../src/$(DEPDIR)/$(am__dirstamp) + -rm -f ../src/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-am + -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp new file mode 100644 index 00000000000..bd933e5b5a3 --- /dev/null +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -0,0 +1,582 @@ +/*! + * \file SU2_FSI.cpp + * \brief Main file of the Fluid Structure Interaction code + * \author R. Sanchez, F. Palacios, T. Economon + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/SU2_FSI.hpp" + +using namespace std; + +int main(int argc, char *argv[]) { + + bool StopCalc = false; + su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; + unsigned long ExtIter = 0; + unsigned short iMesh, iZone, jZone, iSol, nZone, nDim; + char config_file_name[MAX_STRING_SIZE]; + char runtime_file_name[MAX_STRING_SIZE]; + ofstream ConvHist_file; + int rank = MASTER_NODE; + int size = SINGLE_NODE; + + /*--- MPI initialization, and buffer setting ---*/ + +#ifdef HAVE_MPI + int *bptr, bl; + SU2_MPI::Init(&argc, &argv); + MPI_Buffer_attach( malloc(BUFSIZE), BUFSIZE ); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Start running SU2_FSI -------------------------" << endl; + + + /*--- Create pointers to all of the classes that may be used throughout + the SU2_FSI code. In general, the pointers are instantiated down a + heirarchy over all zones, multigrid levels, equation sets, and equation + terms as described in the comments below. ---*/ + + CDriver *driver = NULL; + CIteration **iteration_container = NULL; + COutput *output = NULL; + CIntegration ***integration_container = NULL; + CGeometry ***geometry_container = NULL; + CSolver ****solver_container = NULL; + CNumerics *****numerics_container = NULL; + CConfig **config_container = NULL; + CSurfaceMovement **surface_movement = NULL; + CVolumetricMovement **grid_movement = NULL; + CFreeFormDefBox*** FFDBox = NULL; + CInterpolator ***interpolator_container = NULL; + CTransfer ***transfer_container = NULL; + + /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config + file is specified, default.cfg is used) ---*/ + + if (argc == 2) { strcpy(config_file_name, argv[1]); } + else { strcpy(config_file_name, "default.cfg"); } + + /*--- Read the name and format of the input mesh file to get from the mesh + file the number of zones and dimensions from the numerical grid (required + for variables allocation) ---*/ + + CConfig *config = NULL; + config = new CConfig(config_file_name, SU2_CFD); + + nZone = GetnZone(config->GetMesh_FileName(), config->GetMesh_FileFormat(), config); + nDim = GetnDim(config->GetMesh_FileName(), config->GetMesh_FileFormat()); + + /*--- Definition and of the containers for all possible zones. ---*/ + + iteration_container = new CIteration*[nZone]; + solver_container = new CSolver***[nZone]; + integration_container = new CIntegration**[nZone]; + numerics_container = new CNumerics****[nZone]; + config_container = new CConfig*[nZone]; + geometry_container = new CGeometry**[nZone]; + surface_movement = new CSurfaceMovement*[nZone]; + grid_movement = new CVolumetricMovement*[nZone]; + FFDBox = new CFreeFormDefBox**[nZone]; + interpolator_container= new CInterpolator**[nZone]; + transfer_container = new CTransfer**[nZone]; + + for (iZone = 0; iZone < nZone; iZone++) { + solver_container[iZone] = NULL; + integration_container[iZone] = NULL; + numerics_container[iZone] = NULL; + config_container[iZone] = NULL; + geometry_container[iZone] = NULL; + surface_movement[iZone] = NULL; + grid_movement[iZone] = NULL; + FFDBox[iZone] = NULL; + interpolator_container[iZone] = NULL; + transfer_container[iZone] = NULL; + } + + /*--- Loop over all zones to initialize the various classes. In most + cases, nZone is equal to one. This represents the solution of a partial + differential equation on a single block, unstructured mesh. ---*/ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Definition of the configuration option class for all zones. In this + constructor, the input configuration file is parsed and all options are + read and stored. ---*/ + + config_container[iZone] = new CConfig(config_file_name, SU2_CFD, iZone, nZone, nDim, VERB_HIGH); + + + /*--- Definition of the geometry class to store the primal grid in the + partitioning process. ---*/ + + CGeometry *geometry_aux = NULL; + + /*--- All ranks process the grid and call ParMETIS for partitioning ---*/ + + geometry_aux = new CPhysicalGeometry(config_container[iZone], iZone, nZone); + + /*--- Color the initial grid and set the send-receive domains (ParMETIS) ---*/ + + geometry_aux->SetColorGrid_Parallel(config_container[iZone]); + + /*--- Allocate the memory of the current domain, and divide the grid + between the ranks. ---*/ + + geometry_container[iZone] = new CGeometry *[config_container[iZone]->GetnMGLevels()+1]; + geometry_container[iZone][MESH_0] = new CPhysicalGeometry(geometry_aux, config_container[iZone], 1); + + /*--- Deallocate the memory of geometry_aux ---*/ + + delete geometry_aux; + + /*--- Add the Send/Receive boundaries ---*/ + + geometry_container[iZone][MESH_0]->SetSendReceive(config_container[iZone]); + + /*--- Add the Send/Receive boundaries ---*/ + + geometry_container[iZone][MESH_0]->SetBoundaries(config_container[iZone]); + + } + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Geometry Preprocessing ------------------------" << endl; + + /*--- Preprocessing of the geometry for all zones. In this routine, the edge- + based data structure is constructed, i.e. node and cell neighbors are + identified and linked, face areas and volumes of the dual mesh cells are + computed, and the multigrid levels are created using an agglomeration procedure. ---*/ + + Geometrical_Preprocessing(geometry_container, config_container, nZone); + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Solver Preprocessing --------------------------" << endl; + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Computation of wall distances for turbulence modeling ---*/ + + if ( (config_container[iZone]->GetKind_Solver() == RANS) || + (config_container[iZone]->GetKind_Solver() == ADJ_RANS) || + (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) + geometry_container[iZone][MESH_0]->ComputeWall_Distance(config_container[iZone]); + + /*--- Computation of positive surface area in the z-plane which is used for + the calculation of force coefficient (non-dimensionalization). ---*/ + + geometry_container[iZone][MESH_0]->SetPositive_ZArea(config_container[iZone]); + + /*--- Set the near-field, interface and actuator disk boundary conditions, if necessary. ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + geometry_container[iZone][iMesh]->MatchNearField(config_container[iZone]); + geometry_container[iZone][iMesh]->MatchInterface(config_container[iZone]); + geometry_container[iZone][iMesh]->MatchActuator_Disk(config_container[iZone]); + } + + /*--- Definition of the solver class: solver_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS]. + The solver classes are specific to a particular set of governing equations, + and they contain the subroutines with instructions for computing each spatial + term of the PDE, i.e. loops over the edges to compute convective and viscous + fluxes, loops over the nodes to compute source terms, and routines for + imposing various boundary condition type for the PDE. ---*/ + + solver_container[iZone] = new CSolver** [config_container[iZone]->GetnMGLevels()+1]; + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) + solver_container[iZone][iMesh] = NULL; + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + solver_container[iZone][iMesh] = new CSolver* [MAX_SOLS]; + for (iSol = 0; iSol < MAX_SOLS; iSol++) + solver_container[iZone][iMesh][iSol] = NULL; + } + driver->Solver_Preprocessing(solver_container[iZone], geometry_container[iZone], + config_container[iZone]); + + if (rank == MASTER_NODE) + cout << endl <<"----------------- Integration and Numerics Preprocessing ----------------" << endl; + + /*--- Definition of the integration class: integration_container[#ZONES][#EQ_SYSTEMS]. + The integration class orchestrates the execution of the spatial integration + subroutines contained in the solver class (including multigrid) for computing + the residual at each node, R(U) and then integrates the equations to a + steady state or time-accurately. ---*/ + + integration_container[iZone] = new CIntegration*[MAX_SOLS]; + driver->Integration_Preprocessing(integration_container[iZone], geometry_container[iZone], + config_container[iZone]); + + if (rank == MASTER_NODE) cout << "Integration Preprocessing." << endl; + + /*--- Definition of the numerical method class: + numerics_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS][#EQ_TERMS]. + The numerics class contains the implementation of the numerical methods for + evaluating convective or viscous fluxes between any two nodes in the edge-based + data structure (centered, upwind, galerkin), as well as any source terms + (piecewise constant reconstruction) evaluated in each dual mesh volume. ---*/ + + numerics_container[iZone] = new CNumerics***[config_container[iZone]->GetnMGLevels()+1]; + driver->Numerics_Preprocessing(numerics_container[iZone], solver_container[iZone], + geometry_container[iZone], config_container[iZone]); + + if (rank == MASTER_NODE) cout << "Numerics Preprocessing." << endl; + + /*--- Instantiate the geometry movement classes for the solution of unsteady + flows on dynamic meshes, including rigid mesh transformations, dynamically + deforming meshes, and time-spectral preprocessing. ---*/ + + if (config_container[iZone]->GetGrid_Movement()) { + if (rank == MASTER_NODE) + cout << "Setting dynamic mesh structure." << endl; + grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0], config_container[iZone]); + FFDBox[iZone] = new CFreeFormDefBox*[MAX_NUMBER_FFD]; + surface_movement[iZone] = new CSurfaceMovement(); + surface_movement[iZone]->CopyBoundary(geometry_container[iZone][MESH_0], config_container[iZone]); + if (config_container[iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL) + SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], + FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, 0, 0); + } + + } + + /*--- Definition of the interface and transfer conditions between different zones. + *--- The transfer container is defined for zones paired one to one. + *--- This only works for a multizone problem (nZone > 1). + *--- Also, at the moment this capability is limited to two zones (nZone < 3). + *--- This will change in the future. ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------- Multizone Interface Preprocessing -------------------" << endl; + + + if ((nZone > 1) && (nZone < 3)) { + + for (iZone = 0; iZone < nZone; iZone++){ + transfer_container[iZone] = new CTransfer*[nZone]; + interpolator_container[iZone] = new CInterpolator*[nZone]; + for (jZone = 0; jZone < nZone; jZone++){ + transfer_container[iZone][jZone] = NULL; + interpolator_container[iZone][jZone] = NULL; + } + } + + driver->Interface_Preprocessing(transfer_container, interpolator_container, geometry_container, + config_container, solver_container, nZone, nDim); + + } + + + /*--- Definition of the output class (one for all zones). The output class + manages the writing of all restart, volume solution, surface solution, + surface comma-separated value, and convergence history files (both in serial + and in parallel). ---*/ + + output = new COutput(); + + /*--- Open the convergence history file ---*/ + + if (rank == MASTER_NODE) + output->SetConvHistory_Header(&ConvHist_file, config_container[ZONE_0]); + + /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) + ExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); + + /*--- Check for a dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY + && config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) + ExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); + + /*--- Main external loop of the solver. Within this loop, each iteration ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------------------ Begin Solver -----------------------------" << endl; + + /*--- Set up a timer for performance benchmarking (preprocessing time is not included) ---*/ + +#ifndef HAVE_MPI + StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + StartTime = MPI_Wtime(); +#endif + + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); + + unsigned short iFluidIt, nFluidIt; + + iFluidIt=0; + nFluidIt=config_container[ZONE_0]->GetnIterFSI(); + + /*--- This is temporal and just to check. It will have to be added to the regular history file ---*/ + + ofstream historyFile_FSI; + bool writeHistFSI = config_container[ZONE_0]->GetWrite_Conv_FSI(); + if (writeHistFSI){ + char cstrFSI[200]; + string filenameHistFSI = config_container[ZONE_0]->GetConv_FileName_FSI(); + strcpy (cstrFSI, filenameHistFSI.data()); + historyFile_FSI.open (cstrFSI); + historyFile_FSI << "Time,Iteration,Aitken,URes,logResidual,orderMagnResidual" << endl; + historyFile_FSI.close(); + } + + while (ExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Set the value of the external iteration. ---*/ + + config_container[ZONE_0]->SetExtIter(ExtIter); + + /*--- Read the target pressure ---*/ + + if (config_container[ZONE_0]->GetInvDesign_Cp() == YES) + output->SetCp_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + + /*--- Read the target heat flux ---*/ + + if (config_container[ZONE_0]->GetInvDesign_HeatFlux() == YES) + output->SetHeat_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + + /*--- Perform a single iteration of the chosen PDE solver. ---*/ + + if (fsi){ + config_container[ZONE_1]->SetExtIter(ExtIter); + FSI_BGS_Iteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, transfer_container, + iFluidIt, nFluidIt); + } + + else { + +// switch (config_container[ZONE_0]->GetKind_Solver()) { +// +// case LINEAR_ELASTICITY: +// FEAIteration(output, integration_container, geometry_container, +// solver_container, numerics_container, config_container, +// surface_movement, grid_movement, FFDBox); +// break; +// +// } + } + + + /*--- Synchronization point after a single solver iteration. Compute the + wall clock time required. ---*/ + +#ifndef HAVE_MPI + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + StopTime = MPI_Wtime(); +#endif + + UsedTime = (StopTime - StartTime); + + /*--- For specific applications, evaluate and plot the equivalent area. ---*/ + + if (config_container[ZONE_0]->GetEquivArea() == YES) { + output->SetEquivalentArea(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + } + + /*--- Check if there is any change in the runtime parameters ---*/ + + CConfig *runtime = NULL; + strcpy(runtime_file_name, "runtime.dat"); + runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); + + /*--- Update the convergence history file (serial and parallel computations). ---*/ + /*--- This is temporal and for practical purposes. ---*/ + if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; + for (iZone = 0; iZone < nZone; iZone++){ + if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; + else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; + output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, + config_container, integration_container, false, UsedTime, iZone); + } + + if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; + + /*--- Evaluate the new CFL number (adaptive). ---*/ + + if (config_container[ZONE_0]->GetCFL_Adapt() == YES) { + output->SetCFL_Number(solver_container, config_container, ZONE_0); + } + + /*--- Check whether the current simulation has reached the specified + convergence criteria, and set StopCalc to true, if so. ---*/ + + switch (config_container[ZONE_0]->GetKind_Solver()) { + case EULER: case NAVIER_STOKES: case RANS: + StopCalc = integration_container[ZONE_0][FLOW_SOL]->GetConvergence(); break; + case TNE2_EULER: case TNE2_NAVIER_STOKES: + StopCalc = integration_container[ZONE_0][TNE2_SOL]->GetConvergence(); break; + case WAVE_EQUATION: + StopCalc = integration_container[ZONE_0][WAVE_SOL]->GetConvergence(); break; + case HEAT_EQUATION: + StopCalc = integration_container[ZONE_0][HEAT_SOL]->GetConvergence(); break; + case LINEAR_ELASTICITY: + // This is a temporal fix, while we code the non-linear solver + // StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; + StopCalc = false; break; + case FEM_ELASTICITY: + StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; + StopCalc = false; break; + case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: + case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: + StopCalc = integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence(); break; + case ADJ_TNE2_EULER: case ADJ_TNE2_NAVIER_STOKES: + StopCalc = integration_container[ZONE_0][ADJTNE2_SOL]->GetConvergence(); break; + } + + /*--- Solution output. Determine whether a solution needs to be written + after the current iteration, and if so, execute the output file writing + routines. ---*/ + + if ((ExtIter+1 >= config_container[ZONE_0]->GetnExtIter()) || + + ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (ExtIter != 0) && + !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || + + (StopCalc) || + + ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) && + ((ExtIter == 0) || (ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))) || + + ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (!fsi) && + ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0) || + ((ExtIter-1) % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) || + + ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (fsi) && + ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))))) { + + /*--- Low-fidelity simulations (using a coarser multigrid level + approximation to the solution) require an interpolation back to the + finest grid. ---*/ + + if (config_container[ZONE_0]->GetLowFidelitySim()) { + integration_container[ZONE_0][FLOW_SOL]->SetProlongated_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][MESH_1][FLOW_SOL], geometry_container[ZONE_0][MESH_0], geometry_container[ZONE_0][MESH_1], config_container[ZONE_0]); + integration_container[ZONE_0][FLOW_SOL]->Smooth_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], geometry_container[ZONE_0][MESH_0], 3, 1.25, config_container[ZONE_0]); + solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Set_MPI_Solution(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0]); + solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Preprocessing(geometry_container[ZONE_0][MESH_0], solver_container[ZONE_0][MESH_0], config_container[ZONE_0], MESH_0, 0, RUNTIME_FLOW_SYS, false); + } + + if (rank == MASTER_NODE) cout << endl << "-------------------------- File Output Summary --------------------------"; + + /*--- Execute the routine for writing restart, volume solution, + surface solution, and surface comma-separated value files. ---*/ + + output->SetResult_Files(solver_container, geometry_container, config_container, ExtIter, nZone); + + /*--- Output a file with the forces breakdown. ---*/ + + output->SetForces_Breakdown(geometry_container, solver_container, + config_container, integration_container, ZONE_0); + + /*--- Compute the forces at different sections. ---*/ + + if (config_container[ZONE_0]->GetPlot_Section_Forces()) { + output->SetForceSections(solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); + } + + if (rank == MASTER_NODE) cout << "-------------------------------------------------------------------------" << endl << endl; + + } + + /*--- If the convergence criteria has been met, terminate the simulation. ---*/ + + if (StopCalc) break; + + ExtIter++; + + } + + /*--- Output some information to the console. ---*/ + + if (rank == MASTER_NODE) { + + /*--- Print out the number of non-physical points and reconstructions ---*/ + + if (config_container[ZONE_0]->GetNonphysical_Points() > 0) + cout << "Warning: there are " << config_container[ZONE_0]->GetNonphysical_Points() << " non-physical points in the solution." << endl; + if (config_container[ZONE_0]->GetNonphysical_Reconstr() > 0) + cout << "Warning: " << config_container[ZONE_0]->GetNonphysical_Reconstr() << " reconstructed states for upwinding are non-physical." << endl; + + /*--- Close the convergence history file. ---*/ + + ConvHist_file.close(); + cout << "History file, closed." << endl; + } + + // /*--- Deallocate config container ---*/ + // + // for (iZone = 0; iZone < nZone; iZone++) { + // if (config_container[iZone] != NULL) { + // delete config_container[iZone]; + // } + // } + // if (config_container != NULL) delete[] config_container; + + + /*--- Synchronization point after a single solver iteration. Compute the + wall clock time required. ---*/ + +#ifndef HAVE_MPI + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + UsedTime = StopTime-StartTime; + if (rank == MASTER_NODE) { + cout << "\nCompleted in " << fixed << UsedTime << " seconds on "<< size; + if (size == 1) cout << " core." << endl; else cout << " cores." << endl; + } + + /*--- Exit the solver cleanly ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Exit Success (SU2_FSI) ------------------------" << endl << endl; + +#ifdef HAVE_MPI + /*--- Finalize MPI parallelization ---*/ + MPI_Buffer_detach(&bptr, &bl); + MPI_Finalize(); +#endif + + return EXIT_SUCCESS; + +} diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp new file mode 100644 index 00000000000..c78d943d954 --- /dev/null +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -0,0 +1,983 @@ +/*! + * \file iteration_structure_fsi.cpp + * \brief Main subroutines used by SU2_FSI for iteration + * \author R. Sanchez + * \version 3.2.9 "eagle" + * + * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). + * Dr. Thomas D. Economon (economon@stanford.edu). + * + * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. + * Prof. Piero Colonna's group at Delft University of Technology. + * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. + * Prof. Alberto Guardone's group at Polytechnic University of Milan. + * Prof. Rafael Palacios' group at Imperial College London. + * + * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../include/iteration_structure_fsi.hpp" + +void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt) { + + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); + unsigned long iFSIIter = 0; + unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*-----------------------------------------------------------------*/ + /*---------------- Predict structural displacements ---------------*/ + /*-----------------------------------------------------------------*/ + + FSI_Disp_Predictor(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + + while (iFSIIterSetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*-----------------------------------------------------------------*/ + /*------------------- Set FEA loads from fluid --------------------*/ + /*-----------------------------------------------------------------*/ + + FSI_Load_Transfer(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, transfer_container, ExtIter); + + /*-----------------------------------------------------------------*/ + /*------------------ Structural subiteration ----------------------*/ + /*-----------------------------------------------------------------*/ + + if (fem_solver){ + FEM_Subiteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + } + else{ + FEA_Subiteration(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox); + } + + /*--- Write the convergence history for the structure (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_1); + + /*-----------------------------------------------------------------*/ + /*----------------- Displacements relaxation ----------------------*/ + /*-----------------------------------------------------------------*/ + + FSI_Disp_Relaxation(output, geometry_container, solver_container, config_container, iFSIIter); + + /*-----------------------------------------------------------------*/ + /*-------------------- Check convergence --------------------------*/ + /*-----------------------------------------------------------------*/ + + integration_container[ZONE_1][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_1][MESH_0], config_container[ZONE_1], + solver_container[ZONE_1][MESH_0][FEA_SOL], iFSIIter); + + if (integration_container[ZONE_1][FEA_SOL]->GetConvergence_FSI()) break; + + /*-----------------------------------------------------------------*/ + /*--------------------- Update iFSIIter ---------------------------*/ + /*-----------------------------------------------------------------*/ + + iFSIIter++; + + } + + /*-----------------------------------------------------------------*/ + /*-------------------- Update fluid solver ------------------------*/ + /*-----------------------------------------------------------------*/ + + Flow_Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, ExtIter); + + /*-----------------------------------------------------------------*/ + /*----------------- Update structural solver ----------------------*/ + /*-----------------------------------------------------------------*/ + + if (fem_solver){ + FEM_Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, ExtIter); + } + else{ + FEA_Update(output, integration_container, geometry_container, + solver_container, config_container, ExtIter); + } + + + /*-----------------------------------------------------------------*/ + /*--------------- Update convergence parameter --------------------*/ + /*-----------------------------------------------------------------*/ + integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); + +} + +void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + unsigned short iZone; + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1; + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- Set the initial condition ---*/ + for (iZone = 0; iZone < nFluidZone; iZone++) + solver_container[iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- Apply a Wind Gust ---*/ + /*--- Initial set up for unsteady problems with gusts - Not enabled yet. ---*/ + +// for (iZone = 0; iZone < nFluidZone; iZone++) { +// if (config_container[ZONE_0]->GetWind_Gust()){ +// SetWind_GustField(config_container[iZone],geometry_container[iZone],solver_container[iZone]); +// } +// } + + for (iZone = 0; iZone < nFluidZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; + + /*--- Update global parameters ---*/ + + if (config_container[iZone]->GetKind_Solver() == EULER){ + config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); + } + if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES){ + config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + } + if (config_container[iZone]->GetKind_Solver() == RANS){ + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); + } + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, IntIter, iZone); + + if (config_container[iZone]->GetKind_Solver() == RANS) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + + } + + } + + /*--- Dual time stepping strategy ---*/ + + if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + for(IntIter = 1; IntIter < config_container[ZONE_0]->GetUnst_nIntIter(); IntIter++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*--- Set the value of the internal iteration ---*/ + + config_container[ZONE_0]->SetIntIter(IntIter); + + for (iZone = 0; iZone < nFluidZone; iZone++) { + + /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ + + if (config_container[iZone]->GetKind_Solver() == EULER) + config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) + config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); + if (config_container[iZone]->GetKind_Solver() == RANS) + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); + + /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ + + integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FLOW_SYS, IntIter, iZone); + + /*--- Pseudo-timestepping the turbulence model ---*/ + + if (config_container[iZone]->GetKind_Solver() == RANS) { + + /*--- Solve the turbulence model ---*/ + + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); + integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TURB_SYS, IntIter, iZone); + + /*--- Solve transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); + integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_TRANS_SYS, IntIter, iZone); + } + } + } + if (integration_container[ZONE_0][FLOW_SOL]->GetConvergence()) break; + } + } +} + + +void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter) { + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + + su2double Physical_dt, Physical_t; + unsigned short iMesh, iZone; + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1; + + for (iZone = 0; iZone < nFluidZone; iZone++) { + + if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { + + /*--- Update dual time solver on all mesh levels ---*/ + + for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { + integration_container[iZone][FLOW_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][FLOW_SOL], config_container[iZone], iMesh); + integration_container[iZone][FLOW_SOL]->SetConvergence(false); + } + + /*--- Update dual time solver for the turbulence model ---*/ + + if (config_container[iZone]->GetKind_Solver() == RANS) { + integration_container[iZone][TURB_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TURB_SOL], config_container[iZone], MESH_0); + integration_container[iZone][TURB_SOL]->SetConvergence(false); + } + + /*--- Update dual time solver for the transition model ---*/ + + if (config_container[iZone]->GetKind_Trans_Model() == LM) { + integration_container[iZone][TRANS_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TRANS_SOL], config_container[iZone], MESH_0); + integration_container[iZone][TRANS_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[iZone]->GetDelta_UnstTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) + integration_container[iZone][FLOW_SOL]->SetConvergence(true); + + } + + } + + +} + + +void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CConfig **config_container, + unsigned long ExtIter) { + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + + /*--- Only one zone allowed for the structure as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*----------------- Update structural solver ----------------------*/ + + integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], + solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + + } + + +} + +void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + unsigned long ExtIter) { + + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- Only one zone allowed for the structure as for now ---*/ + su2double Physical_dt, Physical_t; + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + unsigned int ZONE_STRUC = nFluidZone; + + nTotalZone = nFluidZone + nStrucZone; + + bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + + /*----------------- Compute averaged nodal stress ------------------------*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); + + /*----------------- Update structural solver ----------------------*/ + + if (dynamic){ + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + Physical_dt = config_container[ZONE_STRUC]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_STRUC]->GetTotal_DynTime()) + integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(true); + } + + +} + + +void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + + unsigned short iZone; + unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the initial condition at the first iteration ---*/ + + // solver_container[ZONE_1][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[ZONE_1], solver_container[ZONE_1], config_container[ZONE_1], ExtIter); + + /*--- Set the value of the internal iteration ---*/ + + IntIter_Struct = ExtIter; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter_Struct, iZone); + + } + +} + +void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + + +#ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + + nTotalZone = nFluidZone + nStrucZone; + + unsigned int ZONE_STRUC = nFluidZone; + + su2double loadIncrement; + unsigned short iZone; + unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); + + unsigned long iIncrement; + unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); + + bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems + + bool initial_calc = config_container[ZONE_STRUC]->GetExtIter() == 0; // Checks if it is the first calculation. + bool first_iter = config_container[ZONE_STRUC]->GetIntIter() == 0; // Checks if it is the first iteration + bool restart = config_container[ZONE_STRUC]->GetRestart(); // Restart analysis + bool initial_calc_restart = (SU2_TYPE::Int(config_container[ZONE_STRUC]->GetExtIter()) == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart + + su2double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); + su2double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); + + bool statTime = (CurrentTime <= Static_Time); + + bool incremental_load = config_container[ZONE_STRUC]->GetIncrementalLoad(); // If an incremental load is applied + + /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ + integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(false); + + if (linear){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + } + /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ + else if ((nonlinear) && (!statTime)){ + + /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ + + if (!incremental_load){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } + + } + /*--- The incremental load is only used in nonlinear cases ---*/ + else if (incremental_load){ + + /*--- Set the initial condition: store the current solution as Solution_Old ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- The load increment is 1.0: all the load applied ---*/ + loadIncrement = 1.0; + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the first iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + /*--- Run the second iteration ---*/ + + IntIter = 1; + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + bool meetCriteria; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + + Criteria_UTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(0); + Criteria_RTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(1); + Criteria_ETOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(2); + + Residual_UTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(0)); + Residual_RTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(1)); + Residual_ETOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(2)); + + meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); + + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ + if (meetCriteria){ + + for (IntIter = 2; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } + + } + + /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ + + else { + + /*--- Here we have to restart the solution to the original one of the iteration ---*/ + /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- For the number of increments ---*/ + for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ + + loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); + + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++){ + + /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ + integration_container[iZone][FEA_SOL]->SetConvergence(false); + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + } + + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = 0; + config_container[iZone]->SetIntIter(IntIter); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; + + } + + } + + } + + } + + + } + else if ( (nonlinear && statTime) && + ((first_iter && initial_calc) || (restart && initial_calc_restart)) + ){ + + /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], + config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); + } + +} + + +void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container){ + + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); + + /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ + + switch (config_container[ZONE_0]->GetKind_TransferMethod()) { + case BROADCAST_DATA: + if (MatchingMesh){ + transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + + } + else { + transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + + } + break; + case SCATTER_DATA: + if (MatchingMesh){ + transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + else { + cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + break; + case ALLGATHER_DATA: + if (MatchingMesh){ + cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + else { + transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], + geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], + config_container[ZONE_1], config_container[ZONE_0]); + /*--- Set the volume deformation for the fluid zone ---*/ + grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); + } + break; + case LEGACY_METHOD: + if (MatchingMesh){ + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + } + else { + solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[ZONE_0], grid_movement[ZONE_0], + config_container[ZONE_0], config_container[ZONE_1], + geometry_container[ZONE_1], solver_container[ZONE_1]); + } + break; + } + + +} + + +void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer*** transfer_container, unsigned long ExtIter){ + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); + + /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ + + unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); + + /*--- FEA equations -- Necessary as the SetFEA_Load routine is as of now contained in the structural solver ---*/ + + config_container[ZONE_1]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ + + switch (config_container[ZONE_0]->GetKind_TransferMethod()) { + case BROADCAST_DATA: + if (MatchingMesh){ + transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + else { + transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + break; + case SCATTER_DATA: + if (MatchingMesh){ + transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + else { + cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + break; + case ALLGATHER_DATA: + if (MatchingMesh){ + cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; + exit(EXIT_FAILURE); + } + else { + transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], + geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], + config_container[ZONE_0], config_container[ZONE_1]); + } + break; + case LEGACY_METHOD: + if (MatchingMesh){ + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } + else { + solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + } + break; + } + +} + + +void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned long iFSIIter) { + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*-------------------- Aitken's relaxation ------------------------*/ + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + /*------------------- Compute the coefficient ---------------------*/ + + solver_container[iZone][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[iZone], config_container[iZone], + solver_container[iZone], iFSIIter); + + /*----------------- Set the relaxation parameter ------------------*/ + + solver_container[iZone][MESH_0][FEA_SOL]->SetAitken_Relaxation(geometry_container[iZone], config_container[iZone], + solver_container[iZone]); + + } + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred_Old(geometry_container[iZone][MESH_0], config_container[iZone]); + } + +} + +void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + + +} + + +void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ + + #ifdef HAVE_MPI + int rank; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + /*--- Only one zone allowed for the fluid as for now ---*/ + unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; + unsigned short iZone; + + nTotalZone = nFluidZone + nStrucZone; + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + + solver_container[iZone][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[iZone], config_container[iZone], + solver_container[iZone]); + + } + + /*--- For parallel simulations we need to communicate the predicted solution before updating the fluid mesh ---*/ + + for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { + solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred(geometry_container[iZone][MESH_0], config_container[iZone]); + } + +} + +void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned long ExtIter){ + + +} From 585a4f77b813880be2c8cd7d92f9978e0a022f73 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 11 Dec 2015 11:03:08 -0800 Subject: [PATCH 132/269] changes needed for compilation --- Common/src/interpolation_structure.cpp | 41 ++++++++++++++++++++++--- Makefile.am | 4 +++ SU2_CFD/src/driver_structure.cpp | 24 +++++++++------ SU2_FSI/obj/Makefile.am | 14 --------- SU2_FSI/src/SU2_FSI.cpp | 4 --- SU2_FSI/src/iteration_structure_fsi.cpp | 2 +- configure.ac | 4 +-- 7 files changed, 58 insertions(+), 35 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index c54ba3e4f31..4d47bf73ace 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -613,7 +613,7 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, su2double x[n0], x_tmp[n0]; su2double Q[m0*m0], R[m0*m0], A[n0*m0]; su2double x2[n0]; - + su2double eps = 1E-10; bool test[n0], testi[n0]; m=m0; n=n0; /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ @@ -778,8 +778,6 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, } -CMirror::CMirror(void): CInterpolator(){ } - /* Nearest Neighbor Interpolator */ CMirror::CMirror(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ @@ -791,6 +789,39 @@ CMirror::CMirror(CGeometry ***geometry_container, CConfig **config, unsigned in CMirror::~CMirror(){} void CMirror::Set_TransferCoeff(CConfig **config){ + unsigned long iVertex, jVertex; + unsigned long jPoint, iPoint, tPoint, nTargets; + unsigned short iDim, donorindex=0, iFace; + + unsigned short nDim = donor_geometry->GetnDim(); + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; + + int markDonor=0, markTarget=0; + + long donor_elem=0, temp_donor=0; + unsigned int nNodes=0; + /*--- Restricted to 2-zone for now ---*/ + unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' + bool face_on_marker=true; + + unsigned long iVertexDonor, iPointDonor = 0; + unsigned long iVertexTarget, iPointTarget = 0; + unsigned long pPoint = 0, Global_Point = 0; + unsigned long jGlobalPoint = 0, pGlobalPoint = 0; + int iProcessor, pProcessor = 0; + + unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; + unsigned long nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; + + unsigned long Global_Point_Donor; + int Donor_Processor; + + int rank = MASTER_NODE; + int nProcessor = SINGLE_NODE; + + su2double coeff; /*--- Number of markers on the interface ---*/ nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; @@ -824,7 +855,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ nNodes = 0; for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex - nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoint(); + nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); if (tPoint==iPoint){ @@ -839,7 +870,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex - nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoint(); + nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); if (tPoint==iPoint){ diff --git a/Makefile.am b/Makefile.am index ec2546db409..d7792083e66 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,6 +45,10 @@ if BUILD_CFD SUBDIRS +=SU2_CFD/obj endif +if BUILD_FSI +SUBDIRS +=SU2_FSI/obj +endif + if BUILD_DOT SUBDIRS +=SU2_DOT/obj endif diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index c6fdaf271df..dc39bdf0646 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1208,15 +1208,21 @@ void CDriver::Interface_Preprocessing(CTransfer ***transfer_container, CInterpol /*--- Else: interpolate ---*/ else { if (rank == MASTER_NODE) cout << "between non-matching meshes "; - switch (config_container[donorZone]->GetKindInterpolation()){ - case NEAREST_NEIGHBOR: - interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, donorZone, targetZone); - if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; - break; - case ISOPARAMETRIC: - interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container, config_container, donorZone, targetZone); - if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; - break; + if (structural_target && config_container[donorZone]->GetKindInterpolation()){ + interpolator_container[donorZone][targetZone] = new CMirror(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; + } + else{ + switch (config_container[donorZone]->GetKindInterpolation()){ + case NEAREST_NEIGHBOR: + interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; + break; + case ISOPARAMETRIC: + interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; + break; + } } } diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am index dbf6080c8a2..fb6ebcb002a 100644 --- a/SU2_FSI/obj/Makefile.am +++ b/SU2_FSI/obj/Makefile.am @@ -66,20 +66,14 @@ su2_fsi_ldadd += \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ @@ -90,19 +84,15 @@ su2_fsi_ldadd += \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ @@ -110,19 +100,15 @@ su2_fsi_ldadd += \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp index bd933e5b5a3..994cbc9326c 100644 --- a/SU2_FSI/src/SU2_FSI.cpp +++ b/SU2_FSI/src/SU2_FSI.cpp @@ -438,8 +438,6 @@ int main(int argc, char *argv[]) { switch (config_container[ZONE_0]->GetKind_Solver()) { case EULER: case NAVIER_STOKES: case RANS: StopCalc = integration_container[ZONE_0][FLOW_SOL]->GetConvergence(); break; - case TNE2_EULER: case TNE2_NAVIER_STOKES: - StopCalc = integration_container[ZONE_0][TNE2_SOL]->GetConvergence(); break; case WAVE_EQUATION: StopCalc = integration_container[ZONE_0][WAVE_SOL]->GetConvergence(); break; case HEAT_EQUATION: @@ -454,8 +452,6 @@ int main(int argc, char *argv[]) { case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: StopCalc = integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence(); break; - case ADJ_TNE2_EULER: case ADJ_TNE2_NAVIER_STOKES: - StopCalc = integration_container[ZONE_0][ADJTNE2_SOL]->GetConvergence(); break; } /*--- Solution output. Determine whether a solution needs to be written diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index c78d943d954..4149e0c2976 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -404,7 +404,7 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr if (dynamic){ for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], config_container[iZone], MESH_0); integration_container[iZone][FEA_SOL]->SetConvergence(false); } diff --git a/configure.ac b/configure.ac index e475285d861..8e27fa33722 100644 --- a/configure.ac +++ b/configure.ac @@ -117,8 +117,8 @@ AC_ARG_ENABLE(CFD, AS_HELP_STRING([--disable-CFD], [build the SU2_CFD executable (default = yes)]), [build_CFD=$enableval], [build_CFD="yes"]) AC_ARG_ENABLE(FSI, - AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), - [build_FSI=$enableval], [build_FSI="yes"]) + AS_HELP_STRING([--enable-FSI], [build the SU2_FSI executable (default = no)]), + [build_FSI=$enableval], [build_FSI="no"]) AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) From 166ebfc76676295b242317edbf3d722ac3e42133 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Dec 2015 18:42:54 +0000 Subject: [PATCH 133/269] FSI: BGS improvements for restart purposes (I) --- SU2_CFD/include/driver_structure.hpp | 24 +++++++- SU2_CFD/include/solver_structure.hpp | 17 ++++++ SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/src/driver_structure.cpp | 42 ++++++++++++++ SU2_CFD/src/integration_structure.cpp | 5 +- SU2_CFD/src/solver_fem_elasticity.cpp | 79 ++++++++++++++++++++++++++- SU2_CFD/src/transfer_physics.cpp | 12 +++- 7 files changed, 174 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/include/driver_structure.hpp b/SU2_CFD/include/driver_structure.hpp index 316311c3962..fee70cba210 100644 --- a/SU2_CFD/include/driver_structure.hpp +++ b/SU2_CFD/include/driver_structure.hpp @@ -215,7 +215,17 @@ class CDriver { * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. */ virtual void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; + + /*! + * \brief A virtual member. + * \param[in] zoneFlow - zone of the flow equations. + * \param[in] zoneStruct - zone of the structural equations. + */ + virtual void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short zoneFlow, unsigned short zoneStruct){}; }; /*! @@ -562,6 +572,16 @@ class CFSIDriver : public CDriver { * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. */ void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); + + /*! + * \brief Enforce the coupling condition at the end of the time step + * \param[in] zoneFlow - zone of the flow equations. + * \param[in] zoneStruct - zone of the structural equations. + */ + void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short zoneFlow, unsigned short zoneStruct); }; diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 01db608b182..6afd12a0243 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -1255,6 +1255,15 @@ class CSolver { */ virtual void ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config); + + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + virtual void ImplicitNewmark_Relaxation(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -7425,6 +7434,14 @@ class CFEM_ElasticitySolver : public CSolver { */ void ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + */ + void ImplicitNewmark_Relaxation(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! * \brief Iterate using an implicit Generalized Alpha solver. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index e5229f1b2b9..cd4af348cb0 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -656,6 +656,8 @@ inline void CSolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **so inline void CSolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } +inline void CSolver::ImplicitNewmark_Relaxation(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } + inline void CSolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } inline void CSolver::GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 12458b41e36..e36694f8f67 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -2014,6 +2014,16 @@ void CFSIDriver::Run(CIteration **iteration_container, } + /*-----------------------------------------------------------------*/ + /*------------------ Update coupled solver ------------------------*/ + /*-----------------------------------------------------------------*/ + + Update(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, transfer_container, + ZONE_FLOW, ZONE_STRUCT); + + /*-----------------------------------------------------------------*/ /*-------------------- Update fluid solver ------------------------*/ /*-----------------------------------------------------------------*/ @@ -2244,4 +2254,36 @@ void CFSIDriver::Relaxation_Tractions(COutput *output, CGeometry ***geometry_con } +void CFSIDriver::Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short ZONE_FLOW, unsigned short ZONE_STRUCT){ + + unsigned long IntIter = 0; // This doesn't affect here but has to go into the function + unsigned long ExtIter = config_container[ZONE_FLOW]->GetExtIter(); + + + /*-----------------------------------------------------------------*/ + /*--------------------- Enforce continuity ------------------------*/ + /*-----------------------------------------------------------------*/ + + /*--- Enforces that the geometry of the flow corresponds to the converged, relaxed solution ---*/ + + /*-------------------- Transfer the displacements --------------------*/ + + Transfer_Displacements(output, integration_container, geometry_container, + solver_container, numerics_container, config_container, + surface_movement, grid_movement, FFDBox, transfer_container, + ZONE_STRUCT, ZONE_FLOW); + + /*-------------------- Set the grid movement -------------------------*/ + + SetGrid_Movement(geometry_container[ZONE_FLOW], surface_movement[ZONE_FLOW], + grid_movement[ZONE_FLOW], FFDBox[ZONE_FLOW], solver_container[ZONE_FLOW], config_container[ZONE_FLOW], + ZONE_FLOW, IntIter, ExtIter); + + /*----------- Store the solution_pred as solution_pred_old --------------*/ + +} + diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 2a4e3aecf4d..718ee2b0367 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -691,6 +691,7 @@ void CIntegration::SetStructural_Solver(CGeometry *geometry, CSolver *solver, CC void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { unsigned long iPoint; + bool fsi = config->GetFSI_Simulation(); /*--- Update the solution according to the integration scheme used ---*/ @@ -698,8 +699,10 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver case (CD_EXPLICIT): break; case (NEWMARK_IMPLICIT): + if (fsi) solver_container[FEA_SOL]->ImplicitNewmark_Relaxation(geometry, solver_container, config); break; case (GENERALIZED_ALPHA): + //if (fsi) solver_container[FEA_SOL]->Update_StructSolution(geometry, solver_container, config); solver_container[FEA_SOL]->GeneralizedAlpha_UpdateSolution(geometry, solver_container, config); solver_container[FEA_SOL]->GeneralizedAlpha_UpdateLoads(geometry, solver_container, config); break; @@ -714,8 +717,6 @@ void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver } - bool fsi = config->GetFSI_Simulation(); - /*--- If FSI problem, save the last Aitken relaxation parameter of the previous time step ---*/ if (fsi){ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 6eadf52d02f..e82261ba631 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2224,6 +2224,78 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver Set_MPI_Solution(geometry, config); +} + +void CFEM_ElasticitySolver::ImplicitNewmark_Relaxation(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + su2double *valSolutionPred; + + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + + /*--- Update solution and set it to be the solution after applying relaxation---*/ + + for (iPoint=0; iPoint < nPointDomain; iPoint++){ + + valSolutionPred = node[iPoint]->GetSolution_Pred(); + + node[iPoint]->SetSolution(valSolutionPred); + } + + /*--- Compute velocities and accelerations ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Acceleration component of the solution ---*/ + /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ + + Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - + node[iPoint]->GetSolution_time_n(iVar)) - + a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - + a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); + } + + /*--- Set the acceleration in the node structure ---*/ + + node[iPoint]->SetSolution_Accel(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Velocity component of the solution ---*/ + /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ + + Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ + a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + + a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); + + } + + /*--- Set the velocity in the node structure ---*/ + + node[iPoint]->SetSolution_Vel(Solution); + + } + + + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + + /*--- After the solution has been communicated, set the 'old' predicted solution as the solution ---*/ + /*--- Loop over n points (as we have already communicated everything ---*/ + + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + node[iPoint]->SetSolution_Pred_Old(iVar,node[iPoint]->GetSolution(iVar)); + } + } + + } @@ -3346,8 +3418,6 @@ void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, unsigned long iPoint; su2double *valSolutionPred; - /*--- TODO: I don't think I'm using this routine right now, but I may need to use it after SetAitken_Relaxation... ---*/ - for (iPoint=0; iPoint < nPointDomain; iPoint++){ valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); @@ -3356,5 +3426,10 @@ void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, } + /*--- Perform the MPI communication of the solution, displacements only ---*/ + // TODO: check if this is needed, as the solution is also communicated when u' and u'' are computed + + Set_MPI_Solution_DispOnly(fea_geometry[MESH_0], fea_config); + } diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 71da65278e8..f6db35d5c61 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -223,9 +223,12 @@ void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_soluti unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ - su2double *DisplacementDonor, *DisplacementDonor_Prev; + su2double *Displacement, *DisplacementDonor, *DisplacementDonor_Prev; unsigned short iVar; + /*--- The displacements come from the predicted solution ---*/ + Displacement = struct_solution->node[Point_Struct]->GetSolution(); + /*--- The displacements come from the predicted solution ---*/ DisplacementDonor = struct_solution->node[Point_Struct]->GetSolution_Pred(); @@ -235,6 +238,13 @@ void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_soluti Donor_Variable[iVar] = DisplacementDonor[iVar] - DisplacementDonor_Prev[iVar]; } + if (Point_Struct == 15){ + cout << "-------------------------------NODE 15: -----------------------------------------" << endl; + cout << "Displacement: " << Displacement[0] << " , " << Displacement[1] << endl; + cout << "DisplacementDonor: " << DisplacementDonor[0] << " , " << DisplacementDonor[1] << endl; + cout << "DisplacementDonor_Prev: " << DisplacementDonor_Prev[0] << " , " << DisplacementDonor_Prev[1] << endl; + } + } void CTransfer_StructuralDisplacements::SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry, From 948e01a262b391672b9ea84d4a47c3ea9a3fc5c9 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 17 Dec 2015 14:10:52 -0800 Subject: [PATCH 134/269] updates for isoparametric: automatically mirrors coeffs rather than recalcs (important for consistent + conservative), reordered construction of interpolators to ensure that structure-side is iniitalized second --- Common/src/interpolation_structure.cpp | 152 +++++++++++++++---------- SU2_CFD/src/driver_structure.cpp | 53 +++++---- SU2_CFD/src/transfer_structure.cpp | 2 +- 3 files changed, 119 insertions(+), 88 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 4d47bf73ace..e394b118888 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -345,6 +345,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; nMarkerDonor = config[donorZone]->GetnMarker_All(); nMarkerTarget = config[targetZone]->GetnMarker_All(); + /*--- For the number of markers on the interface... ---*/ for (iMarkerInt=1; iMarkerInt <= nMarkerInt; iMarkerInt++){ /*--- Procedure: @@ -366,7 +367,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ markTarget=iMarkerTarget; } } - /*--- Loop over the vertices on the target Marker ---*/ for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); @@ -524,19 +524,25 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ jPoint = donor_geometry->edge[inode]->GetNode(donorindex); } Coord_j = donor_geometry->node[jPoint]->GetCoord(); + cout <<" isoparam: " << myCoeff[donorindex] <<" Coord: "; + for (iDim=0; iDimnode[iNearestNode]->GetCoord(); - cout << endl; + for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(donor_elem); // in 2D is nearest neighbor target_geometry->vertex[markTarget][iVertex]->SetDonorFace(iFace); // in 2D is the edge target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); @@ -622,7 +628,7 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, isoparams[i]=0; A[i]=1.0; for (j=0; j1) isoparams[i]=1; - // if (isoparams[i]<0) isoparams[i]=0; - // tmp+=isoparams[i]*isoparams[i]; - // } - // tmp = pow(tmp,0.5); - // for (i=0; i 1, point is ouside face, not really represented accurately ---*/ - bool inside_face = true; - for (i=0; i 1. or isoparams[i]<-0. ) - inside_face = false; +// su2double tol = 1e-13; // hardcoded tolerance +// /*--- Check 0: normalize to 1: corrects for points not in face---*/ + if (nDonor==4){ + su2double xi, eta; + xi = (1.0-isoparams[0]/isoparams[1])/(1.0+isoparams[0]/isoparams[1]); + eta = 1- isoparams[0]*4/(1-xi); + if (xi>1.0) xi=1.0; + if (xi<-1.0) xi=-1.0; + if (eta>1.0) eta=1.0; + if (eta<-1.0) eta=-1.0; + isoparams[0]=0.25*(1-xi)*(1-eta); + isoparams[1]=0.25*(1+xi)*(1-eta); + isoparams[2]=0.25*(1+xi)*(1+eta); + isoparams[3]=0.25*(1-xi)*(1+eta); } - if (!inside_face){ - //cout <<"Reverted to nearest neighbor " << m0 << endl; - /*--- Revert to nearest neighbor ---*/ - tmp=1E6; k=0; - for (i=0; i1) isoparams[i]=1; } - isoparams[k]=1.0; } +// tmp=0; +// for (i=0; i 1, point is ouside face, not really represented accurately ---*/ +// bool inside_face = true; +// for (i=0; i 1. or isoparams[i]<-0. ) +// inside_face = false; +// } +// if (!inside_face){ +// //cout <<"Reverted to nearest neighbor " << m0 << endl; +// /*--- Revert to nearest neighbor ---*/ +// tmp=1E6; k=0; +// for (i=0; iGetnVertex(markTarget); iVertex++) { + iPoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); + Global_Point = target_geometry->node[iPoint]->GetGlobalIndex(); nNodes = 0; for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); - if (tPoint==iPoint){ + if (tPoint==Global_Point){ nNodes++; } } } - target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - /*--- Set the appropriate amount of memory ---*/ - target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { - jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex - nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); - for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); - if (tPoint==iPoint){ - pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); - coeff = donor_geometry->vertex[markDonor][jVertex]->GetDonorCoeff(iTarget); - target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,coeff); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); - donorindex++; + if (nNodes>0){ + /*--- Set the appropriate amount of memory ---*/ + target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + /*--- Find the coefficient info from the donor geometry --- */ + donorindex=0; + for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex + nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); + + for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); + if (tPoint==Global_Point){ + pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); + coeff = donor_geometry->vertex[markDonor][jVertex]->GetDonorCoeff(iTarget); + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,coeff); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); + donorindex++; + } } } } diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index dc39bdf0646..60110ee8cac 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1159,28 +1159,28 @@ void CDriver::Interface_Preprocessing(CTransfer ***transfer_container, CInterpol #endif /*--- Coupling between zones (limited to two zones at the moment) ---*/ - for (donorZone = 0; donorZone < nZone; donorZone++){ + for (targetZone = 0; targetZone < nZone; targetZone++){ - /*--- Initialize donor booleans ---*/ - fluid_donor = false; structural_donor = false; - matching_mesh = config_container[donorZone]->GetMatchingMesh(); + /*--- Initialize target booleans ---*/ + fluid_target = false; structural_target = false; - /*--- Set the donor boolean: as of now, only Fluid-Structure Interaction considered ---*/ - switch (config_container[donorZone]->GetKind_Solver()) { - case EULER : case NAVIER_STOKES: case RANS: fluid_donor = true; break; - case FEM_ELASTICITY: structural_donor = true; break; - } + /*--- Set the target boolean: as of now, only Fluid-Structure Interaction considered ---*/ + switch (config_container[targetZone]->GetKind_Solver()) { + case EULER : case NAVIER_STOKES: case RANS: fluid_target = true; break; + case FEM_ELASTICITY: structural_target = true; break; + } - for (targetZone = 0; targetZone < nZone; targetZone++){ + for (donorZone = 0; donorZone < nZone; donorZone++){ + /*--- Initialize donor booleans ---*/ + fluid_donor = false; structural_donor = false; + matching_mesh = config_container[donorZone]->GetMatchingMesh(); - /*--- Initialize donor booleans ---*/ - fluid_target = false; structural_target = false; + /*--- Set the donor boolean: as of now, only Fluid-Structure Interaction considered ---*/ + switch (config_container[donorZone]->GetKind_Solver()) { + case EULER : case NAVIER_STOKES: case RANS: fluid_donor = true; break; + case FEM_ELASTICITY: structural_donor = true; break; + } - /*--- Set the target boolean: as of now, only Fluid-Structure Interaction considered ---*/ - switch (config_container[targetZone]->GetKind_Solver()) { - case EULER : case NAVIER_STOKES: case RANS: fluid_target = true; break; - case FEM_ELASTICITY: structural_target = true; break; - } /*--- Retrieve the number of conservative variables (for problems not involving structural analysis ---*/ if (!structural_donor && !structural_target){ @@ -1194,10 +1194,10 @@ void CDriver::Interface_Preprocessing(CTransfer ***transfer_container, CInterpol /*--- Interface conditions are only defined between different zones ---*/ if (donorZone != targetZone){ - if (rank == MASTER_NODE) cout << "From zone " << donorZone << " to zone " << targetZone << ": " << endl; + if (rank == MASTER_NODE) cout << "From zone " << donorZone << " to zone " << targetZone << ": "; /*--- Match Zones ---*/ - if (rank == MASTER_NODE) cout << "Setting coupling "; + if (rank == MASTER_NODE) cout << "Setting coupling "<GetKindInterpolation()){ - interpolator_container[donorZone][targetZone] = new CMirror(geometry_container, config_container, donorZone, targetZone); - if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; - } - else{ + /*--- If FSI problem and using isoparametric routine---*/ + if (targetZone>0 && structural_target && config_container[donorZone]->GetKindInterpolation()==ISOPARAMETRIC){ + interpolator_container[donorZone][targetZone] = new CMirror(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using a mirror approach: matching coefficients from opposite mesh." << endl; + } + else{ switch (config_container[donorZone]->GetKindInterpolation()){ case NEAREST_NEIGHBOR: interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, donorZone, targetZone); @@ -1223,7 +1223,7 @@ void CDriver::Interface_Preprocessing(CTransfer ***transfer_container, CInterpol if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; break; } - } + } } /*--- Initialize the appropriate transfer strategy ---*/ @@ -1252,7 +1252,6 @@ void CDriver::Interface_Preprocessing(CTransfer ***transfer_container, CInterpol } - } diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index c9d196dcbaa..1d4eea80d5e 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -969,7 +969,7 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - cout << "Target Point " << Point_Target; + cout << "Target Point " << target_geometry->node[Point_Target]->GetGlobalIndex(); /*--- If this processor owns the node ---*/ if (target_geometry->node[Point_Target]->GetDomain()){ From f8642ccdce62b6a51eca3bc52c867da8b0b466a2 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sun, 20 Dec 2015 13:59:09 -0800 Subject: [PATCH 135/269] added option for user to control whether isoparametric coeffs are recalcuated on each mesh or mirrored from (structure->fluid) to (fluid->structure), which is needed for consitent and conservative method (thus the option is called consistconserve). --- Common/include/option_structure.hpp | 6 +++-- SU2_CFD/src/driver_structure.cpp | 34 +++++++++++++++++------------ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index aebfaaeddda..e7b6433d23a 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -283,12 +283,14 @@ static const map MatComp_Map = CCreateMap Interpolator_Map = CCreateMap ("NEAREST_NEIGHBOR", NEAREST_NEIGHBOR) -("ISOPARAMETRIC", ISOPARAMETRIC); +("ISOPARAMETRIC", ISOPARAMETRIC) +("CONSISTCONSERVE", CONSISTCONSERVE); /*! diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 60110ee8cac..3239a9adffd 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1207,22 +1207,28 @@ void CDriver::Interface_Preprocessing(CTransfer ***transfer_container, CInterpol } /*--- Else: interpolate ---*/ else { - /*--- If FSI problem and using isoparametric routine---*/ - if (targetZone>0 && structural_target && config_container[donorZone]->GetKindInterpolation()==ISOPARAMETRIC){ - interpolator_container[donorZone][targetZone] = new CMirror(geometry_container, config_container, donorZone, targetZone); - if (rank == MASTER_NODE) cout << "using a mirror approach: matching coefficients from opposite mesh." << endl; - } - else{ - switch (config_container[donorZone]->GetKindInterpolation()){ - case NEAREST_NEIGHBOR: - interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, donorZone, targetZone); - if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; - break; - case ISOPARAMETRIC: + switch (config_container[donorZone]->GetKindInterpolation()){ + case NEAREST_NEIGHBOR: + interpolator_container[donorZone][targetZone] = new CNearestNeighbor(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using a nearest-neighbor approach." << endl; + break; + case ISOPARAMETRIC: + interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; + break; + case CONSISTCONSERVE: + if (targetZone>0 && structural_target){ + interpolator_container[donorZone][targetZone] = new CMirror(geometry_container, config_container, donorZone, targetZone); + if (rank == MASTER_NODE) cout << "using a mirror approach: matching coefficients from opposite mesh." << endl; + } + else{ interpolator_container[donorZone][targetZone] = new CIsoparametric(geometry_container, config_container, donorZone, targetZone); if (rank == MASTER_NODE) cout << "using an isoparametric approach." << endl; - break; - } + } + if (targetZone==0 && structural_target){ + if (rank == MASTER_NODE) cout << "Consistent and conservative interpolation assumes the structure model mesh is evaluated second. Somehow this has not happened. The isoparametric coefficients will be calculated for both meshes, and are not guaranteed to be consistent." << endl; + } + break; } } From 3d8e784ab7ceab06c6c656ded66c31bb77fc656c Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 21 Dec 2015 12:38:08 -0800 Subject: [PATCH 136/269] updates to isoparametric method --- Common/src/interpolation_structure.cpp | 139 ++++++------------------- 1 file changed, 32 insertions(+), 107 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index e394b118888..d12f6c2c35a 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -272,8 +272,6 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ dist += pow(Coord_j[iDim]-Coord_i[iDim],2.0); } -// if (((dist < mindist) && (iProcessor != rank)) || -// ((dist < mindist) && (iProcessor == rank) && (Point_Donor != Point_Target))) { if (dist < mindist) { mindist = dist; pProcessor = iProcessor; pGlobalPoint = Global_Point_Donor; } @@ -507,42 +505,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ /*--- Store info ---*/ donor_elem = temp_donor; - // Debugging check - /* - cout <<"debug check" <vertex[markTarget][iVertex]->GetCoord(); - for (iDim=0; iDimelem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); - } - else{ - inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(donorindex); - } - Coord_j = donor_geometry->node[jPoint]->GetCoord(); - - cout <<" isoparam: " << myCoeff[donorindex] <<" Coord: "; - for (iDim=0; iDimnode[iNearestNode]->GetCoord(); - - for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(donor_elem); // in 2D is nearest neighbor target_geometry->vertex[markTarget][iVertex]->SetDonorFace(iFace); // in 2D is the edge target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); @@ -727,78 +689,41 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, } /*--- Isoparametric coefficients have been calculated. Run checks to eliminate outside-element issues ---*/ -// su2double tol = 1e-13; // hardcoded tolerance -// /*--- Check 0: normalize to 1: corrects for points not in face---*/ - if (nDonor==4){ - su2double xi, eta; - xi = (1.0-isoparams[0]/isoparams[1])/(1.0+isoparams[0]/isoparams[1]); - eta = 1- isoparams[0]*4/(1-xi); - if (xi>1.0) xi=1.0; - if (xi<-1.0) xi=-1.0; - if (eta>1.0) eta=1.0; - if (eta<-1.0) eta=-1.0; - isoparams[0]=0.25*(1-xi)*(1-eta); - isoparams[1]=0.25*(1+xi)*(1-eta); - isoparams[2]=0.25*(1+xi)*(1+eta); - isoparams[3]=0.25*(1-xi)*(1+eta); - } - if (nDonor==3){ - for (i=1; i< nDonor; i++){ - if (isoparams[i]<0) isoparams[i]=0; - if (isoparams[i]>1) isoparams[i]=1; + if (nDonor==4){ + su2double xi, eta; + xi = (1.0-isoparams[0]/isoparams[1])/(1.0+isoparams[0]/isoparams[1]); + eta = 1- isoparams[0]*4/(1-xi); + if (xi>1.0) xi=1.0; + if (xi<-1.0) xi=-1.0; + if (eta>1.0) eta=1.0; + if (eta<-1.0) eta=-1.0; + isoparams[0]=0.25*(1-xi)*(1-eta); + isoparams[1]=0.25*(1+xi)*(1-eta); + isoparams[2]=0.25*(1+xi)*(1+eta); + isoparams[3]=0.25*(1-xi)*(1+eta); + } + if (nDonor<4){ + tmp = 0.0; // value for normalization + tmp2=0; // check for maximum value, to be used to id nearest neighbor if necessary + j=0; // index for maximum value + for (i=0; i< nDonor; i++){ + if (isoparams[i]>tmp2){ + j=i; + tmp2=isoparams[i]; } + if (isoparams[i]<0) isoparams[i]=0; // Eliminate negative values + if (isoparams[i]>1) isoparams[i]=1; + tmp +=isoparams[i]; } -// tmp=0; -// for (i=0; i 1, point is ouside face, not really represented accurately ---*/ -// bool inside_face = true; -// for (i=0; i 1. or isoparams[i]<-0. ) -// inside_face = false; -// } -// if (!inside_face){ -// //cout <<"Reverted to nearest neighbor " << m0 << endl; -// /*--- Revert to nearest neighbor ---*/ -// tmp=1E6; k=0; -// for (i=0; i0) + for (i=0; i< nDonor; i++) + isoparams[i]=isoparams[i]/tmp; + else{ + isoparams[j]=1.0; } - */ + } + + } From 58f559e1f6b319a5ed138a6556c922b480bcb56a Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 21 Dec 2015 16:52:56 -0800 Subject: [PATCH 137/269] isoparametric method update --- Common/src/interpolation_structure.cpp | 69 +++++++++++++------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index d12f6c2c35a..4bebb8d35af 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -339,6 +339,8 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ su2double projected_point[nDim]; su2double tmp, tmp2; + Coord = new su2double[nDim]; + /*--- Number of markers on the interface ---*/ nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; nMarkerDonor = config[donorZone]->GetnMarker_All(); @@ -480,7 +482,11 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ Isoparameters(myCoeff,nDim, nNodes, X, projected_point); /*--- Recalculate the dist using the isoparametric representation ---*/ dist = 0.0; - Coord = target_geometry->vertex[markTarget][iVertex]->GetCoord(); + + for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(iDim); + } + for(donorindex=0; donorindex< nNodes; donorindex++){ if (nDim==3){ jPoint = donor_geometry->elem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); @@ -504,7 +510,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ mindist = dist; /*--- Store info ---*/ donor_elem = temp_donor; - target_geometry->vertex[markTarget][iVertex]->SetDonorElem(donor_elem); // in 2D is nearest neighbor target_geometry->vertex[markTarget][iVertex]->SetDonorFace(iFace); // in 2D is the edge target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); @@ -513,18 +518,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ } } - /*--- If nDonorPoints ==0, no match was found, set nearest neighbor ---*/ - //unsigned long gpoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); - //cout <<" Nearest Neighbor for target g.i " << target_geometry->node[gpoint]->GetGlobalIndex() <<" is "<< donor_geometry->node[iNearestNode]->GetGlobalIndex() << "; d = " << mindist<< endl; - - if (target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints()==0){ - nNodes=1; - target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - donor_elem = -1; - myCoeff[0] = 1; - } - - /*--- Set the appropriate amount of memory ---*/ target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); /*--- Recal the closest face/edge ---*/ @@ -547,29 +540,19 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ jPoint = iNearestNode; // If no matching element is found, revert to Nearest Neighbor /*--- jPoint must be converted to global index ---*/ - //ivtx = donor_geometry->node[jPoint]->GetVertex(markDonor); - //donor_geometry->vertex[markDonor][ivtx]->IncrementnDonor(); - pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,myCoeff[donorindex]); target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); - /* From NN - target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorPoint(donorindex, pGlobalPoint); - target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); - target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(donorindex,1.0); - */ - // FOR PARALELL: //target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProc(donorindex,proc); - //cout <<" myCoeff " << myCoeff[donorindex] << " "; + } - //cout << endl; } - } - + delete [] Coord; } void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, @@ -584,13 +567,14 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, su2double eps = 1E-10; bool test[n0], testi[n0]; m=m0; n=n0; - /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ + if (nDonor>2){ + /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ /*--- Right hand side is [1, \vec{x}']'---*/ for (i=0; i1.0) xi=1.0; if (xi<-1.0) xi=-1.0; if (eta>1.0) eta=1.0; @@ -701,8 +701,10 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, isoparams[1]=0.25*(1+xi)*(1-eta); isoparams[2]=0.25*(1+xi)*(1+eta); isoparams[3]=0.25*(1-xi)*(1+eta); + } if (nDonor<4){ + tmp = 0.0; // value for normalization tmp2=0; // check for maximum value, to be used to id nearest neighbor if necessary j=0; // index for maximum value @@ -711,7 +713,8 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, j=i; tmp2=isoparams[i]; } - if (isoparams[i]<0) isoparams[i]=0; // Eliminate negative values + // [0,1] + if (isoparams[i]<0) isoparams[i]=0; if (isoparams[i]>1) isoparams[i]=1; tmp +=isoparams[i]; } @@ -723,8 +726,6 @@ void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, } } - - } From a94f55b8c1c565e2d046344197efe73c375181e7 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 23 Dec 2015 08:35:12 -0800 Subject: [PATCH 138/269] save point for parallelization work - 3D deformation working, serial run --- Common/src/interpolation_structure.cpp | 491 +++++++++++++++++-------- 1 file changed, 339 insertions(+), 152 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 4bebb8d35af..0811f6e2215 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -201,7 +201,6 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ #endif su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; - unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_Donor]; unsigned long *Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Donor]; su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; @@ -212,10 +211,9 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ unsigned long nBuffer_Point = MaxLocalVertex_Donor; for (iVertex = 0; iVertex < MaxLocalVertex_Donor; iVertex++) { - Buffer_Send_Point[iVertex] = 0; - Buffer_Send_GlobalPoint[iVertex] = 0; - for (iDim = 0; iDim < nDim; iDim++) - Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; + Buffer_Send_GlobalPoint[iVertex] = 0; + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; } /*--- Copy coordinates and point to the auxiliar vector --*/ @@ -223,7 +221,6 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ for (iVertexDonor = 0; iVertexDonor < nVertexDonor; iVertexDonor++) { iPointDonor = donor_geometry->vertex[markDonor][iVertexDonor]->GetNode(); if (donor_geometry->node[iPointDonor]->GetDomain()) { - Buffer_Send_Point[nLocalVertex_Donor] = iPointDonor; Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPointDonor]->GetCoord(iDim); @@ -233,14 +230,12 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ #ifdef HAVE_MPI SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++){ Buffer_Receive_Coord[iVertex] = Buffer_Send_Coord[iVertex]; } for (iVertex = 0; iVertex < nBuffer_Point; iVertex++){ - Buffer_Receive_Point[iVertex] = Buffer_Send_Point[iVertex]; Buffer_Receive_GlobalPoint[iVertex] = Buffer_Send_GlobalPoint[iVertex]; } #endif @@ -292,7 +287,6 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ } delete[] Buffer_Send_Coord; - delete[] Buffer_Send_Point; delete[] Buffer_Send_GlobalPoint; delete[] Buffer_Receive_Coord; @@ -321,30 +315,74 @@ CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(CConfig **config){ - unsigned long jPoint, iVertex, jVertex, inode, jElem, iNearestNode=0, iNearestVertex=0; - long donor_elem=0, temp_donor=0; - unsigned short iDim, donorindex; - unsigned short nDim = target_geometry->GetnDim(); + unsigned long iVertex, jVertex; + unsigned long jPoint, inode, jElem, iNearestNode=0, iNearestVertex=0; + unsigned short iDim, donorindex=0, iFace; + + unsigned short nDim = donor_geometry->GetnDim(); + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; - unsigned short markDonor=0, markTarget=0, iFace; - unsigned long pGlobalPoint = 0; + + int markDonor=0, markTarget=0; + + long donor_elem=0, temp_donor=0; unsigned int nNodes=0; /*--- Restricted to 2-zone for now ---*/ unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; + + unsigned long nVertexDonor = 0, nVertexTarget= 0; + unsigned long Point_Donor = 0, Point_Target = 0; + unsigned long Vertex_Donor = 0, Vertex_Target = 0; + + unsigned long iVertexDonor, iPointDonor = 0; + unsigned long iVertexTarget, iPointTarget = 0; + unsigned long pPoint = 0, Global_Point = 0; + unsigned long jGlobalPoint = 0, pGlobalPoint = 0; + int iProcessor, pProcessor = 0; + + unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; + unsigned long nLocalFace_Donor = 0, nLocalFaceNodes_Donor=0; + unsigned long nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; + unsigned long nGlobalFace_Donor = 0,nGlobalFaceNodes_Donor = 0, MaxFace_Donor=0, MaxFaceNodes_Donor=0; + + unsigned long Global_Point_Donor; + int Donor_Processor; + su2double dist = 0.0, mindist=1E6, *Coord, *Coord_i, *Coord_j; su2double myCoeff[10]; // Maximum # of donor points su2double *Normal; su2double projected_point[nDim]; su2double tmp, tmp2; + su2double storeCoeff[10]; + unsigned long storeGlobal[10]; + int storeProc[10]; + su2double *Buffer_Send_Coord, *Buffer_Send_Normal,*Buffer_Receive_Coord , *Buffer_Receive_Normal; + unsigned long *Buffer_Send_GlobalPoint, *Buffer_Receive_GlobalPoint; + unsigned long nBuffer_Coord, nBuffer_Point; + unsigned long *Buffer_Send_FaceIndex, *Buffer_Receive_FaceIndex, + *Buffer_Send_FaceNodes, *Buffer_Receive_FaceNodes; + unsigned long *Buffer_Send_nVertex_Donor, *Buffer_Receive_nVertex_Donor, + *Buffer_Send_nFace_Donor, *Buffer_Receive_nFace_Donor, + *Buffer_Send_nFaceNodes_Donor, *Buffer_Receive_nFaceNodes_Donor; + + + int rank = MASTER_NODE; + int nProcessor = SINGLE_NODE; Coord = new su2double[nDim]; - /*--- Number of markers on the interface ---*/ - nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; - nMarkerDonor = config[donorZone]->GetnMarker_All(); - nMarkerTarget = config[targetZone]->GetnMarker_All(); +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); +#endif + + /*--- Number of markers on the FSI interface ---*/ + nMarkerInt = (config[donorZone]->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + /*--- For the number of markers on the interface... ---*/ for (iMarkerInt=1; iMarkerInt <= nMarkerInt; iMarkerInt++){ @@ -353,11 +391,17 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ * -Find nearest element and allocate enough space in the aero grid donor point info * -set the transfer coefficient values */ - + nVertexDonor = 0; + nVertexTarget = 0; /*--- ... the marker markDonor ... ---*/ for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt)){ markDonor=iMarkerDonor; + nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + break; + } + else{ + nVertexDonor = 0; } } @@ -365,92 +409,255 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt)){ markTarget=iMarkerTarget; + nVertexTarget = 0; + break; + } + else{ + nVertexTarget = 0; } } - /*--- Loop over the vertices on the target Marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { - Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); - /*--- Find the Nearest Neighbor Point ---*/ - // Parallel: replace w/ loop over processors, recieve Coord_j - mindist=1E6; - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { - jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex - Coord_j = donor_geometry->node[jPoint]->GetCoord(); - dist = 0.0; - for (iDim=0; iDimnode[jPoint]->GetGlobalIndex()<vertex[markDonor][iVertex]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()){ + nLocalVertex_Donor++; + /*--- On Donor geometry also communicate face info ---*/ + if (nDim==3){ + for (jElem=0; jElemnode[iPointDonor]->GetnElem(); jElem++){ + temp_donor = donor_geometry->node[iPointDonor]->GetElem(jElem); + nFaces = donor_geometry->elem[temp_donor]->GetnFaces(); + for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); + for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); + jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + } + if (face_on_marker ){ + nLocalFace_Donor++; + nLocalFaceNodes_Donor+=nNodes; + } + } + } } - } - //cout <<" dist, gi " << mindist << " " << donor_geometry->node[iNearestNode]->GetGlobalIndex()<node[iPointDonor]->GetnPoint(); + for (iFace=0; iFacenode[iPointDonor]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + } + if (face_on_marker ){ + nLocalFace_Donor++; + nLocalFaceNodes_Donor+=nNodes; + } + } + } + } + } + Buffer_Send_nVertex_Donor[0] = nLocalVertex_Donor; + Buffer_Send_nFace_Donor[0] = nLocalFace_Donor; + Buffer_Send_nFaceNodes_Donor[0] = nLocalFaceNodes_Donor; - for (jElem=0; jElemnode[iNearestNode]->GetnElem(); jElem++){ + /*--- Send Interface vertex information --*/ +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&nLocalVertex_Donor, &nGlobalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFace_Donor, &nGlobalFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &nGlobalFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalVertex_Donor, &MaxLocalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &MaxFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFace_Donor, &MaxFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nFace_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + MaxFace_Donor++; +#else + nGlobalVertex_Donor = nLocalVertex_Donor; + MaxLocalVertex_Donor = nLocalVertex_Donor; + nGlobalFace_Donor = nLocalFace_Donor; + nGlobalFaceNodes_Donor = nLocalFaceNodes_Donor; + MaxFace_Donor = nLocalFace_Donor+1; + MaxFaceNodes_Donor = nLocalFaceNodes_Donor; + Buffer_Receive_nVertex_Donor[0] = Buffer_Send_nVertex_Donor[0]; + Buffer_Receive_nFace_Donor[0] = Buffer_Send_nFace_Donor[0]; + Buffer_Receive_nFaceNodes_Donor[0] = Buffer_Send_nFaceNodes_Donor[0]; - /*--- Loop over all the faces of this element to find ones on the interface boundary - * If a face is on markDonor, then find the dist and check against previous to find closest - * face. ---*/ - if (nDim==3){ - temp_donor = donor_geometry->node[iNearestNode]->GetElem(jElem); - nFaces = donor_geometry->elem[temp_donor]->GetnFaces(); - } - else{ - temp_donor = iNearestNode; - nFaces = donor_geometry->node[iNearestNode]->GetnPoint(); +#endif + Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; + Buffer_Send_Normal = new su2double [MaxLocalVertex_Donor*nDim]; + Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Donor]; + + Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; + Buffer_Receive_Normal = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; + Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Donor]; + + nBuffer_Coord = MaxLocalVertex_Donor*nDim; + nBuffer_Point = MaxLocalVertex_Donor; + + Buffer_Send_FaceIndex = new unsigned long [MaxFace_Donor]; + Buffer_Receive_FaceIndex = new unsigned long[MaxFace_Donor*nProcessor]; + Buffer_Send_FaceNodes = new unsigned long [MaxFaceNodes_Donor]; + Buffer_Receive_FaceNodes = new unsigned long [MaxFaceNodes_Donor*nProcessor]; + + for (iVertex = 0; iVertex < MaxLocalVertex_Donor; iVertex++) { + Buffer_Send_GlobalPoint[iVertex] = 0; + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; + Buffer_Send_Normal[iVertex*nDim+iDim] = 0.0; + } + } + Buffer_Send_FaceIndex[0]=rank*MaxFace_Donor; + /*--- Copy coordinates and point to the auxiliar vector --*/ + nLocalVertex_Donor = 0; + nLocalFace_Donor=0; + nLocalFaceNodes_Donor=0; + for (iVertexDonor = 0; iVertexDonor < nVertexDonor; iVertexDonor++) { + iPointDonor = donor_geometry->vertex[markDonor][iVertexDonor]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()) { + Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); + Normal = donor_geometry->vertex[markDonor][iVertexDonor]->GetNormal(); + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPointDonor]->GetCoord(iDim); + Buffer_Send_Normal[nLocalVertex_Donor*nDim+iDim] = Normal[iDim]; } - /*--- Loop over faces (edges) attached to iNearestNode/vertex ---*/ - for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); - /*-- Check if on marker of interface---*/ - for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); - jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); - face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + nLocalVertex_Donor++; + + if (nDim==3){ + for (jElem=0; jElemnode[iPointDonor]->GetnElem(); jElem++){ + temp_donor = donor_geometry->node[iPointDonor]->GetElem(jElem); + nFaces = donor_geometry->elem[temp_donor]->GetnFaces(); + /*-- Loop over all faces on this element and find out how many are on the marker --*/ + for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); + for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); + jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + } + if (face_on_marker ){ + //nLocalFaceNodes_Donor=0; + for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); + jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + jVertex = donor_geometry->node[jPoint]->GetVertex(markDonor); + Buffer_Send_FaceNodes[nLocalFaceNodes_Donor]=rank*MaxFaceNodes_Donor+jVertex; + nLocalFaceNodes_Donor++; + } + // index pointing to where this face's nodes start in the FaceNodes array + Buffer_Send_FaceIndex[nLocalFace_Donor+1] = MaxFaceNodes_Donor*rank+nLocalFaceNodes_Donor; + nLocalFace_Donor++; + } } } - else{ - /*-- 2D: 'face' is an edge connected to the nearest node ---*/ - nNodes = 2; // edges have two nodes + } + else{ + /*--- in 2D we use the edges --- */ + nNodes=2; + nFaces = donor_geometry->node[iPointDonor]->GetnPoint(); + for (iFace=0; iFacenode[iNearestNode]->GetEdge(iFace); + inode = donor_geometry->node[iPointDonor]->GetEdge(iFace); jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); } + if (face_on_marker ){ + + //nLocalFaceNodes_Donor=0; + for (unsigned int ifacenode=0; ifacenodenode[iPointDonor]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); + jVertex = donor_geometry->node[jPoint]->GetVertex(markDonor); + Buffer_Send_FaceNodes[nLocalFaceNodes_Donor]=rank*MaxFaceNodes_Donor+jVertex; + nLocalFaceNodes_Donor++; + } + Buffer_Send_FaceIndex[nLocalFace_Donor+1] = MaxFaceNodes_Donor*rank+nLocalFaceNodes_Donor; + nLocalFace_Donor++; + } } + } + } + } + //Buffer_Send_FaceIndex[nLocalFace_Donor+1] = MaxFaceNodes_Donor*rank+nLocalFaceNodes_Donor; +#ifdef HAVE_MPI + SU2_MPI::Allgather(Buffer_Send_Normal, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Normal, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + + SU2_MPI::Allgather(Buffer_Send_FaceNodes, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceNodes, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + +#else + for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++){ + Buffer_Receive_Coord[iVertex] = Buffer_Send_Coord[iVertex]; + Buffer_Receive_Normal[iVertex] = Buffer_Send_Normal[iVertex]; + } + for (iVertex = 0; iVertex < nBuffer_Point; iVertex++){ + Buffer_Receive_GlobalPoint[iVertex] = Buffer_Send_GlobalPoint[iVertex]; + } + for (iFace=0; iFacevertex[markTarget][iVertex]->GetCoord(); - /*--- if iFace is part of markDonor, calculate the isoparametric coefficients ---*/ - if (face_on_marker ){ - /*--- Find projected dist ---*/ - //Coord = target_geometry->vertex[markTarget][iVertex]->GetCoord(); - Normal = donor_geometry->vertex[markDonor][iNearestVertex]->GetNormal(); - Coord_j = donor_geometry->vertex[markDonor][iNearestVertex]->GetCoord(); - /*--- Project point xj onto surface --*/ + /*--- Loop over the vertices on the target Marker ---*/ + for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { + mindist=1E6; + for (unsigned short iCoeff=0; iCoeff<10; iCoeff++){ + storeCoeff[iCoeff]=0; + } + Point_Target = target_geometry->vertex[markTarget][iVertex]->GetNode(); + if (target_geometry->node[Point_Target]->GetDomain()) { + Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); + /*---Loop over the faces previously communicated/stored ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + nFaces = Buffer_Receive_nFace_Donor[iProcessor]; + for (iFace = 0; iFace< nFaces; iFace++){ + /*--- ---*/ + nNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1] - + Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; + su2double X[nNodes*nDim]; + unsigned long faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; + for (donorindex=0; donorindexelem[temp_donor]->GetFaces(iFace,donorindex); - jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); - } - else{ - inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(donorindex); - } - Coord_j = donor_geometry->node[jPoint]->GetCoord(); - for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(iDim); - } - - for(donorindex=0; donorindex< nNodes; donorindex++){ - if (nDim==3){ - jPoint = donor_geometry->elem[temp_donor]->GetNode(donor_geometry->elem[temp_donor]->GetFaces(iFace,donorindex)); - } - else{ - inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(donorindex); + for(donorindex=0; donorindex< nNodes; donorindex++){ + Coord[iDim]-=myCoeff[donorindex]*X[iDim*nNodes+donorindex]; } - Coord_j = donor_geometry->node[jPoint]->GetCoord(); - for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(iDim) << " "; + cout << endl; + for (donorindex=0; donorindex " ; + for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(donor_elem); // in 2D is nearest neighbor - target_geometry->vertex[markTarget][iVertex]->SetDonorFace(iFace); // in 2D is the edge target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); + for (donorindex=0; donorindexvertex[markTarget][iVertex]->Allocate_DonorInfo(); - /*--- Recal the closest face/edge ---*/ - iFace = target_geometry->vertex[markTarget][iVertex]->GetDonorFace(); - donor_elem = target_geometry->vertex[markTarget][iVertex]->GetDonorElem(); - - /*--- Loop over vertices of the element to set the values at the vertex ---*/ - for (donorindex=0; donorindex< target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints(); donorindex++){ - if (donor_elem!=-1){ - if (nDim==3){ - inode =donor_geometry->elem[donor_elem]->GetFaces(iFace,donorindex); - jPoint = donor_geometry->elem[donor_elem]->GetNode(inode); - } - else{ - inode = donor_geometry->node[iNearestNode]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(donorindex); - } + /*--- Set the appropriate amount of memory and fill ---*/ + target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + nNodes =target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints(); + for (donorindex=0; donorindexvertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,storeGlobal[donorindex]); + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,storeCoeff[donorindex]); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, storeProc[donorindex]); } - else - jPoint = iNearestNode; // If no matching element is found, revert to Nearest Neighbor - - /*--- jPoint must be converted to global index ---*/ - pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); - - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); - target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,myCoeff[donorindex]); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); - - // FOR PARALELL: - //target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProc(donorindex,proc); - } } + delete[] Buffer_Send_nVertex_Donor; + delete[] Buffer_Receive_nVertex_Donor; + delete[] Buffer_Send_nFace_Donor; + delete[] Buffer_Receive_nFace_Donor; + delete[] Buffer_Send_nFaceNodes_Donor; + delete[] Buffer_Receive_nFaceNodes_Donor; + // + delete[] Buffer_Send_Coord; + delete[] Buffer_Send_Normal; + delete[] Buffer_Send_GlobalPoint; + + delete[] Buffer_Receive_Coord; + delete[] Buffer_Receive_Normal; + delete[] Buffer_Receive_GlobalPoint; + + delete[] Buffer_Send_FaceIndex; + delete[] Buffer_Receive_FaceIndex; + delete[] Buffer_Send_FaceNodes; + delete[] Buffer_Receive_FaceNodes; } delete [] Coord; } From b1f51f25c0adf3d31d7ae272479e3de037cab209 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 1 Jan 2016 20:59:56 -0800 Subject: [PATCH 139/269] parallelized isoparametric interpolation, moved transfer of information that is common between interpolation into methods in parent class (transfer of number of vertices/processor, coordinates of vertices, etc) --- Common/include/interpolation_structure.hpp | 128 ++-- Common/src/interpolation_structure.cpp | 789 +++++++++++---------- 2 files changed, 488 insertions(+), 429 deletions(-) diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 7d0d9b1f4ba..61e5ce8ac99 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -56,8 +56,34 @@ class CInterpolator { protected: unsigned int nZone; unsigned int donorZone, targetZone; - //unsigned short nVar; - //su2double ***Data; /*!\brief container for some data to be interpolated */ + + unsigned long MaxLocalVertex_Donor,/*!\brief Maximum vertices per processor*/ + nGlobalFace_Donor,/*!\brief */ + nGlobalFaceNodes_Donor,/*!\brief */ + MaxFace_Donor,/*!\brief Maximum faces per processor*/ + MaxFaceNodes_Donor;/*!\brief Maximum nodes associated with faces per processor*/ + unsigned long *Buffer_Receive_nVertex_Donor, /*!\brief Buffer to store the number of vertices per processor on the Donor domain */ + *Buffer_Receive_nFace_Donor, /*!\brief Buffer to store the number of faces per processor*/ + *Buffer_Receive_nFaceNodes_Donor,/*!\brief Buffer to store the number of nodes associated with faces per processor*/ + *Buffer_Send_nVertex_Donor,/*!\brief Buffer to send number of vertices on the local processor*/ + *Buffer_Send_nFace_Donor,/*!\brief Buffer to send number of faces on the local processor*/ + *Buffer_Send_nFaceNodes_Donor,/*!\brief Buffer to send the number of nodes assocated with faces per processor*/ + *Buffer_Receive_GlobalPoint, /*!\brief Buffer to receive global point indices*/ + *Buffer_Send_GlobalPoint,/*!\brief Buffer to send global point indices*/ + *Buffer_Send_FaceIndex,/*!\brief Buffer to send indices pointing to the node indices that define the faces*/ + *Buffer_Receive_FaceIndex,/*!\brief Buffer to receive indices pointing to the node indices that define the faces*/ + *Buffer_Send_FaceNodes,/*!\brief Buffer to send indices pointing to the location of node information in other buffers, defining faces*/ + *Buffer_Receive_FaceNodes,/*!\brief Buffer to receive indices pointing to the location of node information in other buffers, defining faces*/ + *Buffer_Send_FaceProc,/*!\brief Buffer to send processor which stores the node indicated in Buffer_Receive_FaceNodes*/ + *Buffer_Receive_FaceProc;/*!\brief Buffer to receive processor which stores the node indicated in Buffer_Receive_FaceNodes*/ + + su2double *Buffer_Send_Coord,/*!\brief Buffer to send coordinate values*/ + *Buffer_Send_Normal,/*!\brief Buffer to send normal vector values */ + *Buffer_Receive_Coord,/*!\brief Buffer to receive coordinate values*/ + *Buffer_Receive_Normal;/*!\brief Buffer to receive normal vector values*/ + + + public: CGeometry*** Geometry; /*! \brief Vector which stores n zones of geometry. */ CGeometry* donor_geometry; /*! \brief Vector which stores the donor geometry. */ @@ -70,6 +96,10 @@ class CInterpolator { /*! * \brief Constructor of the class. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] iZone - index of the donor zone + * \param[in] jZone - index of the target zone */ CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); @@ -78,54 +108,33 @@ class CInterpolator { */ virtual ~CInterpolator(void); -// /*! -// * \brief initialize the Data structure to the appropriate size. -// */ -// void InitializeData(unsigned int* Zones, unsigned short val_nVar); -// -// /*! -// * \brief interpolate Data from one mesh to another. -// * The data for zone 0 will be overwritten. transfer coefficients must be defined with Set_TransferCoeff. -// * \param[in] iZone_0 - zone to recieve interpolated data -// * \param[in] config -// */ -// void Interpolate_Data(unsigned int iZone, CConfig **config); -// -// /*! -// * \brief interpolate deformations from one mesh to another. -// * Uses information stored by the geometry class, updates values in VarCoord of iZone_0. Set_TransferCoeff must be run first. -// * \param[in] iZone_0 - zone to recieve interpolated data. -// * \param[in] config -// */ -// void Interpolate_Deformation(unsigned int iZone, CConfig **config); /*! * \brief Set up transfer matrix defining relation between two meshes - * \param[in] Zones - list of zones to set up interpolation for. This method must be overwritten in the child classes. - * \param[in] config + * \param[in] config - Definition of the particular problem. */ virtual void Set_TransferCoeff(CConfig **config); + /*! + * \brief Determine array sizes used to collect and send coordinate and global point + * information. + * \param[in] faces - boolean that determines whether or not to set face information as well + * \param[in] markDonor - Index of the boundary on the donor domain. + * \param[in] markTarget - Index of the boundary on the target domain. + * \param[in] nVertexDonor - Number of vertices on the donor boundary. + * \param[in] nDim - number of physical dimensions. + */ + void Determine_ArraySize(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim); -// /*! -// * \brief Return the value of the Data at the specified zone, point, and dimension. -// * \param[in] iZone - zone index -// * \param[in] iPoint - point index -// * \param[in[ iDim - index of the data -// */ -// su2double GetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar); -// -// /*! -// * \brief Return the pointer to the Data vector at the specified zone and point. -// */ -// su2double* GetData(unsigned int iZone, unsigned long iPoint); -// -// /*! -// * \brief Set the value of the Data at the specified zone, point, and index. -// */ -// void SetData(unsigned int iZone, unsigned long iPoint, unsigned short iVar, su2double val); - - + /*! + * \brief Collect and communicate vertex info: coord, global point, and if faces=true the normal vector + * \param[in] faces - boolean that determines whether or not to set face information as well + * \param[in] markDonor - Index of the boundary on the donor domain. + * \param[in] markTarget - Index of the boundary on the target domain. + * \param[in] nVertexDonor - Number of vertices on the donor boundary. + * \param[in] nDim - number of physical dimensions. + */ + void Collect_VertexInfo(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim); }; @@ -143,6 +152,10 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Constructor of the class. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] iZone - index of the donor zone + * \param[in] jZone - index of the target zone */ CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); @@ -153,6 +166,7 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes + * \param[in] config - Definition of the particular problem. */ void Set_TransferCoeff(CConfig **config); @@ -160,19 +174,16 @@ class CNearestNeighbor : public CInterpolator { /*! * \brief Isoparametric interpolation - */ + */ class CIsoparametric : public CInterpolator { public: /*! * \brief Constructor of the class. - * \param[in] geometry_container - * \param[in] config - config container - * \param[in] iZone - First zone - * \param[in] jZone - Second zone - * - * Data is set in geometry[targetZone] - * + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] iZone - index of the donor zone + * \param[in] jZone - index of the target zone */ CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone); @@ -183,28 +194,25 @@ class CIsoparametric : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes - * \param[in] Zones - list of zones to use for interpolation. in the order: [Recipient/Target, Donor ] - * \param[in] config - config container - * - * Data is set in geometry[targetZone] + * \param[in] config - Definition of the particular problem. */ void Set_TransferCoeff(CConfig **config); /*! * \brief Calculate the isoparametric representation of point iVertex in marker iZone_0 by nodes of element donor_elem in marker jMarker of zone iZone_1. - * \param[out] isoparams - isoparametric coefficients. Must be allocated to size nNodes ahead of time. (size> nDonors) * \param[in] iVertex - vertex index of the point being interpolated. * \param[in] nDim - the dimension of the coordinates. * \param[in] iZone_1 - zone index of the element to use for interpolation (the DONOR zone) * \param[in] donor_elem - element index of the element to use for interpolation (or global index of a point in 2D) * \param[in[ nDonorPoints - number of donor points in the element. * \param[in[ xj - point projected onto the plane of the donor element. + * \param[out] isoparams - isoparametric coefficients. Must be allocated to size nNodes ahead of time. (size> nDonors) * * If the problem is 2D, the 'face' projected onto is actually an edge; the local index * of the edge is then stored in iFace, and the global index of the node (from which the edge * is referenced) */ - void Isoparameters(su2double* isoparams,unsigned short nDim, unsigned short nDonor, su2double *X, su2double *xj); + void Isoparameters(unsigned short nDim, unsigned short nDonor, su2double *X, su2double *xj,su2double* isoparams); }; @@ -234,12 +242,8 @@ class CMirror : public CInterpolator { /*! * \brief Set up transfer matrix defining relation between two meshes - * \param[in] Zones - list of zones to use for interpolation. in the order: [Recipient/Target, Donor ] - * \param[in] config - config container - * - * Data is set in geometry[targetZone] + * \param[in] config - Definition of the particular problem. */ void Set_TransferCoeff(CConfig **config); - }; diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 0811f6e2215..2fd397e16dd 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -42,9 +42,32 @@ CInterpolator::CInterpolator(void){ donorZone = 0; targetZone = 0; + Buffer_Receive_nVertex_Donor=NULL; + Buffer_Receive_nFace_Donor=NULL; + Buffer_Receive_nFaceNodes_Donor=NULL; + Buffer_Send_nVertex_Donor=NULL; + Buffer_Send_nFace_Donor=NULL; + Buffer_Send_nFaceNodes_Donor=NULL; + Buffer_Receive_GlobalPoint=NULL; + Buffer_Send_GlobalPoint=NULL; + Buffer_Send_FaceIndex=NULL; + Buffer_Receive_FaceIndex=NULL; + Buffer_Send_FaceNodes=NULL; + Buffer_Receive_FaceNodes=NULL; + Buffer_Send_FaceProc=NULL; + Buffer_Receive_FaceProc=NULL; + + Buffer_Send_Coord=NULL; + Buffer_Send_Normal=NULL; + Buffer_Receive_Coord=NULL; + Buffer_Receive_Normal=NULL; + } -CInterpolator::~CInterpolator(void){} +CInterpolator::~CInterpolator(void){ + + //if (Buffer_Receive_nVertex_Donor!=NULL) delete[] Buffer_Receive_nVertex_Donor; +} CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone){ @@ -66,14 +89,176 @@ CInterpolator::CInterpolator(CGeometry ***geometry_container, CConfig **config, /*--- Initialize transfer coefficients between the zones ---*/ //Set_TransferCoeff(Zones,config); + //Buffer_Receive_nVertex_Donor=NULL; + } inline void CInterpolator::Set_TransferCoeff(CConfig **config) { } +void CInterpolator::Determine_ArraySize(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim){ + unsigned long nLocalVertex_Donor = 0, nLocalFaceNodes_Donor=0, nLocalFace_Donor=0; + unsigned long iVertex, iPointDonor = 0; + /* Only needed if face data is also collected */ + unsigned long inode, donor_elem, jElem, jPoint; + unsigned short iDim, iDonor; + unsigned int nFaces=0, iFace, nNodes=0; + bool face_on_marker = true; + int rank = MASTER_NODE; + int nProcessor = SINGLE_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); +#endif + + for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { + iPointDonor = donor_geometry->vertex[markDonor][iVertex]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()){ + nLocalVertex_Donor++; + if (faces){ + /*--- On Donor geometry also communicate face info ---*/ + if (nDim==3){ + for (jElem=0; jElemnode[iPointDonor]->GetnElem(); jElem++){ + donor_elem = donor_geometry->node[iPointDonor]->GetElem(jElem); + nFaces = donor_geometry->elem[donor_elem]->GetnFaces(); + for (iFace=0; iFaceelem[donor_elem]->GetnNodesFace(iFace); + for (iDonor=0; iDonorelem[donor_elem]->GetFaces(iFace, iDonor); + jPoint = donor_geometry->elem[donor_elem]->GetNode(inode); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + } + if (face_on_marker ){ + nLocalFace_Donor++; + nLocalFaceNodes_Donor+=nNodes; + } + } + } + } + else{ + /*--- in 2D we use the edges --- */ + nNodes=2; + nFaces = donor_geometry->node[iPointDonor]->GetnPoint(); + for (iFace=0; iFacenode[iPointDonor]->GetEdge(iFace); + jPoint = donor_geometry->edge[inode]->GetNode(iDonor); + face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + } + if (face_on_marker ){ + nLocalFace_Donor++; + nLocalFaceNodes_Donor+=nNodes; + } + } + } + } + } + } + + Buffer_Send_nVertex_Donor[0] = nLocalVertex_Donor; + if (faces){ + Buffer_Send_nFace_Donor[0] = nLocalFace_Donor; + Buffer_Send_nFaceNodes_Donor[0] = nLocalFaceNodes_Donor; + } + + /*--- Send Interface vertex information --*/ +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&nLocalVertex_Donor, &MaxLocalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nVertex_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + if (faces){ + SU2_MPI::Allreduce(&nLocalFace_Donor, &nGlobalFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFace_Donor, &MaxFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &nGlobalFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &MaxFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nFace_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + MaxFace_Donor++; + } +#else + MaxLocalVertex_Donor = nLocalVertex_Donor; + Buffer_Receive_nVertex_Donor[0] = Buffer_Send_nVertex_Donor[0]; + if (faces){ + nGlobalFace_Donor = nLocalFace_Donor; + nGlobalFaceNodes_Donor = nLocalFaceNodes_Donor; + MaxFaceNodes_Donor = nLocalFaceNodes_Donor; + MaxFace_Donor = nLocalFace_Donor+1; + Buffer_Receive_nFace_Donor[0] = Buffer_Send_nFace_Donor[0]; + Buffer_Receive_nFaceNodes_Donor[0] = Buffer_Send_nFaceNodes_Donor[0]; + } +#endif + +} + +void CInterpolator::Collect_VertexInfo(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim){ + unsigned long nLocalVertex_Donor = 0, nLocalFaceNodes_Donor=0; + unsigned long iVertex, iPointDonor = 0, iVertexDonor, nBuffer_Coord, nBuffer_Point; + unsigned short iDim; + /* Only needed if face data is also collected */ + su2double *Normal; + int rank = MASTER_NODE; + int nProcessor = SINGLE_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); +#endif + + + for (iVertex = 0; iVertex < MaxLocalVertex_Donor; iVertex++) { + Buffer_Send_GlobalPoint[iVertex] = 0; + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; + if (faces) + Buffer_Send_Normal[iVertex*nDim+iDim] = 0.0; + } + } + + /*--- Copy coordinates and point to the auxiliar vector --*/ + nLocalVertex_Donor = 0; + + for (iVertexDonor = 0; iVertexDonor < nVertexDonor; iVertexDonor++) { + iPointDonor = donor_geometry->vertex[markDonor][iVertexDonor]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()) { + Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPointDonor]->GetCoord(iDim); + + if (faces){ + Normal = donor_geometry->vertex[markDonor][iVertexDonor]->GetNormal(); + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Normal[nLocalVertex_Donor*nDim+iDim] = Normal[iDim]; + } + nLocalVertex_Donor++; + } + } + nBuffer_Coord = MaxLocalVertex_Donor*nDim; + nBuffer_Point = MaxLocalVertex_Donor; + +#ifdef HAVE_MPI + SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + if (faces){ + SU2_MPI::Allgather(Buffer_Send_Normal, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Normal, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); + } +#else + for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++) + Buffer_Receive_Coord[iVertex] = Buffer_Send_Coord[iVertex]; + + for (iVertex = 0; iVertex < nBuffer_Point; iVertex++) + Buffer_Receive_GlobalPoint[iVertex] = Buffer_Send_GlobalPoint[iVertex]; + + if (faces){ + for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++) + Buffer_Receive_Normal[iVertex] = Buffer_Send_Normal[iVertex]; + } +#endif +} -CNearestNeighbor::CNearestNeighbor(void): CInterpolator(){ } /* Nearest Neighbor Interpolator */ +CNearestNeighbor::CNearestNeighbor(void): CInterpolator(){ } + CNearestNeighbor::CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ /*--- Initialize transfer coefficients between the zones ---*/ @@ -103,12 +288,9 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ unsigned long jGlobalPoint = 0, pGlobalPoint = 0; int iProcessor, pProcessor = 0; - unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; - unsigned long nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; - - unsigned long Global_Point_Donor; int Donor_Processor; - unsigned short int donorindex = 0; + unsigned short int iDonor = 0; + unsigned long nLocalVertex_Donor = 0, nLocalFaceNodes_Donor=0, nLocalFace_Donor=0, Global_Point_Donor; /*--- Number of markers on the FSI interface ---*/ nMarkerInt = (config[donorZone]->GetMarker_n_FSIinterface())/2; @@ -125,6 +307,8 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); #endif + Buffer_Receive_nVertex_Donor = new unsigned long [nProcessor]; + // For the markers on the interface for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { @@ -166,79 +350,20 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ } } - unsigned long *Buffer_Send_nVertex_Donor = new unsigned long [1]; - unsigned long *Buffer_Receive_nVertex_Donor = new unsigned long [nProcessor]; - - unsigned long *Buffer_Send_nVertex_Target = new unsigned long [1]; - unsigned long *Buffer_Receive_nVertex_Target = new unsigned long [nProcessor]; - - nLocalVertex_Donor = 0; - for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { - iPointDonor = donor_geometry->vertex[markDonor][iVertex]->GetNode(); - if (donor_geometry->node[iPointDonor]->GetDomain()) nLocalVertex_Donor++; - } - - nLocalVertex_Target = 0; - for (iVertex = 0; iVertex < nVertexTarget; iVertex++) { - iPointTarget = target_geometry->vertex[markTarget][iVertex]->GetNode(); - if (target_geometry->node[iPointTarget]->GetDomain()) nLocalVertex_Target++; - } - - Buffer_Send_nVertex_Donor[0] = nLocalVertex_Donor; - Buffer_Send_nVertex_Target[0] = nLocalVertex_Target; - - /*--- Send Interface vertex information --*/ -#ifdef HAVE_MPI - SU2_MPI::Allreduce(&nLocalVertex_Donor, &nGlobalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&nLocalVertex_Donor, &MaxLocalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_nVertex_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_nVertex_Target, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Target, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); -#else - nGlobalVertex_Donor = nLocalVertex_Donor; - MaxLocalVertex_Donor = nLocalVertex_Donor; - Buffer_Receive_nVertex_Donor[0] = Buffer_Send_nVertex_Donor[0]; - Buffer_Receive_nVertex_Target[0] = Buffer_Send_nVertex_Target[0]; -#endif - - su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; - unsigned long *Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Donor]; - - su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; - unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_Donor]; - unsigned long *Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Donor]; + Buffer_Send_nVertex_Donor = new unsigned long [1]; + Buffer_Receive_nVertex_Donor = new unsigned long [nProcessor]; - unsigned long nBuffer_Coord = MaxLocalVertex_Donor*nDim; - unsigned long nBuffer_Point = MaxLocalVertex_Donor; + /* Sets MaxLocalVertex_Donor, Buffer_Receive_nVertex_Donor */ + Determine_ArraySize(false, markDonor,markTarget,nVertexDonor,nDim); - for (iVertex = 0; iVertex < MaxLocalVertex_Donor; iVertex++) { - Buffer_Send_GlobalPoint[iVertex] = 0; - for (iDim = 0; iDim < nDim; iDim++) - Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; - } + Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; + Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Donor]; - /*--- Copy coordinates and point to the auxiliar vector --*/ - nLocalVertex_Donor = 0; - for (iVertexDonor = 0; iVertexDonor < nVertexDonor; iVertexDonor++) { - iPointDonor = donor_geometry->vertex[markDonor][iVertexDonor]->GetNode(); - if (donor_geometry->node[iPointDonor]->GetDomain()) { - Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); - for (iDim = 0; iDim < nDim; iDim++) - Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPointDonor]->GetCoord(iDim); - nLocalVertex_Donor++; - } - } + Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; + Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Donor]; -#ifdef HAVE_MPI - SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); -#else - for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++){ - Buffer_Receive_Coord[iVertex] = Buffer_Send_Coord[iVertex]; - } - for (iVertex = 0; iVertex < nBuffer_Point; iVertex++){ - Buffer_Receive_GlobalPoint[iVertex] = Buffer_Send_GlobalPoint[iVertex]; - } -#endif + /*-- Colllect coordinates, global points, and normal vectors ---*/ + Collect_VertexInfo(false, markDonor,markTarget,nVertexDonor,nDim); /*--- Compute the closest point to a Near-Field boundary point ---*/ maxdist = 0.0; @@ -258,7 +383,6 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- Loop over all the boundaries to find the pair ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ for (jVertex = 0; jVertex < Buffer_Receive_nVertex_Donor[iProcessor]; jVertex++) { - Point_Donor = Buffer_Receive_Point[iProcessor*MaxLocalVertex_Donor+jVertex]; Global_Point_Donor = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Donor+jVertex]; /*--- Compute the dist ---*/ @@ -277,12 +401,12 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- Store the value of the pair ---*/ maxdist = max(maxdist, mindist); - target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorPoint(donorindex, pGlobalPoint); - target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(donorindex, pProcessor); - target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(donorindex,1.0); + target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorPoint(iDonor, pGlobalPoint); + target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(iDonor, pProcessor); + target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(iDonor,1.0); // unsigned long gpoint = target_geometry->vertex[markTarget][iVertexTarget]->GetNode(); -// cout <<" Nearest Neighbor for target g.i " << target_geometry->node[gpoint]->GetGlobalIndex() <<" is "<< pGlobalPoint << "; d = " << mindist<< endl; + //cout <<" Nearest Neighbor for target g.i " << target_geometry->node[Point_Target]->GetGlobalIndex() <<" is "<< pGlobalPoint << "; d = " << mindist<< endl; } } @@ -290,19 +414,17 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ delete[] Buffer_Send_GlobalPoint; delete[] Buffer_Receive_Coord; - delete[] Buffer_Receive_Point; delete[] Buffer_Receive_GlobalPoint; delete[] Buffer_Send_nVertex_Donor; delete[] Buffer_Receive_nVertex_Donor; - delete[] Buffer_Send_nVertex_Target; - delete[] Buffer_Receive_nVertex_Target; } } + CIsoparametric::CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone) : CInterpolator(geometry_container, config, iZone, jZone){ /*--- Initialize transfer coefficients between the zones ---*/ @@ -316,8 +438,8 @@ CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long iVertex, jVertex; - unsigned long jPoint, inode, jElem, iNearestNode=0, iNearestVertex=0; - unsigned short iDim, donorindex=0, iFace; + unsigned long jPoint, dPoint, inode, jElem, nElem; + unsigned short iDim, iDonor=0, iFace; unsigned short nDim = donor_geometry->GetnDim(); @@ -344,8 +466,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; unsigned long nLocalFace_Donor = 0, nLocalFaceNodes_Donor=0; - unsigned long nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; - unsigned long nGlobalFace_Donor = 0,nGlobalFaceNodes_Donor = 0, MaxFace_Donor=0, MaxFaceNodes_Donor=0; unsigned long Global_Point_Donor; int Donor_Processor; @@ -359,19 +479,12 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long storeGlobal[10]; int storeProc[10]; - su2double *Buffer_Send_Coord, *Buffer_Send_Normal,*Buffer_Receive_Coord , *Buffer_Receive_Normal; - unsigned long *Buffer_Send_GlobalPoint, *Buffer_Receive_GlobalPoint; unsigned long nBuffer_Coord, nBuffer_Point; - unsigned long *Buffer_Send_FaceIndex, *Buffer_Receive_FaceIndex, - *Buffer_Send_FaceNodes, *Buffer_Receive_FaceNodes; - unsigned long *Buffer_Send_nVertex_Donor, *Buffer_Receive_nVertex_Donor, - *Buffer_Send_nFace_Donor, *Buffer_Receive_nFace_Donor, - *Buffer_Send_nFaceNodes_Donor, *Buffer_Receive_nFaceNodes_Donor; - int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; Coord = new su2double[nDim]; + Normal = new su2double[nDim]; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -418,88 +531,16 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ } Buffer_Send_nVertex_Donor = new unsigned long [1]; + Buffer_Send_nFace_Donor= new unsigned long [1]; + Buffer_Send_nFaceNodes_Donor= new unsigned long [1]; + Buffer_Receive_nVertex_Donor = new unsigned long [nProcessor]; - Buffer_Send_nFace_Donor = new unsigned long [1]; Buffer_Receive_nFace_Donor = new unsigned long [nProcessor]; - Buffer_Send_nFaceNodes_Donor = new unsigned long [1]; Buffer_Receive_nFaceNodes_Donor = new unsigned long [nProcessor]; - nLocalVertex_Donor = 0; - nLocalFaceNodes_Donor=0; - nLocalFace_Donor=0; - for (iVertex = 0; iVertex < nVertexDonor; iVertex++) { - iPointDonor = donor_geometry->vertex[markDonor][iVertex]->GetNode(); - if (donor_geometry->node[iPointDonor]->GetDomain()){ - nLocalVertex_Donor++; - /*--- On Donor geometry also communicate face info ---*/ - if (nDim==3){ - for (jElem=0; jElemnode[iPointDonor]->GetnElem(); jElem++){ - temp_donor = donor_geometry->node[iPointDonor]->GetElem(jElem); - nFaces = donor_geometry->elem[temp_donor]->GetnFaces(); - for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); - for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); - jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); - face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); - } - if (face_on_marker ){ - nLocalFace_Donor++; - nLocalFaceNodes_Donor+=nNodes; - } - } - } - } - else{ - /*--- in 2D we use the edges --- */ - nNodes=2; - nFaces = donor_geometry->node[iPointDonor]->GetnPoint(); - for (iFace=0; iFacenode[iPointDonor]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); - face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); - } - if (face_on_marker ){ - nLocalFace_Donor++; - nLocalFaceNodes_Donor+=nNodes; - } - } - } - } - } - Buffer_Send_nVertex_Donor[0] = nLocalVertex_Donor; - Buffer_Send_nFace_Donor[0] = nLocalFace_Donor; - Buffer_Send_nFaceNodes_Donor[0] = nLocalFaceNodes_Donor; - + /* Sets MaxLocalVertex_Donor, Buffer_Receive_nVertex_Donor */ + Determine_ArraySize(true, markDonor,markTarget,nVertexDonor,nDim); - /*--- Send Interface vertex information --*/ -#ifdef HAVE_MPI - SU2_MPI::Allreduce(&nLocalVertex_Donor, &nGlobalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&nLocalFace_Donor, &nGlobalFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &nGlobalFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&nLocalVertex_Donor, &MaxLocalVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &MaxFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&nLocalFace_Donor, &MaxFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_nVertex_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nVertex_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_nFace_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - MaxFace_Donor++; -#else - nGlobalVertex_Donor = nLocalVertex_Donor; - MaxLocalVertex_Donor = nLocalVertex_Donor; - nGlobalFace_Donor = nLocalFace_Donor; - nGlobalFaceNodes_Donor = nLocalFaceNodes_Donor; - MaxFace_Donor = nLocalFace_Donor+1; - MaxFaceNodes_Donor = nLocalFaceNodes_Donor; - Buffer_Receive_nVertex_Donor[0] = Buffer_Send_nVertex_Donor[0]; - Buffer_Receive_nFace_Donor[0] = Buffer_Send_nFace_Donor[0]; - Buffer_Receive_nFaceNodes_Donor[0] = Buffer_Send_nFaceNodes_Donor[0]; - -#endif Buffer_Send_Coord = new su2double [MaxLocalVertex_Donor*nDim]; Buffer_Send_Normal = new su2double [MaxLocalVertex_Donor*nDim]; Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Donor]; @@ -511,118 +552,126 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ nBuffer_Coord = MaxLocalVertex_Donor*nDim; nBuffer_Point = MaxLocalVertex_Donor; - Buffer_Send_FaceIndex = new unsigned long [MaxFace_Donor]; - Buffer_Receive_FaceIndex = new unsigned long[MaxFace_Donor*nProcessor]; - Buffer_Send_FaceNodes = new unsigned long [MaxFaceNodes_Donor]; - Buffer_Receive_FaceNodes = new unsigned long [MaxFaceNodes_Donor*nProcessor]; + /*-- Colllect coordinates, global points, and normal vectors ---*/ + Collect_VertexInfo(true, markDonor,markTarget,nVertexDonor,nDim); + + Buffer_Send_FaceIndex = new unsigned long[MaxFace_Donor]; + Buffer_Send_FaceNodes = new unsigned long[MaxFaceNodes_Donor]; + Buffer_Send_FaceProc = new unsigned long[MaxFaceNodes_Donor]; + + Buffer_Receive_FaceIndex= new unsigned long[MaxFace_Donor*nProcessor]; + Buffer_Receive_FaceNodes= new unsigned long[MaxFaceNodes_Donor*nProcessor]; + Buffer_Receive_FaceProc = new unsigned long[MaxFaceNodes_Donor*nProcessor]; - for (iVertex = 0; iVertex < MaxLocalVertex_Donor; iVertex++) { - Buffer_Send_GlobalPoint[iVertex] = 0; - for (iDim = 0; iDim < nDim; iDim++){ - Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; - Buffer_Send_Normal[iVertex*nDim+iDim] = 0.0; - } - } - Buffer_Send_FaceIndex[0]=rank*MaxFace_Donor; - /*--- Copy coordinates and point to the auxiliar vector --*/ - nLocalVertex_Donor = 0; nLocalFace_Donor=0; nLocalFaceNodes_Donor=0; + + /*--- Collect Face info ---*/ + for (iVertex=0; iVertexvertex[markDonor][iVertexDonor]->GetNode(); + if (donor_geometry->node[iPointDonor]->GetDomain()) { - Buffer_Send_GlobalPoint[nLocalVertex_Donor] = donor_geometry->node[iPointDonor]->GetGlobalIndex(); - Normal = donor_geometry->vertex[markDonor][iVertexDonor]->GetNormal(); - for (iDim = 0; iDim < nDim; iDim++){ - Buffer_Send_Coord[nLocalVertex_Donor*nDim+iDim] = donor_geometry->node[iPointDonor]->GetCoord(iDim); - Buffer_Send_Normal[nLocalVertex_Donor*nDim+iDim] = Normal[iDim]; - } - nLocalVertex_Donor++; - if (nDim==3){ - for (jElem=0; jElemnode[iPointDonor]->GetnElem(); jElem++){ + if (nDim==3) nElem = donor_geometry->node[iPointDonor]->GetnElem(); + else nElem =donor_geometry->node[iPointDonor]->GetnPoint(); + + for (jElem=0; jElem < nElem; jElem++){ + if (nDim==3){ temp_donor = donor_geometry->node[iPointDonor]->GetElem(jElem); nFaces = donor_geometry->elem[temp_donor]->GetnFaces(); - /*-- Loop over all faces on this element and find out how many are on the marker --*/ for (iFace=0; iFaceelem[temp_donor]->GetnNodesFace(iFace); - for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); - jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); - face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + for (iDonor=0; iDonorelem[temp_donor]->GetFaces(iFace, iDonor); + dPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + face_on_marker = (face_on_marker and (donor_geometry->node[dPoint]->GetVertex(markDonor) !=-1)); } + if (face_on_marker ){ - //nLocalFaceNodes_Donor=0; - for (unsigned int ifacenode=0; ifacenodeelem[temp_donor]->GetFaces(iFace, ifacenode); - jPoint = donor_geometry->elem[temp_donor]->GetNode(inode); - jVertex = donor_geometry->node[jPoint]->GetVertex(markDonor); - Buffer_Send_FaceNodes[nLocalFaceNodes_Donor]=rank*MaxFaceNodes_Donor+jVertex; - nLocalFaceNodes_Donor++; + for (iDonor=0; iDonorelem[temp_donor]->GetFaces(iFace, iDonor); + dPoint = donor_geometry->elem[temp_donor]->GetNode(inode); + // Match node on the face to the correct global index + jGlobalPoint=donor_geometry->node[dPoint]->GetGlobalIndex(); + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + for (jVertex = 0; jVertex < Buffer_Receive_nVertex_Donor[iProcessor]; jVertex++) { + if (jGlobalPoint ==Buffer_Receive_GlobalPoint[MaxLocalVertex_Donor*iProcessor+jVertex]){ + Buffer_Send_FaceNodes[nLocalFaceNodes_Donor]=MaxLocalVertex_Donor*iProcessor+jVertex; + Buffer_Send_FaceProc[nLocalFaceNodes_Donor]=iProcessor; + } + } + } + nLocalFaceNodes_Donor++; // Increment total number of face-nodes / processor } - // index pointing to where this face's nodes start in the FaceNodes array - Buffer_Send_FaceIndex[nLocalFace_Donor+1] = MaxFaceNodes_Donor*rank+nLocalFaceNodes_Donor; - nLocalFace_Donor++; + /* Store the indices */ + Buffer_Send_FaceIndex[nLocalFace_Donor+1] = Buffer_Send_FaceIndex[nLocalFace_Donor]+nNodes; + nLocalFace_Donor++; // Increment number of faces / processor } } } - } - else{ - /*--- in 2D we use the edges --- */ - nNodes=2; - nFaces = donor_geometry->node[iPointDonor]->GetnPoint(); - for (iFace=0; iFacenode[iPointDonor]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); - face_on_marker = (face_on_marker and (donor_geometry->node[jPoint]->GetVertex(markDonor) !=-1)); + for (iDonor=0; iDonornode[iPointDonor]->GetEdge(jElem); + dPoint = donor_geometry->edge[inode]->GetNode(iDonor); + face_on_marker = (face_on_marker and (donor_geometry->node[dPoint]->GetVertex(markDonor) !=-1)); } if (face_on_marker ){ - - //nLocalFaceNodes_Donor=0; - for (unsigned int ifacenode=0; ifacenodenode[iPointDonor]->GetEdge(iFace); - jPoint = donor_geometry->edge[inode]->GetNode(ifacenode); - jVertex = donor_geometry->node[jPoint]->GetVertex(markDonor); - Buffer_Send_FaceNodes[nLocalFaceNodes_Donor]=rank*MaxFaceNodes_Donor+jVertex; - nLocalFaceNodes_Donor++; + for (iDonor=0; iDonornode[iPointDonor]->GetEdge(jElem); + dPoint = donor_geometry->edge[inode]->GetNode(iDonor); + // Match node on the face to the correct global index + jGlobalPoint=donor_geometry->node[dPoint]->GetGlobalIndex(); + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + for (jVertex = 0; jVertex < Buffer_Receive_nVertex_Donor[iProcessor]; jVertex++) { + if (jGlobalPoint ==Buffer_Receive_GlobalPoint[MaxLocalVertex_Donor*iProcessor+jVertex]){ + Buffer_Send_FaceNodes[nLocalFaceNodes_Donor]=MaxLocalVertex_Donor*iProcessor+jVertex; + Buffer_Send_FaceProc[nLocalFaceNodes_Donor]=iProcessor; + } + } + } + nLocalFaceNodes_Donor++; // Increment total number of face-nodes / processor } - Buffer_Send_FaceIndex[nLocalFace_Donor+1] = MaxFaceNodes_Donor*rank+nLocalFaceNodes_Donor; - nLocalFace_Donor++; + /* Store the indices */ + Buffer_Send_FaceIndex[nLocalFace_Donor+1] = Buffer_Send_FaceIndex[nLocalFace_Donor]+nNodes; + nLocalFace_Donor++; // Increment number of faces / processor } } } } } + //Buffer_Send_FaceIndex[nLocalFace_Donor+1] = MaxFaceNodes_Donor*rank+nLocalFaceNodes_Donor; #ifdef HAVE_MPI - SU2_MPI::Allgather(Buffer_Send_Normal, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Normal, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_FaceNodes, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceNodes, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_FaceProc, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceProc, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); SU2_MPI::Allgather(Buffer_Send_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - #else - for (iVertex = 0; iVertex < nBuffer_Coord; iVertex++){ - Buffer_Receive_Coord[iVertex] = Buffer_Send_Coord[iVertex]; - Buffer_Receive_Normal[iVertex] = Buffer_Send_Normal[iVertex]; - } - for (iVertex = 0; iVertex < nBuffer_Point; iVertex++){ - Buffer_Receive_GlobalPoint[iVertex] = Buffer_Send_GlobalPoint[iVertex]; - } for (iFace=0; iFaceGetnVertex(markTarget); iVertex++) { mindist=1E6; @@ -631,28 +680,37 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ } Point_Target = target_geometry->vertex[markTarget][iVertex]->GetNode(); if (target_geometry->node[Point_Target]->GetDomain()) { + Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); /*---Loop over the faces previously communicated/stored ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + nFaces = Buffer_Receive_nFace_Donor[iProcessor]; + for (iFace = 0; iFace< nFaces; iFace++){ /*--- ---*/ + nNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1] - Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; + su2double X[nNodes*nDim]; - unsigned long faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; - for (donorindex=0; donorindexvertex[markTarget][iVertex]->GetCoord(iDim); - for(donorindex=0; donorindex< nNodes; donorindex++){ - Coord[iDim]-=myCoeff[donorindex]*X[iDim*nNodes+donorindex]; + for(iDonor=0; iDonor< nNodes; iDonor++){ + Coord[iDim]-=myCoeff[iDonor]*X[iDim*nNodes+iDonor]; } dist+=pow(Coord[iDim],2.0); } + /*--- If the dist is shorter than last closest (and nonzero nodes are on the boundary), update ---*/ if (distvertex[markTarget][iVertex]->GetCoord(iDim) << " "; - cout << endl; - for (donorindex=0; donorindex " ; - for (iDim=0; iDimvertex[markTarget][iVertex]->SetDonorElem(donor_elem); // in 2D is nearest neighbor target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - for (donorindex=0; donorindexvertex[markTarget][iVertex]->Allocate_DonorInfo(); nNodes =target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints(); - for (donorindex=0; donorindexvertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,storeGlobal[donorindex]); - target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,storeCoeff[donorindex]); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, storeProc[donorindex]); + target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); + cout <node[Point_Target]->GetGlobalIndex() << endl; + for (iDonor=0; iDonorvertex[markTarget][iVertex]->SetInterpDonorPoint(iDonor,storeGlobal[iDonor]); + cout <<" " << storeGlobal[iDonor] <<" " << storeCoeff[iDonor] <<";"; + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(iDonor,storeCoeff[iDonor]); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(iDonor, storeProc[iDonor]); } + cout << endl; } } + delete[] Buffer_Send_nVertex_Donor; - delete[] Buffer_Receive_nVertex_Donor; delete[] Buffer_Send_nFace_Donor; - delete[] Buffer_Receive_nFace_Donor; delete[] Buffer_Send_nFaceNodes_Donor; + + delete[] Buffer_Receive_nVertex_Donor; + delete[] Buffer_Receive_nFace_Donor; delete[] Buffer_Receive_nFaceNodes_Donor; - // + delete[] Buffer_Send_Coord; delete[] Buffer_Send_Normal; delete[] Buffer_Send_GlobalPoint; @@ -735,36 +787,38 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ delete[] Buffer_Receive_GlobalPoint; delete[] Buffer_Send_FaceIndex; - delete[] Buffer_Receive_FaceIndex; delete[] Buffer_Send_FaceNodes; + delete[] Buffer_Send_FaceProc; + + delete[] Buffer_Receive_FaceIndex; delete[] Buffer_Receive_FaceNodes; + delete[] Buffer_Receive_FaceProc; } delete [] Coord; + delete [] Normal; } -void CIsoparametric::Isoparameters(su2double *isoparams, unsigned short nDim, - unsigned short nDonor, su2double *X, su2double *xj){ - short m0 = nDonor, n0=nDim+1,m,n; - short i,j,k, iedge, iDim; - unsigned long jPoint, jPoint2; +void CIsoparametric::Isoparameters(unsigned short nDim, unsigned short nDonor, + su2double *X, su2double *xj, su2double *isoparams){ + short iDonor,iDim,k; // indices su2double tmp, tmp2; - su2double x[n0], x_tmp[n0]; - su2double Q[m0*m0], R[m0*m0], A[n0*m0]; - su2double x2[n0]; + su2double x[nDim+1], x_tmp[nDim+1]; + su2double Q[nDonor*nDonor], R[nDonor*nDonor], A[nDim+1*nDonor]; + su2double x2[nDim+1]; su2double eps = 1E-10; - bool test[n0], testi[n0]; - m=m0; n=n0; + bool test[nDim+1], testi[nDim+1]; + short n = nDim+1; + if (nDonor>2){ /*--- Create Matrix A: 1st row all 1's, 2nd row x coordinates, 3rd row y coordinates, etc ---*/ /*--- Right hand side is [1, \vec{x}']'---*/ - for (i=0; ieps && ieps && iDonor=0; i--){ - if (R[i*m+i]>eps) - isoparams[i]=x_tmp[i]/R[i*m+i]; + for (iDonor=n-1; iDonor>=0; iDonor--){ + if (R[iDonor*nDonor+iDonor]>eps) + isoparams[iDonor]=x_tmp[iDonor]/R[iDonor*nDonor+iDonor]; else - isoparams[i]=0; - for (j=0; jtmp2){ - j=i; - tmp2=isoparams[i]; + k=0; // index for maximum value + for (iDonor=0; iDonor< nDonor; iDonor++){ + if (isoparams[iDonor]>tmp2){ + k=iDonor; + tmp2=isoparams[iDonor]; } // [0,1] - if (isoparams[i]<0) isoparams[i]=0; - if (isoparams[i]>1) isoparams[i]=1; - tmp +=isoparams[i]; + if (isoparams[iDonor]<0) isoparams[iDonor]=0; + if (isoparams[iDonor]>1) isoparams[iDonor]=1; + tmp +=isoparams[iDonor]; } if (tmp>0) - for (i=0; i< nDonor; i++) - isoparams[i]=isoparams[i]/tmp; + for (iDonor=0; iDonor< nDonor; iDonor++) + isoparams[iDonor]=isoparams[iDonor]/tmp; else{ - isoparams[j]=1.0; + isoparams[k]=1.0; } } @@ -929,7 +984,7 @@ CMirror::~CMirror(){} void CMirror::Set_TransferCoeff(CConfig **config){ unsigned long iVertex, jVertex; unsigned long jPoint, iPoint, tPoint, nTargets; - unsigned short iDim, donorindex=0, iFace; + unsigned short iDim, iDonor=0, iFace; unsigned short nDim = donor_geometry->GetnDim(); @@ -951,7 +1006,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ int iProcessor, pProcessor = 0; unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; - unsigned long nGlobalVertex_Donor = 0, MaxLocalVertex_Donor = 0; + unsigned long MaxLocalVertex_Donor = 0; unsigned long Global_Point_Donor; int Donor_Processor; @@ -1010,7 +1065,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ /*--- Set the appropriate amount of memory ---*/ target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); /*--- Find the coefficient info from the donor geometry --- */ - donorindex=0; + iDonor=0; for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); @@ -1019,18 +1074,18 @@ void CMirror::Set_TransferCoeff(CConfig **config){ tPoint = donor_geometry->vertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); if (tPoint==Global_Point){ pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(donorindex,pGlobalPoint); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(iDonor,pGlobalPoint); coeff = donor_geometry->vertex[markDonor][jVertex]->GetDonorCoeff(iTarget); - target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(donorindex,coeff); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(donorindex, MASTER_NODE); - donorindex++; + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(iDonor,coeff); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(iDonor, MASTER_NODE); + iDonor++; } } } } // FOR PARALELL: - //target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProc(donorindex,proc); - //cout <<" myCoeff " << myCoeff[donorindex] << " "; + //target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProc(iDonor,proc); + //cout <<" myCoeff " << myCoeff[iDonor] << " "; //cout << endl; } From 034c5928283821f2829c0eea7a5d758443302835 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Sat, 2 Jan 2016 15:10:07 +0000 Subject: [PATCH 140/269] FSI: BGS improvements for restart purposes (II) --- Common/include/grid_movement_structure.hpp | 14 ++++++++++++ Common/include/grid_movement_structure.inl | 4 ++++ Common/src/grid_movement_structure.cpp | 6 ++++++ SU2_CFD/src/iteration_structure.cpp | 11 +++++++++- SU2_CFD/src/solver_fem_elasticity.cpp | 25 ++++++++++++++++++++++ 5 files changed, 59 insertions(+), 1 deletion(-) diff --git a/Common/include/grid_movement_structure.hpp b/Common/include/grid_movement_structure.hpp index ef87eba9ee1..ba56b59a3d6 100644 --- a/Common/include/grid_movement_structure.hpp +++ b/Common/include/grid_movement_structure.hpp @@ -748,6 +748,8 @@ class CVolumetricMovement : public CGridMovement { unsigned long nPoint; /*!< \brief Number of points. */ unsigned long nPointDomain; /*!< \brief Number of points in the domain. */ + unsigned long nIterMesh; /*!< \brief Number of iterations in the mesh update. +*/ + CSysMatrix StiffMatrix; /*!< \brief Matrix to store the point-to-point stiffness. */ CSysVector LinSysSol; CSysVector LinSysRes; @@ -1037,6 +1039,18 @@ class CVolumetricMovement : public CGridMovement { */ su2double Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22); + + /*! + * \brief Store the number of iterations when moving the mesh. + * \param[in] val_nIterMesh - Number of iterations. + */ + void Set_nIterMesh(unsigned long val_nIterMesh); + + /*! + * \brief Retrieve the number of iterations when moving the mesh. + * \param[out] Number of iterations. + */ + unsigned long Get_nIterMesh(void); }; /*! diff --git a/Common/include/grid_movement_structure.inl b/Common/include/grid_movement_structure.inl index a7394517513..457cff303a2 100644 --- a/Common/include/grid_movement_structure.inl +++ b/Common/include/grid_movement_structure.inl @@ -211,3 +211,7 @@ inline su2double CFreeFormDefBox::Determinant_3x3(su2double A00, su2double A01, inline su2double CVolumetricMovement::Determinant_3x3(su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22) { return A00*(A11*A22-A12*A21) - A01*(A10*A22-A12*A20) + A02*(A10*A21-A11*A20); } + +inline void CVolumetricMovement::Set_nIterMesh(unsigned long val_nIterMesh) { nIterMesh = val_nIterMesh; } + +inline unsigned long CVolumetricMovement::Get_nIterMesh() { return nIterMesh; } diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index ffaae6129bc..c681cf58f7e 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -48,6 +48,8 @@ CVolumetricMovement::CVolumetricMovement(CGeometry *geometry, CConfig *config) : nPoint = geometry->GetnPoint(); nPointDomain = geometry->GetnPointDomain(); + nIterMesh = 0; + /*--- Initialize matrix, solution, and r.h.s. structures for the linear solver. ---*/ config->SetKind_Linear_Solver_Prec(LU_SGS); @@ -286,6 +288,10 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co MinVolume = Check_Grid(geometry); + /*--- Set number of iterations in the mesh update. ---*/ + + Set_nIterMesh(Tot_Iter); + if (rank == MASTER_NODE) { cout << "Non-linear iter.: " << iNonlinear_Iter+1 << "/" << Nonlinear_Iter << ". Linear iter.: " << Tot_Iter << ". "; diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index a0cbdd0d992..4b76eae3bed 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -2223,7 +2223,9 @@ void SetGrid_Movement(CGeometry **geometry_container, CSurfaceMovement *surface_ unsigned short iDim, iMGlevel, nMGlevels = config_container->GetnMGLevels(); unsigned short Kind_Grid_Movement = config_container->GetKind_GridMovement(iZone); + unsigned long nIterMesh; unsigned long iPoint; + bool stat_mesh = true; bool adjoint = config_container->GetAdjoint(); bool time_spectral = (config_container->GetUnsteady_Simulation() == TIME_SPECTRAL); @@ -2544,11 +2546,18 @@ void SetGrid_Movement(CGeometry **geometry_container, CSurfaceMovement *surface_ grid_movement->SetVolume_Deformation(geometry_container[MESH_0], config_container, true); - if (!adjoint) { + nIterMesh = grid_movement->Get_nIterMesh(); + stat_mesh = (nIterMesh == 0); + + if (!adjoint && !stat_mesh) { if (rank == MASTER_NODE) cout << "Computing grid velocities by finite differencing." << endl; geometry_container[MESH_0]->SetGridVelocity(config_container, ExtIter); } + else if (stat_mesh){ + if (rank == MASTER_NODE) + cout << "The mesh is up-to-date. Using previously stored grid velocities." << endl; + } /*--- Update the multigrid structure after moving the finest grid, including computing the grid velocities on the coarser levels. ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index e82261ba631..d1b7b4c6e54 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2113,7 +2113,17 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) } TimeRes_Aux.SetBlock(iPoint, Residual); + if (iPoint == 15){ + cout << "-------------------------------NODE 15: Residual -----------------------------------------" << endl; + cout << "a_dt: " << a_dt[0] << " , " << a_dt[2] << " , " << a_dt[3] << endl; + cout << "Solution time n: " << node[iPoint]->GetSolution_time_n(0) << " , " << node[iPoint]->GetSolution_time_n(1) << endl; + cout << "Solution: " << node[iPoint]->GetSolution(0) << " , " << node[iPoint]->GetSolution(1) << endl; + cout << "Velocity time n: " << node[iPoint]->GetSolution_Vel_time_n(0) << " , " << node[iPoint]->GetSolution_Vel_time_n(1) << endl; + cout << "Accel time n: " << node[iPoint]->GetSolution_Accel_time_n(0) << " , " << node[iPoint]->GetSolution_Accel_time_n(1) << endl; + + } } + } /*--- Once computed, compute M*TimeRes_Aux ---*/ @@ -2124,6 +2134,13 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- TODO: Do I have to scale this one? I don't think so... ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); LinSysRes.AddBlock(iPoint, Res_Time_Cont); + + if (iPoint == 15){ + cout << "-------------------------------NODE 15: -----------------------------------------" << endl; + cout << "Res_Time_Cont: " << Res_Time_Cont[0] << " , " << Res_Time_Cont[1] << endl; + cout << "LinSysRes: " << LinSysRes.GetBlock(iPoint,0) << " , " << LinSysRes.GetBlock(iPoint,0) << endl; + } + /*--- External surface load contribution ---*/ if (incremental_load){ for (iVar = 0; iVar < nVar; iVar++){ @@ -2135,6 +2152,8 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add FSI contribution ---*/ if (fsi) { /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ @@ -2147,6 +2166,12 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); } LinSysRes.AddBlock(iPoint, Res_FSI_Cont); + + if (iPoint == 15){ + cout << "-------------------------------NODE 15: -----------------------------------------" << endl; + cout << "Res_FSI_Cont: " << Res_FSI_Cont[0] << " , " << Res_FSI_Cont[1] << endl; + cout << "LinSysRes: " << LinSysRes.GetBlock(iPoint,0) << " , " << LinSysRes.GetBlock(iPoint,0) << endl; + } } } } From 89f3c1037eef85ec57af8dcd29df5bae2dfdd460 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 2 Jan 2016 10:08:27 -0800 Subject: [PATCH 141/269] mirror interpolation (for consistconserve) parallelized --- Common/src/interpolation_structure.cpp | 245 ++++++++++++++++++------- 1 file changed, 179 insertions(+), 66 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 2fd397e16dd..a44636f2b83 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -468,6 +468,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long nLocalFace_Donor = 0, nLocalFaceNodes_Donor=0; unsigned long Global_Point_Donor; + unsigned long faceindex; int Donor_Processor; su2double dist = 0.0, mindist=1E6, *Coord, *Coord_i, *Coord_j; @@ -549,9 +550,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ Buffer_Receive_Normal = new su2double [nProcessor*MaxLocalVertex_Donor*nDim]; Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Donor]; - nBuffer_Coord = MaxLocalVertex_Donor*nDim; - nBuffer_Point = MaxLocalVertex_Donor; - /*-- Colllect coordinates, global points, and normal vectors ---*/ Collect_VertexInfo(true, markDonor,markTarget,nVertexDonor,nDim); @@ -663,12 +661,12 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ SU2_MPI::Allgather(Buffer_Send_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else for (iFace=0; iFaceGetnDim(); + unsigned long jPoint, iPoint, tPoint, nTargets; + unsigned short iDonor=0, iFace=0, iTarget=0; - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; - unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; - - int markDonor=0, markTarget=0; + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; - long donor_elem=0, temp_donor=0; - unsigned int nNodes=0; - /*--- Restricted to 2-zone for now ---*/ - unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' - bool face_on_marker=true; + int markDonor=0, markTarget=0; - unsigned long iVertexDonor, iPointDonor = 0; - unsigned long iVertexTarget, iPointTarget = 0; - unsigned long pPoint = 0, Global_Point = 0; - unsigned long jGlobalPoint = 0, pGlobalPoint = 0; - int iProcessor, pProcessor = 0; + long donor_elem=0, temp_donor=0; + unsigned int nNodes=0, iNodes=0; + /*--- Restricted to 2-zone for now ---*/ + unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' + bool face_on_marker=true; - unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; - unsigned long MaxLocalVertex_Donor = 0; + unsigned long iVertexDonor, Point_Donor = 0; + unsigned long iVertexTarget, iPointTarget = 0; + unsigned long pPoint = 0, Global_Point = 0; + unsigned long jGlobalPoint = 0, pGlobalPoint = 0; + int iProcessor, pProcessor = 0; - unsigned long Global_Point_Donor; - int Donor_Processor; + unsigned long nLocalVertex_Donor = 0; + unsigned long MaxLocalVertex_Donor = 0; + unsigned long nLocalFace_Donor = 0, nLocalFaceNodes_Donor=0; - int rank = MASTER_NODE; - int nProcessor = SINGLE_NODE; + unsigned long Global_Point_Donor; + unsigned long faceindex; + int Donor_Processor; - su2double coeff; + int rank = MASTER_NODE; + int nProcessor = SINGLE_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); +#endif + su2double *Buffer_Send_Coeff, *Buffer_Receive_Coeff; + su2double coeff; /*--- Number of markers on the interface ---*/ nMarkerInt = (config[targetZone]->GetMarker_n_FSIinterface())/2; @@ -1042,53 +1044,164 @@ void CMirror::Set_TransferCoeff(CConfig **config){ } } + /*-- Collect the number of donor nodes: re-use 'Face' containers --*/ + nLocalFace_Donor=0; + nLocalFaceNodes_Donor=0; + for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + Point_Donor =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex + + if (donor_geometry->node[Point_Donor]->GetDomain()) { + nNodes = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); + nLocalFaceNodes_Donor+=nNodes; + nLocalFace_Donor++; + } + } + Buffer_Send_nFace_Donor= new unsigned long [1]; + Buffer_Send_nFaceNodes_Donor= new unsigned long [1]; + + Buffer_Receive_nFace_Donor = new unsigned long [nProcessor]; + Buffer_Receive_nFaceNodes_Donor = new unsigned long [nProcessor]; + + Buffer_Send_nFace_Donor[0] = nLocalFace_Donor; + Buffer_Send_nFaceNodes_Donor[0] = nLocalFaceNodes_Donor; + + /*--- Send Interface vertex information --*/ +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&nLocalFaceNodes_Donor, &MaxFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&nLocalFace_Donor, &MaxFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nFace_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFace_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, Buffer_Receive_nFaceNodes_Donor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + MaxFace_Donor++; +#else + nGlobalFace_Donor = nLocalFace_Donor; + nGlobalFaceNodes_Donor = nLocalFaceNodes_Donor; + MaxFaceNodes_Donor = nLocalFaceNodes_Donor; + MaxFace_Donor = nLocalFace_Donor+1; + Buffer_Receive_nFace_Donor[0] = Buffer_Send_nFace_Donor[0]; + Buffer_Receive_nFaceNodes_Donor[0] = Buffer_Send_nFaceNodes_Donor[0]; +#endif + + /*-- Send donor info --*/ + Buffer_Send_FaceIndex = new unsigned long[MaxFace_Donor]; + Buffer_Send_FaceNodes = new unsigned long[MaxFaceNodes_Donor]; + //Buffer_Send_FaceProc = new unsigned long[MaxFaceNodes_Donor]; + Buffer_Send_GlobalPoint = new unsigned long[MaxFaceNodes_Donor]; + Buffer_Send_Coeff = new su2double[MaxFaceNodes_Donor]; + + Buffer_Receive_FaceIndex= new unsigned long[MaxFace_Donor*nProcessor]; + Buffer_Receive_FaceNodes= new unsigned long[MaxFaceNodes_Donor*nProcessor]; + //Buffer_Receive_FaceProc = new unsigned long[MaxFaceNodes_Donor*nProcessor]; + Buffer_Receive_GlobalPoint = new unsigned long[MaxFaceNodes_Donor*nProcessor]; + Buffer_Receive_Coeff = new su2double[MaxFaceNodes_Donor*nProcessor]; + + for (iVertex=0; iVertexGetnVertex(markDonor); jVertex++) { + + Point_Donor =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex + if (donor_geometry->node[Point_Donor]->GetDomain()) { + nNodes = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); + for (iDonor=0; iDonornode[Point_Donor]->GetGlobalIndex(); + Buffer_Send_GlobalPoint[nLocalFaceNodes_Donor] = + donor_geometry->vertex[markDonor][jVertex]->GetInterpDonorPoint(iDonor); + Buffer_Send_Coeff[nLocalFaceNodes_Donor] = + donor_geometry->vertex[markDonor][jVertex]->GetDonorCoeff(iDonor); + nLocalFaceNodes_Donor++; + } + Buffer_Send_FaceIndex[nLocalFace_Donor+1] =Buffer_Send_FaceIndex[nLocalFace_Donor]+nNodes; + nLocalFace_Donor++; + } + } + +#ifdef HAVE_MPI + SU2_MPI::Allgather(Buffer_Send_FaceNodes, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceNodes, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_GlobalPoint, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG,Buffer_Receive_GlobalPoint, MaxFaceNodes_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_Coeff, MaxFaceNodes_Donor, MPI_DOUBLE,Buffer_Receive_Coeff, MaxFaceNodes_Donor, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, Buffer_Receive_FaceIndex, MaxFace_Donor, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); +#else + for (iFace=0; iFaceGetnVertex(markTarget); iVertex++) { iPoint = target_geometry->vertex[markTarget][iVertex]->GetNode(); - Global_Point = target_geometry->node[iPoint]->GetGlobalIndex(); - nNodes = 0; - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { - jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex - nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); - for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); - if (tPoint==Global_Point){ - nNodes++; + if (target_geometry->node[iPoint]->GetDomain()) { + Global_Point = target_geometry->node[iPoint]->GetGlobalIndex(); + nNodes = 0; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + for (iFace = 0; iFace < Buffer_Receive_nFace_Donor[iProcessor]; iFace++) { + faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; // first index of this face + iNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1]- faceindex; + for (iTarget=0; iTargetvertex[markTarget][iVertex]->SetnDonorPoints(nNodes); - if (nNodes>0){ - /*--- Set the appropriate amount of memory ---*/ + target_geometry->vertex[markTarget][iVertex]->SetnDonorPoints(nNodes); target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); - /*--- Find the coefficient info from the donor geometry --- */ - iDonor=0; - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { - jPoint =donor_geometry->vertex[markDonor][jVertex]->GetNode(); // Local index of jVertex - nTargets = donor_geometry->vertex[markDonor][jVertex]->GetnDonorPoints(); - - for (unsigned short iTarget=0; iTargetvertex[markDonor][jVertex]->GetInterpDonorPoint(iTarget); - if (tPoint==Global_Point){ - pGlobalPoint = donor_geometry->node[jPoint]->GetGlobalIndex(); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(iDonor,pGlobalPoint); - coeff = donor_geometry->vertex[markDonor][jVertex]->GetDonorCoeff(iTarget); - target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(iDonor,coeff); - target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(iDonor, MASTER_NODE); - iDonor++; + + iDonor = 0; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + for (iFace = 0; iFace < Buffer_Receive_nFace_Donor[iProcessor]; iFace++) { + + faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; // first index of this face + iNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1]- faceindex; + for (iTarget=0; iTargetvertex[markTarget][iVertex]->SetInterpDonorPoint(iDonor,pGlobalPoint); + target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(iDonor,coeff); + target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(iDonor, iProcessor); + cout <vertex[markTarget][iVertex]->SetInterpDonorProc(iDonor,proc); - //cout <<" myCoeff " << myCoeff[iDonor] << " "; - //cout << endl; } + delete[] Buffer_Send_nFace_Donor; + delete[] Buffer_Send_nFaceNodes_Donor; - } + delete[] Buffer_Receive_nFace_Donor; + delete[] Buffer_Receive_nFaceNodes_Donor; + delete[] Buffer_Send_FaceIndex; + delete[] Buffer_Send_FaceNodes; + delete[] Buffer_Send_GlobalPoint; + delete[] Buffer_Send_Coeff; + + delete[] Buffer_Receive_FaceIndex; + delete[] Buffer_Receive_FaceNodes; + delete[] Buffer_Receive_GlobalPoint; + delete[] Buffer_Receive_Coeff; + + } } From 2d99f8b1e49b5fc80da567fd4798cbdde4b22cfb Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 2 Jan 2016 11:22:03 -0800 Subject: [PATCH 142/269] fixes to parallel interpolation --- Common/src/interpolation_structure.cpp | 78 +++++++++++++++++++------- 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index a44636f2b83..9c6607ff85e 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -507,27 +507,40 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ */ nVertexDonor = 0; nVertexTarget = 0; + markDonor = -1; + markTarget = -1; + /*--- ... the marker markDonor ... ---*/ - for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt)){ - markDonor=iMarkerDonor; + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if (config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the identifier for the structural marker ---*/ + markDonor = iMarkerDonor; + /*--- Store the number of local points that belong to markDonor ---*/ nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); break; } - else{ + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + markDonor = -1; nVertexDonor = 0; } } - /*--- ... the marker markTarget. ---*/ - for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt)){ - markTarget=iMarkerTarget; - nVertexTarget = 0; + /*--- On the target side ---*/ + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- We have identified the identifier for the target marker ---*/ + markTarget = iMarkerTarget; + /*--- Store the number of local points that belong to markTarget ---*/ + nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); break; } - else{ + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ nVertexTarget = 0; + markTarget = -1; } } @@ -669,7 +682,8 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ Buffer_Receive_FaceProc[iVertex] = Buffer_Send_FaceProc[iVertex]; #endif - //cout <<"MaxFaceDonor = " << MaxFace_Donor <<" MaxLocalVertex_Donor = " << MaxLocalVertex_Donor << " MaxFaceNodes_Donor " << MaxFaceNodes_Donor << endl; + cout <<"MaxFaceDonor = " << MaxFace_Donor <<" MaxLocalVertex_Donor = " << MaxLocalVertex_Donor << " MaxFaceNodes_Donor " << MaxFaceNodes_Donor << endl; + cout <GetnVertex(markTarget); iVertex++) { mindist=1E6; @@ -677,8 +691,9 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ storeCoeff[iCoeff]=0; } Point_Target = target_geometry->vertex[markTarget][iVertex]->GetNode(); + cout << "GlobalIndex " << target_geometry->node[Point_Target]->GetGlobalIndex() << " Boundary " << iMarkerInt << endl; if (target_geometry->node[Point_Target]->GetDomain()) { - + cout <<" on domain " << markTarget<< " rank " << rank << endl; Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); /*---Loop over the faces previously communicated/stored ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ @@ -995,6 +1010,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; + unsigned long nVertexDonor = 0, nVertexTarget= 0; unsigned long iVertexDonor, Point_Donor = 0; unsigned long iVertexTarget, iPointTarget = 0; unsigned long pPoint = 0, Global_Point = 0; @@ -1029,18 +1045,38 @@ void CMirror::Set_TransferCoeff(CConfig **config){ * -Find nearest element and allocate enough space in the aero grid donor point info * -set the transfer coefficient values */ - - /*--- ... the marker markDonor ... ---*/ - for (iMarkerDonor=0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - if ( config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == (iMarkerInt)){ - markDonor=iMarkerDonor; + markDonor = -1; + markTarget = -1; + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if (config[donorZone]->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the identifier for the structural marker ---*/ + markDonor = iMarkerDonor; + /*--- Store the number of local points that belong to markDonor ---*/ + nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + markDonor = -1; + nVertexDonor = 0; } } - /*--- ... the marker markTarget. ---*/ - for (iMarkerTarget=0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == (iMarkerInt)){ - markTarget=iMarkerTarget; + /*--- On the target side ---*/ + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- We have identified the identifier for the target marker ---*/ + markTarget = iMarkerTarget; + /*--- Store the number of local points that belong to markTarget ---*/ + nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nVertexTarget = 0; + markTarget = -1; } } From a6656e46ad282fd534493a90db88e2bd12abd544 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Sat, 2 Jan 2016 19:59:34 +0000 Subject: [PATCH 143/269] FSI: BGS improvements for restart purposes (III) --- SU2_CFD/src/integration_structure.cpp | 14 +++++++------- SU2_CFD/src/iteration_structure.cpp | 9 +++++++-- SU2_CFD/src/solver_fem_elasticity.cpp | 24 +----------------------- 3 files changed, 15 insertions(+), 32 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 718ee2b0367..d9c126d2dc4 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -218,13 +218,13 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, bool restart = config->GetRestart(); // Restart solution bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration - /*--- Compute Mass Matrix ---*/ - /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ - /*--- problem is linear or nonlinear ---*/ - if ((dynamic && initial_calc && first_iter) || - (dynamic && restart && initial_calc_restart && first_iter)){ - solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); - } +// /*--- Compute Mass Matrix ---*/ +// /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ +// /*--- problem is linear or nonlinear ---*/ +// if ((dynamic && initial_calc && first_iter) || +// (dynamic && restart && initial_calc_restart && first_iter)){ +// solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); +// } /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ if ((linear_analysis && initial_calc) || diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 4b76eae3bed..0cb03260f48 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1156,14 +1156,19 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, } - else if ( (nonlinear && statTime) && + else if ( + (nonlinear && statTime) && ((first_iter && initial_calc) || (restart && initial_calc_restart)) ){ - + + cout << "I'm not the one messing it up" << endl; /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ solver_container[val_iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], config_container[val_iZone], numerics_container[val_iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); + } + else{ + cout << "I'm messing it up" << endl; } } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index d1b7b4c6e54..5f844dbb763 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1023,6 +1023,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ (dynamic && restart && initial_calc_restart && first_iter)) { MassMatrix.SetValZero(); Compute_IntegrationConstants(config); + Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); } /* @@ -2113,15 +2114,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) } TimeRes_Aux.SetBlock(iPoint, Residual); - if (iPoint == 15){ - cout << "-------------------------------NODE 15: Residual -----------------------------------------" << endl; - cout << "a_dt: " << a_dt[0] << " , " << a_dt[2] << " , " << a_dt[3] << endl; - cout << "Solution time n: " << node[iPoint]->GetSolution_time_n(0) << " , " << node[iPoint]->GetSolution_time_n(1) << endl; - cout << "Solution: " << node[iPoint]->GetSolution(0) << " , " << node[iPoint]->GetSolution(1) << endl; - cout << "Velocity time n: " << node[iPoint]->GetSolution_Vel_time_n(0) << " , " << node[iPoint]->GetSolution_Vel_time_n(1) << endl; - cout << "Accel time n: " << node[iPoint]->GetSolution_Accel_time_n(0) << " , " << node[iPoint]->GetSolution_Accel_time_n(1) << endl; - - } } } @@ -2135,12 +2127,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv Res_Time_Cont = TimeRes.GetBlock(iPoint); LinSysRes.AddBlock(iPoint, Res_Time_Cont); - if (iPoint == 15){ - cout << "-------------------------------NODE 15: -----------------------------------------" << endl; - cout << "Res_Time_Cont: " << Res_Time_Cont[0] << " , " << Res_Time_Cont[1] << endl; - cout << "LinSysRes: " << LinSysRes.GetBlock(iPoint,0) << " , " << LinSysRes.GetBlock(iPoint,0) << endl; - } - /*--- External surface load contribution ---*/ if (incremental_load){ for (iVar = 0; iVar < nVar; iVar++){ @@ -2152,8 +2138,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - - /*--- Add FSI contribution ---*/ if (fsi) { /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ @@ -2166,12 +2150,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); } LinSysRes.AddBlock(iPoint, Res_FSI_Cont); - - if (iPoint == 15){ - cout << "-------------------------------NODE 15: -----------------------------------------" << endl; - cout << "Res_FSI_Cont: " << Res_FSI_Cont[0] << " , " << Res_FSI_Cont[1] << endl; - cout << "LinSysRes: " << LinSysRes.GetBlock(iPoint,0) << " , " << LinSysRes.GetBlock(iPoint,0) << endl; - } } } } From 60c8897271c937ee22243dc9b91bfa22a5fc9065 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Sat, 2 Jan 2016 20:00:52 +0000 Subject: [PATCH 144/269] FSI: BGS improvements for restart purposes (IV) --- SU2_CFD/src/iteration_structure.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 0cb03260f48..e03b26a66c5 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1160,15 +1160,11 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, (nonlinear && statTime) && ((first_iter && initial_calc) || (restart && initial_calc_restart)) ){ - - cout << "I'm not the one messing it up" << endl; + /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ solver_container[val_iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], config_container[val_iZone], numerics_container[val_iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); - } - else{ - cout << "I'm messing it up" << endl; } } From acb9edda2bb0cb1d4b698cd57eeac96b7f8e88b5 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 2 Jan 2016 12:08:44 -0800 Subject: [PATCH 145/269] removed debugging outputs --- Common/src/interpolation_structure.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 9c6607ff85e..c7326597987 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -404,8 +404,6 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorPoint(iDonor, pGlobalPoint); target_geometry->vertex[markTarget][iVertexTarget]->SetInterpDonorProcessor(iDonor, pProcessor); target_geometry->vertex[markTarget][iVertexTarget]->SetDonorCoeff(iDonor,1.0); - -// unsigned long gpoint = target_geometry->vertex[markTarget][iVertexTarget]->GetNode(); //cout <<" Nearest Neighbor for target g.i " << target_geometry->node[Point_Target]->GetGlobalIndex() <<" is "<< pGlobalPoint << "; d = " << mindist<< endl; } } @@ -682,8 +680,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ Buffer_Receive_FaceProc[iVertex] = Buffer_Send_FaceProc[iVertex]; #endif - cout <<"MaxFaceDonor = " << MaxFace_Donor <<" MaxLocalVertex_Donor = " << MaxLocalVertex_Donor << " MaxFaceNodes_Donor " << MaxFaceNodes_Donor << endl; - cout <GetnVertex(markTarget); iVertex++) { mindist=1E6; @@ -691,9 +687,9 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ storeCoeff[iCoeff]=0; } Point_Target = target_geometry->vertex[markTarget][iVertex]->GetNode(); - cout << "GlobalIndex " << target_geometry->node[Point_Target]->GetGlobalIndex() << " Boundary " << iMarkerInt << endl; + if (target_geometry->node[Point_Target]->GetDomain()) { - cout <<" on domain " << markTarget<< " rank " << rank << endl; + Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); /*---Loop over the faces previously communicated/stored ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ @@ -772,14 +768,13 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ /*--- Set the appropriate amount of memory and fill ---*/ nNodes =target_geometry->vertex[markTarget][iVertex]->GetnDonorPoints(); target_geometry->vertex[markTarget][iVertex]->Allocate_DonorInfo(); - cout <node[Point_Target]->GetGlobalIndex() << endl; + for (iDonor=0; iDonorvertex[markTarget][iVertex]->SetInterpDonorPoint(iDonor,storeGlobal[iDonor]); - cout <<" " << storeGlobal[iDonor] <<" " << storeCoeff[iDonor] <<";"; + //cout <vertex[markTarget][iVertex]->SetDonorCoeff(iDonor,storeCoeff[iDonor]); target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(iDonor, storeProc[iDonor]); } - cout << endl; } } @@ -1215,7 +1210,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ target_geometry->vertex[markTarget][iVertex]->SetInterpDonorPoint(iDonor,pGlobalPoint); target_geometry->vertex[markTarget][iVertex]->SetDonorCoeff(iDonor,coeff); target_geometry->vertex[markTarget][iVertex]->SetInterpDonorProcessor(iDonor, iProcessor); - cout < Date: Thu, 7 Jan 2016 14:14:16 +1100 Subject: [PATCH 146/269] Corrected errors in low Mach number correction --- SU2_CFD/src/solver_direct_mean.cpp | 39 ++++++++++++++++++------------ 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 644a00edfab..e997d6e4134 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -3631,26 +3631,35 @@ void CEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_contain /*--- Low-Mach number correction ---*/ if (low_mach_corr) { - su2double z, sq_vel_i = 0.0, sq_vel_j = 0.0, mach_i, mach_j, Energy_i, Energy_j, SoundSpeed_i, SoundSpeed_j; - - mach_i = sqrt(sq_vel_i)/Primitive_i[nDim+4]; - mach_j = sqrt(sq_vel_j)/Primitive_j[nDim+4]; + su2double z, velocity2_i = 0.0, velocity2_j = 0.0, mach_i, mach_j, vel_i_corr[3], vel_j_corr[3]; + + for (iDim = 0; iDim < nDim; iDim++) { + velocity2_i += Primitive_i[iDim+1]*Primitive_i[iDim+1]; + velocity2_j += Primitive_j[iDim+1]*Primitive_j[iDim+1]; + } + mach_i = sqrt(velocity2_i)/Primitive_i[nDim+4]; + mach_j = sqrt(velocity2_j)/Primitive_j[nDim+4]; z = min(max(mach_i,mach_j),1.0); - + velocity2_i = 0.0; + velocity2_j = 0.0; for (iDim = 0; iDim < nDim; iDim++) { - Primitive_i[iDim+1] = ( Primitive_i[iDim+1] + Primitive_j[iDim+1] )/2.0 + z * \ - ( Primitive_i[iDim+1] - Primitive_j[iDim+1] )/2.0; - sq_vel_i += Primitive_i[iDim+1]*Primitive_i[iDim+1]; - Primitive_j[iDim+1] = ( Primitive_i[iDim+1] + Primitive_j[iDim+1] )/2.0 + z * \ - ( Primitive_j[iDim+1] - Primitive_i[iDim+1] )/2.0; - sq_vel_j += Primitive_j[iDim+1]*Primitive_j[iDim+1]; + vel_i_corr[iDim+1] = ( Primitive_i[iDim+1] + Primitive_j[iDim+1] )/2.0 \ + + z * ( Primitive_i[iDim+1] - Primitive_j[iDim+1] )/2.0; + vel_j_corr[iDim+1] = ( Primitive_i[iDim+1] + Primitive_j[iDim+1] )/2.0 \ + + z * ( Primitive_j[iDim+1] - Primitive_i[iDim+1] )/2.0; + + velocity2_j += vel_j_corr[iDim+1]*vel_j_corr[iDim+1]; + velocity2_i += vel_i_corr[iDim+1]*vel_i_corr[iDim+1]; + + Primitive_i[iDim+1] = vel_i_corr[iDim+1]; + Primitive_j[iDim+1] = vel_j_corr[iDim+1]; } - FluidModel->SetEnergy_Prho(Primitive_i[iDim+1],Primitive_i[iDim+2]); - Primitive_i[nDim+3]= FluidModel->GetStaticEnergy() + Primitive_i[nDim+1]/Primitive_i[nDim+2] + 0.5*sq_vel_i; - FluidModel->SetEnergy_Prho(Primitive_j[iDim+1],Primitive_j[iDim+2]); - Primitive_j[nDim+3]= FluidModel->GetStaticEnergy() + Primitive_j[nDim+1]/Primitive_j[nDim+2] + 0.5*sq_vel_j; + FluidModel->SetEnergy_Prho(Primitive_i[nDim+1],Primitive_i[nDim+2]); + Primitive_i[nDim+3]= FluidModel->GetStaticEnergy() + Primitive_i[nDim+1]/Primitive_i[nDim+2] + 0.5*velocity2_i; + FluidModel->SetEnergy_Prho(Primitive_j[nDim+1],Primitive_j[nDim+2]); + Primitive_j[nDim+3]= FluidModel->GetStaticEnergy() + Primitive_j[nDim+1]/Primitive_j[nDim+2] + 0.5*velocity2_j; } /*--- Check for non-physical solutions after reconstruction. If found, From 6661758bc4492f5fce36b4211cd5cf09aa8181c7 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Mon, 11 Jan 2016 14:20:00 +0100 Subject: [PATCH 147/269] Added possiblity to have more than one value per design variable (for FFD movement in arbitrary direction). --- Common/include/config_structure.hpp | 22 +- Common/include/config_structure.inl | 6 +- Common/include/option_structure.hpp | 100 ++++ Common/src/config_structure.cpp | 13 +- Common/src/grid_movement_structure.cpp | 64 ++- SU2_DOT/include/SU2_DOT.hpp | 6 + SU2_DOT/src/SU2_DOT.cpp | 725 +++++++++++-------------- 7 files changed, 510 insertions(+), 426 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 7056d4ddb61..824f224d08d 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -114,7 +114,7 @@ class CConfig { unsigned short Dynamic_Analysis; /*!< \brief Static or dynamic structural analysis. */ unsigned short nStartUpIter; /*!< \brief Start up iterations using the fine grid. */ su2double FixAzimuthalLine; /*!< \brief Fix an azimuthal line due to misalignments of the nearfield. */ - su2double *DV_Value; /*!< \brief Previous value of the design variable. */ + su2double **DV_Value; /*!< \brief Previous value of the design variable. */ su2double LimiterCoeff; /*!< \brief Limiter coefficient */ unsigned long LimiterIter; /*!< \brief Freeze the value of the limiter after a number of iterations */ su2double SharpEdgesCoeff; /*!< \brief Coefficient to identify the limit of a sharp edge. */ @@ -289,6 +289,7 @@ class CConfig { Unst_CFL; /*!< \brief Unsteady CFL number. */ bool AddIndNeighbor; /*!< \brief Include indirect neighbor in the agglomeration process. */ unsigned short nDV; /*!< \brief Number of design variables. */ + unsigned short* nDV_Value; /*!< \brief Number of values for each design variable (might be different than 1 if we allow arbitrary movement). */ unsigned short nFFDBox; /*!< \brief Number of ffd boxes. */ unsigned short nGridMovement; /*!< \brief Number of grid movement types specified. */ unsigned short nParamDV; /*!< \brief Number of parameters of the design variable. */ @@ -847,6 +848,14 @@ class CConfig { option_map.insert(pair(name, val)); } + void addDVValueOption(const string name, unsigned short* & nDVValue_field, su2double** & valueDV, unsigned short & nDV_field, su2double** & paramDV, + unsigned short* & design_variable) { + assert(option_map.find(name) == option_map.end()); + all_options.insert(pair(name, true)); + COptionBase* val = new COptionDVValue(name, nDVValue_field, valueDV, nDV_field, paramDV, design_variable); + option_map.insert(pair(name, val)); + } + void addFFDDefOption(const string name, unsigned short & nFFD_field, su2double** & coordFFD, string* & FFDTag) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); @@ -1982,6 +1991,12 @@ class CConfig { */ unsigned short GetnDV(void); + /*! + * \brief Get the number of design variables. + * \return Number of the design variables. + */ + unsigned short GetnDV_Value(unsigned short iDV); + /*! * \brief Get the number of design variables. * \return Number of the design variables. @@ -3886,16 +3901,17 @@ class CConfig { /*! * \brief Value of the design variable step, we use this value in design problems. * \param[in] val_dv - Number of the design variable that we want to read. + * \param[in] val_value - Value of the design variable that we want to read. * \return Design variable step. */ - su2double GetDV_Value(unsigned short val_dv); + su2double GetDV_Value(unsigned short val_dv, unsigned short val_val = 0); /*! * \brief Set the value of the design variable step, we use this value in design problems. * \param[in] val_dv - Number of the design variable that we want to read. * \param[in] val - Value of the design variable. */ - void SetDV_Value(unsigned short val_dv, su2double val); + void SetDV_Value(unsigned short val_dv, unsigned short val_ind, su2double val); /*! * \brief Get information about the grid movement. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 3172851e037..bebeee79325 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -392,6 +392,8 @@ inline string CConfig::GetTagFFDBox(unsigned short val_ffd) { return TagFFDBox[v inline unsigned short CConfig::GetnDV(void) { return nDV; } +inline unsigned short CConfig::GetnDV_Value(unsigned short iDV) { return nDV_Value[iDV]; } + inline unsigned short CConfig::GetnFFDBox(void) { return nFFDBox; } inline unsigned short CConfig::GetFFD_Continuity(void) { return FFD_Continuity; } @@ -917,9 +919,9 @@ inline su2double CConfig::GetTotal_UnstTime(void) { return Total_UnstTime; } inline bool CConfig::GetEngine_Intake(void) { return Engine_Intake; } -inline su2double CConfig::GetDV_Value(unsigned short val_dv) { return DV_Value[val_dv]; } +inline su2double CConfig::GetDV_Value(unsigned short val_dv, unsigned short val_value) { return DV_Value[val_dv][val_value]; } -inline void CConfig::SetDV_Value(unsigned short val_dv, su2double val) { DV_Value[val_dv] = val; } +inline void CConfig::SetDV_Value(unsigned short val_dv, unsigned short val_ind, su2double val) { DV_Value[val_dv][val_ind] = val; } inline su2double CConfig::GetOrderMagResidual(void) { return OrderMagResidual; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 240e0a3d93d..ac693222630 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1966,6 +1966,106 @@ class COptionDVParam : public COptionBase{ } }; +class COptionDVValue : public COptionBase{ + string name; // identifier for the option + unsigned short* & nDV_Value; + su2double ** & valueDV; + unsigned short & nDV; + su2double ** & paramDV; + unsigned short* & design_variable; + +public: + COptionDVValue(string option_field_name, unsigned short* & nDVValue_field, su2double** & valueDV_field, unsigned short & nDV_field, su2double** & paramDV_field, unsigned short * & design_variable_field) : nDV_Value(nDVValue_field), valueDV(valueDV_field), nDV(nDV_field), paramDV(paramDV_field), design_variable(design_variable_field) { + this->name = option_field_name; + } + + ~COptionDVValue() {}; + + string SetValue(vector option_value) { + if ((option_value.size() == 1) && (option_value[0].compare("NONE") == 0)) { + this->nDV_Value = NULL; + return ""; + } + + if ( (this->nDV > 0) && (this->design_variable == NULL) ) { + string newstring; + newstring.append(this->name); + newstring.append(": Design_Variable array has not been allocated. Check that DV_KIND appears before DV_VALUE in configuration file."); + return newstring; + } + if ( (this->nDV > 0) && (this->paramDV == NULL) ) { + string newstring; + newstring.append(this->name); + newstring.append(": Design_Parameter array has not been allocated. Check that DV_PARAM appears before DV_VALUE in configuration file."); + return newstring; + } + + this->valueDV = new su2double*[this->nDV]; + this->nDV_Value = new unsigned short[this->nDV]; + + for (unsigned short iDV = 0; iDV < this->nDV; iDV++) { + this->valueDV[iDV] = new su2double[3]; + } + + unsigned short nValueDV = 0; + unsigned short totalnValueDV = 0; + stringstream ss; + unsigned int i = 0; + for (unsigned short iDV = 0; iDV < this->nDV; iDV++) { + switch (this->design_variable[iDV]) { + case FFD_CONTROL_POINT: + if((this->paramDV[iDV][4] == 0) && + (this->paramDV[iDV][5] == 0) && + (this->paramDV[iDV][6] == 0)) { + nValueDV = 3; + } else { + nValueDV = 1; + } + break; + case FFD_CONTROL_POINT_2D: + if((this->paramDV[iDV][3] == 0) && + (this->paramDV[iDV][4] == 0)) { + nValueDV = 2; + } else { + nValueDV = 1; + } + break; + default : + nValueDV = 1; + } + + this->nDV_Value[iDV] = nValueDV; + + totalnValueDV += nValueDV; + + for (unsigned short iValueDV = 0; iValueDV < nValueDV; iValueDV++) { + + ss << option_value[i] << " "; + + ss >> this->valueDV[iDV][iValueDV]; + + i++; + } + } + + if (i != totalnValueDV){ + string newstring; + newstring.append(this->name); + newstring.append(": a design variable in the configuration file has the wrong number of values"); + return newstring; + } + + // Need to return something... + return ""; + } + + void SetDefault() { + this->nDV_Value = 0; + this->valueDV = NULL; + // Don't mess with the Design_Variable because it's an input, not modified + } +}; + class COptionFFDDef : public COptionBase{ string name; unsigned short & nFFD; diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 63853da1013..7175d68d363 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1045,8 +1045,6 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addEnumListOption("DV_KIND", nDV, Design_Variable, Param_Map); /* DESCRIPTION: Marker of the surface to which we are going apply the shape deformation */ addStringListOption("DV_MARKER", nMarker_DV, Marker_DV); - /* DESCRIPTION: New value of the shape deformation */ - addDoubleListOption("DV_VALUE", nDV, DV_Value); /* DESCRIPTION: Parameters of the shape deformation - FFD_CONTROL_POINT_2D ( FFDBox ID, i_Ind, j_Ind, x_Disp, y_Disp ) - FFD_RADIUS_2D ( FFDBox ID ) @@ -1069,6 +1067,8 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo - FFD_CAMBER ( FFDBox ID, i_Ind, j_Ind ) - FFD_THICKNESS ( FFDBox ID, i_Ind, j_Ind ) */ addDVParamOption("DV_PARAM", nDV, ParamDV, FFDTag, Design_Variable); + /* DESCRIPTION: New value of the shape deformation */ + addDVValueOption("DV_VALUE", nDV_Value, DV_Value, nDV, ParamDV, Design_Variable); /* DESCRIPTION: Hold the grid fixed in a region */ addBoolOption("HOLD_GRID_FIXED", Hold_GridFixed, false); default_vec_6d[0] = -1E15; default_vec_6d[1] = -1E15; default_vec_6d[2] = -1E15; @@ -2845,7 +2845,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { iMarker_NRBC, iMarker_MixBound, iMarker_Outlet, iMarker_Isothermal, iMarker_HeatFlux, iMarker_EngineInflow, iMarker_EngineBleed, iMarker_EngineExhaust, iMarker_Displacement, iMarker_Load, iMarker_FlowLoad, iMarker_Neumann, iMarker_Monitoring, - iMarker_Designing, iMarker_GeoEval, iMarker_Plotting, iMarker_DV, + iMarker_Designing, iMarker_GeoEval, iMarker_Plotting, iMarker_DV, iDV_Value, iMarker_FSIinterface, iMarker_Load_Dir, iMarker_Load_Sine, iMarker_Clamped, iMarker_Moving, iMarker_Supersonic_Inlet, iMarker_Supersonic_Outlet, iMarker_ActDisk_Inlet, iMarker_ActDisk_Outlet; @@ -3166,7 +3166,12 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { if (iMarker_DV < nMarker_DV-1) cout << ", "; else cout << " <-> "; } - cout << DV_Value[iDV] << " <-> "; + + for (iDV_Value = 0; iDV_Value < nDV_Value[iDV]; iDV_Value++){ + cout << DV_Value[iDV][iDV_Value]; + if (iDV_Value != nDV_Value[iDV]-1) cout << ", "; + } + cout << " <-> "; if (Design_Variable[iDV] == FFD_SETTING) nParamDV = 0; if (Design_Variable[iDV] == SCALE) nParamDV = 0; diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 394e0991332..15dd82e57d7 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -3119,22 +3119,24 @@ void CSurfaceMovement::SetSurface_Derivative(CGeometry *geometry, CConfig *confi su2double DV_Value = 0.0; - unsigned short iDV = 0; + unsigned short iDV = 0, iDV_Value = 0; for (iDV = 0; iDV < config->GetnDV(); iDV++){ + for (iDV_Value = 0; iDV_Value < config->GetnDV_Value(iDV); iDV_Value++){ - DV_Value = config->GetDV_Value(iDV); + DV_Value = config->GetDV_Value(iDV, iDV_Value); - /*--- If value of the design variable is not 0.0 we apply the differentation. + /*--- If value of the design variable is not 0.0 we apply the differentation. * Note if multiple variables are non-zero, we end up with the sum of all the derivatives. ---*/ - if (DV_Value != 0.0){ + if (DV_Value != 0.0){ - DV_Value = 0.0; + DV_Value = 0.0; - SU2_TYPE::SetDerivative(DV_Value, 1.0); + SU2_TYPE::SetDerivative(DV_Value, 1.0); - config->SetDV_Value(iDV, DV_Value); + config->SetDV_Value(iDV, iDV_Value, DV_Value); + } } } @@ -3742,12 +3744,25 @@ void CSurfaceMovement::SetFFDCPChange_2D(CGeometry *geometry, CConfig *config, C if (design_FFDBox.compare(FFDBox->GetTag()) == 0) { /*--- Compute deformation ---*/ - - Ampl = config->GetDV_Value(iDV); - - movement[0] = config->GetParamDV(iDV, 3)*Ampl; - movement[1] = config->GetParamDV(iDV, 4)*Ampl; - movement[2] = 0.0; + + /*--- If we have only design value, than this value is the amplitude, + * otherwise we have a general movement. ---*/ + + if (config->GetnDV_Value(iDV) == 1){ + + Ampl = config->GetDV_Value(iDV); + + movement[0] = config->GetParamDV(iDV, 3)*Ampl; + movement[1] = config->GetParamDV(iDV, 4)*Ampl; + movement[2] = 0.0; + + } else { + + movement[0] = config->GetDV_Value(iDV, 0); + movement[1] = config->GetDV_Value(iDV, 1); + movement[2] = 0.0; + + } index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); index[1] = SU2_TYPE::Int(config->GetParamDV(iDV, 2)); @@ -3845,12 +3860,25 @@ void CSurfaceMovement::SetFFDCPChange(CGeometry *geometry, CConfig *config, CFre if (design_FFDBox.compare(FFDBox->GetTag()) == 0) { /*--- Compute deformation ---*/ - - Ampl = config->GetDV_Value(iDV); - movement[0] = config->GetParamDV(iDV, 4)*Ampl; - movement[1] = config->GetParamDV(iDV, 5)*Ampl; - movement[2] = config->GetParamDV(iDV, 6)*Ampl; + /*--- If we have only design value, than this value is the amplitude, + * otherwise we have a general movement. ---*/ + + if (config->GetnDV_Value(iDV) == 1) { + + Ampl = config->GetDV_Value(iDV); + + movement[0] = config->GetParamDV(iDV, 4)*Ampl; + movement[1] = config->GetParamDV(iDV, 5)*Ampl; + movement[2] = config->GetParamDV(iDV, 6)*Ampl; + + } else { + + movement[0] = config->GetDV_Value(iDV, 0); + movement[1] = config->GetDV_Value(iDV, 1); + movement[2] = config->GetDV_Value(iDV, 2); + + } index[0] = SU2_TYPE::Int(config->GetParamDV(iDV, 1)); index[1] = SU2_TYPE::Int(config->GetParamDV(iDV, 2)); diff --git a/SU2_DOT/include/SU2_DOT.hpp b/SU2_DOT/include/SU2_DOT.hpp index 535a41f2fe5..4c3c2fa7cf3 100644 --- a/SU2_DOT/include/SU2_DOT.hpp +++ b/SU2_DOT/include/SU2_DOT.hpp @@ -44,3 +44,9 @@ #include "../../Common/include/grid_movement_structure.hpp" using namespace std; + +void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file); + +void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file); + +void OutputGradient(su2double** Gradient, CConfig* config, ofstream& Gradient_file); diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 8cc99ef1b20..6af079337a5 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -34,13 +34,9 @@ int main(int argc, char *argv[]) { unsigned short iZone, nZone = SINGLE_ZONE; su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; - unsigned short iMarker, iDim, iDV, iFFDBox; - unsigned long iVertex, iPoint; - su2double delta_eps, my_Gradient, Gradient, *Normal, dS, *VarCoord, Sensitivity, - dalpha[3], deps[3], dalpha_deps; + char config_file_name[MAX_STRING_SIZE], *cstr; ofstream Gradient_file, Jacobian_file; - bool *UpdatePoint; int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -57,7 +53,6 @@ int main(int argc, char *argv[]) { CConfig **config_container = NULL; CGeometry **geometry_container = NULL; CSurfaceMovement *surface_movement = NULL; - CFreeFormDefBox** FFDBox = NULL; CVolumetricMovement *mesh_movement = NULL; /*--- Load in the number of zones and spatial dimensions in the mesh file (if no config @@ -168,11 +163,7 @@ int main(int argc, char *argv[]) { if (rank == MASTER_NODE) cout << "Setting mesh sensitivity." << endl; mesh_movement->SetVolume_Deformation(geometry_container[ZONE_0], config_container[ZONE_0], false, true); } - - /*--- Boolean controlling points to be updated ---*/ - - UpdatePoint = new bool[geometry_container[ZONE_0]->GetnPoint()]; - + /*--- Definition of the Class for surface deformation ---*/ surface_movement = new CSurfaceMovement(); @@ -181,13 +172,8 @@ int main(int argc, char *argv[]) { surface_movement->CopyBoundary(geometry_container[ZONE_0], config_container[ZONE_0]); - /*--- Definition of the FFD deformation class ---*/ - - unsigned short nFFDBox = MAX_NUMBER_FFD; - FFDBox = new CFreeFormDefBox*[nFFDBox]; - if (rank == MASTER_NODE) - cout << endl <<"---------- Start gradient evaluation using surface sensitivity ----------" << endl; + cout << endl <<"---------- Start gradient evaluation using sensitivity information ----------" << endl; /*--- Write the gradient in a external file ---*/ @@ -219,485 +205,426 @@ int main(int argc, char *argv[]) { } - /*--- For the discrete adjoint method we use AD to compute the derivatives---*/ + /*--- For the discrete projection method we use AD to compute the derivatives + * while the continuous projection uses finite differences ---*/ if (config_container[ZONE_0]->GetDiscrete_Adjoint()){ - su2double DV_Value = 0.0; + SetProjection_Discrete(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); - /*--- Start recording of operations ---*/ + }else{ - AD::StartRecording(); + SetProjection_Continuous(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); - /*--- Register design variables as input and set them to zero ---*/ + } + if (rank == MASTER_NODE) + Gradient_file.close(); + + if (size == SINGLE_NODE) + Jacobian_file.close(); + + /*--- Synchronization point after a single solver iteration. Compute the + wall clock time required. ---*/ + +#ifdef HAVE_MPI + StopTime = MPI_Wtime(); +#else + StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + UsedTime = StopTime-StartTime; + if (rank == MASTER_NODE) { + cout << "\nCompleted in " << fixed << UsedTime << " seconds on "<< size; + if (size == 1) cout << " core." << endl; else cout << " cores." << endl; + } + + /*--- Exit the solver cleanly ---*/ + + if (rank == MASTER_NODE) + cout << endl <<"------------------------- Exit Success (SU2_DOT) ------------------------" << endl << endl; + + /*--- Finalize MPI parallelization ---*/ + +#ifdef HAVE_MPI + MPI_Finalize(); +#endif + + return EXIT_SUCCESS; + +} - for (iDV = 0; iDV < config_container[ZONE_0]->GetnDV(); iDV++){ - AD::RegisterInput(DV_Value); +void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ + + unsigned short iDV, nDV, iFFDBox, nDV_Value, iMarker, iDim; + unsigned long iVertex, iPoint; + su2double delta_eps, my_Gradient, **Gradient, *Normal, dS, *VarCoord, Sensitivity, + dalpha[3], deps[3], dalpha_deps; + bool *UpdatePoint; + CFreeFormDefBox **FFDBox; - config_container[ZONE_0]->SetDV_Value(iDV, DV_Value); + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD,&rank); +#endif + + nDV = config->GetnDV(); + + /*--- Boolean controlling points to be updated ---*/ + + UpdatePoint = new bool[geometry->GetnPoint()]; + + /*--- Definition of the FFD deformation class ---*/ + + unsigned short nFFDBox = MAX_NUMBER_FFD; + FFDBox = new CFreeFormDefBox*[nFFDBox]; + + /*--- Structure to store the gradient ---*/ + + Gradient = new su2double*[nDV]; + + for (iDV = 0; iDV < nDV; iDV++){ + nDV_Value = config->GetnDV_Value(iDV); + if (nDV_Value != 1){ + cout << "The continuous projection currently only supports a fixed direction of movement for FFD points." << endl; + exit(EXIT_FAILURE); } + Gradient[iDV] = new su2double[nDV_Value]; + } - /*--- Call the surface deformation routine ---*/ + /*--- Continuous adjoint gradient computation ---*/ + if (rank == MASTER_NODE) + cout << "Evaluate functional gradient using the continuous adjoint strategy." << endl; - surface_movement->SetSurface_Deformation(geometry_container[ZONE_0], config_container[ZONE_0]); + for (iDV = 0; iDV < nDV; iDV++) { - /*--- Stop the recording --- */ + /*--- Free Form deformation based ---*/ - AD::StopRecording(); + if ((config->GetDesign_Variable(iDV) == FFD_CONTROL_POINT_2D) || + (config->GetDesign_Variable(iDV) == FFD_CAMBER_2D) || + (config->GetDesign_Variable(iDV) == FFD_THICKNESS_2D) || + (config->GetDesign_Variable(iDV) == FFD_CONTROL_POINT) || + (config->GetDesign_Variable(iDV) == FFD_DIHEDRAL_ANGLE) || + (config->GetDesign_Variable(iDV) == FFD_TWIST_ANGLE) || + (config->GetDesign_Variable(iDV) == FFD_ROTATION) || + (config->GetDesign_Variable(iDV) == FFD_CAMBER) || + (config->GetDesign_Variable(iDV) == FFD_THICKNESS) ) { - /*--- Initialize the derivatives of the output of the surface deformation routine - * with the discrete adjoints from the CFD solution ---*/ + /*--- Read the FFD information in the first iteration ---*/ - for (iMarker = 0; iMarker < config_container[ZONE_0]->GetnMarker_All(); iMarker++) { - if (config_container[ZONE_0]->GetMarker_All_DV(iMarker) == YES) { - for (iVertex = 0; iVertex < geometry_container[ZONE_0]->nVertex[iMarker]; iVertex++) { - iPoint = geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetNode(); - for (iDim = 0; iDim < geometry_container[ZONE_0]->GetnDim(); iDim++){ - SU2_TYPE::SetDerivative(geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetVarCoord()[iDim], - SU2_TYPE::GetValue(geometry_container[ZONE_0]->GetSensitivity(iPoint, iDim))); + if (iDV == 0) { - } + if (rank == MASTER_NODE) + cout << "Read the FFD information from mesh file." << endl; + + /*--- Read the FFD information from the grid file ---*/ + + surface_movement->ReadFFDInfo(geometry, config, FFDBox, config->GetMesh_FileName()); + + /*--- If the FFDBox was not defined in the input file ---*/ + if (!surface_movement->GetFFDBoxDefinition() && (rank == MASTER_NODE)) { + cout << "The input grid doesn't have the entire FFD information!" << endl; + cout << "Press any key to exit..." << endl; + cin.get(); } - } - } - /*--- Compute derivatives ---*/ + for (iFFDBox = 0; iFFDBox < surface_movement->GetnFFDBox(); iFFDBox++) { - AD::ComputeAdjoint(); + if (rank == MASTER_NODE) + cout << "Check the FFD box intersections with the solid surfaces." << endl; - for (iDV = 0; iDV < config_container[ZONE_0]->GetnDV(); iDV++){ + surface_movement->CheckFFDIntersections(geometry, config, FFDBox[iFFDBox], iFFDBox); - if (rank == MASTER_NODE) - cout << endl << "Design variable number "<< iDV <<"." << endl; + } - my_Gradient = SU2_TYPE::GetDerivative(DV_Value); -#ifdef HAVE_MPI - SU2_MPI::Allreduce(&my_Gradient, &Gradient, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -#else - Gradient = my_Gradient; -#endif - /*--- Print result to screen and file ---*/ - - if (rank == MASTER_NODE) { - switch (config_container[ZONE_0]->GetKind_ObjFunc()) { - case LIFT_COEFFICIENT : - if (iDV == 0) Gradient_file << "Lift coeff. grad. using disc. adj." << endl; - cout << "Lift coefficient gradient: "<< Gradient << "." << endl; break; - case DRAG_COEFFICIENT : - if (iDV == 0) Gradient_file << "Drag coeff. grad. using disc. adj." << endl; - cout << "Drag coefficient gradient: "<< Gradient << "." << endl; break; - case SIDEFORCE_COEFFICIENT : - if (iDV == 0) Gradient_file << "Sideforce coeff. grad. using disc. adj." << endl; - cout << "Sideforce coefficient gradient: "<< Gradient << "." << endl; break; - case INVERSE_DESIGN_PRESSURE : - if (iDV == 0) Gradient_file << "Pressure inverse design using disc. adj."<< endl; - cout << "Pressure inverse design gradient: "<< Gradient << "." << endl; break; - case INVERSE_DESIGN_HEATFLUX : - if (iDV == 0) Gradient_file << "Heat inverse design using disc. adj."<< endl; - cout << "Heat flux inverse design gradient: "<< Gradient << "." << endl; break; - case TOTAL_HEATFLUX : - if (iDV == 0) Gradient_file << "Integrated surface heat flux. using disc. adj."<< endl; - cout << "Total heat flux gradient: "<< Gradient << "." << endl; break; - case MAXIMUM_HEATFLUX : - if (iDV == 0) Gradient_file << "Integrated surface heat flux. using disc. adj."<< endl; - cout << "Maximum heat flux gradient: "<< Gradient << "." << endl; break; - case MOMENT_X_COEFFICIENT : - if (iDV == 0) Gradient_file << "Moment x coeff. grad. using disc. adj." << endl; - cout << "Moment x coefficient gradient: "<< Gradient << "." << endl; break; - case MOMENT_Y_COEFFICIENT : - if (iDV == 0) Gradient_file << "Moment y coeff. grad. using disc. adj." << endl; - cout << "Moment y coefficient gradient: "<< Gradient << "." << endl; break; - case MOMENT_Z_COEFFICIENT : - if (iDV == 0) Gradient_file << "Moment z coeff. grad. using disc. adj." << endl; - cout << "Moment z coefficient gradient: "<< Gradient << "." << endl; break; - case EFFICIENCY : - if (iDV == 0) Gradient_file << "Efficiency coeff. grad. using disc. adj." << endl; - cout << "Efficiency coefficient gradient: "<< Gradient << "." << endl; break; - case EQUIVALENT_AREA : - if (iDV == 0) Gradient_file << "Equivalent area coeff. grad. using disc. adj." << endl; - cout << "Equivalent Area coefficient gradient: "<< Gradient << "." << endl; break; - case NEARFIELD_PRESSURE : - if (iDV == 0) Gradient_file << "Near-field pressure coeff. grad. using disc. adj." << endl; - cout << "Near-field pressure coefficient gradient: "<< Gradient << "." << endl; break; - case FORCE_X_COEFFICIENT : - if (iDV == 0) Gradient_file << "Force x coeff. grad. using disc. adj." << endl; - cout << "Force x coefficient gradient: "<< Gradient << "." << endl; break; - case FORCE_Y_COEFFICIENT : - if (iDV == 0) Gradient_file << "Force y coeff. grad. using disc. adj." << endl; - cout << "Force y coefficient gradient: "<< Gradient << "." << endl; break; - case FORCE_Z_COEFFICIENT : - if (iDV == 0) Gradient_file << "Force z coeff. grad. using disc. adj." << endl; - cout << "Force z coefficient gradient: "<< Gradient << "." << endl; break; - case THRUST_COEFFICIENT : - if (iDV == 0) Gradient_file << "Thrust coeff. grad. using disc. adj."<< endl; - cout << "Thrust coefficient gradient: "<< Gradient << "." << endl; break; - case TORQUE_COEFFICIENT : - if (iDV == 0) Gradient_file << "Torque coeff. grad. using disc. adj."<< endl; - cout << "Torque coefficient gradient: "<< Gradient << "." << endl; break; - case FIGURE_OF_MERIT : - if (iDV == 0) Gradient_file << "Rotor Figure of Merit grad. using disc. adj."<< endl; - cout << "Rotor Figure of Merit gradient: "<< Gradient << "." << endl; break; - case FREE_SURFACE : - if (iDV == 0) Gradient_file << "Free-Surface grad. using disc. adj."<< endl; - cout << "Free-surface gradient: "<< Gradient << "." << endl; break; - case MASS_FLOW_RATE : - if (iDV == 0) Gradient_file << "Mass flow rate grad. using disc. adj."<< endl; - cout << "Mass flow rate gradient: "<< Gradient << "." << endl; break; - case AVG_OUTLET_PRESSURE : - if (iDV == 0) Gradient_file << "Average outlet presure grad. using disc. adj."<< endl; - cout << "Average outlet pressure gradient: "<< Gradient << "." << endl; break; - case AVG_TOTAL_PRESSURE : - if (iDV == 0) Gradient_file << "Average total presure grad. using disc. adj."<< endl; - cout << "Average total pressure gradient: "<< Gradient << "." << endl; break; - case OUTFLOW_GENERALIZED : - if (iDV == 0) Gradient_file << "Generalized outflow gradient using cont. adj."<< endl; - cout << "Generalized outflow gradient: "<< Gradient << "." << endl; break; + if (rank == MASTER_NODE) + cout <<"-------------------------------------------------------------------------" << endl; + } + + /*--- Apply the control point change ---*/ + + for (iFFDBox = 0; iFFDBox < surface_movement->GetnFFDBox(); iFFDBox++) { + /*--- Reset FFD box ---*/ + + switch (config->GetDesign_Variable(iDV) ) { + case FFD_CONTROL_POINT_2D : surface_movement->SetFFDCPChange_2D(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_CAMBER_2D : surface_movement->SetFFDCamber_2D(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_THICKNESS_2D : surface_movement->SetFFDThickness_2D(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_CONTROL_POINT : surface_movement->SetFFDCPChange(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_DIHEDRAL_ANGLE : surface_movement->SetFFDDihedralAngle(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_TWIST_ANGLE : surface_movement->SetFFDTwistAngle(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_ROTATION : surface_movement->SetFFDRotation(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_CAMBER : surface_movement->SetFFDCamber(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_THICKNESS : surface_movement->SetFFDThickness(geometry, config, FFDBox[iFFDBox], iDV, true); break; + case FFD_CONTROL_SURFACE : surface_movement->SetFFDControl_Surface(geometry, config, FFDBox[iFFDBox], iDV, true); break; } - Gradient_file << Gradient << endl; + /*--- Recompute cartesian coordinates using the new control points position ---*/ - cout <<"-------------------------------------------------------------------------" << endl; + surface_movement->SetCartesianCoord(geometry, config, FFDBox[iFFDBox], iFFDBox); } } - /*--- For continuous adjoint we use Finite differences ---*/ + /*--- Hicks Henne design variable ---*/ - }else{ + else if (config->GetDesign_Variable(iDV) == HICKS_HENNE) { + surface_movement->SetHicksHenne(geometry, config, iDV, true); + } + /*--- Displacement design variable ---*/ - for (iDV = 0; iDV < config_container[ZONE_0]->GetnDV(); iDV++) { + else if (config->GetDesign_Variable(iDV) == TRANSLATION) { + surface_movement->SetTranslation(geometry, config, iDV, true); + } + + /*--- Scale design variable ---*/ - if (size == SINGLE_NODE) { Jacobian_file << iDV; } + else if (config->GetDesign_Variable(iDV) == SCALE) { + surface_movement->SetScale(geometry, config, iDV, true); + } - /*--- Free Form deformation based ---*/ + /*--- Rotation design variable ---*/ - if ((config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_CONTROL_POINT_2D) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_CAMBER_2D) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_THICKNESS_2D) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_CONTROL_POINT) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_DIHEDRAL_ANGLE) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_TWIST_ANGLE) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_ROTATION) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_CAMBER) || - (config_container[ZONE_0]->GetDesign_Variable(iDV) == FFD_THICKNESS) ) { + else if (config->GetDesign_Variable(iDV) == ROTATION) { + surface_movement->SetRotation(geometry, config, iDV, true); + } - /*--- Read the FFD information in the first iteration ---*/ + /*--- NACA_4Digits design variable ---*/ - if (iDV == 0) { + else if (config->GetDesign_Variable(iDV) == NACA_4DIGITS) { + surface_movement->SetNACA_4Digits(geometry, config); + } - if (rank == MASTER_NODE) - cout << "Read the FFD information from mesh file." << endl; + /*--- Parabolic design variable ---*/ - /*--- Read the FFD information from the grid file ---*/ + else if (config->GetDesign_Variable(iDV) == PARABOLIC) { + surface_movement->SetParabolic(geometry, config); + } - surface_movement->ReadFFDInfo(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox, config_container[ZONE_0]->GetMesh_FileName()); + else if (config->GetDesign_Variable(iDV) == CUSTOM) + cout <<"Custom design variable will be used in external script" << endl; - /*--- If the FFDBox was not defined in the input file ---*/ - if (!surface_movement->GetFFDBoxDefinition() && (rank == MASTER_NODE)) { - cout << "The input grid doesn't have the entire FFD information!" << endl; - cout << "Press any key to exit..." << endl; - cin.get(); - } + /*--- Design variable not implement ---*/ - for (iFFDBox = 0; iFFDBox < surface_movement->GetnFFDBox(); iFFDBox++) { + else { cout << "Design Variable not implement yet" << endl; } - if (rank == MASTER_NODE) - cout << "Check the FFD box intersections with the solid surfaces." << endl; + /*--- Load the delta change in the design variable (finite difference step). ---*/ - surface_movement->CheckFFDIntersections(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iFFDBox); + delta_eps = config->GetDV_Value(iDV); + my_Gradient = 0.0; Gradient[iDV][0] = 0.0; - } + /*--- Reset update points ---*/ - if (rank == MASTER_NODE) - cout <<"-------------------------------------------------------------------------" << endl; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) + UpdatePoint[iPoint] = true; - } + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if (config->GetMarker_All_DV(iMarker) == YES) { + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 3D deformation of the surface." << endl; - } + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + if ((iPoint < geometry->GetnPointDomain()) && UpdatePoint[iPoint]) { - /*--- Apply the control point change ---*/ + Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); + VarCoord = geometry->vertex[iMarker][iVertex]->GetVarCoord(); + Sensitivity = geometry->vertex[iMarker][iVertex]->GetAuxVar(); - for (iFFDBox = 0; iFFDBox < surface_movement->GetnFFDBox(); iFFDBox++) { + dS = 0.0; + for (iDim = 0; iDim < geometry->GetnDim(); iDim++) { + dS += Normal[iDim]*Normal[iDim]; + deps[iDim] = VarCoord[iDim] / delta_eps; + } + dS = sqrt(dS); + + dalpha_deps = 0.0; + for (iDim = 0; iDim < geometry->GetnDim(); iDim++) { + dalpha[iDim] = Normal[iDim] / dS; + dalpha_deps -= dalpha[iDim]*deps[iDim]; + } - /*--- Reset FFD box ---*/ - - switch (config_container[ZONE_0]->GetDesign_Variable(iDV) ) { - case FFD_CONTROL_POINT_2D : surface_movement->SetFFDCPChange_2D(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_CAMBER_2D : surface_movement->SetFFDCamber_2D(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_THICKNESS_2D : surface_movement->SetFFDThickness_2D(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_CONTROL_POINT : surface_movement->SetFFDCPChange(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_DIHEDRAL_ANGLE : surface_movement->SetFFDDihedralAngle(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_TWIST_ANGLE : surface_movement->SetFFDTwistAngle(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_ROTATION : surface_movement->SetFFDRotation(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_CAMBER : surface_movement->SetFFDCamber(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_THICKNESS : surface_movement->SetFFDThickness(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; - case FFD_CONTROL_SURFACE : surface_movement->SetFFDControl_Surface(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iDV, true); break; + my_Gradient += Sensitivity*dalpha_deps; + UpdatePoint[iPoint] = false; } + } + } + } - /*--- Recompute cartesian coordinates using the new control points position ---*/ +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&my_Gradient, &Gradient[iDV][0], 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +#else + Gradient = my_Gradient; +#endif + } - surface_movement->SetCartesianCoord(geometry_container[ZONE_0], config_container[ZONE_0], FFDBox[iFFDBox], iFFDBox); + /* --- Print gradients to screen and file ---*/ - } + OutputGradient(Gradient, config, Gradient_file); - } + for (iDV = 0; iDV < nDV; iDV++){ + delete [] Gradient[iDV]; + } + delete [] Gradient; + delete [] UpdatePoint; - /*--- Hicks Henne design variable ---*/ +} - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == HICKS_HENNE) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 2D deformation of the surface." << endl; - } - surface_movement->SetHicksHenne(geometry_container[ZONE_0], config_container[ZONE_0], iDV, true); - } - /*--- Displacement design variable ---*/ +void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == TRANSLATION) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 2D deformation of the surface." << endl; - } - surface_movement->SetTranslation(geometry_container[ZONE_0], config_container[ZONE_0], iDV, true); - } + su2double DV_Value, *VarCoord, Sensitivity, **Gradient; + unsigned short iDV_Value = 0, iMarker, nMarker, iDim, nDim, iDV, nDV, nDV_Value; + unsigned long iVertex, nVertex, iPoint; - /*--- Scale design variable ---*/ + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD,&rank); +#endif - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == SCALE) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 2D deformation of the surface." << endl; - } - surface_movement->SetScale(geometry_container[ZONE_0], config_container[ZONE_0], iDV, true); - } + nMarker = config->GetnMarker_All(); + nDim = geometry->GetnDim(); + nDV = config->GetnDV(); - /*--- Rotation design variable ---*/ + VarCoord = NULL; - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == ROTATION) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 2D deformation of the surface." << endl; - } - surface_movement->SetRotation(geometry_container[ZONE_0], config_container[ZONE_0], iDV, true); - } + /*--- Structure to store the gradient ---*/ - /*--- NACA_4Digits design variable ---*/ + Gradient = new su2double*[nDV]; - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == NACA_4DIGITS) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 2D deformation of the surface." << endl; - } - surface_movement->SetNACA_4Digits(geometry_container[ZONE_0], config_container[ZONE_0]); - } + for (iDV = 0; iDV < nDV; iDV++){ + nDV_Value = config->GetnDV_Value(iDV); + Gradient[iDV] = new su2double[nDV_Value]; + } - /*--- Parabolic design variable ---*/ + /*--- Discrete adjoint gradient computation ---*/ - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == PARABOLIC) { - if (rank == MASTER_NODE) { - cout << endl << "Design variable number "<< iDV <<"." << endl; - cout << "Perform 2D deformation of the surface." << endl; - } - surface_movement->SetParabolic(geometry_container[ZONE_0], config_container[ZONE_0]); - } + if (rank == MASTER_NODE) + cout << "Evaluate functional gradient using the discrete adjoint strategy." << endl; - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == CUSTOM) - cout <<"Custom design variable will be used in external script" << endl; + /*--- Start recording of operations ---*/ - /*--- Design variable not implement ---*/ + AD::StartRecording(); - else { cout << "Design Variable not implement yet" << endl; } + /*--- Register design variables as input and set them to zero + * (since we want to have the derivative at alpha = 0, i.e. for the current design) ---*/ - /*--- Continuous adjoint gradient computation ---*/ - if (rank == MASTER_NODE) - cout << "Evaluate functional gradient using the continuous adjoint strategy." << endl; - /*--- Load the delta change in the design variable (finite difference step). ---*/ + for (iDV = 0; iDV < nDV; iDV++){ - delta_eps = config_container[ZONE_0]->GetDV_Value(iDV); - my_Gradient = 0.0; Gradient = 0.0; - - /*--- Reset update points ---*/ + nDV_Value = config->GetnDV_Value(iDV); - for (iPoint = 0; iPoint < geometry_container[ZONE_0]->GetnPoint(); iPoint++) - UpdatePoint[iPoint] = true; - - for (iMarker = 0; iMarker < config_container[ZONE_0]->GetnMarker_All(); iMarker++) { - if (config_container[ZONE_0]->GetMarker_All_DV(iMarker) == YES) { - for (iVertex = 0; iVertex < geometry_container[ZONE_0]->nVertex[iMarker]; iVertex++) { + for (iDV_Value = 0; iDV_Value < nDV_Value; iDV_Value++){ - iPoint = geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetNode(); - if ((iPoint < geometry_container[ZONE_0]->GetnPointDomain()) && UpdatePoint[iPoint]) { + /*--- Initilization with double resets the index ---*/ - Normal = geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetNormal(); - VarCoord = geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetVarCoord(); - Sensitivity = geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetAuxVar(); + DV_Value = 0.0; - dS = 0.0; - for (iDim = 0; iDim < geometry_container[ZONE_0]->GetnDim(); iDim++) { - dS += Normal[iDim]*Normal[iDim]; - deps[iDim] = VarCoord[iDim] / delta_eps; - } - dS = sqrt(dS); + AD::RegisterInput(DV_Value); + + config->SetDV_Value(iDV, iDV_Value, DV_Value); + } + } - dalpha_deps = 0.0; - for (iDim = 0; iDim < geometry_container[ZONE_0]->GetnDim(); iDim++) { - dalpha[iDim] = Normal[iDim] / dS; - dalpha_deps -= dalpha[iDim]*deps[iDim]; - } + /*--- Call the surface deformation routine ---*/ - /*--- Store the geometric sensitivity for this DV (rows) & this node (column) ---*/ - - if (size == SINGLE_NODE) { - Jacobian_file << ", " << dalpha_deps; - } - - my_Gradient += Sensitivity*dalpha_deps; - UpdatePoint[iPoint] = false; - } - } + surface_movement->SetSurface_Deformation(geometry, config); + + /*--- Stop the recording --- */ + + AD::StopRecording(); + + /*--- Initialize the derivatives of the output of the surface deformation routine + * with the discrete adjoints from the CFD solution ---*/ + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + if (config->GetMarker_All_DV(iMarker) == YES) { + nVertex = geometry->nVertex[iMarker]; + for (iVertex = 0; iVertex vertex[iMarker][iVertex]->GetNode(); + VarCoord = geometry->vertex[iMarker][iVertex]->GetVarCoord(); + + for (iDim = 0; iDim < nDim; iDim++){ + Sensitivity = geometry->GetSensitivity(iPoint, iDim); + SU2_TYPE::SetDerivative(VarCoord[iDim], SU2_TYPE::GetValue(Sensitivity)); } } + } + } + + /*--- Compute derivatives and extract gradient ---*/ + + AD::ComputeAdjoint(); + + for (iDV = 0; iDV < nDV; iDV++){ + nDV_Value = config->GetnDV_Value(iDV); + + for (iDV_Value = 0; iDV_Value < nDV_Value; iDV_Value++){ + DV_Value = config->GetDV_Value(iDV, iDV_Value); + Gradient[iDV][iDV_Value] = SU2_TYPE::GetDerivative(DV_Value); + } + } + + /*--- Print gradients to screen and file ---*/ + + OutputGradient(Gradient, config, Gradient_file); + + for (iDV = 0; iDV < nDV; iDV++){ + delete [] Gradient[iDV]; + } + delete [] Gradient; +} +void OutputGradient(su2double** Gradient, CConfig* config, ofstream& Gradient_file){ + + unsigned short nDV, iDV, iDV_Value, nDV_Value; + + int rank = MASTER_NODE; #ifdef HAVE_MPI - SU2_MPI::Allreduce(&my_Gradient, &Gradient, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -#else - Gradient = my_Gradient; + MPI_Comm_rank(MPI_COMM_WORLD,&rank); #endif - if (rank == MASTER_NODE) { - switch (config_container[ZONE_0]->GetKind_ObjFunc()) { - case LIFT_COEFFICIENT : - if (iDV == 0) Gradient_file << "Lift coeff. grad. using cont. adj." << endl; - cout << "Lift coefficient gradient: "<< Gradient << "." << endl; break; - case DRAG_COEFFICIENT : - if (iDV == 0) Gradient_file << "Drag coeff. grad. using cont. adj." << endl; - cout << "Drag coefficient gradient: "<< Gradient << "." << endl; break; - case SIDEFORCE_COEFFICIENT : - if (iDV == 0) Gradient_file << "Sideforce coeff. grad. using cont. adj." << endl; - cout << "Sideforce coefficient gradient: "<< Gradient << "." << endl; break; - case INVERSE_DESIGN_PRESSURE : - if (iDV == 0) Gradient_file << "Pressure inverse design using cont. adj."<< endl; - cout << "Pressure inverse design gradient: "<< Gradient << "." << endl; break; - case INVERSE_DESIGN_HEATFLUX : - if (iDV == 0) Gradient_file << "Heat inverse design using cont. adj."<< endl; - cout << "Heat flux inverse design gradient: "<< Gradient << "." << endl; break; - case TOTAL_HEATFLUX : - if (iDV == 0) Gradient_file << "Integrated surface heat flux. using cont. adj."<< endl; - cout << "Total heat flux gradient: "<< Gradient << "." << endl; break; - case MAXIMUM_HEATFLUX : - if (iDV == 0) Gradient_file << "Integrated surface heat flux. using cont. adj."<< endl; - cout << "Maximum heat flux gradient: "<< Gradient << "." << endl; break; - case MOMENT_X_COEFFICIENT : - if (iDV == 0) Gradient_file << "Moment x coeff. grad. using cont. adj." << endl; - cout << "Moment x coefficient gradient: "<< Gradient << "." << endl; break; - case MOMENT_Y_COEFFICIENT : - if (iDV == 0) Gradient_file << "Moment y coeff. grad. using cont. adj." << endl; - cout << "Moment y coefficient gradient: "<< Gradient << "." << endl; break; - case MOMENT_Z_COEFFICIENT : - if (iDV == 0) Gradient_file << "Moment z coeff. grad. using cont. adj." << endl; - cout << "Moment z coefficient gradient: "<< Gradient << "." << endl; break; - case EFFICIENCY : - if (iDV == 0) Gradient_file << "Efficiency coeff. grad. using cont. adj." << endl; - cout << "Efficiency coefficient gradient: "<< Gradient << "." << endl; break; - case EQUIVALENT_AREA : - if (iDV == 0) Gradient_file << "Equivalent area coeff. grad. using cont. adj." << endl; - cout << "Equivalent Area coefficient gradient: "<< Gradient << "." << endl; break; - case NEARFIELD_PRESSURE : - if (iDV == 0) Gradient_file << "Near-field pressure coeff. grad. using cont. adj." << endl; - cout << "Near-field pressure coefficient gradient: "<< Gradient << "." << endl; break; - case FORCE_X_COEFFICIENT : - if (iDV == 0) Gradient_file << "Force x coeff. grad. using cont. adj." << endl; - cout << "Force x coefficient gradient: "<< Gradient << "." << endl; break; - case FORCE_Y_COEFFICIENT : - if (iDV == 0) Gradient_file << "Force y coeff. grad. using cont. adj." << endl; - cout << "Force y coefficient gradient: "<< Gradient << "." << endl; break; - case FORCE_Z_COEFFICIENT : - if (iDV == 0) Gradient_file << "Force z coeff. grad. using cont. adj." << endl; - cout << "Force z coefficient gradient: "<< Gradient << "." << endl; break; - case THRUST_COEFFICIENT : - if (iDV == 0) Gradient_file << "Thrust coeff. grad. using cont. adj."<< endl; - cout << "Thrust coefficient gradient: "<< Gradient << "." << endl; break; - case TORQUE_COEFFICIENT : - if (iDV == 0) Gradient_file << "Torque coeff. grad. using cont. adj."<< endl; - cout << "Torque coefficient gradient: "<< Gradient << "." << endl; break; - case FIGURE_OF_MERIT : - if (iDV == 0) Gradient_file << "Rotor Figure of Merit grad. using cont. adj."<< endl; - cout << "Rotor Figure of Merit gradient: "<< Gradient << "." << endl; break; - case FREE_SURFACE : - if (iDV == 0) Gradient_file << "Free-Surface grad. using cont. adj."<< endl; - cout << "Free-surface gradient: "<< Gradient << "." << endl; break; - case MASS_FLOW_RATE : - if (iDV == 0) Gradient_file << "Mass flow rate grad. using cont. adj."<< endl; - cout << "Mass flow rate gradient: "<< Gradient << "." << endl; break; - case AVG_OUTLET_PRESSURE : - if (iDV == 0) Gradient_file << "Average outlet presure grad. using cont. adj."<< endl; - cout << "Average outlet pressure gradient: "<< Gradient << "." << endl; break; - case AVG_TOTAL_PRESSURE : - if (iDV == 0) Gradient_file << "Average total presure grad. using cont. adj."<< endl; - cout << "Average total pressure gradient: "<< Gradient << "." << endl; break; - case OUTFLOW_GENERALIZED : - if (iDV == 0) Gradient_file << "Generalized outflow gradient cont. adj."<< endl; - cout << "Generalized outflow gradient: "<< Gradient << "." << endl; break; + nDV = config->GetnDV(); - } + /*--- Loop through all design variables and their gradients ---*/ + + for (iDV = 0; iDV < nDV; iDV++){ + nDV_Value = config->GetnDV_Value(iDV); + if (rank == MASTER_NODE){ + + /*--- Print the kind of design variable on screen ---*/ - Gradient_file << Gradient << endl; + cout << endl << "Design variable ("; + for (std::map::const_iterator it = Param_Map.begin(); it != Param_Map.end(); ++it ){ + if (it->second == config->GetDesign_Variable(iDV)){ + cout << it->first << ") number "<< iDV << "." << endl; + } + } - cout <<"-------------------------------------------------------------------------" << endl; + /*--- Print the kind of objective function to screen ---*/ + for (std::map::const_iterator it = Objective_Map.begin(); it != Objective_Map.end(); ++it ){ + if (it->second == config->GetKind_ObjFunc()){ + cout << it->first << " gradient : "; + if (iDV == 0) Gradient_file << it->first << " gradient " << endl; + } } - /*--- End the line for the current DV in the geometric Jacobian file ---*/ + /*--- Print the gradient to file and screen ---*/ - if (size == SINGLE_NODE) Jacobian_file << endl; + for (iDV_Value = 0; iDV_Value < nDV_Value; iDV_Value++){ + cout << Gradient[iDV][iDV_Value]; + if (iDV_Value != nDV_Value-1 ){ + cout << ", "; + } + Gradient_file << Gradient[iDV][iDV_Value] << endl; + } + cout << endl; + cout <<"-------------------------------------------------------------------------" << endl; } } - if (rank == MASTER_NODE) - Gradient_file.close(); - - if (size == SINGLE_NODE) - Jacobian_file.close(); - - delete [] UpdatePoint; - - /*--- Synchronization point after a single solver iteration. Compute the - wall clock time required. ---*/ - -#ifdef HAVE_MPI - StopTime = MPI_Wtime(); -#else - StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - UsedTime = StopTime-StartTime; - if (rank == MASTER_NODE) { - cout << "\nCompleted in " << fixed << UsedTime << " seconds on "<< size; - if (size == 1) cout << " core." << endl; else cout << " cores." << endl; - } - - /*--- Exit the solver cleanly ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Exit Success (SU2_DOT) ------------------------" << endl << endl; - - /*--- Finalize MPI parallelization ---*/ - -#ifdef HAVE_MPI - MPI_Finalize(); -#endif - - return EXIT_SUCCESS; - } From ee077a8333bea71d6343db319168be599596c475 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Mon, 11 Jan 2016 14:22:12 +0100 Subject: [PATCH 148/269] General movement of FFD points added to the python framework --- SU2_PY/SU2/io/config.py | 50 +++++++++++++++++++++++++++++------ SU2_PY/SU2/opt/scipy_tools.py | 13 ++++++--- SU2_PY/SU2/run/projection.py | 2 +- 3 files changed, 52 insertions(+), 13 deletions(-) diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index 3f50bbda48d..261621f40b9 100644 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -155,7 +155,9 @@ def unpack_dvs(self,dv_new,dv_old=None): # handle unpacking cases def_dv = self['DEFINITION_DV'] - n_dv = len(def_dv['KIND']) + + n_dv = sum(def_dv['SIZE']) + if not dv_old: dv_old = [0.0]*n_dv assert len(dv_new) == len(dv_old) , 'unexpected design vector length' @@ -164,14 +166,20 @@ def unpack_dvs(self,dv_new,dv_old=None): # apply scale dv_scales = def_dv['SCALE'] - dv_new = [ dv_new[i]*dv_scl for i,dv_scl in enumerate(dv_scales) ] - dv_old = [ dv_old[i]*dv_scl for i,dv_scl in enumerate(dv_scales) ] + + k = 0 + for i, dv_scl in enumerate(dv_scales): + for j in range(def_dv['SIZE'][i]): + dv_new[k] = dv_new[k]*dv_scl; + dv_old[k] = dv_old[k]*dv_scl; + k = k + 1 # Change the parameters of the design variables self['DV_KIND'] = def_dv['KIND'] param_dv['PARAM'] = def_dv['PARAM'] param_dv['FFDTAG'] = def_dv['FFDTAG'] + param_dv['SIZE'] = def_dv['SIZE'] self.update({ 'DV_MARKER' : def_dv['MARKER'][0] , 'DV_VALUE_OLD' : dv_old , @@ -337,11 +345,13 @@ def read_config(filename): # build list of dv params, convert string to float dv_Parameters = [] dv_FFDTag = [] + dv_Size = [] for this_dvParam in info_General: this_dvParam = this_dvParam.strip('()') this_dvParam = this_dvParam.split(",") - + this_dvSize = 1 + # if FFD change the first element to work with numbers and float(x) if data_dict["DV_KIND"][0] in ['FFD_SETTING','FFD_CONTROL_POINT','FFD_DIHEDRAL_ANGLE','FFD_TWIST_ANGLE','FFD_ROTATION','FFD_CAMBER','FFD_THICKNESS','FFD_CONTROL_POINT_2D','FFD_CAMBER_2D','FFD_THICKNESS_2D']: this_dvFFDTag = this_dvParam[0] @@ -350,14 +360,23 @@ def read_config(filename): this_dvFFDTag = [] this_dvParam = [ float(x) for x in this_dvParam ] - + + if data_dict["DV_KIND"][0] in ['FFD_CONTROL_POINT_2D']: + if this_dvParam[3] == 0 and this_dvParam[4] == 0: + this_dvSize = 2 + + if data_dict["DV_KIND"][0]in ['FFD_CONTROL_POINT']: + if this_dvParam[4] == 0 and this_dvParam[5] == 0 and this_dvParam[6] == 0: + this_dvSize = 3 + dv_FFDTag = dv_FFDTag + [this_dvFFDTag] dv_Parameters = dv_Parameters + [this_dvParam] + dv_Size = dv_Size + [this_dvSize] # store in a dictionary dv_Definitions = { 'FFDTAG' : dv_FFDTag , - 'PARAM' : dv_Parameters } - + 'PARAM' : dv_Parameters , + 'SIZE' : dv_Size} data_dict[this_param] = dv_Definitions break @@ -404,6 +423,8 @@ def read_config(filename): dv_Markers = [] dv_FFDTag = [] dv_Parameters = [] + dv_Size = [] + for this_General in info_Unitary: if not this_General: continue # split each unitary definition into one general definition @@ -414,6 +435,8 @@ def read_config(filename): this_dvKind = get_dvKind( int( info_Kind[0] ) ) this_dvScale = float( info_Kind[1] ) this_dvMarkers = info_General[1].split(",") + this_dvSize = 1 + if this_dvKind=='MACH_NUMBER' or this_dvKind=='AOA': this_dvParameters = [] else: @@ -427,18 +450,29 @@ def read_config(filename): this_dvParameters = [ float(x) for x in this_dvParameters ] + if this_dvKind in ['FFD_CONTROL_POINT_2D']: + if this_dvParameters[3] == 0 and this_dvParameters[4] == 0: + this_dvSize = 2 + + if this_dvKind in ['FFD_CONTROL_POINT']: + if this_dvParameters[4] == 0 and this_dvParameters[5] == 0 and this_dvParameters[6] == 0: + this_dvSize = 3 + # add to lists dv_Kind = dv_Kind + [this_dvKind] dv_Scale = dv_Scale + [this_dvScale] dv_Markers = dv_Markers + [this_dvMarkers] dv_FFDTag = dv_FFDTag + [this_dvFFDTag] dv_Parameters = dv_Parameters + [this_dvParameters] + dv_Size = dv_Size + [this_dvSize] # store in a dictionary dv_Definitions = { 'KIND' : dv_Kind , 'SCALE' : dv_Scale , 'MARKER' : dv_Markers , 'FFDTAG' : dv_FFDTag , - 'PARAM' : dv_Parameters } + 'PARAM' : dv_Parameters , + 'SIZE' : dv_Size} + # save to output dictionary data_dict[this_param] = dv_Definitions break diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py index 804a0c39746..8b91967185c 100644 --- a/SU2_PY/SU2/opt/scipy_tools.py +++ b/SU2_PY/SU2/opt/scipy_tools.py @@ -84,7 +84,8 @@ def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True): fprime_ieqcons = con_dcieq # number of design variables - n_dv = len( project.config['DEFINITION_DV']['KIND'] ) + dv_size = project.config['DEFINITION_DV']['SIZE'] + n_dv = sum( dv_size) project.n_dv = n_dv # Initial guess @@ -92,8 +93,12 @@ def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True): # prescale x0 dv_scales = project.config['DEFINITION_DV']['SCALE'] - x0 = [ x0[i]/dv_scl for i,dv_scl in enumerate(dv_scales) ] - + k = 0 + for i, dv_scl in enumerate(dv_scales): + for j in range(dv_size[i]): + x0[k] =x0[k]/dv_scl; + k = k + 1 + # scale accuracy obj = project.config['OPT_OBJECTIVE'] obj_scale = obj[obj.keys()[0]]['SCALE'] @@ -104,7 +109,7 @@ def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True): # optimizer summary sys.stdout.write('Sequential Least SQuares Programming (SLSQP) parameters:\n') - sys.stdout.write('Number of design variables: ' + str(n_dv) + '\n') + sys.stdout.write('Number of design variables: ' + str(len(dv_size)) + ' ( ' + str(n_dv) + ' ) \n' ) sys.stdout.write('Objective function scaling factor: ' + str(obj_scale) + '\n') sys.stdout.write('Maximum number of iterations: ' + str(its) + '\n') sys.stdout.write('Requested accuracy: ' + str(accu) + '\n') diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py index 4f11b744f16..fa02369fb89 100644 --- a/SU2_PY/SU2/run/projection.py +++ b/SU2_PY/SU2/run/projection.py @@ -76,7 +76,7 @@ def projection( config, state={}, step = 1e-3 ): # choose dv values Definition_DV = konfig['DEFINITION_DV'] - n_DV = len(Definition_DV['KIND']) + n_DV = sum(Definition_DV['SIZE']) if isinstance(step,list): assert len(step) == n_DV , 'unexpected step vector length' else: From db06787da92075a617fa5f7bfdd06a830bbb80e7 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Mon, 11 Jan 2016 14:23:00 +0100 Subject: [PATCH 149/269] Option for set_ffd_design_var.py to specify the direction of movement. --- SU2_PY/set_ffd_design_var.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index 500b5a1c07f..94311e8f41c 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -49,6 +49,12 @@ help="scale factor for the bump functions", metavar="SCALE") parser.add_option("-d", "--dimension", dest="dimension", default=3.0, help="dimension of the problem", metavar="DIMENSION") +parser.add_option("-x", "--xMovement", dest="xMove", default=0.0, + help="movement in x direction", metavar="XMOVEMENT") +parser.add_option("-y", "--yMovement", dest="yMove", default=0.0, + help="movement in y direction", metavar="YMOVEMENT") +parser.add_option("-z", "--zMovement", dest="zMove", default=0.0, + help="movement in z direction", metavar="ZMOVEMENT") (options, args)=parser.parse_args() @@ -61,6 +67,9 @@ options.marker = str(options.marker) options.scale = float(options.scale) options.dim = int(options.dimension) +options.xMove = float(options.xMove) +options.yMove = float(options.yMove) +options.zMove = float(options.zMove) if options.dim == 3: @@ -74,7 +83,7 @@ for iIndex in range(options.iOrder): iVariable = iVariable + 1 dvList = dvList + "( 7, " + str(options.scale) + " | " + options.marker + " | " - dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + ", " + str(kIndex) + ", 0.0, 0.0, 1.0 )" + dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + ", " + str(kIndex) + ", " + str(options.xMove) +", " + str(options.yMove) + ", " + str(options.zMove) + " )" if iVariable < (options.iOrder*(options.jOrder)*options.kOrder): dvList = dvList + "; " @@ -111,7 +120,7 @@ for iIndex in range(options.iOrder): iVariable = iVariable + 1 dvList = dvList + "( 15, " + str(options.scale) + " | " + options.marker + " | " - dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + ", 0.0, 1.0 )" + dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + + ", " + str(options.xMove) +", " + str(options.yMove) + " )" if iVariable < (options.iOrder*options.jOrder): dvList = dvList + "; " From c2b5b56c5bf263d136eb7d094740f8516e627817 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 11 Jan 2016 10:39:37 -0800 Subject: [PATCH 150/269] resolving differences between this interp and FSI_FEA branch, typos --- .travis.yml | 2 +- Common/include/interpolation_structure.hpp | 2 +- SU2_CFD/src/transfer_structure.cpp | 2 +- SU2_FSI/src/iteration_structure_fsi.cpp | 2 +- configure.ac | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 85663ca3f0d..f05ae5cb63c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ compiler: notifications: email: recipients: - - hlkline@stanford.edu + - su2code-dev@lists.stanford.edu branches: only: diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index 61e5ce8ac99..c832bc973ed 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -205,7 +205,7 @@ class CIsoparametric : public CInterpolator { * \param[in] iZone_1 - zone index of the element to use for interpolation (the DONOR zone) * \param[in] donor_elem - element index of the element to use for interpolation (or global index of a point in 2D) * \param[in[ nDonorPoints - number of donor points in the element. - * \param[in[ xj - point projected onto the plane of the donor element. + * \param[in] xj - point projected onto the plane of the donor element. * \param[out] isoparams - isoparametric coefficients. Must be allocated to size nNodes ahead of time. (size> nDonors) * * If the problem is 2D, the 'face' projected onto is actually an edge; the local index diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 1d4eea80d5e..c9d196dcbaa 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -969,7 +969,7 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - cout << "Target Point " << target_geometry->node[Point_Target]->GetGlobalIndex(); + cout << "Target Point " << Point_Target; /*--- If this processor owns the node ---*/ if (target_geometry->node[Point_Target]->GetDomain()){ diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp index 4149e0c2976..c78d943d954 100644 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ b/SU2_FSI/src/iteration_structure_fsi.cpp @@ -404,7 +404,7 @@ void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometr if (dynamic){ for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); integration_container[iZone][FEA_SOL]->SetConvergence(false); } diff --git a/configure.ac b/configure.ac index 8e27fa33722..e475285d861 100644 --- a/configure.ac +++ b/configure.ac @@ -117,8 +117,8 @@ AC_ARG_ENABLE(CFD, AS_HELP_STRING([--disable-CFD], [build the SU2_CFD executable (default = yes)]), [build_CFD=$enableval], [build_CFD="yes"]) AC_ARG_ENABLE(FSI, - AS_HELP_STRING([--enable-FSI], [build the SU2_FSI executable (default = no)]), - [build_FSI=$enableval], [build_FSI="no"]) + AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), + [build_FSI=$enableval], [build_FSI="yes"]) AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) From 5d9cc4a76446723426b6e52a971d369873448824 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 11 Jan 2016 11:51:47 -0800 Subject: [PATCH 151/269] fixing terminal output --- SU2_DOT/src/SU2_DOT.cpp | 2 +- SU2_GEO/src/SU2_GEO.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 8cc99ef1b20..11b61853dd0 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -509,7 +509,7 @@ int main(int argc, char *argv[]) { surface_movement->SetParabolic(geometry_container[ZONE_0], config_container[ZONE_0]); } - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == CUSTOM) + else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == CUSTOM and rank==MASTER_NODE) cout <<"Custom design variable will be used in external script" << endl; /*--- Design variable not implement ---*/ diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 989826ae0cf..e4856a6b0fa 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -460,7 +460,7 @@ int main(int argc, char *argv[]) { } surface_movement->SetParabolic(geometry_container[ZONE_0], config_container[ZONE_0]); } - else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == CUSTOM) + else if (config_container[ZONE_0]->GetDesign_Variable(iDV) == CUSTOM and rank==MASTER_NODE) cout <<"Custom design variable will be used in external script" << endl; /*--- Design variable not implement ---*/ From f5b49b3ecf42645770179644f2b3d2d31cbc4cb5 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 11 Jan 2016 15:22:35 -0800 Subject: [PATCH 152/269] more terminal output correction to print only on master node --- Common/src/grid_movement_structure.cpp | 2 +- SU2_DOT/src/SU2_DOT.cpp | 6 ++++-- SU2_GEO/src/SU2_GEO.cpp | 5 ++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 394e0991332..ca0878ae59d 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -3109,7 +3109,7 @@ void CSurfaceMovement::SetSurface_Deformation(CGeometry *geometry, CConfig *conf else { if (rank == MASTER_NODE) - cout << "Design Variable not implement yet" << endl; + cout << "Design Variable not implemented yet" << endl; } } diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 11b61853dd0..e6c774de36a 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -514,8 +514,10 @@ int main(int argc, char *argv[]) { /*--- Design variable not implement ---*/ - else { cout << "Design Variable not implement yet" << endl; } - + else { + if (rank == MASTER_NODE) + cout << "Design Variable not implemented yet" << endl; + } /*--- Continuous adjoint gradient computation ---*/ if (rank == MASTER_NODE) diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index e4856a6b0fa..2f26d2a12e8 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -465,7 +465,10 @@ int main(int argc, char *argv[]) { /*--- Design variable not implement ---*/ - else { cout << "Design Variable not implement yet" << endl; } + else { + if (rank==MASTER_NODE) + cout << "Design Variable not implemented yet" << endl; + } /*--- Create airfoil structure ---*/ for (iPlane = 0; iPlane < nPlane; iPlane++) { From a7cc1f37a14677d6f67cb6adec61f9b6ccfb4e15 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 11 Jan 2016 16:40:30 -0800 Subject: [PATCH 153/269] Python interface updated to automatically use ibrun when using slurm on a tacc machine (ie, Stampede) --- SU2_PY/SU2/run/interface.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index 9b48f3b8d12..f262b64be1f 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -50,10 +50,15 @@ # check for slurm slurm_job = os.environ.has_key('SLURM_JOBID') - + +#check for tacc +tacc_job = os.environ.has_key('TACC_PUBLIC_MACHINE') + # set mpi command if slurm_job: mpi_Command = 'srun -n %i %s' + if tacc_job: + mpi_Command = 'ibrun -o 0 -n %i %s' elif not which('mpirun') is None: mpi_Command = 'mpirun -n %i %s' elif not which('mpiexec') is None: From 2db605ff9e02658d391bdf38eabdbd58b5a6114f Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Tue, 12 Jan 2016 10:54:53 +0100 Subject: [PATCH 154/269] Fixed scaling routines --- SU2_PY/SU2/eval/design.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py index 6cbe5d62cc3..8787e9f2f04 100644 --- a/SU2_PY/SU2/eval/design.py +++ b/SU2_PY/SU2/eval/design.py @@ -275,6 +275,7 @@ def obj_df(dvs,config,state=None): assert n_obj == 1 , 'SU2 currently only supports one objective' dv_scales = config['DEFINITION_DV']['SCALE'] + dv_size = config['DEFINITION_DV']['SIZE'] # if objectives: print('Evaluate Objective Gradients') @@ -290,9 +291,12 @@ def obj_df(dvs,config,state=None): # sys.stdout.write('done\n') # scaling and sign - for i_grd,dv_scl in enumerate(dv_scales): - grad[i_grd] = grad[i_grd] * sign * scale / dv_scl - + k = 0 + for i_dv,dv_scl in enumerate(dv_scales): + for i_grd in range(dv_size[i_dv]): + grad[k] = grad[k] * sign * scale / dv_scl + k = k + 1 + vals_out.append(grad) #: for each objective @@ -369,7 +373,8 @@ def con_dceq(dvs,config,state=None): constraints = def_cons.keys() dv_scales = config['DEFINITION_DV']['SCALE'] - + dv_size = config['DEFINITION_DV']['SIZE'] + # if constraints: sys.stdout.write('Evaluate Equality Constraint Gradients ...') # evaluate each constraint @@ -384,9 +389,12 @@ def con_dceq(dvs,config,state=None): # sys.stdout.write('done\n') # scaling - for i_grd,dv_scl in enumerate(dv_scales): - grad[i_grd] = grad[i_grd] * scale / dv_scl - + k = 0 + for i_dv,dv_scl in enumerate(dv_scales): + for i_grd in range(dv_size[i_dv]): + grad[k] = grad[k] * scale / dv_scl + k = k + 1 + vals_out.append(grad) #: for each constraint @@ -467,7 +475,8 @@ def con_dcieq(dvs,config,state=None): constraints = def_cons.keys() dv_scales = config['DEFINITION_DV']['SCALE'] - + dv_size = config['DEFINITION_DV']['SIZE'] + # if constraints: sys.stdout.write('Evaluate Inequality Constraint Gradients') # evaluate each constraint @@ -484,8 +493,11 @@ def con_dcieq(dvs,config,state=None): # sys.stdout.write('done\n') # scaling and sign - for i_grd,dv_scl in enumerate(dv_scales): - grad[i_grd] = grad[i_grd] * sign * scale / dv_scl + k = 0 + for i_dv,dv_scl in enumerate(dv_scales): + for i_grd in range(dv_size[i_dv]): + grad[k] = grad[k] * sign * scale / dv_scl + k = k + 1 vals_out.append(grad) From d02d9235cc8de5335f4dc3d6f55f30872f433d23 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Tue, 12 Jan 2016 15:53:11 +0100 Subject: [PATCH 155/269] Fixed further scaling routines --- SU2_PY/SU2/eval/gradients.py | 4 ++-- SU2_PY/package_tests.py | 2 +- SU2_PY/shape_optimization.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index b2494c002b0..63bc5f83d3e 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -482,7 +482,7 @@ def findiff( config, state=None, step=1e-4 ): konfig = copy.deepcopy(config) # check deformation setup - n_dv = len(Definition_DV['KIND']) + n_dv = sum(Definition_DV['SIZE']) deform_set = konfig['DV_KIND'] == Definition_DV['KIND'] if not deform_set: dvs_base = [0.0] * n_dv @@ -777,7 +777,7 @@ def directdiff( config, state=None ): # local config konfig = copy.deepcopy(config) - n_dv = len(Definition_DV['KIND']) + n_dv = sum(Definition_DV['SIZE']) # initialize gradients func_keys = su2io.grad_names_map.keys() diff --git a/SU2_PY/package_tests.py b/SU2_PY/package_tests.py index 5af30932ca2..20dc29b8294 100755 --- a/SU2_PY/package_tests.py +++ b/SU2_PY/package_tests.py @@ -283,7 +283,7 @@ def level5(): cons['INEQUALITY']['MOMENT_Z'] = {'SIGN':'>','VALUE':0.034068,'SCALE':1e-2} def_dv = config.DEFINITION_DV - n_dv = len(def_dv['KIND']) + n_dv = sum(def_dv['KIND']) def_dv['SCALE'] = [1.e0]*n_dv config.OPT_OBJECTIVE = obj diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py index 715d4afae71..3fd216cd1c1 100755 --- a/SU2_PY/shape_optimization.py +++ b/SU2_PY/shape_optimization.py @@ -117,7 +117,7 @@ def shape_optimization( filename , bound_upper = float ( config.OPT_BOUND_UPPER ) bound_lower = float ( config.OPT_BOUND_LOWER ) def_dv = config.DEFINITION_DV - n_dv = len(def_dv['KIND']) + n_dv = sum(def_dv['SIZE']) x0 = [0.0]*n_dv # initial design xb_low = [float(bound_lower)]*n_dv # lower dv bound xb_up = [float(bound_upper)]*n_dv # upper dv bound From 2c76f4a855b1694362de52e2f273040b156e571f Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Wed, 13 Jan 2016 14:21:37 +0100 Subject: [PATCH 156/269] Fixed missing allreduce. --- SU2_DOT/src/SU2_DOT.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 8d920450d09..33eac14be19 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -458,7 +458,7 @@ void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMove #ifdef HAVE_MPI SU2_MPI::Allreduce(&my_Gradient, &Gradient[iDV][0], 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else - Gradient = my_Gradient; + Gradient[iDV][0] = my_Gradient; #endif } @@ -478,7 +478,7 @@ void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMove void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ su2double DV_Value, *VarCoord, Sensitivity, **Gradient; - unsigned short iDV_Value = 0, iMarker, nMarker, iDim, nDim, iDV, nDV, nDV_Value; + unsigned short iDV_Value = 0, iMarker, nMarker, iDim, nDim, iDV, nDV, nDV_Value, my_Gradient; unsigned long iVertex, nVertex, iPoint; int rank = MASTER_NODE; @@ -555,7 +555,7 @@ void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMoveme } } } - } + } /*--- Compute derivatives and extract gradient ---*/ @@ -566,7 +566,12 @@ void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMoveme for (iDV_Value = 0; iDV_Value < nDV_Value; iDV_Value++){ DV_Value = config->GetDV_Value(iDV, iDV_Value); - Gradient[iDV][iDV_Value] = SU2_TYPE::GetDerivative(DV_Value); + my_Gradient = SU2_TYPE::GetDerivative(DV_Value); +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&my_Gradient, &Gradient[iDV][iDV_Value], 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +#else + Gradient[iDV][iDV_Value] = my_Gradient; +#endif } } From 793465a563ca2fa19b17e6965baaa7b4113f887e Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Sun, 17 Jan 2016 18:49:29 -0800 Subject: [PATCH 157/269] Fixed issue in the ONERA M6 config file. --- .../steady_oneram6/inv_ONERAM6_adv.cfg | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index 019153466cc..ca533da18f4 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -3,7 +3,7 @@ % SU2 configuration file % % Case description: Optimization case for the ONERA M6 wing in inviscid flow % % Author: Francisco Palacios % -% Institution: Stanford University % +% Institution: Stanford University % % Date: 06.16.2014 % % File Version 4.1.0 "Cardinal" % % % @@ -188,27 +188,6 @@ CFL_REDUCTION_ADJFLOW= 0.25 % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT) TIME_DISCRE_ADJFLOW= EULER_IMPLICIT -% -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------% -% -% Tolerance of the Free-Form Deformation point inversion -FFD_TOLERANCE= 1E-10 -% -% Maximum number of iterations in the Free-Form Deformation point inversion -FFD_ITERATIONS= 500 -% -% FFD box definition: 3D case (FFD_BoxTag, X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, X4, Y4, Z4, -% X5, Y5, Z5, X6, Y6, Z6, X7, Y7, Z7, X8, Y8, Z8) -% 2D case (FFD_BoxTag, X1, Y1, 0.0, X2, Y2, 0.0, X3, Y3, 0.0, X4, Y4, 0.0, -% 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) -FFD_DEFINITION= (WING, -0.05, 0.0, -0.05, 0.8463, 0.0, -0.05, 1.209, 1.2896, -0.05, 0.6851, 1.2896, -0.05, -0.05, 0.0, 0.05, 0.8463, 0.0, 0.05, 1.209, 1.2896, 0.05, 0.6851, 1.2896, 0.05) -% -% FFD box degree: 3D case (x_degree, y_degree, z_degree) -% 2D case (x_degree, y_degree, 0) -FFD_DEGREE= (10, 8, 1) -% -% Surface continuity at the intersection with the FFD (1ST_DERIVATIVE, 2ND_DERIVATIVE) -FFD_CONTINUITY= 1ST_DERIVATIVE - % ----------------------- GEOMETRY EVALUATION PARAMETERS ----------------------% % % Geometrical evaluation mode (FUNCTION, GRADIENT) @@ -316,6 +295,7 @@ WRT_CON_FREQ_DUALTIME= 10 % % Output rind layers in the solution files WRT_HALO= NO + % -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------% % % Tolerance of the Free-Form Deformation point inversion @@ -336,6 +316,7 @@ FFD_DEGREE= (10, 8, 1) % % Surface continuity at the intersection with the FFD (1ST_DERIVATIVE, 2ND_DERIVATIVE) FFD_CONTINUITY= 2ND_DERIVATIVE + % ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% % % Kind of deformation (FFD_SETTING, FFD_CONTROL_POINT_2D, FFD_CAMBER_2D, FFD_THICKNESS_2D, @@ -362,6 +343,26 @@ DV_PARAM= ( WING, 1, 0, 0, 0.0, 0.0, 1.0 ) DV_VALUE= 0.0 % ------------------------ GRID DEFORMATION PARAMETERS ------------------------% +% +% Linear solver or smoother for implicit formulations (FGMRES, RESTARTED_FGMRES, BCGSTAB) +DEFORM_LINEAR_SOLVER= FGMRES +% +% Number of smoothing iterations for mesh deformation +DEFORM_LINEAR_ITER= 500 +% +% Number of nonlinear deformation iterations (surface deformation increments) +DEFORM_NONLINEAR_ITER= 2 +% +% Print the residuals during mesh deformation to the console (YES, NO) +DEFORM_CONSOLE_OUTPUT= NO +% +% Factor to multiply smallest cell volume for deform tolerance (0.001 default) +DEFORM_TOL_FACTOR = 0.001 +% +% Type of element stiffness imposed for FEA mesh deformation (INVERSE_VOLUME, +% WALL_DISTANCE, CONSTANT_STIFFNESS) +DEFORM_STIFFNESS_TYPE= INVERSE_VOLUME +% % Visualize the deformation (NO, YES) VISUALIZE_DEFORMATION= NO From de541951379d7de69ed83e4759f91c798e348d20 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Wed, 20 Jan 2016 13:22:05 -0800 Subject: [PATCH 158/269] Improved settings for ONERA M6 optimization tutorial. --- .../steady_oneram6/inv_ONERAM6_adv.cfg | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index ca533da18f4..20d10918f2c 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -37,8 +37,6 @@ FREESTREAM_PRESSURE= 101325.0 FREESTREAM_TEMPERATURE= 288.15 % ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% - % % Reference origin for moment computation REF_ORIGIN_MOMENT_X = 0.2015 @@ -87,7 +85,7 @@ NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES OBJECTIVE_FUNCTION= DRAG % % Courant-Friedrichs-Lewy condition of the finest grid -CFL_NUMBER= 10.0 +CFL_NUMBER= 5.0 % % Adaptive CFL number (NO, YES) CFL_ADAPT= NO @@ -100,7 +98,7 @@ CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) % % Number of total iterations -EXT_ITER= 2000 +EXT_ITER= 1000 % ----------------------- SLOPE LIMITER DEFINITION ----------------------------% % @@ -131,18 +129,18 @@ LINEAR_SOLVER_PREC= LU_SGS LINEAR_SOLVER_ERROR= 1E-6 % % Max number of iterations of the linear solver for the implicit formulation -LINEAR_SOLVER_ITER= 5 +LINEAR_SOLVER_ITER= 2 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % % Multi-Grid Levels (0 = no multi-grid) -MGLEVEL= 2 +MGLEVEL= 3 % % Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) -MGCYCLE= V_CYCLE +MGCYCLE= W_CYCLE % % Multi-Grid PreSmoothing Level -MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +MG_PRE_SMOOTH= ( 1, 1, 1, 1 ) % % Multi-Grid PostSmoothing Level MG_POST_SMOOTH= ( 0, 0, 0, 0 ) @@ -151,10 +149,10 @@ MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) % % Damping factor for the residual restriction -MG_DAMP_RESTRICTION= 0.9 +MG_DAMP_RESTRICTION= 0.95 % % Damping factor for the correction prolongation -MG_DAMP_PROLONGATION= 0.9 +MG_DAMP_PROLONGATION= 0.95 % --------------------- FLOW NUMERICAL METHOD DEFINITION ----------------------% % Convective numerical method: (JST, LAX-FRIEDRICH, ROE-1ST_ORDER, @@ -165,7 +163,7 @@ CONV_NUM_METHOD_FLOW= JST SLOPE_LIMITER_FLOW= VENKATAKRISHNAN % % 1st, 2nd and 4th order artificial dissipation coefficients -AD_COEFF_FLOW= ( 0.15, 0.5, 0.04 ) +AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) % % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) TIME_DISCRE_FLOW= EULER_IMPLICIT @@ -180,10 +178,10 @@ CONV_NUM_METHOD_ADJFLOW= JST SLOPE_LIMITER_ADJFLOW= VENKATAKRISHNAN % % 1st, 2nd, and 4th order artificial dissipation coefficients -AD_COEFF_ADJFLOW= ( 0.15, 0.5, 0.01 ) +AD_COEFF_ADJFLOW= ( 0.15, 0.0, 0.01 ) % % Reduction factor of the CFL coefficient in the adjoint problem -CFL_REDUCTION_ADJFLOW= 0.25 +CFL_REDUCTION_ADJFLOW= 0.5 % % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT) TIME_DISCRE_ADJFLOW= EULER_IMPLICIT @@ -207,9 +205,6 @@ GEO_LOCATION_SECTIONS= (0.0806, 1.1284) % % Plot loads and Cp distributions on each airfoil section GEO_PLOT_SECTIONS= NO -% -% Number of section cuts to make when calculating internal volume -GEO_VOLUME_SECTIONS= 101 % --------------------------- CONVERGENCE PARAMETERS --------------------------& % @@ -217,10 +212,10 @@ GEO_VOLUME_SECTIONS= 101 CONV_CRITERIA= RESIDUAL % % Residual reduction (order of magnitude with respect to the initial value) -RESIDUAL_REDUCTION= 5 +RESIDUAL_REDUCTION= 6 % % Min value of the residual (log10 of the residual) -RESIDUAL_MINVAL= -6.5 +RESIDUAL_MINVAL= -9 % % Start convergence criteria at iteration number STARTCONV_ITER= 100 @@ -292,9 +287,6 @@ WRT_CON_FREQ= 1 % % Writing convergence history frequency (dual time, only written to screen) WRT_CON_FREQ_DUALTIME= 10 -% -% Output rind layers in the solution files -WRT_HALO= NO % -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------% % @@ -409,5 +401,17 @@ OPT_OBJECTIVE= DRAG * 0.1 % ex= (Objective = Value ) * Scale, use '>','<','=' OPT_CONSTRAINT= (LIFT > 0.2864) * 0.1; (MAX_THICKNESS_SEC1 > 0.0570) * 0.1; (MAX_THICKNESS_SEC2 > 0.0513) * 0.1; (MAX_THICKNESS_SEC3 > 0.0457) * 0.1; (MAX_THICKNESS_SEC4 > 0.0399) * 0.1; (MAX_THICKNESS_SEC5 > 0.0343) * 0.1 % +% Maximum number of iterations +OPT_ITERATIONS= 100 +% +% Requested accuracy +OPT_ACCURACY= 1E-10 +% +% Upper bound for each design variable +OPT_BOUND_UPPER= 0.3 +% +% Lower bound for each design variable +OPT_BOUND_LOWER= -0.3 +% % Optimization design variables, separated by semicolons DEFINITION_DV= ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 8, 1, 0.0, 0.0, 1.0 ) From 444efb2af22e1dbc974c4e93e73c408a52306d2c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 21 Jan 2016 18:37:46 +0000 Subject: [PATCH 159/269] FSI: Improvements in convergence criteria and initial load transfer. --- Common/include/config_structure.hpp | 18 +++++- Common/include/config_structure.inl | 6 +- Common/src/config_structure.cpp | 6 +- SU2_CFD/src/SU2_CFD.cpp | 26 ++++---- SU2_CFD/src/integration_structure.cpp | 78 +++++++++++++++++++----- SU2_CFD/src/iteration_structure.cpp | 2 - SU2_CFD/src/output_structure.cpp | 8 ++- SU2_CFD/src/solver_direct_elasticity.cpp | 4 +- SU2_CFD/src/solver_fem_elasticity.cpp | 59 +++++++++++++----- SU2_CFD/src/transfer_physics.cpp | 26 ++++++-- 10 files changed, 172 insertions(+), 61 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 2424a405a90..918b33d65e0 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -684,12 +684,14 @@ class CConfig { Newmark_delta; /*!< \brief Parameter delta for Newmark method. */ unsigned short nIntCoeffs; /*!< \brief Number of integration coeffs for structural calculations. */ su2double *Int_Coeffs; /*!< \brief Time integration coefficients for structural method. */ - bool Gradual_Load, /*!< \brief Apply the load gradually. */ + bool Sigmoid_Load, /*!< \brief Apply the load using a sigmoid. */ Ramp_Load; /*!< \brief Apply the load with linear increases. */ bool IncrementalLoad; /*!< \brief Apply the load in increments (for nonlinear structural analysis). */ unsigned long IncLoad_Nincrements; /*!< \brief Number of increments. */ su2double *IncLoad_Criteria; /*!< \brief Criteria for the application of incremental loading. */ su2double Ramp_Time; /*!< \brief Time until the maximum load is applied. */ + su2double Sigmoid_Time; /*!< \brief Time until the maximum load is applied, using a sigmoid. */ + su2double Sigmoid_K; /*!< \brief Sigmoid parameter determining its steepness. */ su2double Static_Time; /*!< \brief Time while the structure is not loaded in FSI applications. */ unsigned short Pred_Order; /*!< \brief Order of the predictor for FSI applications. */ unsigned short Kind_Interpolation; /*!\brief type of interpolation to use for FSI applications. */ @@ -5373,7 +5375,7 @@ class CConfig { * \brief Check if the user wants to apply the load gradually. * \return TRUE means that the load is to be applied gradually. */ - bool GetGradual_Load(void); + bool GetSigmoid_Load(void); /*! * \brief Check if the user wants to apply the load as a ramp. @@ -5387,6 +5389,18 @@ class CConfig { */ su2double GetRamp_Time(void); + /*! + * \brief Get the maximum time of the sigmoid. + * \return Value of the max time while the load is increased using a sigmoid + */ + su2double GetSigmoid_Time(void); + + /*! + * \brief Get the sigmoid parameter. + * \return Parameter of steepness of the sigmoid + */ + su2double GetSigmoid_K(void); + /*! * \brief Get the maximum time of the ramp. * \return Value of the max time while the load is linearly increased diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 25f56d944b4..26d97733ae5 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1154,12 +1154,16 @@ inline unsigned short CConfig::GetnIntCoeffs(void) { return nIntCoeffs; } inline su2double CConfig::Get_Int_Coeffs(unsigned short val_coeff) { return Int_Coeffs[val_coeff]; } -inline bool CConfig::GetGradual_Load(void) { return Gradual_Load; } +inline bool CConfig::GetSigmoid_Load(void) { return Sigmoid_Load; } inline bool CConfig::GetRamp_Load(void) { return Ramp_Load; } inline su2double CConfig::GetRamp_Time(void) { return Ramp_Time; } +inline su2double CConfig::GetSigmoid_Time(void) { return Sigmoid_Time; } + +inline su2double CConfig::GetSigmoid_K(void) { return Sigmoid_K; } + inline su2double CConfig::GetStatic_Time(void) { return Static_Time; } inline unsigned short CConfig::GetPredictorOrder(void) { return Pred_Order; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 55673ae3412..86f280e4e02 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1151,11 +1151,15 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Parameter delta for Newmark scheme (s) */ addDoubleOption("NEWMARK_DELTA", Newmark_delta, 0.5); /* DESCRIPTION: Apply the load slowly or suddenly */ - addBoolOption("SIGMOID_LOADING", Gradual_Load, false); + addBoolOption("SIGMOID_LOADING", Sigmoid_Load, false); /* DESCRIPTION: Apply the load as a ramp */ addBoolOption("RAMP_LOADING", Ramp_Load, false); /* DESCRIPTION: Time while the load is to be increased linearly */ addDoubleOption("RAMP_TIME", Ramp_Time, 1.0); + /* DESCRIPTION: Time while the load is to be increased linearly */ + addDoubleOption("SIGMOID_TIME", Sigmoid_Time, 1.0); + /* DESCRIPTION: Constant of steepness of the sigmoid */ + addDoubleOption("SIGMOID_K", Sigmoid_K, 10.0); /* DESCRIPTION: Newmark - Generalized alpha - coefficients */ addDoubleListOption("TIME_INT_STRUCT_COEFFS", nIntCoeffs, Int_Coeffs); diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 46da25bd0d6..2c6f01c4a2b 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -313,7 +313,7 @@ int main(int argc, char *argv[]) { ofstream historyFile_FSI; bool writeHistFSI = config_container[ZONE_0]->GetWrite_Conv_FSI(); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ char cstrFSI[200]; string filenameHistFSI = config_container[ZONE_0]->GetConv_FileName_FSI(); strcpy (cstrFSI, filenameHistFSI.data()); @@ -376,18 +376,18 @@ int main(int argc, char *argv[]) { runtime->SetExtIter(ExtIter); /*--- Update the convergence history file (serial and parallel computations). ---*/ - if (fsi){ - if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; - for (iZone = 0; iZone < nZone; iZone++){ - if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; - else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; - output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, - config_container, integration_container, false, UsedTime, iZone); - } - - if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; - } - else { +// if (fsi){ +// if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; +// for (iZone = 0; iZone < nZone; iZone++){ +// if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; +// else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; +// output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, +// config_container, integration_container, false, UsedTime, iZone); +// } +// +// if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; +// } + if (!fsi){ output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, config_container, integration_container, false, UsedTime, ZONE_0); diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index d9c126d2dc4..834751e98c2 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -811,12 +811,14 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * su2double magResidualFSI, logResidualFSI_initial, logResidualFSI; su2double magResidualFSI_criteria, logResidualFSI_criteria; + unsigned long iExtIter = fea_config->GetExtIter(); + unsigned long iPoint, iDim; - unsigned long nPoint, nDim; + unsigned long nPointDomain, nDim; su2double *dispPred, *dispPred_Old; su2double CurrentTime=fea_config->GetCurrent_DynTime(); su2double Static_Time=fea_config->GetStatic_Time(); - su2double deltaU, deltaURad, deltaURes; + su2double deltaU, deltaURad, deltaURes, deltaURes_recv = 0.0; magResidualFSI_criteria = fea_config->GetOrderMagResidualFSI(); logResidualFSI_criteria = fea_config->GetMinLogResidualFSI(); @@ -825,7 +827,7 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * ofstream historyFile_FSI; bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ char cstrFSI[200]; string filenameHistFSI = fea_config->GetConv_FileName_FSI(); strcpy (cstrFSI, filenameHistFSI.data()); @@ -840,17 +842,18 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * fea_solver->SetFSI_ConvValue(0,0.0); fea_solver->SetFSI_ConvValue(1,0.0); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << endl; } } else if ((CurrentTime > Static_Time) && (iFSIIter > 0)) { - nPoint = fea_geometry->GetnPoint(); + // We loop only over the points that belong to the processor + nPointDomain = fea_geometry->GetnPointDomain(); nDim = fea_geometry->GetnDim(); - for (iPoint=0; iPoint < nPoint; iPoint++){ + for (iPoint=0; iPoint < nPointDomain; iPoint++){ deltaURad = 0.0; @@ -871,26 +874,35 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * } - if (writeHistFSI){ historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << deltaURes << "," ;} + // We need to communicate the maximum residual throughout the different processors + + #ifdef HAVE_MPI + /*--- We sum the squares of the norms across the different processors ---*/ + SU2_MPI::Allreduce(&deltaURes, &deltaURes_recv, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + #else + deltaURes_recv = deltaURes; + #endif + + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << deltaURes_recv << "," ;} if (iFSIIter == 1){ - fea_solver->SetFSI_ConvValue(0,deltaURes); - logResidualFSI_initial = log10(deltaURes); + fea_solver->SetFSI_ConvValue(0,deltaURes_recv); + logResidualFSI_initial = log10(deltaURes_recv); if (logResidualFSI_initial < logResidualFSI_criteria) Convergence_FSI = true; - if (writeHistFSI){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI_initial;} + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI_initial;} } else { - fea_solver->SetFSI_ConvValue(1,deltaURes); + fea_solver->SetFSI_ConvValue(1,deltaURes_recv); FEA_check[0] = fea_solver->GetFSI_ConvValue(0); logResidualFSI_initial = log10(FEA_check[0]); - logResidualFSI = log10(deltaURes); + logResidualFSI = log10(deltaURes_recv); magResidualFSI=fabs(logResidualFSI-logResidualFSI_initial); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << magResidualFSI ; } @@ -898,11 +910,11 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * if ((logResidualFSI < logResidualFSI_criteria) || (magResidualFSI > magResidualFSI_criteria)) Convergence_FSI = true; } - if (writeHistFSI){ historyFile_FSI << endl;} + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << endl;} } - if (writeHistFSI){ historyFile_FSI.close();} + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI.close();} /*--- Apply the same convergence criteria to all the processors ---*/ @@ -935,6 +947,42 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * #endif + unsigned long nFSIIter = fea_config->GetnIterFSI(); + + if ((Convergence_FSI) || (iFSIIter == (nFSIIter - 1))){ + + su2double WAitken; + unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); + + if (RelaxMethod_FSI == NO_RELAXATION){ + WAitken = 1.0; + } + else if (RelaxMethod_FSI == FIXED_PARAMETER){ + WAitken = fea_config->GetAitkenStatRelax(); + } + else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ + WAitken = fea_solver->GetWAitken_Dyn(); + } + else { + WAitken = 1.0; + cout << "No relaxation parameter used. " << endl; + } + + cout << endl; + cout.setf(ios::fixed, ios::floatfield); + cout << endl << "Simulation time: " << fea_config->GetCurrent_DynTime() << ". Time step: " << fea_config->GetDelta_DynTime() << "."; + cout.precision(6); + cout << endl <<"---------------------- FSI Convergence Summary -------------------------- "; + cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << " Res[OMAG]"<< endl; + cout.width(8); cout << iFSIIter; + cout.width(8); cout << iExtIter; + cout.width(15); cout << WAitken; + cout.width(15); cout << logResidualFSI; + cout.width(15); cout << magResidualFSI; + cout << endl << "------------------------------------------------------------------------- "; + cout << endl; + } + } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index e03b26a66c5..c5f50aa54de 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -946,8 +946,6 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, bool incremental_load = config_container[val_iZone]->GetIncrementalLoad(); // If an incremental load is applied - /*--- TODO: Convergence only checked for val_iZone ---*/ - /*--- This is to prevent problems when running a linear solver ---*/ if (!nonlinear) incremental_load = false; diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index cb23436ee11..7216eab394e 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -4157,6 +4157,8 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, bool fem = (config[val_iZone]->GetKind_Solver() == FEM_ELASTICITY); // FEM structural solver. bool linear_analysis = (config[val_iZone]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool nonlinear_analysis = (config[val_iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + + bool fsi = (config[val_iZone]->GetFSI_Simulation()); // FEM structural solver. bool turbo = config[val_iZone]->GetBoolTurboPerf(); string inMarker_Tag, outMarker_Tag; @@ -5027,7 +5029,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, } } } - else if (fem){ + else if (fem && !fsi){ if (dynamic){ cout << endl << "Simulation time: " << config[val_iZone]->GetCurrent_DynTime() << ". Time step: " << config[val_iZone]->GetDelta_DynTime() << "."; } @@ -5174,14 +5176,14 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, case FEM_ELASTICITY : if (!nonlinear_analysis) cout << endl << " Iter" << " Time(s)"; - else cout << endl << " IntIter" << " ExtIter"; + else cout << endl << " IntIter" << " ExtIter"; if (linear_analysis){ if (nDim == 2) cout << " Res[Displx]" << " Res[Disply]" << " CFEM(Total)"<< endl; if (nDim == 3) cout << " Res[Displx]" << " Res[Disply]" << " Res[Displz]" << " CFEM(Total)"<< endl; } else if (nonlinear_analysis){ - cout << " Res[UTOL]" << " Res[RTOL]" << " Res[ETOL]" << " CFEM(Total)"<< endl; + cout << " Res[UTOL]" << " Res[RTOL]" << " Res[ETOL]" << " CFEM(Total)"<< endl; } break; diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 3ca85f8ae39..9d948f27654 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -962,7 +962,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN su2double TotalLoad; - bool Gradual_Load = config->GetGradual_Load(); + bool Sigmoid_Load = config->GetSigmoid_Load(); su2double CurrentTime=config->GetCurrent_DynTime(); su2double ModAmpl, NonModAmpl; @@ -974,7 +974,7 @@ void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CN NonModAmpl=LoadDirVal*LoadDirMult; TotalLoad=min(ModAmpl,NonModAmpl); } - else if (Gradual_Load){ + else if (Sigmoid_Load){ ModAmpl=2*((1/(1+exp(-1*CurrentTime)))-0.5); TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5f844dbb763..544040591da 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -41,7 +41,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { Total_CFEA = 0.0; WAitken_Dyn = 0.0; WAitken_Dyn_tn1 = 0.0; - loadIncrement = 0.0; + loadIncrement = 1.0; element_container = NULL; node = NULL; @@ -1792,9 +1792,13 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver bool first_iter = (config->GetIntIter() == 0); bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - su2double solNorm = 0.0; + su2double solNorm = 0.0, solNorm_recv = 0.0; - // TODO: Check communication here to ensure the residuals are the same + int rank = MASTER_NODE; + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif if (nonlinear_analysis){ @@ -1821,11 +1825,22 @@ void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver solNorm += node[iPoint]->GetSolution(iVar) * node[iPoint]->GetSolution(iVar); } } - Conv_Ref[0] = max(sqrt(solNorm), EPS); // Norm of the solution vector + + // We need to communicate the norm of the solution and compute the RMS throughout the different processors + + #ifdef HAVE_MPI + /*--- We sum the squares of the norms across the different processors ---*/ + SU2_MPI::Allreduce(&solNorm, &solNorm_recv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + #else + solNorm_recv = solNorm; + #endif + + Conv_Ref[0] = max(sqrt(solNorm_recv), EPS); // Norm of the solution vector Conv_Check[0] = LinSysSol.norm() / Conv_Ref[0]; // Norm of the delta-solution vector Conv_Check[1] = LinSysRes.norm() / Conv_Ref[1]; // Norm of the residual Conv_Check[2] = dotProd(LinSysSol, LinSysRes) / Conv_Ref[2]; // Position for the energy tolerance + } /*--- MPI solution ---*/ @@ -1891,11 +1906,15 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co su2double TotalLoad; - bool Gradual_Load = config->GetGradual_Load(); + bool Sigmoid_Load = config->GetSigmoid_Load(); + su2double Sigmoid_Time = config->GetSigmoid_Time(); + su2double Sigmoid_K = config->GetSigmoid_K(); + su2double SigAux = 0.0; + su2double CurrentTime=config->GetCurrent_DynTime(); su2double ModAmpl, NonModAmpl; - bool Ramp_Load = config->GetRamp_Load(); + bool Ramp_Load = config->GetRamp_Load(); su2double Ramp_Time = config->GetRamp_Time(); if (Ramp_Load){ @@ -1903,8 +1922,11 @@ void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_co NonModAmpl=LoadDirVal*LoadDirMult; TotalLoad=min(ModAmpl,NonModAmpl); } - else if (Gradual_Load){ - ModAmpl=2*((1/(1+exp(-1*CurrentTime)))-0.5); + else if (Sigmoid_Load){ + SigAux = CurrentTime/ Sigmoid_Time; + ModAmpl = (1 / (1+exp(-1*Sigmoid_K*(SigAux - 0.5)) ) ); + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; } else{ @@ -3268,9 +3290,14 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, su2double Static_Time=fea_config->GetStatic_Time(); su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + ofstream historyFile_FSI; bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ char cstrFSI[200]; string filenameHistFSI = fea_config->GetConv_FileName_FSI(); strcpy (cstrFSI, filenameHistFSI.data()); @@ -3293,7 +3320,7 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, WAitkDyn = max(WAitkDyn, 0.1); SetWAitken_Dyn(WAitkDyn); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << " " << endl ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; @@ -3337,17 +3364,17 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, WAitkDyn = GetWAitken_Dyn(); - //TODO: double check this. - if (rbuf_denAitk > 1E-8){ - WAitkDyn = - 1.0 * WAitkDyn * rbuf_numAitk / rbuf_denAitk ; - } + //TODO: double check this. + if (rbuf_denAitk > 1E-15){ + WAitkDyn = - 1.0 * WAitkDyn * rbuf_numAitk / rbuf_denAitk ; + } WAitkDyn = max(WAitkDyn, 0.1); WAitkDyn = min(WAitkDyn, 1.0); SetWAitken_Dyn(WAitkDyn); - if (writeHistFSI){ + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn << "," ; @@ -3357,7 +3384,7 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, } - if (writeHistFSI){historyFile_FSI.close();} + if (writeHistFSI && (rank == MASTER_NODE)){historyFile_FSI.close();} } diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index f6db35d5c61..2bad1b67799 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -84,6 +84,11 @@ void CTransfer_FlowTraction::GetPhysical_Constants(CSolver *flow_solution, CSolv bool Ramp_Load = struct_config->GetRamp_Load(); su2double Ramp_Time = struct_config->GetRamp_Time(); + bool Sigmoid_Load = struct_config->GetSigmoid_Load(); + su2double Sigmoid_Time = struct_config->GetSigmoid_Time(); + su2double Sigmoid_K = struct_config->GetSigmoid_K(); + su2double SigAux = 0.0; + if (CurrentTime <= Static_Time){ ModAmpl=0.0; } else if((CurrentTime > Static_Time) && (CurrentTime <= (Static_Time + Ramp_Time)) && @@ -93,6 +98,15 @@ void CTransfer_FlowTraction::GetPhysical_Constants(CSolver *flow_solution, CSolv ModAmpl = min(ModAmpl,1.0); Physical_Constants[1] = ModAmpl; } + else if((CurrentTime > Static_Time) && + (CurrentTime <= (Static_Time + Sigmoid_Time)) && + (Sigmoid_Load)){ + SigAux = (CurrentTime-Static_Time) / Sigmoid_Time; + ModAmpl = (1 / (1+exp(-1*Sigmoid_K*(SigAux - 0.5)) ) ); + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); + Physical_Constants[1] = ModAmpl; + } else{ Physical_Constants[1] = 1.0; } } @@ -238,12 +252,12 @@ void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_soluti Donor_Variable[iVar] = DisplacementDonor[iVar] - DisplacementDonor_Prev[iVar]; } - if (Point_Struct == 15){ - cout << "-------------------------------NODE 15: -----------------------------------------" << endl; - cout << "Displacement: " << Displacement[0] << " , " << Displacement[1] << endl; - cout << "DisplacementDonor: " << DisplacementDonor[0] << " , " << DisplacementDonor[1] << endl; - cout << "DisplacementDonor_Prev: " << DisplacementDonor_Prev[0] << " , " << DisplacementDonor_Prev[1] << endl; - } +// if (Point_Struct == 15){ +// cout << "-------------------------------NODE 15: -----------------------------------------" << endl; +// cout << "Displacement: " << Displacement[0] << " , " << Displacement[1] << endl; +// cout << "DisplacementDonor: " << DisplacementDonor[0] << " , " << DisplacementDonor[1] << endl; +// cout << "DisplacementDonor_Prev: " << DisplacementDonor_Prev[0] << " , " << DisplacementDonor_Prev[1] << endl; +// } } From c87555589e37370f88ea22e455661bf7204e44bb Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 22 Jan 2016 11:59:56 +0000 Subject: [PATCH 160/269] FSI: Improvements in convergence output. --- SU2_CFD/src/integration_structure.cpp | 12 +++++++----- SU2_CFD/src/transfer_physics.cpp | 6 ------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 834751e98c2..702dff40fa2 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -820,7 +820,7 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * su2double Static_Time=fea_config->GetStatic_Time(); su2double deltaU, deltaURad, deltaURes, deltaURes_recv = 0.0; - magResidualFSI_criteria = fea_config->GetOrderMagResidualFSI(); + magResidualFSI_criteria = -1*fea_config->GetOrderMagResidualFSI(); logResidualFSI_criteria = fea_config->GetMinLogResidualFSI(); deltaURes = 0.0; @@ -900,14 +900,14 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * logResidualFSI_initial = log10(FEA_check[0]); logResidualFSI = log10(deltaURes_recv); - magResidualFSI=fabs(logResidualFSI-logResidualFSI_initial); + magResidualFSI=logResidualFSI-logResidualFSI_initial; if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << magResidualFSI ; } - if ((logResidualFSI < logResidualFSI_criteria) || (magResidualFSI > magResidualFSI_criteria)) Convergence_FSI = true; + if ((logResidualFSI < logResidualFSI_criteria) || (magResidualFSI < magResidualFSI_criteria)) Convergence_FSI = true; } if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << endl;} @@ -949,7 +949,7 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * unsigned long nFSIIter = fea_config->GetnIterFSI(); - if ((Convergence_FSI) || (iFSIIter == (nFSIIter - 1))){ + if (rank == MASTER_NODE){ su2double WAitken; unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); @@ -977,7 +977,9 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * cout.width(8); cout << iFSIIter; cout.width(8); cout << iExtIter; cout.width(15); cout << WAitken; - cout.width(15); cout << logResidualFSI; + cout.width(15); + if (iFSIIter == 1) cout << logResidualFSI_initial; + else cout << logResidualFSI; cout.width(15); cout << magResidualFSI; cout << endl << "------------------------------------------------------------------------- "; cout << endl; diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 2bad1b67799..eb84c1cf85b 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -252,12 +252,6 @@ void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_soluti Donor_Variable[iVar] = DisplacementDonor[iVar] - DisplacementDonor_Prev[iVar]; } -// if (Point_Struct == 15){ -// cout << "-------------------------------NODE 15: -----------------------------------------" << endl; -// cout << "Displacement: " << Displacement[0] << " , " << Displacement[1] << endl; -// cout << "DisplacementDonor: " << DisplacementDonor[0] << " , " << DisplacementDonor[1] << endl; -// cout << "DisplacementDonor_Prev: " << DisplacementDonor_Prev[0] << " , " << DisplacementDonor_Prev[1] << endl; -// } } From 5c6d2add37248070521129ed12b46b3aa2aa1000 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 26 Jan 2016 17:37:19 +0000 Subject: [PATCH 161/269] Restart: communicate old geometry for dynamic meshes. --- Common/include/geometry_structure.hpp | 12 ++ Common/include/geometry_structure.inl | 2 + Common/src/geometry_structure.cpp | 262 ++++++++++++++++++++++++++ SU2_CFD/src/driver_structure.cpp | 8 +- SU2_CFD/src/solver_structure.cpp | 3 + 5 files changed, 284 insertions(+), 3 deletions(-) diff --git a/Common/include/geometry_structure.hpp b/Common/include/geometry_structure.hpp index 1bba403a722..3f09758c7f2 100644 --- a/Common/include/geometry_structure.hpp +++ b/Common/include/geometry_structure.hpp @@ -599,6 +599,12 @@ class CGeometry { */ virtual void Set_MPI_GridVel(CConfig *config); + /*! + * \brief A virtual member. + * \param[in] config - Definition of the particular problem. + */ + virtual void Set_MPI_OldCoord(CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometry of the fine mesh. @@ -1204,6 +1210,12 @@ class CPhysicalGeometry : public CGeometry { */ void Set_MPI_GridVel(CConfig *config); + /*! + * \brief Perform the MPI communication for the grid coordinates (dynamic meshes) for restart purposes. + * \param[in] config - Definition of the particular problem. + */ + void Set_MPI_OldCoord(CConfig *config); + /*! * \brief Set the periodic boundary conditions. * \param[in] config - Definition of the particular problem. diff --git a/Common/include/geometry_structure.inl b/Common/include/geometry_structure.inl index c3a7da73f8b..36ebb80cda1 100644 --- a/Common/include/geometry_structure.inl +++ b/Common/include/geometry_structure.inl @@ -91,6 +91,8 @@ inline void CGeometry::Set_MPI_Coord(CConfig *config) { } inline void CGeometry::Set_MPI_GridVel(CConfig *config) { } +inline void CGeometry::Set_MPI_OldCoord(CConfig *config) { } + inline void CGeometry::SetPeriodicBoundary(CConfig *config) { } inline void CGeometry::SetPeriodicBoundary(CGeometry *geometry, CConfig *config) { } diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index d2918de6ed4..a653f3455f4 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -11720,6 +11720,268 @@ void CPhysicalGeometry::Set_MPI_GridVel(CConfig *config) { } +void CPhysicalGeometry::Set_MPI_OldCoord(CConfig *config) { + + unsigned short iDim, iMarker, iPeriodic_Index, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double rotMatrix[3][3], *angles, theta, cosTheta, sinTheta, phi, cosPhi, sinPhi, psi, cosPsi, sinPsi; + + su2double *Buffer_Receive_Coord_n = NULL, *Buffer_Send_Coord_n = NULL, *Coord_n = NULL, *newCoord_n = NULL; + + newCoord_n = new su2double[nDim]; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = nVertex[MarkerS]; nVertexR = nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nDim; nBufferR_Vector = nVertexR*nDim; + + /*--- Allocate Receive and send buffers ---*/ + + Buffer_Receive_Coord_n = new su2double [nBufferR_Vector]; + Buffer_Send_Coord_n = new su2double[nBufferS_Vector]; + + /*--- Copy the coordinates that should be sended ---*/ + + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = vertex[MarkerS][iVertex]->GetNode(); + Coord_n = node[iPoint]->GetCoord_n(); + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Coord_n[iDim*nVertexS+iVertex] = Coord_n[iDim]; + } + +#ifdef HAVE_MPI + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_Coord_n, nBufferS_Vector, MPI_DOUBLE, send_to,0, + Buffer_Receive_Coord_n, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Receive_Coord_n[iDim*nVertexR+iVertex] = Buffer_Send_Coord_n[iDim*nVertexR+iVertex]; + } + +#endif + + /*--- Deallocate send buffer ---*/ + + delete [] Buffer_Send_Coord_n; + + /*--- Do the coordinate transformation ---*/ + + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + + iPoint = vertex[MarkerR][iVertex]->GetNode(); + iPeriodic_Index = vertex[MarkerR][iVertex]->GetRotation_Type(); + + /*--- Retrieve the supplied periodic information. ---*/ + + angles = config->GetPeriodicRotation(iPeriodic_Index); + + /*--- Store angles separately for clarity. ---*/ + + theta = angles[0]; phi = angles[1]; psi = angles[2]; + cosTheta = cos(theta); cosPhi = cos(phi); cosPsi = cos(psi); + sinTheta = sin(theta); sinPhi = sin(phi); sinPsi = sin(psi); + + /*--- Compute the rotation matrix. Note that the implicit + ordering is rotation about the x-axis, y-axis, + then z-axis. Note that this is the transpose of the matrix + used during the preprocessing stage. ---*/ + + rotMatrix[0][0] = cosPhi*cosPsi; rotMatrix[1][0] = sinTheta*sinPhi*cosPsi - cosTheta*sinPsi; rotMatrix[2][0] = cosTheta*sinPhi*cosPsi + sinTheta*sinPsi; + rotMatrix[0][1] = cosPhi*sinPsi; rotMatrix[1][1] = sinTheta*sinPhi*sinPsi + cosTheta*cosPsi; rotMatrix[2][1] = cosTheta*sinPhi*sinPsi - sinTheta*cosPsi; + rotMatrix[0][2] = -sinPhi; rotMatrix[1][2] = sinTheta*cosPhi; rotMatrix[2][2] = cosTheta*cosPhi; + + /*--- Copy coordinates before performing transformation. ---*/ + + for (iDim = 0; iDim < nDim; iDim++) + newCoord_n[iDim] = Buffer_Receive_Coord_n[iDim*nVertexR+iVertex]; + + /*--- Rotate the coordinates. ---*/ + + if (nDim == 2) { + newCoord_n[0] = (rotMatrix[0][0]*Buffer_Receive_Coord_n[0*nVertexR+iVertex] + + rotMatrix[0][1]*Buffer_Receive_Coord_n[1*nVertexR+iVertex]); + newCoord_n[1] = (rotMatrix[1][0]*Buffer_Receive_Coord_n[0*nVertexR+iVertex] + + rotMatrix[1][1]*Buffer_Receive_Coord_n[1*nVertexR+iVertex]); + } + else { + newCoord_n[0] = (rotMatrix[0][0]*Buffer_Receive_Coord_n[0*nVertexR+iVertex] + + rotMatrix[0][1]*Buffer_Receive_Coord_n[1*nVertexR+iVertex] + + rotMatrix[0][2]*Buffer_Receive_Coord_n[2*nVertexR+iVertex]); + newCoord_n[1] = (rotMatrix[1][0]*Buffer_Receive_Coord_n[0*nVertexR+iVertex] + + rotMatrix[1][1]*Buffer_Receive_Coord_n[1*nVertexR+iVertex] + + rotMatrix[1][2]*Buffer_Receive_Coord_n[2*nVertexR+iVertex]); + newCoord_n[2] = (rotMatrix[2][0]*Buffer_Receive_Coord_n[0*nVertexR+iVertex] + + rotMatrix[2][1]*Buffer_Receive_Coord_n[1*nVertexR+iVertex] + + rotMatrix[2][2]*Buffer_Receive_Coord_n[2*nVertexR+iVertex]); + } + + /*--- Copy transformed coordinates back into buffer. ---*/ + + node[iPoint]->SetCoord_n(newCoord_n); + + } + + /*--- Deallocate receive buffer. ---*/ + + delete [] Buffer_Receive_Coord_n; + + } + + } + + delete [] newCoord_n; + + /*--------------------------------------------------------------------------------------------------*/ + /*--- We repeat the process for the coordinate n-1, in the case that the simulation is 2nd order ---*/ + /*--------------------------------------------------------------------------------------------------*/ + + if (config->GetUnsteady_Simulation() == DT_STEPPING_2ND){ + + su2double *Buffer_Receive_Coord_n1 = NULL, *Buffer_Send_Coord_n1 = NULL, *Coord_n1 = NULL, *newCoord_n1 = NULL; + newCoord_n1 = new su2double[nDim]; + + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = nVertex[MarkerS]; nVertexR = nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nDim; nBufferR_Vector = nVertexR*nDim; + + /*--- Allocate Receive and send buffers ---*/ + + Buffer_Receive_Coord_n1 = new su2double [nBufferR_Vector]; + Buffer_Send_Coord_n1 = new su2double[nBufferS_Vector]; + + /*--- Copy the coordinates that should be sended ---*/ + + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = vertex[MarkerS][iVertex]->GetNode(); + Coord_n1 = node[iPoint]->GetCoord_n1(); + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_Coord_n1[iDim*nVertexS+iVertex] = Coord_n1[iDim]; + } + +#ifdef HAVE_MPI + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_Coord_n1, nBufferS_Vector, MPI_DOUBLE, send_to,0, + Buffer_Receive_Coord_n1, nBufferR_Vector, MPI_DOUBLE, receive_from,0, MPI_COMM_WORLD, &status); +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Receive_Coord_n1[iDim*nVertexR+iVertex] = Buffer_Send_Coord_n1[iDim*nVertexR+iVertex]; + } + +#endif + + /*--- Deallocate send buffer ---*/ + + delete [] Buffer_Send_Coord_n1; + + /*--- Do the coordinate transformation ---*/ + + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + + iPoint = vertex[MarkerR][iVertex]->GetNode(); + iPeriodic_Index = vertex[MarkerR][iVertex]->GetRotation_Type(); + + /*--- Retrieve the supplied periodic information. ---*/ + + angles = config->GetPeriodicRotation(iPeriodic_Index); + + /*--- Store angles separately for clarity. ---*/ + + theta = angles[0]; phi = angles[1]; psi = angles[2]; + cosTheta = cos(theta); cosPhi = cos(phi); cosPsi = cos(psi); + sinTheta = sin(theta); sinPhi = sin(phi); sinPsi = sin(psi); + + /*--- Compute the rotation matrix. Note that the implicit + ordering is rotation about the x-axis, y-axis, + then z-axis. Note that this is the transpose of the matrix + used during the preprocessing stage. ---*/ + + rotMatrix[0][0] = cosPhi*cosPsi; rotMatrix[1][0] = sinTheta*sinPhi*cosPsi - cosTheta*sinPsi; rotMatrix[2][0] = cosTheta*sinPhi*cosPsi + sinTheta*sinPsi; + rotMatrix[0][1] = cosPhi*sinPsi; rotMatrix[1][1] = sinTheta*sinPhi*sinPsi + cosTheta*cosPsi; rotMatrix[2][1] = cosTheta*sinPhi*sinPsi - sinTheta*cosPsi; + rotMatrix[0][2] = -sinPhi; rotMatrix[1][2] = sinTheta*cosPhi; rotMatrix[2][2] = cosTheta*cosPhi; + + /*--- Copy coordinates before performing transformation. ---*/ + + for (iDim = 0; iDim < nDim; iDim++) + newCoord_n1[iDim] = Buffer_Receive_Coord_n1[iDim*nVertexR+iVertex]; + + /*--- Rotate the coordinates. ---*/ + + if (nDim == 2) { + newCoord_n1[0] = (rotMatrix[0][0]*Buffer_Receive_Coord_n1[0*nVertexR+iVertex] + + rotMatrix[0][1]*Buffer_Receive_Coord_n1[1*nVertexR+iVertex]); + newCoord_n1[1] = (rotMatrix[1][0]*Buffer_Receive_Coord_n1[0*nVertexR+iVertex] + + rotMatrix[1][1]*Buffer_Receive_Coord_n1[1*nVertexR+iVertex]); + } + else { + newCoord_n1[0] = (rotMatrix[0][0]*Buffer_Receive_Coord_n1[0*nVertexR+iVertex] + + rotMatrix[0][1]*Buffer_Receive_Coord_n1[1*nVertexR+iVertex] + + rotMatrix[0][2]*Buffer_Receive_Coord_n1[2*nVertexR+iVertex]); + newCoord_n1[1] = (rotMatrix[1][0]*Buffer_Receive_Coord_n1[0*nVertexR+iVertex] + + rotMatrix[1][1]*Buffer_Receive_Coord_n1[1*nVertexR+iVertex] + + rotMatrix[1][2]*Buffer_Receive_Coord_n1[2*nVertexR+iVertex]); + newCoord_n1[2] = (rotMatrix[2][0]*Buffer_Receive_Coord_n1[0*nVertexR+iVertex] + + rotMatrix[2][1]*Buffer_Receive_Coord_n1[1*nVertexR+iVertex] + + rotMatrix[2][2]*Buffer_Receive_Coord_n1[2*nVertexR+iVertex]); + } + + /*--- Copy transformed coordinates back into buffer. ---*/ + + node[iPoint]->SetCoord_n1(newCoord_n1); + + } + + /*--- Deallocate receive buffer. ---*/ + + delete [] Buffer_Receive_Coord_n1; + + } + + } + + delete [] newCoord_n1; + + } + + /*--------------------------------------------------------------------------------------------------*/ + +} + void CPhysicalGeometry::SetPeriodicBoundary(CConfig *config) { unsigned short iMarker, jMarker, kMarker = 0, iPeriodic, iDim, nPeriodic = 0, VTK_Type; diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 972aca7fd36..7f39d3d7e09 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -46,6 +46,8 @@ CDriver::CDriver(CIteration **iteration_container, unsigned short iMesh, iZone, jZone, iSol; unsigned short nZone, nDim; + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -122,15 +124,15 @@ CDriver::CDriver(CIteration **iteration_container, /*--- Definition of the interface and transfer conditions between different zones. *--- The transfer container is defined for zones paired one to one. - *--- This only works for a multizone problem (nZone > 1). + *--- This only works for a multizone FSI problem (nZone > 1). *--- Also, at the moment this capability is limited to two zones (nZone < 3). *--- This will change in the future. ---*/ - if (rank == MASTER_NODE) + if ((rank == MASTER_NODE) && (fsi)) cout << endl <<"------------------- Multizone Interface Preprocessing -------------------" << endl; - if ((nZone > 1) && (nZone < 3)) { + if (((nZone > 1) && (nZone < 3)) && (fsi)) { for (iZone = 0; iZone < nZone; iZone++){ transfer_container[iZone] = new CTransfer*[nZone]; diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index 2edaffbb942..cf7eade34df 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1821,6 +1821,9 @@ void CSolver::Restart_OldGeometry(CGeometry *geometry, CConfig *config) { } + /*--- It's necessary to communicate this information ---*/ + + geometry->Set_MPI_OldCoord(config); } From 6ce9c2b44dedd3e2549d82d787289305df36c1f0 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Wed, 27 Jan 2016 17:39:53 -0800 Subject: [PATCH 162/269] Improved memory usage during adjacency building for ParMETIS (SU2 format). Some other clean up. --- Common/src/geometry_structure.cpp | 313 ++++++++++++++++++++++-------- 1 file changed, 228 insertions(+), 85 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 96c1e9eb18c..240e044797d 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -5948,6 +5948,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes unsigned long vnodes_tetra[4], vnodes_hexa[8], vnodes_prism[6], vnodes_pyramid[5], dummyLong, GlobalIndex; unsigned long i, j; + long local_index; char cstr[200]; su2double Coord_2D[2], Coord_3D[3]; string::size_type position; @@ -6110,12 +6111,14 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes } /*--- Get the number of remainder points after the even division ---*/ + rem_points = nPoint-total_pt_accounted; for (i = 0; i > adj_nodes(local_node, vector(0)); + mesh_file.open(cstr, ios::in); @@ -6253,140 +6248,284 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes case TRIANGLE: - elem_line >> vnodes_triangle[0]; elem_line >> vnodes_triangle[1]; elem_line >> vnodes_triangle[2]; + /*--- Load the connectivity for this element. ---*/ + + elem_line >> vnodes_triangle[0]; + elem_line >> vnodes_triangle[1]; + elem_line >> vnodes_triangle[2]; + + /*--- Decide whether we need to store this element, i.e., check if + any of the nodes making up this element have a global index value + that falls within the range of our linear partitioning. ---*/ + for (i = 0; i < N_POINTS_TRIANGLE; i++) { - if ((vnodes_triangle[i]>=starting_node[rank])&&(vnodes_triangle[i]= 0) && (local_index < (long)local_node)) { + + /*--- This node is within our linear partition. Mark this + entire element to be added to our list for this rank, and + add the neighboring nodes to this nodes' adjacency list. ---*/ + elem_reqd = true; - for (unsigned long j=0; j> vnodes_quad[0]; elem_line >> vnodes_quad[1]; elem_line >> vnodes_quad[2]; elem_line >> vnodes_quad[3]; + /*--- Load the connectivity for this element. ---*/ + + elem_line >> vnodes_quad[0]; + elem_line >> vnodes_quad[1]; + elem_line >> vnodes_quad[2]; + elem_line >> vnodes_quad[3]; + + /*--- Decide whether we need to store this element, i.e., check if + any of the nodes making up this element have a global index value + that falls within the range of our linear partitioning. ---*/ + for (i = 0; i < N_POINTS_QUADRILATERAL; i++) { - if ((vnodes_quad[i]>=starting_node[rank])&&(vnodes_quad[i]= 0) && (local_index < (long)local_node)) { + + /*--- This node is within our linear partition. Mark this + entire element to be added to our list for this rank, and + add the neighboring nodes to this nodes' adjacency list. ---*/ + elem_reqd = true; - for (unsigned long j=0; j> vnodes_tetra[0]; elem_line >> vnodes_tetra[1]; elem_line >> vnodes_tetra[2]; elem_line >> vnodes_tetra[3]; + /*--- Load the connectivity for this element. ---*/ + + elem_line >> vnodes_tetra[0]; + elem_line >> vnodes_tetra[1]; + elem_line >> vnodes_tetra[2]; + elem_line >> vnodes_tetra[3]; + + /*--- Decide whether we need to store this element, i.e., check if + any of the nodes making up this element have a global index value + that falls within the range of our linear partitioning. ---*/ + for (i = 0; i < N_POINTS_TETRAHEDRON; i++) { - if ((vnodes_tetra[i]>=starting_node[rank])&&(vnodes_tetra[i]= 0) && (local_index < (long)local_node)) { + + /*--- This node is within our linear partition. Mark this + entire element to be added to our list for this rank, and + add the neighboring nodes to this nodes' adjacency list. ---*/ + elem_reqd = true; - for (j = 0; j> vnodes_hexa[0]; elem_line >> vnodes_hexa[1]; elem_line >> vnodes_hexa[2]; - elem_line >> vnodes_hexa[3]; elem_line >> vnodes_hexa[4]; elem_line >> vnodes_hexa[5]; - elem_line >> vnodes_hexa[6]; elem_line >> vnodes_hexa[7]; + /*--- Load the connectivity for this element. ---*/ + + elem_line >> vnodes_hexa[0]; + elem_line >> vnodes_hexa[1]; + elem_line >> vnodes_hexa[2]; + elem_line >> vnodes_hexa[3]; + elem_line >> vnodes_hexa[4]; + elem_line >> vnodes_hexa[5]; + elem_line >> vnodes_hexa[6]; + elem_line >> vnodes_hexa[7]; + + /*--- Decide whether we need to store this element, i.e., check if + any of the nodes making up this element have a global index value + that falls within the range of our linear partitioning. ---*/ + for (i = 0; i < N_POINTS_HEXAHEDRON; i++) { - if ((vnodes_hexa[i]>=starting_node[rank])&&(vnodes_hexa[i]= 0) && (local_index < (long)local_node)) { + + /*--- This node is within our linear partition. Mark this + entire element to be added to our list for this rank, and + add the neighboring nodes to this nodes' adjacency list. ---*/ + elem_reqd = true; - for (j = 0; j < N_POINTS_HEXAHEDRON; j++) { - if (i!=j) { - adjacent_elem[vnodes_hexa[i]-starting_node[rank]][adj_counter[vnodes_hexa[i]-starting_node[rank]]]=vnodes_hexa[j]; - adj_counter[vnodes_hexa[i]-starting_node[rank]]++; - } + for (unsigned long j=0; j> vnodes_prism[0]; elem_line >> vnodes_prism[1]; elem_line >> vnodes_prism[2]; - elem_line >> vnodes_prism[3]; elem_line >> vnodes_prism[4]; elem_line >> vnodes_prism[5]; + /*--- Load the connectivity for this element. ---*/ + + elem_line >> vnodes_prism[0]; + elem_line >> vnodes_prism[1]; + elem_line >> vnodes_prism[2]; + elem_line >> vnodes_prism[3]; + elem_line >> vnodes_prism[4]; + elem_line >> vnodes_prism[5]; + + /*--- Decide whether we need to store this element, i.e., check if + any of the nodes making up this element have a global index value + that falls within the range of our linear partitioning. ---*/ + for (i = 0; i < N_POINTS_PRISM; i++) { - if ((vnodes_prism[i]>=starting_node[rank])&&(vnodes_prism[i]= 0) && (local_index < (long)local_node)) { + + /*--- This node is within our linear partition. Mark this + entire element to be added to our list for this rank, and + add the neighboring nodes to this nodes' adjacency list. ---*/ + elem_reqd = true; - for (j = 0; j < N_POINTS_PRISM; j++) { - if (i!=j) { - adjacent_elem[vnodes_prism[i]-starting_node[rank]][adj_counter[vnodes_prism[i]-starting_node[rank]]]=vnodes_prism[j]; - adj_counter[vnodes_prism[i]-starting_node[rank]]++; - } + for (unsigned long j=0; j> vnodes_pyramid[0]; elem_line >> vnodes_pyramid[1]; elem_line >> vnodes_pyramid[2]; - elem_line >> vnodes_pyramid[3]; elem_line >> vnodes_pyramid[4]; + /*--- Load the connectivity for this element. ---*/ + + elem_line >> vnodes_pyramid[0]; + elem_line >> vnodes_pyramid[1]; + elem_line >> vnodes_pyramid[2]; + elem_line >> vnodes_pyramid[3]; + elem_line >> vnodes_pyramid[4]; + + /*--- Decide whether we need to store this element, i.e., check if + any of the nodes making up this element have a global index value + that falls within the range of our linear partitioning. ---*/ + for (i = 0; i < N_POINTS_PYRAMID; i++) { - if ((vnodes_pyramid[i]>=starting_node[rank])&&(vnodes_pyramid[i]= 0) && (local_index < (long)local_node)) { + + /*--- This node is within our linear partition. Mark this + entire element to be added to our list for this rank, and + add the neighboring nodes to this nodes' adjacency list. ---*/ + elem_reqd = true; - for (j = 0; j < N_POINTS_PYRAMID; j++) { - if (i!=j) { - adjacent_elem[vnodes_pyramid[i]-starting_node[rank]][adj_counter[vnodes_pyramid[i]-starting_node[rank]]]=vnodes_pyramid[j]; - adj_counter[vnodes_pyramid[i]-starting_node[rank]]++; - } + for (unsigned long j=0; j temp_adjacency; unsigned long local_count=0; + /*--- Here, we transfer the adjacency information from a double vector + on a node-by-node basis into a single vector container. First, we sort + the entries and remove the duplicates we find for each node, then we + copy it into the single vect and clear the memory from the double vec. ---*/ + for (unsigned long i = 0; i < local_node; i++) { - for (j = 0; j Date: Thu, 28 Jan 2016 00:44:05 -0800 Subject: [PATCH 163/269] Improved memory usage for building adjacency in CGNS reader. --- Common/src/geometry_structure.cpp | 67 ++++++++++++++++--------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 240e044797d..87eab8d46d5 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -7175,7 +7175,11 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me cg_error_exit(); if (rank == MASTER_NODE) { cout << "Loading " << coordname; - cout << " values into linear partitions." << endl; + if (size > SINGLE_NODE) { + cout << " values into linear partitions." << endl; + } else { + cout << " values." << endl; + } } /*--- Always retrieve the grid coords in su2double precision. ---*/ @@ -7461,7 +7465,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- If we have found that this is a boundary section (we assume that internal cells and boundary cells do not exist in the same - section together), the master node read the boundary section. + section together), the master node reads the boundary section. Otherwise, we have all ranks read and communicate the internals. ---*/ if (!isInternal[j-1][s-1]) { @@ -7918,14 +7922,9 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me if (nDim == 3) cout << "Three dimensional problem." << endl; } - /*--- Initialize some arrays for the adjacency information (ParMETIS). ---*/ + /*--- Initialize an array for the adjacency information (ParMETIS). ---*/ - unsigned long *adj_counter = new unsigned long[local_node]; - unsigned long **adjacent_elem = new unsigned long*[local_node]; - for (iPoint = 0; iPoint < local_node; iPoint++) { - adjacent_elem[iPoint] = new unsigned long[2000]; - adj_counter[iPoint] = 0; - } + vector< vector > adj_nodes(local_node, vector(0)); /*--- Store the total number of interior elements (global). ---*/ @@ -7975,6 +7974,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Instantiate this element and build adjacency structure. ---*/ switch(VTK_Type) { + case TRIANGLE: for ( int j = 0; j < N_POINTS_TRIANGLE; j++ ) { vnodes_cgns[j] = connElems[k][s][j+1][i]; @@ -7984,16 +7984,18 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me if ((vnodes_cgns[ii]>=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]SetMarker_All_GeoEval(iMarker, config->GetMarker_CfgFile_GeoEval(Marker_Tag)); config->SetMarker_All_Designing(iMarker, config->GetMarker_CfgFile_Designing(Marker_Tag)); config->SetMarker_All_Plotting(iMarker, config->GetMarker_CfgFile_Plotting(Marker_Tag)); - config->SetMarker_All_FSIinterface(iMarker, config->GetMarker_CfgFile_FSIinterface(Marker_Tag)); + config->SetMarker_All_FSIinterface(iMarker, config->GetMarker_CfgFile_FSIinterface(Marker_Tag)); config->SetMarker_All_DV(iMarker, config->GetMarker_CfgFile_DV(Marker_Tag)); config->SetMarker_All_Moving(iMarker, config->GetMarker_CfgFile_Moving(Marker_Tag)); config->SetMarker_All_PerBound(iMarker, config->GetMarker_CfgFile_PerBound(Marker_Tag)); From f5daa7670a60d29f0aa5e3268e57e7401a9b9d6a Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Thu, 28 Jan 2016 02:40:07 -0800 Subject: [PATCH 164/269] More accurate adjacency information for ParMETIS based on VTK assumption (SU2 format). --- Common/src/geometry_structure.cpp | 64 +++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 87eab8d46d5..f2719074317 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -6230,8 +6230,6 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes be element redundancy, since multiple ranks will store the same elems on the boundaries of the initial linear partitioning. ---*/ - // TO DO: remove redundant edges (quads have extra diagonals for instance) - element_count=0; loc_element_count=0; ielem_div=0; while (ielem_div < nElem) { getline(mesh_file, text_line); @@ -6313,9 +6311,12 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes add the neighboring nodes to this nodes' adjacency list. ---*/ elem_reqd = true; - for (unsigned long j=0; j Date: Thu, 28 Jan 2016 14:36:28 +0000 Subject: [PATCH 165/269] FSI: bug fix in restart. --- Common/include/config_structure.hpp | 19 ++++++++++-- Common/include/config_structure.inl | 4 +++ Common/src/grid_movement_structure.cpp | 41 -------------------------- SU2_CFD/src/driver_structure.cpp | 21 ++++++------- SU2_CFD/src/iteration_structure.cpp | 10 +++++-- 5 files changed, 38 insertions(+), 57 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index a52baffbcb8..90bf1171a58 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -276,6 +276,7 @@ class CConfig { unsigned long nExtIter; /*!< \brief Number of external iterations. */ unsigned long ExtIter; /*!< \brief Current external iteration number. */ unsigned long IntIter; /*!< \brief Current internal iteration number. */ + unsigned long FSIIter; /*!< \brief Current Fluid Structure Interaction sub-iteration number. */ unsigned long Unst_nIntIter; /*!< \brief Number of internal iterations (Dual time Method). */ unsigned long Dyn_nIntIter; /*!< \brief Number of internal iterations (Newton-Raphson Method for nonlinear structural analysis). */ long Unst_RestartIter; /*!< \brief Iteration number to restart an unsteady simulation (Dual time Method). */ @@ -2188,6 +2189,12 @@ class CConfig { */ void SetExtIter(unsigned long val_iter); + /*! + * \brief Set the current FSI iteration number. + * \param[in] val_iter - Current FSI iteration number. + */ + void SetFSIIter(unsigned long val_iter); + /*! * \brief Set the current internal iteration number. * \param[in] val_iter - Current external iteration number. @@ -2195,14 +2202,20 @@ class CConfig { void SetIntIter(unsigned long val_iter); /*! - * \brief Get the current internal iteration number. + * \brief Get the current external iteration number. * \return Current external iteration. */ unsigned long GetExtIter(void); /*! - * \brief Get the current external iteration number. - * \return Current external iteration. + * \brief Get the current FSI iteration number. + * \return Current FSI iteration. + */ + unsigned long GetFSIIter(void); + + /*! + * \brief Get the current internal iteration number. + * \return Current internal iteration. */ unsigned long GetIntIter(void); diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 3cd1bf14044..33addef50db 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -71,10 +71,14 @@ inline su2double CConfig::GetTimeSpectral_Period(void) { return TimeSpectral_Per inline void CConfig::SetExtIter(unsigned long val_iter) { ExtIter = val_iter; } +inline void CConfig::SetFSIIter(unsigned long val_iter) { FSIIter = val_iter; } + inline void CConfig::SetIntIter(unsigned long val_iter) { IntIter = val_iter; } inline unsigned long CConfig::GetExtIter(void) { return ExtIter; } +inline unsigned long CConfig::GetFSIIter(void) { return FSIIter; } + inline unsigned long CConfig::GetIntIter(void) { return IntIter; } inline unsigned long CConfig::GetUnst_nIntIter(void) { return Unst_nIntIter; } diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index f7f69435dbf..f5d4add6c78 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -301,48 +301,7 @@ void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *co } -// bool check = false; -// -// if (check && fsi){ -// /*--- Grid velocity (there is a function that does this -> Modify) ---*/ -// -// /*--- Local variables ---*/ -// -// su2double *Coord_nP1 = NULL, *Coord_n = NULL, *Coord_nM1 = NULL; -// su2double TimeStep, GridVel = 0.0; -// -// /*--- Compute the velocity of each node in the volume mesh ---*/ -// -// for (iPoint = 0; iPoint < nPoint; iPoint++) { -// -// /*--- Coordinates of the current point at n+1, n, & n-1 time levels ---*/ -// -// Coord_nM1 = geometry->node[iPoint]->GetCoord_n1(); -// Coord_n = geometry->node[iPoint]->GetCoord_n(); -// Coord_nP1 = geometry->node[iPoint]->GetCoord(); -// -// /*--- Unsteady time step ---*/ -// -// TimeStep = config->GetDelta_UnstTimeND(); -// -// /*--- Compute mesh velocity with 1st or 2nd-order approximation ---*/ -// -// for(iDim = 0; iDim < nDim; iDim++) { -// if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) -// GridVel = ( Coord_nP1[iDim] - Coord_n[iDim] ) / TimeStep; -// if (config->GetUnsteady_Simulation() == DT_STEPPING_2ND) -// GridVel = ( 3.0*Coord_nP1[iDim] - 4.0*Coord_n[iDim] -// + 1.0*Coord_nM1[iDim] ) / (2.0*TimeStep); -// -// /*--- Store grid velocity for this point ---*/ -// -// geometry->node[iPoint]->SetGridVel(iDim, GridVel); -// } -// } -// -// } - } su2double CVolumetricMovement::Check_Grid(CGeometry *geometry) { diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 7f39d3d7e09..8348e3bbf01 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1907,9 +1907,10 @@ void CFSIDriver::Run(CIteration **iteration_container, /*--- This will become more general, but we need to modify the configuration for that ---*/ unsigned short ZONE_FLOW = 0, ZONE_STRUCT = 1; unsigned short iZone; + unsigned short nZone = config_container[ZONE_FLOW]->GetnZone();; - unsigned long IntIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[IntIter]->SetIntIter(IntIter); - unsigned long iFSIIter = 0; + unsigned long IntIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetIntIter(IntIter); + unsigned long FSIIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); @@ -1936,7 +1937,7 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, ZONE_STRUCT, ZONE_FLOW); - while (iFSIIter < nFSIIter){ + while (FSIIter < nFSIIter){ /*-----------------------------------------------------------------*/ /*------------------- Transfer Displacements ----------------------*/ @@ -1997,22 +1998,22 @@ void CFSIDriver::Run(CIteration **iteration_container, /*-----------------------------------------------------------------*/ Relaxation_Displacements(output, geometry_container, solver_container, config_container, - ZONE_STRUCT, ZONE_FLOW, iFSIIter); + ZONE_STRUCT, ZONE_FLOW, FSIIter); /*-----------------------------------------------------------------*/ /*-------------------- Check convergence --------------------------*/ /*-----------------------------------------------------------------*/ integration_container[ZONE_STRUCT][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_STRUCT][MESH_0], config_container[ZONE_STRUCT], - solver_container[ZONE_STRUCT][MESH_0][FEA_SOL], iFSIIter); + solver_container[ZONE_STRUCT][MESH_0][FEA_SOL], FSIIter); if (integration_container[ZONE_STRUCT][FEA_SOL]->GetConvergence_FSI()) break; /*-----------------------------------------------------------------*/ - /*--------------------- Update iFSIIter ---------------------------*/ + /*--------------------- Update FSIIter ---------------------------*/ /*-----------------------------------------------------------------*/ - iFSIIter++; + FSIIter++; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); } @@ -2225,7 +2226,7 @@ void CFSIDriver::Transfer_Tractions(COutput *output, CIntegration ***integration } void CFSIDriver::Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){ + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long FSIIter){ #ifdef HAVE_MPI int rank; @@ -2237,7 +2238,7 @@ void CFSIDriver::Relaxation_Displacements(COutput *output, CGeometry ***geometry /*------------------- Compute the coefficient ---------------------*/ solver_container[donorZone][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[donorZone], config_container[donorZone], - solver_container[donorZone], iFSIIter); + solver_container[donorZone], FSIIter); /*----------------- Set the relaxation parameter ------------------*/ @@ -2252,7 +2253,7 @@ void CFSIDriver::Relaxation_Displacements(COutput *output, CGeometry ***geometry } void CFSIDriver::Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){ + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long FSIIter){ } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index b5e394e5248..d8a1cb4b7a0 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -85,13 +85,17 @@ void CMeanFlowIteration::Preprocess(COutput *output, unsigned short val_iZone) { unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + bool fsi = config_container[val_iZone]->GetFSI_Simulation(); + unsigned long FSIIter = config_container[val_iZone]->GetFSIIter(); + bool time_spectral = (config_container[val_iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL); /*--- Set the initial condition ---*/ - - solver_container[val_iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); + /*--- For FSI problems with subiterations, this must only be done in the first subiteration ---*/ + if(!( (fsi) && (FSIIter > 0) )) + solver_container[val_iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); /*--- Dynamic mesh update ---*/ From dc33a5224b076a8b10da90505449d57cebe65d23 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Thu, 28 Jan 2016 17:56:29 -0800 Subject: [PATCH 166/269] More accurate adjacency information for ParMETIS in the CGNS reader. --- Common/src/geometry_structure.cpp | 67 +++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 17 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index f2719074317..1968f0cedbb 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -8006,6 +8006,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me switch(VTK_Type) { case TRIANGLE: + for ( int j = 0; j < N_POINTS_TRIANGLE; j++ ) { vnodes_cgns[j] = connElems[k][s][j+1][i]; } @@ -8030,15 +8031,18 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me vnodes_cgns[j] = connElems[k][s][j+1][i]; } global_id = connElems[k][s][N_POINTS_QUADRILATERAL+1][i]; + for (unsigned short ii=0; ii=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii]=starting_node[rank])&&(vnodes_cgns[ii] Date: Fri, 29 Jan 2016 15:38:31 +1100 Subject: [PATCH 167/269] Added regression test case for the low Mach reconstruction feature --- .../cylinder/cylinder_lowmach.cfg | 231 ++++++++++++++++++ TestCases/parallel_regression.py | 11 + TestCases/serial_regression.py | 11 + 3 files changed, 253 insertions(+) create mode 100644 TestCases/navierstokes/cylinder/cylinder_lowmach.cfg diff --git a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg new file mode 100644 index 00000000000..a60bc19ac70 --- /dev/null +++ b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg @@ -0,0 +1,231 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Steady, laminar flow around a cylinder (Re 20) % +% Author: Thomas D. Economon % +% Institution: Stanford University % +% Date: 2013.09.30 % +% File Version 4.0.0 "Cardinal" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, +% TNE2_EULER, TNE2_NAVIER_STOKES, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% POISSON_EQUATION) +PHYSICAL_PROBLEM= NAVIER_STOKES +% +% Specify turbulent model (NONE, SA, SA_NEG, SST) +KIND_TURB_MODEL= NONE +% +% Mathematical problem (DIRECT, ADJOINT, LINEARIZED) +MATH_PROBLEM= DIRECT +% +% Restart solution (NO, YES) +RESTART_SOL= NO + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.01 +% +% Angle of attack (degrees, only for compressible flows) +AoA= 0.0 +% +% Free-stream temperature (288.15 K by default) +FREESTREAM_TEMPERATURE= 288.15 +% +% Reynolds number (non-dimensional, based on the free-stream values) +REYNOLDS_NUMBER= 40.0 +% +% Reynolds length (1 m by default) +REYNOLDS_LENGTH= 1.0 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.25 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference length for pitching, rolling, and yawing non-dimensional moment +REF_LENGTH_MOMENT= 1.0 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 1.0 +% +% Reference element length for computing the slope limiter epsilon +REF_ELEM_LENGTH= 0.1 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +% Navier-Stokes wall boundary marker(s) (NONE = no marker) +MARKER_HEATFLUX= ( cylinder, 0.0 ) +% +% Farfield boundary marker(s) (NONE = no marker) +MARKER_FAR= ( farfield ) +% +% Marker(s) of the surface to be plotted or designed +MARKER_PLOTTING= ( cylinder ) +% +% Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated +MARKER_MONITORING= ( cylinder ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 4.0 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= NO +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, +% CFL max value ) +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +% +% Runge-Kutta alpha coefficients +RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) +% +% Number of total iterations +EXT_ITER= 99999 + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +% Linear solver for implicit formulations (BCGSTAB, FGMRES) +LINEAR_SOLVER= FGMRES +% +% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) +LINEAR_SOLVER_PREC= LU_SGS +% +% Minimum error of the linear solver for implicit formulations +LINEAR_SOLVER_ERROR= 1E-4 +% +% Max number of iterations of the linear solver for the implicit formulation +LINEAR_SOLVER_ITER= 5 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +% Multi-Grid Levels (0 = no multi-grid) +MGLEVEL= 2 +% +% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) +MGCYCLE= V_CYCLE +% +% Multi-grid pre-smoothing level +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +% +% Multi-grid post-smoothing level +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +% +% Jacobi implicit smoothing of the correction +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +% +% Damping factor for the residual restriction +MG_DAMP_RESTRICTION= 0.8 +% +% Damping factor for the correction prolongation +MG_DAMP_PROLONGATION= 0.8 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, +% TURKEL_PREC, MSW) +CONV_NUM_METHOD_FLOW= HLLC +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% +SPATIAL_ORDER_FLOW= 2ND_ORDER +% +% Slope limiter (VENKATAKRISHNAN, MINMOD) +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +% +% Coefficient for the limiter (smooth regions) +LIMITER_COEFF= 100.0 +% +% Low Mach correction +LOW_MACH_CORR= YES +% +% 1st, 2nd and 4th order artificial dissipation coefficients +AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +% Convergence criteria (CAUCHY, RESIDUAL) +CONV_CRITERIA= RESIDUAL +% +% Residual reduction (order of magnitude with respect to the initial value) +RESIDUAL_REDUCTION= 6 +% +% Min value of the residual (log10 of the residual) +RESIDUAL_MINVAL= -12 +% +% Start convergence criteria at iteration number +STARTCONV_ITER= 10 +% +% Number of elements to apply the criteria +CAUCHY_ELEMS= 100 +% +% Epsilon to control the series convergence +CAUCHY_EPS= 1E-6 +% +% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, +% SENS_MACH, DELTA_LIFT, DELTA_DRAG) +CAUCHY_FUNC_FLOW= DRAG + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= mesh_cylinder_lam.su2 +% +% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= mesh_out.su2 +% +% Restart flow input file +SOLUTION_FLOW_FILENAME= solution_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= solution_adj.dat +% +% Output file format (PARAVIEW, TECPLOT, STL) +OUTPUT_FORMAT= TECPLOT +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FLOW_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FLOW_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FLOW_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Writing solution file frequency +WRT_SOL_FREQ= 250 +% +% Writing convergence history frequency +WRT_CON_FREQ= 1 diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 9939deadd97..a898b0cfb5b 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -114,6 +114,17 @@ def main(): cylinder.tol = 0.00001 test_list.append(cylinder) + # Laminar cylinder (low Mach correction) + cylinder_lowmach = TestCase('cylinder_lowmach') + cylinder_lowmach.cfg_dir = "navierstokes/cylinder" + cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" + cylinder_lowmach.test_iter = 25 + cylinder_lowmach.test_vals = [-6.846659, -1.384550, -1.207461, 75.974174] #last 4 columns + cylinder_lowmach.su2_exec = "parallel_computation.py -f" + cylinder_lowmach.timeout = 1600 + cylinder_lowmach.tol = 0.00001 + test_list.append(cylinder_lowmach) + ########################## ### Compressible RANS ### ########################## diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 596d62b03b1..a237ec797b1 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -113,6 +113,17 @@ def main(): cylinder.tol = 0.00001 test_list.append(cylinder) + # Laminar cylinder (low Mach correction) + cylinder_lowmach = TestCase('cylinder_lowmach') + cylinder_lowmach.cfg_dir = "navierstokes/cylinder" + cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" + cylinder_lowmach.test_iter = 25 + cylinder_lowmach.test_vals = [-6.830987, -1.368840, -0.142509, 73.962090] #last 4 columns + cylinder_lowmach.su2_exec = "SU2_CFD" + cylinder_lowmach.timeout = 1600 + cylinder_lowmach.tol = 0.00001 + test_list.append(cylinder_lowmach) + ########################## ### Compressible RANS ### ########################## From 7344d84e2017faac99c961bf5dca880f10711df2 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 29 Jan 2016 12:47:39 +0000 Subject: [PATCH 168/269] FSI: Fix convergence output. --- SU2_CFD/src/integration_structure.cpp | 30 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index ba2b26025eb..08904d70688 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -820,6 +820,8 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * su2double Static_Time=fea_config->GetStatic_Time(); su2double deltaU, deltaURad, deltaURes, deltaURes_recv = 0.0; + bool stat_time = (CurrentTime <= Static_Time); + magResidualFSI_criteria = -1*fea_config->GetOrderMagResidualFSI(); logResidualFSI_criteria = fea_config->GetMinLogResidualFSI(); @@ -973,14 +975,26 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * cout << endl << "Simulation time: " << fea_config->GetCurrent_DynTime() << ". Time step: " << fea_config->GetDelta_DynTime() << "."; cout.precision(6); cout << endl <<"---------------------- FSI Convergence Summary -------------------------- "; - cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << " Res[OMAG]"<< endl; - cout.width(8); cout << iFSIIter; - cout.width(8); cout << iExtIter; - cout.width(15); cout << WAitken; - cout.width(15); - if (iFSIIter == 1) cout << logResidualFSI_initial; - else cout << logResidualFSI; - cout.width(15); cout << magResidualFSI; + if (stat_time){ + cout << endl <<" The structure is being held static. No convergence is checked."; + } + else{ + if (iFSIIter == 0) cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << endl; + else if (iFSIIter == 1) cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << endl; + else cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << " Res[OMAG]"<< endl; + + cout.width(8); cout << iFSIIter; + cout.width(8); cout << iExtIter; + cout.width(15); cout << WAitken; + cout.width(15); + if (iFSIIter == 0) cout << " "; + else if (iFSIIter == 1) cout << logResidualFSI_initial; + else cout << logResidualFSI; + cout.width(15); + if (iFSIIter < 2) cout << " "; + else cout << magResidualFSI; + } + cout << endl << "------------------------------------------------------------------------- "; cout << endl; } From cf44b374fd0d050c858e6b2012536dfcc19c4cd7 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 29 Jan 2016 16:39:23 +0000 Subject: [PATCH 169/269] FSI-Interp: fixed warnings and compilation errors. --- Common/src/grid_movement_structure.cpp | 2 -- Common/src/interpolation_structure.cpp | 6 +++--- SU2_CFD/src/integration_structure.cpp | 14 ++++---------- SU2_CFD/src/numerics_direct_elasticity.cpp | 2 +- SU2_CFD/src/output_structure.cpp | 4 ++-- SU2_CFD/src/solver_direct_elasticity.cpp | 6 +++--- SU2_CFD/src/solver_fem_elasticity.cpp | 13 +++---------- SU2_CFD/src/solver_structure.cpp | 2 +- SU2_CFD/src/transfer_physics.cpp | 5 +---- 9 files changed, 18 insertions(+), 36 deletions(-) diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index f5d4add6c78..7ab806251d0 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -116,10 +116,8 @@ void CVolumetricMovement::UpdateMultiGrid(CGeometry **geometry, CConfig *config) void CVolumetricMovement::SetVolume_Deformation(CGeometry *geometry, CConfig *config, bool UpdateGeo, bool Derivative) { unsigned long IterLinSol = 0, Smoothing_Iter, iNonlinear_Iter, MaxIter = 0, RestartIter = 50, Tot_Iter = 0, Nonlinear_Iter = 0; - unsigned long iPoint, iDim; su2double MinVolume, NumError, Tol_Factor, Residual = 0.0, Residual_Init = 0.0; bool Screen_Output; -// bool fsi=config->GetFSI_Simulation(); int rank = MASTER_NODE; #ifdef HAVE_MPI diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index c7326597987..2f2019ecb8f 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -674,9 +674,9 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ for (iFace=0; iFaceGetExtIter() == 0); // Checks if it is the first calculation. - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration unsigned short IterativeScheme = config->GetKind_SpaceIteScheme_FEA(); // Iterative schemes: NEWTON_RAPHSON, MODIFIED_NEWTON_RAPHSON @@ -218,13 +217,10 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, bool restart = config->GetRestart(); // Restart solution bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration -// /*--- Compute Mass Matrix ---*/ -// /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ -// /*--- problem is linear or nonlinear ---*/ -// if ((dynamic && initial_calc && first_iter) || -// (dynamic && restart && initial_calc_restart && first_iter)){ -// solver_container[MainSolver]->Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); -// } + /*--- Compute Mass Matrix ---*/ + /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ + /*--- problem is linear or nonlinear. This is done in the preprocessing step. ---*/ + /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ if ((linear_analysis && initial_calc) || @@ -949,8 +945,6 @@ void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig * #endif - unsigned long nFSIIter = fea_config->GetnIterFSI(); - if (rank == MASTER_NODE){ su2double WAitken; diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index eeac34555df..4db16de3c59 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -916,7 +916,7 @@ void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2do D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); } - else if (form2d==1){ + else { /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 91e87ea5834..7d1426e2de3 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -2898,7 +2898,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Load buffers with the three grid velocity components. ---*/ - Node_Vel = solver[CurrentIndex]->node[iPoint]->GetSolution_Vel(); + Node_Vel = solver[FEA_SOL]->node[iPoint]->GetSolution_Vel(); Buffer_Send_Var[jPoint] = Node_Vel[0]; Buffer_Send_Res[jPoint] = Node_Vel[1]; if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Vel[2]; @@ -2961,7 +2961,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Load buffers with the three grid velocity components. ---*/ - Node_Accel = solver[CurrentIndex]->node[iPoint]->GetSolution_Accel(); + Node_Accel = solver[FEA_SOL]->node[iPoint]->GetSolution_Accel(); Buffer_Send_Var[jPoint] = Node_Accel[0]; Buffer_Send_Res[jPoint] = Node_Accel[1]; if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Accel[2]; diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 736a9379994..9445135a83b 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2217,9 +2217,9 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome su2double **Grad_PrimVar; su2double Viscosity = 0.0; su2double Tau[3][3]; - su2double div_vel, Delta; - su2double Area; - su2double Pn; + su2double div_vel = 0.0, Delta = 0.0; + su2double Area = 0.0; + su2double Pn = 0.0; /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 544040591da..3aa16acea6e 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1626,7 +1626,8 @@ void CFEM_ElasticitySolver::Compute_IntegrationConstants(CConfig *config) { su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); - su2double beta = config->Get_Int_Coeffs(0), gamma = config->Get_Int_Coeffs(1); + su2double beta = config->Get_Int_Coeffs(0); +// su2double gamma = config->Get_Int_Coeffs(1); su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); switch (config->GetKind_TimeIntScheme_FEA()) { @@ -2257,10 +2258,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Relaxation(CGeometry *geometry, CSol unsigned long iPoint; su2double *valSolutionPred; - bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems - bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - /*--- Update solution and set it to be the solution after applying relaxation---*/ for (iPoint=0; iPoint < nPointDomain; iPoint++){ @@ -2340,7 +2337,7 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSol bool restart = config->GetRestart(); // Restart solution bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration - su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); + su2double alpha_f = config->Get_Int_Coeffs(2); bool incremental_load = config->GetIncrementalLoad(); @@ -2497,10 +2494,6 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateSolution(CGeometry *geometry, unsigned short iVar; unsigned long iPoint; - bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems - bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); /*--- Compute solution at t_n+1, and update velocities and accelerations ---*/ diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index cf7eade34df..d5140ddb664 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1588,7 +1588,7 @@ void CSolver::Restart_OldGeometry(CGeometry *geometry, CConfig *config) { /*--- This function is intended for dual time simulations ---*/ - unsigned long iPoint, index, counter_local = 0, counter_global = 0, iVertex; + unsigned long iPoint, index; int Unst_RestartIter; ifstream restart_file_n; diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index eb84c1cf85b..4e145ed6c54 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -237,12 +237,9 @@ void CTransfer_StructuralDisplacements::GetDonor_Variable(CSolver *struct_soluti unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct){ - su2double *Displacement, *DisplacementDonor, *DisplacementDonor_Prev; + su2double *DisplacementDonor, *DisplacementDonor_Prev; unsigned short iVar; - /*--- The displacements come from the predicted solution ---*/ - Displacement = struct_solution->node[Point_Struct]->GetSolution(); - /*--- The displacements come from the predicted solution ---*/ DisplacementDonor = struct_solution->node[Point_Struct]->GetSolution_Pred(); From 286b6081d64664fad1330329f01e3723a43c85a4 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 29 Jan 2016 16:55:44 +0000 Subject: [PATCH 170/269] Remove legacy SU2_FSI directory --- Makefile.am | 4 - Makefile.in | 17 +- SU2_FSI/include/SU2_FSI.hpp | 61 -- SU2_FSI/include/iteration_structure_fsi.hpp | 268 ----- SU2_FSI/obj/Makefile.am | 153 --- SU2_FSI/obj/Makefile.in | 1008 ------------------- SU2_FSI/src/SU2_FSI.cpp | 578 ----------- SU2_FSI/src/iteration_structure_fsi.cpp | 983 ------------------ configure | 28 +- configure.ac | 7 - 10 files changed, 9 insertions(+), 3098 deletions(-) delete mode 100644 SU2_FSI/include/SU2_FSI.hpp delete mode 100644 SU2_FSI/include/iteration_structure_fsi.hpp delete mode 100644 SU2_FSI/obj/Makefile.am delete mode 100644 SU2_FSI/obj/Makefile.in delete mode 100644 SU2_FSI/src/SU2_FSI.cpp delete mode 100644 SU2_FSI/src/iteration_structure_fsi.cpp diff --git a/Makefile.am b/Makefile.am index d65bb156c9c..ded78f166c3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,10 +45,6 @@ if BUILD_CFD SUBDIRS +=SU2_CFD/obj endif -if BUILD_FSI -SUBDIRS +=SU2_FSI/obj -endif - if BUILD_DOT SUBDIRS +=SU2_DOT/obj endif diff --git a/Makefile.in b/Makefile.in index 1b048fec918..64b94487ea4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -84,12 +84,11 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ @BUILD_CFD_TRUE@am__append_1 = SU2_CFD/obj -@BUILD_FSI_TRUE@am__append_2 = SU2_FSI/obj -@BUILD_DOT_TRUE@am__append_3 = SU2_DOT/obj -@BUILD_MSH_TRUE@am__append_4 = SU2_MSH/obj -@BUILD_DEF_TRUE@am__append_5 = SU2_DEF/obj -@BUILD_SOL_TRUE@am__append_6 = SU2_SOL/obj -@BUILD_GEO_TRUE@am__append_7 = SU2_GEO/obj +@BUILD_DOT_TRUE@am__append_2 = SU2_DOT/obj +@BUILD_MSH_TRUE@am__append_3 = SU2_MSH/obj +@BUILD_DEF_TRUE@am__append_4 = SU2_DEF/obj +@BUILD_SOL_TRUE@am__append_5 = SU2_SOL/obj +@BUILD_GEO_TRUE@am__append_6 = SU2_GEO/obj subdir = . DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ @@ -140,8 +139,8 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ ETAGS = etags CTAGS = ctags CSCOPE = cscope -DIST_SUBDIRS = externals Common/lib SU2_PY SU2_CFD/obj SU2_FSI/obj \ - SU2_DOT/obj SU2_MSH/obj SU2_DEF/obj SU2_SOL/obj SU2_GEO/obj +DIST_SUBDIRS = externals Common/lib SU2_PY SU2_CFD/obj SU2_DOT/obj \ + SU2_MSH/obj SU2_DEF/obj SU2_SOL/obj SU2_GEO/obj DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -322,7 +321,7 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 # build third-party optional dependencies first SUBDIRS = externals Common/lib SU2_PY $(am__append_1) $(am__append_2) \ $(am__append_3) $(am__append_4) $(am__append_5) \ - $(am__append_6) $(am__append_7) + $(am__append_6) all: all-recursive .SUFFIXES: diff --git a/SU2_FSI/include/SU2_FSI.hpp b/SU2_FSI/include/SU2_FSI.hpp deleted file mode 100644 index 2248fb7ca68..00000000000 --- a/SU2_FSI/include/SU2_FSI.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/*! - * \file SU2_FSI.hpp - * \brief Headers of the main subroutines of the code SU2_FSI. - * The subroutines and functions are in the SU2_FSI.cpp file. - * \author R. Sanchez, F. Palacios, T. Economon - * \version 4.0.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#pragma once - -#include "../../Common/include/mpi_structure.hpp" - -#include -#include -#include -#include - -#include "../../Common/include/interpolation_structure.hpp" -#include "../../SU2_CFD/include/driver_structure.hpp" -#include "../../Common/include/gauss_structure.hpp" -#include "../../Common/include/element_structure.hpp" -#include "../../SU2_CFD/include/solver_structure.hpp" -#include "../../SU2_CFD/include/output_structure.hpp" -#include "../../SU2_CFD/include/integration_structure.hpp" -#include "../../SU2_CFD/include/numerics_structure.hpp" -#include "../../SU2_CFD/include/definition_structure.hpp" -#include "../../SU2_CFD/include/iteration_structure.hpp" -#include "../../SU2_CFD/include/transfer_structure.hpp" - -#include "../../Common/include/geometry_structure.hpp" -#include "../../Common/include/config_structure.hpp" -#include "../../Common/include/grid_movement_structure.hpp" - - -#include "../include/iteration_structure_fsi.hpp" - -using namespace std; diff --git a/SU2_FSI/include/iteration_structure_fsi.hpp b/SU2_FSI/include/iteration_structure_fsi.hpp deleted file mode 100644 index f3a3a4fd657..00000000000 --- a/SU2_FSI/include/iteration_structure_fsi.hpp +++ /dev/null @@ -1,268 +0,0 @@ -/*! - * \file iteration_structure_fsi.hpp - * \brief Headers of the main subroutines used by SU2_CFD. - * The subroutines and functions are in the definition_structure.cpp file. - * \author R. Sanchez - * \version 4.0.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#pragma once - -#include "../../Common/include/mpi_structure.hpp" - -#include - -#include "../../Common/include/gauss_structure.hpp" -#include "../../Common/include/element_structure.hpp" -#include "../../SU2_CFD/include/solver_structure.hpp" -#include "../../SU2_CFD/include/integration_structure.hpp" -#include "../../SU2_CFD/include/output_structure.hpp" -#include "../../SU2_CFD/include/numerics_structure.hpp" -#include "../../SU2_CFD/include/transfer_structure.hpp" - -#include "../../Common/include/geometry_structure.hpp" -#include "../../Common/include/grid_movement_structure.hpp" -#include "../../Common/include/config_structure.hpp" - -using namespace std; - -/*! - * \brief Block Gauss-Seidel Iteration function for Fluid-Structure Interaction applications. - * \author R. Sanchez, F. Palacios. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - * \param[in] nFluidIt - Number of fluid iterations within a fixed time step. - */ -void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt); - -/*! - * \brief CFD Subiteration function for Fluid-Structure Interaction applications. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief CFD update function for Fluid-Structure Interaction applications. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter); - - -/*! - * \brief FEA Subiteration function for Fluid-Structure Interaction applications (legacy). - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief FEM Subiteration function for Fluid-Structure Interaction applications (structural side). - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - - -/*! - * \brief Displacement transfer function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container); - -/*! - * \brief Load transfer function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long ExtIter); - - -/*! - * \brief FEA update function for Fluid-Structure Interaction applications (legacy). - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CConfig **config_container, unsigned long ExtIter); - -/*! - * \brief FEM update function for Fluid-Structure Interaction applications. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, unsigned long ExtIter); - - -/*! - * \brief Relaxation step for displacement transfer. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] iFSIIter - Current FSI iteration number. - */ -void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned long iFSIIter); - -/*! - * \brief Relaxation step for load transfer. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config_container - Definition of the particular problem. - * \param[in] iFSIIter - Current FSI iteration number. - */ -void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief Displacement predictor function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox); - -/*! - * \brief Load predictor function for Fluid-Structure Interaction applications. - * \author R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - */ -void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter); diff --git a/SU2_FSI/obj/Makefile.am b/SU2_FSI/obj/Makefile.am deleted file mode 100644 index fb6ebcb002a..00000000000 --- a/SU2_FSI/obj/Makefile.am +++ /dev/null @@ -1,153 +0,0 @@ -################################################################################ -# -# \file Makefile.am -# \brief Makefile for SU2_FSI -# \author M. Colonno, T. Economon, F. Palacios, R. Sanchez -# \version 4.0.0 "Cardinal" -# -# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). -# Dr. Thomas D. Economon (economon@stanford.edu). -# -# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. -# Prof. Piero Colonna's group at Delft University of Technology. -# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. -# Prof. Alberto Guardone's group at Polytechnic University of Milan. -# Prof. Rafael Palacios' group at Imperial College London. -# -# Copyright (C) 2012-2015 SU2, the open-source CFD code. -# -# SU2 is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# SU2 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with SU2. If not, see . -# -################################################################################ - -AUTOMAKE_OPTIONS = subdir-objects -ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} - -bin_PROGRAMS = ../bin/SU2_FSI - -su2_fsi_sources = ../include/SU2_FSI.hpp \ - ../src/SU2_FSI.cpp \ - ../../SU2_CFD/include/driver_structure.hpp \ - ../../SU2_CFD/src/driver_structure.cpp \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - -su2_fsi_cxx_flags = -su2_fsi_ldadd = - -su2_fsi_ldadd += \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o - -# always link to built dependencies from ./externals -su2_fsi_cxx_flags += @su2_externals_INCLUDES@ -su2_fsi_ldadd += @su2_externals_LIBS@ - -# if BUILD_CGNS -su2_fsi_cxx_flags += @CGNS_CXX@ -su2_fsi_ldadd += @CGNS_LD@ -# endif - -# if BUILD_MUTATIONPP -su2_fsi_cxx_flags += @MUTATIONPP_CXX@ -su2_fsi_ldadd += @MUTATIONPP_LD@ -# endif - -# if BUILD_JSONCPP -su2_fsi_cxx_flags += @JSONCPP_CXX@ -su2_fsi_ldadd += @JSONCPP_LD@ -# endif - -# if BUILD_HDF5 -su2_fsi_cxx_flags += @HDF5_CXX@ -su2_fsi_ldadd += @HDF5_LD@ -# endif - -# if BUILD_SZIP -su2_fsi_cxx_flags += @SZIP_CXX@ -su2_fsi_ldadd += @SZIP_LD@ -# endif - -# if BUILD_ZLIB -su2_fsi_cxx_flags += @ZLIB_CXX@ -su2_fsi_ldadd += @ZLIB_LD@ -# endif - -if BUILD_NORMAL -___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) -___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} -___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a ${su2_fsi_ldadd} -endif diff --git a/SU2_FSI/obj/Makefile.in b/SU2_FSI/obj/Makefile.in deleted file mode 100644 index 8111f67f0e0..00000000000 --- a/SU2_FSI/obj/Makefile.in +++ /dev/null @@ -1,1008 +0,0 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2012 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -################################################################################ -# -# \file Makefile.am -# \brief Makefile for SU2_FSI -# \author M. Colonno, T. Economon, F. Palacios, R. Sanchez -# \version 4.0.0 "Cardinal" -# -# SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). -# Dr. Thomas D. Economon (economon@stanford.edu). -# -# SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. -# Prof. Piero Colonna's group at Delft University of Technology. -# Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. -# Prof. Alberto Guardone's group at Polytechnic University of Milan. -# Prof. Rafael Palacios' group at Imperial College London. -# -# Copyright (C) 2012-2015 SU2, the open-source CFD code. -# -# SU2 is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# SU2 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with SU2. If not, see . -# -################################################################################ - -VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -bin_PROGRAMS = ../bin/SU2_FSI$(EXEEXT) -subdir = SU2_FSI/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) -am_____bin_SU2_FSI_SOURCES_DIST = ../include/SU2_FSI.hpp \ - ../src/SU2_FSI.cpp ../../SU2_CFD/include/driver_structure.hpp \ - ../../SU2_CFD/src/driver_structure.cpp \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -am__dirstamp = $(am__leading_dot)dirstamp -am__objects_1 = ../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT) \ - ../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT) -@BUILD_NORMAL_TRUE@am____bin_SU2_FSI_OBJECTS = $(am__objects_1) -___bin_SU2_FSI_OBJECTS = $(am____bin_SU2_FSI_OBJECTS) -am__DEPENDENCIES_1 = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_DEPENDENCIES = \ -@BUILD_NORMAL_TRUE@ ../../Common/lib/libSU2.a \ -@BUILD_NORMAL_TRUE@ $(am__DEPENDENCIES_1) -___bin_SU2_FSI_LINK = $(CXXLD) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(___bin_SU2_FSI_SOURCES) -DIST_SOURCES = $(am_____bin_SU2_FSI_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CGNS_CXX = @CGNS_CXX@ -CGNS_LD = @CGNS_LD@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTDIFF_CXX = @DIRECTDIFF_CXX@ -DIRECTDIFF_LIBS = @DIRECTDIFF_LIBS@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -HDF5_CXX = @HDF5_CXX@ -HDF5_LD = @HDF5_LD@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -JSONCPP_CXX = @JSONCPP_CXX@ -JSONCPP_LD = @JSONCPP_LD@ -LAPACK_CXX = @LAPACK_CXX@ -LAPACK_LD = @LAPACK_LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -METIS_INCLUDE = @METIS_INCLUDE@ -METIS_LIB = @METIS_LIB@ -MKDIR_P = @MKDIR_P@ -MUTATIONPP_CXX = @MUTATIONPP_CXX@ -MUTATIONPP_LD = @MUTATIONPP_LD@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PARMETIS_INCLUDE = @PARMETIS_INCLUDE@ -PARMETIS_LIB = @PARMETIS_LIB@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -REVERSE_CXX = @REVERSE_CXX@ -REVERSE_LIBS = @REVERSE_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -SU2_METIS_CPPFLAGS = @SU2_METIS_CPPFLAGS@ -SU2_PARMETIS_CPPFLAGS = @SU2_PARMETIS_CPPFLAGS@ -SZIP_CXX = @SZIP_CXX@ -SZIP_LD = @SZIP_LD@ -TECIO_CPPFLAGS = @TECIO_CPPFLAGS@ -TECIO_INCLUDE = @TECIO_INCLUDE@ -VERSION = @VERSION@ -ZLIB_CXX = @ZLIB_CXX@ -ZLIB_LD = @ZLIB_LD@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -su2_externals_INCLUDES = @su2_externals_INCLUDES@ -su2_externals_LIBS = @su2_externals_LIBS@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -su2_fsi_sources = ../include/SU2_FSI.hpp \ - ../src/SU2_FSI.cpp \ - ../../SU2_CFD/include/driver_structure.hpp \ - ../../SU2_CFD/src/driver_structure.cpp \ - ../../SU2_CFD/include/iteration_structure.hpp \ - ../../SU2_CFD/src/iteration_structure.cpp \ - ../include/iteration_structure_fsi.hpp \ - ../src/iteration_structure_fsi.cpp \ - ../../SU2_CFD/include/definition_structure.hpp \ - ../../SU2_CFD/src/definition_structure.cpp \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_fem_elasticity.cpp \ - ../../SU2_CFD/include/numerics_structure.hpp \ - ../../SU2_CFD/src/numerics_fem_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp \ - ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - - -# always link to built dependencies from ./externals - -# if BUILD_CGNS -# endif - -# if BUILD_MUTATIONPP -# endif - -# if BUILD_JSONCPP -# endif - -# if BUILD_HDF5 -# endif - -# if BUILD_SZIP -# endif - -# if BUILD_ZLIB -su2_fsi_cxx_flags = @su2_externals_INCLUDES@ @CGNS_CXX@ \ - @MUTATIONPP_CXX@ @JSONCPP_CXX@ @HDF5_CXX@ @SZIP_CXX@ \ - @ZLIB_CXX@ $(am__empty) -su2_fsi_ldadd = ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pig.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_pvdw.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-fluid_model_ppr.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-integration_time.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_machine_learning_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-numerics_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-solver_template.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_physics.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transfer_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-transport_model.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_levelset.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_adjoint_discrete.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_poisson.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_heat.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_tne2.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_transition.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_direct_wave.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_mean.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_linearized_turbulent.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_fem_elasticity.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_template.o \ - @su2_externals_LIBS@ @CGNS_LD@ @MUTATIONPP_LD@ @JSONCPP_LD@ \ - @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ $(am__empty) -# endif -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_SOURCES = $(su2_fsi_sources) -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_CXXFLAGS = ${su2_fsi_cxx_flags} -@BUILD_NORMAL_TRUE@___bin_SU2_FSI_LDADD = ../../Common/lib/libSU2.a ${su2_fsi_ldadd} -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign SU2_FSI/obj/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -../src/$(am__dirstamp): - @$(MKDIR_P) ../src - @: > ../src/$(am__dirstamp) -../src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../src/$(DEPDIR) - @: > ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_FSI-SU2_FSI.$(OBJEXT): ../src/$(am__dirstamp) \ - ../src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src - @: > ../../SU2_CFD/src/$(am__dirstamp) -../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) - @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_FSI-iteration_structure_fsi.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../bin/$(am__dirstamp): - @$(MKDIR_P) ../bin - @: > ../bin/$(am__dirstamp) -../bin/SU2_FSI$(EXEEXT): $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_DEPENDENCIES) $(EXTRA____bin_SU2_FSI_DEPENDENCIES) ../bin/$(am__dirstamp) - @rm -f ../bin/SU2_FSI$(EXEEXT) - $(AM_V_CXXLD)$(___bin_SU2_FSI_LINK) $(___bin_SU2_FSI_OBJECTS) $(___bin_SU2_FSI_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) - -rm -f ../src/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po@am__quote@ - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -../src/___bin_SU2_FSI-SU2_FSI.o: ../src/SU2_FSI.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.o `test -f '../src/SU2_FSI.cpp' || echo '$(srcdir)/'`../src/SU2_FSI.cpp - -../src/___bin_SU2_FSI-SU2_FSI.obj: ../src/SU2_FSI.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-SU2_FSI.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-SU2_FSI.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_FSI.cpp' object='../src/___bin_SU2_FSI-SU2_FSI.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-SU2_FSI.obj `if test -f '../src/SU2_FSI.cpp'; then $(CYGPATH_W) '../src/SU2_FSI.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_FSI.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o: ../../SU2_CFD/src/driver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o `test -f '../../SU2_CFD/src/driver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/driver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/driver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.o `test -f '../../SU2_CFD/src/driver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/driver_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj: ../../SU2_CFD/src/driver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj `if test -f '../../SU2_CFD/src/driver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/driver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/driver_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-driver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/driver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-driver_structure.obj `if test -f '../../SU2_CFD/src/driver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/driver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/driver_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.o `test -f '../../SU2_CFD/src/iteration_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/iteration_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj: ../../SU2_CFD/src/iteration_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/iteration_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-iteration_structure.obj `if test -f '../../SU2_CFD/src/iteration_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/iteration_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/iteration_structure.cpp'; fi` - -../src/___bin_SU2_FSI-iteration_structure_fsi.o: ../src/iteration_structure_fsi.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.o `test -f '../src/iteration_structure_fsi.cpp' || echo '$(srcdir)/'`../src/iteration_structure_fsi.cpp - -../src/___bin_SU2_FSI-iteration_structure_fsi.obj: ../src/iteration_structure_fsi.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_FSI-iteration_structure_fsi.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Tpo ../src/$(DEPDIR)/___bin_SU2_FSI-iteration_structure_fsi.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/iteration_structure_fsi.cpp' object='../src/___bin_SU2_FSI-iteration_structure_fsi.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_FSI-iteration_structure_fsi.obj `if test -f '../src/iteration_structure_fsi.cpp'; then $(CYGPATH_W) '../src/iteration_structure_fsi.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/iteration_structure_fsi.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.o `test -f '../../SU2_CFD/src/definition_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/definition_structure.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj: ../../SU2_CFD/src/definition_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-definition_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/definition_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-definition_structure.obj `if test -f '../../SU2_CFD/src/definition_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/definition_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/definition_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o: ../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.o `test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj: ../../SU2_CFD/src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-solver_fem_elasticity.obj `if test -f '../../SU2_CFD/src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o: ../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj: ../../SU2_CFD/src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_linear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.o `test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp - -../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj: ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp' object='../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_FSI_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_FSI-numerics_fem_nonlinear_elasticity.obj `if test -f '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp'; fi` - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../../SU2_CFD/src/$(am__dirstamp) - -rm -f ../bin/$(am__dirstamp) - -rm -f ../src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../src/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/SU2_FSI/src/SU2_FSI.cpp b/SU2_FSI/src/SU2_FSI.cpp deleted file mode 100644 index 994cbc9326c..00000000000 --- a/SU2_FSI/src/SU2_FSI.cpp +++ /dev/null @@ -1,578 +0,0 @@ -/*! - * \file SU2_FSI.cpp - * \brief Main file of the Fluid Structure Interaction code - * \author R. Sanchez, F. Palacios, T. Economon - * \version 3.2.9 "eagle" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/SU2_FSI.hpp" - -using namespace std; - -int main(int argc, char *argv[]) { - - bool StopCalc = false; - su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; - unsigned long ExtIter = 0; - unsigned short iMesh, iZone, jZone, iSol, nZone, nDim; - char config_file_name[MAX_STRING_SIZE]; - char runtime_file_name[MAX_STRING_SIZE]; - ofstream ConvHist_file; - int rank = MASTER_NODE; - int size = SINGLE_NODE; - - /*--- MPI initialization, and buffer setting ---*/ - -#ifdef HAVE_MPI - int *bptr, bl; - SU2_MPI::Init(&argc, &argv); - MPI_Buffer_attach( malloc(BUFSIZE), BUFSIZE ); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); -#endif - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Start running SU2_FSI -------------------------" << endl; - - - /*--- Create pointers to all of the classes that may be used throughout - the SU2_FSI code. In general, the pointers are instantiated down a - heirarchy over all zones, multigrid levels, equation sets, and equation - terms as described in the comments below. ---*/ - - CDriver *driver = NULL; - CIteration **iteration_container = NULL; - COutput *output = NULL; - CIntegration ***integration_container = NULL; - CGeometry ***geometry_container = NULL; - CSolver ****solver_container = NULL; - CNumerics *****numerics_container = NULL; - CConfig **config_container = NULL; - CSurfaceMovement **surface_movement = NULL; - CVolumetricMovement **grid_movement = NULL; - CFreeFormDefBox*** FFDBox = NULL; - CInterpolator ***interpolator_container = NULL; - CTransfer ***transfer_container = NULL; - - /*--- Load in the number of zones and spatial dimensions in the mesh file (If no config - file is specified, default.cfg is used) ---*/ - - if (argc == 2) { strcpy(config_file_name, argv[1]); } - else { strcpy(config_file_name, "default.cfg"); } - - /*--- Read the name and format of the input mesh file to get from the mesh - file the number of zones and dimensions from the numerical grid (required - for variables allocation) ---*/ - - CConfig *config = NULL; - config = new CConfig(config_file_name, SU2_CFD); - - nZone = GetnZone(config->GetMesh_FileName(), config->GetMesh_FileFormat(), config); - nDim = GetnDim(config->GetMesh_FileName(), config->GetMesh_FileFormat()); - - /*--- Definition and of the containers for all possible zones. ---*/ - - iteration_container = new CIteration*[nZone]; - solver_container = new CSolver***[nZone]; - integration_container = new CIntegration**[nZone]; - numerics_container = new CNumerics****[nZone]; - config_container = new CConfig*[nZone]; - geometry_container = new CGeometry**[nZone]; - surface_movement = new CSurfaceMovement*[nZone]; - grid_movement = new CVolumetricMovement*[nZone]; - FFDBox = new CFreeFormDefBox**[nZone]; - interpolator_container= new CInterpolator**[nZone]; - transfer_container = new CTransfer**[nZone]; - - for (iZone = 0; iZone < nZone; iZone++) { - solver_container[iZone] = NULL; - integration_container[iZone] = NULL; - numerics_container[iZone] = NULL; - config_container[iZone] = NULL; - geometry_container[iZone] = NULL; - surface_movement[iZone] = NULL; - grid_movement[iZone] = NULL; - FFDBox[iZone] = NULL; - interpolator_container[iZone] = NULL; - transfer_container[iZone] = NULL; - } - - /*--- Loop over all zones to initialize the various classes. In most - cases, nZone is equal to one. This represents the solution of a partial - differential equation on a single block, unstructured mesh. ---*/ - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Definition of the configuration option class for all zones. In this - constructor, the input configuration file is parsed and all options are - read and stored. ---*/ - - config_container[iZone] = new CConfig(config_file_name, SU2_CFD, iZone, nZone, nDim, VERB_HIGH); - - - /*--- Definition of the geometry class to store the primal grid in the - partitioning process. ---*/ - - CGeometry *geometry_aux = NULL; - - /*--- All ranks process the grid and call ParMETIS for partitioning ---*/ - - geometry_aux = new CPhysicalGeometry(config_container[iZone], iZone, nZone); - - /*--- Color the initial grid and set the send-receive domains (ParMETIS) ---*/ - - geometry_aux->SetColorGrid_Parallel(config_container[iZone]); - - /*--- Allocate the memory of the current domain, and divide the grid - between the ranks. ---*/ - - geometry_container[iZone] = new CGeometry *[config_container[iZone]->GetnMGLevels()+1]; - geometry_container[iZone][MESH_0] = new CPhysicalGeometry(geometry_aux, config_container[iZone], 1); - - /*--- Deallocate the memory of geometry_aux ---*/ - - delete geometry_aux; - - /*--- Add the Send/Receive boundaries ---*/ - - geometry_container[iZone][MESH_0]->SetSendReceive(config_container[iZone]); - - /*--- Add the Send/Receive boundaries ---*/ - - geometry_container[iZone][MESH_0]->SetBoundaries(config_container[iZone]); - - } - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Geometry Preprocessing ------------------------" << endl; - - /*--- Preprocessing of the geometry for all zones. In this routine, the edge- - based data structure is constructed, i.e. node and cell neighbors are - identified and linked, face areas and volumes of the dual mesh cells are - computed, and the multigrid levels are created using an agglomeration procedure. ---*/ - - Geometrical_Preprocessing(geometry_container, config_container, nZone); - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Solver Preprocessing --------------------------" << endl; - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Computation of wall distances for turbulence modeling ---*/ - - if ( (config_container[iZone]->GetKind_Solver() == RANS) || - (config_container[iZone]->GetKind_Solver() == ADJ_RANS) || - (config_container[iZone]->GetKind_Solver() == DISC_ADJ_RANS)) - geometry_container[iZone][MESH_0]->ComputeWall_Distance(config_container[iZone]); - - /*--- Computation of positive surface area in the z-plane which is used for - the calculation of force coefficient (non-dimensionalization). ---*/ - - geometry_container[iZone][MESH_0]->SetPositive_ZArea(config_container[iZone]); - - /*--- Set the near-field, interface and actuator disk boundary conditions, if necessary. ---*/ - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { - geometry_container[iZone][iMesh]->MatchNearField(config_container[iZone]); - geometry_container[iZone][iMesh]->MatchInterface(config_container[iZone]); - geometry_container[iZone][iMesh]->MatchActuator_Disk(config_container[iZone]); - } - - /*--- Definition of the solver class: solver_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS]. - The solver classes are specific to a particular set of governing equations, - and they contain the subroutines with instructions for computing each spatial - term of the PDE, i.e. loops over the edges to compute convective and viscous - fluxes, loops over the nodes to compute source terms, and routines for - imposing various boundary condition type for the PDE. ---*/ - - solver_container[iZone] = new CSolver** [config_container[iZone]->GetnMGLevels()+1]; - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) - solver_container[iZone][iMesh] = NULL; - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { - solver_container[iZone][iMesh] = new CSolver* [MAX_SOLS]; - for (iSol = 0; iSol < MAX_SOLS; iSol++) - solver_container[iZone][iMesh][iSol] = NULL; - } - driver->Solver_Preprocessing(solver_container[iZone], geometry_container[iZone], - config_container[iZone]); - - if (rank == MASTER_NODE) - cout << endl <<"----------------- Integration and Numerics Preprocessing ----------------" << endl; - - /*--- Definition of the integration class: integration_container[#ZONES][#EQ_SYSTEMS]. - The integration class orchestrates the execution of the spatial integration - subroutines contained in the solver class (including multigrid) for computing - the residual at each node, R(U) and then integrates the equations to a - steady state or time-accurately. ---*/ - - integration_container[iZone] = new CIntegration*[MAX_SOLS]; - driver->Integration_Preprocessing(integration_container[iZone], geometry_container[iZone], - config_container[iZone]); - - if (rank == MASTER_NODE) cout << "Integration Preprocessing." << endl; - - /*--- Definition of the numerical method class: - numerics_container[#ZONES][#MG_GRIDS][#EQ_SYSTEMS][#EQ_TERMS]. - The numerics class contains the implementation of the numerical methods for - evaluating convective or viscous fluxes between any two nodes in the edge-based - data structure (centered, upwind, galerkin), as well as any source terms - (piecewise constant reconstruction) evaluated in each dual mesh volume. ---*/ - - numerics_container[iZone] = new CNumerics***[config_container[iZone]->GetnMGLevels()+1]; - driver->Numerics_Preprocessing(numerics_container[iZone], solver_container[iZone], - geometry_container[iZone], config_container[iZone]); - - if (rank == MASTER_NODE) cout << "Numerics Preprocessing." << endl; - - /*--- Instantiate the geometry movement classes for the solution of unsteady - flows on dynamic meshes, including rigid mesh transformations, dynamically - deforming meshes, and time-spectral preprocessing. ---*/ - - if (config_container[iZone]->GetGrid_Movement()) { - if (rank == MASTER_NODE) - cout << "Setting dynamic mesh structure." << endl; - grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone][MESH_0], config_container[iZone]); - FFDBox[iZone] = new CFreeFormDefBox*[MAX_NUMBER_FFD]; - surface_movement[iZone] = new CSurfaceMovement(); - surface_movement[iZone]->CopyBoundary(geometry_container[iZone][MESH_0], config_container[iZone]); - if (config_container[iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL) - SetGrid_Movement(geometry_container[iZone], surface_movement[iZone], grid_movement[iZone], - FFDBox[iZone], solver_container[iZone], config_container[iZone], iZone, 0, 0); - } - - } - - /*--- Definition of the interface and transfer conditions between different zones. - *--- The transfer container is defined for zones paired one to one. - *--- This only works for a multizone problem (nZone > 1). - *--- Also, at the moment this capability is limited to two zones (nZone < 3). - *--- This will change in the future. ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------- Multizone Interface Preprocessing -------------------" << endl; - - - if ((nZone > 1) && (nZone < 3)) { - - for (iZone = 0; iZone < nZone; iZone++){ - transfer_container[iZone] = new CTransfer*[nZone]; - interpolator_container[iZone] = new CInterpolator*[nZone]; - for (jZone = 0; jZone < nZone; jZone++){ - transfer_container[iZone][jZone] = NULL; - interpolator_container[iZone][jZone] = NULL; - } - } - - driver->Interface_Preprocessing(transfer_container, interpolator_container, geometry_container, - config_container, solver_container, nZone, nDim); - - } - - - /*--- Definition of the output class (one for all zones). The output class - manages the writing of all restart, volume solution, surface solution, - surface comma-separated value, and convergence history files (both in serial - and in parallel). ---*/ - - output = new COutput(); - - /*--- Open the convergence history file ---*/ - - if (rank == MASTER_NODE) - output->SetConvHistory_Header(&ConvHist_file, config_container[ZONE_0]); - - /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetWrt_Unsteady() && config_container[ZONE_0]->GetRestart()) - ExtIter = config_container[ZONE_0]->GetUnst_RestartIter(); - - /*--- Check for a dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY - && config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) - ExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); - - /*--- Main external loop of the solver. Within this loop, each iteration ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------------------ Begin Solver -----------------------------" << endl; - - /*--- Set up a timer for performance benchmarking (preprocessing time is not included) ---*/ - -#ifndef HAVE_MPI - StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - StartTime = MPI_Wtime(); -#endif - - bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); - - unsigned short iFluidIt, nFluidIt; - - iFluidIt=0; - nFluidIt=config_container[ZONE_0]->GetnIterFSI(); - - /*--- This is temporal and just to check. It will have to be added to the regular history file ---*/ - - ofstream historyFile_FSI; - bool writeHistFSI = config_container[ZONE_0]->GetWrite_Conv_FSI(); - if (writeHistFSI){ - char cstrFSI[200]; - string filenameHistFSI = config_container[ZONE_0]->GetConv_FileName_FSI(); - strcpy (cstrFSI, filenameHistFSI.data()); - historyFile_FSI.open (cstrFSI); - historyFile_FSI << "Time,Iteration,Aitken,URes,logResidual,orderMagnResidual" << endl; - historyFile_FSI.close(); - } - - while (ExtIter < config_container[ZONE_0]->GetnExtIter()) { - - /*--- Set the value of the external iteration. ---*/ - - config_container[ZONE_0]->SetExtIter(ExtIter); - - /*--- Read the target pressure ---*/ - - if (config_container[ZONE_0]->GetInvDesign_Cp() == YES) - output->SetCp_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - - /*--- Read the target heat flux ---*/ - - if (config_container[ZONE_0]->GetInvDesign_HeatFlux() == YES) - output->SetHeat_InverseDesign(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - - /*--- Perform a single iteration of the chosen PDE solver. ---*/ - - if (fsi){ - config_container[ZONE_1]->SetExtIter(ExtIter); - FSI_BGS_Iteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, transfer_container, - iFluidIt, nFluidIt); - } - - else { - -// switch (config_container[ZONE_0]->GetKind_Solver()) { -// -// case LINEAR_ELASTICITY: -// FEAIteration(output, integration_container, geometry_container, -// solver_container, numerics_container, config_container, -// surface_movement, grid_movement, FFDBox); -// break; -// -// } - } - - - /*--- Synchronization point after a single solver iteration. Compute the - wall clock time required. ---*/ - -#ifndef HAVE_MPI - StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - StopTime = MPI_Wtime(); -#endif - - UsedTime = (StopTime - StartTime); - - /*--- For specific applications, evaluate and plot the equivalent area. ---*/ - - if (config_container[ZONE_0]->GetEquivArea() == YES) { - output->SetEquivalentArea(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - } - - /*--- Check if there is any change in the runtime parameters ---*/ - - CConfig *runtime = NULL; - strcpy(runtime_file_name, "runtime.dat"); - runtime = new CConfig(runtime_file_name, config_container[ZONE_0]); - - /*--- Update the convergence history file (serial and parallel computations). ---*/ - /*--- This is temporal and for practical purposes. ---*/ - if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; - for (iZone = 0; iZone < nZone; iZone++){ - if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; - else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; - output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, - config_container, integration_container, false, UsedTime, iZone); - } - - if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; - - /*--- Evaluate the new CFL number (adaptive). ---*/ - - if (config_container[ZONE_0]->GetCFL_Adapt() == YES) { - output->SetCFL_Number(solver_container, config_container, ZONE_0); - } - - /*--- Check whether the current simulation has reached the specified - convergence criteria, and set StopCalc to true, if so. ---*/ - - switch (config_container[ZONE_0]->GetKind_Solver()) { - case EULER: case NAVIER_STOKES: case RANS: - StopCalc = integration_container[ZONE_0][FLOW_SOL]->GetConvergence(); break; - case WAVE_EQUATION: - StopCalc = integration_container[ZONE_0][WAVE_SOL]->GetConvergence(); break; - case HEAT_EQUATION: - StopCalc = integration_container[ZONE_0][HEAT_SOL]->GetConvergence(); break; - case LINEAR_ELASTICITY: - // This is a temporal fix, while we code the non-linear solver - // StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; - StopCalc = false; break; - case FEM_ELASTICITY: - StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; - StopCalc = false; break; - case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: - case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: - StopCalc = integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence(); break; - } - - /*--- Solution output. Determine whether a solution needs to be written - after the current iteration, and if so, execute the output file writing - routines. ---*/ - - if ((ExtIter+1 >= config_container[ZONE_0]->GetnExtIter()) || - - ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (ExtIter != 0) && - !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || - - (StopCalc) || - - ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) && - ((ExtIter == 0) || (ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))) || - - ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (!fsi) && - ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0) || - ((ExtIter-1) % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) || - - ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND) && (fsi) && - ((ExtIter == 0) || ((ExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0))))) { - - /*--- Low-fidelity simulations (using a coarser multigrid level - approximation to the solution) require an interpolation back to the - finest grid. ---*/ - - if (config_container[ZONE_0]->GetLowFidelitySim()) { - integration_container[ZONE_0][FLOW_SOL]->SetProlongated_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], solver_container[ZONE_0][MESH_1][FLOW_SOL], geometry_container[ZONE_0][MESH_0], geometry_container[ZONE_0][MESH_1], config_container[ZONE_0]); - integration_container[ZONE_0][FLOW_SOL]->Smooth_Solution(RUNTIME_FLOW_SYS, solver_container[ZONE_0][MESH_0][FLOW_SOL], geometry_container[ZONE_0][MESH_0], 3, 1.25, config_container[ZONE_0]); - solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Set_MPI_Solution(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0]); - solver_container[ZONE_0][MESH_0][config_container[ZONE_0]->GetContainerPosition(RUNTIME_FLOW_SYS)]->Preprocessing(geometry_container[ZONE_0][MESH_0], solver_container[ZONE_0][MESH_0], config_container[ZONE_0], MESH_0, 0, RUNTIME_FLOW_SYS, false); - } - - if (rank == MASTER_NODE) cout << endl << "-------------------------- File Output Summary --------------------------"; - - /*--- Execute the routine for writing restart, volume solution, - surface solution, and surface comma-separated value files. ---*/ - - output->SetResult_Files(solver_container, geometry_container, config_container, ExtIter, nZone); - - /*--- Output a file with the forces breakdown. ---*/ - - output->SetForces_Breakdown(geometry_container, solver_container, - config_container, integration_container, ZONE_0); - - /*--- Compute the forces at different sections. ---*/ - - if (config_container[ZONE_0]->GetPlot_Section_Forces()) { - output->SetForceSections(solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], ExtIter); - } - - if (rank == MASTER_NODE) cout << "-------------------------------------------------------------------------" << endl << endl; - - } - - /*--- If the convergence criteria has been met, terminate the simulation. ---*/ - - if (StopCalc) break; - - ExtIter++; - - } - - /*--- Output some information to the console. ---*/ - - if (rank == MASTER_NODE) { - - /*--- Print out the number of non-physical points and reconstructions ---*/ - - if (config_container[ZONE_0]->GetNonphysical_Points() > 0) - cout << "Warning: there are " << config_container[ZONE_0]->GetNonphysical_Points() << " non-physical points in the solution." << endl; - if (config_container[ZONE_0]->GetNonphysical_Reconstr() > 0) - cout << "Warning: " << config_container[ZONE_0]->GetNonphysical_Reconstr() << " reconstructed states for upwinding are non-physical." << endl; - - /*--- Close the convergence history file. ---*/ - - ConvHist_file.close(); - cout << "History file, closed." << endl; - } - - // /*--- Deallocate config container ---*/ - // - // for (iZone = 0; iZone < nZone; iZone++) { - // if (config_container[iZone] != NULL) { - // delete config_container[iZone]; - // } - // } - // if (config_container != NULL) delete[] config_container; - - - /*--- Synchronization point after a single solver iteration. Compute the - wall clock time required. ---*/ - -#ifndef HAVE_MPI - StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - UsedTime = StopTime-StartTime; - if (rank == MASTER_NODE) { - cout << "\nCompleted in " << fixed << UsedTime << " seconds on "<< size; - if (size == 1) cout << " core." << endl; else cout << " cores." << endl; - } - - /*--- Exit the solver cleanly ---*/ - - if (rank == MASTER_NODE) - cout << endl <<"------------------------- Exit Success (SU2_FSI) ------------------------" << endl << endl; - -#ifdef HAVE_MPI - /*--- Finalize MPI parallelization ---*/ - MPI_Buffer_detach(&bptr, &bl); - MPI_Finalize(); -#endif - - return EXIT_SUCCESS; - -} diff --git a/SU2_FSI/src/iteration_structure_fsi.cpp b/SU2_FSI/src/iteration_structure_fsi.cpp deleted file mode 100644 index c78d943d954..00000000000 --- a/SU2_FSI/src/iteration_structure_fsi.cpp +++ /dev/null @@ -1,983 +0,0 @@ -/*! - * \file iteration_structure_fsi.cpp - * \brief Main subroutines used by SU2_FSI for iteration - * \author R. Sanchez - * \version 3.2.9 "eagle" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/iteration_structure_fsi.hpp" - -void FSI_BGS_Iteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long iFluidIt, unsigned long nFluidIt) { - - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); - unsigned long iFSIIter = 0; - unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - bool fem_solver = (config_container[ZONE_1]->GetKind_Solver() == FEM_ELASTICITY); - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*-----------------------------------------------------------------*/ - /*---------------- Predict structural displacements ---------------*/ - /*-----------------------------------------------------------------*/ - - FSI_Disp_Predictor(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - - while (iFSIIterSetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*-----------------------------------------------------------------*/ - /*------------------- Set FEA loads from fluid --------------------*/ - /*-----------------------------------------------------------------*/ - - FSI_Load_Transfer(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, transfer_container, ExtIter); - - /*-----------------------------------------------------------------*/ - /*------------------ Structural subiteration ----------------------*/ - /*-----------------------------------------------------------------*/ - - if (fem_solver){ - FEM_Subiteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - } - else{ - FEA_Subiteration(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox); - } - - /*--- Write the convergence history for the structure (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_1); - - /*-----------------------------------------------------------------*/ - /*----------------- Displacements relaxation ----------------------*/ - /*-----------------------------------------------------------------*/ - - FSI_Disp_Relaxation(output, geometry_container, solver_container, config_container, iFSIIter); - - /*-----------------------------------------------------------------*/ - /*-------------------- Check convergence --------------------------*/ - /*-----------------------------------------------------------------*/ - - integration_container[ZONE_1][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_1][MESH_0], config_container[ZONE_1], - solver_container[ZONE_1][MESH_0][FEA_SOL], iFSIIter); - - if (integration_container[ZONE_1][FEA_SOL]->GetConvergence_FSI()) break; - - /*-----------------------------------------------------------------*/ - /*--------------------- Update iFSIIter ---------------------------*/ - /*-----------------------------------------------------------------*/ - - iFSIIter++; - - } - - /*-----------------------------------------------------------------*/ - /*-------------------- Update fluid solver ------------------------*/ - /*-----------------------------------------------------------------*/ - - Flow_Update(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, - surface_movement, grid_movement, FFDBox, ExtIter); - - /*-----------------------------------------------------------------*/ - /*----------------- Update structural solver ----------------------*/ - /*-----------------------------------------------------------------*/ - - if (fem_solver){ - FEM_Update(output, integration_container, geometry_container, - solver_container, numerics_container, config_container, ExtIter); - } - else{ - FEA_Update(output, integration_container, geometry_container, - solver_container, config_container, ExtIter); - } - - - /*-----------------------------------------------------------------*/ - /*--------------- Update convergence parameter --------------------*/ - /*-----------------------------------------------------------------*/ - integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); - -} - -void Flow_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - unsigned short iZone; - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1; - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Set the initial condition ---*/ - for (iZone = 0; iZone < nFluidZone; iZone++) - solver_container[iZone][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- Apply a Wind Gust ---*/ - /*--- Initial set up for unsteady problems with gusts - Not enabled yet. ---*/ - -// for (iZone = 0; iZone < nFluidZone; iZone++) { -// if (config_container[ZONE_0]->GetWind_Gust()){ -// SetWind_GustField(config_container[iZone],geometry_container[iZone],solver_container[iZone]); -// } -// } - - for (iZone = 0; iZone < nFluidZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; - - /*--- Update global parameters ---*/ - - if (config_container[iZone]->GetKind_Solver() == EULER){ - config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - } - if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES){ - config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - } - if (config_container[iZone]->GetKind_Solver() == RANS){ - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - } - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, iZone); - - if (config_container[iZone]->GetKind_Solver() == RANS) { - - /*--- Solve the turbulence model ---*/ - - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, iZone); - - /*--- Solve transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, iZone); - } - - } - - } - - /*--- Dual time stepping strategy ---*/ - - if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - for(IntIter = 1; IntIter < config_container[ZONE_0]->GetUnst_nIntIter(); IntIter++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*--- Set the value of the internal iteration ---*/ - - config_container[ZONE_0]->SetIntIter(IntIter); - - for (iZone = 0; iZone < nFluidZone; iZone++) { - - /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ - - if (config_container[iZone]->GetKind_Solver() == EULER) - config_container[iZone]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - if (config_container[iZone]->GetKind_Solver() == NAVIER_STOKES) - config_container[iZone]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - if (config_container[iZone]->GetKind_Solver() == RANS) - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[iZone][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, iZone); - - /*--- Pseudo-timestepping the turbulence model ---*/ - - if (config_container[iZone]->GetKind_Solver() == RANS) { - - /*--- Solve the turbulence model ---*/ - - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[iZone][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, iZone); - - /*--- Solve transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - config_container[iZone]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[iZone][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, iZone); - } - } - } - if (integration_container[ZONE_0][FLOW_SOL]->GetConvergence()) break; - } - } -} - - -void Flow_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter) { - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - - su2double Physical_dt, Physical_t; - unsigned short iMesh, iZone; - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1; - - for (iZone = 0; iZone < nFluidZone; iZone++) { - - if ((config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[iZone]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - /*--- Update dual time solver on all mesh levels ---*/ - - for (iMesh = 0; iMesh <= config_container[iZone]->GetnMGLevels(); iMesh++) { - integration_container[iZone][FLOW_SOL]->SetDualTime_Solver(geometry_container[iZone][iMesh], solver_container[iZone][iMesh][FLOW_SOL], config_container[iZone], iMesh); - integration_container[iZone][FLOW_SOL]->SetConvergence(false); - } - - /*--- Update dual time solver for the turbulence model ---*/ - - if (config_container[iZone]->GetKind_Solver() == RANS) { - integration_container[iZone][TURB_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TURB_SOL], config_container[iZone], MESH_0); - integration_container[iZone][TURB_SOL]->SetConvergence(false); - } - - /*--- Update dual time solver for the transition model ---*/ - - if (config_container[iZone]->GetKind_Trans_Model() == LM) { - integration_container[iZone][TRANS_SOL]->SetDualTime_Solver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][TRANS_SOL], config_container[iZone], MESH_0); - integration_container[iZone][TRANS_SOL]->SetConvergence(false); - } - - /*--- Verify convergence criteria (based on total time) ---*/ - - Physical_dt = config_container[iZone]->GetDelta_UnstTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[iZone]->GetTotal_UnstTime()) - integration_container[iZone][FLOW_SOL]->SetConvergence(true); - - } - - } - - -} - - -void FEA_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CConfig **config_container, - unsigned long ExtIter) { - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - - /*--- Only one zone allowed for the structure as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*----------------- Update structural solver ----------------------*/ - - integration_container[iZone][FEA_SOL]->SetStructural_Solver(geometry_container[iZone][MESH_0], - solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); - - } - - -} - -void FEM_Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - unsigned long ExtIter) { - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Only one zone allowed for the structure as for now ---*/ - su2double Physical_dt, Physical_t; - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - unsigned int ZONE_STRUC = nFluidZone; - - nTotalZone = nFluidZone + nStrucZone; - - bool dynamic = (config_container[ZONE_STRUC]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems - - /*----------------- Compute averaged nodal stress ------------------------*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); - - /*----------------- Update structural solver ----------------------*/ - - if (dynamic){ - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0][FEA_SOL], config_container[iZone], MESH_0); - integration_container[iZone][FEA_SOL]->SetConvergence(false); - } - - /*--- Verify convergence criteria (based on total time) ---*/ - Physical_dt = config_container[ZONE_STRUC]->GetDelta_DynTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_STRUC]->GetTotal_DynTime()) - integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(true); - } - - -} - - -void FEA_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - unsigned short iZone; - unsigned long IntIter_Struct = 0; //config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - -#ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the initial condition at the first iteration ---*/ - - // solver_container[ZONE_1][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[ZONE_1], solver_container[ZONE_1], config_container[ZONE_1], ExtIter); - - /*--- Set the value of the internal iteration ---*/ - - IntIter_Struct = ExtIter; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter_Struct, iZone); - - } - -} - -void FEM_Subiteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - -#ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - - nTotalZone = nFluidZone + nStrucZone; - - unsigned int ZONE_STRUC = nFluidZone; - - su2double loadIncrement; - unsigned short iZone; - unsigned long IntIter = 0; config_container[ZONE_STRUC]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_STRUC]->GetExtIter(); - - unsigned long iIncrement; - unsigned long nIncrements = config_container[ZONE_STRUC]->GetNumberIncrements(); - - bool nonlinear = (config_container[ZONE_STRUC]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool linear = (config_container[ZONE_STRUC]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems - - bool initial_calc = config_container[ZONE_STRUC]->GetExtIter() == 0; // Checks if it is the first calculation. - bool first_iter = config_container[ZONE_STRUC]->GetIntIter() == 0; // Checks if it is the first iteration - bool restart = config_container[ZONE_STRUC]->GetRestart(); // Restart analysis - bool initial_calc_restart = (SU2_TYPE::Int(config_container[ZONE_STRUC]->GetExtIter()) == config_container[ZONE_STRUC]->GetDyn_RestartIter()); // Initial calculation for restart - - su2double CurrentTime = config_container[ZONE_STRUC]->GetCurrent_DynTime(); - su2double Static_Time = config_container[ZONE_STRUC]->GetStatic_Time(); - - bool statTime = (CurrentTime <= Static_Time); - - bool incremental_load = config_container[ZONE_STRUC]->GetIncrementalLoad(); // If an incremental load is applied - - /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ - integration_container[ZONE_STRUC][FEA_SOL]->SetConvergence(false); - - if (linear){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - } - /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ - else if ((nonlinear) && (!statTime)){ - - /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - - if (!incremental_load){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - - } - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; - - } - - } - /*--- The incremental load is only used in nonlinear cases ---*/ - else if (incremental_load){ - - /*--- Set the initial condition: store the current solution as Solution_Old ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- The load increment is 1.0: all the load applied ---*/ - loadIncrement = 1.0; - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the first iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - /*--- Run the second iteration ---*/ - - IntIter = 1; - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - bool meetCriteria; - su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; - su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; - - Criteria_UTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(0); - Criteria_RTOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(1); - Criteria_ETOL = config_container[ZONE_STRUC]->GetIncLoad_Criteria(2); - - Residual_UTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(0)); - Residual_RTOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(1)); - Residual_ETOL = log10(solver_container[ZONE_STRUC][MESH_0][FEA_SOL]->GetRes_FEM(2)); - - meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && - ( Residual_RTOL < Criteria_RTOL ) && - ( Residual_ETOL < Criteria_ETOL ) ); - - /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ - if (meetCriteria){ - - for (IntIter = 2; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; - - } - - } - - /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ - - else { - - /*--- Here we have to restart the solution to the original one of the iteration ---*/ - /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- For the number of increments ---*/ - for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ - - loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); - - /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++){ - - /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ - integration_container[iZone][FEA_SOL]->SetConvergence(false); - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - } - - cout << endl; - cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - IntIter = 0; - config_container[iZone]->SetIntIter(IntIter); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - - } - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[ZONE_STRUC]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_STRUC); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_STRUC][FEA_SOL]->GetConvergence()) break; - - } - - } - - } - - } - - - } - else if ( (nonlinear && statTime) && - ((first_iter && initial_calc) || (restart && initial_calc_restart)) - ){ - - /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], - config_container[iZone], numerics_container[iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); - } - -} - - -void FSI_Disp_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container){ - - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); - - /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ - - switch (config_container[ZONE_0]->GetKind_TransferMethod()) { - case BROADCAST_DATA: - if (MatchingMesh){ - transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Matching(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - - } - else { - transfer_container[ZONE_1][ZONE_0]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - - } - break; - case SCATTER_DATA: - if (MatchingMesh){ - transfer_container[ZONE_1][ZONE_0]->Scatter_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - } - else { - cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - break; - case ALLGATHER_DATA: - if (MatchingMesh){ - cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - else { - transfer_container[ZONE_1][ZONE_0]->Allgather_InterfaceData(solver_container[ZONE_1][MESH_0][FEA_SOL],solver_container[ZONE_0][MESH_0][FLOW_SOL], - geometry_container[ZONE_1][MESH_0],geometry_container[ZONE_0][MESH_0], - config_container[ZONE_1], config_container[ZONE_0]); - /*--- Set the volume deformation for the fluid zone ---*/ - grid_movement[ZONE_0]->SetVolume_Deformation(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0], true); - } - break; - case LEGACY_METHOD: - if (MatchingMesh){ - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); - } - else { - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetFlow_Displacement_Int(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); - } - break; - } - - -} - - -void FSI_Load_Transfer(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer*** transfer_container, unsigned long ExtIter){ - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - bool MatchingMesh = config_container[ZONE_0]->GetMatchingMesh(); - - /*--- Load transfer -- This will have to be modified for non-matching meshes ---*/ - - unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); - - /*--- FEA equations -- Necessary as the SetFEA_Load routine is as of now contained in the structural solver ---*/ - - config_container[ZONE_1]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Select the transfer method and the appropriate mesh properties (matching or nonmatching mesh) ---*/ - - switch (config_container[ZONE_0]->GetKind_TransferMethod()) { - case BROADCAST_DATA: - if (MatchingMesh){ - transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Matching(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - else { - transfer_container[ZONE_0][ZONE_1]->Broadcast_InterfaceData_Interpolate(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - break; - case SCATTER_DATA: - if (MatchingMesh){ - transfer_container[ZONE_0][ZONE_1]->Scatter_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - else { - cout << "Scatter method not implemented for non-matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - break; - case ALLGATHER_DATA: - if (MatchingMesh){ - cout << "Allgather method not yet implemented for matching meshes. Exiting..." << endl; - exit(EXIT_FAILURE); - } - else { - transfer_container[ZONE_0][ZONE_1]->Allgather_InterfaceData(solver_container[ZONE_0][MESH_0][FLOW_SOL],solver_container[ZONE_1][MESH_0][FEA_SOL], - geometry_container[ZONE_0][MESH_0],geometry_container[ZONE_1][MESH_0], - config_container[ZONE_0], config_container[ZONE_1]); - } - break; - case LEGACY_METHOD: - if (MatchingMesh){ - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); - } - else { - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); - } - break; - } - -} - - -void FSI_Disp_Relaxation(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned long iFSIIter) { - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*-------------------- Aitken's relaxation ------------------------*/ - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - /*------------------- Compute the coefficient ---------------------*/ - - solver_container[iZone][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[iZone], config_container[iZone], - solver_container[iZone], iFSIIter); - - /*----------------- Set the relaxation parameter ------------------*/ - - solver_container[iZone][MESH_0][FEA_SOL]->SetAitken_Relaxation(geometry_container[iZone], config_container[iZone], - solver_container[iZone]); - - } - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred_Old(geometry_container[iZone][MESH_0], config_container[iZone]); - } - -} - -void FSI_Load_Relaxation(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ - - -} - - -void FSI_Disp_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox){ - - #ifdef HAVE_MPI - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - /*--- Only one zone allowed for the fluid as for now ---*/ - unsigned short nFluidZone = 1, nStrucZone=1, nTotalZone; - unsigned short iZone; - - nTotalZone = nFluidZone + nStrucZone; - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - - solver_container[iZone][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[iZone], config_container[iZone], - solver_container[iZone]); - - } - - /*--- For parallel simulations we need to communicate the predicted solution before updating the fluid mesh ---*/ - - for (iZone = nFluidZone; iZone < nTotalZone; iZone++) { - solver_container[iZone][MESH_0][FEA_SOL]->Set_MPI_Solution_Pred(geometry_container[iZone][MESH_0], config_container[iZone]); - } - -} - -void FSI_Load_Predictor(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long ExtIter){ - - -} diff --git a/configure b/configure index ad71849d890..3afcdfe2bc4 100755 --- a/configure +++ b/configure @@ -635,8 +635,6 @@ BUILD_MSH_FALSE BUILD_MSH_TRUE BUILD_DOT_FALSE BUILD_DOT_TRUE -BUILD_FSI_FALSE -BUILD_FSI_TRUE BUILD_CFD_FALSE BUILD_CFD_TRUE BUILD_REVERSE_FALSE @@ -820,7 +818,6 @@ with_Jsoncpp_include with_LAPACK_lib with_LAPACK_include enable_CFD -enable_FSI enable_DOT enable_MSH enable_DEF @@ -1476,7 +1473,6 @@ Optional Features: --disable-dependency-tracking speeds up one-time build --disable-CFD build the SU2_CFD executable (default = yes) - --disable-FSI build the SU2_FSI executable (default = yes) --disable-DOT build the SU2_DOT executable (default = yes) --disable-MSH build the SU2_MSH executable (default = yes) --disable-DEF build the SU2_DEF executable (default = yes) @@ -5709,13 +5705,6 @@ else build_CFD="yes" fi -# Check whether --enable-FSI was given. -if test "${enable_FSI+set}" = set; then : - enableval=$enable_FSI; build_FSI=$enableval -else - build_FSI="yes" -fi - # Check whether --enable-DOT was given. if test "${enable_DOT+set}" = set; then : enableval=$enable_DOT; build_DOT=$enableval @@ -7019,14 +7008,6 @@ else BUILD_CFD_FALSE= fi - if test $build_FSI != "no"; then - BUILD_FSI_TRUE= - BUILD_FSI_FALSE='#' -else - BUILD_FSI_TRUE='#' - BUILD_FSI_FALSE= -fi - if test $build_DOT != "no"; then BUILD_DOT_TRUE= BUILD_DOT_FALSE='#' @@ -7070,7 +7051,7 @@ fi ########################### -ac_config_files="$ac_config_files Makefile externals/Makefile Common/lib/Makefile SU2_CFD/obj/Makefile SU2_FSI/obj/Makefile SU2_DOT/obj/Makefile SU2_MSH/obj/Makefile SU2_DEF/obj/Makefile SU2_SOL/obj/Makefile SU2_GEO/obj/Makefile SU2_PY/Makefile" +ac_config_files="$ac_config_files Makefile externals/Makefile Common/lib/Makefile SU2_CFD/obj/Makefile SU2_DOT/obj/Makefile SU2_MSH/obj/Makefile SU2_DEF/obj/Makefile SU2_SOL/obj/Makefile SU2_GEO/obj/Makefile SU2_PY/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -7333,10 +7314,6 @@ if test -z "${BUILD_CFD_TRUE}" && test -z "${BUILD_CFD_FALSE}"; then as_fn_error $? "conditional \"BUILD_CFD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${BUILD_FSI_TRUE}" && test -z "${BUILD_FSI_FALSE}"; then - as_fn_error $? "conditional \"BUILD_FSI\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${BUILD_DOT_TRUE}" && test -z "${BUILD_DOT_FALSE}"; then as_fn_error $? "conditional \"BUILD_DOT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -7938,7 +7915,6 @@ do "externals/Makefile") CONFIG_FILES="$CONFIG_FILES externals/Makefile" ;; "Common/lib/Makefile") CONFIG_FILES="$CONFIG_FILES Common/lib/Makefile" ;; "SU2_CFD/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_CFD/obj/Makefile" ;; - "SU2_FSI/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_FSI/obj/Makefile" ;; "SU2_DOT/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_DOT/obj/Makefile" ;; "SU2_MSH/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_MSH/obj/Makefile" ;; "SU2_DEF/obj/Makefile") CONFIG_FILES="$CONFIG_FILES SU2_DEF/obj/Makefile" ;; @@ -8576,7 +8552,6 @@ Build Configuration Summary: External libs: $su2_externals_LIBS Build SU2_CFD: $build_CFD - Build SU2_FSI: $build_FSI Build SU2_DOT: $build_DOT Build SU2_MSH: $build_MSH Build SU2_DEF: $build_DEF @@ -8660,7 +8635,6 @@ Build Configuration Summary: External libs: $su2_externals_LIBS Build SU2_CFD: $build_CFD - Build SU2_FSI: $build_FSI Build SU2_DOT: $build_DOT Build SU2_MSH: $build_MSH Build SU2_DEF: $build_DEF diff --git a/configure.ac b/configure.ac index e35edc27da9..e2d98a25adc 100644 --- a/configure.ac +++ b/configure.ac @@ -35,7 +35,6 @@ # METIS & TECIO integration added by Ben Kirk, 3/24/2014 # LAPACK connection added by Teus van der Stelt, 11/13/2014 # ParMETIS integration added by Ben Kirk & Thomas D. Economon, 2/3/2015 -# SU2_FSI integration added by Ruben Sanchez, 5/19/2015 ########################## AC_INIT([SU2], [4.1.0], [su2code-dev@lists.stanford.edu], @@ -116,9 +115,6 @@ AC_ARG_WITH(LAPACK-include, AC_ARG_ENABLE(CFD, AS_HELP_STRING([--disable-CFD], [build the SU2_CFD executable (default = yes)]), [build_CFD=$enableval], [build_CFD="yes"]) -AC_ARG_ENABLE(FSI, - AS_HELP_STRING([--disable-FSI], [build the SU2_FSI executable (default = yes)]), - [build_FSI=$enableval], [build_FSI="yes"]) AC_ARG_ENABLE(DOT, AS_HELP_STRING([--disable-DOT], [build the SU2_DOT executable (default = yes)]), [build_DOT=$enableval], [build_DOT="yes"]) @@ -550,7 +546,6 @@ fi ########################### AM_CONDITIONAL([BUILD_CFD],[test $build_CFD != "no"]) -AM_CONDITIONAL([BUILD_FSI],[test $build_FSI != "no"]) AM_CONDITIONAL([BUILD_DOT],[test $build_DOT != "no"]) AM_CONDITIONAL([BUILD_MSH],[test $build_MSH != "no"]) AM_CONDITIONAL([BUILD_DEF],[test $build_DEF != "no"]) @@ -563,7 +558,6 @@ AC_OUTPUT(Makefile \ externals/Makefile \ Common/lib/Makefile \ SU2_CFD/obj/Makefile \ - SU2_FSI/obj/Makefile \ SU2_DOT/obj/Makefile \ SU2_MSH/obj/Makefile \ SU2_DEF/obj/Makefile \ @@ -641,7 +635,6 @@ Build Configuration Summary: External libs: $su2_externals_LIBS Build SU2_CFD: $build_CFD - Build SU2_FSI: $build_FSI Build SU2_DOT: $build_DOT Build SU2_MSH: $build_MSH Build SU2_DEF: $build_DEF From b602244ea0af25458c5fb3f63e472b0977304a84 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 29 Jan 2016 18:19:38 +0000 Subject: [PATCH 171/269] Fixed bug in restart - flow. --- SU2_CFD/src/solver_direct_mean.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index c51bf375a8f..02f1ff5a8b0 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -12462,13 +12462,29 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) else { + /*--- Modify file name for an unsteady restart ---*/ + if (nZone >1) filename = config->GetMultizone_FileName(filename, iZone); + + if (dual_time) { + + if (adjoint) { + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; + } else if (config->GetUnsteady_Simulation() == DT_STEPPING_1ST) + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-1; + else + Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_RestartIter())-2; + + filename = config->GetUnsteady_FileName(filename, Unst_RestartIter); + + } + /*--- Modify file name for a simple unsteady restart ---*/ - if (dual_time || time_stepping) { + if (time_stepping) { if (adjoint) { Unst_RestartIter = SU2_TYPE::Int(config->GetUnst_AdjointIter()) - 1; } else { From 90bf3f2a56af15e670cccc8c3901d5e9613378b7 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Fri, 29 Jan 2016 14:52:18 -0800 Subject: [PATCH 172/269] Added partition analyzer routine. --- SU2_CFD/include/definition_structure.hpp | 9 +- SU2_CFD/src/SU2_CFD.cpp | 5 + SU2_CFD/src/definition_structure.cpp | 114 +++++++++++++++++++++++ 3 files changed, 126 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 68d999cf512..f8472499ca4 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -81,8 +81,6 @@ void Driver_Preprocessing(CDriver **driver, CConfig **config, unsigned short val_nZone); - - /*! * \brief Do the geometrical preprocessing. * \param[in] geometry - Geometrical definition of the problem. @@ -90,3 +88,10 @@ void Driver_Preprocessing(CDriver **driver, * \param[in] val_nZone - Total number of zones. */ void Geometrical_Preprocessing(CGeometry ***geometry, CConfig **config, unsigned short val_nZone); + +/*! + * \brief Performs an analysis of the mesh partitions for distributed memory calculations. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ +void Partition_Analysis(CGeometry *geometry, CConfig *config); diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 35391b22404..380c9adf2ba 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -193,6 +193,11 @@ int main(int argc, char *argv[]) { } + /*--- If activated by the compile directive, perform a partition analysis. ---*/ +#if PARTITION + Partition_Analysis(geometry_container[ZONE_0][MESH_0], config_container[ZONE_0]); +#endif + if (rank == MASTER_NODE) cout << endl <<"------------------------- Driver Preprocessing --------------------------" << endl; diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index b4ee04e8245..5b343e844b5 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -368,3 +368,117 @@ void Geometrical_Preprocessing(CGeometry ***geometry, CConfig **config, unsigned } } + +void Partition_Analysis(CGeometry *geometry, CConfig *config) { + + /*--- This routine does a quick and dirty output of the total + vertices, ghost vertices, total elements, ghost elements, etc., + so that we can analyze the partition quality. ---*/ + + unsigned short nMarker = config->GetnMarker_All(); + unsigned short iMarker, iNodes, MarkerS, MarkerR; + unsigned long iElem, iPoint, nVertexS, nVertexR; + unsigned long nNeighbors = 0, nSendTotal = 0, nRecvTotal = 0; + unsigned long nPointTotal=0, nPointGhost=0, nElemTotal=0; + unsigned long nElemHalo=0, nEdge=0, nElemBound=0; + int iRank; + int rank = MASTER_NODE; + int size = SINGLE_NODE; + +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + + nPointTotal = geometry->GetnPoint(); + nPointGhost = geometry->GetnPoint() - geometry->GetnPointDomain(); + nElemTotal = geometry->GetnElem(); + nEdge = geometry->GetnEdge(); + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + nElemBound += geometry->GetnElem_Bound(iMarker); + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + MarkerS = iMarker; MarkerR = iMarker+1; + nVertexS = geometry->nVertex[MarkerS]; + nVertexR = geometry->nVertex[MarkerR]; + nNeighbors++; + nSendTotal += nVertexS; + nRecvTotal += nVertexR; + } + } + + bool *isHalo = new bool[geometry->GetnElem()]; + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + isHalo[iElem] = false; + for (iNodes = 0; iNodes < geometry->elem[iElem]->GetnNodes(); iNodes++) { + iPoint = geometry->elem[iElem]->GetNode(iNodes); + if (!geometry->node[iPoint]->GetDomain()) isHalo[iElem] = true; + } + } + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + if (isHalo[iElem]) nElemHalo++; + } + + unsigned long *row_ptr = NULL, nnz; + unsigned short *nNeigh = NULL; + vector::iterator it; + vector vneighs; + + /*--- Don't delete *row_ptr, *col_ind because they are + asigned to the Jacobian structure. ---*/ + + /*--- Compute the number of neighbors ---*/ + + nNeigh = new unsigned short [geometry->GetnPoint()]; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + // +1 -> to include diagonal element + nNeigh[iPoint] = (geometry->node[iPoint]->GetnPoint()+1); + } + + /*--- Create row_ptr structure, using the number of neighbors ---*/ + + row_ptr = new unsigned long [geometry->GetnPoint()+1]; + row_ptr[0] = 0; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) + row_ptr[iPoint+1] = row_ptr[iPoint] + nNeigh[iPoint]; + nnz = row_ptr[geometry->GetnPoint()]; + + delete [] row_ptr; + delete [] nNeigh; + + /*--- Now put this info into a CSV file for processing ---*/ + + char cstr[200]; + ofstream Profile_File; + strcpy (cstr, "partitioning.csv"); + Profile_File.precision(15); + + if (rank == MASTER_NODE) { + /*--- Prepare and open the file ---*/ + Profile_File.open(cstr, ios::out); + /*--- Create the CSV header ---*/ + Profile_File << "\"Rank\", \"nNeighbors\", \"nPointTotal\", ,\"nEdge\", \"nPointGhost\", \"nSendTotal\", \"nRecvTotal\", \"nElemTotal\", \"nElemBoundary\", \"nElemHalo\", \"nnz\"" << endl; + Profile_File.close(); + } +#ifdef HAVE_MPI + MPI_Barrier(MPI_COMM_WORLD); +#endif + + /*--- Loop through the map and write the results to the file ---*/ + + for (iRank = 0; iRank < size; iRank++) { + if (rank == iRank) { + Profile_File.open(cstr, ios::out | ios::app); + Profile_File << rank << ", " << nNeighbors << ", " << nPointTotal << ", " << nEdge << "," << nPointGhost << ", " << nSendTotal << ", " << nRecvTotal << ", " << nElemTotal << "," << nElemBound << ", " << nElemHalo << ", " << nnz << endl; + Profile_File.close(); + } +#ifdef HAVE_MPI + MPI_Barrier(MPI_COMM_WORLD); +#endif + } + + delete [] isHalo; + +} From 1e413baf76ee5d7fbb9d34b7f031247022907606 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Fri, 29 Jan 2016 19:01:25 -0800 Subject: [PATCH 173/269] More memory fixes related to partitioning. --- Common/include/geometry_structure.hpp | 21 +++-- Common/src/geometry_structure.cpp | 106 +++++++++++++------------- SU2_CFD/src/definition_structure.cpp | 2 +- 3 files changed, 66 insertions(+), 63 deletions(-) diff --git a/Common/include/geometry_structure.hpp b/Common/include/geometry_structure.hpp index 1bba403a722..5222cd01a44 100644 --- a/Common/include/geometry_structure.hpp +++ b/Common/include/geometry_structure.hpp @@ -134,9 +134,14 @@ class CGeometry { CPrimalGrid*** newBound; /*!< \brief Boundary vector for new periodic elements (primal grid information). */ unsigned long *nNewElem_Bound; /*!< \brief Number of new periodic elements of the boundary. */ - //--------Parmetis variables----- - unsigned long * adjacency; - unsigned long * xadj; + + /*--- Partitioning-specific variables ---*/ +#ifdef HAVE_MPI +#ifdef HAVE_PARMETIS + idx_t * adjacency; + idx_t * xadj; +#endif +#endif unsigned long local_node; unsigned long local_elem; unsigned long xadj_size; @@ -906,11 +911,11 @@ class CGeometry { class CPhysicalGeometry : public CGeometry { long *Global_to_Local_Point; /*!< \brief Global-local indexation for the points. */ - long *Local_to_Global_Point; /*!< \brief Local-global indexation for the points. */ - unsigned short *Local_to_Global_Marker; /*!< \brief Local to Global marker. */ - unsigned short *Global_to_Local_Marker; /*!< \brief Global to Local marker. */ - unsigned long *adj_counter; /*!< \brief Adjacency counter. */ - unsigned long **adjacent_elem; /*!< \brief Adjacency element list. */ + long *Local_to_Global_Point; /*!< \brief Local-global indexation for the points. */ + unsigned short *Local_to_Global_Marker; /*!< \brief Local to Global marker. */ + unsigned short *Global_to_Local_Marker; /*!< \brief Global to Local marker. */ + unsigned long *adj_counter; /*!< \brief Adjacency counter. */ + unsigned long **adjacent_elem; /*!< \brief Adjacency element list. */ su2double* Sensitivity; /*! <\brief Vector holding the sensitivities at each point. */ public: diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 1968f0cedbb..d69abb0ac63 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -6267,7 +6267,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes add the neighboring nodes to this nodes' adjacency list. ---*/ elem_reqd = true; - for (unsigned long j=0; j SINGLE_NODE)) cout << "Calling the partitioning functions." << endl; @@ -6581,6 +6580,9 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes proper format before sending the data to ParMETIS. We need to remove repeats and adjust the size of the array for each local node. ---*/ +#ifdef HAVE_MPI +#ifdef HAVE_PARMETIS + if ((rank == MASTER_NODE) && (size > SINGLE_NODE)) cout << "Building the graph adjacency structure." << endl; @@ -6588,9 +6590,8 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes vector adjac_vec; unsigned long adj_elem_size; vector::iterator it; - local_elem=loc_element_count; - xadj = new unsigned long [npoint_procs[rank]+1]; + xadj = new idx_t [npoint_procs[rank]+1]; xadj[0]=0; vector temp_adjacency; unsigned long local_count=0; @@ -6627,7 +6628,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes is the array that we will feed to ParMETIS for partitioning. ---*/ adj_elem_size = xadj[npoint_procs[rank]]; - adjacency = new unsigned long[adj_elem_size]; + adjacency = new idx_t [adj_elem_size]; copy(adjac_vec.begin(), adjac_vec.end(), adjacency); xadj_size = npoint_procs[rank]+1; @@ -6636,6 +6637,10 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes /*--- Free temporary memory used to build the adjacency. ---*/ adjac_vec.clear(); + +#endif +#endif + adj_nodes.clear(); /*--- For now, the boundary marker information is still read by the @@ -8206,6 +8211,9 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me no_of_local_elements = ielem; +#ifdef HAVE_MPI +#ifdef HAVE_PARMETIS + /*--- Post process the adjacency information in order to get it into the proper format before sending the data to ParMETIS. We need to remove repeats and adjust the size of the array for each local node. ---*/ @@ -8217,9 +8225,8 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me vector adjac_vec; unsigned long adj_elem_size; vector::iterator it; - local_elem=ielem; - xadj = new unsigned long [npoint_procs[rank]+1]; + xadj = new idx_t[npoint_procs[rank]+1]; xadj[0]=0; vector temp_adjacency; unsigned long local_count=0; @@ -8248,7 +8255,7 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Now that we know the size, create the final adjacency array ---*/ adj_elem_size = xadj[npoint_procs[rank]]; - adjacency = new unsigned long[adj_elem_size]; + adjacency = new idx_t [adj_elem_size]; copy(adjac_vec.begin(), adjac_vec.end(), adjacency); xadj_size = npoint_procs[rank]+1; @@ -8257,6 +8264,10 @@ void CPhysicalGeometry::Read_CGNS_Format_Parallel(CConfig *config, string val_me /*--- Free temporary memory used to build the adjacency. ---*/ adjac_vec.clear(); + +#endif +#endif + adj_nodes.clear(); /*--- Store the nodal coordinates from the linear partitioning. ---*/ @@ -11392,28 +11403,26 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { if (size > SINGLE_NODE) { - /*--- Create some structures that ParMETIS needs for partitioning. ---*/ - - idx_t numflag, nparts, edgecut, wgtflag, ncon; - idx_t *vtxdist = new idx_t[size+1]; - idx_t *xadj_l = new idx_t[xadj_size]; - idx_t *adjacency_l = new idx_t[adjacency_size]; - idx_t *elmwgt = new idx_t[local_node]; - idx_t *part = new idx_t[local_node]; - - real_t ubvec; - real_t *tpwgts = new real_t[size]; - - /*--- Some recommended defaults for the various ParMETIS options. ---*/ - - wgtflag = 0; - numflag = 0; - ncon = 1; - ubvec = 1.05; - nparts = (idx_t)size; - idx_t options[METIS_NOPTIONS]; - METIS_SetDefaultOptions(options); - options[1] = 0; + /*--- Create some structures that ParMETIS needs for partitioning. ---*/ + + idx_t numflag, nparts, edgecut, wgtflag, ncon; + + idx_t *vtxdist = new idx_t[size+1]; + idx_t *part = new idx_t[local_node]; + + real_t ubvec; + real_t *tpwgts = new real_t[size]; + + /*--- Some recommended defaults for the various ParMETIS options. ---*/ + + wgtflag = 0; + numflag = 0; + ncon = 1; + ubvec = 1.05; + nparts = (idx_t)size; + idx_t options[METIS_NOPTIONS]; + METIS_SetDefaultOptions(options); + options[1] = 0; /*--- Fill the necessary ParMETIS data arrays. Note that xadj_size and adjacency_size are class data members that have been defined and set @@ -11427,18 +11436,10 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { for (int i = 0; i < size; i++) { vtxdist[i+1] = (idx_t)ending_node[i]; } - - for (unsigned long i = 0; i < xadj_size; i++) { - xadj_l[i] = (idx_t)xadj[i]; - } - - for (unsigned long i = 0; i < adjacency_size; i++) { - adjacency_l[i] = (idx_t)adjacency[i]; - } /*--- Calling ParMETIS ---*/ if (rank == MASTER_NODE) cout << "Calling ParMETIS..." << endl; - ParMETIS_V3_PartKway(vtxdist,xadj_l, adjacency_l, NULL, NULL, &wgtflag, + ParMETIS_V3_PartKway(vtxdist,xadj, adjacency, NULL, NULL, &wgtflag, &numflag, &ncon, &nparts, tpwgts, &ubvec, options, &edgecut, part, &comm); if (rank == MASTER_NODE) { @@ -11454,26 +11455,23 @@ void CPhysicalGeometry::SetColorGrid_Parallel(CConfig *config) { node[iPoint]->SetColor(part[iPoint]); } - /*--- Free all memory needed for the ParMETIS structures ---*/ - - delete [] vtxdist; - delete [] xadj_l; - delete [] adjacency_l; - delete [] elmwgt; - delete [] part; - delete [] tpwgts; - + /*--- Free all memory needed for the ParMETIS structures ---*/ + + delete [] vtxdist; + delete [] part; + delete [] tpwgts; + } -#endif -#endif - /*--- Delete the memory from the geometry class that carried the - adjacency structure. Note that this is done even in the serial case. ---*/ + adjacency structure. ---*/ delete [] xadj; delete [] adjacency; +#endif +#endif + } void CPhysicalGeometry::GetQualityStatistics(su2double *statistics) { diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 5b343e844b5..113822767c9 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -459,7 +459,7 @@ void Partition_Analysis(CGeometry *geometry, CConfig *config) { /*--- Prepare and open the file ---*/ Profile_File.open(cstr, ios::out); /*--- Create the CSV header ---*/ - Profile_File << "\"Rank\", \"nNeighbors\", \"nPointTotal\", ,\"nEdge\", \"nPointGhost\", \"nSendTotal\", \"nRecvTotal\", \"nElemTotal\", \"nElemBoundary\", \"nElemHalo\", \"nnz\"" << endl; + Profile_File << "\"Rank\", \"nNeighbors\", \"nPointTotal\", \"nEdge\", \"nPointGhost\", \"nSendTotal\", \"nRecvTotal\", \"nElemTotal\", \"nElemBoundary\", \"nElemHalo\", \"nnz\"" << endl; Profile_File.close(); } #ifdef HAVE_MPI From 7c0564058eb856e47deb8dc7d663fa98a2d59825 Mon Sep 17 00:00:00 2001 From: Ethan Alan Hereth Date: Sat, 30 Jan 2016 12:43:27 -0500 Subject: [PATCH 174/269] Fix incorrect adaptive CFL reporting This commit fixes an issue causing incorrect reporting of the specified adaptive CFL behavior. --- Common/src/config_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 63853da1013..85df8e6d0c6 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -3570,7 +3570,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { if ((Kind_Solver != LINEAR_ELASTICITY) && (Kind_Solver != HEAT_EQUATION) && (Kind_Solver != WAVE_EQUATION)) { - if (CFL_AdaptParam[0] == 1.0) cout << "No CFL adaptation." << endl; + if (!CFL_Adapt) cout << "No CFL adaptation." << endl; else cout << "CFL adaptation. Factor down: "<< CFL_AdaptParam[0] <<", factor up: "<< CFL_AdaptParam[1] <<",\n lower limit: "<< CFL_AdaptParam[2] <<", upper limit: " << CFL_AdaptParam[3] <<"."<< endl; From a518a34ffa5084b99721026f31b7cc080f320be0 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 1 Feb 2016 14:24:31 +0000 Subject: [PATCH 175/269] Reverted some changes in baseline solver that caused issues. --- SU2_CFD/src/solver_structure.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index d5140ddb664..cf7d2c2447a 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1866,9 +1866,9 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ - filename = config->GetRestart_FEMFileName(); + filename = config->GetSolution_FEMFileName(); } else { - filename = config->GetRestart_FlowFileName(); + filename = config->GetSolution_FlowFileName(); } /*--- Multizone problems require the number of the zone to be appended. ---*/ @@ -2174,9 +2174,9 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ - filename = config->GetRestart_FEMFileName(); + filename = config->GetSolution_FEMFileName(); } else { - filename = config->GetRestart_FlowFileName(); + filename = config->GetSolution_FlowFileName(); } /*--- Multizone problems require the number of the zone to be appended. ---*/ From f3b070033a96e5f226ac1934734ed33a9106c6fe Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 1 Feb 2016 15:36:37 +0000 Subject: [PATCH 176/269] Reverted small bug in driver class nZone definition. --- SU2_CFD/src/driver_structure.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 83371208d69..daa49552a3f 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -44,7 +44,7 @@ CDriver::CDriver(CIteration **iteration_container, unsigned short iMesh, iZone, jZone, iSol; - unsigned short nZone, nDim; + unsigned short nDim; bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); @@ -1918,7 +1918,6 @@ void CFSIDriver::Run(CIteration **iteration_container, /*--- This will become more general, but we need to modify the configuration for that ---*/ unsigned short ZONE_FLOW = 0, ZONE_STRUCT = 1; unsigned short iZone; - unsigned short nZone = config_container[ZONE_FLOW]->GetnZone();; unsigned long IntIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetIntIter(IntIter); unsigned long FSIIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); From 33bf694e334d11e1c6e29041a31b3bf69d8cab8c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 1 Feb 2016 16:14:36 +0000 Subject: [PATCH 177/269] Restored python file and deleted SU2_FSI support. --- SU2_PY/SU2/run/interface.py | 54 ++++--------------------------------- 1 file changed, 5 insertions(+), 49 deletions(-) diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index f5dc381953c..f262b64be1f 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -93,15 +93,15 @@ def CFD(config): processes = konfig['NUMBER_PART'] - the_Command = 'SU2_CFD_DIRECTDIFF ' + tempname + the_Command = 'SU2_CFD_AD ' + tempname elif discrete_adjoint: - tempname = 'config_CFD_REVERSE.cfg' + tempname = 'config_CFD_AD.cfg' konfig.dump(tempname) processes = konfig['NUMBER_PART'] - the_Command = 'SU2_CFD_REVERSE ' + tempname + the_Command = 'SU2_CFD_AD ' + tempname else: tempname = 'config_CFD.cfg' @@ -118,50 +118,6 @@ def CFD(config): return -def FSI(config): - """ run SU2_FSI - partitions set by config.NUMBER_PART - """ - konfig = copy.deepcopy(config) - - direct_diff = not konfig.get('DIRECT_DIFF',"") in ["NONE", ""] - - discrete_adjoint = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' - - if direct_diff: - tempname = 'config_FSI_DIRECTDIFF.cfg' - - konfig.dump(tempname) - - processes = konfig['NUMBER_PART'] - - the_Command = 'SU2_FSI_DIRECTDIFF ' + tempname - - elif discrete_adjoint: - tempname = 'config_FSI_REVERSE.cfg' - konfig.dump(tempname) - - processes = konfig['NUMBER_PART'] - - the_Command = 'SU2_FSI_REVERSE ' + tempname - - else: - tempname = 'config_FSI.cfg' - konfig.dump(tempname) - - processes = konfig['NUMBER_PART'] - - the_Command = 'SU2_FSI ' + tempname - - the_Command = build_command( the_Command , processes ) - run_command( the_Command ) - - #os.remove(tempname) - - return - - - def MSH(config): """ run SU2_MSH partitions set by config.NUMBER_PART @@ -215,12 +171,12 @@ def DOT(config): if discrete_adjoint: - tempname = 'config_DOT_REVERSE.cfg' + tempname = 'config_DOT_AD.cfg' konfig.dump(tempname) processes = konfig['NUMBER_PART'] - the_Command = 'SU2_DOT_REVERSE ' + tempname + the_Command = 'SU2_DOT_AD ' + tempname else: tempname = 'config_DOT.cfg' From cb100e2773f5d63442686fde8e519056242ce092 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 2 Feb 2016 10:46:40 +0000 Subject: [PATCH 178/269] Modified some default options. --- Common/src/config_structure.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index a2324580aa7..be23ff6f74d 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1138,7 +1138,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Iterative method for non-linear structural analysis */ addEnumOption("NONLINEAR_FEM_SOLUTION_METHOD", Kind_SpaceIteScheme_FEA, Space_Ite_Map_FEA, NEWTON_RAPHSON); /* DESCRIPTION: Number of internal iterations for Newton-Raphson Method in nonlinear structural applications */ - addUnsignedLongOption("NONLINEAR_FEM_INT_ITER", Dyn_nIntIter, 100); + addUnsignedLongOption("NONLINEAR_FEM_INT_ITER", Dyn_nIntIter, 10); /* DESCRIPTION: Formulation for bidimensional elasticity solver */ addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, PLANE_STRAIN); @@ -1146,7 +1146,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo * Options: NO, YES \ingroup Config */ addBoolOption("DEAD_LOAD", DeadLoad, false); /* DESCRIPTION: Dynamic or static structural analysis */ - addEnumOption("DYNAMIC_ANALYSYS", Dynamic_Analysis, Dynamic_Map, STATIC); + addEnumOption("DYNAMIC_ANALYSIS", Dynamic_Analysis, Dynamic_Map, STATIC); /* DESCRIPTION: Time Step for dynamic analysis (s) */ addDoubleOption("DYN_TIMESTEP", Delta_DynTime, 0.0); /* DESCRIPTION: Total Physical Time for dual time stepping simulations (s) */ @@ -1179,7 +1179,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addDoubleArrayOption("INCREMENTAL_CRITERIA", 3, IncLoad_Criteria, default_vec_3d); /* DESCRIPTION: Time while the structure is static */ - addDoubleOption("STATIC_TIME", Static_Time, 1.0); + addDoubleOption("STATIC_TIME", Static_Time, 0.0); /* DESCRIPTION: Order of the predictor */ addUnsignedShortOption("PREDICTOR_ORDER", Pred_Order, 0); From e4abfcd5c8b33425fb40a008f83305fb17f1080d Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 2 Feb 2016 16:32:43 +0000 Subject: [PATCH 179/269] Required changes in output, python scripts and SU2_SOL --- Common/src/element_linear.cpp | 10 -------- SU2_CFD/src/SU2_CFD.cpp | 16 +------------ SU2_CFD/src/iteration_structure.cpp | 2 -- SU2_CFD/src/numerics_fem_elasticity.cpp | 2 +- .../src/numerics_fem_nonlinear_elasticity.cpp | 5 +--- SU2_CFD/src/output_paraview.cpp | 4 ++-- SU2_CFD/src/output_structure.cpp | 3 +-- SU2_CFD/src/solver_fem_elasticity.cpp | 17 +------------ SU2_CFD/src/solver_structure.cpp | 4 ++-- SU2_PY/SU2/io/tools.py | 19 +++++++++++++++ SU2_PY/SU2/run/__init__.py | 4 ++-- SU2_PY/SU2/run/direct.py | 1 + SU2_PY/SU2/run/interface.py | 22 +++++++++++++++++ SU2_PY/SU2/run/merge.py | 24 ++++++++++++++++--- SU2_PY/parallel_computation_fsi.py | 18 +++++++------- 15 files changed, 84 insertions(+), 67 deletions(-) diff --git a/Common/src/element_linear.cpp b/Common/src/element_linear.cpp index c3e4ea41f48..b0c16aa00c3 100644 --- a/Common/src/element_linear.cpp +++ b/Common/src/element_linear.cpp @@ -62,7 +62,6 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) } /*--- Initialize structure for current and reference configuration ---*/ - /*--- TODO: Initialize structures depending on the kind of problem ---*/ CurrentCoord = new su2double*[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ @@ -83,8 +82,6 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) GaussCoord[0][0] = 0.333333333333333; GaussCoord[0][1] = 0.333333333333333; GaussWeight[0] = 0.5; - //TODO: Check if all of these structures may be moved to the common structure (avoids repetition). - //TODO: this structure should only be initialized if the problem is dynamic Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Mab[iNode] = new su2double [nNodes]; @@ -98,7 +95,6 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) } } - //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new su2double [nNodes]; @@ -359,7 +355,6 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) GaussCoord[2][0] = 0.577350269189626; GaussCoord[2][1] = 0.577350269189626; GaussWeight[2] = 1.0; GaussCoord[3][0] = -0.577350269189626; GaussCoord[3][1] = 0.577350269189626; GaussWeight[3] = 1.0; - //TODO: this structure should only be initialized if the problem is dynamic Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Mab[iNode] = new su2double [nNodes]; @@ -373,7 +368,6 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) } } - //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new su2double [nNodes]; @@ -806,7 +800,6 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) GaussCoord[0][0] = 0.25; GaussCoord[0][1] = 0.25; GaussCoord[0][2] = 0.25; GaussWeight[0] = 0.166666666666666; - //TODO: this structure should only be initialized if the problem is dynamic Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Mab[iNode] = new su2double [nNodes]; @@ -820,7 +813,6 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) } } - //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new su2double [nNodes]; @@ -1103,7 +1095,6 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) GaussCoord[6][0] = 0.577350269189626; GaussCoord[6][1] = 0.577350269189626; GaussCoord[6][2] = 0.577350269189626; GaussWeight[6] = 1.0; GaussCoord[7][0] = -0.577350269189626; GaussCoord[7][1] = 0.577350269189626; GaussCoord[7][2] = 0.577350269189626; GaussWeight[7] = 1.0; - //TODO: this structure should only be initialized if the problem is dynamic Mab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Mab[iNode] = new su2double [nNodes]; @@ -1117,7 +1108,6 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) } } - //TODO: these structures should only be initialized if the problem is nonlinear Ks_ab = new su2double *[nNodes]; for (iNode = 0; iNode < nNodes; iNode++){ Ks_ab[iNode] = new su2double [nNodes]; diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index b8e26fa5f15..1b67d020c9e 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -381,27 +381,13 @@ int main(int argc, char *argv[]) { runtime->SetExtIter(ExtIter); /*--- Update the convergence history file (serial and parallel computations). ---*/ -// if (fsi){ -// if (rank == MASTER_NODE) cout << "---------------------------------------------------------------------------" << endl; -// for (iZone = 0; iZone < nZone; iZone++){ -// if (iZone == 0 && rank == MASTER_NODE) cout << "Fluid convergence: " << endl; -// else if (iZone == 1 && rank == MASTER_NODE) cout << "Structural convergence: " << endl; -// output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, -// config_container, integration_container, false, UsedTime, iZone); -// } -// -// if (rank == MASTER_NODE)cout << "---------------------------------------------------------------------------" << endl; -// } + if (!fsi){ output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, config_container, integration_container, false, UsedTime, ZONE_0); } -// /*--- Update the convergence history file (serial and parallel computations). ---*/ -// -// output->SetConvHistory_Body(&ConvHist_file, geometry_container, solver_container, -// config_container, integration_container, false, UsedTime, ZONE_0); /*--- Evaluate the new CFL number (adaptive). ---*/ diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index d8a1cb4b7a0..60d2b52303c 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1761,8 +1761,6 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai bool incremental_load = config_container[ZONE_0]->GetIncrementalLoad(); // If an incremental load is applied - /*--- TODO: Convergence only checked for ZONE_0 ---*/ - /*--- This is to prevent problems when running a linear solver ---*/ if (!nonlinear) incremental_load = false; diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 30681368729..8331099c772 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -136,7 +136,7 @@ void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ su2double val_Mab; element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ - element->ComputeGrad_Linear(); /*--- Need to compute the gradients to obtain the Jacobian: TODO: this may be improved (another method only to compute J_X) ---*/ + element->ComputeGrad_Linear(); /*--- Need to compute the gradients to obtain the Jacobian ---*/ nNode = element->GetnNodes(); nGauss = element->GetnGaussPoints(); diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index 26ca94b82b2..ef16aa03741 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -393,7 +393,6 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ if ((Vol_current > 0.0) && (Vol_reference > 0.0)) { /*--- It is necessary to divide over the current volume to obtain the averaged gradients ---*/ - /*--- TODO: Check this operation and add exit if the volumes are 0. ---*/ for (iNode = 0; iNode < nNode; iNode++){ for (iDim = 0; iDim < nDim; iDim++){ GradNi_Curr_Mat[iNode][iDim] = GradNi_Curr_Mat[iNode][iDim] / Vol_current; @@ -406,8 +405,6 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ element->SetElement_Pressure(el_Pressure); -// cout << "ELEMENT PRESSURE: " << el_Pressure << endl; - } else { cout << "Warning: Negative volume computed during FE structural analysis. Exiting..." << endl; @@ -554,7 +551,7 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ su2double Weight, Jac_x; - element->clearStress(); /*--- TODO: put these two together ---*/ + element->clearStress(); element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements --*/ element->ComputeGrad_NonLinear(); diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index 681a99b3e58..ad7ab36201d 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -86,7 +86,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s if (Kind_Solver == POISSON_EQUATION) strcpy (cstr, config->GetStructure_FileName().c_str()); /*--- Special cases where a number needs to be appended to the file name. ---*/ - if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS) && + if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS || Kind_Solver == FEM_ELASTICITY) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); @@ -1034,7 +1034,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign if (Kind_Solver == POISSON_EQUATION) strcpy (cstr, config->GetStructure_FileName().c_str()); /*--- Special cases where a number needs to be appended to the file name. ---*/ - if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS) && + if ((Kind_Solver == EULER || Kind_Solver == NAVIER_STOKES || Kind_Solver == RANS || Kind_Solver == FEM_ELASTICITY) && (val_nZone > 1) && (config->GetUnsteady_Simulation() != TIME_SPECTRAL)) { SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iZone)); strcat(cstr, buffer); diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 7d1426e2de3..fdd375c851f 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -3644,12 +3644,11 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, filename= config->GetMultizone_FileName(filename, val_iZone); /*--- Unsteady problems require an iteration number to be appended. ---*/ - if (config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(val_iZone)); } else if (config->GetWrt_Unsteady()) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); - } else if (config->GetWrt_Dynamic()) { + } else if ((fem) && (config->GetWrt_Dynamic())) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 3aa16acea6e..5824385e732 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -402,7 +402,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi mZeros_Aux[iDim][jDim] = 0.0; mId_Aux[iDim][jDim] = 0.0; } - mId_Aux[iDim][iDim] = E; // TODO: This works for clamped boundary conditions... + mId_Aux[iDim][iDim] = E; } @@ -1738,7 +1738,6 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con /*--- If the problem is dynamic ---*/ /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ - /*--- TODO: Do I really need to do this? ---*/ if(dynamic){ @@ -2146,7 +2145,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { /*--- Dynamic contribution ---*/ - /*--- TODO: Do I have to scale this one? I don't think so... ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); LinSysRes.AddBlock(iPoint, Res_Time_Cont); @@ -2163,7 +2161,6 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv /*--- Add FSI contribution ---*/ if (fsi) { - /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ if (incremental_load){ for (iVar = 0; iVar < nVar; iVar++){ Res_FSI_Cont[iVar] = loadIncrement * node[iPoint]->Get_FlowTraction(iVar); @@ -2417,7 +2414,6 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSol /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++) { /*--- Dynamic contribution ---*/ - /*--- TODO: Do I have to scale this one? I don't think so... ---*/ Res_Time_Cont = TimeRes.GetBlock(iPoint); LinSysRes.AddBlock(iPoint, Res_Time_Cont); /*--- External surface load contribution ---*/ @@ -2437,7 +2433,6 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSol /*--- Add FSI contribution ---*/ if (fsi) { - /*--- TODO: It may be worthy restricting the flow traction to the boundary elements... ---*/ if (incremental_load){ for (iVar = 0; iVar < nVar; iVar++){ Res_FSI_Cont[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + @@ -2568,8 +2563,6 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CS if (fsi) node[iPoint]->Set_FlowTraction_n(); } - /*--- TODO: Perform the MPI communication of the solution (I think this may be needed) ---*/ - } void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ @@ -2685,8 +2678,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side - /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ - /*--- This may be improved ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++){ node[iPoint]->Clear_FlowTraction(); } @@ -2821,8 +2812,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe nProcessor = size; - /*--- TODO: We have to clear the traction before applying it, because we are "adding" to node and not "setting" ---*/ - /*--- This may be improved ---*/ for (iPoint = 0; iPoint < nPoint; iPoint++){ node[iPoint]->Clear_FlowTraction(); } @@ -2967,7 +2956,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe if (incompressible){ Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); - // TODO: This can be taken out (one thing at a time!) Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); if (viscous_flow){ @@ -2979,7 +2967,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe else if (compressible){ Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); - // TODO: This can be taken out (one thing at a time!) Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); if (viscous_flow){ @@ -3357,7 +3344,6 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, WAitkDyn = GetWAitken_Dyn(); - //TODO: double check this. if (rbuf_denAitk > 1E-15){ WAitkDyn = - 1.0 * WAitkDyn * rbuf_numAitk / rbuf_denAitk ; } @@ -3450,7 +3436,6 @@ void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, } /*--- Perform the MPI communication of the solution, displacements only ---*/ - // TODO: check if this is needed, as the solution is also communicated when u' and u'' are computed Set_MPI_Solution_DispOnly(fea_geometry[MESH_0], fea_config); diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index cf7d2c2447a..e95efe1e3a9 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -2288,9 +2288,9 @@ void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CC filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ - filename = config->GetRestart_FEMFileName(); + filename = config->GetSolution_FEMFileName(); } else { - filename = config->GetRestart_FlowFileName(); + filename = config->GetSolution_FlowFileName(); } /*--- Multizone problems require the number of the zone to be appended. ---*/ diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py index 81211046d4c..3932ffbc2cd 100644 --- a/SU2_PY/SU2/io/tools.py +++ b/SU2_PY/SU2/io/tools.py @@ -826,6 +826,25 @@ def get_specialCases(config): #: def get_specialCases() +# ------------------------------------------------------------------- +# Check Fluid Structure Interaction +# ------------------------------------------------------------------- +def get_multizone(config): + """ returns a list of special physical problems that were + specified in the config file, and set to 'yes' + """ + + all_multizone_problems = ['FLUID_STRUCTURE_INTERACTION'] + + multizone = [] + for key in all_multizone_problems: + if config.has_key('PHYSICAL_PROBLEM') and config['PHYSICAL_PROBLEM'] == key: + multizone.append(key) + + return multizone + +#: def get_multizone() + def next_folder(folder_format,num_format='%03d'): """ folder = next_folder(folder_format,num_format='%03d') diff --git a/SU2_PY/SU2/run/__init__.py b/SU2_PY/SU2/run/__init__.py index 8d6d57223ba..82c2c78b665 100644 --- a/SU2_PY/SU2/run/__init__.py +++ b/SU2_PY/SU2/run/__init__.py @@ -4,11 +4,11 @@ build_command ,\ run_command ,\ CFD ,\ - FSI ,\ MSH ,\ DEF ,\ DOT ,\ - SOL ; + SOL ,\ + SOL_FSI ; from direct import direct from adjoint import adjoint diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py index 3643132739b..3ef61ea1567 100644 --- a/SU2_PY/SU2/run/direct.py +++ b/SU2_PY/SU2/run/direct.py @@ -82,6 +82,7 @@ def direct ( config ): # merge konfig['SOLUTION_FLOW_FILENAME'] = konfig['RESTART_FLOW_FILENAME'] + konfig['SOLUTION_STRUCTURE_FILENAME'] = konfig['RESTART_STRUCTURE_FILENAME'] su2merge(konfig) # filenames diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index f262b64be1f..ea9b21bd4fa 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -235,6 +235,28 @@ def SOL(config): return +def SOL_FSI(config): + """ run SU2_SOL for FSI problems + partitions set by config.NUMBER_PART + """ + + konfig = copy.deepcopy(config) + + tempname = 'config_SOL.cfg' + konfig.dump(tempname) + + # must run with rank 1 + processes = konfig['NUMBER_PART'] + + the_Command = 'SU2_SOL ' + tempname + ' 2' + the_Command = build_command( the_Command , processes ) + run_command( the_Command ) + + #os.remove(tempname) + + return + + # ------------------------------------------------------------ # Helper functions # ------------------------------------------------------------ diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py index eaa5564ae22..28590cb4d8b 100644 --- a/SU2_PY/SU2/run/merge.py +++ b/SU2_PY/SU2/run/merge.py @@ -25,6 +25,7 @@ import os, sys, shutil, copy from .. import io as su2io from interface import SOL as SU2_SOL +from interface import SOL_FSI as SU2_SOL_FSI # ---------------------------------------------------------------------- # Merge Mesh @@ -61,12 +62,18 @@ def merge( config ): # special cases special_cases = su2io.get_specialCases(konfig) + + # special cases + multizone_cases = su2io.get_multizone(konfig) # # MERGING # # - if 'WRT_UNSTEADY' in special_cases: - merge_unsteady(konfig) + if 'FLUID_STRUCTURE_INTERACTION' in multizone_cases: + merge_multizone(konfig) else: - merge_solution(konfig) + if 'WRT_UNSTEADY' in special_cases: + merge_unsteady(konfig) + else: + merge_solution(konfig) # info out (empty) info = su2io.State() @@ -97,3 +104,14 @@ def merge_solution( config ): return #: merge_solution( config ) + +def merge_multizone( config, begintime=0, endtime=None ): + + if not endtime: + endtime = config.EXT_ITER + + SU2_SOL_FSI( config ) + + return + +#: merge_solution( config ) \ No newline at end of file diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py index 300bbd0f586..3501c402634 100644 --- a/SU2_PY/parallel_computation_fsi.py +++ b/SU2_PY/parallel_computation_fsi.py @@ -1,9 +1,9 @@ #!/usr/bin/env python -## \file parallel_computation.py -# \brief Python script for doing the continuous adjoint computation using the SU2 suite. -# \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.0.1 "Cardinal" +## \file parallel_computation_fsi.py +# \brief Python script for running FSI simulations using the SU2 suite. +# \author T. Economon, T. Lukaczyk, F. Palacios, H. Kline, R. Sanchez +# \version 4.1.0 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -85,14 +85,16 @@ def parallel_computation( filename , state.FILES.MESH = config.MESH_FILENAME # CFD Solution (direct or adjoint) - info = SU2.run.FSI(config) + info = SU2.run.CFD(config) state.update(info) # Solution merging - if config.MATH_PROBLEM == 'DIRECT': + if config.PHYSICAL_PROBLEM == 'FEM_ELASTICITY': + config.SOLUTION_STRUCTURE_FILENAME = config.RESTART_STRUCTURE_FILENAME + elif config.PHYSICAL_PROBLEM == 'FLUID_STRUCTURE_INTERACTION': config.SOLUTION_FLOW_FILENAME = config.RESTART_FLOW_FILENAME - elif config.MATH_PROBLEM == 'CONTINUOUS_ADJOINT': - config.SOLUTION_ADJ_FILENAME = config.RESTART_ADJ_FILENAME + config.SOLUTION_STRUCTURE_FILENAME = config.RESTART_STRUCTURE_FILENAME + info = SU2.run.merge(config) state.update(info) From d284c5de73798d6129de255e841595fb01bbeb64 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 2 Feb 2016 17:14:33 +0000 Subject: [PATCH 180/269] Added test cases. --- .../fea_fsi/DynBeam_2d/configBeam_2d.cfg | 122 ++---- .../fea_fsi/StatBeam_3d/configBeam_3d.cfg | 101 +---- .../fea_fsi/WallChannel_2d/configFSI_2D.cfg | 361 ++++-------------- .../fea_fsi/WallChannel_3d/configFSI_3D.cfg | 335 ---------------- TestCases/parallel_regression.py | 37 ++ TestCases/serial_regression.py | 39 ++ 6 files changed, 194 insertions(+), 801 deletions(-) delete mode 100644 TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg diff --git a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg index bd6c97d24b7..329032887a8 100644 --- a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg +++ b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg @@ -1,116 +1,48 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % % SU2 configuration file % % Case description: Dynamic 2D Beam % % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % -% Date: 2015.05.15 % +% Date: 2016.02.01 % % File Version 4.1.0 "Cardinal" % -% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -% Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, -% POISSON_EQUATION) -PHYSICAL_PROBLEM= LINEAR_ELASTICITY -% -% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) + +PHYSICAL_PROBLEM= FEM_ELASTICITY MATH_PROBLEM= DIRECT - -% --------------------------- MATERIAL CONSTANTS ------------------------------% -% -% Value of the Elasticity modulus -ELASTICITY_MODULUS=3E9 -% -% Value of the Poisson ratio +GEOMETRIC_CONDITIONS= LARGE_DEFORMATIONS +MATERIAL_MODEL= NEO_HOOKEAN +MESH_FILENAME= meshBeam_2d.su2 +RESTART_SOL= YES +DYN_RESTART_ITER= 1 +NONLINEAR_FEM_INT_ITER = 10 +RESIDUAL_FEM_UTOL = -5.0 +RESIDUAL_FEM_RTOL = -5.0 +RESIDUAL_FEM_ETOL = -5.0 +ELASTICITY_MODULUS=3E7 POISSON_RATIO=0.3 -% -% Value of the material density MATERIAL_DENSITY=7854 -% -% Elasticity formulation for 2D problems FORMULATION_ELASTICITY_2D = PLANE_STRESS - -% ------------------------- UNSTEADY SIMULATION -------------------------------% -% -% Unsteady simulation (NO, TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, -% DUAL_TIME_STEPPING-2ND_ORDER) -UNSTEADY_SIMULATION= NO -% -% -------------------------- DYNAMIC SIMULATION -------------------------------% -% -% Dynamic structural analysis -DYNAMIC_ANALYSYS= YES -% Time discretization +DYNAMIC_ANALYSIS= YES +DYN_TIMESTEP= 0.01 +DYN_TIME= 0.1 +EXT_ITER=2 TIME_DISCRE_FEA= NEWMARK_IMPLICIT -% Ramp Load -RAMP_LOADING=YES -% Ramp Time -RAMP_TIME=5 -% Dynamic analysis time step -DYN_TIMESTEP= 0.1 -% Dynamic analysis total time -DYN_TIME= 6.1 -% Number of total iterations -EXT_ITER=61 -% Newmark parameters -NEWMARK_ALPHA=0.3 -NEWMARK_DELTA=0.55 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Clamped boundary marker(s) (NONE = no marker) -% Format: ( clamped marker ) +NEWMARK_ALPHA=0.2601 +NEWMARK_DELTA=0.52 MARKER_CLAMPED = ( left , right ) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, force value normal to the surface, ... ) MARKER_NORMAL_LOAD= ( lower, 0) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, force value, multiplier, direction of the load ... ) MARKER_LOAD= ( upper, 1, 1000, 0, -1, 0) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, amplitude (N), frequency (Hz), direction of the load ... ) -% MARKER_SINE_LOAD= (upper, 1000, 1, 0, -1, 0) - - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -% Linear solver for the implicit formulation (BCGSTAB, FGMRES) LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) LINEAR_SOLVER_PREC= LU_SGS -% -% Min error of the linear solver for the implicit formulation LINEAR_SOLVER_ERROR= 1E-8 -% -% Max number of iterations of the linear solver for the implicit formulation LINEAR_SOLVER_ITER= 1000 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -% Mesh input file -MESH_FILENAME= meshBeam_2d.su2 -% -% Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 -% -% Output file format (PARAVIEW, TECPLOT) OUTPUT_FORMAT= PARAVIEW -% -% Output file name (PARAVIEW, TECPLOT) -VOLUME_STRUCTURE_FILENAME= beam2d -% -% Output file name (PARAVIEW, TECPLOT) -SURFACE_STRUCTURE_FILENAME= surf_beam2d -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history_Beam -% -% Writing solution file frequency -WRT_SOL_FREQ= 60 +WRT_SRF_SOL = NO +VOLUME_STRUCTURE_FILENAME= beam +RESTART_STRUCTURE_FILENAME= restart_beam.dat +SOLUTION_STRUCTURE_FILENAME= solution_beam.dat +WRT_SOL_FREQ= 1 +WRT_SOL_FREQ_DUALTIME= 1 +WRT_CON_FREQ= 1 +WRT_CON_FREQ_DUALTIME= 1 diff --git a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg index 93ed7cca625..c3d19b32d4d 100644 --- a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg +++ b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg @@ -1,98 +1,35 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % % SU2 configuration file % -% Case description: Static 3D Beam % +% Case description: Beam 3D % % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % -% Date: 2015.05.15 % +% Date: 2016.02.01 % % File Version 4.1.0 "Cardinal" % -% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -% Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, -% POISSON_EQUATION) -PHYSICAL_PROBLEM= LINEAR_ELASTICITY -% -% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) + +PHYSICAL_PROBLEM= FEM_ELASTICITY MATH_PROBLEM= DIRECT - -% --------------------------- MATERIAL CONSTANTS ------------------------------% -% -% Value of the Elasticity modulus -ELASTICITY_MODULUS=3E9 -% -% Value of the Poisson ratio +GEOMETRIC_CONDITIONS= SMALL_DEFORMATIONS +MATERIAL_MODEL= LINEAR_ELASTIC +MESH_FILENAME= meshBeam_3d.su2 +ELASTICITY_MODULUS=3E7 POISSON_RATIO=0.3 -% -% Value of the material density MATERIAL_DENSITY=7854 - -% ------------------------- UNSTEADY SIMULATION -------------------------------% -% -% Unsteady simulation (NO, TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, -% DUAL_TIME_STEPPING-2ND_ORDER) -UNSTEADY_SIMULATION= NO -% -% -------------------------- DYNAMIC SIMULATION -------------------------------% -% -% Dynamic structural analysis -DYNAMIC_ANALYSYS= NO - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Clamped boundary marker(s) (NONE = no marker) -% Format: ( clamped marker ) -MARKER_CLAMPED = ( left , right) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, force value normal to the surface, ... ) -MARKER_NORMAL_LOAD= ( lower, 0, symleft, 0, symright, 0 ) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, force value, multiplier, direction of the load ... ) +DYNAMIC_ANALYSIS= NO +MARKER_CLAMPED = ( left , right ) +MARKER_NORMAL_LOAD= ( lower, 0 , symleft, 0, symright, 0) MARKER_LOAD= ( upper, 1, 1000, 0, -1, 0) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, amplitude (N), frequency (Hz), direction of the load ... ) -% MARKER_SINE_LOAD= (upper, 1000, 1, 0, -1, 0) - -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -% Linear solver for the implicit formulation (BCGSTAB, FGMRES) LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) LINEAR_SOLVER_PREC= LU_SGS -% -% Min error of the linear solver for the implicit formulation LINEAR_SOLVER_ERROR= 1E-8 -% -% Max number of iterations of the linear solver for the implicit formulation -LINEAR_SOLVER_ITER= 1000 - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -% Mesh input file -MESH_FILENAME= meshBeam_3d.su2 -% -% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +LINEAR_SOLVER_ITER= 500 MESH_FORMAT= SU2 -% -% Output file format (PARAVIEW, TECPLOT) OUTPUT_FORMAT= PARAVIEW -% -% Output file name (PARAVIEW, TECPLOT) -VOLUME_STRUCTURE_FILENAME= beam3d -% -% Output file name (PARAVIEW, TECPLOT) -SURFACE_STRUCTURE_FILENAME= surf_beam3d -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history_beam3d -% -% Writing solution file frequency +WRT_SRF_SOL = NO +CONV_FILENAME= history_beam +VOLUME_STRUCTURE_FILENAME= beam +RESTART_STRUCTURE_FILENAME= restart_beam.dat WRT_SOL_FREQ= 1 - +WRT_SOL_FREQ_DUALTIME= 1 +WRT_CON_FREQ= 1 +WRT_CON_FREQ_DUALTIME= 1 diff --git a/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg b/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg index 03c88d384ae..4c538cda2ef 100644 --- a/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg +++ b/TestCases/fea_fsi/WallChannel_2d/configFSI_2D.cfg @@ -1,323 +1,106 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % % SU2 configuration file % -% Case description: Fluid structure interaction - Beam in channel - 2D % -% Author: Ruben Sanchez Fernandez % +% Case description: Fluid Structure Interaction - Wall in channel % +% Author: R.Sanchez % % Institution: Imperial College London % -% Date: 2015.05.15 % -% File Version 4.1.0 "Cardinal" % -% % +% Date: 2016.02.01 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -% Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, -% POISSON_EQUATION) PHYSICAL_PROBLEM= FLUID_STRUCTURE_INTERACTION -% -% Physical governing equations for the fluid (EULER, NAVIER_STOKES) FSI_FLUID_PROBLEM = NAVIER_STOKES -% -% Physical governing equations for the structure (LINEAR_ELASTICITY) -FSI_STRUCTURAL_PROBLEM = LINEAR_ELASTICITY -% -% Regime type (COMPRESSIBLE, INCOMPRESSIBLE, FREESURFACE) -REGIME_TYPE= COMPRESSIBLE -% -% If Navier-Stokes, kind of turbulent model (NONE, SA) -KIND_TURB_MODEL= NONE -% -% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) +FSI_STRUCTURAL_PROBLEM = FEM_ELASTICITY MATH_PROBLEM= DIRECT -% -% Restart solution (NO, YES) -RESTART_SOL= NO - -% -----------------------------------------------------------------------------% -% -------------------------- FLUID SIMULATION ---------------------------------% -% -----------------------------------------------------------------------------% - -% ------------------------- UNSTEADY SIMULATION -------------------------------% -% -% Unsteady simulation (NO, TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, -% DUAL_TIME_STEPPING-2ND_ORDER, TIME_SPECTRAL) +RESTART_SOL= YES +UNST_RESTART_ITER= 2 +DYN_RESTART_ITER= 2 +EXT_ITER= 3 +UNST_TIMESTEP= 0.005 +DYN_TIMESTEP= 0.005 +FSI_ITER= 5 +MARKER_FSI_INTERFACE = (wallUpwF, wallUpwS, wallUpperF, wallUpperS, wallDownF, wallDownS) +BGS_RELAXATION = FIXED_PARAMETER +STAT_RELAX_PARAMETER= 0.5 +RESIDUAL_REDUCTION_FSI= 5 +RESIDUAL_MINVAL_FSI= -8 UNSTEADY_SIMULATION= DUAL_TIME_STEPPING-2ND_ORDER -% -% Time Step for dual time stepping simulations (s) -UNST_TIMESTEP= 0.01 -% -% Total Physical Time for dual time stepping simulations (s) -UNST_TIME= 3.01 -% 300 iterations - 3.0 s -% -% Number of internal iterations (dual time method) -UNST_INT_ITER= 10 - -% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------% -% -% Mach number (non-dimensional, based on the free-stream values) -MACH_NUMBER= 0.15 -% -% Mach number for moving meshes (this is the number of the non-dimensionalization of the coefficients) -MACH_MOTION= 0.15 -% -% Angle of attack (degrees) +UNST_TIME= 4.01 +UNST_INT_ITER= 50 +KIND_TURB_MODEL= NONE +REGIME_TYPE= COMPRESSIBLE AoA= 0.0 -% -% Side-slip angle (degrees) SIDESLIP_ANGLE= 0.0 -% -% Free-stream temperature (288.15 K by default) -FREESTREAM_TEMPERATURE= 293.15 -% -% Reynolds number (non-dimensional, based on the free-stream values) -REYNOLDS_NUMBER= 300.0 - - -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% -% Reference origin for moment computation +REYNOLDS_NUMBER= 10 +MACH_NUMBER = 0.2 +MACH_MOTION = 0.2 +INIT_OPTION = TD_CONDITIONS +FREESTREAM_OPTION = DENSITY_FS +FREESTREAM_DENSITY = 1.0 +FREESTREAM_PRESSURE = 17.85714286 +FREESTREAM_TEMPERATURE = 0.062207438 +VISCOSITY_MODEL = CONSTANT_VISCOSITY +MU_CONSTANT = 1.6E-3 REF_ORIGIN_MOMENT_X = 0.00 REF_ORIGIN_MOMENT_Y = 0.00 REF_ORIGIN_MOMENT_Z = 0.00 -% -% Reference length for pitching, rolling, and yawing non-dimensional moment -REF_LENGTH_MOMENT= 1.6 -% -% Reference area for force coefficients (0 implies automatic calculation) -REF_AREA= 1.6 -% -% Length to compute the Reynolds number -REYNOLDS_LENGTH=1.0 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Navier-Stokes wall boundary marker(s) (NONE = no marker) -MARKER_HEATFLUX= ( Wall_Upwind_F, 0.0, Wall_Upper_F, 0.0, Wall_Downwind_F, 0.0) -% -% Farfield boundary marker(s) (NONE = no marker) -MARKER_FAR= ( Inlet, Outlet ) -% -% Farfield boundary marker(s) (NONE = no marker) -MARKER_EULER= ( Upper, Lower ) -% -% Marker(s) of the surface to be plotted or designed -MARKER_PLOTTING= ( Wall_Upwind_F, Wall_Upper_F, Wall_Downwind_F) -% -% Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated -MARKER_MONITORING= ( Wall_Upwind_F, Wall_Upper_F, Wall_Downwind_F ) - -% -----------------------------------------------------------------------------% -% ------------------------- STRUCTURAL SIMULATION -----------------------------% -% -----------------------------------------------------------------------------% - -% -------------------------- DYNAMIC SIMULATION -------------------------------% -% -% Dynamic analysis time step -DYN_TIMESTEP= 0.01 -% -% Dynamic analysis total time -DYN_TIME= 3.01 - -% --------------------------- MATERIAL CONSTANTS ------------------------------% -% -% Value of the Elasticity modulus -ELASTICITY_MODULUS=1E4 -% -% Value of the Poisson ratio -POISSON_RATIO=0.3 -% -% Value of the material density -MATERIAL_DENSITY=0.01 -% -% Elasticity formulation for 2D problems -FORMULATION_ELASTICITY_2D = PLANE_STRESS -% -% -------------------------- DYNAMIC SIMULATION -------------------------------% -% -% Dynamic structural analysis -DYNAMIC_ANALYSYS= YES -% -% Time discretization -TIME_DISCRE_FEA= NEWMARK_IMPLICIT -% -% Gradual Load -%SIGMOID_LOADING=NO -% -% Parameters of the numerical method -NEWMARK_ALPHA=0.3 -NEWMARK_DELTA=0.55 -% -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Clamped boundary marker(s) (NONE = no marker) -% Format: ( clamped marker ) -MARKER_CLAMPED = ( Wall_Clamped ) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, force value normal to the surface, ... ) -MARKER_NORMAL_LOAD= ( Wall_Upwind_S, 0, Wall_Downwind_S, 0, Wall_Upper_S, 0) - -% -----------------------------------------------------------------------------% -% --------------------------- MESH PARAMETERS ---------------------------------% -% -----------------------------------------------------------------------------% -% -% Maximum number of iterations when solving the mesh update -DEFORM_LINEAR_ITER= 500 -% -% Steps in the mesh updating (I think this is unnecessary, because the mesh is updated with linear elasticity...) -DEFORM_NONLINEAR_ITER= 1 - -% -----------------------------------------------------------------------------% -% ------------------------ INTERACTION PARAMETERS -----------------------------% -% -----------------------------------------------------------------------------% -% -% Number of fluid structure interaction iterations (1: staggered) -FSI_ITER= 1 -% -% Time while the structure doesn't receive any load from the fluid -STATIC_TIME=0.5 -% -% Ramp Load (the load from the fluid is transfered progresively) -RAMP_LOADING=YES -% -% Ramp Time -RAMP_TIME=1.0 -% -% Marker interface -MARKER_FSI_INTERFACE = (Wall_Upwind_F, Wall_Upwind_S, Wall_Upper_F, Wall_Upper_S, Wall_Downwind_F, Wall_Downwind_S) -% -% Residual reduction in the structural part of FSI applications (order of magnitude with respect to the initial value) -RESIDUAL_REDUCTION_FSI= 3 -% -% Min value of the residual in the structural part of FSI applications (log10 of the residual) -RESIDUAL_MINVAL_FSI= -4 - -% -----------------------------------------------------------------------------% -% -------------------------- COMMON PARAMETERS --------------------------------% -% -----------------------------------------------------------------------------% - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% -% Numerical method for spatial gradients (GREEN_GAUSS, LEAST_SQUARES, -% WEIGHTED_LEAST_SQUARES) +REF_LENGTH_MOMENT= 0.016 +REF_AREA= 0.016 +REYNOLDS_LENGTH=0.016 +MARKER_HEATFLUX= ( wallUpwF, 0.0, wallDownF, 0.0, wallUpperF, 0.0) +MARKER_INLET= ( inlet, 0.062207438, 18.36216288, 1.0, 0.0, 0.0 ) +MARKER_OUTLET= ( outlet, 17.85714286) +MARKER_EULER= ( upper, lower ) +MARKER_PLOTTING= ( wallUpwF, wallDownF, wallUpperF ) +MARKER_MONITORING= ( wallUpwF, wallDownF, wallUpperF ) NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -% -% Number of total iterations -EXT_ITER= 301 -% -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -% Linear solver for the implicit formulation (BCGSTAB, FGMRES) +RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) LINEAR_SOLVER_PREC= LU_SGS -% -% Preconditioner of the Krylov linear solver for the structural solver(JACOBI, LINELET, LU_SGS) -FSI_LINEAR_SOLVER_PREC_STRUC= LU_SGS -% -% Min error of the linear solver for the implicit formulation LINEAR_SOLVER_ERROR= 1E-6 -% -% Max number of iterations of the linear solver for the implicit formulation LINEAR_SOLVER_ITER= 2 -% -% Max number of iterations of the linear solver for the structural computations -FSI_LINEAR_SOLVER_ITER_STRUC = 1000 - -% -------------------------- MULTIGRID PARAMETERS -----------------------------% -% -% Multi-Grid Levels (0 = no multi-grid) -MGLEVEL= 0 -% -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% -% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, -% TURKEL_PREC, MSW) CONV_NUM_METHOD_FLOW= ROE -% -% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) SPATIAL_ORDER_FLOW= 2ND_ORDER_LIMITER -% -% Coefficient for the limiter LIMITER_COEFF= 10.0 -% -% 1st, 2nd and 4th order artificial dissipation coefficients AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) -% -% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) TIME_DISCRE_FLOW= EULER_IMPLICIT - -% --------------------------- CONVERGENCE PARAMETERS --------------------------% -% -% Convergence criteria (CAUCHY, RESIDUAL) -% CONV_CRITERIA= RESIDUAL -% -% Residual reduction (order of magnitude with respect to the initial value) RESIDUAL_REDUCTION= 3 -% -% Min value of the residual (log10 of the residual) RESIDUAL_MINVAL= -10 -% -% Start convergence criteria at iteration number STARTCONV_ITER= 10 -% -% Number of elements to apply the criteria CAUCHY_ELEMS= 100 -% -% Epsilon to control the series convergence CAUCHY_EPS= 1E-5 -% -% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, -% SENS_MACH, DELTA_LIFT, DELTA_DRAG) CAUCHY_FUNC_FLOW= DRAG - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -% Mesh input file +ELASTICITY_MODULUS=5E4 +MATERIAL_DENSITY=50 +FORMULATION_ELASTICITY_2D = PLANE_STRESS +POISSON_RATIO=0.3 +DYNAMIC_ANALYSIS= YES +DYN_TIME= 4.01 +TIME_DISCRE_FEA= NEWMARK_IMPLICIT +NEWMARK_ALPHA=0.36 +NEWMARK_DELTA=0.7 +GEOMETRIC_CONDITIONS= LARGE_DEFORMATIONS +MATERIAL_MODEL= NEO_HOOKEAN +NONLINEAR_FEM_INT_ITER = 10 +RESIDUAL_FEM_UTOL = -7.0 +RESIDUAL_FEM_RTOL = -7.0 +RESIDUAL_FEM_ETOL = -7.0 +FSI_LINEAR_SOLVER_PREC_STRUC= LU_SGS +FSI_LINEAR_SOLVER_ITER_STRUC = 1000 +MARKER_CLAMPED = ( clamped ) +MARKER_NORMAL_LOAD= ( wallDownS, 0.0, wallUpperS, 0.0, wallUpwS, 0.0) MESH_FILENAME= meshFSI_2D.su2 -% -% Mesh input file format (SU2, CGNS NETCDF_ASCII) +DEFORM_NONLINEAR_ITER= 1 +DEFORM_LINEAR_ITER= 500 MESH_FORMAT= SU2 -% -% Output file format (PARAVIEW, TECPLOT) OUTPUT_FORMAT= PARAVIEW -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history_2dfsi -% -% Output file convergence history for FSI -CONV_FILENAME_FSI= historyFSI_2dfsi.csv -% -% Output file convergence history for FSI requested -WRITE_CONV_FILENAME_FSI = YES -% -% Output file restart flow +WRT_CON_FREQ= 100 +WRT_CON_FREQ_DUALTIME= 100 +WRT_SOL_FREQ= 100 +WRT_SOL_FREQ_DUALTIME= 100 +VOLUME_FLOW_FILENAME= results_flow RESTART_FLOW_FILENAME= restart_flow.dat -% -% Output file flow (w/o extension) variables -VOLUME_FLOW_FILENAME= flow_2dfsi -% -% Output file flow (w/o extension) variables -SURFACE_FLOW_FILENAME= surf_flow_2dfsi -% -% Output file name (PARAVIEW, TECPLOT) -VOLUME_STRUCTURE_FILENAME= struc_2dfsi -% -% Output file name (PARAVIEW, TECPLOT) -SURFACE_STRUCTURE_FILENAME= surf_struc_2dfsi -% -% Writing solution file frequency -WRT_SOL_FREQ= 301 -% -% Writing solution file frequency for physical time steps (dual time) -WRT_SOL_FREQ_DUALTIME= 301 -% -% Writing convergence history frequency -WRT_CON_FREQ= 1 -% -% Writing convergence history frequency (dual time, only written to screen) -WRT_CON_FREQ_DUALTIME= 5 +SOLUTION_FLOW_FILENAME= solution_flow.dat +VOLUME_STRUCTURE_FILENAME= results_wall +RESTART_STRUCTURE_FILENAME= restart_wall.dat +SOLUTION_STRUCTURE_FILENAME= solution_wall.dat +WRT_SRF_SOL = NO +WRT_CSV_SOL = NO diff --git a/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg b/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg deleted file mode 100644 index 0817fad607f..00000000000 --- a/TestCases/fea_fsi/WallChannel_3d/configFSI_3D.cfg +++ /dev/null @@ -1,335 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% SU2 configuration file % -% Case description: Fluid structure interaction - Beam in channel - 3D % -% Author: Ruben Sanchez Fernandez % -% Institution: Imperial College London % -% Date: 2015.05.15 % -% File Version 4.1.0 "Cardinal" % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% -% -% Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, -% POISSON_EQUATION) -PHYSICAL_PROBLEM= FLUID_STRUCTURE_INTERACTION -% -% Physical governing equations for the fluid (EULER, NAVIER_STOKES) -FSI_FLUID_PROBLEM = NAVIER_STOKES -% -% Physical governing equations for the structure (LINEAR_ELASTICITY) -FSI_STRUCTURAL_PROBLEM = LINEAR_ELASTICITY -% -% Regime type (COMPRESSIBLE, INCOMPRESSIBLE, FREESURFACE) -REGIME_TYPE= COMPRESSIBLE -% -% If Navier-Stokes, kind of turbulent model (NONE, SA) -KIND_TURB_MODEL= NONE -% -% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) -MATH_PROBLEM= DIRECT -% -% Restart solution (NO, YES) -RESTART_SOL= NO - -% -----------------------------------------------------------------------------% -% -------------------------- FLUID SIMULATION ---------------------------------% -% -----------------------------------------------------------------------------% - -% ------------------------- UNSTEADY SIMULATION -------------------------------% -% -% Unsteady simulation (NO, TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, -% DUAL_TIME_STEPPING-2ND_ORDER, TIME_SPECTRAL) -UNSTEADY_SIMULATION= DUAL_TIME_STEPPING-2ND_ORDER -% -% Time Step for dual time stepping simulations (s) -UNST_TIMESTEP= 0.01 -% -% Total Physical Time for dual time stepping simulations (s) -UNST_TIME= 0.16 -% 160 iterations - 0.16 s -% -% Number of internal iterations (dual time method) -UNST_INT_ITER= 20 - -% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------% -% -% Mach number (non-dimensional, based on the free-stream values) -MACH_NUMBER= 0.15 -% -% Mach number for moving meshes (this is the number of the non-dimensionalization of the coefficients) -MACH_MOTION= 0.15 -% -% Angle of attack (degrees) -AoA= 0.0 -% -% Side-slip angle (degrees) -SIDESLIP_ANGLE= 0.0 -% -% Free-stream temperature (288.15 K by default) -FREESTREAM_TEMPERATURE= 293.15 -% -% Reynolds number (non-dimensional, based on the free-stream values) -REYNOLDS_NUMBER= 300.0 - - -% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% -% -% Reference origin for moment computation -REF_ORIGIN_MOMENT_X = 0.00 -REF_ORIGIN_MOMENT_Y = 0.00 -REF_ORIGIN_MOMENT_Z = 0.00 -% -% Reference length for pitching, rolling, and yawing non-dimensional moment -REF_LENGTH_MOMENT= 1.6 -% -% Reference area for force coefficients (0 implies automatic calculation) -REF_AREA= 1.6 -% -% Length to compute the Reynolds number -REYNOLDS_LENGTH=1.0 - -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Navier-Stokes wall boundary marker(s) (NONE = no marker) -MARKER_HEATFLUX= ( wallUpwF, 0.0, wallDownF, 0.0, wallUpperF, 0.0) -% -% Farfield boundary marker(s) (NONE = no marker) -MARKER_FAR= ( inlet, outlet ) -% -% Farfield boundary marker(s) (NONE = no marker) -MARKER_EULER= ( upper, lower ) -% -% Symmetry boundary marker(s) (NONE = no marker) -MARKER_SYM= (symleft, symright) -% -% Marker(s) of the surface to be plotted or designed -MARKER_PLOTTING= ( wallUpwF, wallDownF, wallUpperF ) -% -% Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated -MARKER_MONITORING= ( wallUpwF, wallDownF, wallUpperF ) - -% -----------------------------------------------------------------------------% -% ------------------------- STRUCTURAL SIMULATION -----------------------------% -% -----------------------------------------------------------------------------% - -% -------------------------- DYNAMIC SIMULATION -------------------------------% -% -% Dynamic analysis time step -DYN_TIMESTEP= 0.01 -% -% Dynamic analysis total time -DYN_TIME= 0.16 - -% --------------------------- MATERIAL CONSTANTS ------------------------------% -% -% Value of the Elasticity modulus -ELASTICITY_MODULUS=1E4 -% -% Value of the Poisson ratio -POISSON_RATIO=0.3 -% -% Value of the material density -MATERIAL_DENSITY=0.01 -% -% Elasticity formulation for 2D problems -FORMULATION_ELASTICITY_2D = PLANE_STRESS -% -% -------------------------- DYNAMIC SIMULATION -------------------------------% -% -% Dynamic structural analysis -DYNAMIC_ANALYSYS= YES -% -% Time discretization -TIME_DISCRE_FEA= NEWMARK_IMPLICIT -% -% Parameters of the numerical method -NEWMARK_ALPHA=0.3 -NEWMARK_DELTA=0.55 -% -% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% -% -% Clamped boundary marker(s) (NONE = no marker) -% Format: ( clamped marker ) -MARKER_CLAMPED = ( clamped ) -% -% Load boundary marker(s) (NONE = no marker) -% Format: ( load marker, force value normal to the surface, ... ) -MARKER_NORMAL_LOAD= ( symleftS, 0.0, symrightS, 0.0, wallDownS, 0.0, wallUpperS, 0.0, wallUpwS, 0.0) - -% -----------------------------------------------------------------------------% -% --------------------------- MESH PARAMETERS ---------------------------------% -% -----------------------------------------------------------------------------% -% -% Maximum number of iterations when solving the mesh update -DEFORM_LINEAR_ITER= 500 -% -% Steps in the mesh updating (I think this is unnecessary, because the mesh is updated with linear elasticity...) -DEFORM_NONLINEAR_ITER= 1 - -% -----------------------------------------------------------------------------% -% ------------------------ INTERACTION PARAMETERS -----------------------------% -% -----------------------------------------------------------------------------% -% -% Number of fluid structure interaction iterations (1: staggered) -FSI_ITER= 10 -% -% Aitken's relaxation parameter -STAT_RELAX_PARAMETER= 0.5 -% -% Maximum relaxation parameter for the first iteration using Aitken's dynamic relaxation -AITKEN_DYN_MAX_INITIAL = 0.5 -% -% Kind of relaxation for the block Gauss Seidel Method -BGS_RELAXATION = AITKEN_DYNAMIC -% -% Time while the structure doesn't receive any load from the fluid -STATIC_TIME=0.05 -% -% Ramp Load (the load is transfered progresively) -RAMP_LOADING=NO -% -% Predictor order -PREDICTOR_ORDER = 0 -% -% Marker interface -MARKER_FSI_INTERFACE = (wallUpwF, wallUpwS, wallUpperF, wallUpperS, wallDownF, wallDownS) -% -% Residual reduction in the structural part of FSI applications (order of magnitude with respect to the initial value) -RESIDUAL_REDUCTION_FSI= 3 -% -% Min value of the residual in the structural part of FSI applications (log10 of the residual) -RESIDUAL_MINVAL_FSI= -4 - -% -----------------------------------------------------------------------------% -% -------------------------- COMMON PARAMETERS --------------------------------% -% -----------------------------------------------------------------------------% - -% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% -% -% Numerical method for spatial gradients (GREEN_GAUSS, LEAST_SQUARES, -% WEIGHTED_LEAST_SQUARES) -NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES -% -% Number of total iterations -EXT_ITER= 16 -% -% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% -% -% Linear solver for the implicit (or discrete adjoint) formulation (BCGSTAB, FGMRES) -LINEAR_SOLVER= FGMRES -% -% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) -LINEAR_SOLVER_PREC= LU_SGS -% -% Preconditioner of the Krylov linear solver for the structural solver(JACOBI, LINELET, LU_SGS) -FSI_LINEAR_SOLVER_PREC_STRUC= LU_SGS -% -% Min error of the linear solver for the implicit formulation -LINEAR_SOLVER_ERROR= 1E-6 -% -% Max number of iterations of the linear solver for the implicit formulation -LINEAR_SOLVER_ITER= 2 -% -% Max number of iterations of the linear solver for the structural computations -FSI_LINEAR_SOLVER_ITER_STRUC = 500 - -% -------------------------- MULTIGRID PARAMETERS -----------------------------% -% -% Multi-Grid Levels (0 = no multi-grid) -MGLEVEL= 0 -% -% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% -% -% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, -% TURKEL_PREC, MSW) -CONV_NUM_METHOD_FLOW= ROE -% -% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) -SPATIAL_ORDER_FLOW= 2ND_ORDER_LIMITER -% -% Coefficient for the limiter -LIMITER_COEFF= 10.0 -% -% 1st, 2nd and 4th order artificial dissipation coefficients -AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) -% -% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) -TIME_DISCRE_FLOW= EULER_IMPLICIT - -% --------------------------- CONVERGENCE PARAMETERS --------------------------% -% -% Convergence criteria (CAUCHY, RESIDUAL) -% -CONV_CRITERIA= RESIDUAL -% -% Residual reduction (order of magnitude with respect to the initial value) -RESIDUAL_REDUCTION= 3 -% -% Min value of the residual (log10 of the residual) -RESIDUAL_MINVAL= -10 -% -% Start convergence criteria at iteration number -STARTCONV_ITER= 10 -% -% Number of elements to apply the criteria -CAUCHY_ELEMS= 100 -% -% Epsilon to control the series convergence -CAUCHY_EPS= 1E-5 -% -% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, -% SENS_MACH, DELTA_LIFT, DELTA_DRAG) -CAUCHY_FUNC_FLOW= DRAG - -% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% -% -% Mesh input file -MESH_FILENAME= meshFSI_3D.su2 -% -% Mesh input file format (SU2, CGNS NETCDF_ASCII) -MESH_FORMAT= SU2 -% -% Output file format (PARAVIEW, TECPLOT) -OUTPUT_FORMAT= PARAVIEW -% -% Output file convergence history (w/o extension) -CONV_FILENAME= history_3D -% -% Output file convergence history for FSI -CONV_FILENAME_FSI= historyFSI_3D.csv -% -% Output file convergence history for FSI requested -WRITE_CONV_FILENAME_FSI = YES -% -% Forces breakdown file -BREAKDOWN_FILENAME= forces_breakdown_FSI_3D.dat -% -% Output file restart flow -RESTART_FLOW_FILENAME= restart_flow_3D.dat -% -% Output file flow (w/o extension) variables -VOLUME_FLOW_FILENAME= flow_3D -% -% Output file flow (w/o extension) variables -SURFACE_FLOW_FILENAME= surf_flow_3D -% -% Output file name (PARAVIEW, TECPLOT) -VOLUME_STRUCTURE_FILENAME= struc_3D -% -% Output file name (PARAVIEW, TECPLOT) -SURFACE_STRUCTURE_FILENAME= surf_struc_3D -% -% Writing solution file frequency -WRT_SOL_FREQ= 15 -% -% Writing solution file frequency for physical time steps (dual time) -WRT_SOL_FREQ_DUALTIME= 15 -% -% Writing convergence history frequency -WRT_CON_FREQ= 1 -% -% Writing convergence history frequency (dual time, only written to screen) -WRT_CON_FREQ_DUALTIME= 1 diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 9455ad30577..1a14fd0b0e1 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -432,6 +432,43 @@ def main(): edge_PPR.tol = 0.00001 test_list.append(edge_PPR) + ########################## + ### FEA - FSI ### + ########################## + + # Static beam, 3d + statbeam3d = TestCase('statbeam3d') + statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" + statbeam3d.cfg_file = "configBeam_3d.cfg" + statbeam3d.test_iter = 0 + statbeam3d.test_vals = [-8.644911, -8.280115, -8.204380, 6.4095e+04] #last 4 columns + statbeam3d.su2_exec = "parallel_computation_fsi.py -f" + statbeam3d.timeout = 1600 + statbeam3d.tol = 0.00001 + test_list.append(statbeam3d) + + # Dynamic beam, 2d + dynbeam2d = TestCase('dynbeam2d') + dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" + dynbeam2d.cfg_file = "configBeam_2d.cfg" + dynbeam2d.test_iter = 6 + dynbeam2d.test_vals = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns + dynbeam2d.su2_exec = "parallel_computation_fsi.py -f" + dynbeam2d.timeout = 1600 + dynbeam2d.tol = 0.00001 + test_list.append(dynbeam2d) + + # FSI, 2d + # fsi2d = TestCase('fsi2d') + # fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" + # fsi2d.cfg_file = "configFSI_2D.cfg" + # fsi2d.test_iter = 4 + # fsi2d.test_vals = [2, 0.500000, -7.779707, -1.141608] #last 4 columns + # fsi2d.su2_exec = "parallel_computation_fsi.py -f" + # fsi2d.timeout = 1600 + # fsi2d.tol = 0.00001 + # test_list.append(fsi2d) + ###################################### ### RUN TESTS ### ###################################### diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index e9c9714dcc8..1710a1bb9c2 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -493,6 +493,45 @@ def main(): centrifugal_stage.tol = 0.000001 test_list.append(centrifugal_stage) + + ########################## + ### FEA - FSI ### + ########################## + + # Static beam, 3d + statbeam3d = TestCase('statbeam3d') + statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" + statbeam3d.cfg_file = "configBeam_3d.cfg" + statbeam3d.test_iter = 0 + statbeam3d.test_vals = [-8.498274, -8.230638, -8.123824, 6.4095e+04] #last 4 columns + statbeam3d.su2_exec = "SU2_CFD" + statbeam3d.timeout = 1600 + statbeam3d.tol = 0.00001 + test_list.append(statbeam3d) + + # Dynamic beam, 2d + dynbeam2d = TestCase('dynbeam2d') + dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" + dynbeam2d.cfg_file = "configBeam_2d.cfg" + dynbeam2d.test_iter = 6 + dynbeam2d.test_vals = [-9.420640, -5.365872, -12.430382, 6.5210e+04] #last 4 columns + dynbeam2d.su2_exec = "SU2_CFD" + dynbeam2d.timeout = 1600 + dynbeam2d.tol = 0.00001 + test_list.append(dynbeam2d) + + # FSI, 2d + # fsi2d = TestCase('fsi2d') + # fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" + # fsi2d.cfg_file = "configFSI_2D.cfg" + # fsi2d.test_iter = 4 + # fsi2d.test_vals = [2, 0.500000, -7.779713, -1.141613] #last 4 columns + # fsi2d.su2_exec = "SU2_CFD" + # fsi2d.timeout = 1600 + # fsi2d.tol = 0.00001 + # test_list.append(fsi2d) + + ###################################### ### RUN TESTS ### ###################################### From a68f47ab96bf1511f7ce7ca25a6986b477ad5a73 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 2 Feb 2016 17:46:08 +0000 Subject: [PATCH 181/269] Temporarily disabled FSI and FEA test cases for pull request purposes. --- TestCases/parallel_regression.py | 36 ++++++++++++++++---------------- TestCases/serial_regression.py | 36 ++++++++++++++++---------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 1a14fd0b0e1..25d6a6240bf 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -437,26 +437,26 @@ def main(): ########################## # Static beam, 3d - statbeam3d = TestCase('statbeam3d') - statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" - statbeam3d.cfg_file = "configBeam_3d.cfg" - statbeam3d.test_iter = 0 - statbeam3d.test_vals = [-8.644911, -8.280115, -8.204380, 6.4095e+04] #last 4 columns - statbeam3d.su2_exec = "parallel_computation_fsi.py -f" - statbeam3d.timeout = 1600 - statbeam3d.tol = 0.00001 - test_list.append(statbeam3d) + # statbeam3d = TestCase('statbeam3d') + # statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" + # statbeam3d.cfg_file = "configBeam_3d.cfg" + # statbeam3d.test_iter = 0 + # statbeam3d.test_vals = [-8.644911, -8.280115, -8.204380, 6.4095e+04] #last 4 columns + # statbeam3d.su2_exec = "parallel_computation_fsi.py -f" + # statbeam3d.timeout = 1600 + # statbeam3d.tol = 0.00001 + # test_list.append(statbeam3d) # Dynamic beam, 2d - dynbeam2d = TestCase('dynbeam2d') - dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" - dynbeam2d.cfg_file = "configBeam_2d.cfg" - dynbeam2d.test_iter = 6 - dynbeam2d.test_vals = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns - dynbeam2d.su2_exec = "parallel_computation_fsi.py -f" - dynbeam2d.timeout = 1600 - dynbeam2d.tol = 0.00001 - test_list.append(dynbeam2d) + # dynbeam2d = TestCase('dynbeam2d') + # dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" + # dynbeam2d.cfg_file = "configBeam_2d.cfg" + # dynbeam2d.test_iter = 6 + # dynbeam2d.test_vals = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns + # dynbeam2d.su2_exec = "parallel_computation_fsi.py -f" + # dynbeam2d.timeout = 1600 + # dynbeam2d.tol = 0.00001 + # test_list.append(dynbeam2d) # FSI, 2d # fsi2d = TestCase('fsi2d') diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 1710a1bb9c2..d2274b16849 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -499,26 +499,26 @@ def main(): ########################## # Static beam, 3d - statbeam3d = TestCase('statbeam3d') - statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" - statbeam3d.cfg_file = "configBeam_3d.cfg" - statbeam3d.test_iter = 0 - statbeam3d.test_vals = [-8.498274, -8.230638, -8.123824, 6.4095e+04] #last 4 columns - statbeam3d.su2_exec = "SU2_CFD" - statbeam3d.timeout = 1600 - statbeam3d.tol = 0.00001 - test_list.append(statbeam3d) + # statbeam3d = TestCase('statbeam3d') + # statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" + # statbeam3d.cfg_file = "configBeam_3d.cfg" + # statbeam3d.test_iter = 0 + # statbeam3d.test_vals = [-8.498274, -8.230638, -8.123824, 6.4095e+04] #last 4 columns + # statbeam3d.su2_exec = "SU2_CFD" + # statbeam3d.timeout = 1600 + # statbeam3d.tol = 0.00001 + # test_list.append(statbeam3d) # Dynamic beam, 2d - dynbeam2d = TestCase('dynbeam2d') - dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" - dynbeam2d.cfg_file = "configBeam_2d.cfg" - dynbeam2d.test_iter = 6 - dynbeam2d.test_vals = [-9.420640, -5.365872, -12.430382, 6.5210e+04] #last 4 columns - dynbeam2d.su2_exec = "SU2_CFD" - dynbeam2d.timeout = 1600 - dynbeam2d.tol = 0.00001 - test_list.append(dynbeam2d) + # dynbeam2d = TestCase('dynbeam2d') + # dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" + # dynbeam2d.cfg_file = "configBeam_2d.cfg" + # dynbeam2d.test_iter = 6 + # dynbeam2d.test_vals = [-9.420640, -5.365872, -12.430382, 6.5210e+04] #last 4 columns + # dynbeam2d.su2_exec = "SU2_CFD" + # dynbeam2d.timeout = 1600 + # dynbeam2d.tol = 0.00001 + # test_list.append(dynbeam2d) # FSI, 2d # fsi2d = TestCase('fsi2d') From f3b5085016dbea698ddd2a0f5d18dfc25ee5b8cd Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 2 Feb 2016 18:05:13 +0000 Subject: [PATCH 182/269] Undo changes to gitignore --- .gitignore | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.gitignore b/.gitignore index 6f5c8178680..b3bfdea6c5b 100644 --- a/.gitignore +++ b/.gitignore @@ -36,20 +36,6 @@ Makefile externals/autotools/bin externals/autotools/include externals/autotools/share -externals/autotools/lib - -# externally downloaded tools -externals/CoDi -externals/adjointmpi -.cproject -.project -.settings/ -Debug/ -go.sh -log_make.txt -log_make_install.txt -SU2_FSI/bin/SU2_FSI -discardMod.sh #logs and errors *.log From 4807a05187f89c07e5da51dac73d47a81945fcf1 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Tue, 2 Feb 2016 20:53:54 +0100 Subject: [PATCH 183/269] Fixed file permission of preconfigure. --- preconfigure.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 preconfigure.py diff --git a/preconfigure.py b/preconfigure.py old mode 100644 new mode 100755 From b219f6828896449c5067752f9c5dea8d49cafe59 Mon Sep 17 00:00:00 2001 From: hlkline Date: Tue, 2 Feb 2016 13:41:12 -0800 Subject: [PATCH 184/269] Cleanup: removing unused variables from interpolator functions --- Common/src/interpolation_structure.cpp | 72 ++++++++------------------ 1 file changed, 21 insertions(+), 51 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 2f2019ecb8f..32821bbd733 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -99,8 +99,9 @@ void CInterpolator::Determine_ArraySize(bool faces, int markDonor, int markTarge unsigned long nLocalVertex_Donor = 0, nLocalFaceNodes_Donor=0, nLocalFace_Donor=0; unsigned long iVertex, iPointDonor = 0; /* Only needed if face data is also collected */ - unsigned long inode, donor_elem, jElem, jPoint; - unsigned short iDim, iDonor; + unsigned long inode; + unsigned long donor_elem, jElem, jPoint; + unsigned short iDonor; unsigned int nFaces=0, iFace, nNodes=0; bool face_on_marker = true; int rank = MASTER_NODE; @@ -192,7 +193,7 @@ void CInterpolator::Determine_ArraySize(bool faces, int markDonor, int markTarge } void CInterpolator::Collect_VertexInfo(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim){ - unsigned long nLocalVertex_Donor = 0, nLocalFaceNodes_Donor=0; + unsigned long nLocalVertex_Donor = 0; unsigned long iVertex, iPointDonor = 0, iVertexDonor, nBuffer_Coord, nBuffer_Point; unsigned short iDim; /* Only needed if face data is also collected */ @@ -270,7 +271,7 @@ CNearestNeighbor::~CNearestNeighbor(){} void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ - unsigned long iVertex, jVertex; + unsigned long jVertex; unsigned short iDim; unsigned short nDim = donor_geometry->GetnDim(); @@ -279,18 +280,14 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ int markDonor = -1, markTarget = -1; unsigned long nVertexDonor = 0, nVertexTarget= 0; - unsigned long Point_Donor = 0, Point_Target = 0; - unsigned long Vertex_Donor = 0, Vertex_Target = 0; + unsigned long Point_Target = 0; - unsigned long iVertexDonor, iPointDonor = 0; - unsigned long iVertexTarget, iPointTarget = 0; - unsigned long pPoint = 0, Global_Point = 0; - unsigned long jGlobalPoint = 0, pGlobalPoint = 0; + unsigned long iVertexTarget; + unsigned long pGlobalPoint = 0; int iProcessor, pProcessor = 0; - int Donor_Processor; unsigned short int iDonor = 0; - unsigned long nLocalVertex_Donor = 0, nLocalFaceNodes_Donor=0, nLocalFace_Donor=0, Global_Point_Donor; + unsigned long Global_Point_Donor; /*--- Number of markers on the FSI interface ---*/ nMarkerInt = (config[donorZone]->GetMarker_n_FSIinterface())/2; @@ -378,7 +375,7 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ /*--- Coordinates of the boundary point ---*/ Coord_i = target_geometry->node[Point_Target]->GetCoord(); - mindist = 1E6; pProcessor = 0; pPoint = 0; + mindist = 1E6; pProcessor = 0; /*--- Loop over all the boundaries to find the pair ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ @@ -436,7 +433,7 @@ CIsoparametric::~CIsoparametric(){} void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long iVertex, jVertex; - unsigned long jPoint, dPoint, inode, jElem, nElem; + unsigned long dPoint, inode, jElem, nElem; unsigned short iDim, iDonor=0, iFace; unsigned short nDim = donor_geometry->GetnDim(); @@ -452,24 +449,18 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; - unsigned long nVertexDonor = 0, nVertexTarget= 0; - unsigned long Point_Donor = 0, Point_Target = 0; - unsigned long Vertex_Donor = 0, Vertex_Target = 0; + unsigned long nVertexDonor = 0; + unsigned long Point_Target = 0; unsigned long iVertexDonor, iPointDonor = 0; - unsigned long iVertexTarget, iPointTarget = 0; - unsigned long pPoint = 0, Global_Point = 0; - unsigned long jGlobalPoint = 0, pGlobalPoint = 0; - int iProcessor, pProcessor = 0; + unsigned long jGlobalPoint = 0; + int iProcessor; - unsigned long nLocalVertex_Donor = 0, nLocalVertex_Target = 0; unsigned long nLocalFace_Donor = 0, nLocalFaceNodes_Donor=0; - unsigned long Global_Point_Donor; unsigned long faceindex; - int Donor_Processor; - su2double dist = 0.0, mindist=1E6, *Coord, *Coord_i, *Coord_j; + su2double dist = 0.0, mindist=1E6, *Coord, *Coord_i; su2double myCoeff[10]; // Maximum # of donor points su2double *Normal; su2double projected_point[nDim]; @@ -478,8 +469,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned long storeGlobal[10]; int storeProc[10]; - unsigned long nBuffer_Coord, nBuffer_Point; - int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; Coord = new su2double[nDim]; @@ -504,7 +493,6 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ * -set the transfer coefficient values */ nVertexDonor = 0; - nVertexTarget = 0; markDonor = -1; markTarget = -1; @@ -531,13 +519,10 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ /*--- We have identified the identifier for the target marker ---*/ markTarget = iMarkerTarget; - /*--- Store the number of local points that belong to markTarget ---*/ - nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); break; } else { /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - nVertexTarget = 0; markTarget = -1; } } @@ -991,7 +976,7 @@ CMirror::~CMirror(){} void CMirror::Set_TransferCoeff(CConfig **config){ unsigned long iVertex, jVertex; - unsigned long jPoint, iPoint, tPoint, nTargets; + unsigned long iPoint; unsigned short iDonor=0, iFace=0, iTarget=0; unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; @@ -999,26 +984,16 @@ void CMirror::Set_TransferCoeff(CConfig **config){ int markDonor=0, markTarget=0; - long donor_elem=0, temp_donor=0; unsigned int nNodes=0, iNodes=0; - /*--- Restricted to 2-zone for now ---*/ - unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' - bool face_on_marker=true; - unsigned long nVertexDonor = 0, nVertexTarget= 0; - unsigned long iVertexDonor, Point_Donor = 0; - unsigned long iVertexTarget, iPointTarget = 0; - unsigned long pPoint = 0, Global_Point = 0; - unsigned long jGlobalPoint = 0, pGlobalPoint = 0; - int iProcessor, pProcessor = 0; + unsigned long Point_Donor = 0; + unsigned long Global_Point = 0; + unsigned long pGlobalPoint = 0; + int iProcessor; - unsigned long nLocalVertex_Donor = 0; - unsigned long MaxLocalVertex_Donor = 0; unsigned long nLocalFace_Donor = 0, nLocalFaceNodes_Donor=0; - unsigned long Global_Point_Donor; unsigned long faceindex; - int Donor_Processor; int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; @@ -1048,13 +1023,11 @@ void CMirror::Set_TransferCoeff(CConfig **config){ /*--- We have identified the identifier for the structural marker ---*/ markDonor = iMarkerDonor; /*--- Store the number of local points that belong to markDonor ---*/ - nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); break; } else { /*--- If the tag hasn't matched any tag within the donor markers ---*/ markDonor = -1; - nVertexDonor = 0; } } @@ -1064,13 +1037,10 @@ void CMirror::Set_TransferCoeff(CConfig **config){ if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ /*--- We have identified the identifier for the target marker ---*/ markTarget = iMarkerTarget; - /*--- Store the number of local points that belong to markTarget ---*/ - nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); break; } else { /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - nVertexTarget = 0; markTarget = -1; } } From 6920b5cc4de3b719d29274d2d9e5cc5e7ced46f7 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 2 Feb 2016 14:00:04 -0800 Subject: [PATCH 185/269] Bootstrap to fix build issue on Mac OS X. --- .../share/autoconf/autoconf/autoconf.m4f | 848 +++++++++--------- .../autotools/share/autoconf/autom4te.cfg | 8 +- .../share/autoconf/autotest/autotest.m4f | 132 +-- .../autotools/share/autoconf/m4sugar/m4sh.m4f | 130 +-- .../share/autoconf/m4sugar/m4sugar.m4f | 10 +- .../share/automake-1.12/Automake/Config.pm | 2 +- .../share/emacs/site-lisp/autoconf-mode.elc | Bin 3197 -> 3192 bytes .../share/emacs/site-lisp/autotest-mode.elc | Bin 2769 -> 2764 bytes externals/autotools/share/info/dir | 32 +- .../autotools/share/man/man1/aclocal-1.12.1 | 2 +- .../autotools/share/man/man1/automake-1.12.1 | 2 +- 11 files changed, 581 insertions(+), 585 deletions(-) diff --git a/externals/autotools/share/autoconf/autoconf/autoconf.m4f b/externals/autotools/share/autoconf/autoconf/autoconf.m4f index 08fd2b488e0..429b6d7726b 100644 --- a/externals/autotools/share/autoconf/autoconf/autoconf.m4f +++ b/externals/autotools/share/autoconf/autoconf/autoconf.m4f @@ -1,11 +1,11 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] T28,27 -m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:779 +m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:803 T27,30 -m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:156 +m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:158 T22,133 _AS_LITERAL_HEREDOC_IFm4_if(m4_index([$1], [@S|@]), [-1], [m4_if(m4_index(m4_translit([[$1]], [\`], [$]), [$]), [-1], @@ -17,7 +17,7 @@ T27,54 AC_PATH_PROGS_FEATURE_CHECK_$0([$1], [$2], [$3], m4_default([$4], [:]), [$5])dnl T37,32 -m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:217 +m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:236 T16,400 _AS_EXIT_PREPARE_m4_defun_pro([$0])AS_REQUIRE_SHELL_FN([as_fn_set_status], [AS_FUNCTION_DESCRIBE([as_fn_set_status], [STATUS], @@ -165,17 +165,17 @@ AC_AIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_AIX' is obsolete You should run autoupdate.])dnl AC_USE_SYSTEM_EXTENSIONS[]_m4_defun_epi([$0]) T31,31 -m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:73 +m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:81 T17,0 AS_MESSAGE_LOG_FD T28,68 AC_LANG_PREPROC(Objective C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCPP])[]_m4_defun_epi([$0]) T24,33 -m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:323 +m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:351 T23,34 -m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2529 +m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2530 T34,33 -m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:737 +m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:742 T22,1406 AC_SYS_LONG_FILE_NAMES_m4_defun_pro([$0])AC_CACHE_CHECK(for long file names, ac_cv_sys_long_file_names, [ac_cv_sys_long_file_names=yes @@ -210,9 +210,9 @@ if test $ac_cv_sys_long_file_names = yes; then fi []_m4_defun_epi([$0]) T27,36 -m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1845 +m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1939 T34,30 -m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:280 +m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:282 T29,212 _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -224,7 +224,7 @@ _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) T18,65 AC_LANG_PREPROC(C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2403 +m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2405 T14,159 ac_cv_prog_gxx_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_gxx' is obsolete. You should run autoupdate.])dnl @@ -292,9 +292,9 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then fi T26,33 -m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:581 +m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:603 T31,31 -m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:86 +m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:91 T17,1105 AC_FUNC_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_GETGROUPS])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl @@ -330,15 +330,15 @@ LIBS=$ac_save_LIBS T18,23 AC_DEFINE_UNQUOTED_AC_DEFINE_Q([_$0], $@) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 T24,33 m4_location(AC_TIMEZONE)../../lib/autoconf/oldnames.m4:80 T25,30 -m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:365 +m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:478 T28,32 -m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:67 +m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:72 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -399,9 +399,9 @@ AC_LANG_CONFTEST(C++)cat confdefs.h - <<_ACEOF >conftest.$ac_ext $1 _ACEOF T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 T23,34 -m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1121 +m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1126 F5,5 ifdefifdef T20,113 @@ -410,11 +410,11 @@ _AC_ENABLE_IF_ACTIONm4_append_uniq([_AC_USER_OPTS], [$1_$2], [ AS_IF([test "${$1_$2+set}" = set], [$1val=$$1_$2; $3], [$4])dnl T28,33 -m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:510 +m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:545 T28,30 -m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:141 +m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:142 T28,31 -m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:773 +m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:791 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -448,7 +448,7 @@ esac F6,6 syscmdsyscmd T30,33 -m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:123 +m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:131 T28,33 m4_location(AC_HAVE_HEADERS)../../lib/autoconf/oldnames.m4:35 T18,50 @@ -460,7 +460,7 @@ m4_patsubstm4_expand_once([m4_warn([syntax], [do not use m4_patsubst: use patsubst or m4_bpatsubst])])dnl patsubst($@) T34,34 -m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2949 +m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2965 T18,94 _m4_set_contents_2_m4_stack_reverse([_m4_set_($1)], [_m4_set([$1])], [$2[]_m4_defn([_m4_set_($1)])$3], [$4[]]) @@ -472,7 +472,7 @@ ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && echo " T27,31 m4_location(AC_TYPE_SIZE_T)../../lib/autoconf/types.m4:602 T27,33 -m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:564 +m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:591 T8,81 m4_chompm4_format([[%.*s]], m4_index(m4_translit([[$1]], [ /.], [/ ])[./.], [/.]), [$1]) @@ -516,11 +516,11 @@ m4_ifset([AC_PACKAGE_BUGREPORT], T9,0 AN_OUTPUT T27,35 -m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:362 +m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:412 T30,34 -m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1486 +m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1536 T29,33 -m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:249 +m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:255 T23,103 AC_LANG_PREPROC(Erlang)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) @@ -661,9 +661,9 @@ AC_TYPE_INT32_T_m4_defun_pro([$0])_AC_TYPE_INT(32)[]_m4_defun_epi([$0]) T18,2 AC_LANG_SOURCE(Go)$1 T33,33 -m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1599 +m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1737 T24,30 -m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:107 +m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:115 T11,165 _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], @@ -785,7 +785,7 @@ char *realloc (); AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2]) []_m4_defun_epi([$0]) T27,33 -m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:475 +m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:480 T29,33 m4_location(AC_PROGRAM_CHECK)../../lib/autoconf/oldnames.m4:41 T16,2 @@ -835,7 +835,7 @@ T15,267 _AC_CONFIG_FOOSm4_map_args_w([$2], [_AC_CONFIG_REGISTER([$1],], [, [$3])])m4_define([_AC_SEEN_CONFIG(ANY)])m4_define([_AC_SEEN_CONFIG($1)])_AC_CONFIG_COMMANDS_INIT([$4])ac_config_[]m4_tolower([$1])="$ac_config_[]m4_tolower([$1]) m4_if([$1], [COMMANDS], [$2], [m4_normalize([$2])])" T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 T14,441 AC_C_VARARRAYS_m4_defun_pro([$0]) AC_CACHE_CHECK([for variable-length arrays], @@ -858,7 +858,7 @@ T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) T31,36 -m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1625 +m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1660 F7,4 m4_incrincr F8,4 @@ -867,7 +867,7 @@ T33,36 AC_LANG_FUNC_LINK_TRY(Fortran 77)AC_LANG_PROGRAM([], [ call $1]) T28,34 -m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3074 +m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3081 T13,124 _m4_defun_prom4_ifdef([_m4_expansion_stack], [], [_m4_defun_pro_outer([$1])])m4_expansion_stack_push([$1])m4_pushdef([_m4_expanding($1)]) T15,114 @@ -881,7 +881,7 @@ T27,103 AC_LANG_PREPROC(Fortran 77)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -893,7 +893,7 @@ _AS_ECHO_LOG_m4_defun_pro([$0])AS_REQUIRE([_AS_LINENO_PREPARE])[]_m4_popdef([$0] T14,110 AC_DIVERT_PUSHm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], [$1])_m4_divert_raw(_m4_divert([$1], [$2])) T29,33 -m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:485 +m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:500 T17,604 _AS_SHELL_FN_WORKas_fn_return () { (exit [$]1); } as_fn_success () { as_fn_return 0; } @@ -943,13 +943,13 @@ AC_C_FLEXIBLE_ARRAY_MEMBER_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,33 -m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:924 +m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:996 T27,31 m4_location(AC_TYPE_MODE_T)../../lib/autoconf/types.m4:614 T20,34 -m4_location(AC_INIT)../../lib/autoconf/general.m4:1358 +m4_location(AC_INIT)../../lib/autoconf/general.m4:1363 T27,28 -m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1882 +m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1895 T21,97 m4_copyright_condensem4_text_wrap(m4_bpatsubst(m4_flatten([[$1]]), [(C)[- ,0-9]*\([1-9][0-9][0-9][0-9]\)], [(C) \1])) @@ -995,7 +995,7 @@ _AC_LANG_IO_PROGRAM(C++)AC_LANG_PROGRAM([@%:@include ], return ferror (f) || fclose (f) != 0; ]) T31,32 -m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:79 +m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:92 T17,203 m4_cr_not_Letters  !"#*%&'()$+,./0123456789:;<=>?@[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -1063,7 +1063,7 @@ ATEOF ERLCFLAGS="$ERLCFLAGS" ])])[]_m4_defun_epi([$0]) T30,34 -m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2518 +m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2520 T18,3219 AC_FUNC_GETLOADAVG_m4_defun_pro([$0])ac_have_func=no # yes means we've found a way to get the load average. @@ -1166,9 +1166,9 @@ AC_SUBST([$1])dnl _AC_ARG_VAR_PRECIOUS([$1])dnl []_m4_defun_epi([$0]) T30,31 -m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:304 +m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:305 T27,33 -m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:761 +m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:777 T21,1 _m4_divert(M4SH-INIT)6 T18,1 @@ -1241,9 +1241,9 @@ AS_IF([test "$cross_compiling" = yes], T12,66 m4_re_string[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T31,34 -m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2315 +m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2325 T24,33 -m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:833 +m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:834 T31,86 _AC_LANG_IO_PROGRAM(Fortran 77)AC_LANG_PROGRAM([], [dnl @@ -1305,7 +1305,7 @@ AC_TYPE_LONG_DOUBLE_WIDER_m4_defun_pro([$0]) T32,36 m4_location(AC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1719 T25,34 -m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:198 +m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:214 T23,47 _AC_CONFIG_COMPUTE_DESTm4_format([[%.*s]], m4_index([$1:], [:]), [$1]) T18,676 @@ -1360,9 +1360,9 @@ ac_link='$GOC -o conftest$ac_exeext $GOFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&A ac_compiler_gnu=yes T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 T26,34 -m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2748 +m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2757 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 @@ -1376,7 +1376,7 @@ __AC_FC_NAME_MANGLING AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 T34,35 m4_location(AM_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:501 T15,165 @@ -1514,7 +1514,7 @@ m4_PACKAGE_YEAR2012 T44,34 m4_location(AC_VALIDATE_CACHED_SYSTEM_TUPLE)../../lib/autoconf/general.m4:1865 T30,33 -m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:463 +m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:473 T10,211 m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_ifdef([$1], [m4_errprintn( @@ -1583,7 +1583,7 @@ AC_SUBST([FC_DEFINE])dnl AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 F6,3 m4_lenlen T14,42 @@ -1627,7 +1627,7 @@ _AC_FC_LIBRARY_LDFLAGS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 T12,4697 AC_PATH_XTRA_m4_defun_pro([$0])AC_REQUIRE([AC_PATH_X])dnl if test "$no_x" = yes; then @@ -1743,9 +1743,9 @@ AC_SUBST(X_LIBS)dnl AC_SUBST(X_EXTRA_LIBS)dnl []_m4_defun_epi([$0]) T24,34 -m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1094 +m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1106 T30,34 -m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1670 +m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1671 F12,9 m4_debugmodedebugmode T10,280 @@ -1757,7 +1757,7 @@ m4_set_addm4_ifdef([_m4_set([$1],$2)], [1])m4_pushdef([_m4_set([$1])], [$2])_m4_set_size([$1], [m4_incr])$3]) T28,31 -m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:841 +m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:849 T14,549 _AC_RUN_IFELSE_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_try_run], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_try_run], [LINENO], @@ -1777,7 +1777,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu T24,34 -m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2452 +m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2453 T14,122 m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], [m4_warn([syntax], @@ -1843,13 +1843,13 @@ fi T19,92 AC_CHECK_DECLS_ONCE_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_DECL_ONCE(], [)], [], $1)[]_m4_defun_epi([$0]) T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 T25,34 -m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:894 +m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:902 T27,1 _AC_LANG_PREFIX(Fortran 77)F T23,28 -m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:150 +m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:177 T32,0 m4_include(autoconf/programs.m4) T10,412 @@ -1865,7 +1865,7 @@ test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ]) T37,33 -m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:162 +m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:173 T33,34 m4_location(AC_CHECK_TOOL_PREFIX)../../lib/autoconf/programs.m4:183 T17,92 @@ -1874,7 +1874,7 @@ _AC_COMPILE_IFELSE($@)[]_m4_defun_epi([$0]) T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T27,34 -m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1636 +m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1654 T18,268 _AC_INIT_COPYRIGHTAC_COPYRIGHT(m4_defn([_AC_COPYRIGHT_YEARS]), [VERSION_FSF], [ m4_copyright_condense])dnl @@ -1911,9 +1911,9 @@ dnl # for best performing tool in a list breaks down. rm -f conftest.in conftest.tmp conftest.nl conftest.out])dnl T24,34 -m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:349 +m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:350 T31,34 -m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1564 +m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1616 T19,700 AC_TYPE_LONG_DOUBLE_m4_defun_pro([$0]) AC_CACHE_CHECK([for long double], [ac_cv_type_long_double], @@ -2063,7 +2063,7 @@ m4_ifdef([_m4_diverting([AC_PROG_INSTALL])], [-]), [-], [[m4_unquote(], [)]], T17,70 AC_CONFIG_HEADERS_m4_defun_pro([$0])_AC_CONFIG_FOOS([HEADERS], $@)[]_m4_defun_epi([$0]) T32,35 -m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:107 +m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:108 T8,66 m4_ifsetm4_ifdef([$1], [m4_ifval(_m4_defn([$1]), [$2], [$3])], @@ -2088,7 +2088,7 @@ T17,41 AC_PROVIDE_IFELSEm4_ifdef([m4_provide($1)], [$2], [$3]) T27,28 -m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1444 +m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1608 T12,30 m4_esyscmd_sm4_chomp_all(m4_esyscmd([$1])) T6,264 @@ -2116,7 +2116,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 T32,0 m4_include(autoconf/autoscan.m4) T20,201 @@ -2137,7 +2137,7 @@ AC_TEST_PROGRAM_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_PR You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_RUN], [AC_TRY_RUN($@)])[]_m4_defun_epi([$0]) T33,34 -m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2907 +m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2908 T17,272 _AS_IDENTIFIER_IFm4_cond([[$1]], [], [], [m4_eval(m4_len(m4_translit([[$1]], ][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]][)) > 0)], [1], [], @@ -2256,9 +2256,9 @@ AC_PROGRAMS_PATH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGRA You should run autoupdate.])dnl m4_if($#, 0, [AC_PATH_PROGS], [AC_PATH_PROGS($@)])[]_m4_defun_epi([$0]) T25,29 -m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:81 +m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:82 T27,34 -m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:851 +m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:852 T13,84 _AS_QUOTE_OLDm4_warn([obsolete], [back quotes and double quotes must not be escaped in: $1])$1 @@ -2302,18 +2302,18 @@ T9,72 m4_mapallm4_if([$2], [], [], [_m4_foreach([m4_apply([$1],], [)], [], $2)]) T37,33 -m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:245 +m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:247 F14,6 _m4_divert_rawdivert T13,71 AC_LIBSOURCES_m4_defun_pro([$0])m4_map_args([AC_LIBSOURCE], $1)[]_m4_defun_epi([$0]) T37,32 -m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:301 +m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:320 T12,94 AH_CHECK_LIBAH_TEMPLATE(AS_TR_CPP([HAVE_LIB$1]), [Define to 1 if you have the `$1' library (-l$1).]) T40,33 -m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:238 +m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:240 T6,122 m4_cdrm4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], @@ -2491,9 +2491,9 @@ ac_ext=$ac_save_ext _AC_PROG_FC_G []_m4_defun_epi([$0]) T29,33 -m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:437 +m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:452 T30,33 -m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:76 +m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:79 T23,60 AC_LANG_PROGRAM(Erlang)[-module(conftest). -export([start/0]).] @@ -2565,7 +2565,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 T22,2800 _AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_CANONICAL_HOST])dnl _AC_FORTRAN_ASSERT()dnl @@ -2656,7 +2656,7 @@ fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" AC_SUBST([]_AC_LANG_PREFIX[]LIBS) []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2503 +m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2511 F5,5 indirindir T19,572 @@ -2738,11 +2738,11 @@ AC_HAVE_FUNCS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_FUNC You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_FUNCS], [AC_CHECK_FUNCS($@)])[]_m4_defun_epi([$0]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 T28,33 m4_location(AM_PROG_INSTALL)../../lib/autoconf/oldnames.m4:92 T30,30 -m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:406 +m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:437 T24,23 _AC_LANG_NULL_PROGRAM(C)AC_LANG_PROGRAM([], []) T19,295 @@ -2757,15 +2757,15 @@ AC_CHECK_DECLS([sys_siglist],,, ]) []_m4_defun_epi([$0]) T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 T31,35 -m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:573 +m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:577 T29,30 -m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:297 +m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:298 T28,28 -m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1378 +m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1391 T26,28 -m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1739 +m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1776 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -2791,7 +2791,7 @@ AC_PROGRAMS_CHECK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGR You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_PROGS], [AC_CHECK_PROGS($@)])[]_m4_defun_epi([$0]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -2803,9 +2803,9 @@ m4_if($#, 0, [AC_FUNC_STRCOLL], [AC_FUNC_STRCOLL($@)])[]_m4_defun_epi([$0]) F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 T34,33 -m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:273 +m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:274 T18,8 m4_PACKAGE_TARNAMEautoconf T14,87 @@ -2897,9 +2897,9 @@ AC_FUNC_STRTOLD_m4_defun_pro([$0]) T21,90 AC_CHECK_HEADERS_ONCE_m4_defun_pro([$0])m4_map_args_w([$1], [_AC_CHECK_HEADER_ONCE(], [)])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 T26,34 -m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:355 +m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:365 T18,3540 _AC_OUTPUT_SUBDIRS # @@ -3033,7 +3033,7 @@ AC_DEFINE_UNQUOTED(AS_TR_CPP(sizeof_$1), $AS_TR_SH([ac_cv_sizeof_$1]), [The size of `$1', as computed by sizeof.]) []_m4_defun_epi([$0]) T30,34 -m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1752 +m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1800 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -3043,9 +3043,9 @@ AC_REQUIRE_AUX_FILEAS_LITERAL_WORD_IF([$1], [], T17,31 m4_default_quotedm4_if([$1], [], [[$2]], [[$1]]) T27,34 -m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2729 +m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2739 T29,27 -m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:328 +m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:330 T11,88 AH_VERBATIMAS_LITERAL_WORD_IF([$1], [AH_OUTPUT(_m4_expand([$1]), AS_ESCAPE([[$2]], [\']))]) @@ -3104,7 +3104,7 @@ AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0 T12,21 AC_LANG_CASEm4_case(_AC_LANG, $@) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 T26,33 m4_location(AC_ST_BLKSIZE)../../lib/autoconf/oldnames.m4:76 T15,470 @@ -3120,7 +3120,7 @@ AC_LANG_CONFTEST(Fortran 77)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,35 -m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:508 +m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:541 T21,33 m4_location(AC_UID_T)../../lib/autoconf/oldnames.m4:82 T31,33 @@ -3134,11 +3134,11 @@ AC_MSG_CHECKING{ _AS_ECHO_LOG([checking $1]) _AS_ECHO_N([checking $1... ]); }dnl T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 T31,36 -m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1749 +m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1774 T27,35 -m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:912 +m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:921 T14,97 AC_CHECK_FILES_m4_defun_pro([$0])m4_map_args_w([$1], [AC_CHECK_FILE(_$0(], [)[$2], [$3])])[]_m4_defun_epi([$0]) T17,733 @@ -3159,7 +3159,7 @@ _AC_CANONICAL_SPLIT([host]) m4_ifdef([_m4_diverting([AC_CANONICAL_HOST])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_HOST],], [, _m4_divert_dump)]])) T24,34 -m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2687 +m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2688 T17,109 _AC_LANG_DISPATCHm4_ifdef([$1($2)], [m4_indir([$1($2)], m4_shift2($@))], @@ -3167,7 +3167,7 @@ _AC_LANG_DISPATCHm4_ifdef([$1($2)], F9,6 m4_syscmdsyscmd T20,29 -m4_location(AC_LANG)../../lib/autoconf/lang.m4:88 +m4_location(AC_LANG)../../lib/autoconf/lang.m4:91 T16,116 _AC_ARG_VAR_LIBS_m4_defun_pro([$0])AC_ARG_VAR([LIBS], [libraries to pass to the linker, e.g. -l])[]_m4_defun_epi([$0]) @@ -3186,7 +3186,7 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T30,33 -m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:42 +m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:77 T32,0 m4_include(autoconf/autotest.m4) T16,84 @@ -3601,7 +3601,7 @@ fi T9,22 m4_shift2m4_shift(m4_shift($@)) T23,28 -m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1661 +m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1721 T18,80 m4_expansion_stackm4_stack_foreach_sep_lifo([_$0], [_$0_entry(], [) ])m4_location[: the top level] @@ -3642,10 +3642,10 @@ m4_version_prereqm4_if(m4_version_compare([2.69], [$1]), [m4_fatal([Autoconf version $1 or higher is required], [63])])], [$2]) -T25,29 -m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:97 +T25,30 +m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:100 T25,36 -m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1201 +m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1349 T10,43 _AC_DEFINEAS_ECHO(["AS_ESCAPE([[$1]])"]) >>confdefs.h T24,33 @@ -3655,9 +3655,9 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 T30,34 -m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2606 +m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2608 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -3687,7 +3687,7 @@ AC_LANG_POP(Fortran 77)dnl T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 T13,110 _AC_ENABLE_IF@%:@ Check whether --$1-$2 was given. _AC_ENABLE_IF_ACTION([$1], m4_translit([$2], [-+.], [___]), [$3], [$4]) @@ -3724,7 +3724,7 @@ else fi []_m4_defun_epi([$0]) T29,32 -m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:719 +m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:720 T15,97 _AC_CHECK_FILES[$1], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1]), [1], [Define to 1 if you have the file `$1'.])] @@ -3757,9 +3757,9 @@ AC_CACHE_CHECK([for Erlang/OTP root directory], AC_SUBST([ERLANG_ROOT_DIR], [$ac_cv_erlang_root_dir]) []_m4_defun_epi([$0]) T32,31 -m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:389 +m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:409 T28,28 -m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1828 +m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1840 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -3797,11 +3797,11 @@ fi rm -f conftest.data []_m4_defun_epi([$0]) T28,34 -m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1030 +m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1066 T19,34 -m4_location(AC_RSH)../../lib/autoconf/programs.m4:858 +m4_location(AC_RSH)../../lib/autoconf/programs.m4:860 T29,31 -m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:800 +m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:803 T13,333 m4_divert_popm4_if([$1], [], [], [$1], _m4_defn([_m4_divert_diversion]), [], @@ -3832,7 +3832,7 @@ AC_ARG_VAR(YFLAGS, will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications.])[]_m4_defun_epi([$0]) T32,33 -m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:181 +m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:182 T9,190 AC_PREFIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PREFIX' is obsolete. You should run autoupdate.])dnl @@ -3868,7 +3868,7 @@ AC_CHECK_HEADERS(string.h)[]_m4_defun_epi([$0]) T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T42,27 -m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:345 +m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:378 T12,115 AC_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text(m4_default_quoted([$2], [VERSION_USER]), [m4_default([$3], [m4_newline])([$1])]) @@ -3883,13 +3883,13 @@ _AC_FC_FUNC([$1],[$2]) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:388 +m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:393 T27,35 -m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:950 +m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:981 T31,0 m4_include(autoconf/headers.m4) T27,34 -m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3056 +m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3068 T9,86 AH_BOTTOMm4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl AH_VERBATIM([zzzz]_AH_COUNTER, [$1]) @@ -3898,7 +3898,7 @@ m4_location(AC_TYPE_INT16_T)../../lib/autoconf/types.m4:625 T25,33 m4_location(AC_FIND_XTRA)../../lib/autoconf/oldnames.m4:58 T26,34 -m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2777 +m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2791 T34,292 _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTLAC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ], ac_cv_sys_tiocgwinsz_in_sys_ioctl_h, @@ -3941,11 +3941,11 @@ AC_LANG_POP(C++)dnl T17,2 AC_LANG_SOURCE(C)$1 T33,33 -m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:220 +m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:223 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 T27,34 -m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2808 +m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2809 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -4148,7 +4148,7 @@ m4_translittranslit T28,35 m4_location(fp_FUNC_FNMATCH)../../lib/autoconf/functions.m4:594 T27,34 -m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1363 +m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1395 T29,220 _AC_CHECK_HEADER_COMPILE_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -4171,7 +4171,7 @@ m4_divert_pushm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], T21,95 _AC_LANG_NULL_PROGRAM_m4_defun_pro([$0])AC_LANG_SOURCE([_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:259 +m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:299 T8,87 m4_fatalm4_errprintn(m4_location[: error: $1] m4_expansion_stack)m4_exit(m4_if([$2],, 1, [$2])) @@ -4251,9 +4251,9 @@ ${ DEFS=`sed -n "$ac_script" confdefs.h` ] T26,31 -m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:590 +m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:598 T24,33 -m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:891 +m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:896 T20,98 _AC_LANG_OPENMP(C++) #ifndef _OPENMP @@ -4265,13 +4265,13 @@ int main () { return omp_get_num_threads (); } T27,2 AC_LANG_SOURCE(Objective C)$1 T24,34 -m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2350 +m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2371 T29,31 m4_location(AC_TYPE_UINT64_T)../../lib/autoconf/types.m4:631 T20,33 m4_location(AC_LN_S)../../lib/autoconf/oldnames.m4:62 T27,31 -m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:829 +m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:836 T16,225 _AS_LINENO_WORKS as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO @@ -4349,19 +4349,19 @@ m4_wrap_m4_wrap([], [$1[]]) T16,9 _AS_TEST_X_WORKStest -x / T28,35 -m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:927 +m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:945 T25,34 -m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2538 +m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2550 T29,34 -m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2694 +m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2696 T26,36 -m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1829 +m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1840 T25,34 -m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:451 +m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:464 T26,34 -m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2920 +m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2921 T22,34 -m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2938 +m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2941 T12,110 _m4_set_sizem4_define([_m4_set_size($1)], m4_ifdef([_m4_set_size($1)], [$2(m4_indir([_m4_set_size($1)]))], @@ -4405,7 +4405,7 @@ AC_STRUCT_ST_BLOCKS_m4_defun_pro([$0])AC_CHECK_MEMBERS([struct stat.st_blocks], T6,43 m4_map_m4_foreach([_m4_apply([$1],], [)], [], $2) T28,34 -m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:524 +m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:612 T10,54 m4_includem4_include_unique([$1])dnl m4_builtin([include], [$1]) @@ -4583,9 +4583,9 @@ AC_CONFIG_SUBDIRS_m4_defun_pro([$0])AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])AC_RE T28,36 m4_location(AM_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1385 T22,30 -m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:323 +m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:358 T36,33 -m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1071 +m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1073 T26,1 _m4_divert(HEADER-COMMENT)2 T26,688 @@ -4884,21 +4884,21 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T22,33 -m4_location(AC_PREREQ)../../lib/autoconf/general.m4:305 +m4_location(AC_PREREQ)../../lib/autoconf/general.m4:307 T28,35 -m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:546 +m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:551 T10,177 AM_MINGW32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_MINGW32' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MINGW32], [AC_MINGW32($@)])[]_m4_defun_epi([$0]) T31,35 -m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:715 +m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:803 T11,150 AC_SCO_INTL_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SCO_INTL' is obsolete. You should run autoupdate.])dnl AC_FUNC_STRFTIME[]_m4_defun_epi([$0]) T27,33 -m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:268 +m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:269 T23,36 m4_location(AC_VPRINTF)../../lib/autoconf/functions.m4:1966 T21,36 @@ -4927,19 +4927,19 @@ _AS_DIRNAME_SED_m4_defun_pro([$0])AS_ECHO([X[]$1]) | T25,33 m4_location(AC_ST_BLOCKS)../../lib/autoconf/oldnames.m4:77 T33,33 -m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:819 +m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:828 T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T30,34 -m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2332 +m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2344 T30,33 -m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:833 +m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:838 T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -4948,9 +4948,9 @@ AM_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T37,30 -m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:329 +m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:331 T27,33 -m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:677 +m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:729 T6,37 _AC_CC_AC_LANG_DISPATCH([$0], _AC_LANG, $@) T16,65 @@ -4968,9 +4968,9 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 T27,27 -m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:822 +m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:847 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -4980,7 +4980,7 @@ m4_providem4_ifdef([m4_provide($1)], [], [m4_set_add([_m4_provide], [$1], [m4_define([m4_provide($1)], m4_ifdef([_m4_diverting], [_m4_defn([_m4_diverting])]))])]) T26,28 -m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1787 +m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1801 T18,209 AC_LONG_FILE_NAMES_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LONG_FILE_NAMES' is obsolete. You should run autoupdate.])dnl @@ -4992,7 +4992,7 @@ AC_CYGWIN32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_CYGWIN32' i You should run autoupdate.])dnl m4_if($#, 0, [AC_CYGWIN], [AC_CYGWIN($@)])[]_m4_defun_epi([$0]) T28,30 -m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:137 +m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:145 T13,100 AS_LINENO_POP_m4_defun_pro([$0])eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno[]_m4_defun_epi([$0]) T11,65 @@ -5002,7 +5002,7 @@ m4_ignore T28,33 m4_location(AC_STDC_HEADERS)../../lib/autoconf/oldnames.m4:75 T29,35 -m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:149 +m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:150 T20,184 _AC_FC_NAME_MANGLING_m4_defun_pro([$0])AC_REQUIRE([AC_FC_LIBRARY_LDFLAGS])dnl AC_REQUIRE([AC_FC_DUMMY_MAIN])dnl @@ -5069,19 +5069,19 @@ if test $ac_cv_func_chown_works = yes; then fi []_m4_defun_epi([$0]) T30,34 -m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1815 +m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1828 T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T9,0 AU_DEFINE T28,34 -m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2556 +m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2559 T8,179 AC_ERROR_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MSG_ERROR], [AC_MSG_ERROR($@)])[]_m4_defun_epi([$0]) T27,34 -m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2461 +m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2463 T9,184 AC_SIZE_T_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SIZE_T' is obsolete. You should run autoupdate.])dnl @@ -5119,11 +5119,11 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 T27,27 -m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:636 +m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:661 T32,32 -m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:175 +m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:211 T19,153 _AC_CONFIG_REGISTERm4_if([$1], [COMMANDS], [], @@ -5153,15 +5153,15 @@ _AC_FC_MAIN AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T34,30 -m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:256 +m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:257 T24,33 m4_location(AC_CYGWIN32)../../lib/autoconf/oldnames.m4:86 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T24,27 -m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:388 +m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:417 T23,27 -m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:448 +m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:496 T7,75 m4_warn_m4_warn([$1], [$2], m4_ifdef([_m4_expansion_stack], [m4_expansion_stack])) @@ -5214,9 +5214,9 @@ T16,110 AC_CHECK_MEMBERS_m4_defun_pro([$0])m4_map_args_sep([AC_CHECK_MEMBER(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:567 +m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:582 T31,33 -m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1026 +m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1031 T16,245 m4_cr_not_digits  !"#*%&'()$+,./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -5230,7 +5230,7 @@ AC_CACHE_VAL([ac_cv_func_setvbuf_reversed], [ac_cv_func_setvbuf_reversed=no]) T12,25 m4_set_listcm4_set_map_sep([$1], [,]) T27,36 -m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1545 +m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1584 T21,33 m4_location(AC_ERROR)../../lib/autoconf/oldnames.m4:34 T19,584 @@ -5277,13 +5277,13 @@ if test $ac_cv_func_$1_empty_string_bug = yes; then fi T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 T21,210 AM_FUNC_ERROR_AT_LINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_ERROR_AT_LINE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_ERROR_AT_LINE], [AC_FUNC_ERROR_AT_LINE($@)])[]_m4_defun_epi([$0]) T34,35 -m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:460 +m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:479 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -5583,7 +5583,7 @@ AC_TYPE_UINTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2031 +m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2046 T31,443 _AC_SYS_LARGEFILE_TEST_INCLUDES@%:@include /* Check that off_t can represent 2**63 - 1 correctly. @@ -5611,7 +5611,7 @@ T26,96 AC_DISABLE_OPTION_CHECKING_m4_defun_pro([$0])m4_divert_once([DEFAULTS], [enable_option_checking=no]) []_m4_defun_epi([$0]) T23,34 -m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2395 +m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2396 T34,0 m4_include(autoconf/autoheader.m4) T24,1 @@ -5624,7 +5624,7 @@ T10,3 m4_newline $1 T28,30 -m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:241 +m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:242 T15,77 _AC_LANG_PREFIX_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T37,125 @@ -6003,10 +6003,10 @@ fi []_m4_defun_epi([$0]) T19,40 AC_CONFIG_MACRO_DIR_m4_defun_pro([$0])[]_m4_defun_epi([$0]) -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp T31,35 -m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:557 +m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:568 T32,0 m4_include(autoconf/specific.m4) T16,73 @@ -6046,9 +6046,9 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T26,34 -m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:120 +m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:150 T29,28 -m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1396 +m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1414 T19,2 _AC_LANG_PREFIX(Go)GO T9,184 @@ -6077,7 +6077,7 @@ __program____program__ T6,26 AS_BOX_$0(m4_expand([$1]), [$2]) T28,36 -m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1417 +m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1426 T7,156 m4_defnm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_defn([$1])], @@ -6088,9 +6088,9 @@ fp_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `fp_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T28,28 -m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1101 +m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1156 T28,36 -m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1362 +m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1380 T11,544 _AS_PREPARE_m4_defun_pro([$0])m4_pushdef([AS_REQUIRE])m4_pushdef([AS_REQUIRE_SHELL_FN], _m4_defn([_AS_REQUIRE_SHELL_FN]) )m4_pushdef([AS_MESSAGE_LOG_FD], [-1])_AS_ERROR_PREPARE @@ -6138,9 +6138,9 @@ m4_location(AC_ST_RDEV)../../lib/autoconf/oldnames.m4:78 T33,33 m4_location(AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:999 T27,28 -m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1808 +m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1821 T24,34 -m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2266 +m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2267 T6,4 m4_car[$1] T21,196 @@ -6252,7 +6252,7 @@ fi])dnl T14,62 m4_set_foreachm4_pushdef([$2])m4_set_map_sep([$1], [m4_define([$2],], [)$3]) T30,33 -m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:779 +m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:828 T11,190 AC_SET_MAKE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SET_MAKE' is obsolete. You should run autoupdate.])dnl @@ -6269,7 +6269,7 @@ AC_SEARCH_LIBS([strerror], [cposix])[]_m4_defun_epi([$0]) T16,101 m4_stack_foreach_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2(_m4_defn([m4_tmp-$1]))]) T26,34 -m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:164 +m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:171 T12,77 m4_chomp_allm4_format([[%.*s]], m4_bregexp(m4_translit([[$1]], [ /], [/ ]), [/*$]), [$1]) @@ -6278,7 +6278,7 @@ AC_LN_S_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LN_S' is obsole You should run autoupdate.])dnl m4_if($#, 0, [AC_PROG_LN_S], [AC_PROG_LN_S($@)])[]_m4_defun_epi([$0]) T19,33 -m4_location(AC_USG)../../lib/autoconf/headers.m4:840 +m4_location(AC_USG)../../lib/autoconf/headers.m4:852 T6,46 m4_cmpm4_eval((([$1]) > ([$2])) - (([$1]) < ([$2]))) T9,373 @@ -6316,9 +6316,9 @@ AC_FUNC_MBRTOWC_m4_defun_pro([$0]) T31,33 m4_location(AC_WORDS_BIGENDIAN)../../lib/autoconf/oldnames.m4:83 T28,34 -m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:662 +m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:699 T26,36 -m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:1975 +m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:2025 T17,51 _AS_ECHO_UNQUOTEDAS_ECHO(["$1"]) >&m4_default([$2], [AS_MESSAGE_FD]) T19,120 @@ -6328,11 +6328,11 @@ _AC_FUNCS_EXPANSION m4_define([_AC_FUNCS_EXPANSION], []) T19,34 -m4_location(_AC_DO)../../lib/autoconf/general.m4:2377 +m4_location(_AC_DO)../../lib/autoconf/general.m4:2379 T30,33 m4_location(AC_YYTEXT_POINTER)../../lib/autoconf/oldnames.m4:84 T37,30 -m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:289 +m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:290 T20,96 _AS_DETECT_SUGGESTED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_SUGGESTED_BODY], [$1 || AS_EXIT])[]_m4_defun_epi([$0]) T17,57 @@ -6469,7 +6469,7 @@ AC_CHECK_HEADERS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_HEADER(], [)]) [$3], [$4])dnl]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:450 +m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:451 F8,5 m4_indirindir T12,1 @@ -6510,7 +6510,7 @@ m4_divert_pop()dnl m4_ifdef([_m4_diverting([AC_NO_EXECUTABLES])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_NO_EXECUTABLES],], [, _m4_divert_dump)]])) T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 F12,9 m4_changecomchangecom F6,6 @@ -6526,7 +6526,7 @@ $2 T10,62 m4_noquotem4_changequote([-=<{(],[)}>=-])$1-=<{()}>=-m4_changequote([,]) T27,34 -m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:86 +m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:92 T13,42 AS_VAR_SET_IFAS_IF([AS_VAR_TEST_SET([$1])], [$2], [$3]) F8,5 @@ -6539,7 +6539,7 @@ _AS_RUNm4_ifval([$2], [{ $as_echo "$as_bourne_compatible"$1 | as_run=a $2; }], T36,33 m4_location(AC_SYS_SIGLIST_DECLARED)../../lib/autoconf/oldnames.m4:79 T27,30 -m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:224 +m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:225 T19,260 _AC_FC_DIALECT_YEAR_m4_defun_pro([$0])m4_case(m4_bpatsubsts(m4_tolower([$1]), [fortran],[], [ *],[]), [77],[1977], [1977],[1977], @@ -6690,9 +6690,9 @@ AC_CHECK_HEADER_STDBOOL_m4_defun_pro([$0])AC_CACHE_CHECK([for stdbool.h that con AC_CHECK_TYPES([_Bool]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:667 +m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:672 T27,34 -m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1081 +m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1086 T18,98 _AC_LANG_OPENMP(C) #ifndef _OPENMP @@ -6814,7 +6814,7 @@ esac AS_LINENO_POP T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 T23,2 AC_LANG_SOURCE(Fortran)$1 T12,4700 @@ -6973,9 +6973,9 @@ T12,145 AC_LANG_CALL_m4_defun_pro([$0])m4_ifval([$2], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 T32,33 -m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:353 +m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:357 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -7157,7 +7157,7 @@ case $ac_cv_c_int$1_t in #( esac []_m4_defun_epi([$0]) T44,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:268 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:278 T19,166 _AC_CHECK_FUNC_ONCE_AH_CHECK_FUNC([$1])AC_DEFUN([_AC_Func_$1], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" $1"])]) @@ -7167,13 +7167,13 @@ AM_EXEEXT_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_EXEEXT' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_EXEEXT], [AC_EXEEXT($@)])[]_m4_defun_epi([$0]) T34,31 -m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:718 +m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:738 T28,28 -m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1941 +m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1942 T35,34 -m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:193 +m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:225 T35,34 -m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1696 +m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1723 T17,1432 AC_TYPE_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_UID_T])dnl AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups, @@ -7257,11 +7257,11 @@ else fi []_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2385 +m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2387 T25,27 m4_location(AC_LANG_OBJC)../../lib/autoconf/c.m4:274 T38,34 -m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1678 +m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1679 F7,4 m4_evaleval T26,2 @@ -7289,7 +7289,7 @@ program_transform_name=`AS_ECHO(["$program_transform_name"]) | sed "$ac_script"` m4_ifdef([_m4_diverting([AC_ARG_PROGRAM])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_ARG_PROGRAM],], [, _m4_divert_dump)]])) T47,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:283 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:295 T24,3 _m4_divert(VERSION_USER)202 T15,186 @@ -7320,9 +7320,9 @@ AC_TRY_LINK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_LINK' i You should run autoupdate.])dnl AC_LINK_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])[]_m4_defun_epi([$0]) T23,30 -m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:297 +m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:313 T35,33 -m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:634 +m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:722 T15,23 AS_EXECUTABLE_Pas_fn_executable_p $1[] T15,129 @@ -7364,9 +7364,9 @@ AC_FUNC_MEMCMP_m4_defun_pro([$0])AC_CACHE_CHECK([for working memcmp], ac_cv_func test $ac_cv_func_memcmp_working = no && AC_LIBOBJ([memcmp]) []_m4_defun_epi([$0]) T31,31 -m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:148 +m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:160 T27,27 -m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:567 +m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:615 T13,50 AC_MSG_RESULT{ _AS_ECHO_LOG([result: $1]) _AS_ECHO([$1]); }dnl @@ -7376,7 +7376,7 @@ AC_LANG_CONFTEST(Fortran)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,34 -m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2064 +m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2067 T6,598 m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4], @@ -7466,7 +7466,7 @@ AC_PREREQm4_if(m4_version_compare([2.69], [$1]), [63])])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 T14,1574 _AC_CHECK_PROG_m4_defun_pro([$0])# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=$[2] @@ -7522,7 +7522,7 @@ else fi []_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1955 +m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1961 T33,0 m4_include(autoconf/functions.m4) T17,185 @@ -7679,7 +7679,7 @@ test -n "$target_alias" && m4_ifdef([_m4_diverting([AC_CANONICAL_TARGET])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_TARGET],], [, _m4_divert_dump)]])) T31,35 -m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:887 +m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:904 T13,196 AC_GETLOADAVG_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_GETLOADAVG' is obsolete. You should run autoupdate.])dnl @@ -7761,7 +7761,7 @@ AC_TEST_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_CPP' i You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_CPP], [AC_TRY_CPP($@)])[]_m4_defun_epi([$0]) T24,28 -m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1903 +m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1934 T16,265 AC_LANG(Fortran)ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&AS_MESSAGE_LOG_FD' @@ -7769,13 +7769,13 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu T32,27 -m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:318 +m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:321 T34,33 m4_location(AC_STAT_MACROS_BROKEN)../../lib/autoconf/oldnames.m4:74 T24,34 -m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:867 +m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:883 T25,27 -m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:871 +m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:900 T25,34 m4_location(AC_ISC_POSIX)../../lib/autoconf/specific.m4:446 T16,27 @@ -7804,7 +7804,7 @@ _AC_CACHE_CHECK_INT_m4_defun_pro([$0])AC_CACHE_CHECK([$1], [$2], T15,64 AC_TYPE_UINT8_T_m4_defun_pro([$0])_AC_TYPE_UNSIGNED_INT(8)[]_m4_defun_epi([$0]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -7859,7 +7859,7 @@ _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T22,33 m4_location(AC_FD_MSG)../../lib/autoconf/general.m4:384 T33,34 -m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1675 +m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1679 T25,53 _m4_expansion_stack_entry_m4_defn([m4_location($1)])[: $1 is expanded from...] T19,191 @@ -7997,7 +7997,7 @@ AS_VAR_IF([ac_Lib], [yes], AS_VAR_POPDEF([ac_Lib])dnl []_m4_defun_epi([$0]) T25,30 -m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:125 +m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:128 T14,159 ac_cv_prog_g77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_g77' is obsolete. You should run autoupdate.])dnl @@ -8054,9 +8054,9 @@ _AC_PROG_FC_C_O AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T29,31 -m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:344 +m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:361 T26,33 -m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:883 +m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:895 T14,78 AC_TRY_COMMAND_m4_defun_pro([$0]){ ac_try='$1' _AC_EVAL([$ac_try]); }[]_m4_defun_epi([$0]) @@ -8091,11 +8091,11 @@ AC_TYPE_INTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1154 +m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1188 T28,34 -m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1420 +m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1449 T36,33 -m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:600 +m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:661 T9,127 _m4_splitm4_changequote([-=<{(],[)}>=-])[m4_bpatsubst(-=<{(-=<{($1)}>=-)}>=-, -=<{($2)}>=-, -=<{(]$3[)}>=-)]m4_changequote([, ]) @@ -8205,13 +8205,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T35,34 -m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1433 +m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1442 T26,35 m4_location(AC_GETLOADAVG)../../lib/autoconf/functions.m4:808 T24,34 -m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1111 +m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1116 T36,32 -m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:160 +m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:162 T8,85 _m4_joinm4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift2($@))]) @@ -8238,13 +8238,13 @@ AC_INLINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_INLINE' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_C_INLINE], [AC_C_INLINE($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2844 +m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2856 T10,24 AN_PROGRAMAN_OUTPUT([program], $@) T36,30 -m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:372 +m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:374 T34,31 -m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:503 +m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:542 T16,4 _m4_divert(BODY)1000 T18,1268 @@ -8294,7 +8294,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T29,34 -m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:134 +m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:177 T35,31 m4_location(AC_STRUCT_DIRENT_D_INO)../../lib/autoconf/types.m4:964 T11,967 @@ -8330,11 +8330,11 @@ AC_C_TYPEOF_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 T28,33 m4_location(AC_PROGRAM_PATH)../../lib/autoconf/oldnames.m4:43 T32,31 -m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:63 +m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:68 T20,177 _AC_CHECK_HEADER_OLD_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `$0' is obsolete. You should use AC_CHECK_HEADER with a fourth argument.])_AC_CHECK_HEADER_PREPROC($@)[]_m4_defun_epi([$0]) @@ -8352,15 +8352,15 @@ else fi []_m4_defun_epi([$0]) T27,30 -m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:381 +m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:382 T24,34 -m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:709 +m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:713 T12,10 m4_cr_digits0123456789 T31,33 -m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:158 +m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:161 T33,27 -m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:308 +m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:311 T17,17 m4_PACKAGE_STRINGGNU Autoconf 2.69 T30,6 @@ -8382,12 +8382,12 @@ AS_TEST_X_m4_defun_pro([$0])AS_REQUIRE([_AS_TEST_PREPARE])[]_m4_popdef([$0])m4_i T21,145 AC_LANG_FUNC_LINK_TRY_m4_defun_pro([$0])m4_ifval([$1], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) -T27,35 -m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:987 +T27,36 +m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:1190 T32,34 -m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1684 +m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1688 T25,33 -m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:82 +m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:84 T28,33 m4_location(AC_HEADER_EGREP)../../lib/autoconf/oldnames.m4:37 T15,863 @@ -8414,9 +8414,9 @@ if test $ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o = no; then fi []_m4_defun_epi([$0]) T23,34 -m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2764 +m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2765 T31,32 -m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1050 +m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1077 F10,6 _m4_popdefpopdef T9,68 @@ -8463,7 +8463,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 T24,2 _AC_LANG_PREFIX(Fortran)FC T15,376 @@ -8529,9 +8529,9 @@ AC_CONFIG_COMMANDS_PRE([case $FC_MODOUT in #( esac])dnl []_m4_defun_epi([$0]) T32,33 -m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:278 +m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:285 T28,34 -m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2661 +m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2670 T29,33 m4_location(AC_PROGRAM_EGREP)../../lib/autoconf/oldnames.m4:42 T11,162 @@ -8591,7 +8591,7 @@ AC_MSG_RESULT([$cross_compiling]) T12,16 m4_wrap_lifo_m4_wrap([$1[]]) T22,34 -m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1475 +m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1476 T10,103 m4_flattenm4_if(m4_index([$1], [ ]), [-1], [[$1]], @@ -8632,9 +8632,9 @@ _AC_LANG_OPENMP(Fortran 77) T31,68 AC_LANG_COMPILER(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXX])[]_m4_defun_epi([$0]) T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 T34,34 -m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:314 +m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:332 T8,28 _AS_CASE [@%:@(] $1[)] : @@ -8675,9 +8675,9 @@ AC_ST_BLKSIZE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLKSIZ You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_BLKSIZE], [AC_STRUCT_ST_BLKSIZE($@)])[]_m4_defun_epi([$0]) T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 T29,36 -m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1665 +m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1671 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -8771,9 +8771,9 @@ AS_VAR_IF([ac_File], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_File])dnl []_m4_defun_epi([$0]) T37,34 -m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1812 +m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1862 T24,34 -m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1481 +m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1490 T11,322 AC_LANG_POP_m4_defun_pro([$0])m4_ifval([$1], [m4_if([$1], m4_defn([_AC_LANG]), [], @@ -8798,9 +8798,9 @@ if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then fi []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 T28,28 -m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1205 +m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1357 T20,112 _AC_MSG_LOG_CONFTESTAS_ECHO(["$as_me: failed program was:"]) >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.$ac_ext >&AS_MESSAGE_LOG_FD @@ -8839,11 +8839,11 @@ AC_CHECK_TYPE_m4_defun_pro([$0])m4_cond([$#], [3], T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 T20,294 _AC_COMPUTE_INT_BODY AS_LINENO_PUSH([$[]1]) if test "$cross_compiling" = yes; then @@ -8865,7 +8865,7 @@ AC_LANG_FORTRAN77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_ You should run autoupdate.])dnl AC_LANG(Fortran 77)[]_m4_defun_epi([$0]) T32,34 -m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2894 +m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2895 T6,91 _AC_DO_m4_defun_pro([$0])_AC_RUN_LOG([eval "$1"], [_AC_DO_ECHO([$1])])[]_m4_defun_epi([$0]) @@ -8895,7 +8895,7 @@ fi T18,71 AC_CONFIG_COMMANDS_m4_defun_pro([$0])_AC_CONFIG_FOOS([COMMANDS], $@)[]_m4_defun_epi([$0]) T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 T15,393 AC_HAVE_LIBRARY_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_LIBRARY' is obsolete. You should run autoupdate.])dnl @@ -8910,7 +8910,7 @@ m4_popdef([AC_Lib_Name])dnl T25,98 AC_CONFIG_AUX_DIR_DEFAULT_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS("$srcdir" "$srcdir/.." "$srcdir/../..")[]_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1477 +m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1492 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -8930,11 +8930,11 @@ m4_set_intersectionm4_if([$1], [$2], [m4_set_listc([$1])], m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])], [m4_set_map_sep([$1], [_$0([$2],], [)])]) T27,28 -m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1362 +m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1365 T27,30 -m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:719 +m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:721 T29,33 -m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:843 +m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:848 T19,147 AS_REQUIRE_SHELL_FNm4_provide_if([AS_SHELL_FN_$1], [], [AS_REQUIRE([AS_SHELL_FN_$1], @@ -8963,7 +8963,7 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T30,35 -m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:814 +m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:822 T27,155 _AC_LANG_IO_PROGRAM(Erlang)AC_LANG_PROGRAM([], [dnl ReturnValue = case file:write_file("conftest.out", "") of @@ -8992,9 +8992,9 @@ m4_ifdef([_m4_diverting([AC_PROG_LEX])], [-]), [-], [[m4_unquote(], [)]], T21,65 AC_LANG_COMPILER(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXX])[]_m4_defun_epi([$0]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 T31,154 AC_VALIDATE_CACHED_SYSTEM_TUPLE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_VALIDATE_CACHED_SYSTEM_TUPLE' is obsolete. You should run autoupdate.])dnl @@ -9013,7 +9013,7 @@ test ac_cv_header_dirent_sys_dir_h && test ac_cv_header_dirent_ndir_h && AC_DEFINE([NDIR], 1, [Same as `HAVE_NDIR_H', don't depend on me.])[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 F8,8 __line____line__ T23,350 @@ -9033,7 +9033,7 @@ _AC_CHECK_TYPE_NEW_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T34,35 -m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:486 +m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:496 T13,41 _m4_set_unionm4_ifdef([_m4_set([$1],$2)], [], [,[$2]]) T15,88 @@ -9049,9 +9049,9 @@ _AC_COPYRIGHT_YEARS Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. T27,31 -m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:746 +m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:759 T28,36 -m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1589 +m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1614 T10,55 _m4_shift2m4_if([$#], [2], [], [, m4_shift(m4_shift($@))]) @@ -9105,7 +9105,7 @@ m4_if($#, 0, [AC_TYPE_PID_T], [AC_TYPE_PID_T($@)])[]_m4_defun_epi([$0]) T23,3 _m4_divert(VERSION_END)203 T43,27 -m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:954 +m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:955 T13,383 _AS_PATH_WALKas_save_IFS=$IFS; IFS=$PATH_SEPARATOR m4_ifvaln([$3], [as_found=false])dnl @@ -9144,11 +9144,11 @@ _AC_CHECK_DECL_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T36,27 -m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:543 +m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:562 T28,1 _m4_divert(HEADER-COPYRIGHT)3 T29,31 -m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:310 +m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:322 T11,58 _AS_CLEANUPm4_divert_text([M4SH-SANITIZE], [_AS_DETECT_BETTER_SHELL]) T21,1512 @@ -9237,7 +9237,7 @@ m4_text_boxm4_pushdef([m4_Border], [##] $1 [##] [##] _m4_defn([m4_Border]) [##]_m4_popdef([m4_Border]) T36,36 -m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1434 +m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1472 T23,378 _AC_CHECK_HEADER_DIRENTAS_VAR_PUSHDEF([ac_Header], [ac_cv_header_dirent_$1])dnl AC_CACHE_CHECK([for $1 that defines DIR], [ac_Header], @@ -9286,9 +9286,9 @@ m4_set_containsm4_ifdef([_m4_set_cleanup($1)], F10,7 m4_esyscmdesyscmd T32,36 -m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1392 +m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1409 T27,31 -m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:178 +m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:180 T31,0 m4_include(autoconf/fortran.m4) T34,23 @@ -9304,9 +9304,9 @@ m4_set_mapm4_set_map_sep([$1], [$2(], [)]) T23,36 m4_location(AC_STRCOLL)../../lib/autoconf/functions.m4:1744 T34,27 -m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:667 +m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:668 T30,33 -m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1097 +m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1106 T14,53 m4_cr_symbols1abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ T14,181 @@ -9354,7 +9354,7 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP, AC_SUBST([EGREP]) []_m4_defun_epi([$0]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 F7,4 m4_decrdecr T14,32 @@ -9399,7 +9399,7 @@ fi T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T18,316 @@ -9416,13 +9416,13 @@ $2 return 0; } T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 T28,33 m4_location(AC_TEST_PROGRAM)../../lib/autoconf/oldnames.m4:46 T27,33 m4_location(AC_SIZEOF_TYPE)../../lib/autoconf/oldnames.m4:44 T22,28 -m4_location(AC_OPENMP)../../lib/autoconf/c.m4:1986 +m4_location(AC_OPENMP)../../lib/autoconf/c.m4:2031 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -9547,20 +9547,20 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 T27,34 -m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2614 +m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2615 T33,34 -m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:291 +m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:305 T26,34 -m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:100 +m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:103 F12,8 m4_bpatsubstpatsubst T30,36 AC_LANG_FUNC_LINK_TRY(Fortran)AC_LANG_PROGRAM([], [ call $1]) T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 T28,31 m4_location(AC_TYPE_SSIZE_T)../../lib/autoconf/types.m4:605 T7,2 @@ -9570,7 +9570,7 @@ AS_ORIGINAL_STDIN_FD7 T31,33 m4_location(AC_LONG_FILE_NAMES)../../lib/autoconf/oldnames.m4:64 T32,34 -m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1833 +m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1854 T13,76 _AC_DO_TOKENS_m4_defun_pro([$0]){ ac_try='$1' _AC_DO([$ac_try]); }[]_m4_defun_epi([$0]) @@ -9579,7 +9579,7 @@ AC_LANG_m4_defun_pro([$0])_AC_LANG_SET(m4_ifdef([_AC_LANG], [m4_defn([_AC_LANG]) [$1])dnl m4_define([_AC_LANG], [$1])[]_m4_defun_epi([$0]) T37,36 -m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1710 +m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1714 T28,86 _AC_LANG_IO_PROGRAM(Fortran)AC_LANG_PROGRAM([], [dnl @@ -9596,13 +9596,13 @@ AC_TRY_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_CPP' is You should run autoupdate.])dnl AC_PREPROC_IFELSE([AC_LANG_SOURCE([[$1]])], [$2], [$3])[]_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 T37,33 -m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:193 +m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:203 T24,33 -m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:868 +m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:875 T30,35 -m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:625 +m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:656 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) F7,7 @@ -9647,9 +9647,9 @@ _AC_FC_WRAPPERS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T27,27 -m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:436 +m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:437 T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -9678,7 +9678,7 @@ AC_SUBST([ERLANG_ERTS_VER], [$ac_cv_erlang_erts_ver]) T29,31 m4_location(AC_TYPE_UINT32_T)../../lib/autoconf/types.m4:630 T40,34 -m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:232 +m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:287 T16,63 AC_CONFIG_HEADER_m4_defun_pro([$0])AC_CONFIG_HEADERS([$1])[]_m4_defun_epi([$0]) T26,34 @@ -9694,8 +9694,8 @@ You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_UTIME_NULL], [AC_FUNC_UTIME_NULL($@)])[]_m4_defun_epi([$0]) T11,55 AC_TRY_EVAL_m4_defun_pro([$0])_AC_EVAL([$$1])[]_m4_defun_epi([$0]) -T32,31 -m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:999 +T32,32 +m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:1006 T30,33 m4_location(AC_PROGRAMS_CHECK)../../lib/autoconf/oldnames.m4:39 T14,157 @@ -9723,7 +9723,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T28,33 -m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:465 +m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:470 T15,865 _AC_PROG_OBJC_Gac_test_OBJCFLAGS=${OBJCFLAGS+set} ac_save_OBJCFLAGS=$OBJCFLAGS @@ -9813,7 +9813,7 @@ T13,41 m4_provide_ifm4_ifdef([m4_provide($1)], [$2], [$3]) T33,34 -m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1015 +m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1021 T16,838 _AS_LN_S_PREPARE_m4_defun_pro([$0])rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -9891,11 +9891,11 @@ _ASUNAME _AS_PATH_WALK([$PATH], [AS_ECHO(["PATH: $as_dir"])]) } T46,33 -m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:297 +m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:341 T30,27 -m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:961 +m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:986 T24,34 -m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:474 +m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:476 T29,33 m4_location(AC_CHAR_UNSIGNED)../../lib/autoconf/oldnames.m4:54 T7,16 @@ -9917,15 +9917,15 @@ m4_location(AC_SIZE_T)../../lib/autoconf/oldnames.m4:73 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 T21,33 m4_location(AC_OFF_T)../../lib/autoconf/oldnames.m4:68 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 T26,0 m4_include(autoconf/go.m4) F12,8 @@ -9976,7 +9976,7 @@ T10,86 m4_toupperm4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ]) T25,30 -m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:272 +m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:274 T8,19 m4_curry$1(m4_shift($@,)_$0 F4,4 @@ -9990,7 +9990,7 @@ AC_HELP_STRING_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HELP_STR You should run autoupdate.])dnl m4_if($#, 0, [AS_HELP_STRING], [AS_HELP_STRING($@)])[]_m4_defun_epi([$0]) T33,31 -m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:973 +m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:981 T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T23,83 @@ -10052,9 +10052,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1788 +m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1810 T30,31 -m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:939 +m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:960 T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) T11,3 @@ -10064,8 +10064,8 @@ AC_TYPE_SSIZE_T_m4_defun_pro([$0])AC_CHECK_TYPE(ssize_t, int)[]_m4_defun_epi([$0 T14,113 AC_CHECK_TYPES_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_TYPE_NEW(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) -T28,29 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 +T28,30 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -10138,9 +10138,9 @@ T12,48 m4_re_escapem4_bpatsubst([$1], [[][*+.?\^$]], [\\\&]) T31,27 -m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:336 +m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:337 T25,36 -m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1786 +m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1824 T12,26 m4_normalizem4_strip(m4_flatten([$1])) T6,132 @@ -10154,11 +10154,11 @@ _ACEOF T16,89 AC_CONFIG_SRCDIR_m4_defun_pro([$0])m4_divert_text([DEFAULTS], [ac_unique_file="$1"])[]_m4_defun_epi([$0]) T23,34 -m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2468 +m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2470 F3,3 dnldnl T27,34 -m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2880 +m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2881 T16,807 _AC_INIT_PACKAGE_AC_INIT_LITERAL([$1]) _AC_INIT_LITERAL([$2]) @@ -10185,7 +10185,7 @@ m4_ifndef([AC_PACKAGE_URL], [[$5]]))]) T31,33 -m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:734 +m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:756 T25,3 _m4_divert(VERSION_BEGIN)200 T27,2052 @@ -10261,7 +10261,7 @@ if test $ac_cv_lib_error_at_line = no; then fi []_m4_defun_epi([$0]) T31,33 -m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:59 +m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:73 T22,33 m4_location(AC_MODE_T)../../lib/autoconf/oldnames.m4:67 T14,116 @@ -10275,7 +10275,7 @@ T18,95 AC_PROG_CPP_WERROR_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])dnl ac_c_preproc_warn_flag=yes[]_m4_defun_epi([$0]) T29,30 -m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:193 +m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:197 T10,79 _m4_shiftnm4_if([$1], 1, [m4_shift(], [$0(m4_decr([$1])]), m4_shift(m4_shift($@))) @@ -10433,7 +10433,7 @@ m4_if([$0], [m4_require], [[m4_defun]], [[AC_DEFUN]])['d macro])])m4_provide_if( [_m4_require_check([$1], _m4_defn([m4_provide($1)]), [$0])], [m4_ignore])], [_m4_require_call])([$1], [$2], _m4_divert_dump) T28,36 -m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1677 +m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1705 T7,119 m4_casem4_if([$#], 0, [], [$#], 1, [], @@ -10476,11 +10476,11 @@ T11,55 m4_sincludem4_include_unique([$1])dnl m4_builtin([sinclude], [$1]) T32,34 -m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:271 +m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:285 T41,33 -m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:254 +m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:255 T23,33 -m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:901 +m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:906 F6,6 definedefine T25,2 @@ -10518,7 +10518,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T27,34 -m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:245 +m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:265 T12,197 AC_ST_BLOCKS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLOCKS' is obsolete. You should run autoupdate.])dnl @@ -10551,13 +10551,13 @@ else fi []_m4_defun_epi([$0]) T31,27 -m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:422 +m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:424 T19,62 m4_version_unletterm4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [3]) T23,34 -m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:349 +m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:356 T26,31 -m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:232 +m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:242 T26,23 _AC_LANG_NULL_PROGRAM(C++)AC_LANG_PROGRAM([], []) T15,318 @@ -10578,7 +10578,7 @@ AC_DIVERT_POPm4_if([$1], [], [], ]m4_divert_stack)])_m4_popdef([_m4_divert_stack], [_m4_divert_diversion])m4_ifdef([_m4_divert_diversion], [], [m4_fatal([too many m4_divert_pop])])_m4_divert_raw(_m4_divert(_m4_defn([_m4_divert_diversion]), [-])) T24,33 -m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:358 +m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:371 T17,32 m4_define_defaultm4_ifndef([$1], [m4_define($@)]) T21,696 @@ -10624,9 +10624,9 @@ m4_PACKAGE_NAMEGNU Autoconf T36,31 m4_location(AC_STRUCT_DIRENT_D_TYPE)../../lib/autoconf/types.m4:968 T27,34 -m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2678 +m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2680 T29,33 -m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:481 +m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:482 F10,7 m4_builtinbuiltin T19,2 @@ -10644,23 +10644,23 @@ _AC_CHECK_HEADER_MONGREL_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ AS_VAR_IF([ac_Header], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_Header])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:370 +m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:380 T41,27 -m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:815 +m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:816 T34,0 m4_include(autoconf/autoupdate.m4) T31,33 m4_location(AC_MINUS_C_MINUS_O)../../lib/autoconf/oldnames.m4:66 T26,35 -m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:424 +m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:453 T35,33 -m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:727 +m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:732 T10,266 AS_REQUIRE_m4_defun_pro([$0])m4_define([_m4_divert_desired], [m4_default_quoted([$3], [M4SH-INIT])])m4_if(m4_eval(_m4_divert_dump - 0 <= _m4_divert(_m4_divert_desired, [-])), 1, [m4_require(], [m4_divert_require(_m4_divert_desired,]) [$1], [$2])[]_m4_defun_epi([$0]) T34,34 -m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1004 +m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1010 T14,44 m4_divert_oncem4_expand_once([m4_divert_text([$1], [$2])]) T11,146 @@ -10698,11 +10698,11 @@ _AC_PROG_OBJC_G AC_LANG_POP(Objective C)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 T27,33 -m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:40 +m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:93 T27,29 -m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:47 +m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:71 T20,374 AC_CONFIG_LIBOBJ_DIR_m4_defun_once([AC_CONFIG_LIBOBJ_DIR], [m4_divert_text([DEFAULTS], [ac_config_libobj_dir=$1])], m4_if(_m4_divert_dump, [], [[_m4_defun_pro([AC_CONFIG_LIBOBJ_DIR])m4_unquote(], [)_m4_defun_epi([AC_CONFIG_LIBOBJ_DIR])]], @@ -10715,7 +10715,7 @@ AC_CHECK_FUNCS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_FUNC(], [)])AS_F [$3])dnl]) []_m4_defun_epi([$0]) T19,33 -m4_location(_AC_FC)../../lib/autoconf/fortran.m4:167 +m4_location(_AC_FC)../../lib/autoconf/fortran.m4:170 T11,183 AC_IRIX_SUN_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_IRIX_SUN' is obsolete. You should run autoupdate.])dnl @@ -10760,7 +10760,7 @@ m4_include(autoconf/oldnames.m4) F6,6 regexpregexp T27,28 -m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1370 +m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1373 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -10854,7 +10854,7 @@ m4_sysvalsysval T28,33 m4_location(AC_MAJOR_HEADER)../../lib/autoconf/oldnames.m4:65 T23,34 -m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1511 +m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1522 T13,91 AS_SET_STATUS_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_set_status $1[]_m4_defun_epi([$0]) T14,127 @@ -10868,11 +10868,11 @@ ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ ac_compiler_gnu=$ac_cv_objc_compiler_gnu T25,31 -m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:671 +m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:685 T30,31 -m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:366 +m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:384 T31,34 -m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1688 +m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1718 T22,527 _AS_VAR_APPEND_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_append], [VAR VALUE], [Append the text in VALUE to the end of the definition contained in @@ -10900,7 +10900,7 @@ AC_FUNC_VFORK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_FUNC_VFOR You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FORK], [AC_FUNC_FORK($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:188 +m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:193 T18,371 AC_SYS_INTERPRETER_m4_defun_pro([$0])AC_CACHE_CHECK(whether @%:@! works in shell scripts, ac_cv_sys_interpreter, [echo '#! /bin/cat @@ -10921,7 +10921,7 @@ AC_LANG_CALL(Go)AC_LANG_PROGRAM([$1 m4_if([$2], [main], , [func $2()])],[$2()]) T35,34 -m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2273 +m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2276 T15,77 _AC_LANG_ABBREV_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T15,550 @@ -10940,9 +10940,9 @@ if test $ac_cv_func_strcoll_works = yes; then fi []_m4_defun_epi([$0]) T33,34 -m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1638 +m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1670 T24,28 -m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1621 +m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1656 T29,1130 _AC_PROG_PREPROC_WORKS_IFELSE_m4_defun_pro([$0])ac_preproc_ok=false for ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag in '' yes @@ -11098,13 +11098,13 @@ AC_DIAGNOSEm4_warn($@) T17,0 m4_pattern_forbid T24,34 -m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2298 +m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2303 T30,33 -m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:491 +m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:502 T33,34 -m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:292 +m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:302 T27,34 -m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:109 +m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:115 T9,69 m4_assertm4_if(m4_eval([$1]), 0, [m4_fatal([assert failed: $1], [$2])]) @@ -11150,7 +11150,7 @@ m4_pushdefpushdef T27,32 m4_location(AC_LANG_ERLANG)../../lib/autoconf/erlang.m4:112 T22,34 -m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:335 +m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:342 T21,140 AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_FC])dnl AC_LANG_PUSH(Fortran)dnl @@ -11184,9 +11184,9 @@ _AC_CANONICAL_SPLIT(build) m4_ifdef([_m4_diverting([AC_CANONICAL_BUILD])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_BUILD],], [, _m4_divert_dump)]])) T39,31 -m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:474 +m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:498 T28,33 -m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:509 +m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:531 T17,395 _AC_STRUCT_DIRENT_m4_defun_pro([$0]) AC_REQUIRE([AC_HEADER_DIRENT]) @@ -11217,7 +11217,7 @@ _AS_ECHO([$as_me: $1], [$2]);}], T13,127 AC_MSG_NOTICE_m4_defun_pro([$0])AS_REQUIRE([_AS_ME_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:155 +m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:158 T20,53 m4_divert_stack_pushm4_pushdef([_m4_divert_stack], m4_location[: $1: $2]) T17,105 @@ -11234,12 +11234,12 @@ T9,75 AC_BEFOREm4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) T37,34 -m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:368 +m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:422 T15,67 AC_LANG_PREPROCAC_LANG_COMPILER_REQUIRE()dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T28,36 -m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1725 +m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1739 T23,39 m4_expansion_stack_pushm4_pushdef([_m4_expansion_stack], [$1]) T22,3 @@ -11274,7 +11274,7 @@ AC_LANG_OBJC_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_OBJC' You should run autoupdate.])dnl AC_LANG(Objective C)[]_m4_defun_epi([$0]) T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 T11,30 AC_MSG_WARNAS_MESSAGE([WARNING: $1], [2]) T13,26 @@ -11302,7 +11302,7 @@ AS_LITERAL_WORD_IF([$2], T20,36 m4_location(AC_MMAP)../../lib/autoconf/functions.m4:1354 T26,34 -m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:59 +m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:68 T30,71 AC_LANG_PREPROC(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXXCPP])[]_m4_defun_epi([$0]) T24,34 @@ -11328,7 +11328,7 @@ m4_map_argsm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [2], [$1([$2])[]], [_m4_foreach([$1(], [)], $@)]) T26,28 -m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1167 +m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1192 T19,288 _m4_set_contents_1cm4_ifdef([_m4_set([$1])], [m4_set_contains([$1], _m4_defn([_m4_set([$1])]), @@ -11350,13 +11350,13 @@ AC_TYPE_INT64_T_m4_defun_pro([$0])_AC_TYPE_INT(64)[]_m4_defun_epi([$0]) F8,5 m4_shiftshift T28,33 -m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:438 +m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:460 T37,33 -m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:129 +m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:141 T27,28 -m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1010 +m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1039 T38,33 -m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:261 +m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:262 T16,452 _m4_require_callm4_pushdef([_m4_divert_grow], m4_decr(_m4_divert_grow))m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_divert_push(_m4_divert_grow, [-])m4_if([$2], [], [$1], [$2]) m4_provide_if([$1], [m4_set_remove([_m4_provide], [$1])], @@ -11480,7 +11480,7 @@ fi T9,23 AC_DEFINE_AC_DEFINE_Q([_$0], $@) T24,33 -m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:859 +m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:886 T23,27 m4_location(AC_LANG_GO)../../lib/autoconf/go.m4:44 T13,160 @@ -11516,7 +11516,7 @@ m4_location(AC_INLINE)../../lib/autoconf/oldnames.m4:61 T7,65 _m4_maxm4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2])) T28,34 -m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1071 +m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1076 F8,8 __file____file__ T18,2 @@ -11534,9 +11534,9 @@ m4_bregexpregexp F7,7 pushdefpushdef T32,35 -m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:582 +m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:587 T36,32 -m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:241 +m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:260 T15,345 _AC_COMPUTE_INT_m4_defun_pro([$0])AC_COMPUTE_INT([$2], [$1], [$3], [$4]) AC_DIAGNOSE([obsolete], @@ -11658,7 +11658,7 @@ AC_SUBST([ERLANG_LIB_VER_$1], [$ac_cv_erlang_lib_ver_$1]) AS_IF([test "$ac_cv_erlang_lib_dir_$1" = "not found"], [$3], [$2]) []_m4_defun_epi([$0]) T32,33 -m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:39 +m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:47 T14,103 _AS_TR_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])AS_REQUIRE([_AS_TR_CPP_PREPARE])[]_m4_defun_epi([$0]) T14,81 @@ -11693,7 +11693,7 @@ extern char *tzname[]; fi []_m4_defun_epi([$0]) T31,28 -m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1425 +m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1438 T24,3 _m4_divert(HELP_VAR_END)105 T10,24 @@ -11701,7 +11701,7 @@ AN_LIBRARYAN_OUTPUT([library], $@) T11,25 AN_FUNCTIONAN_OUTPUT([function], $@) T39,34 -m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1497 +m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1499 T12,47 AS_VAR_ARITHas_fn_arith $2 && AS_VAR_SET([$1], [$as_val])[] T12,197 @@ -11758,7 +11758,7 @@ else fi T24,27 -m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:694 +m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:730 T10,520 _AC_PATH_X_m4_defun_pro([$0])AC_CACHE_VAL(ac_cv_have_x, [# One or both of the vars are not set, and there is no cached value. @@ -11824,13 +11824,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 T25,34 -m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2412 +m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2414 T27,33 m4_location(AC_LONG_DOUBLE)../../lib/autoconf/oldnames.m4:63 T39,28 -m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1846 +m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1876 T23,106 _AH_CHECK_HEADER_DIRENTAH_TEMPLATE(AS_TR_CPP([HAVE_$1]), [Define to 1 if you have the <$1> header file, and it defines `DIR'.]) @@ -11845,11 +11845,11 @@ if test "$ERLC" = "not found"; then fi []_m4_defun_epi([$0]) T33,28 -m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:143 +m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:144 T20,3 _AC_LANG_ABBREV(C++)cxx T26,34 -m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1462 +m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1472 T34,122 _AC_LANG_IO_PROGRAM(Objective C++)AC_LANG_PROGRAM([@%:@include ], [FILE *f = fopen ("conftest.out", "w"); @@ -11878,10 +11878,10 @@ fi []_m4_defun_epi([$0]) T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) -T25,29 -m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:99 +T25,30 +m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:117 T21,34 -m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2422 +m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2424 F11,11 changequotechangequote T16,118 @@ -11893,7 +11893,7 @@ AC_ST_RDEV_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_RDEV' is You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_RDEV], [AC_STRUCT_ST_RDEV($@)])[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:799 +m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:807 T9,26 m4_ifndefm4_ifdef([$1], [$3], [$2]) T18,144 @@ -11920,7 +11920,7 @@ _AC_LANG_IO_PROGRAM(Objective C)AC_LANG_PROGRAM([@%:@include ], T27,36 m4_location(AM_FUNC_STRTOD)../../lib/autoconf/functions.m4:1619 T27,35 -m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:601 +m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:617 T24,495 _AC_CHECK_HEADER_PREPROC_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], @@ -11937,7 +11937,7 @@ AC_FATALm4_fatal($@) T22,33 m4_location(AC_FIND_X)../../lib/autoconf/oldnames.m4:57 T22,34 -m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:321 +m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:328 T7,108 m4_joinm4_if([$#], [1], [], [$#], [2], [[$2]], @@ -12321,7 +12321,7 @@ DUALCASE=1; export DUALCASE # for MKS sh _$0 T30,31 -m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:327 +m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:339 T16,2 _m4_divert(KILL)-1 T18,211 @@ -12333,11 +12333,11 @@ m4_foreachm4_if([$2], [], [], [m4_pushdef([$1])_$0([m4_define([$1],], [)$3], [], $2)m4_popdef([$1])]) T20,34 -m4_location(AC_WITH)../../lib/autoconf/general.m4:1492 +m4_location(AC_WITH)../../lib/autoconf/general.m4:1493 T20,33 m4_location(AC_WARN)../../lib/autoconf/oldnames.m4:33 T28,34 -m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1302 +m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1337 T9,265 _AS_QUOTEm4_cond([m4_index([$1], [\])], [-1], [_AS_QUOTE_MODERN], [m4_eval(m4_index(m4_translit([[$1]], [$], [\]), [\\]) >= 0)], @@ -12450,11 +12450,11 @@ m4_include(m4sugar/version.m4) T28,31 m4_location(AC_TYPE_INT32_T)../../lib/autoconf/types.m4:626 T30,32 -m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1011 +m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1019 T37,32 -m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:167 +m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:168 T32,27 -m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:429 +m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:430 T11,43 AC_OBSOLETEAC_DIAGNOSE([obsolete], [$1 is obsolete$2]) T14,181 @@ -12471,19 +12471,19 @@ if test $ac_cv_type_uid_t = no; then fi []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:497 +m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:571 T23,33 -m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:378 +m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:391 T33,27 -m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:627 +m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:628 T44,27 -m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:992 +m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:993 T28,34 -m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2432 +m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2434 T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 T26,32 -m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:938 +m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:954 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -12499,7 +12499,7 @@ AC_CONFIG_AUX_DIR_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS($1 "$srcdir"/$1)[]_m4_def F10,7 m4_traceontraceon T27,27 -m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:674 +m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:675 T11,1061 _AC_SRCDIRSac_builddir=. @@ -12536,7 +12536,7 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix T26,34 -m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:220 +m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:236 T13,52 m4_cr_LettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ T18,457 @@ -12562,7 +12562,7 @@ _AC_FC_DUMMY_MAIN($@) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T28,31 -m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:888 +m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:904 T24,117 _AC_LANG_OPENMP(Fortran) program main @@ -12573,7 +12573,7 @@ _AC_LANG_OPENMP(Fortran) end T32,30 -m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:265 +m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:266 T9,75 m4_beforem4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) @@ -12834,16 +12834,16 @@ AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS"])])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2590 +m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2598 T43,31 -m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:547 +m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:562 T28,35 -m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:828 +m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:840 T7,93 _AS_BOXm4_if(m4_index(m4_translit([[$1]], [`\"], [$$$]), [$]), [-1], [$0_LITERAL], [$0_INDIR])($@) T35,33 -m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1053 +m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1055 T8,189 _m4_wrapm4_ifdef([$0_text], [m4_define([$0_text], [$1]_m4_defn([$0_text])[$2])], @@ -12924,7 +12924,7 @@ AC_TYPE_MBSTATE_T_m4_defun_pro([$0])AC_CACHE_CHECK([for mbstate_t], ac_cv_type_m [Define to a type if does not define.]) fi[]_m4_defun_epi([$0]) T28,30 -m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:149 +m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:150 T28,4 _AC_LANG_ABBREV(Objective C)objc T14,87 @@ -12932,7 +12932,7 @@ AC_PROG_CC_C89_m4_defun_pro([$0]) AC_REQUIRE([AC_PROG_CC])dnl _AC_PROG_CC_C89 []_m4_defun_epi([$0]) T22,33 -m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1239 +m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1244 T14,1273 _AC_CACHE_DUMP# The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. @@ -13024,13 +13024,13 @@ _ACEOF esac []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:215 +m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:218 T23,33 -m4_location(AC_FOREACH)../../lib/autoconf/general.m4:194 +m4_location(AC_FOREACH)../../lib/autoconf/general.m4:196 T38,31 -m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:414 +m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:447 T50,35 -m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:849 +m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:881 F9,6 m4_definedefine T24,1910 @@ -13724,7 +13724,7 @@ $2]) F7,7 traceontraceon T32,31 -m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:49 +m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:58 T22,496 AC_PRESERVE_HELP_ORDER_m4_defun_pro([$0])m4_divert_once([HELP_ENABLE], [[ Optional Features and Packages: @@ -13830,7 +13830,7 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran 77])dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -13854,9 +13854,9 @@ T10,72 m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], [$0(m4_shift($@)), [$1]]) T29,34 -m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:818 +m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:844 T29,31 -m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:921 +m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:923 T31,53 _AC_FILE_DEPENDENCY_TRACE_COLONAC_FILE_DEPENDENCY_TRACE(m4_translit([$1], [:], [,])) T13,1 @@ -14067,9 +14067,9 @@ AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) T20,68 AC_LANG_PREPROC(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXXCPP])[]_m4_defun_epi([$0]) T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 T27,34 -m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2052 +m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2059 T19,34 AC_LANG_PROGRAM(Go)package main $1 @@ -14146,11 +14146,11 @@ dnl SVR4 -Xc -D__EXTENSIONS__ T11,54 AS_VAR_COPYAS_LITERAL_WORD_IF([$1[]$2], [$1=$$2], [eval $1=\$$2]) T29,31 -m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:452 +m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:464 F3,3 lenlen T29,33 -m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:543 +m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:558 T17,229 m4_cr_not_letters  !"#*%&'()$+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -14200,7 +14200,7 @@ AC_DYNIX_SEQ_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_DYNIX_SEQ' You should run autoupdate.])dnl AC_FUNC_GETMNTENT[]_m4_defun_epi([$0]) T28,34 -m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1240 +m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1287 T6,158 popdefm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_popdef([$1])], @@ -14211,7 +14211,7 @@ m4_location(AC_ALLOCA)../../lib/autoconf/functions.m4:417 T19,34 m4_location(AC_AIX)../../lib/autoconf/specific.m4:436 T42,27 -m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:853 +m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:854 T17,117 m4_include_uniquem4_ifdef([m4_include($1)], [m4_warn([syntax], [file `$1' included several times])])dnl @@ -14308,9 +14308,9 @@ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5, ($[3]), rm -f conftest* []_m4_defun_epi([$0]) T25,32 -m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1026 +m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1041 T29,35 -m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:132 +m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:133 T18,188 AC_ERLANG_NEED_ERL_m4_defun_pro([$0])AC_ERLANG_PATH_ERL([not found], [$1]) if test "$ERL" = "not found"; then diff --git a/externals/autotools/share/autoconf/autom4te.cfg b/externals/autotools/share/autoconf/autom4te.cfg index 36776e11f51..3b7ade5fa0e 100644 --- a/externals/autotools/share/autoconf/autom4te.cfg +++ b/externals/autotools/share/autoconf/autom4te.cfg @@ -106,7 +106,7 @@ end-language: "Autoreconf-preselections" # This intermediate language is used by aclocal to build aclocal.m4. begin-language: "Autoconf-without-aclocal-m4" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: --cache=autom4te.cache args: autoconf/autoconf.m4f args: acsite.m4? @@ -133,7 +133,7 @@ end-language: "Autoconf" ## -------- ## begin-language: "Autotest" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: autotest/autotest.m4f args: package.m4? args: local.at? @@ -147,7 +147,7 @@ end-language: "Autotest" ## ---- ## begin-language: "M4sh" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sh.m4f args: --mode 777 args: --language M4sugar @@ -159,7 +159,7 @@ end-language: "M4sh" ## ------- ## begin-language: "M4sugar" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sugar.m4f args: --warnings syntax end-language: "M4sugar" diff --git a/externals/autotools/share/autoconf/autotest/autotest.m4f b/externals/autotools/share/autoconf/autotest/autotest.m4f index 6dd14a68441..a309ef040c0 100644 --- a/externals/autotools/share/autoconf/autotest/autotest.m4f +++ b/externals/autotools/share/autoconf/autotest/autotest.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] @@ -45,9 +45,9 @@ m4_divert_push([TEST_SCRIPT])dnl T8,46 AT_SETUPm4_fatal([AT_SETUP: missing AT_INIT detected]) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -71,7 +71,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 T16,3 _m4_divert(HELP)300 T8,150 @@ -129,7 +129,7 @@ T7,84 _m4_for$4[$1]$5[]m4_if([$1], [$2], [], [$0(m4_eval([$1 + $3]), [$2], [$3], [$4], [$5])]) T27,34 -m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1674 +m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1746 T12,78 m4_foreach_wm4_pushdef([$1])m4_map_args_w([$2], [m4_define([$1],], [)$3])m4_popdef([$1]) @@ -144,7 +144,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], T20,3 _m4_divert(HELP_END)305 T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -162,7 +162,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -203,14 +203,14 @@ m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unlet T32,0 m4_include(autotest/specific.m4) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -269,7 +269,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 F6,3 m4_lenlen T14,42 @@ -282,7 +282,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 F12,9 m4_debugmodedebugmode T10,280 @@ -300,7 +300,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T22,38 @@ -343,7 +343,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -401,7 +401,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -433,9 +433,9 @@ m4_case([$1], [m4_append([AT_xfail], [ $1 && at_xfail=yes])]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 T14,142 _AT_CHECK_EXITm4_define([AT_ingroup])AS_ECHO(_AT_LINE_ESCAPED) >"$at_check_line_file" m4_ifval([$1], [($1) \ @@ -459,7 +459,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -467,7 +467,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -479,7 +479,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -490,9 +490,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 F9,6 m4_syscmdsyscmd T28,44 @@ -532,7 +532,7 @@ __unix__ T17,77 AT_ARG_OPTION_ARG_m4_defun_pro([$0])_AT_ARG_OPTION([$1],[$2],1,[$3],[$4])[]_m4_defun_epi([$0]) T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -548,7 +548,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -582,7 +582,7 @@ AT_DIFF_STDERR(ignore-nolog) T27,3 _m4_divert(VERSION_NOTICES)351 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -2226,8 +2226,8 @@ m4_divert([KILL]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -2237,7 +2237,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -2259,7 +2259,7 @@ _m4_divert(HELP_TUNING_BEGIN)302 T22,3 _m4_divert(HELP_MODES)301 T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 T22,3 _m4_divert(HELP_OTHER)304 T9,35 @@ -2277,7 +2277,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -2328,8 +2328,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp T12,93 AT_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text([VERSION_NOTICES], [m4_default([$2], [m4_newline])([$1])]) @@ -2517,7 +2517,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 F12,9 m4_changecomchangecom T20,40 @@ -2659,11 +2659,11 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 T22,30 AT_DIFF_STDERR(ignore)echo stderr:; cat "$at_stderr" T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -2707,7 +2707,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -2758,7 +2758,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -2834,7 +2834,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 T12,10 m4_cr_digits0123456789 T17,17 @@ -2887,7 +2887,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -2909,13 +2909,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -2938,17 +2938,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -2978,11 +2978,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 F8,8 __line____line__ T9,793 @@ -3116,7 +3116,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 F7,4 m4_decrdecr T12,93 @@ -3130,11 +3130,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -3154,11 +3154,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 T7,2 m4_echo$@ T20,1 @@ -3171,11 +3171,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -3274,17 +3274,17 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 T15,131 AT_CAPTURE_FILEm4_ifndef([AT_ingroup], [m4_fatal([AT_CAPTURE_FILE: missing AT_SETUP detected])])m4_append_uniq([AT_capture_files], ["$1"], [ \ ]) T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 F12,8 _m4_undivertundivert T7,54 @@ -3299,8 +3299,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,29 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 +T28,30 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -3494,7 +3494,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 T14,29 AT_COLOR_TESTSm4_define([AT_color], [auto]) T17,64 @@ -3561,7 +3561,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T11,140 @@ -3631,7 +3631,7 @@ AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir T23,3 _m4_divert(TEST_SCRIPT)450 T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -3759,7 +3759,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 T19,3 _m4_divert(VERSION)350 T14,73 @@ -3818,7 +3818,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -3831,7 +3831,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f index 93fbffb4fad..8033a183565 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] @@ -25,9 +25,9 @@ AS_MESSAGE_LOG_FD T8,0 _m4_warn T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -51,7 +51,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -112,7 +112,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], [m4_map_args_sep([m4_builtin([dumpdef],], [)], [], $@)]) T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -130,7 +130,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -169,14 +169,14 @@ _m4_divert(GROW)10000 T18,72 m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unletter([$2])) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -221,7 +221,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 F6,3 m4_lenlen T14,42 @@ -234,7 +234,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 F12,9 m4_debugmodedebugmode T10,280 @@ -252,7 +252,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T8,66 @@ -289,7 +289,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -345,7 +345,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -363,9 +363,9 @@ T12,32 m4_make_listm4_join([, ], m4_dquote_elt($@)) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -385,7 +385,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -393,7 +393,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -405,7 +405,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -416,9 +416,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 F9,6 m4_syscmdsyscmd T11,136 @@ -454,7 +454,7 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -470,7 +470,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -500,7 +500,7 @@ _AS_DETECT_REQUIRED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_REQUIRED_BODY], [$1 T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -671,8 +671,8 @@ _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -682,7 +682,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -700,7 +700,7 @@ m4_ignore T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T7,75 @@ -714,7 +714,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -753,8 +753,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp F11,11 __program____program__ T6,26 @@ -880,7 +880,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 F12,9 m4_changecomchangecom T20,40 @@ -949,9 +949,9 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -980,7 +980,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -1021,7 +1021,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -1093,7 +1093,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 T12,10 m4_cr_digits0123456789 T17,17 @@ -1146,7 +1146,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -1168,13 +1168,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -1197,17 +1197,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -1237,11 +1237,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 F8,8 __line____line__ T13,41 @@ -1342,7 +1342,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 F7,4 m4_decrdecr T12,93 @@ -1354,11 +1354,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -1378,11 +1378,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 T7,2 m4_echo$@ T20,1 @@ -1393,11 +1393,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -1496,13 +1496,13 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 F12,8 _m4_undivertundivert T7,54 @@ -1517,8 +1517,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,29 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 +T28,30 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -1698,7 +1698,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -1761,7 +1761,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T7,13 @@ -1823,7 +1823,7 @@ _AS_DIRNAME_SED([$1])[] T10,124 AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -1944,7 +1944,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -1986,7 +1986,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -1999,7 +1999,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f index 9d649aa1426..2d81e697bd3 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] @@ -305,8 +305,8 @@ m4_cr_LETTERSABCDEFGHIJKLMNOPQRSTUVWXYZ T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T4,37 m4_nm4_if([$1], [], [], @@ -353,8 +353,8 @@ _m4_text_wrapm4_pushdef([m4_Indent], m4_qlen([$2]))m4_pushdef([m4_Cursor], m4_ql m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])m4_map_args_w([$1], [$0_word(], [, [$2], [$4])])_m4_popdef([m4_Separator], [m4_Cursor], [m4_Indent]) F9,6 m4_formatformat -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp F11,11 __program____program__ T7,156 diff --git a/externals/autotools/share/automake-1.12/Automake/Config.pm b/externals/autotools/share/automake-1.12/Automake/Config.pm index b96d7cd861f..9756159d31e 100644 --- a/externals/autotools/share/automake-1.12/Automake/Config.pm +++ b/externals/autotools/share/automake-1.12/Automake/Config.pm @@ -32,7 +32,7 @@ our $PACKAGE = 'automake'; our $PACKAGE_BUGREPORT = 'bug-automake@gnu.org'; our $VERSION = '1.12.5'; our $RELEASE_YEAR = '2012'; -our $libdir = '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/automake-1.12'; +our $libdir = '/Users/economon/SU2/externals/autotools/share/automake-1.12'; our $perl_threads = 1; 1; diff --git a/externals/autotools/share/emacs/site-lisp/autoconf-mode.elc b/externals/autotools/share/emacs/site-lisp/autoconf-mode.elc index ad25984cdc498fd0eacc2dfa4d4886584b563bc3..a27458362790a9efbd0ea635e1bc10f908ef7c45 100644 GIT binary patch delta 82 zcmew>@k3&QlDdnZL86gSvRO)sUT~;iYKcOAoskxPj`9!}6 mRufZ0OOuVO@3S&lm~HN1%VcIUFx&i{Gnt9W)O2zTk0JmdU>HaM delta 87 zcmew%@mFGkl1@lQer{rMv951ovQvJ3wq8zta$=4`ex5=|MyY~VVxEG6xq_jAm63^+ rvB5;o2v&0gOC!sT%kHx>SsHF`XUk+}GBn)$i8Gmr$;@DKIFBL#5KskxPj`9!}6 jRufZ0OOuVOLs%FMHnDm!Ga796=168@GBTgMflCnpqr4U0 delta 85 zcmX>jdQo(Ol1@lQer{rMv951ovQvJ3wq8zta$=4`ex5=|MyY~VVxEG6xq_jAm63^+ ovB5;o2v&0gOC!sT%R*QfO*j8$@nQy2ZXC%>OvXl&S92)>0I?())c^nh diff --git a/externals/autotools/share/info/dir b/externals/autotools/share/info/dir index 73c759cfa09..e495396dfa0 100644 --- a/externals/autotools/share/info/dir +++ b/externals/autotools/share/info/dir @@ -15,25 +15,21 @@ File: dir, Node: Top This is the top of the INFO tree * Menu: Individual utilities -* aclocal-invocation: (automake)aclocal Invocation. - Generating aclocal.m4. +* aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. * autoconf-invocation: (autoconf)autoconf Invocation. - How to create configuration - scripts -* autoheader: (autoconf)autoheader Invocation. How to create configuration - templates -* autom4te: (autoconf)autom4te Invocation. The Autoconf executables - backbone -* automake-invocation: (automake)automake Invocation. - Generating Makefile.in. -* autoreconf: (autoconf)autoreconf Invocation. Remaking multiple `configure' - scripts -* autoscan: (autoconf)autoscan Invocation. Semi-automatic `configure.ac' - writing -* autoupdate: (autoconf)autoupdate Invocation. Automatic update of - `configure.ac' -* config.status: (autoconf)config.status Invocation. - Recreating configurations. + How to create configuration scripts +* autoheader: (autoconf)autoheader Invocation. + How to create configuration templates +* autom4te: (autoconf)autom4te Invocation. + The Autoconf executables backbone +* automake-invocation: (automake)automake Invocation. Generating Makefile.in. +* autoreconf: (autoconf)autoreconf Invocation. + Remaking multiple `configure' scripts +* autoscan: (autoconf)autoscan Invocation. + Semi-automatic `configure.ac' writing +* autoupdate: (autoconf)autoupdate Invocation. + Automatic update of `configure.ac' +* config.status: (autoconf)config.status Invocation. Recreating configurations. * configure: (autoconf)configure Invocation. Configuring a package. * ifnames: (autoconf)ifnames Invocation. Listing conditionals in source. * libtool-invocation: (libtool)Invoking libtool. diff --git a/externals/autotools/share/man/man1/aclocal-1.12.1 b/externals/autotools/share/man/man1/aclocal-1.12.1 index de47c8647ed..65085ca3853 100644 --- a/externals/autotools/share/man/man1/aclocal-1.12.1 +++ b/externals/autotools/share/man/man1/aclocal-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH ACLOCAL "1" "January 2016" "aclocal 1.12.5" "User Commands" +.TH ACLOCAL "1" "February 2016" "aclocal 1.12.5" "User Commands" .SH NAME aclocal \- manual page for aclocal 1.12.5 .SH SYNOPSIS diff --git a/externals/autotools/share/man/man1/automake-1.12.1 b/externals/autotools/share/man/man1/automake-1.12.1 index e6bd08adf80..f18f28444c1 100644 --- a/externals/autotools/share/man/man1/automake-1.12.1 +++ b/externals/autotools/share/man/man1/automake-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH AUTOMAKE "1" "January 2016" "automake 1.12.5" "User Commands" +.TH AUTOMAKE "1" "February 2016" "automake 1.12.5" "User Commands" .SH NAME automake \- manual page for automake 1.12.5 .SH SYNOPSIS From b2b0aec309002928c7e9fc14ab1cf436120062ce Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 3 Feb 2016 11:54:03 +0000 Subject: [PATCH 186/269] Cleanup: removed warnings from legacy FEA solver. --- SU2_CFD/src/solver_direct_elasticity.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 9445135a83b..831b9b2e603 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2129,7 +2129,9 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || (flow_config->GetKind_Solver() == RANS) ); - su2double Pinf; + su2double Pinf = 0.0; + + markFlow=0; su2double ModAmpl; su2double CurrentTime=fea_config->GetCurrent_DynTime(); @@ -2214,7 +2216,7 @@ void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geome normalsVertex_Unit[iVertex] = new su2double[nDim]; } - su2double **Grad_PrimVar; + su2double **Grad_PrimVar = NULL; su2double Viscosity = 0.0; su2double Tau[3][3]; su2double div_vel = 0.0, Delta = 0.0; From c6156465f6238a70f1cc51c0690512bdea89e45d Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 3 Feb 2016 17:19:46 +0000 Subject: [PATCH 187/269] Added test cases to python scripts. --- TestCases/parallel_regression.py | 54 ++++++++++++++++---------------- TestCases/serial_regression.py | 54 ++++++++++++++++---------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 25d6a6240bf..398d15975ba 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -437,37 +437,37 @@ def main(): ########################## # Static beam, 3d - # statbeam3d = TestCase('statbeam3d') - # statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" - # statbeam3d.cfg_file = "configBeam_3d.cfg" - # statbeam3d.test_iter = 0 - # statbeam3d.test_vals = [-8.644911, -8.280115, -8.204380, 6.4095e+04] #last 4 columns - # statbeam3d.su2_exec = "parallel_computation_fsi.py -f" - # statbeam3d.timeout = 1600 - # statbeam3d.tol = 0.00001 - # test_list.append(statbeam3d) + statbeam3d = TestCase('statbeam3d') + statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" + statbeam3d.cfg_file = "configBeam_3d.cfg" + statbeam3d.test_iter = 0 + statbeam3d.test_vals = [-8.644911, -8.280115, -8.204380, 6.4095e+04] #last 4 columns + statbeam3d.su2_exec = "parallel_computation_fsi.py -f" + statbeam3d.timeout = 1600 + statbeam3d.tol = 0.00001 + test_list.append(statbeam3d) # Dynamic beam, 2d - # dynbeam2d = TestCase('dynbeam2d') - # dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" - # dynbeam2d.cfg_file = "configBeam_2d.cfg" - # dynbeam2d.test_iter = 6 - # dynbeam2d.test_vals = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns - # dynbeam2d.su2_exec = "parallel_computation_fsi.py -f" - # dynbeam2d.timeout = 1600 - # dynbeam2d.tol = 0.00001 - # test_list.append(dynbeam2d) + dynbeam2d = TestCase('dynbeam2d') + dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" + dynbeam2d.cfg_file = "configBeam_2d.cfg" + dynbeam2d.test_iter = 6 + dynbeam2d.test_vals = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns + dynbeam2d.su2_exec = "parallel_computation_fsi.py -f" + dynbeam2d.timeout = 1600 + dynbeam2d.tol = 0.00001 + test_list.append(dynbeam2d) # FSI, 2d - # fsi2d = TestCase('fsi2d') - # fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" - # fsi2d.cfg_file = "configFSI_2D.cfg" - # fsi2d.test_iter = 4 - # fsi2d.test_vals = [2, 0.500000, -7.779707, -1.141608] #last 4 columns - # fsi2d.su2_exec = "parallel_computation_fsi.py -f" - # fsi2d.timeout = 1600 - # fsi2d.tol = 0.00001 - # test_list.append(fsi2d) + fsi2d = TestCase('fsi2d') + fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" + fsi2d.cfg_file = "configFSI_2D.cfg" + fsi2d.test_iter = 4 + fsi2d.test_vals = [2, 0.500000, -7.779707, -1.141608] #last 4 columns + fsi2d.su2_exec = "parallel_computation_fsi.py -f" + fsi2d.timeout = 1600 + fsi2d.tol = 0.00001 + test_list.append(fsi2d) ###################################### ### RUN TESTS ### diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index d2274b16849..4a50c07a3b3 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -499,37 +499,37 @@ def main(): ########################## # Static beam, 3d - # statbeam3d = TestCase('statbeam3d') - # statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" - # statbeam3d.cfg_file = "configBeam_3d.cfg" - # statbeam3d.test_iter = 0 - # statbeam3d.test_vals = [-8.498274, -8.230638, -8.123824, 6.4095e+04] #last 4 columns - # statbeam3d.su2_exec = "SU2_CFD" - # statbeam3d.timeout = 1600 - # statbeam3d.tol = 0.00001 - # test_list.append(statbeam3d) + statbeam3d = TestCase('statbeam3d') + statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" + statbeam3d.cfg_file = "configBeam_3d.cfg" + statbeam3d.test_iter = 0 + statbeam3d.test_vals = [-8.498274, -8.230638, -8.123824, 6.4095e+04] #last 4 columns + statbeam3d.su2_exec = "SU2_CFD" + statbeam3d.timeout = 1600 + statbeam3d.tol = 0.00001 + test_list.append(statbeam3d) # Dynamic beam, 2d - # dynbeam2d = TestCase('dynbeam2d') - # dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" - # dynbeam2d.cfg_file = "configBeam_2d.cfg" - # dynbeam2d.test_iter = 6 - # dynbeam2d.test_vals = [-9.420640, -5.365872, -12.430382, 6.5210e+04] #last 4 columns - # dynbeam2d.su2_exec = "SU2_CFD" - # dynbeam2d.timeout = 1600 - # dynbeam2d.tol = 0.00001 - # test_list.append(dynbeam2d) + dynbeam2d = TestCase('dynbeam2d') + dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" + dynbeam2d.cfg_file = "configBeam_2d.cfg" + dynbeam2d.test_iter = 6 + dynbeam2d.test_vals = [-9.420640, -5.365872, -12.430382, 6.5210e+04] #last 4 columns + dynbeam2d.su2_exec = "SU2_CFD" + dynbeam2d.timeout = 1600 + dynbeam2d.tol = 0.00001 + test_list.append(dynbeam2d) # FSI, 2d - # fsi2d = TestCase('fsi2d') - # fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" - # fsi2d.cfg_file = "configFSI_2D.cfg" - # fsi2d.test_iter = 4 - # fsi2d.test_vals = [2, 0.500000, -7.779713, -1.141613] #last 4 columns - # fsi2d.su2_exec = "SU2_CFD" - # fsi2d.timeout = 1600 - # fsi2d.tol = 0.00001 - # test_list.append(fsi2d) + fsi2d = TestCase('fsi2d') + fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" + fsi2d.cfg_file = "configFSI_2D.cfg" + fsi2d.test_iter = 4 + fsi2d.test_vals = [2, 0.500000, -7.779713, -1.141613] #last 4 columns + fsi2d.su2_exec = "SU2_CFD" + fsi2d.timeout = 1600 + fsi2d.tol = 0.00001 + test_list.append(fsi2d) ###################################### From 02a72f6d3254f6605a696f55185dd73373dc760d Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Wed, 3 Feb 2016 12:15:29 -0800 Subject: [PATCH 188/269] Fixed overloaded virtual warnings. --- SU2_CFD/include/iteration_structure.hpp | 2 + SU2_CFD/include/numerics_structure.hpp | 543 ++++++++++++------------ SU2_CFD/src/SU2_CFD.cpp | 1 - 3 files changed, 275 insertions(+), 271 deletions(-) diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index 8b5abbe0365..ca067cf9830 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -692,6 +692,8 @@ class CFEM_StructuralAnalysis : public CIteration { * \param[in] ??? - Description here. */ void Preprocess(); + using CIteration::Preprocess; + /*! * \brief Perform a single iteration for structural analysis using the Finite Element Method. diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index c3e5a4a095d..f48bf537a6a 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1501,54 +1501,54 @@ class CNumerics { virtual void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); /*! - * \brief A virtual member to compute the tangent matrix in structural problems - * \param[in] element_container - Element structure for the particular element integrated. - */ - virtual void Compute_Tangent_Matrix(CElement *element_container); - - /*! - * \brief A virtual member to compute the pressure term in incompressible or nearly-incompressible structural problems - * \param[in] element_container - Definition of the particular element integrated. - */ - virtual void Compute_MeanDilatation_Term(CElement *element_container); - - /*! - * \brief A virtual member to compute the nodal stress term in non-linear structural problems - * \param[in] element_container - Definition of the particular element integrated. - */ - virtual void Compute_NodalStress_Term(CElement *element_container); - - /*! - * \brief A virtual member to compute the plane stress term in an element for nonlinear structural problems - * \param[in] config - Definition of the particular problem. - */ - virtual void Compute_Plane_Stress_Term(CElement *element_container); - - /*! - * \brief A virtual member to compute the constitutive matrix in an element for structural problems - * \param[in] config - Definition of the particular problem. - */ - virtual void Compute_Constitutive_Matrix(CElement *element_container); - - /*! - * \brief A virtual member to compute the stress tensor in an element for structural problems - * \param[in] config - Definition of the particular problem. - */ - virtual void Compute_Stress_Tensor(CElement *element_container); - - /*! - * \brief A virtual member to compute the mass matrix - * \param[in] config - Definition of the particular problem. - */ - virtual void Compute_Mass_Matrix(CElement *element_container); - - /*! - * \brief A virtual member to compute the averaged nodal stresses - * \param[in] element_container - Element structure for the particular element integrated. - */ - virtual void Compute_Averaged_NodalStress(CElement *element_container); - - /*! + * \brief A virtual member to compute the tangent matrix in structural problems + * \param[in] element_container - Element structure for the particular element integrated. + */ + virtual void Compute_Tangent_Matrix(CElement *element_container); + + /*! + * \brief A virtual member to compute the pressure term in incompressible or nearly-incompressible structural problems + * \param[in] element_container - Definition of the particular element integrated. + */ + virtual void Compute_MeanDilatation_Term(CElement *element_container); + + /*! + * \brief A virtual member to compute the nodal stress term in non-linear structural problems + * \param[in] element_container - Definition of the particular element integrated. + */ + virtual void Compute_NodalStress_Term(CElement *element_container); + + /*! + * \brief A virtual member to compute the plane stress term in an element for nonlinear structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Plane_Stress_Term(CElement *element_container); + + /*! + * \brief A virtual member to compute the constitutive matrix in an element for structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Constitutive_Matrix(CElement *element_container); + + /*! + * \brief A virtual member to compute the stress tensor in an element for structural problems + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Stress_Tensor(CElement *element_container); + + /*! + * \brief A virtual member to compute the mass matrix + * \param[in] config - Definition of the particular problem. + */ + virtual void Compute_Mass_Matrix(CElement *element_container); + + /*! + * \brief A virtual member to compute the averaged nodal stresses + * \param[in] element_container - Element structure for the particular element integrated. + */ + virtual void Compute_Averaged_NodalStress(CElement *element_container); + + /*! * \brief Computes a basis of orthogonal vectors from a suppled vector * \param[in] config - Normal vector */ @@ -4010,7 +4010,7 @@ class CGalerkin_FEA : public CNumerics { su2double Rho_s; /*!< \brief Structural density. */ su2double Mu; /*!< \brief Lame's coeficient. */ su2double Lambda; /*!< \brief Lame's coeficient. */ - su2double Density; /*!< \brief Material density. */ + public: /*! @@ -4161,227 +4161,230 @@ class CGalerkin_FEA : public CNumerics { }; /*! - * \class CFEM_Elasticity - * \brief Generic class for computing the tangent matrix and the residual for structural problems - * \ingroup FEM_Discr - * \author R.Sanchez - * \version 4.0.0 "Cardinal" - */ -class CFEM_Elasticity : public CNumerics { - -protected: - - su2double E; /*!< \brief Young's modulus of elasticity. */ - su2double Nu; /*!< \brief Poisson's ratio. */ - su2double Rho_s; /*!< \brief Structural density. */ - su2double Mu; /*!< \brief Lame's coeficient. */ - su2double Lambda; /*!< \brief Lame's coeficient. */ - su2double Kappa; /*!< \brief Compressibility constant. */ - bool plane_stress; /*!< \brief Checks if we are solving a plane stress case */ - - su2double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ - **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ - su2double *Ni_Vec; /*!< \brief Vector of shape functions - Auxiliary. */ - su2double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ - su2double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ - su2double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ - su2double **GradNi_Curr_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ - -public: - - /*! - * \brief Constructor of the class. - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEM_Elasticity(void); - - void Compute_Mass_Matrix(CElement *element_container); - - virtual void Compute_Tangent_Matrix(CElement *element_container); - - virtual void Compute_MeanDilatation_Term(CElement *element_container); - - virtual void Compute_NodalStress_Term(CElement *element_container); - - virtual void Compute_Averaged_NodalStress(CElement *element_container); - - virtual void Compute_Plane_Stress_Term(CElement *element_container); - - virtual void Compute_Constitutive_Matrix(CElement *element_container); - - virtual void Compute_Stress_Tensor(CElement *element_container); - -}; - -/*! - * \class CFEM_LinearElasticity - * \brief Class for computing the stiffness matrix of a linear, elastic problem. - * \ingroup FEM_Discr - * \author R.Sanchez - * \version 4.0.0 "Cardinal" - */ -class CFEM_LinearElasticity : public CFEM_Elasticity { - - su2double **nodalDisplacement; - -public: - - /*! - * \brief Constructor of the class. - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEM_LinearElasticity(void); - - void Compute_Tangent_Matrix(CElement *element_container); - - void Compute_Constitutive_Matrix(void); - - void Compute_Averaged_NodalStress(CElement *element_container); - -// virtual void Compute_Stress_Tensor(void); - -// virtual void Compute_MeanDilatation_Term(CElement *element_container); - -// virtual void Compute_NodalStress_Term(CElement *element_container); - -}; - -/*! - * \class CFEM_LinearElasticity - * \brief Class for computing the stiffness matrix of a nonlinear, elastic problem. - * \ingroup FEM_Discr - * \author R.Sanchez - * \version 4.0.0 "Cardinal" - */ -class CFEM_NonlinearElasticity : public CFEM_Elasticity { - -protected: - - su2double **F_Mat; /*!< \brief Deformation gradient. */ - su2double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ - su2double **currentCoord; /*!< \brief Current coordinates. */ - su2double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ - - su2double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ - su2double *KAux_t_a; /*!< \brief Auxiliar matrix for the pressure term */ - - su2double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ - - su2double f33; /*!< \brief Plane stress term for non-linear 2D plane stress analysis */ - -public: - - /*! - * \brief Constructor of the class. - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEM_NonlinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEM_NonlinearElasticity(void); - - void Compute_Tangent_Matrix(CElement *element_container); - - void Compute_MeanDilatation_Term(CElement *element_container); - - void Compute_NodalStress_Term(CElement *element_container); - - void Compute_Averaged_NodalStress(CElement *element_container); - - virtual void Compute_Plane_Stress_Term(CElement *element_container); - - virtual void Compute_Constitutive_Matrix(CElement *element_container); - - virtual void Compute_Stress_Tensor(CElement *element_container); - - -}; - -/*! - * \class CFEM_NeoHookean_Comp - * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, compressible. - * \ingroup FEM_Discr - * \author R.Sanchez - * \version 4.0.0 "Cardinal" - */ -class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { - -public: - - /*! - * \brief Constructor of the class. - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEM_NeoHookean_Comp(void); - - void Compute_Plane_Stress_Term(CElement *element_container); - - void Compute_Constitutive_Matrix(CElement *element_container); - - void Compute_Stress_Tensor(CElement *element_container); - -}; - -/*! - * \class CFEM_NeoHookean_Incomp - * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, incompressible. - * \ingroup FEM_Discr - * \author R.Sanchez - * \version 4.0.0 "Cardinal" - */ -class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { - -public: - - /*! - * \brief Constructor of the class. - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEM_NeoHookean_Incomp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEM_NeoHookean_Incomp(void); - - void Compute_Plane_Stress_Term(CElement *element_container); - - void Compute_Constitutive_Matrix(CElement *element_container); - - void Compute_Stress_Tensor(CElement *element_container); - -}; - - - -/*! + * \class CFEM_Elasticity + * \brief Generic class for computing the tangent matrix and the residual for structural problems + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_Elasticity : public CNumerics { + +protected: + + su2double E; /*!< \brief Young's modulus of elasticity. */ + su2double Nu; /*!< \brief Poisson's ratio. */ + su2double Rho_s; /*!< \brief Structural density. */ + su2double Mu; /*!< \brief Lame's coeficient. */ + su2double Lambda; /*!< \brief Lame's coeficient. */ + su2double Kappa; /*!< \brief Compressibility constant. */ + bool plane_stress; /*!< \brief Checks if we are solving a plane stress case */ + + su2double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */ + **Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */ + su2double *Ni_Vec; /*!< \brief Vector of shape functions - Auxiliary. */ + su2double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */ + su2double **KAux_ab; /*!< \brief Node ab stiffness matrix - Auxiliary. */ + su2double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + su2double **GradNi_Curr_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_Elasticity(void); + + void Compute_Mass_Matrix(CElement *element_container); + + virtual void Compute_Tangent_Matrix(CElement *element_container); + + virtual void Compute_MeanDilatation_Term(CElement *element_container); + + virtual void Compute_NodalStress_Term(CElement *element_container); + + virtual void Compute_Averaged_NodalStress(CElement *element_container); + + virtual void Compute_Plane_Stress_Term(CElement *element_container); + + virtual void Compute_Constitutive_Matrix(CElement *element_container); + + virtual void Compute_Stress_Tensor(CElement *element_container); + +}; + +/*! + * \class CFEM_LinearElasticity + * \brief Class for computing the stiffness matrix of a linear, elastic problem. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_LinearElasticity : public CFEM_Elasticity { + + su2double **nodalDisplacement; + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_LinearElasticity(void); + + void Compute_Tangent_Matrix(CElement *element_container); + + void Compute_Constitutive_Matrix(void); + using CNumerics::Compute_Constitutive_Matrix; + + void Compute_Averaged_NodalStress(CElement *element_container); + +// virtual void Compute_Stress_Tensor(void); + +// virtual void Compute_MeanDilatation_Term(CElement *element_container); + +// virtual void Compute_NodalStress_Term(CElement *element_container); + +}; + +/*! + * \class CFEM_LinearElasticity + * \brief Class for computing the stiffness matrix of a nonlinear, elastic problem. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_NonlinearElasticity : public CFEM_Elasticity { + +protected: + + su2double **F_Mat; /*!< \brief Deformation gradient. */ + su2double **b_Mat; /*!< \brief Left Cauchy-Green Tensor. */ + su2double **currentCoord; /*!< \brief Current coordinates. */ + su2double **Stress_Tensor; /*!< \brief Cauchy stress tensor */ + + su2double **KAux_P_ab; /*!< \brief Auxiliar matrix for the pressure term */ + su2double *KAux_t_a; /*!< \brief Auxiliar matrix for the pressure term */ + + su2double J_F; /*!< \brief Jacobian of the transformation (determinant of F) */ + + su2double f33; /*!< \brief Plane stress term for non-linear 2D plane stress analysis */ + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_NonlinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_NonlinearElasticity(void); + + void Compute_Tangent_Matrix(CElement *element_container); + + void Compute_MeanDilatation_Term(CElement *element_container); + + void Compute_NodalStress_Term(CElement *element_container); + + void Compute_Averaged_NodalStress(CElement *element_container); + + virtual void Compute_Plane_Stress_Term(CElement *element_container); + + virtual void Compute_Constitutive_Matrix(CElement *element_container); + + virtual void Compute_Stress_Tensor(CElement *element_container); + + +}; + +/*! + * \class CFEM_NeoHookean_Comp + * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, compressible. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_NeoHookean_Comp(void); + + void Compute_Plane_Stress_Term(CElement *element_container); + + void Compute_Constitutive_Matrix(CElement *element_container); + using CNumerics::Compute_Constitutive_Matrix; + + void Compute_Stress_Tensor(CElement *element_container); + +}; + +/*! + * \class CFEM_NeoHookean_Incomp + * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, incompressible. + * \ingroup FEM_Discr + * \author R.Sanchez + * \version 4.0.0 "Cardinal" + */ +class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { + +public: + + /*! + * \brief Constructor of the class. + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nVar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_NeoHookean_Incomp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_NeoHookean_Incomp(void); + + void Compute_Plane_Stress_Term(CElement *element_container); + + void Compute_Constitutive_Matrix(CElement *element_container); + using CNumerics::Compute_Constitutive_Matrix; + + void Compute_Stress_Tensor(CElement *element_container); + +}; + + + +/*! * \class CSourceNothing * \brief Dummy class. * \ingroup SourceDiscr diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 1b67d020c9e..dd9ef0b6ec5 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -411,7 +411,6 @@ int main(int argc, char *argv[]) { StopCalc = false; break; case FEM_ELASTICITY: StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; - StopCalc = false; break; case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: StopCalc = integration_container[ZONE_0][ADJFLOW_SOL]->GetConvergence(); break; From 0469e9db519617d5139c3083a8bb7a51bb19803f Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Wed, 3 Feb 2016 13:16:34 -0800 Subject: [PATCH 189/269] Updated Xcode project. --- SU2_CFD/src/SU2_CFD.cpp | 48 +++++++++---------- .../Xcode/SU2_CFD.xcodeproj/project.pbxproj | 46 ++++++++++++++++++ 2 files changed, 70 insertions(+), 24 deletions(-) diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index dd9ef0b6ec5..679606ebb46 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -60,17 +60,17 @@ int main(int argc, char *argv[]) { heirarchy over all zones, multigrid levels, equation sets, and equation terms as described in the comments below. ---*/ - CDriver *driver = NULL; - CIteration **iteration_container = NULL; - COutput *output = NULL; - CIntegration ***integration_container = NULL; - CGeometry ***geometry_container = NULL; - CSolver ****solver_container = NULL; - CNumerics *****numerics_container = NULL; - CConfig **config_container = NULL; - CSurfaceMovement **surface_movement = NULL; - CVolumetricMovement **grid_movement = NULL; - CFreeFormDefBox*** FFDBox = NULL; + CDriver *driver = NULL; + CIteration **iteration_container = NULL; + COutput *output = NULL; + CIntegration ***integration_container = NULL; + CGeometry ***geometry_container = NULL; + CSolver ****solver_container = NULL; + CNumerics *****numerics_container = NULL; + CConfig **config_container = NULL; + CSurfaceMovement **surface_movement = NULL; + CVolumetricMovement **grid_movement = NULL; + CFreeFormDefBox*** FFDBox = NULL; CInterpolator ***interpolator_container = NULL; CTransfer ***transfer_container = NULL; @@ -92,17 +92,17 @@ int main(int argc, char *argv[]) { /*--- Definition and of the containers for all possible zones. ---*/ - iteration_container = new CIteration*[nZone]; - solver_container = new CSolver***[nZone]; - integration_container = new CIntegration**[nZone]; - numerics_container = new CNumerics****[nZone]; - config_container = new CConfig*[nZone]; - geometry_container = new CGeometry**[nZone]; - surface_movement = new CSurfaceMovement*[nZone]; - grid_movement = new CVolumetricMovement*[nZone]; - FFDBox = new CFreeFormDefBox**[nZone]; - interpolator_container= new CInterpolator**[nZone]; - transfer_container = new CTransfer**[nZone]; + iteration_container = new CIteration*[nZone]; + solver_container = new CSolver***[nZone]; + integration_container = new CIntegration**[nZone]; + numerics_container = new CNumerics****[nZone]; + config_container = new CConfig*[nZone]; + geometry_container = new CGeometry**[nZone]; + surface_movement = new CSurfaceMovement*[nZone]; + grid_movement = new CVolumetricMovement*[nZone]; + FFDBox = new CFreeFormDefBox**[nZone]; + interpolator_container = new CInterpolator**[nZone]; + transfer_container = new CTransfer**[nZone]; for (iZone = 0; iZone < nZone; iZone++) { solver_container[iZone] = NULL; @@ -113,8 +113,8 @@ int main(int argc, char *argv[]) { surface_movement[iZone] = NULL; grid_movement[iZone] = NULL; FFDBox[iZone] = NULL; - interpolator_container[iZone] = NULL; - transfer_container[iZone] = NULL; + interpolator_container[iZone] = NULL; + transfer_container[iZone] = NULL; } /*--- Loop over all zones to initialize the various classes. In most diff --git a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj index d637384ce52..ef8b9c84148 100644 --- a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj @@ -77,6 +77,14 @@ E941BBAE1B71D564005C6C06 /* variable_adjoint_discrete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBAD1B71D564005C6C06 /* variable_adjoint_discrete.cpp */; }; E9AA98A71BB3436900B7FE37 /* driver_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9AA98A61BB3436900B7FE37 /* driver_structure.cpp */; }; E9D85B4C1C3F1B9E0077122F /* ad_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D85B4B1C3F1B9E0077122F /* ad_structure.cpp */; }; + E9D9CE861C62A1A7004119E9 /* interpolation_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE851C62A1A7004119E9 /* interpolation_structure.cpp */; }; + E9D9CE891C62A1C8004119E9 /* transfer_physics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE871C62A1C8004119E9 /* transfer_physics.cpp */; }; + E9D9CE8A1C62A1C8004119E9 /* transfer_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE881C62A1C8004119E9 /* transfer_structure.cpp */; }; + E9D9CE8C1C62A1FF004119E9 /* solver_fem_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8B1C62A1FF004119E9 /* solver_fem_elasticity.cpp */; }; + E9D9CE901C62A224004119E9 /* numerics_fem_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8D1C62A224004119E9 /* numerics_fem_elasticity.cpp */; }; + E9D9CE911C62A224004119E9 /* numerics_fem_linear_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8E1C62A224004119E9 /* numerics_fem_linear_elasticity.cpp */; }; + E9D9CE921C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8F1C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp */; }; + E9D9CE941C62A24F004119E9 /* variable_fem_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE931C62A24F004119E9 /* variable_fem_elasticity.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -307,6 +315,17 @@ E9D85B501C3F1BE00077122F /* element_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = element_structure.inl; path = ../../Common/include/element_structure.inl; sourceTree = ""; }; E9D85B511C3F1BE10077122F /* gauss_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = gauss_structure.hpp; path = ../../Common/include/gauss_structure.hpp; sourceTree = ""; }; E9D85B521C3F1BE10077122F /* gauss_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = gauss_structure.inl; path = ../../Common/include/gauss_structure.inl; sourceTree = ""; }; + E9D9CE851C62A1A7004119E9 /* interpolation_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = interpolation_structure.cpp; path = ../../Common/src/interpolation_structure.cpp; sourceTree = ""; }; + E9D9CE871C62A1C8004119E9 /* transfer_physics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = transfer_physics.cpp; path = ../../SU2_CFD/src/transfer_physics.cpp; sourceTree = ""; }; + E9D9CE881C62A1C8004119E9 /* transfer_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = transfer_structure.cpp; path = ../../SU2_CFD/src/transfer_structure.cpp; sourceTree = ""; }; + E9D9CE8B1C62A1FF004119E9 /* solver_fem_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = solver_fem_elasticity.cpp; path = ../../SU2_CFD/src/solver_fem_elasticity.cpp; sourceTree = ""; }; + E9D9CE8D1C62A224004119E9 /* numerics_fem_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_fem_elasticity.cpp; path = ../../SU2_CFD/src/numerics_fem_elasticity.cpp; sourceTree = ""; }; + E9D9CE8E1C62A224004119E9 /* numerics_fem_linear_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_fem_linear_elasticity.cpp; path = ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp; sourceTree = ""; }; + E9D9CE8F1C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_fem_nonlinear_elasticity.cpp; path = ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp; sourceTree = ""; }; + E9D9CE931C62A24F004119E9 /* variable_fem_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = variable_fem_elasticity.cpp; path = ../../SU2_CFD/src/variable_fem_elasticity.cpp; sourceTree = ""; }; + E9D9CE951C62A272004119E9 /* transfer_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = transfer_structure.hpp; path = ../../SU2_CFD/include/transfer_structure.hpp; sourceTree = ""; }; + E9D9CE961C62A272004119E9 /* transfer_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = transfer_structure.inl; path = ../../SU2_CFD/include/transfer_structure.inl; sourceTree = ""; }; + E9D9CE971C62A2A7004119E9 /* interpolation_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = interpolation_structure.hpp; path = ../../Common/include/interpolation_structure.hpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -328,6 +347,7 @@ 05E6DBFB17EB62A100FA1F7E /* variable_direct_turbulent.cpp */, 0530E56B17FDF7BD00733CE8 /* variable_direct_poisson.cpp */, 0530E56D17FDF7C600733CE8 /* variable_direct_elasticity.cpp */, + E9D9CE931C62A24F004119E9 /* variable_fem_elasticity.cpp */, 05E6DBF517EB62A100FA1F7E /* variable_direct_heat.cpp */, 05E6DBFA17EB62A100FA1F7E /* variable_direct_transition.cpp */, 05E6DBFC17EB62A100FA1F7E /* variable_direct_wave.cpp */, @@ -348,6 +368,7 @@ 05E6DBE617EB62A100FA1F7E /* solver_direct_turbulent.cpp */, 0530E56717FDF79500733CE8 /* solver_direct_poisson.cpp */, 0530E56917FDF7AC00733CE8 /* solver_direct_elasticity.cpp */, + E9D9CE8B1C62A1FF004119E9 /* solver_fem_elasticity.cpp */, 05E6DBE017EB62A100FA1F7E /* solver_direct_heat.cpp */, 05E6DBE517EB62A100FA1F7E /* solver_direct_transition.cpp */, 05E6DBE717EB62A100FA1F7E /* solver_direct_wave.cpp */, @@ -428,6 +449,7 @@ 05E6DAA717EB603F00FA1F7E /* vector_structure.inl */, 05E6DBB017EB624700FA1F7E /* integration_structure.inl */, 05E6DBB117EB624700FA1F7E /* numerics_structure.inl */, + E9D9CE961C62A272004119E9 /* transfer_structure.inl */, ); name = InLine; sourceTree = ""; @@ -463,6 +485,8 @@ 05E6DACD17EB608000FA1F7E /* primal_grid_structure.hpp */, 05E6DACE17EB608000FA1F7E /* vector_structure.hpp */, 05E6DBB717EB627400FA1F7E /* numerics_structure.hpp */, + E9D9CE951C62A272004119E9 /* transfer_structure.hpp */, + E9D9CE971C62A2A7004119E9 /* interpolation_structure.hpp */, ); name = Include; sourceTree = ""; @@ -484,6 +508,9 @@ 05E6DBCF17EB62A100FA1F7E /* numerics_direct_turbulent.cpp */, 0530E57117FDF7D800733CE8 /* numerics_direct_poisson.cpp */, 0530E56F17FDF7D300733CE8 /* numerics_direct_elasticity.cpp */, + E9D9CE8D1C62A224004119E9 /* numerics_fem_elasticity.cpp */, + E9D9CE8E1C62A224004119E9 /* numerics_fem_linear_elasticity.cpp */, + E9D9CE8F1C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp */, 05E6DBC917EB62A100FA1F7E /* numerics_direct_heat.cpp */, 05E6DBCE17EB62A100FA1F7E /* numerics_direct_transition.cpp */, 05E6DBD017EB62A100FA1F7E /* numerics_direct_wave.cpp */, @@ -550,6 +577,7 @@ 05D28619178BCA1200DD76AE /* Numerics */, 05F108951978D28F00F2F288 /* FluidModel */, 05F108A21978D2E500F2F288 /* TransportModel */, + E9D9CE841C62A16D004119E9 /* MultiZone */, ); name = Source; sourceTree = ""; @@ -1321,6 +1349,16 @@ path = ../../Common/include/datatypes; sourceTree = ""; }; + E9D9CE841C62A16D004119E9 /* MultiZone */ = { + isa = PBXGroup; + children = ( + E9D9CE881C62A1C8004119E9 /* transfer_structure.cpp */, + E9D9CE871C62A1C8004119E9 /* transfer_physics.cpp */, + E9D9CE851C62A1A7004119E9 /* interpolation_structure.cpp */, + ); + name = MultiZone; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -1374,6 +1412,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E9D9CE8A1C62A1C8004119E9 /* transfer_structure.cpp in Sources */, 05E6DB9217EB61E600FA1F7E /* config_structure.cpp in Sources */, 05755F0A1A54AC4500600019 /* output_su2.cpp in Sources */, 05E6DB9317EB61E600FA1F7E /* dual_grid_structure.cpp in Sources */, @@ -1391,6 +1430,7 @@ 05E6DC0117EB62A100FA1F7E /* definition_structure.cpp in Sources */, 05E6DC0317EB62A100FA1F7E /* integration_structure.cpp in Sources */, E941BBAE1B71D564005C6C06 /* variable_adjoint_discrete.cpp in Sources */, + E9D9CE8C1C62A1FF004119E9 /* solver_fem_elasticity.cpp in Sources */, 05E6DC0417EB62A100FA1F7E /* integration_time.cpp in Sources */, 05F1089B1978D2AE00F2F288 /* fluid_model_ppr.cpp in Sources */, 0530E57217FDF7D800733CE8 /* numerics_direct_poisson.cpp in Sources */, @@ -1408,6 +1448,7 @@ 05E6DC1017EB62A100FA1F7E /* numerics_direct_mean.cpp in Sources */, E9D85B4C1C3F1B9E0077122F /* ad_structure.cpp in Sources */, 0530E56E17FDF7C600733CE8 /* variable_direct_elasticity.cpp in Sources */, + E9D9CE901C62A224004119E9 /* numerics_fem_elasticity.cpp in Sources */, 05F1089D1978D2AE00F2F288 /* fluid_model.cpp in Sources */, 05E6DC1317EB62A100FA1F7E /* numerics_direct_transition.cpp in Sources */, 0506980A1AA6179100FF4F07 /* output_fieldview.cpp in Sources */, @@ -1420,8 +1461,11 @@ 05E6DC1C17EB62A100FA1F7E /* output_structure.cpp in Sources */, 0530E56C17FDF7BD00733CE8 /* variable_direct_poisson.cpp in Sources */, 05E6DC1D17EB62A100FA1F7E /* output_tecplot.cpp in Sources */, + E9D9CE861C62A1A7004119E9 /* interpolation_structure.cpp in Sources */, 05E6DC1E17EB62A100FA1F7E /* solver_adjoint_levelset.cpp in Sources */, 05F1089C1978D2AE00F2F288 /* fluid_model_pvdw.cpp in Sources */, + E9D9CE911C62A224004119E9 /* numerics_fem_linear_elasticity.cpp in Sources */, + E9D9CE941C62A24F004119E9 /* variable_fem_elasticity.cpp in Sources */, 05E6DC1F17EB62A100FA1F7E /* solver_adjoint_mean.cpp in Sources */, 05E6DC2217EB62A100FA1F7E /* solver_adjoint_turbulent.cpp in Sources */, 05E6DC2517EB62A100FA1F7E /* solver_direct_heat.cpp in Sources */, @@ -1441,9 +1485,11 @@ 05E6DC3F17EB62A100FA1F7E /* variable_direct_transition.cpp in Sources */, 05E6DC4017EB62A100FA1F7E /* variable_direct_turbulent.cpp in Sources */, 05E6DC4117EB62A100FA1F7E /* variable_direct_wave.cpp in Sources */, + E9D9CE891C62A1C8004119E9 /* transfer_physics.cpp in Sources */, E941BB931B71D124005C6C06 /* linear_solvers_structure_b.cpp in Sources */, 05E6DC4417EB62A100FA1F7E /* variable_structure.cpp in Sources */, 05E6DC4517EB62A100FA1F7E /* variable_template.cpp in Sources */, + E9D9CE921C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; From fa84c7ec474f482b942653286b18fcbf79a96a68 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Wed, 3 Feb 2016 14:35:30 -0800 Subject: [PATCH 190/269] Memory fixes for the discrete adjoint on LLVM compilers. Python and output fixes for scripts. --- Common/src/config_structure.cpp | 2 + Common/src/interpolation_structure.cpp | 32 ++- QuickStart/inv_NACA0012.cfg | 2 +- SU2_PY/SU2/run/direct.py | 8 +- SU2_PY/SU2/run/merge.py | 2 +- SU2_SOL/src/SU2_SOL.cpp | 366 +++++++++++++------------ 6 files changed, 221 insertions(+), 191 deletions(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index be23ff6f74d..13976512b1b 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1643,6 +1643,8 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ if (Dynamic_Analysis == STATIC) { Wrt_Dynamic = false; } else { Wrt_Dynamic = true; } + } else { + Wrt_Dynamic = false; } diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 32821bbd733..7ac80704b0d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -414,7 +414,7 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ delete[] Buffer_Send_nVertex_Donor; delete[] Buffer_Receive_nVertex_Donor; - } + } } @@ -463,7 +463,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ su2double dist = 0.0, mindist=1E6, *Coord, *Coord_i; su2double myCoeff[10]; // Maximum # of donor points su2double *Normal; - su2double projected_point[nDim]; + su2double *projected_point = new su2double[nDim]; su2double tmp, tmp2; su2double storeCoeff[10]; unsigned long storeGlobal[10]; @@ -687,7 +687,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ nNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1] - Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; - su2double X[nNodes*nDim]; + su2double *X = new su2double[nNodes*nDim]; faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; // first index of this face for (iDonor=0; iDonorSetVertex(config_container[iZone]); } - - /*--- Determine whether the simulation is a FSI simulation ---*/ - - bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); + + /*--- Determine whether the simulation is a FSI simulation ---*/ + + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); /*--- Set up a timer for performance benchmarking (preprocessing time is included) ---*/ @@ -144,112 +144,112 @@ int main(int argc, char *argv[]) { /*--- Definition of the output class (one for all the zones) ---*/ output = new COutput(); - /*--- Check whether this is an FSI, fluid unsteady, time spectral or structural dynamic simulation and call the - solution merging routines accordingly.---*/ - - if (fsi){ - - if (nZone < 2){ - cout << "For multizone computations, please add the number of zones as a second argument for SU2_SOL. " << endl; - exit(EXIT_FAILURE); - } - - su2double Physical_dt, Physical_t; - unsigned long iExtIter = 0, iExtIterFlow = 0, iExtIterFEM = 0; - bool StopCalc = false; - bool SolutionInstantiatedFlow = false, SolutionInstantiatedFEM = false; - - /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetRestart()){ - iExtIterFlow = config_container[ZONE_0]->GetUnst_RestartIter(); - iExtIterFEM = config_container[ZONE_1]->GetDyn_RestartIter(); - if (iExtIterFlow != iExtIterFEM) { - if (rank == MASTER_NODE) cout << "The restart iteration is different from Flow to Structure!!" << endl; - exit(EXIT_FAILURE); - } - else { - iExtIter = iExtIterFlow; - } - } - - - while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { - - /*--- Check several conditions in order to merge the correct time step files. ---*/ - - Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); - Physical_t = (iExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) - StopCalc = true; - - if ( - ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || - ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0) && - !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || - (StopCalc) || - (((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) && - ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) - - && - - ((iExtIter+1 == config_container[ZONE_1]->GetnExtIter()) || - (StopCalc) || - ((config_container[ZONE_1]->GetDynamic_Analysis() == DYNAMIC) && - ((iExtIter == 0) || (iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0)))) - - ){ - - /*--- Set the current iteration number in the config class. ---*/ - config_container[ZONE_0]->SetExtIter(iExtIter); - config_container[ZONE_1]->SetExtIter(iExtIter); - - /*--- Read in the restart file for this time step ---*/ - - /*--- For the fluid zone (ZONE_0) ---*/ - /*--- Either instantiate the solution class or load a restart file. ---*/ - if (SolutionInstantiatedFlow == false && (iExtIter == 0 || - ((config_container[ZONE_0]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_0]->GetUnst_RestartIter())) || - iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || - iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { - solver_container[ZONE_0] = new CBaselineSolver(geometry_container[ZONE_0], config_container[ZONE_0], MESH_0); - SolutionInstantiatedFlow = true; - } - else{ - solver_container[ZONE_0]->LoadRestart_FSI(geometry_container[ZONE_0], &solver_container, config_container[ZONE_0], SU2_TYPE::Int(MESH_0)); - } - - - /*--- For the structural zone (ZONE_1) ---*/ - /*--- Either instantiate the solution class or load a restart file. ---*/ - /*--- Either instantiate the solution class or load a restart file. ---*/ - if (SolutionInstantiatedFEM == false && (iExtIter == 0 || - ((config_container[ZONE_1]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_1]->GetDyn_RestartIter())) || - iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0 || - iExtIter+1 == config_container[ZONE_1]->GetnExtIter()))) { - solver_container[ZONE_1] = new CBaselineSolver(geometry_container[ZONE_1], config_container[ZONE_1], MESH_0); - SolutionInstantiatedFEM = true; - } - else { - solver_container[ZONE_1]->LoadRestart_FSI(geometry_container[ZONE_1], &solver_container, config_container[ZONE_1], SU2_TYPE::Int(MESH_0)); - } - - if (rank == MASTER_NODE) cout << "Writing the volume solution for time step " << iExtIter << "." << endl; - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); - } - - iExtIter++; - if (StopCalc) break; - } - - } + /*--- Check whether this is an FSI, fluid unsteady, time spectral or structural dynamic simulation and call the + solution merging routines accordingly.---*/ + + if (fsi){ + + if (nZone < 2){ + cout << "For multizone computations, please add the number of zones as a second argument for SU2_SOL. " << endl; + exit(EXIT_FAILURE); + } + + su2double Physical_dt, Physical_t; + unsigned long iExtIter = 0, iExtIterFlow = 0, iExtIterFEM = 0; + bool StopCalc = false; + bool SolutionInstantiatedFlow = false, SolutionInstantiatedFEM = false; + + /*--- Check for an unsteady restart. Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetRestart()){ + iExtIterFlow = config_container[ZONE_0]->GetUnst_RestartIter(); + iExtIterFEM = config_container[ZONE_1]->GetDyn_RestartIter(); + if (iExtIterFlow != iExtIterFEM) { + if (rank == MASTER_NODE) cout << "The restart iteration is different from Flow to Structure!!" << endl; + exit(EXIT_FAILURE); + } + else { + iExtIter = iExtIterFlow; + } + } + + + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Check several conditions in order to merge the correct time step files. ---*/ + + Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) + StopCalc = true; + + if ( + ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || + ((iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq() == 0) && (iExtIter != 0) && + !((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND))) || + (StopCalc) || + (((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || + (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) + + && + + ((iExtIter+1 == config_container[ZONE_1]->GetnExtIter()) || + (StopCalc) || + ((config_container[ZONE_1]->GetDynamic_Analysis() == DYNAMIC) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0)))) + + ){ + + /*--- Set the current iteration number in the config class. ---*/ + config_container[ZONE_0]->SetExtIter(iExtIter); + config_container[ZONE_1]->SetExtIter(iExtIter); + + /*--- Read in the restart file for this time step ---*/ + + /*--- For the fluid zone (ZONE_0) ---*/ + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiatedFlow == false && (iExtIter == 0 || + ((config_container[ZONE_0]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_0]->GetUnst_RestartIter())) || + iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { + solver_container[ZONE_0] = new CBaselineSolver(geometry_container[ZONE_0], config_container[ZONE_0], MESH_0); + SolutionInstantiatedFlow = true; + } + else{ + solver_container[ZONE_0]->LoadRestart_FSI(geometry_container[ZONE_0], &solver_container, config_container[ZONE_0], SU2_TYPE::Int(MESH_0)); + } + + + /*--- For the structural zone (ZONE_1) ---*/ + /*--- Either instantiate the solution class or load a restart file. ---*/ + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiatedFEM == false && (iExtIter == 0 || + ((config_container[ZONE_1]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_1]->GetDyn_RestartIter())) || + iExtIter % config_container[ZONE_1]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_1]->GetnExtIter()))) { + solver_container[ZONE_1] = new CBaselineSolver(geometry_container[ZONE_1], config_container[ZONE_1], MESH_0); + SolutionInstantiatedFEM = true; + } + else { + solver_container[ZONE_1]->LoadRestart_FSI(geometry_container[ZONE_1], &solver_container, config_container[ZONE_1], SU2_TYPE::Int(MESH_0)); + } + + if (rank == MASTER_NODE) cout << "Writing the volume solution for time step " << iExtIter << "." << endl; + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); + } + + iExtIter++; + if (StopCalc) break; + } + + } else { if (config_container[ZONE_0]->GetWrt_Unsteady()) { /*--- Unsteady simulation: merge all unsteady time steps. First, - find the frequency and total number of files to write. ---*/ + find the frequency and total number of files to write. ---*/ su2double Physical_dt, Physical_t; unsigned long iExtIter = 0; @@ -304,7 +304,9 @@ int main(int argc, char *argv[]) { if (StopCalc) break; } - } else if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) { + } + + else if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) { /*--- Time-spectral simulation: merge files for each time instance (each zone). ---*/ unsigned short nTimeSpectral = config_container[ZONE_0]->GetnTimeInstances(); @@ -332,80 +334,84 @@ int main(int argc, char *argv[]) { output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iTimeSpectral, nZone); } - } else if (config_container[ZONE_0]->GetWrt_Dynamic()){ - - /*--- Dynamic simulation: merge all unsteady time steps. First, - find the frequency and total number of files to write. ---*/ - - su2double Physical_dt, Physical_t; - unsigned long iExtIter = 0; - bool StopCalc = false; - bool SolutionInstantiated = false; - - - /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ - if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && - config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) - iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); - - while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { - - /*--- Check several conditions in order to merge the correct time step files. ---*/ - /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ - - Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); - Physical_t = (iExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) - StopCalc = true; - - if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || - (StopCalc) || - ((config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC) && - ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) { - - /*--- Set the current iteration number in the config class. ---*/ - config_container[ZONE_0]->SetExtIter(iExtIter); - - /*--- Read in the restart file for this time step ---*/ - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Either instantiate the solution class or load a restart file. ---*/ - if (SolutionInstantiated == false && (iExtIter == 0 || - ((config_container[ZONE_0]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_0]->GetDyn_RestartIter())) || - iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || - iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { - solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); - SolutionInstantiated = true; - } - else{ - solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); - } - } - - if (rank == MASTER_NODE) - cout << "Writing the volume solution for time step " << iExtIter << "." << endl; - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); - } - - iExtIter++; - if (StopCalc) break; + } + + else if (config_container[ZONE_0]->GetWrt_Dynamic()){ + + /*--- Dynamic simulation: merge all unsteady time steps. First, + find the frequency and total number of files to write. ---*/ + + su2double Physical_dt, Physical_t; + unsigned long iExtIter = 0; + bool StopCalc = false; + bool SolutionInstantiated = false; + + + /*--- Check for an dynamic restart (structural analysis). Update ExtIter if necessary. ---*/ + if (config_container[ZONE_0]->GetKind_Solver() == FEM_ELASTICITY && + config_container[ZONE_0]->GetWrt_Dynamic() && config_container[ZONE_0]->GetRestart()) + iExtIter = config_container[ZONE_0]->GetDyn_RestartIter(); + + while (iExtIter < config_container[ZONE_0]->GetnExtIter()) { + + /*--- Check several conditions in order to merge the correct time step files. ---*/ + /*--- If the solver is structural, the total and delta_t are obtained from different functions. ---*/ + + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); + Physical_t = (iExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) + StopCalc = true; + + if ((iExtIter+1 == config_container[ZONE_0]->GetnExtIter()) || + (StopCalc) || + ((config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC) && + ((iExtIter == 0) || (iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0)))) { + + /*--- Set the current iteration number in the config class. ---*/ + config_container[ZONE_0]->SetExtIter(iExtIter); + + /*--- Read in the restart file for this time step ---*/ + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Either instantiate the solution class or load a restart file. ---*/ + if (SolutionInstantiated == false && (iExtIter == 0 || + ((config_container[ZONE_0]->GetRestart() && (SU2_TYPE::Int(iExtIter) == config_container[ZONE_0]->GetDyn_RestartIter())) || + iExtIter % config_container[ZONE_0]->GetWrt_Sol_Freq_DualTime() == 0 || + iExtIter+1 == config_container[ZONE_0]->GetnExtIter()))) { + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + SolutionInstantiated = true; + } + else{ + solver_container[iZone]->LoadRestart(geometry_container, &solver_container, config_container[iZone], SU2_TYPE::Int(MESH_0)); + } + } + + if (rank == MASTER_NODE) + cout << "Writing the volume solution for time step " << iExtIter << "." << endl; + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, iExtIter, nZone); + } + + iExtIter++; + if (StopCalc) break; } - } else { - - /*--- Steady simulation: merge the single solution file. ---*/ - - for (iZone = 0; iZone < nZone; iZone++) { - /*--- Definition of the solution class ---*/ - solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); - } - - output->SetBaselineResult_Files(solver_container, geometry_container, config_container, 0, nZone); - - } - + } + + else { + + /*--- Steady simulation: merge the single solution file. ---*/ + + for (iZone = 0; iZone < nZone; iZone++) { + /*--- Definition of the solution class ---*/ + solver_container[iZone] = new CBaselineSolver(geometry_container[iZone], config_container[iZone], MESH_0); + } + + output->SetBaselineResult_Files(solver_container, geometry_container, config_container, 0, nZone); + + } + } - + /*--- Synchronization point after a single solver iteration. Compute the wall clock time required. ---*/ From ad318626b0d23cbbde66755f74f156314aac52ad Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Wed, 3 Feb 2016 14:37:27 -0800 Subject: [PATCH 191/269] Small change. --- QuickStart/inv_NACA0012.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuickStart/inv_NACA0012.cfg b/QuickStart/inv_NACA0012.cfg index f3b978469c5..deaf3389a7f 100644 --- a/QuickStart/inv_NACA0012.cfg +++ b/QuickStart/inv_NACA0012.cfg @@ -98,7 +98,7 @@ OBJECTIVE_FUNCTION= DRAG CFL_NUMBER= 4.0 % % Number of total iterations -EXT_ITER= 5 +EXT_ITER= 250 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % From 5c5a89d873113203c316a59b7a9ed2f1630a0e5d Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 4 Feb 2016 14:50:44 -0800 Subject: [PATCH 192/269] Makefile update to not recompile SU2_CFD-*.o files in SU2_SOL --- SU2_SOL/obj/Makefile.am | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/SU2_SOL/obj/Makefile.am b/SU2_SOL/obj/Makefile.am index 05d893a6f12..5bc2b4d6f61 100644 --- a/SU2_SOL/obj/Makefile.am +++ b/SU2_SOL/obj/Makefile.am @@ -37,22 +37,21 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} bin_PROGRAMS = ../bin/SU2_SOL ___bin_SU2_SOL_SOURCES = \ - ../include/SU2_SOL.hpp \ - ../src/SU2_SOL.cpp \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ ../../SU2_CFD/include/solver_structure.hpp \ ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/src/variable_structure.cpp + ../include/SU2_SOL.hpp \ + ../src/SU2_SOL.cpp ___bin_SU2_SOL_CXXFLAGS = -___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a +___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o + # always link to built dependencies from ./externals ___bin_SU2_SOL_CXXFLAGS += @su2_externals_INCLUDES@ From d1918a9ac970044a452e328bd072ae1112fcb2ab Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 4 Feb 2016 14:52:08 -0800 Subject: [PATCH 193/269] after running bootstrap (updates Makefile.in) --- Common/lib/Makefile.in | 132 +++++++----- Makefile.in | 223 +++++++++++--------- SU2_CFD/obj/Makefile.in | 161 +++++++++------ SU2_DEF/obj/Makefile.in | 159 ++++++++------ SU2_DOT/obj/Makefile.in | 160 ++++++++------ SU2_GEO/obj/Makefile.in | 159 ++++++++------ SU2_MSH/obj/Makefile.in | 159 ++++++++------ SU2_PY/Makefile.in | 92 ++++++--- SU2_SOL/obj/Makefile.in | 368 +++++++++++++-------------------- externals/Makefile.in | 187 +++++++++-------- externals/metis/Makefile.in | 132 +++++++----- externals/parmetis/Makefile.in | 132 +++++++----- externals/tecio/Makefile.in | 132 +++++++----- 13 files changed, 1241 insertions(+), 955 deletions(-) diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index b7f52494acf..0dc02ed1713 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -88,7 +116,7 @@ target_triplet = @target@ @BUILD_DIRECTDIFF_TRUE@am__append_2 = libSU2_DIRECTDIFF.a @BUILD_REVERSE_TRUE@am__append_3 = libSU2_AD.a subdir = Common/lib -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -349,6 +377,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -650,6 +695,7 @@ clean-noinstLIBRARIES: ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) + libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2.a $(AM_V_AR)$(libSU2_a_AR) libSU2.a $(libSU2_a_OBJECTS) $(libSU2_a_LIBADD) @@ -686,6 +732,7 @@ libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDEN ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) + libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_AD_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2_AD.a $(AM_V_AR)$(libSU2_AD_a_AR) libSU2_AD.a $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_LIBADD) @@ -722,6 +769,7 @@ libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_A ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) + libSU2_DIRECTDIFF.a: $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_DEPENDENCIES) $(EXTRA_libSU2_DIRECTDIFF_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2_DIRECTDIFF.a $(AM_V_AR)$(libSU2_DIRECTDIFF_a_AR) libSU2_DIRECTDIFF.a $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_LIBADD) @@ -1471,26 +1519,15 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1502,15 +1539,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1519,9 +1552,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1674,8 +1708,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1684,7 +1718,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am diff --git a/Makefile.in b/Makefile.in index 64b94487ea4..e12b95e3bc1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -47,23 +47,51 @@ # ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -90,8 +118,8 @@ target_triplet = @target@ @BUILD_SOL_TRUE@am__append_5 = SU2_SOL/obj @BUILD_GEO_TRUE@am__append_6 = SU2_GEO/obj subdir = . -DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) COPYING INSTALL \ compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -119,13 +147,14 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -133,9 +162,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope @@ -366,14 +415,13 @@ $(am__aclocal_m4_deps): # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. -$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ @@ -394,31 +442,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -cscopelist-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -434,12 +464,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -451,15 +476,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -468,18 +489,16 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" - cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) - clean-cscope: -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive -cscope.files: clean-cscope cscopelist-recursive cscopelist - -cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -577,10 +596,16 @@ dist-xz: distdir $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -622,9 +647,10 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -781,25 +807,22 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ - cscopelist-recursive ctags-recursive install-am install-strip \ - tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-cscope \ - clean-generic cscope cscopelist cscopelist-recursive ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzip \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-generic distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-recursive uninstall uninstall-am +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index d070775a0bd..dda85217598 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -89,7 +117,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) @BUILD_DIRECTDIFF_TRUE@am__append_2 = ../bin/SU2_CFD_DIRECTDIFF @BUILD_REVERSE_TRUE@am__append_3 = ../bin/SU2_CFD_AD subdir = SU2_CFD/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -569,6 +597,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -866,10 +911,11 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -890,7 +936,8 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -1030,6 +1077,7 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) + ../bin/SU2_CFD$(EXEEXT): $(___bin_SU2_CFD_OBJECTS) $(___bin_SU2_CFD_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_LINK) $(___bin_SU2_CFD_OBJECTS) $(___bin_SU2_CFD_LDADD) $(LIBS) @@ -1157,6 +1205,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) + ../bin/SU2_CFD_AD$(EXEEXT): $(___bin_SU2_CFD_AD_OBJECTS) $(___bin_SU2_CFD_AD_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_AD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD_AD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_AD_LINK) $(___bin_SU2_CFD_AD_OBJECTS) $(___bin_SU2_CFD_AD_LDADD) $(LIBS) @@ -1284,6 +1333,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) + ../bin/SU2_CFD_DIRECTDIFF$(EXEEXT): $(___bin_SU2_CFD_DIRECTDIFF_OBJECTS) $(___bin_SU2_CFD_DIRECTDIFF_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_DIRECTDIFF_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD_DIRECTDIFF$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_DIRECTDIFF_LINK) $(___bin_SU2_CFD_DIRECTDIFF_OBJECTS) $(___bin_SU2_CFD_DIRECTDIFF_LDADD) $(LIBS) @@ -4102,26 +4152,15 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.obj `if test -f '../src/variable_template.cpp'; then $(CYGPATH_W) '../src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_template.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -4133,15 +4172,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -4150,9 +4185,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -4309,18 +4345,19 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index cac57d3b19c..0bd859e3b57 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,7 +114,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_DEF$(EXEEXT) subdir = SU2_DEF/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -166,6 +194,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -383,10 +428,11 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -407,7 +453,8 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -425,6 +472,7 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) + ../bin/SU2_DEF$(EXEEXT): $(___bin_SU2_DEF_OBJECTS) $(___bin_SU2_DEF_DEPENDENCIES) $(EXTRA____bin_SU2_DEF_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DEF$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DEF_LINK) $(___bin_SU2_DEF_OBJECTS) $(___bin_SU2_DEF_LDADD) $(LIBS) @@ -468,26 +516,15 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DEF-SU2_DEF.obj `if test -f '../src/SU2_DEF.cpp'; then $(CYGPATH_W) '../src/SU2_DEF.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DEF.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -499,15 +536,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -516,9 +549,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -675,18 +709,19 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS # endif diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index 3008d469426..e5f86107cd9 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -88,7 +116,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @BUILD_NORMAL_TRUE@am__append_1 = ../bin/SU2_DOT @BUILD_REVERSE_TRUE@am__append_2 = ../bin/SU2_DOT_AD subdir = SU2_DOT/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -179,6 +207,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -393,10 +438,11 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -417,7 +463,8 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -435,11 +482,13 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) + ../bin/SU2_DOT$(EXEEXT): $(___bin_SU2_DOT_OBJECTS) $(___bin_SU2_DOT_DEPENDENCIES) $(EXTRA____bin_SU2_DOT_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DOT$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DOT_LINK) $(___bin_SU2_DOT_OBJECTS) $(___bin_SU2_DOT_LDADD) $(LIBS) ../src/___bin_SU2_DOT_AD-SU2_DOT.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) + ../bin/SU2_DOT_AD$(EXEEXT): $(___bin_SU2_DOT_AD_OBJECTS) $(___bin_SU2_DOT_AD_DEPENDENCIES) $(EXTRA____bin_SU2_DOT_AD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DOT_AD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DOT_AD_LINK) $(___bin_SU2_DOT_AD_OBJECTS) $(___bin_SU2_DOT_AD_LDADD) $(LIBS) @@ -498,26 +547,15 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DOT_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DOT_AD-SU2_DOT.obj `if test -f '../src/SU2_DOT.cpp'; then $(CYGPATH_W) '../src/SU2_DOT.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DOT.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -529,15 +567,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -546,9 +580,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -705,18 +740,19 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 3b67fb7494e..1c2036f83db 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,7 +114,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_GEO$(EXEEXT) subdir = SU2_GEO/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -158,6 +186,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -367,10 +412,11 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -391,7 +437,8 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -409,6 +456,7 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) + ../bin/SU2_GEO$(EXEEXT): $(___bin_SU2_GEO_OBJECTS) $(___bin_SU2_GEO_DEPENDENCIES) $(EXTRA____bin_SU2_GEO_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_GEO$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_GEO_LINK) $(___bin_SU2_GEO_OBJECTS) $(___bin_SU2_GEO_LDADD) $(LIBS) @@ -452,26 +500,15 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_GEO_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_GEO-SU2_GEO.obj `if test -f '../src/SU2_GEO.cpp'; then $(CYGPATH_W) '../src/SU2_GEO.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_GEO.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -483,15 +520,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -500,9 +533,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -659,18 +693,19 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS # endif diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index d8197c2c839..3e7471064bd 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,7 +114,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_MSH$(EXEEXT) subdir = SU2_MSH/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -158,6 +186,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -367,10 +412,11 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -391,7 +437,8 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -409,6 +456,7 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) + ../bin/SU2_MSH$(EXEEXT): $(___bin_SU2_MSH_OBJECTS) $(___bin_SU2_MSH_DEPENDENCIES) $(EXTRA____bin_SU2_MSH_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_MSH$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_MSH_LINK) $(___bin_SU2_MSH_OBJECTS) $(___bin_SU2_MSH_LDADD) $(LIBS) @@ -452,26 +500,15 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_MSH_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_MSH-SU2_MSH.obj `if test -f '../src/SU2_MSH.cpp'; then $(CYGPATH_W) '../src/SU2_MSH.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_MSH.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -483,15 +520,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -500,9 +533,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -659,18 +693,19 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS # endif diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index 3d43f5b0b11..97f40ccf439 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -49,23 +49,51 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,8 +114,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = SU2_PY -DIST_COMMON = $(nobase_dist_mypkg_DATA) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(nobase_dist_mypkg_DATA) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -147,6 +175,7 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(nobase_dist_mypkg_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -432,11 +461,9 @@ uninstall-nobase_dist_mypkgDATA: @list='$(nobase_dist_mypkg_DATA)'; test -n "$(mypkgdir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(mypkgdir)'; $(am__uninstall_files_from_dir) -tags: TAGS -TAGS: +tags TAGS: -ctags: CTAGS -CTAGS: +ctags CTAGS: cscope cscopelist: @@ -576,16 +603,17 @@ uninstall-am: uninstall-binSCRIPTS uninstall-nobase_dist_mypkgDATA .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-binSCRIPTS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-nobase_dist_mypkgDATA \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-binSCRIPTS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-nobase_dist_mypkgDATA install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-nobase_dist_mypkgDATA diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 50b0cb38ebe..a75373256e4 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,23 +48,51 @@ ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -86,7 +114,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_SOL$(EXEEXT) subdir = SU2_SOL/obj -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -101,17 +129,18 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp -am____bin_SU2_SOL_OBJECTS = ../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.$(OBJEXT) \ +am____bin_SU2_SOL_OBJECTS = \ ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.$(OBJEXT) \ - ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.$(OBJEXT) + ../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT) ___bin_SU2_SOL_OBJECTS = $(am____bin_SU2_SOL_OBJECTS) -___bin_SU2_SOL_DEPENDENCIES = ../../Common/lib/libSU2.a +___bin_SU2_SOL_DEPENDENCIES = ../../Common/lib/libSU2.a \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o ___bin_SU2_SOL_LINK = $(CXXLD) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -166,6 +195,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -304,19 +350,10 @@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} ___bin_SU2_SOL_SOURCES = \ - ../include/SU2_SOL.hpp \ - ../src/SU2_SOL.cpp \ - ../../SU2_CFD/include/output_structure.hpp \ - ../../SU2_CFD/src/output_structure.cpp \ - ../../SU2_CFD/src/output_cgns.cpp \ - ../../SU2_CFD/src/output_tecplot.cpp \ - ../../SU2_CFD/src/output_fieldview.cpp \ - ../../SU2_CFD/src/output_su2.cpp \ - ../../SU2_CFD/src/output_paraview.cpp \ ../../SU2_CFD/include/solver_structure.hpp \ ../../SU2_CFD/src/solver_structure.cpp \ - ../../SU2_CFD/include/variable_structure.hpp \ - ../../SU2_CFD/src/variable_structure.cpp + ../include/SU2_SOL.hpp \ + ../src/SU2_SOL.cpp # always link to built dependencies from ./externals @@ -340,9 +377,16 @@ ___bin_SU2_SOL_SOURCES = \ ___bin_SU2_SOL_CXXFLAGS = @su2_externals_INCLUDES@ @CGNS_CXX@ \ @HDF5_CXX@ @SZIP_CXX@ @ZLIB_CXX@ @MUTATIONPP_CXX@ \ @JSONCPP_CXX@ $(am__empty) -___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a @su2_externals_LIBS@ \ - @CGNS_LD@ @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ @MUTATIONPP_LD@ \ - @JSONCPP_LD@ $(am__empty) +___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + @su2_externals_LIBS@ @CGNS_LD@ @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ \ + @MUTATIONPP_LD@ @JSONCPP_LD@ $(am__empty) all: all-am .SUFFIXES: @@ -386,10 +430,11 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -410,54 +455,35 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -../src/$(am__dirstamp): - @$(MKDIR_P) ../src - @: > ../src/$(am__dirstamp) -../src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../src/$(DEPDIR) - @: > ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT): ../src/$(am__dirstamp) \ - ../src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/$(am__dirstamp): @$(MKDIR_P) ../../SU2_CFD/src @: > ../../SU2_CFD/src/$(am__dirstamp) ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-output_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-output_su2.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.$(OBJEXT): \ ../../SU2_CFD/src/$(am__dirstamp) \ ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) +../src/$(am__dirstamp): + @$(MKDIR_P) ../src + @: > ../src/$(am__dirstamp) +../src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../src/$(DEPDIR) + @: > ../src/$(DEPDIR)/$(am__dirstamp) +../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT): ../src/$(am__dirstamp) \ + ../src/$(DEPDIR)/$(am__dirstamp) ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) + ../bin/SU2_SOL$(EXEEXT): $(___bin_SU2_SOL_OBJECTS) $(___bin_SU2_SOL_DEPENDENCIES) $(EXTRA____bin_SU2_SOL_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_SOL$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_SOL_LINK) $(___bin_SU2_SOL_OBJECTS) $(___bin_SU2_SOL_LDADD) $(LIBS) @@ -470,14 +496,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po@am__quote@ .cpp.o: @@ -496,104 +515,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -../src/___bin_SU2_SOL-SU2_SOL.o: ../src/SU2_SOL.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_SOL-SU2_SOL.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo -c -o ../src/___bin_SU2_SOL-SU2_SOL.o `test -f '../src/SU2_SOL.cpp' || echo '$(srcdir)/'`../src/SU2_SOL.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_SOL.cpp' object='../src/___bin_SU2_SOL-SU2_SOL.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_SOL-SU2_SOL.o `test -f '../src/SU2_SOL.cpp' || echo '$(srcdir)/'`../src/SU2_SOL.cpp - -../src/___bin_SU2_SOL-SU2_SOL.obj: ../src/SU2_SOL.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_SOL-SU2_SOL.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo -c -o ../src/___bin_SU2_SOL-SU2_SOL.obj `if test -f '../src/SU2_SOL.cpp'; then $(CYGPATH_W) '../src/SU2_SOL.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_SOL.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_SOL.cpp' object='../src/___bin_SU2_SOL-SU2_SOL.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_SOL-SU2_SOL.obj `if test -f '../src/SU2_SOL.cpp'; then $(CYGPATH_W) '../src/SU2_SOL.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_SOL.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_SOL-output_structure.o: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.o `test -f '../../SU2_CFD/src/output_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_structure.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-output_structure.obj: ../../SU2_CFD/src/output_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_structure.obj `if test -f '../../SU2_CFD/src/output_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_structure.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.o: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.o `test -f '../../SU2_CFD/src/output_cgns.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_cgns.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.obj: ../../SU2_CFD/src/output_cgns.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_cgns.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_cgns.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_cgns.obj `if test -f '../../SU2_CFD/src/output_cgns.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_cgns.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_cgns.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.o: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.o `test -f '../../SU2_CFD/src/output_tecplot.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_tecplot.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.obj: ../../SU2_CFD/src/output_tecplot.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_tecplot.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_tecplot.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_tecplot.obj `if test -f '../../SU2_CFD/src/output_tecplot.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_tecplot.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_tecplot.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.o: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.o `test -f '../../SU2_CFD/src/output_fieldview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_fieldview.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.obj: ../../SU2_CFD/src/output_fieldview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_fieldview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_fieldview.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_fieldview.obj `if test -f '../../SU2_CFD/src/output_fieldview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_fieldview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_fieldview.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_SOL-output_su2.o: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_su2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.o `test -f '../../SU2_CFD/src/output_su2.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_su2.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-output_su2.obj: ../../SU2_CFD/src/output_su2.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_su2.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_su2.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_su2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_su2.obj `if test -f '../../SU2_CFD/src/output_su2.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_su2.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_su2.cpp'; fi` - -../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.o: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.o `test -f '../../SU2_CFD/src/output_paraview.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/output_paraview.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.obj: ../../SU2_CFD/src/output_paraview.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-output_paraview.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/output_paraview.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-output_paraview.obj `if test -f '../../SU2_CFD/src/output_paraview.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/output_paraview.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/output_paraview.cpp'; fi` - ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Po @@ -608,40 +529,29 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` -../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.o: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_SOL-SU2_SOL.o: ../src/SU2_SOL.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_SOL-SU2_SOL.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo -c -o ../src/___bin_SU2_SOL-SU2_SOL.o `test -f '../src/SU2_SOL.cpp' || echo '$(srcdir)/'`../src/SU2_SOL.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_SOL.cpp' object='../src/___bin_SU2_SOL-SU2_SOL.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.o `test -f '../../SU2_CFD/src/variable_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/variable_structure.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_SOL-SU2_SOL.o `test -f '../src/SU2_SOL.cpp' || echo '$(srcdir)/'`../src/SU2_SOL.cpp -../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.obj: ../../SU2_CFD/src/variable_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-variable_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/variable_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_SOL-SU2_SOL.obj: ../src/SU2_SOL.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_SOL-SU2_SOL.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo -c -o ../src/___bin_SU2_SOL-SU2_SOL.obj `if test -f '../src/SU2_SOL.cpp'; then $(CYGPATH_W) '../src/SU2_SOL.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_SOL.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/SU2_SOL.cpp' object='../src/___bin_SU2_SOL-SU2_SOL.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-variable_structure.obj `if test -f '../../SU2_CFD/src/variable_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/variable_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/variable_structure.cpp'; fi` - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_SOL-SU2_SOL.obj `if test -f '../src/SU2_SOL.cpp'; then $(CYGPATH_W) '../src/SU2_SOL.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_SOL.cpp'; fi` + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -653,15 +563,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -670,9 +576,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -831,18 +738,19 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic cscopelist ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS # endif diff --git a/externals/Makefile.in b/externals/Makefile.in index 1db60358472..d2209f04c66 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -47,23 +47,51 @@ # ################################################################################ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ esac; \ - test $$am__dry = yes; \ - } + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -87,7 +115,7 @@ target_triplet = @target@ @BUILD_METIS_TRUE@am__append_2 = metis @BUILD_METIS_TRUE@@BUILD_PARMETIS_TRUE@am__append_3 = parmetis subdir = externals -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -112,13 +140,14 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -126,9 +155,29 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = tecio metis parmetis @@ -333,14 +382,13 @@ $(am__aclocal_m4_deps): # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. -$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ @@ -361,31 +409,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done -cscopelist-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ - done -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -401,12 +431,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -418,15 +443,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -435,9 +456,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive -cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -609,22 +631,19 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ - cscopelist-recursive ctags-recursive install-am install-strip \ - tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic cscopelist \ - cscopelist-recursive ctags ctags-recursive distclean \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-generic distclean-tags distdir dvi dvi-am \ + html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am + pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/externals/metis/Makefile.in b/externals/metis/Makefile.in index 5b2e02d2273..9f03a6afcc9 100644 --- a/externals/metis/Makefile.in +++ b/externals/metis/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +80,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/metis -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -173,6 +201,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -586,6 +631,7 @@ libmetis/libmetis_a-util.$(OBJEXT): libmetis/$(am__dirstamp) \ libmetis/$(DEPDIR)/$(am__dirstamp) libmetis/libmetis_a-wspace.$(OBJEXT): libmetis/$(am__dirstamp) \ libmetis/$(DEPDIR)/$(am__dirstamp) + libmetis.a: $(libmetis_a_OBJECTS) $(libmetis_a_DEPENDENCIES) $(EXTRA_libmetis_a_DEPENDENCIES) $(AM_V_at)-rm -f libmetis.a $(AM_V_AR)$(libmetis_a_AR) libmetis.a $(libmetis_a_OBJECTS) $(libmetis_a_LIBADD) @@ -1531,26 +1577,15 @@ libmetis/libmetis_a-wspace.obj: libmetis/wspace.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmetis_a_CPPFLAGS) $(CPPFLAGS) $(libmetis_a_CFLAGS) $(CFLAGS) -c -o libmetis/libmetis_a-wspace.obj `if test -f 'libmetis/wspace.c'; then $(CYGPATH_W) 'libmetis/wspace.c'; else $(CYGPATH_W) '$(srcdir)/libmetis/wspace.c'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1562,15 +1597,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1579,9 +1610,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1736,8 +1768,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1746,7 +1778,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am diff --git a/externals/parmetis/Makefile.in b/externals/parmetis/Makefile.in index 1cb9561a5f4..c35230e3df7 100644 --- a/externals/parmetis/Makefile.in +++ b/externals/parmetis/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +80,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/parmetis -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -154,6 +182,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -508,6 +553,7 @@ libparmetis/libparmetis_a-wspace.$(OBJEXT): \ libparmetis/libparmetis_a-xyzpart.$(OBJEXT): \ libparmetis/$(am__dirstamp) \ libparmetis/$(DEPDIR)/$(am__dirstamp) + libparmetis.a: $(libparmetis_a_OBJECTS) $(libparmetis_a_DEPENDENCIES) $(EXTRA_libparmetis_a_DEPENDENCIES) $(AM_V_at)-rm -f libparmetis.a $(AM_V_AR)$(libparmetis_a_AR) libparmetis.a $(libparmetis_a_OBJECTS) $(libparmetis_a_LIBADD) @@ -1122,26 +1168,15 @@ libparmetis/libparmetis_a-xyzpart.obj: libparmetis/xyzpart.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparmetis_a_CPPFLAGS) $(CPPFLAGS) $(libparmetis_a_CFLAGS) $(CFLAGS) -c -o libparmetis/libparmetis_a-xyzpart.obj `if test -f 'libparmetis/xyzpart.c'; then $(CYGPATH_W) 'libparmetis/xyzpart.c'; else $(CYGPATH_W) '$(srcdir)/libparmetis/xyzpart.c'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1153,15 +1188,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1170,9 +1201,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1325,8 +1357,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1335,7 +1367,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am diff --git a/externals/tecio/Makefile.in b/externals/tecio/Makefile.in index 6825c36b6f6..bc5de8d5e7b 100644 --- a/externals/tecio/Makefile.in +++ b/externals/tecio/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.12.5 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,23 +15,51 @@ @SET_MAKE@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ esac; \ - test $$am__dry = yes; \ - } + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -52,8 +80,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/tecio -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/depcomp +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -146,6 +174,23 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -426,6 +471,7 @@ tecsrc/libtecio_a-tassert.$(OBJEXT): tecsrc/$(am__dirstamp) \ tecsrc/$(DEPDIR)/$(am__dirstamp) tecsrc/libtecio_a-tecxxx.$(OBJEXT): tecsrc/$(am__dirstamp) \ tecsrc/$(DEPDIR)/$(am__dirstamp) + libtecio.a: $(libtecio_a_OBJECTS) $(libtecio_a_DEPENDENCIES) $(EXTRA_libtecio_a_DEPENDENCIES) $(AM_V_at)-rm -f libtecio.a $(AM_V_AR)$(libtecio_a_AR) libtecio.a $(libtecio_a_OBJECTS) $(libtecio_a_LIBADD) @@ -725,26 +771,15 @@ tecsrc/libtecio_a-tecxxx.obj: tecsrc/tecxxx.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtecio_a_CPPFLAGS) $(CPPFLAGS) $(libtecio_a_CXXFLAGS) $(CXXFLAGS) -c -o tecsrc/libtecio_a-tecxxx.obj `if test -f 'tecsrc/tecxxx.cpp'; then $(CYGPATH_W) 'tecsrc/tecxxx.cpp'; else $(CYGPATH_W) '$(srcdir)/tecsrc/tecxxx.cpp'; fi` -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -756,15 +791,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -773,9 +804,10 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am -cscopelist: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP)'; \ +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -928,8 +960,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist ctags distclean \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -938,7 +970,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am From d22e7bba5c5d7d00b00707e462f61789cc7c3901 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 4 Feb 2016 18:34:20 -0800 Subject: [PATCH 194/269] bootsrap w/ 1.12 --- Common/lib/Makefile.in | 132 ++++++++----------- Makefile.in | 223 +++++++++++++++------------------ SU2_CFD/obj/Makefile.in | 161 +++++++++--------------- SU2_DEF/obj/Makefile.in | 159 +++++++++-------------- SU2_DOT/obj/Makefile.in | 160 +++++++++-------------- SU2_GEO/obj/Makefile.in | 159 +++++++++-------------- SU2_MSH/obj/Makefile.in | 159 +++++++++-------------- SU2_PY/Makefile.in | 92 +++++--------- SU2_SOL/obj/Makefile.in | 159 +++++++++-------------- externals/Makefile.in | 187 +++++++++++++-------------- externals/metis/Makefile.in | 132 ++++++++----------- externals/parmetis/Makefile.in | 132 ++++++++----------- externals/tecio/Makefile.in | 132 ++++++++----------- 13 files changed, 787 insertions(+), 1200 deletions(-) diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 0dc02ed1713..b7f52494acf 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -116,7 +88,7 @@ target_triplet = @target@ @BUILD_DIRECTDIFF_TRUE@am__append_2 = libSU2_DIRECTDIFF.a @BUILD_REVERSE_TRUE@am__append_3 = libSU2_AD.a subdir = Common/lib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -377,23 +349,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -695,7 +650,6 @@ clean-noinstLIBRARIES: ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2.a $(AM_V_AR)$(libSU2_a_AR) libSU2.a $(libSU2_a_OBJECTS) $(libSU2_a_LIBADD) @@ -732,7 +686,6 @@ libSU2.a: $(libSU2_a_OBJECTS) $(libSU2_a_DEPENDENCIES) $(EXTRA_libSU2_a_DEPENDEN ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_AD_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_AD_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2_AD.a $(AM_V_AR)$(libSU2_AD_a_AR) libSU2_AD.a $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_LIBADD) @@ -769,7 +722,6 @@ libSU2_AD.a: $(libSU2_AD_a_OBJECTS) $(libSU2_AD_a_DEPENDENCIES) $(EXTRA_libSU2_A ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/libSU2_DIRECTDIFF_a-interpolation_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - libSU2_DIRECTDIFF.a: $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_DEPENDENCIES) $(EXTRA_libSU2_DIRECTDIFF_a_DEPENDENCIES) $(AM_V_at)-rm -f libSU2_DIRECTDIFF.a $(AM_V_AR)$(libSU2_DIRECTDIFF_a_AR) libSU2_DIRECTDIFF.a $(libSU2_DIRECTDIFF_a_OBJECTS) $(libSU2_DIRECTDIFF_a_LIBADD) @@ -1519,15 +1471,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSU2_DIRECTDIFF_a_CXXFLAGS) $(CXXFLAGS) -c -o ../src/libSU2_DIRECTDIFF_a-interpolation_structure.obj `if test -f '../src/interpolation_structure.cpp'; then $(CYGPATH_W) '../src/interpolation_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/interpolation_structure.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1539,11 +1502,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1552,10 +1519,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1708,8 +1674,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1718,7 +1684,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/Makefile.in b/Makefile.in index e12b95e3bc1..64b94487ea4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -47,51 +47,23 @@ # ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -118,8 +90,8 @@ target_triplet = @target@ @BUILD_SOL_TRUE@am__append_5 = SU2_SOL/obj @BUILD_GEO_TRUE@am__append_6 = SU2_GEO/obj subdir = . -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) COPYING INSTALL \ +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -147,14 +119,13 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -162,29 +133,9 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ cscope distdir dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope @@ -415,13 +366,14 @@ $(am__aclocal_m4_deps): # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ +$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ @@ -442,13 +394,31 @@ $(am__recursive_targets): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done +cscopelist-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ + done -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -464,7 +434,12 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -476,11 +451,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -489,16 +468,18 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" + cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) + clean-cscope: -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscope.files: clean-cscope cscopelist-recursive cscopelist + +cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -596,16 +577,10 @@ dist-xz: distdir $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -647,10 +622,9 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -807,22 +781,25 @@ ps-am: uninstall-am: -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope clean-generic \ - cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ + cscopelist-recursive ctags-recursive install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-cscope \ + clean-generic cscope cscopelist cscopelist-recursive ctags \ + ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzip \ + dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index dda85217598..d070775a0bd 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -117,7 +89,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) @BUILD_DIRECTDIFF_TRUE@am__append_2 = ../bin/SU2_CFD_DIRECTDIFF @BUILD_REVERSE_TRUE@am__append_3 = ../bin/SU2_CFD_AD subdir = SU2_CFD/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -597,23 +569,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -911,11 +866,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -936,8 +890,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -1077,7 +1030,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_CFD$(EXEEXT): $(___bin_SU2_CFD_OBJECTS) $(___bin_SU2_CFD_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_LINK) $(___bin_SU2_CFD_OBJECTS) $(___bin_SU2_CFD_LDADD) $(LIBS) @@ -1205,7 +1157,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - ../bin/SU2_CFD_AD$(EXEEXT): $(___bin_SU2_CFD_AD_OBJECTS) $(___bin_SU2_CFD_AD_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_AD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD_AD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_AD_LINK) $(___bin_SU2_CFD_AD_OBJECTS) $(___bin_SU2_CFD_AD_LDADD) $(LIBS) @@ -1333,7 +1284,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) - ../bin/SU2_CFD_DIRECTDIFF$(EXEEXT): $(___bin_SU2_CFD_DIRECTDIFF_OBJECTS) $(___bin_SU2_CFD_DIRECTDIFF_DEPENDENCIES) $(EXTRA____bin_SU2_CFD_DIRECTDIFF_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_CFD_DIRECTDIFF$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_CFD_DIRECTDIFF_LINK) $(___bin_SU2_CFD_DIRECTDIFF_OBJECTS) $(___bin_SU2_CFD_DIRECTDIFF_LDADD) $(LIBS) @@ -4152,15 +4102,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.obj `if test -f '../src/variable_template.cpp'; then $(CYGPATH_W) '../src/variable_template.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_template.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -4172,11 +4133,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -4185,10 +4150,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -4345,19 +4309,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index 0bd859e3b57..cac57d3b19c 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_DEF$(EXEEXT) subdir = SU2_DEF/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -194,23 +166,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -428,11 +383,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -453,8 +407,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -472,7 +425,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_DEF$(EXEEXT): $(___bin_SU2_DEF_OBJECTS) $(___bin_SU2_DEF_DEPENDENCIES) $(EXTRA____bin_SU2_DEF_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DEF$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DEF_LINK) $(___bin_SU2_DEF_OBJECTS) $(___bin_SU2_DEF_LDADD) $(LIBS) @@ -516,15 +468,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DEF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DEF-SU2_DEF.obj `if test -f '../src/SU2_DEF.cpp'; then $(CYGPATH_W) '../src/SU2_DEF.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DEF.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -536,11 +499,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -549,10 +516,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -709,19 +675,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index e5f86107cd9..3008d469426 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -116,7 +88,7 @@ bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @BUILD_NORMAL_TRUE@am__append_1 = ../bin/SU2_DOT @BUILD_REVERSE_TRUE@am__append_2 = ../bin/SU2_DOT_AD subdir = SU2_DOT/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -207,23 +179,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -438,11 +393,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -463,8 +417,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -482,13 +435,11 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_DOT$(EXEEXT): $(___bin_SU2_DOT_OBJECTS) $(___bin_SU2_DOT_DEPENDENCIES) $(EXTRA____bin_SU2_DOT_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DOT$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DOT_LINK) $(___bin_SU2_DOT_OBJECTS) $(___bin_SU2_DOT_LDADD) $(LIBS) ../src/___bin_SU2_DOT_AD-SU2_DOT.$(OBJEXT): ../src/$(am__dirstamp) \ ../src/$(DEPDIR)/$(am__dirstamp) - ../bin/SU2_DOT_AD$(EXEEXT): $(___bin_SU2_DOT_AD_OBJECTS) $(___bin_SU2_DOT_AD_DEPENDENCIES) $(EXTRA____bin_SU2_DOT_AD_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_DOT_AD$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_DOT_AD_LINK) $(___bin_SU2_DOT_AD_OBJECTS) $(___bin_SU2_DOT_AD_LDADD) $(LIBS) @@ -547,15 +498,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_DOT_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_DOT_AD-SU2_DOT.obj `if test -f '../src/SU2_DOT.cpp'; then $(CYGPATH_W) '../src/SU2_DOT.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_DOT.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -567,11 +529,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -580,10 +546,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -740,19 +705,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 1c2036f83db..3b67fb7494e 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_GEO$(EXEEXT) subdir = SU2_GEO/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -186,23 +158,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -412,11 +367,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -437,8 +391,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -456,7 +409,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_GEO$(EXEEXT): $(___bin_SU2_GEO_OBJECTS) $(___bin_SU2_GEO_DEPENDENCIES) $(EXTRA____bin_SU2_GEO_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_GEO$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_GEO_LINK) $(___bin_SU2_GEO_OBJECTS) $(___bin_SU2_GEO_LDADD) $(LIBS) @@ -500,15 +452,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_GEO_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_GEO-SU2_GEO.obj `if test -f '../src/SU2_GEO.cpp'; then $(CYGPATH_W) '../src/SU2_GEO.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_GEO.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -520,11 +483,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -533,10 +500,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -693,19 +659,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index 3e7471064bd..d8197c2c839 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_MSH$(EXEEXT) subdir = SU2_MSH/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -186,23 +158,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -412,11 +367,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -437,8 +391,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -456,7 +409,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_MSH$(EXEEXT): $(___bin_SU2_MSH_OBJECTS) $(___bin_SU2_MSH_DEPENDENCIES) $(EXTRA____bin_SU2_MSH_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_MSH$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_MSH_LINK) $(___bin_SU2_MSH_OBJECTS) $(___bin_SU2_MSH_LDADD) $(LIBS) @@ -500,15 +452,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_MSH_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_MSH-SU2_MSH.obj `if test -f '../src/SU2_MSH.cpp'; then $(CYGPATH_W) '../src/SU2_MSH.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_MSH.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -520,11 +483,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -533,10 +500,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -693,19 +659,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index 97f40ccf439..3d43f5b0b11 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -49,51 +49,23 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,8 +86,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = SU2_PY -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(nobase_dist_mypkg_DATA) +DIST_COMMON = $(nobase_dist_mypkg_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -175,7 +147,6 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(nobase_dist_mypkg_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -461,9 +432,11 @@ uninstall-nobase_dist_mypkgDATA: @list='$(nobase_dist_mypkg_DATA)'; test -n "$(mypkgdir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(mypkgdir)'; $(am__uninstall_files_from_dir) -tags TAGS: +tags: TAGS +TAGS: -ctags CTAGS: +ctags: CTAGS +CTAGS: cscope cscopelist: @@ -603,17 +576,16 @@ uninstall-am: uninstall-binSCRIPTS uninstall-nobase_dist_mypkgDATA .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-binSCRIPTS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man \ - install-nobase_dist_mypkgDATA install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-binSCRIPTS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-nobase_dist_mypkgDATA \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-nobase_dist_mypkgDATA diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index a75373256e4..6bffa5fab3c 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,51 +48,23 @@ ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -114,7 +86,7 @@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ../bin/SU2_SOL$(EXEEXT) subdir = SU2_SOL/obj -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ @@ -195,23 +167,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -430,11 +385,10 @@ install-binPROGRAMS: $(bin_PROGRAMS) fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -455,8 +409,7 @@ uninstall-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ + -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files @@ -483,7 +436,6 @@ clean-binPROGRAMS: ../bin/$(am__dirstamp): @$(MKDIR_P) ../bin @: > ../bin/$(am__dirstamp) - ../bin/SU2_SOL$(EXEEXT): $(___bin_SU2_SOL_OBJECTS) $(___bin_SU2_SOL_DEPENDENCIES) $(EXTRA____bin_SU2_SOL_DEPENDENCIES) ../bin/$(am__dirstamp) @rm -f ../bin/SU2_SOL$(EXEEXT) $(AM_V_CXXLD)$(___bin_SU2_SOL_LINK) $(___bin_SU2_SOL_OBJECTS) $(___bin_SU2_SOL_LDADD) $(LIBS) @@ -543,15 +495,26 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_SOL-SU2_SOL.obj `if test -f '../src/SU2_SOL.cpp'; then $(CYGPATH_W) '../src/SU2_SOL.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/SU2_SOL.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -563,11 +526,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -576,10 +543,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -738,19 +704,18 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS # endif diff --git a/externals/Makefile.in b/externals/Makefile.in index d2209f04c66..1db60358472 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -47,51 +47,23 @@ # ################################################################################ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -115,7 +87,7 @@ target_triplet = @target@ @BUILD_METIS_TRUE@am__append_2 = metis @BUILD_METIS_TRUE@@BUILD_PARMETIS_TRUE@am__append_3 = parmetis subdir = externals -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -140,14 +112,13 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -155,29 +126,9 @@ am__can_run_installinfo = \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = tecio metis parmetis @@ -382,13 +333,14 @@ $(am__aclocal_m4_deps): # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ +$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ @@ -409,13 +361,31 @@ $(am__recursive_targets): if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done +cscopelist-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ + done -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -431,7 +401,12 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -443,11 +418,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -456,10 +435,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -631,19 +609,22 @@ ps-am: uninstall-am: -.MAKE: $(am__recursive_targets) install-am install-strip +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ + cscopelist-recursive ctags-recursive install-am install-strip \ + tags-recursive -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic cscopelist \ + cscopelist-recursive ctags ctags-recursive distclean \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/externals/metis/Makefile.in b/externals/metis/Makefile.in index 9f03a6afcc9..5b2e02d2273 100644 --- a/externals/metis/Makefile.in +++ b/externals/metis/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,51 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -80,8 +52,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/metis -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp README +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -201,23 +173,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -631,7 +586,6 @@ libmetis/libmetis_a-util.$(OBJEXT): libmetis/$(am__dirstamp) \ libmetis/$(DEPDIR)/$(am__dirstamp) libmetis/libmetis_a-wspace.$(OBJEXT): libmetis/$(am__dirstamp) \ libmetis/$(DEPDIR)/$(am__dirstamp) - libmetis.a: $(libmetis_a_OBJECTS) $(libmetis_a_DEPENDENCIES) $(EXTRA_libmetis_a_DEPENDENCIES) $(AM_V_at)-rm -f libmetis.a $(AM_V_AR)$(libmetis_a_AR) libmetis.a $(libmetis_a_OBJECTS) $(libmetis_a_LIBADD) @@ -1577,15 +1531,26 @@ libmetis/libmetis_a-wspace.obj: libmetis/wspace.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmetis_a_CPPFLAGS) $(CPPFLAGS) $(libmetis_a_CFLAGS) $(CFLAGS) -c -o libmetis/libmetis_a-wspace.obj `if test -f 'libmetis/wspace.c'; then $(CYGPATH_W) 'libmetis/wspace.c'; else $(CYGPATH_W) '$(srcdir)/libmetis/wspace.c'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1597,11 +1562,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1610,10 +1579,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1768,8 +1736,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1778,7 +1746,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/externals/parmetis/Makefile.in b/externals/parmetis/Makefile.in index c35230e3df7..1cb9561a5f4 100644 --- a/externals/parmetis/Makefile.in +++ b/externals/parmetis/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,51 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -80,8 +52,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/parmetis -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp README +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -182,23 +154,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -553,7 +508,6 @@ libparmetis/libparmetis_a-wspace.$(OBJEXT): \ libparmetis/libparmetis_a-xyzpart.$(OBJEXT): \ libparmetis/$(am__dirstamp) \ libparmetis/$(DEPDIR)/$(am__dirstamp) - libparmetis.a: $(libparmetis_a_OBJECTS) $(libparmetis_a_DEPENDENCIES) $(EXTRA_libparmetis_a_DEPENDENCIES) $(AM_V_at)-rm -f libparmetis.a $(AM_V_AR)$(libparmetis_a_AR) libparmetis.a $(libparmetis_a_OBJECTS) $(libparmetis_a_LIBADD) @@ -1168,15 +1122,26 @@ libparmetis/libparmetis_a-xyzpart.obj: libparmetis/xyzpart.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparmetis_a_CPPFLAGS) $(CPPFLAGS) $(libparmetis_a_CFLAGS) $(CFLAGS) -c -o libparmetis/libparmetis_a-xyzpart.obj `if test -f 'libparmetis/xyzpart.c'; then $(CYGPATH_W) 'libparmetis/xyzpart.c'; else $(CYGPATH_W) '$(srcdir)/libparmetis/xyzpart.c'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1188,11 +1153,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1201,10 +1170,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -1357,8 +1325,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -1367,7 +1335,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am diff --git a/externals/tecio/Makefile.in b/externals/tecio/Makefile.in index bc5de8d5e7b..6825c36b6f6 100644 --- a/externals/tecio/Makefile.in +++ b/externals/tecio/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,51 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ +am__make_dryrun = \ + { \ + am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -80,8 +52,8 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = externals/tecio -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp README +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ @@ -174,23 +146,6 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -471,7 +426,6 @@ tecsrc/libtecio_a-tassert.$(OBJEXT): tecsrc/$(am__dirstamp) \ tecsrc/$(DEPDIR)/$(am__dirstamp) tecsrc/libtecio_a-tecxxx.$(OBJEXT): tecsrc/$(am__dirstamp) \ tecsrc/$(DEPDIR)/$(am__dirstamp) - libtecio.a: $(libtecio_a_OBJECTS) $(libtecio_a_DEPENDENCIES) $(EXTRA_libtecio_a_DEPENDENCIES) $(AM_V_at)-rm -f libtecio.a $(AM_V_AR)$(libtecio_a_AR) libtecio.a $(libtecio_a_OBJECTS) $(libtecio_a_LIBADD) @@ -771,15 +725,26 @@ tecsrc/libtecio_a-tecxxx.obj: tecsrc/tecxxx.cpp @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtecio_a_CPPFLAGS) $(CPPFLAGS) $(libtecio_a_CXXFLAGS) $(CXXFLAGS) -c -o tecsrc/libtecio_a-tecxxx.obj `if test -f 'tecsrc/tecxxx.cpp'; then $(CYGPATH_W) 'tecsrc/tecxxx.cpp'; else $(CYGPATH_W) '$(srcdir)/tecsrc/tecxxx.cpp'; fi` -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -791,11 +756,15 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -804,10 +773,9 @@ GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ @@ -960,8 +928,8 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES cscopelist ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ @@ -970,7 +938,7 @@ uninstall-am: install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am From 7dc27318d207ef5e6d1e48822b12649a5d000331 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Fri, 5 Feb 2016 15:35:18 -0800 Subject: [PATCH 195/269] Modified parallel regression tests for partitioning fixes. --- .../Xcode/SU2_CFD.xcodeproj/project.pbxproj | 4 ++ TestCases/parallel_regression.py | 38 +++++++++---------- TestCases/parallel_regression_AD.py | 4 +- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj index ef8b9c84148..b92bf0993f2 100644 --- a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj @@ -326,6 +326,8 @@ E9D9CE951C62A272004119E9 /* transfer_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = transfer_structure.hpp; path = ../../SU2_CFD/include/transfer_structure.hpp; sourceTree = ""; }; E9D9CE961C62A272004119E9 /* transfer_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = transfer_structure.inl; path = ../../SU2_CFD/include/transfer_structure.inl; sourceTree = ""; }; E9D9CE971C62A2A7004119E9 /* interpolation_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = interpolation_structure.hpp; path = ../../Common/include/interpolation_structure.hpp; sourceTree = ""; }; + E9D9CE981C6563B3004119E9 /* parallel_regression_AD.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = parallel_regression_AD.py; sourceTree = ""; }; + E9D9CE991C6563B3004119E9 /* serial_regression_AD.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = serial_regression_AD.py; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -617,9 +619,11 @@ E91CACC71B8C110E00EE3FCC /* optimization_euler */, E91CACD61B8C110E00EE3FCC /* optimization_rans */, E91CACDF1B8C110E00EE3FCC /* parallel_regression.py */, + E9D9CE981C6563B3004119E9 /* parallel_regression_AD.py */, E91CACE01B8C110E00EE3FCC /* rans */, E91CACF21B8C110E00EE3FCC /* rotating */, E91CACF71B8C110E00EE3FCC /* serial_regression.py */, + E9D9CE991C6563B3004119E9 /* serial_regression_AD.py */, E91CACF81B8C110E00EE3FCC /* spectral_method */, E91CACFA1B8C110E00EE3FCC /* TestCase.py */, E91CACFE1B8C110E00EE3FCC /* unsteady */, diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 398d15975ba..be7683cd3ed 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -48,7 +48,7 @@ def main(): channel.cfg_dir = "euler/channel" channel.cfg_file = "inv_channel_RK.cfg" channel.test_iter = 100 - channel.test_vals = [-2.984481, 2.389875, 0.008865, 0.027854] #last 4 columns + channel.test_vals = [-3.071007, 2.301191, 0.008562, 0.028922] #last 4 columns channel.su2_exec = "parallel_computation.py -f" channel.timeout = 1600 channel.tol = 0.00001 @@ -70,7 +70,7 @@ def main(): wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 100 - wedge.test_vals = [-1.702502, 3.923373, -0.252116, 0.044396] #last 4 columns + wedge.test_vals = [-1.645662, 3.976794, -0.252158, 0.044412] #last 4 columns wedge.su2_exec = "parallel_computation.py -f" wedge.timeout = 1600 wedge.tol = 0.00001 @@ -81,7 +81,7 @@ def main(): oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 - oneram6.test_vals = [-13.398374, -12.928436, 0.282557, 0.012706] #last 4 columns + oneram6.test_vals = [-13.400678, -12.932056, 0.282557, 0.012706] #last 4 columns oneram6.su2_exec = "parallel_computation.py -f" oneram6.timeout = 3200 oneram6.tol = 0.00001 @@ -96,7 +96,7 @@ def main(): flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 100 - flatplate.test_vals = [-5.233923, 0.259801, -0.166790, 0.012722] #last 4 columns + flatplate.test_vals = [-5.231727, 0.261637, -0.166869, 0.012707] #last 4 columns flatplate.su2_exec = "parallel_computation.py -f" flatplate.timeout = 1600 flatplate.tol = 0.00001 @@ -134,7 +134,7 @@ def main(): rae2822_sa.cfg_dir = "rans/rae2822" rae2822_sa.cfg_file = "turb_SA_RAE2822.cfg" rae2822_sa.test_iter = 100 - rae2822_sa.test_vals = [-3.637762, -5.450251, 0.890401, 0.025056] #last 4 columns + rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159, 0.025800] #last 4 columns rae2822_sa.su2_exec = "parallel_computation.py -f" rae2822_sa.timeout = 1600 rae2822_sa.tol = 0.00001 @@ -145,7 +145,7 @@ def main(): rae2822_sst.cfg_dir = "rans/rae2822" rae2822_sst.cfg_file = "turb_SST_RAE2822.cfg" rae2822_sst.test_iter = 100 - rae2822_sst.test_vals = [-1.217020, 4.023774, 0.892665, 0.025209] #last 4 columns + rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265, 0.025941] #last 4 columns rae2822_sst.su2_exec = "parallel_computation.py -f" rae2822_sst.timeout = 1600 rae2822_sst.tol = 0.00001 @@ -156,7 +156,7 @@ def main(): turb_flatplate.cfg_dir = "rans/flatplate" turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" turb_flatplate.test_iter = 100 - turb_flatplate.test_vals = [-5.073540, -7.354716, -0.187154, 0.011105] #last 4 columns + turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145, 0.010957] #last 4 columns turb_flatplate.su2_exec = "parallel_computation.py -f" turb_flatplate.timeout = 1600 turb_flatplate.tol = 0.00001 @@ -189,7 +189,7 @@ def main(): turb_naca0012_sst.cfg_dir = "rans/naca0012" turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" turb_naca0012_sst.test_iter = 10 - turb_naca0012_sst.test_vals = [-15.039665, -7.220109, 1.059622, 0.019138] #last 4 columns + turb_naca0012_sst.test_vals = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns turb_naca0012_sst.su2_exec = "parallel_computation.py -f" turb_naca0012_sst.timeout = 3200 turb_naca0012_sst.tol = 0.00001 @@ -204,7 +204,7 @@ def main(): inc_turb_naca0012.cfg_dir = "incomp_rans/naca0012" inc_turb_naca0012.cfg_file = "naca0012.cfg" inc_turb_naca0012.test_iter = 20 - inc_turb_naca0012.test_vals = [-4.709508, -11.006161, -0.000017, 0.211696] #last 4 columns + inc_turb_naca0012.test_vals = [-4.710048, -11.007498, 0.000002, 0.210441] #last 4 columns inc_turb_naca0012.su2_exec = "parallel_computation.py -f" inc_turb_naca0012.timeout = 1600 inc_turb_naca0012.tol = 0.00001 @@ -230,7 +230,7 @@ def main(): contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6" contadj_oneram6.cfg_file = "inv_ONERAM6.cfg" contadj_oneram6.test_iter = 10 - contadj_oneram6.test_vals = [-12.132862, -12.704820, 0.685900, 0.140920] #last 4 columns + contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900, 0.140920] #last 4 columns contadj_oneram6.su2_exec = "parallel_computation.py -f" contadj_oneram6.timeout = 1600 contadj_oneram6.tol = 0.00001 @@ -257,7 +257,7 @@ def main(): contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder" contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg" contadj_ns_cylinder.test_iter = 100 - contadj_ns_cylinder.test_vals = [-3.658396, -9.117436, -2.056700, 4.497000] #last 4 columns + contadj_ns_cylinder.test_vals = [-3.659040, -9.117773, -2.056700, 4.497000] #last 4 columns contadj_ns_cylinder.su2_exec = "parallel_computation.py -f" contadj_ns_cylinder.timeout = 1600 contadj_ns_cylinder.tol = 0.00001 @@ -305,7 +305,7 @@ def main(): contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822" contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg" contadj_rans_rae2822.test_iter = 100 - contadj_rans_rae2822.test_vals = [-5.381632, -10.887032, -0.212470, 0.269390] #last 4 columns + contadj_rans_rae2822.test_vals = [-5.380929, -10.886092, -0.212470, 0.269390] #last 4 columns contadj_rans_rae2822.su2_exec = "parallel_computation.py -f" contadj_rans_rae2822.timeout = 1600 contadj_rans_rae2822.tol = 0.00001 @@ -335,7 +335,7 @@ def main(): contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder" contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg" contadj_incomp_cylinder.test_iter = 25 - contadj_incomp_cylinder.test_vals = [-5.718776, -7.020714, -2.932100, 0.000000] #last 4 columns + contadj_incomp_cylinder.test_vals = [-5.718840, -7.012324, -2.932100, 0.000000] #last 4 columns contadj_incomp_cylinder.su2_exec = "parallel_computation.py -f" contadj_incomp_cylinder.timeout = 1600 contadj_incomp_cylinder.tol = 0.00001 @@ -350,7 +350,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [-5.594283, -0.130745, -0.510607, 0.061921] #last 4 columns + cavity.test_vals = [-5.597018, -0.133158, 0.169034, 0.821371] #last 4 columns cavity.su2_exec = "parallel_computation.py -f" cavity.timeout = 1600 cavity.tol = 0.00001 @@ -361,7 +361,7 @@ def main(): spinning_cylinder.cfg_dir = "moving_wall/spinning_cylinder" spinning_cylinder.cfg_file = "spinning_cylinder.cfg" spinning_cylinder.test_iter = 25 - spinning_cylinder.test_vals = [-7.637313, -2.194229, 1.212769, 1.605369] #last 4 columns + spinning_cylinder.test_vals = [-7.648320, -2.202753, 1.236836, 1.609040] #last 4 columns spinning_cylinder.su2_exec = "parallel_computation.py -f" spinning_cylinder.timeout = 1600 spinning_cylinder.tol = 0.00001 @@ -399,7 +399,7 @@ def main(): aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 - aeroelastic.test_vals = [0.077319, 0.036428, -1.685277e-03, -1.129186e-04] #last 4 columns + aeroelastic.test_vals = [0.077169, 0.036452, -0.001685, -0.000113] #last 4 columns aeroelastic.su2_exec = "parallel_computation.py -f" aeroelastic.timeout = 1600 aeroelastic.tol = 0.000001 @@ -415,7 +415,7 @@ def main(): edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" edge_VW.test_iter = 100 - edge_VW.test_vals = [-5.174540, 0.986767, -0.000009, 0.000000] #last 4 columns + edge_VW.test_vals = [-5.058481, 1.115321, -0.000009, 0.000000] #last 4 columns edge_VW.su2_exec = "parallel_computation.py -f" edge_VW.timeout = 1600 edge_VW.tol = 0.00001 @@ -426,7 +426,7 @@ def main(): edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" edge_PPR.test_iter = 100 - edge_PPR.test_vals = [-5.493640, 0.648441, -0.000037, 0.000000] #last 4 columns + edge_PPR.test_vals = [-5.486409, 0.654417, -0.000037, 0.000000] #last 4 columns edge_PPR.su2_exec = "parallel_computation.py -f" edge_PPR.timeout = 1600 edge_PPR.tol = 0.00001 @@ -441,7 +441,7 @@ def main(): statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" statbeam3d.cfg_file = "configBeam_3d.cfg" statbeam3d.test_iter = 0 - statbeam3d.test_vals = [-8.644911, -8.280115, -8.204380, 6.4095e+04] #last 4 columns + statbeam3d.test_vals = [-8.520066, -8.069308, -8.062384, 64095.000000] #last 4 columns statbeam3d.su2_exec = "parallel_computation_fsi.py -f" statbeam3d.timeout = 1600 statbeam3d.tol = 0.00001 diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index c0a53617c03..fd0995f5de0 100755 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -63,7 +63,7 @@ def main(): discadj_rans_naca0012_sa.cfg_dir = "disc_adj_rans/naca0012" discadj_rans_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" discadj_rans_naca0012_sa.test_iter = 10 - discadj_rans_naca0012_sa.test_vals = [-1.751829, 0.485848, 0.182890, -0.383520] #last 4 columns + discadj_rans_naca0012_sa.test_vals = [-1.751997, 0.485368, 0.182890, -0.383510] #last 4 columns discadj_rans_naca0012_sa.su2_exec = "parallel_computation.py -f" discadj_rans_naca0012_sa.timeout = 1600 discadj_rans_naca0012_sa.tol = 0.00001 @@ -74,7 +74,7 @@ def main(): discadj_rans_naca0012_sst.cfg_dir = "disc_adj_rans/naca0012" discadj_rans_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" discadj_rans_naca0012_sst.test_iter = 10 - discadj_rans_naca0012_sst.test_vals = [-1.653638,-0.502899,1.3126e-01,-4.7494e-01] #last 4 columns + discadj_rans_naca0012_sst.test_vals = [-1.655245, -0.507187, 0.129010, -0.477680] #last 4 columns discadj_rans_naca0012_sst.su2_exec = "parallel_computation.py -f" discadj_rans_naca0012_sst.timeout = 1600 discadj_rans_naca0012_sst.tol = 0.00001 From fead9b6faea2e24a7e62eef3feb55ea56849bd5a Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 9 Feb 2016 16:50:48 -0800 Subject: [PATCH 196/269] Small directive change to fix regression test. --- Common/src/geometry_structure.cpp | 80 +++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 25 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 202354ed68e..6b8ab43f6a9 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -6172,10 +6172,14 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes mesh_file.close(); strcpy (cstr, val_mesh_filename.c_str()); - /*--- Initialize the vector for the adjacency information (ParMETIS). ---*/ +#ifdef HAVE_MPI +#ifdef HAVE_PARMETIS + /*--- Initialize the vector for the adjacency information (ParMETIS). ---*/ vector< vector > adj_nodes(local_node, vector(0)); +#endif +#endif mesh_file.open(cstr, ios::in); @@ -6267,9 +6271,16 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes add the neighboring nodes to this nodes' adjacency list. ---*/ elem_reqd = true; + +#ifdef HAVE_MPI +#ifdef HAVE_PARMETIS + /*--- Build adjacency assuming the VTK connectivity ---*/ + for (j=0; jGetnMarker_All(); iMarker++) { @@ -10249,12 +10279,12 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC Coord_j = geometry_donor->node[jPoint]->GetCoord(); if (nDim == 2) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0)); if (nDim == 3) dist = sqrt(pow(Coord_j[0]-Coord_i[0],2.0) + pow(Coord_j[1]-Coord_i[1],2.0) + pow(Coord_j[2]-Coord_i[2],2.0)); -// if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = node[jPoint]->GetGlobalIndex();} +// if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = node[jPoint]->GetGlobalIndex();} if (dist < mindist) { mindist = dist; pPoint = jPoint; pGlobalPoint = geometry_donor->node[jPoint]->GetGlobalIndex();} } maxdist = max(maxdist, mindist); - vertex[iMarker][iVertex]->SetDonorPoint(pPoint, MASTER_NODE, pGlobalPoint); + vertex[iMarker][iVertex]->SetDonorPoint(pPoint, MASTER_NODE, pGlobalPoint); } } @@ -10262,7 +10292,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC #else unsigned short iMarker, iDim; - unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint, jGlobalPoint = 0, pGlobalPoint = 0; + unsigned long iVertex, iPoint, pPoint = 0, jVertex, jPoint, jGlobalPoint = 0, pGlobalPoint = 0; su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; int iProcessor, pProcessor = 0; unsigned long nLocalVertex_Zone = 0, nGlobalVertex_Zone = 0, MaxLocalVertex_Zone = 0; @@ -10274,7 +10304,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC unsigned long *Buffer_Send_nVertex = new unsigned long [1]; unsigned long *Buffer_Receive_nVertex = new unsigned long [nProcessor]; -// if (val_iZone == ZONE_0 && rank == MASTER_NODE) cout << "Set zone boundary conditions (if any)." << endl; +// if (val_iZone == ZONE_0 && rank == MASTER_NODE) cout << "Set zone boundary conditions (if any)." << endl; nLocalVertex_Zone = 0; for (iMarker = 0; iMarker < config_donor->GetnMarker_All(); iMarker++) @@ -10293,19 +10323,19 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC su2double *Buffer_Send_Coord = new su2double [MaxLocalVertex_Zone*nDim]; unsigned long *Buffer_Send_Point = new unsigned long [MaxLocalVertex_Zone]; - unsigned long *Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Zone]; + unsigned long *Buffer_Send_GlobalPoint = new unsigned long [MaxLocalVertex_Zone]; su2double *Buffer_Receive_Coord = new su2double [nProcessor*MaxLocalVertex_Zone*nDim]; unsigned long *Buffer_Receive_Point = new unsigned long [nProcessor*MaxLocalVertex_Zone]; - unsigned long *Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Zone]; + unsigned long *Buffer_Receive_GlobalPoint = new unsigned long [nProcessor*MaxLocalVertex_Zone]; unsigned long nBuffer_Coord = MaxLocalVertex_Zone*nDim; unsigned long nBuffer_Point = MaxLocalVertex_Zone; - + for (iVertex = 0; iVertex < MaxLocalVertex_Zone; iVertex++) { Buffer_Send_Point[iVertex] = 0; - Buffer_Send_GlobalPoint[iVertex] = 0; + Buffer_Send_GlobalPoint[iVertex] = 0; for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_Coord[iVertex*nDim+iDim] = 0.0; } @@ -10317,7 +10347,7 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC iPoint = geometry_donor->vertex[iMarker][iVertex]->GetNode(); if (geometry_donor->node[iPoint]->GetDomain()) { Buffer_Send_Point[nLocalVertex_Zone] = iPoint; - Buffer_Send_GlobalPoint[nLocalVertex_Zone] = geometry_donor->node[iPoint]->GetGlobalIndex(); + Buffer_Send_GlobalPoint[nLocalVertex_Zone] = geometry_donor->node[iPoint]->GetGlobalIndex(); for (iDim = 0; iDim < nDim; iDim++) Buffer_Send_Coord[nLocalVertex_Zone*nDim+iDim] = geometry_donor->node[iPoint]->GetCoord(iDim); nLocalVertex_Zone++; @@ -10326,8 +10356,8 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC SU2_MPI::Allgather(Buffer_Send_Coord, nBuffer_Coord, MPI_DOUBLE, Buffer_Receive_Coord, nBuffer_Coord, MPI_DOUBLE, MPI_COMM_WORLD); SU2_MPI::Allgather(Buffer_Send_Point, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_Point, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); - + SU2_MPI::Allgather(Buffer_Send_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, Buffer_Receive_GlobalPoint, nBuffer_Point, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + /*--- Compute the closest point to a Near-Field boundary point ---*/ maxdist = 0.0; for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { @@ -10343,8 +10373,8 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC for (iProcessor = 0; iProcessor < nProcessor; iProcessor++) for (jVertex = 0; jVertex < Buffer_Receive_nVertex[iProcessor]; jVertex++) { jPoint = Buffer_Receive_Point[iProcessor*MaxLocalVertex_Zone+jVertex]; - jGlobalPoint = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Zone+jVertex]; - + jGlobalPoint = Buffer_Receive_GlobalPoint[iProcessor*MaxLocalVertex_Zone+jVertex]; + /*--- Compute the distance ---*/ dist = 0.0; for (iDim = 0; iDim < nDim; iDim++) { Coord_j[iDim] = Buffer_Receive_Coord[(iProcessor*MaxLocalVertex_Zone+jVertex)*nDim+iDim]; @@ -10354,13 +10384,13 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC if (((dist < mindist) && (iProcessor != rank)) || ((dist < mindist) && (iProcessor == rank) && (jPoint != iPoint))) { mindist = dist; pProcessor = iProcessor; pPoint = jPoint; - pGlobalPoint = jGlobalPoint; + pGlobalPoint = jGlobalPoint; } } /*--- Store the value of the pair ---*/ maxdist = max(maxdist, mindist); - vertex[iMarker][iVertex]->SetDonorPoint(pPoint, pProcessor, pGlobalPoint); + vertex[iMarker][iVertex]->SetDonorPoint(pPoint, pProcessor, pGlobalPoint); } @@ -10369,11 +10399,11 @@ void CPhysicalGeometry::MatchZone(CConfig *config, CGeometry *geometry_donor, CC delete[] Buffer_Send_Coord; delete[] Buffer_Send_Point; - delete[] Buffer_Send_GlobalPoint; + delete[] Buffer_Send_GlobalPoint; delete[] Buffer_Receive_Coord; delete[] Buffer_Receive_Point; - delete[] Buffer_Receive_GlobalPoint; + delete[] Buffer_Receive_GlobalPoint; delete[] Buffer_Send_nVertex; delete[] Buffer_Receive_nVertex; From c157f8d3d6f7d748cdce1a7f6df4d9dc121042b5 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 9 Feb 2016 17:24:55 -0800 Subject: [PATCH 197/269] Fixing a couple of warnings. --- Common/src/geometry_structure.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 6b8ab43f6a9..096f9a9c118 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -6260,7 +6260,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes any of the nodes making up this element have a global index value that falls within the range of our linear partitioning. ---*/ - for (i = 0; i < N_POINTS_TRIANGLE; i++) { + for (int i = 0; i < N_POINTS_TRIANGLE; i++) { local_index = vnodes_triangle[i]-starting_node[rank]; @@ -6276,7 +6276,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes #ifdef HAVE_PARMETIS /*--- Build adjacency assuming the VTK connectivity ---*/ - for (j=0; j Date: Wed, 10 Feb 2016 17:50:57 +0000 Subject: [PATCH 198/269] Add option to control Aitken initial value. --- Common/include/config_structure.hpp | 7 + Common/include/config_structure.inl | 2 + Common/src/config_structure.cpp | 4 +- SU2_CFD/src/solver_fem_elasticity.cpp | 99 +- .../share/autoconf/autoconf/autoconf.m4f | 848 +++++++++--------- .../autotools/share/autoconf/autom4te.cfg | 8 +- .../share/autoconf/autotest/autotest.m4f | 132 +-- .../autotools/share/autoconf/m4sugar/m4sh.m4f | 130 +-- .../share/autoconf/m4sugar/m4sugar.m4f | 10 +- .../share/automake-1.12/Automake/Config.pm | 2 +- externals/autotools/share/info/dir | 32 +- 11 files changed, 662 insertions(+), 612 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 90bf1171a58..f6bce407be1 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -602,6 +602,7 @@ class CConfig { unsigned short nIterFSI; /*!< \brief Number of maximum number of subiterations in a FSI problem. */ su2double AitkenStatRelax; /*!< \brief Aitken's relaxation factor (if set as static) */ su2double AitkenDynMaxInit; /*!< \brief Aitken's maximum dynamic relaxation factor for the first iteration */ + su2double AitkenDynMinInit; /*!< \brief Aitken's minimum dynamic relaxation factor for the first iteration */ su2double Wave_Speed; /*!< \brief Wave speed used in the wave solver. */ su2double Thermal_Diffusivity; /*!< \brief Thermal diffusivity used in the heat solver. */ su2double Cyclic_Pitch, /*!< \brief Cyclic pitch for rotorcraft simulations. */ @@ -5309,6 +5310,12 @@ class CConfig { */ su2double GetAitkenDynMaxInit(void); + /*! + * \brief Get Aitken's maximum relaxation parameter for dynamic relaxation cases and first iteration. + * \return Aitken's relaxation parameters. + */ + su2double GetAitkenDynMinInit(void); + /*! * \brief Decide whether to apply dead loads to the model. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 33addef50db..ad7be8bd7fe 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1136,6 +1136,8 @@ inline su2double CConfig::GetAitkenStatRelax(void) { return AitkenStatRelax; } inline su2double CConfig::GetAitkenDynMaxInit(void) { return AitkenDynMaxInit; } +inline su2double CConfig::GetAitkenDynMinInit(void) { return AitkenDynMinInit; } + inline bool CConfig::GetDeadLoad(void) { return DeadLoad; } inline bool CConfig::GetMatchingMesh(void) { return MatchingMesh; } diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index d96723d51ba..7aa4d8c07b3 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1227,7 +1227,9 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Aitken's static relaxation factor */ addDoubleOption("STAT_RELAX_PARAMETER", AitkenStatRelax, 0.4); /* DESCRIPTION: Aitken's dynamic maximum relaxation factor for the first iteration */ - addDoubleOption("AITKEN_DYN_MAX_INITIAL", AitkenDynMaxInit, 0.4); + addDoubleOption("AITKEN_DYN_MAX_INITIAL", AitkenDynMaxInit, 0.5); + /* DESCRIPTION: Aitken's dynamic minimum relaxation factor for the first iteration */ + addDoubleOption("AITKEN_DYN_MIN_INITIAL", AitkenDynMinInit, 0.5); /* DESCRIPTION: Type of gust */ addEnumOption("BGS_RELAXATION", Kind_BGS_RelaxMethod, AitkenForm_Map, NO_RELAXATION); diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5824385e732..4475abbc6d5 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -3268,7 +3268,9 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; su2double CurrentTime=fea_config->GetCurrent_DynTime(); su2double Static_Time=fea_config->GetStatic_Time(); - su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; + su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn_Min, WAitkDyn; + + unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -3289,57 +3291,86 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, if (CurrentTime > Static_Time) { - if (iFSIIter == 0){ - - WAitkDyn_tn1 = GetWAitken_Dyn_tn1(); - WAitkDyn_Max = fea_config->GetAitkenDynMaxInit(); + if (RelaxMethod_FSI == NO_RELAXATION){ - WAitkDyn = min(WAitkDyn_tn1, WAitkDyn_Max); + if (writeHistFSI && (rank == MASTER_NODE)){ - /*--- Temporal fix, only for now ---*/ - WAitkDyn = max(WAitkDyn, 0.1); + SetWAitken_Dyn(1.0); - SetWAitken_Dyn(WAitkDyn); - if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << " " << endl ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; + if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 ; + else historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 << "," ; } } - else{ - // To nPointDomain; we need to have communicated Solution, Solution_Old, Solution_Pred and Solution_Pred_Old beforehand - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + else if (RelaxMethod_FSI == FIXED_PARAMETER){ + + if (writeHistFSI && (rank == MASTER_NODE)){ - dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); - dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); + SetWAitken_Dyn(fea_config->GetAitkenStatRelax()); - for (iDim = 0; iDim < nDim; iDim++){ + historyFile_FSI << " " << endl ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() ; + else historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() << "," ; + } + + } + else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ - /*--- Compute the deltaU and deltaU_n+1 ---*/ - deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; - deltaU_p1[iDim] = dispCalc[iDim] - dispPred[iDim]; + if (iFSIIter == 0){ - /*--- Compute the difference ---*/ - delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; + WAitkDyn_tn1 = GetWAitken_Dyn_tn1(); + WAitkDyn_Max = fea_config->GetAitkenDynMaxInit(); + WAitkDyn_Min = fea_config->GetAitkenDynMinInit(); - /*--- Add numerator and denominator ---*/ - sbuf_numAitk += deltaU[iDim] * delta_deltaU[iDim]; - sbuf_denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; + WAitkDyn = min(WAitkDyn_tn1, WAitkDyn_Max); + WAitkDyn = max(WAitkDyn, WAitkDyn_Min); + SetWAitken_Dyn(WAitkDyn); + if (writeHistFSI && (rank == MASTER_NODE)){ + historyFile_FSI << " " << endl ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; } } + else{ + // To nPointDomain; we need to communicate the values + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + + dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); + dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); + + for (iDim = 0; iDim < nDim; iDim++){ + + /*--- Compute the deltaU and deltaU_n+1 ---*/ + deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; + deltaU_p1[iDim] = dispCalc[iDim] - dispPred[iDim]; + + /*--- Compute the difference ---*/ + delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; + + /*--- Add numerator and denominator ---*/ + sbuf_numAitk += deltaU[iDim] * delta_deltaU[iDim]; + sbuf_denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; + + } + + } #ifdef HAVE_MPI - SU2_MPI::Allreduce(&sbuf_numAitk, &rbuf_numAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&sbuf_denAitk, &rbuf_denAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&sbuf_numAitk, &rbuf_numAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&sbuf_denAitk, &rbuf_denAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else - rbuf_numAitk = sbuf_numAitk; - rbuf_denAitk = sbuf_denAitk; + rbuf_numAitk = sbuf_numAitk; + rbuf_denAitk = sbuf_denAitk; #endif WAitkDyn = GetWAitken_Dyn(); @@ -3359,6 +3390,11 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn << "," ; } + } + + } + else { + if (rank == MASTER_NODE) cout << "No relaxation method used. " << endl; } } @@ -3394,7 +3430,6 @@ void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, } else { WAitken = 1.0; - cout << "No relaxation parameter used. " << endl; } // To nPointDomain; we need to communicate the solutions (predicted, old and old predicted) after this routine diff --git a/externals/autotools/share/autoconf/autoconf/autoconf.m4f b/externals/autotools/share/autoconf/autoconf/autoconf.m4f index 429b6d7726b..08fd2b488e0 100644 --- a/externals/autotools/share/autoconf/autoconf/autoconf.m4f +++ b/externals/autotools/share/autoconf/autoconf/autoconf.m4f @@ -1,11 +1,11 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] T28,27 -m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:803 +m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:779 T27,30 -m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:158 +m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:156 T22,133 _AS_LITERAL_HEREDOC_IFm4_if(m4_index([$1], [@S|@]), [-1], [m4_if(m4_index(m4_translit([[$1]], [\`], [$]), [$]), [-1], @@ -17,7 +17,7 @@ T27,54 AC_PATH_PROGS_FEATURE_CHECK_$0([$1], [$2], [$3], m4_default([$4], [:]), [$5])dnl T37,32 -m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:236 +m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:217 T16,400 _AS_EXIT_PREPARE_m4_defun_pro([$0])AS_REQUIRE_SHELL_FN([as_fn_set_status], [AS_FUNCTION_DESCRIBE([as_fn_set_status], [STATUS], @@ -165,17 +165,17 @@ AC_AIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_AIX' is obsolete You should run autoupdate.])dnl AC_USE_SYSTEM_EXTENSIONS[]_m4_defun_epi([$0]) T31,31 -m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:81 +m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:73 T17,0 AS_MESSAGE_LOG_FD T28,68 AC_LANG_PREPROC(Objective C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCPP])[]_m4_defun_epi([$0]) T24,33 -m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:351 +m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:323 T23,34 -m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2530 +m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2529 T34,33 -m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:742 +m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:737 T22,1406 AC_SYS_LONG_FILE_NAMES_m4_defun_pro([$0])AC_CACHE_CHECK(for long file names, ac_cv_sys_long_file_names, [ac_cv_sys_long_file_names=yes @@ -210,9 +210,9 @@ if test $ac_cv_sys_long_file_names = yes; then fi []_m4_defun_epi([$0]) T27,36 -m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1939 +m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1845 T34,30 -m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:282 +m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:280 T29,212 _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -224,7 +224,7 @@ _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) T18,65 AC_LANG_PREPROC(C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2405 +m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2403 T14,159 ac_cv_prog_gxx_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_gxx' is obsolete. You should run autoupdate.])dnl @@ -292,9 +292,9 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then fi T26,33 -m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:603 +m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:581 T31,31 -m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:91 +m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:86 T17,1105 AC_FUNC_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_GETGROUPS])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl @@ -330,15 +330,15 @@ LIBS=$ac_save_LIBS T18,23 AC_DEFINE_UNQUOTED_AC_DEFINE_Q([_$0], $@) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 T24,33 m4_location(AC_TIMEZONE)../../lib/autoconf/oldnames.m4:80 T25,30 -m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:478 +m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:365 T28,32 -m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:72 +m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:67 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -399,9 +399,9 @@ AC_LANG_CONFTEST(C++)cat confdefs.h - <<_ACEOF >conftest.$ac_ext $1 _ACEOF T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 T23,34 -m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1126 +m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1121 F5,5 ifdefifdef T20,113 @@ -410,11 +410,11 @@ _AC_ENABLE_IF_ACTIONm4_append_uniq([_AC_USER_OPTS], [$1_$2], [ AS_IF([test "${$1_$2+set}" = set], [$1val=$$1_$2; $3], [$4])dnl T28,33 -m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:545 +m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:510 T28,30 -m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:142 +m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:141 T28,31 -m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:791 +m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:773 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -448,7 +448,7 @@ esac F6,6 syscmdsyscmd T30,33 -m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:131 +m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:123 T28,33 m4_location(AC_HAVE_HEADERS)../../lib/autoconf/oldnames.m4:35 T18,50 @@ -460,7 +460,7 @@ m4_patsubstm4_expand_once([m4_warn([syntax], [do not use m4_patsubst: use patsubst or m4_bpatsubst])])dnl patsubst($@) T34,34 -m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2965 +m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2949 T18,94 _m4_set_contents_2_m4_stack_reverse([_m4_set_($1)], [_m4_set([$1])], [$2[]_m4_defn([_m4_set_($1)])$3], [$4[]]) @@ -472,7 +472,7 @@ ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && echo " T27,31 m4_location(AC_TYPE_SIZE_T)../../lib/autoconf/types.m4:602 T27,33 -m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:591 +m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:564 T8,81 m4_chompm4_format([[%.*s]], m4_index(m4_translit([[$1]], [ /.], [/ ])[./.], [/.]), [$1]) @@ -516,11 +516,11 @@ m4_ifset([AC_PACKAGE_BUGREPORT], T9,0 AN_OUTPUT T27,35 -m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:412 +m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:362 T30,34 -m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1536 +m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1486 T29,33 -m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:255 +m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:249 T23,103 AC_LANG_PREPROC(Erlang)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) @@ -661,9 +661,9 @@ AC_TYPE_INT32_T_m4_defun_pro([$0])_AC_TYPE_INT(32)[]_m4_defun_epi([$0]) T18,2 AC_LANG_SOURCE(Go)$1 T33,33 -m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1737 +m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1599 T24,30 -m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:115 +m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:107 T11,165 _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], @@ -785,7 +785,7 @@ char *realloc (); AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2]) []_m4_defun_epi([$0]) T27,33 -m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:480 +m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:475 T29,33 m4_location(AC_PROGRAM_CHECK)../../lib/autoconf/oldnames.m4:41 T16,2 @@ -835,7 +835,7 @@ T15,267 _AC_CONFIG_FOOSm4_map_args_w([$2], [_AC_CONFIG_REGISTER([$1],], [, [$3])])m4_define([_AC_SEEN_CONFIG(ANY)])m4_define([_AC_SEEN_CONFIG($1)])_AC_CONFIG_COMMANDS_INIT([$4])ac_config_[]m4_tolower([$1])="$ac_config_[]m4_tolower([$1]) m4_if([$1], [COMMANDS], [$2], [m4_normalize([$2])])" T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 T14,441 AC_C_VARARRAYS_m4_defun_pro([$0]) AC_CACHE_CHECK([for variable-length arrays], @@ -858,7 +858,7 @@ T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) T31,36 -m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1660 +m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1625 F7,4 m4_incrincr F8,4 @@ -867,7 +867,7 @@ T33,36 AC_LANG_FUNC_LINK_TRY(Fortran 77)AC_LANG_PROGRAM([], [ call $1]) T28,34 -m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3081 +m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3074 T13,124 _m4_defun_prom4_ifdef([_m4_expansion_stack], [], [_m4_defun_pro_outer([$1])])m4_expansion_stack_push([$1])m4_pushdef([_m4_expanding($1)]) T15,114 @@ -881,7 +881,7 @@ T27,103 AC_LANG_PREPROC(Fortran 77)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -893,7 +893,7 @@ _AS_ECHO_LOG_m4_defun_pro([$0])AS_REQUIRE([_AS_LINENO_PREPARE])[]_m4_popdef([$0] T14,110 AC_DIVERT_PUSHm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], [$1])_m4_divert_raw(_m4_divert([$1], [$2])) T29,33 -m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:500 +m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:485 T17,604 _AS_SHELL_FN_WORKas_fn_return () { (exit [$]1); } as_fn_success () { as_fn_return 0; } @@ -943,13 +943,13 @@ AC_C_FLEXIBLE_ARRAY_MEMBER_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,33 -m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:996 +m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:924 T27,31 m4_location(AC_TYPE_MODE_T)../../lib/autoconf/types.m4:614 T20,34 -m4_location(AC_INIT)../../lib/autoconf/general.m4:1363 +m4_location(AC_INIT)../../lib/autoconf/general.m4:1358 T27,28 -m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1895 +m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1882 T21,97 m4_copyright_condensem4_text_wrap(m4_bpatsubst(m4_flatten([[$1]]), [(C)[- ,0-9]*\([1-9][0-9][0-9][0-9]\)], [(C) \1])) @@ -995,7 +995,7 @@ _AC_LANG_IO_PROGRAM(C++)AC_LANG_PROGRAM([@%:@include ], return ferror (f) || fclose (f) != 0; ]) T31,32 -m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:92 +m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:79 T17,203 m4_cr_not_Letters  !"#*%&'()$+,./0123456789:;<=>?@[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -1063,7 +1063,7 @@ ATEOF ERLCFLAGS="$ERLCFLAGS" ])])[]_m4_defun_epi([$0]) T30,34 -m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2520 +m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2518 T18,3219 AC_FUNC_GETLOADAVG_m4_defun_pro([$0])ac_have_func=no # yes means we've found a way to get the load average. @@ -1166,9 +1166,9 @@ AC_SUBST([$1])dnl _AC_ARG_VAR_PRECIOUS([$1])dnl []_m4_defun_epi([$0]) T30,31 -m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:305 +m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:304 T27,33 -m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:777 +m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:761 T21,1 _m4_divert(M4SH-INIT)6 T18,1 @@ -1241,9 +1241,9 @@ AS_IF([test "$cross_compiling" = yes], T12,66 m4_re_string[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T31,34 -m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2325 +m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2315 T24,33 -m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:834 +m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:833 T31,86 _AC_LANG_IO_PROGRAM(Fortran 77)AC_LANG_PROGRAM([], [dnl @@ -1305,7 +1305,7 @@ AC_TYPE_LONG_DOUBLE_WIDER_m4_defun_pro([$0]) T32,36 m4_location(AC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1719 T25,34 -m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:214 +m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:198 T23,47 _AC_CONFIG_COMPUTE_DESTm4_format([[%.*s]], m4_index([$1:], [:]), [$1]) T18,676 @@ -1360,9 +1360,9 @@ ac_link='$GOC -o conftest$ac_exeext $GOFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&A ac_compiler_gnu=yes T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 T26,34 -m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2757 +m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2748 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 @@ -1376,7 +1376,7 @@ __AC_FC_NAME_MANGLING AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 T34,35 m4_location(AM_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:501 T15,165 @@ -1514,7 +1514,7 @@ m4_PACKAGE_YEAR2012 T44,34 m4_location(AC_VALIDATE_CACHED_SYSTEM_TUPLE)../../lib/autoconf/general.m4:1865 T30,33 -m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:473 +m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:463 T10,211 m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_ifdef([$1], [m4_errprintn( @@ -1583,7 +1583,7 @@ AC_SUBST([FC_DEFINE])dnl AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 F6,3 m4_lenlen T14,42 @@ -1627,7 +1627,7 @@ _AC_FC_LIBRARY_LDFLAGS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 T12,4697 AC_PATH_XTRA_m4_defun_pro([$0])AC_REQUIRE([AC_PATH_X])dnl if test "$no_x" = yes; then @@ -1743,9 +1743,9 @@ AC_SUBST(X_LIBS)dnl AC_SUBST(X_EXTRA_LIBS)dnl []_m4_defun_epi([$0]) T24,34 -m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1106 +m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1094 T30,34 -m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1671 +m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1670 F12,9 m4_debugmodedebugmode T10,280 @@ -1757,7 +1757,7 @@ m4_set_addm4_ifdef([_m4_set([$1],$2)], [1])m4_pushdef([_m4_set([$1])], [$2])_m4_set_size([$1], [m4_incr])$3]) T28,31 -m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:849 +m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:841 T14,549 _AC_RUN_IFELSE_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_try_run], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_try_run], [LINENO], @@ -1777,7 +1777,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu T24,34 -m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2453 +m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2452 T14,122 m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], [m4_warn([syntax], @@ -1843,13 +1843,13 @@ fi T19,92 AC_CHECK_DECLS_ONCE_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_DECL_ONCE(], [)], [], $1)[]_m4_defun_epi([$0]) T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 T25,34 -m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:902 +m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:894 T27,1 _AC_LANG_PREFIX(Fortran 77)F T23,28 -m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:177 +m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:150 T32,0 m4_include(autoconf/programs.m4) T10,412 @@ -1865,7 +1865,7 @@ test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ]) T37,33 -m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:173 +m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:162 T33,34 m4_location(AC_CHECK_TOOL_PREFIX)../../lib/autoconf/programs.m4:183 T17,92 @@ -1874,7 +1874,7 @@ _AC_COMPILE_IFELSE($@)[]_m4_defun_epi([$0]) T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T27,34 -m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1654 +m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1636 T18,268 _AC_INIT_COPYRIGHTAC_COPYRIGHT(m4_defn([_AC_COPYRIGHT_YEARS]), [VERSION_FSF], [ m4_copyright_condense])dnl @@ -1911,9 +1911,9 @@ dnl # for best performing tool in a list breaks down. rm -f conftest.in conftest.tmp conftest.nl conftest.out])dnl T24,34 -m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:350 +m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:349 T31,34 -m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1616 +m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1564 T19,700 AC_TYPE_LONG_DOUBLE_m4_defun_pro([$0]) AC_CACHE_CHECK([for long double], [ac_cv_type_long_double], @@ -2063,7 +2063,7 @@ m4_ifdef([_m4_diverting([AC_PROG_INSTALL])], [-]), [-], [[m4_unquote(], [)]], T17,70 AC_CONFIG_HEADERS_m4_defun_pro([$0])_AC_CONFIG_FOOS([HEADERS], $@)[]_m4_defun_epi([$0]) T32,35 -m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:108 +m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:107 T8,66 m4_ifsetm4_ifdef([$1], [m4_ifval(_m4_defn([$1]), [$2], [$3])], @@ -2088,7 +2088,7 @@ T17,41 AC_PROVIDE_IFELSEm4_ifdef([m4_provide($1)], [$2], [$3]) T27,28 -m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1608 +m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1444 T12,30 m4_esyscmd_sm4_chomp_all(m4_esyscmd([$1])) T6,264 @@ -2116,7 +2116,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 T32,0 m4_include(autoconf/autoscan.m4) T20,201 @@ -2137,7 +2137,7 @@ AC_TEST_PROGRAM_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_PR You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_RUN], [AC_TRY_RUN($@)])[]_m4_defun_epi([$0]) T33,34 -m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2908 +m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2907 T17,272 _AS_IDENTIFIER_IFm4_cond([[$1]], [], [], [m4_eval(m4_len(m4_translit([[$1]], ][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]][)) > 0)], [1], [], @@ -2256,9 +2256,9 @@ AC_PROGRAMS_PATH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGRA You should run autoupdate.])dnl m4_if($#, 0, [AC_PATH_PROGS], [AC_PATH_PROGS($@)])[]_m4_defun_epi([$0]) T25,29 -m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:82 +m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:81 T27,34 -m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:852 +m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:851 T13,84 _AS_QUOTE_OLDm4_warn([obsolete], [back quotes and double quotes must not be escaped in: $1])$1 @@ -2302,18 +2302,18 @@ T9,72 m4_mapallm4_if([$2], [], [], [_m4_foreach([m4_apply([$1],], [)], [], $2)]) T37,33 -m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:247 +m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:245 F14,6 _m4_divert_rawdivert T13,71 AC_LIBSOURCES_m4_defun_pro([$0])m4_map_args([AC_LIBSOURCE], $1)[]_m4_defun_epi([$0]) T37,32 -m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:320 +m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:301 T12,94 AH_CHECK_LIBAH_TEMPLATE(AS_TR_CPP([HAVE_LIB$1]), [Define to 1 if you have the `$1' library (-l$1).]) T40,33 -m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:240 +m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:238 T6,122 m4_cdrm4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], @@ -2491,9 +2491,9 @@ ac_ext=$ac_save_ext _AC_PROG_FC_G []_m4_defun_epi([$0]) T29,33 -m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:452 +m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:437 T30,33 -m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:79 +m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:76 T23,60 AC_LANG_PROGRAM(Erlang)[-module(conftest). -export([start/0]).] @@ -2565,7 +2565,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 T22,2800 _AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_CANONICAL_HOST])dnl _AC_FORTRAN_ASSERT()dnl @@ -2656,7 +2656,7 @@ fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" AC_SUBST([]_AC_LANG_PREFIX[]LIBS) []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2511 +m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2503 F5,5 indirindir T19,572 @@ -2738,11 +2738,11 @@ AC_HAVE_FUNCS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_FUNC You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_FUNCS], [AC_CHECK_FUNCS($@)])[]_m4_defun_epi([$0]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 T28,33 m4_location(AM_PROG_INSTALL)../../lib/autoconf/oldnames.m4:92 T30,30 -m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:437 +m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:406 T24,23 _AC_LANG_NULL_PROGRAM(C)AC_LANG_PROGRAM([], []) T19,295 @@ -2757,15 +2757,15 @@ AC_CHECK_DECLS([sys_siglist],,, ]) []_m4_defun_epi([$0]) T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 T31,35 -m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:577 +m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:573 T29,30 -m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:298 +m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:297 T28,28 -m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1391 +m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1378 T26,28 -m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1776 +m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1739 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -2791,7 +2791,7 @@ AC_PROGRAMS_CHECK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGR You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_PROGS], [AC_CHECK_PROGS($@)])[]_m4_defun_epi([$0]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -2803,9 +2803,9 @@ m4_if($#, 0, [AC_FUNC_STRCOLL], [AC_FUNC_STRCOLL($@)])[]_m4_defun_epi([$0]) F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 T34,33 -m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:274 +m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:273 T18,8 m4_PACKAGE_TARNAMEautoconf T14,87 @@ -2897,9 +2897,9 @@ AC_FUNC_STRTOLD_m4_defun_pro([$0]) T21,90 AC_CHECK_HEADERS_ONCE_m4_defun_pro([$0])m4_map_args_w([$1], [_AC_CHECK_HEADER_ONCE(], [)])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 T26,34 -m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:365 +m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:355 T18,3540 _AC_OUTPUT_SUBDIRS # @@ -3033,7 +3033,7 @@ AC_DEFINE_UNQUOTED(AS_TR_CPP(sizeof_$1), $AS_TR_SH([ac_cv_sizeof_$1]), [The size of `$1', as computed by sizeof.]) []_m4_defun_epi([$0]) T30,34 -m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1800 +m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1752 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -3043,9 +3043,9 @@ AC_REQUIRE_AUX_FILEAS_LITERAL_WORD_IF([$1], [], T17,31 m4_default_quotedm4_if([$1], [], [[$2]], [[$1]]) T27,34 -m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2739 +m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2729 T29,27 -m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:330 +m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:328 T11,88 AH_VERBATIMAS_LITERAL_WORD_IF([$1], [AH_OUTPUT(_m4_expand([$1]), AS_ESCAPE([[$2]], [\']))]) @@ -3104,7 +3104,7 @@ AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0 T12,21 AC_LANG_CASEm4_case(_AC_LANG, $@) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 T26,33 m4_location(AC_ST_BLKSIZE)../../lib/autoconf/oldnames.m4:76 T15,470 @@ -3120,7 +3120,7 @@ AC_LANG_CONFTEST(Fortran 77)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,35 -m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:541 +m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:508 T21,33 m4_location(AC_UID_T)../../lib/autoconf/oldnames.m4:82 T31,33 @@ -3134,11 +3134,11 @@ AC_MSG_CHECKING{ _AS_ECHO_LOG([checking $1]) _AS_ECHO_N([checking $1... ]); }dnl T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 T31,36 -m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1774 +m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1749 T27,35 -m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:921 +m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:912 T14,97 AC_CHECK_FILES_m4_defun_pro([$0])m4_map_args_w([$1], [AC_CHECK_FILE(_$0(], [)[$2], [$3])])[]_m4_defun_epi([$0]) T17,733 @@ -3159,7 +3159,7 @@ _AC_CANONICAL_SPLIT([host]) m4_ifdef([_m4_diverting([AC_CANONICAL_HOST])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_HOST],], [, _m4_divert_dump)]])) T24,34 -m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2688 +m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2687 T17,109 _AC_LANG_DISPATCHm4_ifdef([$1($2)], [m4_indir([$1($2)], m4_shift2($@))], @@ -3167,7 +3167,7 @@ _AC_LANG_DISPATCHm4_ifdef([$1($2)], F9,6 m4_syscmdsyscmd T20,29 -m4_location(AC_LANG)../../lib/autoconf/lang.m4:91 +m4_location(AC_LANG)../../lib/autoconf/lang.m4:88 T16,116 _AC_ARG_VAR_LIBS_m4_defun_pro([$0])AC_ARG_VAR([LIBS], [libraries to pass to the linker, e.g. -l])[]_m4_defun_epi([$0]) @@ -3186,7 +3186,7 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T30,33 -m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:77 +m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:42 T32,0 m4_include(autoconf/autotest.m4) T16,84 @@ -3601,7 +3601,7 @@ fi T9,22 m4_shift2m4_shift(m4_shift($@)) T23,28 -m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1721 +m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1661 T18,80 m4_expansion_stackm4_stack_foreach_sep_lifo([_$0], [_$0_entry(], [) ])m4_location[: the top level] @@ -3642,10 +3642,10 @@ m4_version_prereqm4_if(m4_version_compare([2.69], [$1]), [m4_fatal([Autoconf version $1 or higher is required], [63])])], [$2]) -T25,30 -m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:100 +T25,29 +m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:97 T25,36 -m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1349 +m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1201 T10,43 _AC_DEFINEAS_ECHO(["AS_ESCAPE([[$1]])"]) >>confdefs.h T24,33 @@ -3655,9 +3655,9 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 T30,34 -m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2608 +m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2606 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -3687,7 +3687,7 @@ AC_LANG_POP(Fortran 77)dnl T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 T13,110 _AC_ENABLE_IF@%:@ Check whether --$1-$2 was given. _AC_ENABLE_IF_ACTION([$1], m4_translit([$2], [-+.], [___]), [$3], [$4]) @@ -3724,7 +3724,7 @@ else fi []_m4_defun_epi([$0]) T29,32 -m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:720 +m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:719 T15,97 _AC_CHECK_FILES[$1], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1]), [1], [Define to 1 if you have the file `$1'.])] @@ -3757,9 +3757,9 @@ AC_CACHE_CHECK([for Erlang/OTP root directory], AC_SUBST([ERLANG_ROOT_DIR], [$ac_cv_erlang_root_dir]) []_m4_defun_epi([$0]) T32,31 -m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:409 +m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:389 T28,28 -m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1840 +m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1828 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -3797,11 +3797,11 @@ fi rm -f conftest.data []_m4_defun_epi([$0]) T28,34 -m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1066 +m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1030 T19,34 -m4_location(AC_RSH)../../lib/autoconf/programs.m4:860 +m4_location(AC_RSH)../../lib/autoconf/programs.m4:858 T29,31 -m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:803 +m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:800 T13,333 m4_divert_popm4_if([$1], [], [], [$1], _m4_defn([_m4_divert_diversion]), [], @@ -3832,7 +3832,7 @@ AC_ARG_VAR(YFLAGS, will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications.])[]_m4_defun_epi([$0]) T32,33 -m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:182 +m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:181 T9,190 AC_PREFIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PREFIX' is obsolete. You should run autoupdate.])dnl @@ -3868,7 +3868,7 @@ AC_CHECK_HEADERS(string.h)[]_m4_defun_epi([$0]) T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T42,27 -m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:378 +m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:345 T12,115 AC_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text(m4_default_quoted([$2], [VERSION_USER]), [m4_default([$3], [m4_newline])([$1])]) @@ -3883,13 +3883,13 @@ _AC_FC_FUNC([$1],[$2]) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:393 +m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:388 T27,35 -m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:981 +m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:950 T31,0 m4_include(autoconf/headers.m4) T27,34 -m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3068 +m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3056 T9,86 AH_BOTTOMm4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl AH_VERBATIM([zzzz]_AH_COUNTER, [$1]) @@ -3898,7 +3898,7 @@ m4_location(AC_TYPE_INT16_T)../../lib/autoconf/types.m4:625 T25,33 m4_location(AC_FIND_XTRA)../../lib/autoconf/oldnames.m4:58 T26,34 -m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2791 +m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2777 T34,292 _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTLAC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ], ac_cv_sys_tiocgwinsz_in_sys_ioctl_h, @@ -3941,11 +3941,11 @@ AC_LANG_POP(C++)dnl T17,2 AC_LANG_SOURCE(C)$1 T33,33 -m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:223 +m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:220 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 T27,34 -m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2809 +m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2808 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -4148,7 +4148,7 @@ m4_translittranslit T28,35 m4_location(fp_FUNC_FNMATCH)../../lib/autoconf/functions.m4:594 T27,34 -m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1395 +m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1363 T29,220 _AC_CHECK_HEADER_COMPILE_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -4171,7 +4171,7 @@ m4_divert_pushm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], T21,95 _AC_LANG_NULL_PROGRAM_m4_defun_pro([$0])AC_LANG_SOURCE([_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:299 +m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:259 T8,87 m4_fatalm4_errprintn(m4_location[: error: $1] m4_expansion_stack)m4_exit(m4_if([$2],, 1, [$2])) @@ -4251,9 +4251,9 @@ ${ DEFS=`sed -n "$ac_script" confdefs.h` ] T26,31 -m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:598 +m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:590 T24,33 -m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:896 +m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:891 T20,98 _AC_LANG_OPENMP(C++) #ifndef _OPENMP @@ -4265,13 +4265,13 @@ int main () { return omp_get_num_threads (); } T27,2 AC_LANG_SOURCE(Objective C)$1 T24,34 -m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2371 +m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2350 T29,31 m4_location(AC_TYPE_UINT64_T)../../lib/autoconf/types.m4:631 T20,33 m4_location(AC_LN_S)../../lib/autoconf/oldnames.m4:62 T27,31 -m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:836 +m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:829 T16,225 _AS_LINENO_WORKS as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO @@ -4349,19 +4349,19 @@ m4_wrap_m4_wrap([], [$1[]]) T16,9 _AS_TEST_X_WORKStest -x / T28,35 -m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:945 +m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:927 T25,34 -m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2550 +m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2538 T29,34 -m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2696 +m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2694 T26,36 -m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1840 +m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1829 T25,34 -m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:464 +m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:451 T26,34 -m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2921 +m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2920 T22,34 -m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2941 +m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2938 T12,110 _m4_set_sizem4_define([_m4_set_size($1)], m4_ifdef([_m4_set_size($1)], [$2(m4_indir([_m4_set_size($1)]))], @@ -4405,7 +4405,7 @@ AC_STRUCT_ST_BLOCKS_m4_defun_pro([$0])AC_CHECK_MEMBERS([struct stat.st_blocks], T6,43 m4_map_m4_foreach([_m4_apply([$1],], [)], [], $2) T28,34 -m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:612 +m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:524 T10,54 m4_includem4_include_unique([$1])dnl m4_builtin([include], [$1]) @@ -4583,9 +4583,9 @@ AC_CONFIG_SUBDIRS_m4_defun_pro([$0])AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])AC_RE T28,36 m4_location(AM_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1385 T22,30 -m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:358 +m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:323 T36,33 -m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1073 +m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1071 T26,1 _m4_divert(HEADER-COMMENT)2 T26,688 @@ -4884,21 +4884,21 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T22,33 -m4_location(AC_PREREQ)../../lib/autoconf/general.m4:307 +m4_location(AC_PREREQ)../../lib/autoconf/general.m4:305 T28,35 -m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:551 +m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:546 T10,177 AM_MINGW32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_MINGW32' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MINGW32], [AC_MINGW32($@)])[]_m4_defun_epi([$0]) T31,35 -m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:803 +m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:715 T11,150 AC_SCO_INTL_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SCO_INTL' is obsolete. You should run autoupdate.])dnl AC_FUNC_STRFTIME[]_m4_defun_epi([$0]) T27,33 -m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:269 +m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:268 T23,36 m4_location(AC_VPRINTF)../../lib/autoconf/functions.m4:1966 T21,36 @@ -4927,19 +4927,19 @@ _AS_DIRNAME_SED_m4_defun_pro([$0])AS_ECHO([X[]$1]) | T25,33 m4_location(AC_ST_BLOCKS)../../lib/autoconf/oldnames.m4:77 T33,33 -m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:828 +m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:819 T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T30,34 -m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2344 +m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2332 T30,33 -m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:838 +m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:833 T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -4948,9 +4948,9 @@ AM_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T37,30 -m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:331 +m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:329 T27,33 -m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:729 +m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:677 T6,37 _AC_CC_AC_LANG_DISPATCH([$0], _AC_LANG, $@) T16,65 @@ -4968,9 +4968,9 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 T27,27 -m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:847 +m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:822 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -4980,7 +4980,7 @@ m4_providem4_ifdef([m4_provide($1)], [], [m4_set_add([_m4_provide], [$1], [m4_define([m4_provide($1)], m4_ifdef([_m4_diverting], [_m4_defn([_m4_diverting])]))])]) T26,28 -m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1801 +m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1787 T18,209 AC_LONG_FILE_NAMES_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LONG_FILE_NAMES' is obsolete. You should run autoupdate.])dnl @@ -4992,7 +4992,7 @@ AC_CYGWIN32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_CYGWIN32' i You should run autoupdate.])dnl m4_if($#, 0, [AC_CYGWIN], [AC_CYGWIN($@)])[]_m4_defun_epi([$0]) T28,30 -m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:145 +m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:137 T13,100 AS_LINENO_POP_m4_defun_pro([$0])eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno[]_m4_defun_epi([$0]) T11,65 @@ -5002,7 +5002,7 @@ m4_ignore T28,33 m4_location(AC_STDC_HEADERS)../../lib/autoconf/oldnames.m4:75 T29,35 -m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:150 +m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:149 T20,184 _AC_FC_NAME_MANGLING_m4_defun_pro([$0])AC_REQUIRE([AC_FC_LIBRARY_LDFLAGS])dnl AC_REQUIRE([AC_FC_DUMMY_MAIN])dnl @@ -5069,19 +5069,19 @@ if test $ac_cv_func_chown_works = yes; then fi []_m4_defun_epi([$0]) T30,34 -m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1828 +m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1815 T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T9,0 AU_DEFINE T28,34 -m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2559 +m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2556 T8,179 AC_ERROR_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MSG_ERROR], [AC_MSG_ERROR($@)])[]_m4_defun_epi([$0]) T27,34 -m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2463 +m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2461 T9,184 AC_SIZE_T_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SIZE_T' is obsolete. You should run autoupdate.])dnl @@ -5119,11 +5119,11 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 T27,27 -m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:661 +m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:636 T32,32 -m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:211 +m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:175 T19,153 _AC_CONFIG_REGISTERm4_if([$1], [COMMANDS], [], @@ -5153,15 +5153,15 @@ _AC_FC_MAIN AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T34,30 -m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:257 +m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:256 T24,33 m4_location(AC_CYGWIN32)../../lib/autoconf/oldnames.m4:86 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T24,27 -m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:417 +m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:388 T23,27 -m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:496 +m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:448 T7,75 m4_warn_m4_warn([$1], [$2], m4_ifdef([_m4_expansion_stack], [m4_expansion_stack])) @@ -5214,9 +5214,9 @@ T16,110 AC_CHECK_MEMBERS_m4_defun_pro([$0])m4_map_args_sep([AC_CHECK_MEMBER(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:582 +m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:567 T31,33 -m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1031 +m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1026 T16,245 m4_cr_not_digits  !"#*%&'()$+,./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -5230,7 +5230,7 @@ AC_CACHE_VAL([ac_cv_func_setvbuf_reversed], [ac_cv_func_setvbuf_reversed=no]) T12,25 m4_set_listcm4_set_map_sep([$1], [,]) T27,36 -m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1584 +m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1545 T21,33 m4_location(AC_ERROR)../../lib/autoconf/oldnames.m4:34 T19,584 @@ -5277,13 +5277,13 @@ if test $ac_cv_func_$1_empty_string_bug = yes; then fi T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 T21,210 AM_FUNC_ERROR_AT_LINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_ERROR_AT_LINE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_ERROR_AT_LINE], [AC_FUNC_ERROR_AT_LINE($@)])[]_m4_defun_epi([$0]) T34,35 -m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:479 +m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:460 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -5583,7 +5583,7 @@ AC_TYPE_UINTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2046 +m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2031 T31,443 _AC_SYS_LARGEFILE_TEST_INCLUDES@%:@include /* Check that off_t can represent 2**63 - 1 correctly. @@ -5611,7 +5611,7 @@ T26,96 AC_DISABLE_OPTION_CHECKING_m4_defun_pro([$0])m4_divert_once([DEFAULTS], [enable_option_checking=no]) []_m4_defun_epi([$0]) T23,34 -m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2396 +m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2395 T34,0 m4_include(autoconf/autoheader.m4) T24,1 @@ -5624,7 +5624,7 @@ T10,3 m4_newline $1 T28,30 -m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:242 +m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:241 T15,77 _AC_LANG_PREFIX_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T37,125 @@ -6003,10 +6003,10 @@ fi []_m4_defun_epi([$0]) T19,40 AC_CONFIG_MACRO_DIR_m4_defun_pro([$0])[]_m4_defun_epi([$0]) -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp T31,35 -m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:568 +m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:557 T32,0 m4_include(autoconf/specific.m4) T16,73 @@ -6046,9 +6046,9 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T26,34 -m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:150 +m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:120 T29,28 -m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1414 +m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1396 T19,2 _AC_LANG_PREFIX(Go)GO T9,184 @@ -6077,7 +6077,7 @@ __program____program__ T6,26 AS_BOX_$0(m4_expand([$1]), [$2]) T28,36 -m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1426 +m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1417 T7,156 m4_defnm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_defn([$1])], @@ -6088,9 +6088,9 @@ fp_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `fp_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T28,28 -m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1156 +m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1101 T28,36 -m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1380 +m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1362 T11,544 _AS_PREPARE_m4_defun_pro([$0])m4_pushdef([AS_REQUIRE])m4_pushdef([AS_REQUIRE_SHELL_FN], _m4_defn([_AS_REQUIRE_SHELL_FN]) )m4_pushdef([AS_MESSAGE_LOG_FD], [-1])_AS_ERROR_PREPARE @@ -6138,9 +6138,9 @@ m4_location(AC_ST_RDEV)../../lib/autoconf/oldnames.m4:78 T33,33 m4_location(AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:999 T27,28 -m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1821 +m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1808 T24,34 -m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2267 +m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2266 T6,4 m4_car[$1] T21,196 @@ -6252,7 +6252,7 @@ fi])dnl T14,62 m4_set_foreachm4_pushdef([$2])m4_set_map_sep([$1], [m4_define([$2],], [)$3]) T30,33 -m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:828 +m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:779 T11,190 AC_SET_MAKE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SET_MAKE' is obsolete. You should run autoupdate.])dnl @@ -6269,7 +6269,7 @@ AC_SEARCH_LIBS([strerror], [cposix])[]_m4_defun_epi([$0]) T16,101 m4_stack_foreach_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2(_m4_defn([m4_tmp-$1]))]) T26,34 -m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:171 +m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:164 T12,77 m4_chomp_allm4_format([[%.*s]], m4_bregexp(m4_translit([[$1]], [ /], [/ ]), [/*$]), [$1]) @@ -6278,7 +6278,7 @@ AC_LN_S_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LN_S' is obsole You should run autoupdate.])dnl m4_if($#, 0, [AC_PROG_LN_S], [AC_PROG_LN_S($@)])[]_m4_defun_epi([$0]) T19,33 -m4_location(AC_USG)../../lib/autoconf/headers.m4:852 +m4_location(AC_USG)../../lib/autoconf/headers.m4:840 T6,46 m4_cmpm4_eval((([$1]) > ([$2])) - (([$1]) < ([$2]))) T9,373 @@ -6316,9 +6316,9 @@ AC_FUNC_MBRTOWC_m4_defun_pro([$0]) T31,33 m4_location(AC_WORDS_BIGENDIAN)../../lib/autoconf/oldnames.m4:83 T28,34 -m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:699 +m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:662 T26,36 -m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:2025 +m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:1975 T17,51 _AS_ECHO_UNQUOTEDAS_ECHO(["$1"]) >&m4_default([$2], [AS_MESSAGE_FD]) T19,120 @@ -6328,11 +6328,11 @@ _AC_FUNCS_EXPANSION m4_define([_AC_FUNCS_EXPANSION], []) T19,34 -m4_location(_AC_DO)../../lib/autoconf/general.m4:2379 +m4_location(_AC_DO)../../lib/autoconf/general.m4:2377 T30,33 m4_location(AC_YYTEXT_POINTER)../../lib/autoconf/oldnames.m4:84 T37,30 -m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:290 +m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:289 T20,96 _AS_DETECT_SUGGESTED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_SUGGESTED_BODY], [$1 || AS_EXIT])[]_m4_defun_epi([$0]) T17,57 @@ -6469,7 +6469,7 @@ AC_CHECK_HEADERS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_HEADER(], [)]) [$3], [$4])dnl]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:451 +m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:450 F8,5 m4_indirindir T12,1 @@ -6510,7 +6510,7 @@ m4_divert_pop()dnl m4_ifdef([_m4_diverting([AC_NO_EXECUTABLES])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_NO_EXECUTABLES],], [, _m4_divert_dump)]])) T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 F12,9 m4_changecomchangecom F6,6 @@ -6526,7 +6526,7 @@ $2 T10,62 m4_noquotem4_changequote([-=<{(],[)}>=-])$1-=<{()}>=-m4_changequote([,]) T27,34 -m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:92 +m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:86 T13,42 AS_VAR_SET_IFAS_IF([AS_VAR_TEST_SET([$1])], [$2], [$3]) F8,5 @@ -6539,7 +6539,7 @@ _AS_RUNm4_ifval([$2], [{ $as_echo "$as_bourne_compatible"$1 | as_run=a $2; }], T36,33 m4_location(AC_SYS_SIGLIST_DECLARED)../../lib/autoconf/oldnames.m4:79 T27,30 -m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:225 +m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:224 T19,260 _AC_FC_DIALECT_YEAR_m4_defun_pro([$0])m4_case(m4_bpatsubsts(m4_tolower([$1]), [fortran],[], [ *],[]), [77],[1977], [1977],[1977], @@ -6690,9 +6690,9 @@ AC_CHECK_HEADER_STDBOOL_m4_defun_pro([$0])AC_CACHE_CHECK([for stdbool.h that con AC_CHECK_TYPES([_Bool]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:672 +m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:667 T27,34 -m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1086 +m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1081 T18,98 _AC_LANG_OPENMP(C) #ifndef _OPENMP @@ -6814,7 +6814,7 @@ esac AS_LINENO_POP T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 T23,2 AC_LANG_SOURCE(Fortran)$1 T12,4700 @@ -6973,9 +6973,9 @@ T12,145 AC_LANG_CALL_m4_defun_pro([$0])m4_ifval([$2], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 T32,33 -m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:357 +m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:353 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -7157,7 +7157,7 @@ case $ac_cv_c_int$1_t in #( esac []_m4_defun_epi([$0]) T44,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:278 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:268 T19,166 _AC_CHECK_FUNC_ONCE_AH_CHECK_FUNC([$1])AC_DEFUN([_AC_Func_$1], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" $1"])]) @@ -7167,13 +7167,13 @@ AM_EXEEXT_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_EXEEXT' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_EXEEXT], [AC_EXEEXT($@)])[]_m4_defun_epi([$0]) T34,31 -m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:738 +m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:718 T28,28 -m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1942 +m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1941 T35,34 -m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:225 +m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:193 T35,34 -m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1723 +m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1696 T17,1432 AC_TYPE_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_UID_T])dnl AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups, @@ -7257,11 +7257,11 @@ else fi []_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2387 +m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2385 T25,27 m4_location(AC_LANG_OBJC)../../lib/autoconf/c.m4:274 T38,34 -m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1679 +m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1678 F7,4 m4_evaleval T26,2 @@ -7289,7 +7289,7 @@ program_transform_name=`AS_ECHO(["$program_transform_name"]) | sed "$ac_script"` m4_ifdef([_m4_diverting([AC_ARG_PROGRAM])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_ARG_PROGRAM],], [, _m4_divert_dump)]])) T47,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:295 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:283 T24,3 _m4_divert(VERSION_USER)202 T15,186 @@ -7320,9 +7320,9 @@ AC_TRY_LINK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_LINK' i You should run autoupdate.])dnl AC_LINK_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])[]_m4_defun_epi([$0]) T23,30 -m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:313 +m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:297 T35,33 -m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:722 +m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:634 T15,23 AS_EXECUTABLE_Pas_fn_executable_p $1[] T15,129 @@ -7364,9 +7364,9 @@ AC_FUNC_MEMCMP_m4_defun_pro([$0])AC_CACHE_CHECK([for working memcmp], ac_cv_func test $ac_cv_func_memcmp_working = no && AC_LIBOBJ([memcmp]) []_m4_defun_epi([$0]) T31,31 -m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:160 +m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:148 T27,27 -m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:615 +m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:567 T13,50 AC_MSG_RESULT{ _AS_ECHO_LOG([result: $1]) _AS_ECHO([$1]); }dnl @@ -7376,7 +7376,7 @@ AC_LANG_CONFTEST(Fortran)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,34 -m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2067 +m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2064 T6,598 m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4], @@ -7466,7 +7466,7 @@ AC_PREREQm4_if(m4_version_compare([2.69], [$1]), [63])])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 T14,1574 _AC_CHECK_PROG_m4_defun_pro([$0])# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=$[2] @@ -7522,7 +7522,7 @@ else fi []_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1961 +m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1955 T33,0 m4_include(autoconf/functions.m4) T17,185 @@ -7679,7 +7679,7 @@ test -n "$target_alias" && m4_ifdef([_m4_diverting([AC_CANONICAL_TARGET])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_TARGET],], [, _m4_divert_dump)]])) T31,35 -m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:904 +m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:887 T13,196 AC_GETLOADAVG_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_GETLOADAVG' is obsolete. You should run autoupdate.])dnl @@ -7761,7 +7761,7 @@ AC_TEST_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_CPP' i You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_CPP], [AC_TRY_CPP($@)])[]_m4_defun_epi([$0]) T24,28 -m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1934 +m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1903 T16,265 AC_LANG(Fortran)ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&AS_MESSAGE_LOG_FD' @@ -7769,13 +7769,13 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu T32,27 -m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:321 +m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:318 T34,33 m4_location(AC_STAT_MACROS_BROKEN)../../lib/autoconf/oldnames.m4:74 T24,34 -m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:883 +m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:867 T25,27 -m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:900 +m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:871 T25,34 m4_location(AC_ISC_POSIX)../../lib/autoconf/specific.m4:446 T16,27 @@ -7804,7 +7804,7 @@ _AC_CACHE_CHECK_INT_m4_defun_pro([$0])AC_CACHE_CHECK([$1], [$2], T15,64 AC_TYPE_UINT8_T_m4_defun_pro([$0])_AC_TYPE_UNSIGNED_INT(8)[]_m4_defun_epi([$0]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -7859,7 +7859,7 @@ _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T22,33 m4_location(AC_FD_MSG)../../lib/autoconf/general.m4:384 T33,34 -m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1679 +m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1675 T25,53 _m4_expansion_stack_entry_m4_defn([m4_location($1)])[: $1 is expanded from...] T19,191 @@ -7997,7 +7997,7 @@ AS_VAR_IF([ac_Lib], [yes], AS_VAR_POPDEF([ac_Lib])dnl []_m4_defun_epi([$0]) T25,30 -m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:128 +m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:125 T14,159 ac_cv_prog_g77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_g77' is obsolete. You should run autoupdate.])dnl @@ -8054,9 +8054,9 @@ _AC_PROG_FC_C_O AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T29,31 -m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:361 +m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:344 T26,33 -m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:895 +m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:883 T14,78 AC_TRY_COMMAND_m4_defun_pro([$0]){ ac_try='$1' _AC_EVAL([$ac_try]); }[]_m4_defun_epi([$0]) @@ -8091,11 +8091,11 @@ AC_TYPE_INTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1188 +m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1154 T28,34 -m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1449 +m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1420 T36,33 -m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:661 +m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:600 T9,127 _m4_splitm4_changequote([-=<{(],[)}>=-])[m4_bpatsubst(-=<{(-=<{($1)}>=-)}>=-, -=<{($2)}>=-, -=<{(]$3[)}>=-)]m4_changequote([, ]) @@ -8205,13 +8205,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T35,34 -m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1442 +m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1433 T26,35 m4_location(AC_GETLOADAVG)../../lib/autoconf/functions.m4:808 T24,34 -m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1116 +m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1111 T36,32 -m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:162 +m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:160 T8,85 _m4_joinm4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift2($@))]) @@ -8238,13 +8238,13 @@ AC_INLINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_INLINE' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_C_INLINE], [AC_C_INLINE($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2856 +m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2844 T10,24 AN_PROGRAMAN_OUTPUT([program], $@) T36,30 -m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:374 +m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:372 T34,31 -m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:542 +m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:503 T16,4 _m4_divert(BODY)1000 T18,1268 @@ -8294,7 +8294,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T29,34 -m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:177 +m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:134 T35,31 m4_location(AC_STRUCT_DIRENT_D_INO)../../lib/autoconf/types.m4:964 T11,967 @@ -8330,11 +8330,11 @@ AC_C_TYPEOF_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 T28,33 m4_location(AC_PROGRAM_PATH)../../lib/autoconf/oldnames.m4:43 T32,31 -m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:68 +m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:63 T20,177 _AC_CHECK_HEADER_OLD_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `$0' is obsolete. You should use AC_CHECK_HEADER with a fourth argument.])_AC_CHECK_HEADER_PREPROC($@)[]_m4_defun_epi([$0]) @@ -8352,15 +8352,15 @@ else fi []_m4_defun_epi([$0]) T27,30 -m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:382 +m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:381 T24,34 -m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:713 +m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:709 T12,10 m4_cr_digits0123456789 T31,33 -m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:161 +m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:158 T33,27 -m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:311 +m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:308 T17,17 m4_PACKAGE_STRINGGNU Autoconf 2.69 T30,6 @@ -8382,12 +8382,12 @@ AS_TEST_X_m4_defun_pro([$0])AS_REQUIRE([_AS_TEST_PREPARE])[]_m4_popdef([$0])m4_i T21,145 AC_LANG_FUNC_LINK_TRY_m4_defun_pro([$0])m4_ifval([$1], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) -T27,36 -m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:1190 +T27,35 +m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:987 T32,34 -m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1688 +m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1684 T25,33 -m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:84 +m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:82 T28,33 m4_location(AC_HEADER_EGREP)../../lib/autoconf/oldnames.m4:37 T15,863 @@ -8414,9 +8414,9 @@ if test $ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o = no; then fi []_m4_defun_epi([$0]) T23,34 -m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2765 +m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2764 T31,32 -m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1077 +m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1050 F10,6 _m4_popdefpopdef T9,68 @@ -8463,7 +8463,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 T24,2 _AC_LANG_PREFIX(Fortran)FC T15,376 @@ -8529,9 +8529,9 @@ AC_CONFIG_COMMANDS_PRE([case $FC_MODOUT in #( esac])dnl []_m4_defun_epi([$0]) T32,33 -m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:285 +m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:278 T28,34 -m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2670 +m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2661 T29,33 m4_location(AC_PROGRAM_EGREP)../../lib/autoconf/oldnames.m4:42 T11,162 @@ -8591,7 +8591,7 @@ AC_MSG_RESULT([$cross_compiling]) T12,16 m4_wrap_lifo_m4_wrap([$1[]]) T22,34 -m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1476 +m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1475 T10,103 m4_flattenm4_if(m4_index([$1], [ ]), [-1], [[$1]], @@ -8632,9 +8632,9 @@ _AC_LANG_OPENMP(Fortran 77) T31,68 AC_LANG_COMPILER(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXX])[]_m4_defun_epi([$0]) T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 T34,34 -m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:332 +m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:314 T8,28 _AS_CASE [@%:@(] $1[)] : @@ -8675,9 +8675,9 @@ AC_ST_BLKSIZE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLKSIZ You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_BLKSIZE], [AC_STRUCT_ST_BLKSIZE($@)])[]_m4_defun_epi([$0]) T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 T29,36 -m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1671 +m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1665 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -8771,9 +8771,9 @@ AS_VAR_IF([ac_File], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_File])dnl []_m4_defun_epi([$0]) T37,34 -m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1862 +m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1812 T24,34 -m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1490 +m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1481 T11,322 AC_LANG_POP_m4_defun_pro([$0])m4_ifval([$1], [m4_if([$1], m4_defn([_AC_LANG]), [], @@ -8798,9 +8798,9 @@ if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then fi []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 T28,28 -m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1357 +m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1205 T20,112 _AC_MSG_LOG_CONFTESTAS_ECHO(["$as_me: failed program was:"]) >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.$ac_ext >&AS_MESSAGE_LOG_FD @@ -8839,11 +8839,11 @@ AC_CHECK_TYPE_m4_defun_pro([$0])m4_cond([$#], [3], T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 T20,294 _AC_COMPUTE_INT_BODY AS_LINENO_PUSH([$[]1]) if test "$cross_compiling" = yes; then @@ -8865,7 +8865,7 @@ AC_LANG_FORTRAN77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_ You should run autoupdate.])dnl AC_LANG(Fortran 77)[]_m4_defun_epi([$0]) T32,34 -m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2895 +m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2894 T6,91 _AC_DO_m4_defun_pro([$0])_AC_RUN_LOG([eval "$1"], [_AC_DO_ECHO([$1])])[]_m4_defun_epi([$0]) @@ -8895,7 +8895,7 @@ fi T18,71 AC_CONFIG_COMMANDS_m4_defun_pro([$0])_AC_CONFIG_FOOS([COMMANDS], $@)[]_m4_defun_epi([$0]) T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 T15,393 AC_HAVE_LIBRARY_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_LIBRARY' is obsolete. You should run autoupdate.])dnl @@ -8910,7 +8910,7 @@ m4_popdef([AC_Lib_Name])dnl T25,98 AC_CONFIG_AUX_DIR_DEFAULT_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS("$srcdir" "$srcdir/.." "$srcdir/../..")[]_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1492 +m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1477 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -8930,11 +8930,11 @@ m4_set_intersectionm4_if([$1], [$2], [m4_set_listc([$1])], m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])], [m4_set_map_sep([$1], [_$0([$2],], [)])]) T27,28 -m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1365 +m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1362 T27,30 -m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:721 +m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:719 T29,33 -m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:848 +m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:843 T19,147 AS_REQUIRE_SHELL_FNm4_provide_if([AS_SHELL_FN_$1], [], [AS_REQUIRE([AS_SHELL_FN_$1], @@ -8963,7 +8963,7 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T30,35 -m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:822 +m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:814 T27,155 _AC_LANG_IO_PROGRAM(Erlang)AC_LANG_PROGRAM([], [dnl ReturnValue = case file:write_file("conftest.out", "") of @@ -8992,9 +8992,9 @@ m4_ifdef([_m4_diverting([AC_PROG_LEX])], [-]), [-], [[m4_unquote(], [)]], T21,65 AC_LANG_COMPILER(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXX])[]_m4_defun_epi([$0]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 T31,154 AC_VALIDATE_CACHED_SYSTEM_TUPLE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_VALIDATE_CACHED_SYSTEM_TUPLE' is obsolete. You should run autoupdate.])dnl @@ -9013,7 +9013,7 @@ test ac_cv_header_dirent_sys_dir_h && test ac_cv_header_dirent_ndir_h && AC_DEFINE([NDIR], 1, [Same as `HAVE_NDIR_H', don't depend on me.])[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 F8,8 __line____line__ T23,350 @@ -9033,7 +9033,7 @@ _AC_CHECK_TYPE_NEW_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T34,35 -m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:496 +m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:486 T13,41 _m4_set_unionm4_ifdef([_m4_set([$1],$2)], [], [,[$2]]) T15,88 @@ -9049,9 +9049,9 @@ _AC_COPYRIGHT_YEARS Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. T27,31 -m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:759 +m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:746 T28,36 -m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1614 +m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1589 T10,55 _m4_shift2m4_if([$#], [2], [], [, m4_shift(m4_shift($@))]) @@ -9105,7 +9105,7 @@ m4_if($#, 0, [AC_TYPE_PID_T], [AC_TYPE_PID_T($@)])[]_m4_defun_epi([$0]) T23,3 _m4_divert(VERSION_END)203 T43,27 -m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:955 +m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:954 T13,383 _AS_PATH_WALKas_save_IFS=$IFS; IFS=$PATH_SEPARATOR m4_ifvaln([$3], [as_found=false])dnl @@ -9144,11 +9144,11 @@ _AC_CHECK_DECL_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T36,27 -m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:562 +m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:543 T28,1 _m4_divert(HEADER-COPYRIGHT)3 T29,31 -m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:322 +m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:310 T11,58 _AS_CLEANUPm4_divert_text([M4SH-SANITIZE], [_AS_DETECT_BETTER_SHELL]) T21,1512 @@ -9237,7 +9237,7 @@ m4_text_boxm4_pushdef([m4_Border], [##] $1 [##] [##] _m4_defn([m4_Border]) [##]_m4_popdef([m4_Border]) T36,36 -m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1472 +m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1434 T23,378 _AC_CHECK_HEADER_DIRENTAS_VAR_PUSHDEF([ac_Header], [ac_cv_header_dirent_$1])dnl AC_CACHE_CHECK([for $1 that defines DIR], [ac_Header], @@ -9286,9 +9286,9 @@ m4_set_containsm4_ifdef([_m4_set_cleanup($1)], F10,7 m4_esyscmdesyscmd T32,36 -m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1409 +m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1392 T27,31 -m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:180 +m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:178 T31,0 m4_include(autoconf/fortran.m4) T34,23 @@ -9304,9 +9304,9 @@ m4_set_mapm4_set_map_sep([$1], [$2(], [)]) T23,36 m4_location(AC_STRCOLL)../../lib/autoconf/functions.m4:1744 T34,27 -m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:668 +m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:667 T30,33 -m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1106 +m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1097 T14,53 m4_cr_symbols1abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ T14,181 @@ -9354,7 +9354,7 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP, AC_SUBST([EGREP]) []_m4_defun_epi([$0]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 F7,4 m4_decrdecr T14,32 @@ -9399,7 +9399,7 @@ fi T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T18,316 @@ -9416,13 +9416,13 @@ $2 return 0; } T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 T28,33 m4_location(AC_TEST_PROGRAM)../../lib/autoconf/oldnames.m4:46 T27,33 m4_location(AC_SIZEOF_TYPE)../../lib/autoconf/oldnames.m4:44 T22,28 -m4_location(AC_OPENMP)../../lib/autoconf/c.m4:2031 +m4_location(AC_OPENMP)../../lib/autoconf/c.m4:1986 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -9547,20 +9547,20 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 T27,34 -m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2615 +m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2614 T33,34 -m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:305 +m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:291 T26,34 -m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:103 +m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:100 F12,8 m4_bpatsubstpatsubst T30,36 AC_LANG_FUNC_LINK_TRY(Fortran)AC_LANG_PROGRAM([], [ call $1]) T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 T28,31 m4_location(AC_TYPE_SSIZE_T)../../lib/autoconf/types.m4:605 T7,2 @@ -9570,7 +9570,7 @@ AS_ORIGINAL_STDIN_FD7 T31,33 m4_location(AC_LONG_FILE_NAMES)../../lib/autoconf/oldnames.m4:64 T32,34 -m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1854 +m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1833 T13,76 _AC_DO_TOKENS_m4_defun_pro([$0]){ ac_try='$1' _AC_DO([$ac_try]); }[]_m4_defun_epi([$0]) @@ -9579,7 +9579,7 @@ AC_LANG_m4_defun_pro([$0])_AC_LANG_SET(m4_ifdef([_AC_LANG], [m4_defn([_AC_LANG]) [$1])dnl m4_define([_AC_LANG], [$1])[]_m4_defun_epi([$0]) T37,36 -m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1714 +m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1710 T28,86 _AC_LANG_IO_PROGRAM(Fortran)AC_LANG_PROGRAM([], [dnl @@ -9596,13 +9596,13 @@ AC_TRY_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_CPP' is You should run autoupdate.])dnl AC_PREPROC_IFELSE([AC_LANG_SOURCE([[$1]])], [$2], [$3])[]_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 T37,33 -m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:203 +m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:193 T24,33 -m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:875 +m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:868 T30,35 -m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:656 +m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:625 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) F7,7 @@ -9647,9 +9647,9 @@ _AC_FC_WRAPPERS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T27,27 -m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:437 +m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:436 T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -9678,7 +9678,7 @@ AC_SUBST([ERLANG_ERTS_VER], [$ac_cv_erlang_erts_ver]) T29,31 m4_location(AC_TYPE_UINT32_T)../../lib/autoconf/types.m4:630 T40,34 -m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:287 +m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:232 T16,63 AC_CONFIG_HEADER_m4_defun_pro([$0])AC_CONFIG_HEADERS([$1])[]_m4_defun_epi([$0]) T26,34 @@ -9694,8 +9694,8 @@ You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_UTIME_NULL], [AC_FUNC_UTIME_NULL($@)])[]_m4_defun_epi([$0]) T11,55 AC_TRY_EVAL_m4_defun_pro([$0])_AC_EVAL([$$1])[]_m4_defun_epi([$0]) -T32,32 -m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:1006 +T32,31 +m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:999 T30,33 m4_location(AC_PROGRAMS_CHECK)../../lib/autoconf/oldnames.m4:39 T14,157 @@ -9723,7 +9723,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T28,33 -m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:470 +m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:465 T15,865 _AC_PROG_OBJC_Gac_test_OBJCFLAGS=${OBJCFLAGS+set} ac_save_OBJCFLAGS=$OBJCFLAGS @@ -9813,7 +9813,7 @@ T13,41 m4_provide_ifm4_ifdef([m4_provide($1)], [$2], [$3]) T33,34 -m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1021 +m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1015 T16,838 _AS_LN_S_PREPARE_m4_defun_pro([$0])rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -9891,11 +9891,11 @@ _ASUNAME _AS_PATH_WALK([$PATH], [AS_ECHO(["PATH: $as_dir"])]) } T46,33 -m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:341 +m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:297 T30,27 -m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:986 +m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:961 T24,34 -m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:476 +m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:474 T29,33 m4_location(AC_CHAR_UNSIGNED)../../lib/autoconf/oldnames.m4:54 T7,16 @@ -9917,15 +9917,15 @@ m4_location(AC_SIZE_T)../../lib/autoconf/oldnames.m4:73 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 T21,33 m4_location(AC_OFF_T)../../lib/autoconf/oldnames.m4:68 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 T26,0 m4_include(autoconf/go.m4) F12,8 @@ -9976,7 +9976,7 @@ T10,86 m4_toupperm4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ]) T25,30 -m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:274 +m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:272 T8,19 m4_curry$1(m4_shift($@,)_$0 F4,4 @@ -9990,7 +9990,7 @@ AC_HELP_STRING_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HELP_STR You should run autoupdate.])dnl m4_if($#, 0, [AS_HELP_STRING], [AS_HELP_STRING($@)])[]_m4_defun_epi([$0]) T33,31 -m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:981 +m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:973 T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T23,83 @@ -10052,9 +10052,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1810 +m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1788 T30,31 -m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:960 +m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:939 T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) T11,3 @@ -10064,8 +10064,8 @@ AC_TYPE_SSIZE_T_m4_defun_pro([$0])AC_CHECK_TYPE(ssize_t, int)[]_m4_defun_epi([$0 T14,113 AC_CHECK_TYPES_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_TYPE_NEW(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) -T28,30 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 +T28,29 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -10138,9 +10138,9 @@ T12,48 m4_re_escapem4_bpatsubst([$1], [[][*+.?\^$]], [\\\&]) T31,27 -m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:337 +m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:336 T25,36 -m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1824 +m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1786 T12,26 m4_normalizem4_strip(m4_flatten([$1])) T6,132 @@ -10154,11 +10154,11 @@ _ACEOF T16,89 AC_CONFIG_SRCDIR_m4_defun_pro([$0])m4_divert_text([DEFAULTS], [ac_unique_file="$1"])[]_m4_defun_epi([$0]) T23,34 -m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2470 +m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2468 F3,3 dnldnl T27,34 -m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2881 +m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2880 T16,807 _AC_INIT_PACKAGE_AC_INIT_LITERAL([$1]) _AC_INIT_LITERAL([$2]) @@ -10185,7 +10185,7 @@ m4_ifndef([AC_PACKAGE_URL], [[$5]]))]) T31,33 -m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:756 +m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:734 T25,3 _m4_divert(VERSION_BEGIN)200 T27,2052 @@ -10261,7 +10261,7 @@ if test $ac_cv_lib_error_at_line = no; then fi []_m4_defun_epi([$0]) T31,33 -m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:73 +m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:59 T22,33 m4_location(AC_MODE_T)../../lib/autoconf/oldnames.m4:67 T14,116 @@ -10275,7 +10275,7 @@ T18,95 AC_PROG_CPP_WERROR_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])dnl ac_c_preproc_warn_flag=yes[]_m4_defun_epi([$0]) T29,30 -m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:197 +m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:193 T10,79 _m4_shiftnm4_if([$1], 1, [m4_shift(], [$0(m4_decr([$1])]), m4_shift(m4_shift($@))) @@ -10433,7 +10433,7 @@ m4_if([$0], [m4_require], [[m4_defun]], [[AC_DEFUN]])['d macro])])m4_provide_if( [_m4_require_check([$1], _m4_defn([m4_provide($1)]), [$0])], [m4_ignore])], [_m4_require_call])([$1], [$2], _m4_divert_dump) T28,36 -m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1705 +m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1677 T7,119 m4_casem4_if([$#], 0, [], [$#], 1, [], @@ -10476,11 +10476,11 @@ T11,55 m4_sincludem4_include_unique([$1])dnl m4_builtin([sinclude], [$1]) T32,34 -m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:285 +m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:271 T41,33 -m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:255 +m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:254 T23,33 -m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:906 +m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:901 F6,6 definedefine T25,2 @@ -10518,7 +10518,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T27,34 -m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:265 +m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:245 T12,197 AC_ST_BLOCKS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLOCKS' is obsolete. You should run autoupdate.])dnl @@ -10551,13 +10551,13 @@ else fi []_m4_defun_epi([$0]) T31,27 -m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:424 +m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:422 T19,62 m4_version_unletterm4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [3]) T23,34 -m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:356 +m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:349 T26,31 -m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:242 +m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:232 T26,23 _AC_LANG_NULL_PROGRAM(C++)AC_LANG_PROGRAM([], []) T15,318 @@ -10578,7 +10578,7 @@ AC_DIVERT_POPm4_if([$1], [], [], ]m4_divert_stack)])_m4_popdef([_m4_divert_stack], [_m4_divert_diversion])m4_ifdef([_m4_divert_diversion], [], [m4_fatal([too many m4_divert_pop])])_m4_divert_raw(_m4_divert(_m4_defn([_m4_divert_diversion]), [-])) T24,33 -m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:371 +m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:358 T17,32 m4_define_defaultm4_ifndef([$1], [m4_define($@)]) T21,696 @@ -10624,9 +10624,9 @@ m4_PACKAGE_NAMEGNU Autoconf T36,31 m4_location(AC_STRUCT_DIRENT_D_TYPE)../../lib/autoconf/types.m4:968 T27,34 -m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2680 +m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2678 T29,33 -m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:482 +m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:481 F10,7 m4_builtinbuiltin T19,2 @@ -10644,23 +10644,23 @@ _AC_CHECK_HEADER_MONGREL_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ AS_VAR_IF([ac_Header], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_Header])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:380 +m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:370 T41,27 -m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:816 +m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:815 T34,0 m4_include(autoconf/autoupdate.m4) T31,33 m4_location(AC_MINUS_C_MINUS_O)../../lib/autoconf/oldnames.m4:66 T26,35 -m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:453 +m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:424 T35,33 -m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:732 +m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:727 T10,266 AS_REQUIRE_m4_defun_pro([$0])m4_define([_m4_divert_desired], [m4_default_quoted([$3], [M4SH-INIT])])m4_if(m4_eval(_m4_divert_dump - 0 <= _m4_divert(_m4_divert_desired, [-])), 1, [m4_require(], [m4_divert_require(_m4_divert_desired,]) [$1], [$2])[]_m4_defun_epi([$0]) T34,34 -m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1010 +m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1004 T14,44 m4_divert_oncem4_expand_once([m4_divert_text([$1], [$2])]) T11,146 @@ -10698,11 +10698,11 @@ _AC_PROG_OBJC_G AC_LANG_POP(Objective C)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 T27,33 -m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:93 +m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:40 T27,29 -m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:71 +m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:47 T20,374 AC_CONFIG_LIBOBJ_DIR_m4_defun_once([AC_CONFIG_LIBOBJ_DIR], [m4_divert_text([DEFAULTS], [ac_config_libobj_dir=$1])], m4_if(_m4_divert_dump, [], [[_m4_defun_pro([AC_CONFIG_LIBOBJ_DIR])m4_unquote(], [)_m4_defun_epi([AC_CONFIG_LIBOBJ_DIR])]], @@ -10715,7 +10715,7 @@ AC_CHECK_FUNCS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_FUNC(], [)])AS_F [$3])dnl]) []_m4_defun_epi([$0]) T19,33 -m4_location(_AC_FC)../../lib/autoconf/fortran.m4:170 +m4_location(_AC_FC)../../lib/autoconf/fortran.m4:167 T11,183 AC_IRIX_SUN_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_IRIX_SUN' is obsolete. You should run autoupdate.])dnl @@ -10760,7 +10760,7 @@ m4_include(autoconf/oldnames.m4) F6,6 regexpregexp T27,28 -m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1373 +m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1370 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -10854,7 +10854,7 @@ m4_sysvalsysval T28,33 m4_location(AC_MAJOR_HEADER)../../lib/autoconf/oldnames.m4:65 T23,34 -m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1522 +m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1511 T13,91 AS_SET_STATUS_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_set_status $1[]_m4_defun_epi([$0]) T14,127 @@ -10868,11 +10868,11 @@ ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ ac_compiler_gnu=$ac_cv_objc_compiler_gnu T25,31 -m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:685 +m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:671 T30,31 -m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:384 +m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:366 T31,34 -m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1718 +m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1688 T22,527 _AS_VAR_APPEND_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_append], [VAR VALUE], [Append the text in VALUE to the end of the definition contained in @@ -10900,7 +10900,7 @@ AC_FUNC_VFORK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_FUNC_VFOR You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FORK], [AC_FUNC_FORK($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:193 +m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:188 T18,371 AC_SYS_INTERPRETER_m4_defun_pro([$0])AC_CACHE_CHECK(whether @%:@! works in shell scripts, ac_cv_sys_interpreter, [echo '#! /bin/cat @@ -10921,7 +10921,7 @@ AC_LANG_CALL(Go)AC_LANG_PROGRAM([$1 m4_if([$2], [main], , [func $2()])],[$2()]) T35,34 -m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2276 +m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2273 T15,77 _AC_LANG_ABBREV_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T15,550 @@ -10940,9 +10940,9 @@ if test $ac_cv_func_strcoll_works = yes; then fi []_m4_defun_epi([$0]) T33,34 -m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1670 +m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1638 T24,28 -m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1656 +m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1621 T29,1130 _AC_PROG_PREPROC_WORKS_IFELSE_m4_defun_pro([$0])ac_preproc_ok=false for ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag in '' yes @@ -11098,13 +11098,13 @@ AC_DIAGNOSEm4_warn($@) T17,0 m4_pattern_forbid T24,34 -m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2303 +m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2298 T30,33 -m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:502 +m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:491 T33,34 -m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:302 +m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:292 T27,34 -m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:115 +m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:109 T9,69 m4_assertm4_if(m4_eval([$1]), 0, [m4_fatal([assert failed: $1], [$2])]) @@ -11150,7 +11150,7 @@ m4_pushdefpushdef T27,32 m4_location(AC_LANG_ERLANG)../../lib/autoconf/erlang.m4:112 T22,34 -m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:342 +m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:335 T21,140 AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_FC])dnl AC_LANG_PUSH(Fortran)dnl @@ -11184,9 +11184,9 @@ _AC_CANONICAL_SPLIT(build) m4_ifdef([_m4_diverting([AC_CANONICAL_BUILD])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_BUILD],], [, _m4_divert_dump)]])) T39,31 -m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:498 +m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:474 T28,33 -m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:531 +m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:509 T17,395 _AC_STRUCT_DIRENT_m4_defun_pro([$0]) AC_REQUIRE([AC_HEADER_DIRENT]) @@ -11217,7 +11217,7 @@ _AS_ECHO([$as_me: $1], [$2]);}], T13,127 AC_MSG_NOTICE_m4_defun_pro([$0])AS_REQUIRE([_AS_ME_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:158 +m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:155 T20,53 m4_divert_stack_pushm4_pushdef([_m4_divert_stack], m4_location[: $1: $2]) T17,105 @@ -11234,12 +11234,12 @@ T9,75 AC_BEFOREm4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) T37,34 -m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:422 +m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:368 T15,67 AC_LANG_PREPROCAC_LANG_COMPILER_REQUIRE()dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T28,36 -m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1739 +m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1725 T23,39 m4_expansion_stack_pushm4_pushdef([_m4_expansion_stack], [$1]) T22,3 @@ -11274,7 +11274,7 @@ AC_LANG_OBJC_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_OBJC' You should run autoupdate.])dnl AC_LANG(Objective C)[]_m4_defun_epi([$0]) T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 T11,30 AC_MSG_WARNAS_MESSAGE([WARNING: $1], [2]) T13,26 @@ -11302,7 +11302,7 @@ AS_LITERAL_WORD_IF([$2], T20,36 m4_location(AC_MMAP)../../lib/autoconf/functions.m4:1354 T26,34 -m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:68 +m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:59 T30,71 AC_LANG_PREPROC(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXXCPP])[]_m4_defun_epi([$0]) T24,34 @@ -11328,7 +11328,7 @@ m4_map_argsm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [2], [$1([$2])[]], [_m4_foreach([$1(], [)], $@)]) T26,28 -m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1192 +m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1167 T19,288 _m4_set_contents_1cm4_ifdef([_m4_set([$1])], [m4_set_contains([$1], _m4_defn([_m4_set([$1])]), @@ -11350,13 +11350,13 @@ AC_TYPE_INT64_T_m4_defun_pro([$0])_AC_TYPE_INT(64)[]_m4_defun_epi([$0]) F8,5 m4_shiftshift T28,33 -m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:460 +m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:438 T37,33 -m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:141 +m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:129 T27,28 -m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1039 +m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1010 T38,33 -m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:262 +m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:261 T16,452 _m4_require_callm4_pushdef([_m4_divert_grow], m4_decr(_m4_divert_grow))m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_divert_push(_m4_divert_grow, [-])m4_if([$2], [], [$1], [$2]) m4_provide_if([$1], [m4_set_remove([_m4_provide], [$1])], @@ -11480,7 +11480,7 @@ fi T9,23 AC_DEFINE_AC_DEFINE_Q([_$0], $@) T24,33 -m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:886 +m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:859 T23,27 m4_location(AC_LANG_GO)../../lib/autoconf/go.m4:44 T13,160 @@ -11516,7 +11516,7 @@ m4_location(AC_INLINE)../../lib/autoconf/oldnames.m4:61 T7,65 _m4_maxm4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2])) T28,34 -m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1076 +m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1071 F8,8 __file____file__ T18,2 @@ -11534,9 +11534,9 @@ m4_bregexpregexp F7,7 pushdefpushdef T32,35 -m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:587 +m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:582 T36,32 -m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:260 +m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:241 T15,345 _AC_COMPUTE_INT_m4_defun_pro([$0])AC_COMPUTE_INT([$2], [$1], [$3], [$4]) AC_DIAGNOSE([obsolete], @@ -11658,7 +11658,7 @@ AC_SUBST([ERLANG_LIB_VER_$1], [$ac_cv_erlang_lib_ver_$1]) AS_IF([test "$ac_cv_erlang_lib_dir_$1" = "not found"], [$3], [$2]) []_m4_defun_epi([$0]) T32,33 -m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:47 +m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:39 T14,103 _AS_TR_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])AS_REQUIRE([_AS_TR_CPP_PREPARE])[]_m4_defun_epi([$0]) T14,81 @@ -11693,7 +11693,7 @@ extern char *tzname[]; fi []_m4_defun_epi([$0]) T31,28 -m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1438 +m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1425 T24,3 _m4_divert(HELP_VAR_END)105 T10,24 @@ -11701,7 +11701,7 @@ AN_LIBRARYAN_OUTPUT([library], $@) T11,25 AN_FUNCTIONAN_OUTPUT([function], $@) T39,34 -m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1499 +m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1497 T12,47 AS_VAR_ARITHas_fn_arith $2 && AS_VAR_SET([$1], [$as_val])[] T12,197 @@ -11758,7 +11758,7 @@ else fi T24,27 -m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:730 +m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:694 T10,520 _AC_PATH_X_m4_defun_pro([$0])AC_CACHE_VAL(ac_cv_have_x, [# One or both of the vars are not set, and there is no cached value. @@ -11824,13 +11824,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 T25,34 -m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2414 +m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2412 T27,33 m4_location(AC_LONG_DOUBLE)../../lib/autoconf/oldnames.m4:63 T39,28 -m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1876 +m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1846 T23,106 _AH_CHECK_HEADER_DIRENTAH_TEMPLATE(AS_TR_CPP([HAVE_$1]), [Define to 1 if you have the <$1> header file, and it defines `DIR'.]) @@ -11845,11 +11845,11 @@ if test "$ERLC" = "not found"; then fi []_m4_defun_epi([$0]) T33,28 -m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:144 +m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:143 T20,3 _AC_LANG_ABBREV(C++)cxx T26,34 -m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1472 +m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1462 T34,122 _AC_LANG_IO_PROGRAM(Objective C++)AC_LANG_PROGRAM([@%:@include ], [FILE *f = fopen ("conftest.out", "w"); @@ -11878,10 +11878,10 @@ fi []_m4_defun_epi([$0]) T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) -T25,30 -m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:117 +T25,29 +m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:99 T21,34 -m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2424 +m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2422 F11,11 changequotechangequote T16,118 @@ -11893,7 +11893,7 @@ AC_ST_RDEV_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_RDEV' is You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_RDEV], [AC_STRUCT_ST_RDEV($@)])[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:807 +m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:799 T9,26 m4_ifndefm4_ifdef([$1], [$3], [$2]) T18,144 @@ -11920,7 +11920,7 @@ _AC_LANG_IO_PROGRAM(Objective C)AC_LANG_PROGRAM([@%:@include ], T27,36 m4_location(AM_FUNC_STRTOD)../../lib/autoconf/functions.m4:1619 T27,35 -m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:617 +m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:601 T24,495 _AC_CHECK_HEADER_PREPROC_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], @@ -11937,7 +11937,7 @@ AC_FATALm4_fatal($@) T22,33 m4_location(AC_FIND_X)../../lib/autoconf/oldnames.m4:57 T22,34 -m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:328 +m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:321 T7,108 m4_joinm4_if([$#], [1], [], [$#], [2], [[$2]], @@ -12321,7 +12321,7 @@ DUALCASE=1; export DUALCASE # for MKS sh _$0 T30,31 -m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:339 +m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:327 T16,2 _m4_divert(KILL)-1 T18,211 @@ -12333,11 +12333,11 @@ m4_foreachm4_if([$2], [], [], [m4_pushdef([$1])_$0([m4_define([$1],], [)$3], [], $2)m4_popdef([$1])]) T20,34 -m4_location(AC_WITH)../../lib/autoconf/general.m4:1493 +m4_location(AC_WITH)../../lib/autoconf/general.m4:1492 T20,33 m4_location(AC_WARN)../../lib/autoconf/oldnames.m4:33 T28,34 -m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1337 +m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1302 T9,265 _AS_QUOTEm4_cond([m4_index([$1], [\])], [-1], [_AS_QUOTE_MODERN], [m4_eval(m4_index(m4_translit([[$1]], [$], [\]), [\\]) >= 0)], @@ -12450,11 +12450,11 @@ m4_include(m4sugar/version.m4) T28,31 m4_location(AC_TYPE_INT32_T)../../lib/autoconf/types.m4:626 T30,32 -m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1019 +m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1011 T37,32 -m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:168 +m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:167 T32,27 -m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:430 +m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:429 T11,43 AC_OBSOLETEAC_DIAGNOSE([obsolete], [$1 is obsolete$2]) T14,181 @@ -12471,19 +12471,19 @@ if test $ac_cv_type_uid_t = no; then fi []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:571 +m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:497 T23,33 -m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:391 +m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:378 T33,27 -m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:628 +m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:627 T44,27 -m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:993 +m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:992 T28,34 -m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2434 +m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2432 T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 T26,32 -m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:954 +m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:938 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -12499,7 +12499,7 @@ AC_CONFIG_AUX_DIR_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS($1 "$srcdir"/$1)[]_m4_def F10,7 m4_traceontraceon T27,27 -m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:675 +m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:674 T11,1061 _AC_SRCDIRSac_builddir=. @@ -12536,7 +12536,7 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix T26,34 -m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:236 +m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:220 T13,52 m4_cr_LettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ T18,457 @@ -12562,7 +12562,7 @@ _AC_FC_DUMMY_MAIN($@) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T28,31 -m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:904 +m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:888 T24,117 _AC_LANG_OPENMP(Fortran) program main @@ -12573,7 +12573,7 @@ _AC_LANG_OPENMP(Fortran) end T32,30 -m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:266 +m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:265 T9,75 m4_beforem4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) @@ -12834,16 +12834,16 @@ AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS"])])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2598 +m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2590 T43,31 -m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:562 +m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:547 T28,35 -m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:840 +m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:828 T7,93 _AS_BOXm4_if(m4_index(m4_translit([[$1]], [`\"], [$$$]), [$]), [-1], [$0_LITERAL], [$0_INDIR])($@) T35,33 -m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1055 +m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1053 T8,189 _m4_wrapm4_ifdef([$0_text], [m4_define([$0_text], [$1]_m4_defn([$0_text])[$2])], @@ -12924,7 +12924,7 @@ AC_TYPE_MBSTATE_T_m4_defun_pro([$0])AC_CACHE_CHECK([for mbstate_t], ac_cv_type_m [Define to a type if does not define.]) fi[]_m4_defun_epi([$0]) T28,30 -m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:150 +m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:149 T28,4 _AC_LANG_ABBREV(Objective C)objc T14,87 @@ -12932,7 +12932,7 @@ AC_PROG_CC_C89_m4_defun_pro([$0]) AC_REQUIRE([AC_PROG_CC])dnl _AC_PROG_CC_C89 []_m4_defun_epi([$0]) T22,33 -m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1244 +m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1239 T14,1273 _AC_CACHE_DUMP# The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. @@ -13024,13 +13024,13 @@ _ACEOF esac []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:218 +m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:215 T23,33 -m4_location(AC_FOREACH)../../lib/autoconf/general.m4:196 +m4_location(AC_FOREACH)../../lib/autoconf/general.m4:194 T38,31 -m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:447 +m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:414 T50,35 -m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:881 +m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:849 F9,6 m4_definedefine T24,1910 @@ -13724,7 +13724,7 @@ $2]) F7,7 traceontraceon T32,31 -m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:58 +m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:49 T22,496 AC_PRESERVE_HELP_ORDER_m4_defun_pro([$0])m4_divert_once([HELP_ENABLE], [[ Optional Features and Packages: @@ -13830,7 +13830,7 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran 77])dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -13854,9 +13854,9 @@ T10,72 m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], [$0(m4_shift($@)), [$1]]) T29,34 -m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:844 +m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:818 T29,31 -m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:923 +m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:921 T31,53 _AC_FILE_DEPENDENCY_TRACE_COLONAC_FILE_DEPENDENCY_TRACE(m4_translit([$1], [:], [,])) T13,1 @@ -14067,9 +14067,9 @@ AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) T20,68 AC_LANG_PREPROC(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXXCPP])[]_m4_defun_epi([$0]) T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 T27,34 -m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2059 +m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2052 T19,34 AC_LANG_PROGRAM(Go)package main $1 @@ -14146,11 +14146,11 @@ dnl SVR4 -Xc -D__EXTENSIONS__ T11,54 AS_VAR_COPYAS_LITERAL_WORD_IF([$1[]$2], [$1=$$2], [eval $1=\$$2]) T29,31 -m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:464 +m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:452 F3,3 lenlen T29,33 -m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:558 +m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:543 T17,229 m4_cr_not_letters  !"#*%&'()$+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -14200,7 +14200,7 @@ AC_DYNIX_SEQ_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_DYNIX_SEQ' You should run autoupdate.])dnl AC_FUNC_GETMNTENT[]_m4_defun_epi([$0]) T28,34 -m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1287 +m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1240 T6,158 popdefm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_popdef([$1])], @@ -14211,7 +14211,7 @@ m4_location(AC_ALLOCA)../../lib/autoconf/functions.m4:417 T19,34 m4_location(AC_AIX)../../lib/autoconf/specific.m4:436 T42,27 -m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:854 +m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:853 T17,117 m4_include_uniquem4_ifdef([m4_include($1)], [m4_warn([syntax], [file `$1' included several times])])dnl @@ -14308,9 +14308,9 @@ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5, ($[3]), rm -f conftest* []_m4_defun_epi([$0]) T25,32 -m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1041 +m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1026 T29,35 -m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:133 +m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:132 T18,188 AC_ERLANG_NEED_ERL_m4_defun_pro([$0])AC_ERLANG_PATH_ERL([not found], [$1]) if test "$ERL" = "not found"; then diff --git a/externals/autotools/share/autoconf/autom4te.cfg b/externals/autotools/share/autoconf/autom4te.cfg index 3b7ade5fa0e..36776e11f51 100644 --- a/externals/autotools/share/autoconf/autom4te.cfg +++ b/externals/autotools/share/autoconf/autom4te.cfg @@ -106,7 +106,7 @@ end-language: "Autoreconf-preselections" # This intermediate language is used by aclocal to build aclocal.m4. begin-language: "Autoconf-without-aclocal-m4" -args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: --cache=autom4te.cache args: autoconf/autoconf.m4f args: acsite.m4? @@ -133,7 +133,7 @@ end-language: "Autoconf" ## -------- ## begin-language: "Autotest" -args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: autotest/autotest.m4f args: package.m4? args: local.at? @@ -147,7 +147,7 @@ end-language: "Autotest" ## ---- ## begin-language: "M4sh" -args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sh.m4f args: --mode 777 args: --language M4sugar @@ -159,7 +159,7 @@ end-language: "M4sh" ## ------- ## begin-language: "M4sugar" -args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sugar.m4f args: --warnings syntax end-language: "M4sugar" diff --git a/externals/autotools/share/autoconf/autotest/autotest.m4f b/externals/autotools/share/autoconf/autotest/autotest.m4f index a309ef040c0..6dd14a68441 100644 --- a/externals/autotools/share/autoconf/autotest/autotest.m4f +++ b/externals/autotools/share/autoconf/autotest/autotest.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] @@ -45,9 +45,9 @@ m4_divert_push([TEST_SCRIPT])dnl T8,46 AT_SETUPm4_fatal([AT_SETUP: missing AT_INIT detected]) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -71,7 +71,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 T16,3 _m4_divert(HELP)300 T8,150 @@ -129,7 +129,7 @@ T7,84 _m4_for$4[$1]$5[]m4_if([$1], [$2], [], [$0(m4_eval([$1 + $3]), [$2], [$3], [$4], [$5])]) T27,34 -m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1746 +m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1674 T12,78 m4_foreach_wm4_pushdef([$1])m4_map_args_w([$2], [m4_define([$1],], [)$3])m4_popdef([$1]) @@ -144,7 +144,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], T20,3 _m4_divert(HELP_END)305 T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -162,7 +162,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -203,14 +203,14 @@ m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unlet T32,0 m4_include(autotest/specific.m4) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -269,7 +269,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 F6,3 m4_lenlen T14,42 @@ -282,7 +282,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 F12,9 m4_debugmodedebugmode T10,280 @@ -300,7 +300,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T22,38 @@ -343,7 +343,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -401,7 +401,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -433,9 +433,9 @@ m4_case([$1], [m4_append([AT_xfail], [ $1 && at_xfail=yes])]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 T14,142 _AT_CHECK_EXITm4_define([AT_ingroup])AS_ECHO(_AT_LINE_ESCAPED) >"$at_check_line_file" m4_ifval([$1], [($1) \ @@ -459,7 +459,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -467,7 +467,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -479,7 +479,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -490,9 +490,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 F9,6 m4_syscmdsyscmd T28,44 @@ -532,7 +532,7 @@ __unix__ T17,77 AT_ARG_OPTION_ARG_m4_defun_pro([$0])_AT_ARG_OPTION([$1],[$2],1,[$3],[$4])[]_m4_defun_epi([$0]) T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -548,7 +548,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -582,7 +582,7 @@ AT_DIFF_STDERR(ignore-nolog) T27,3 _m4_divert(VERSION_NOTICES)351 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -2226,8 +2226,8 @@ m4_divert([KILL]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -2237,7 +2237,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -2259,7 +2259,7 @@ _m4_divert(HELP_TUNING_BEGIN)302 T22,3 _m4_divert(HELP_MODES)301 T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 T22,3 _m4_divert(HELP_OTHER)304 T9,35 @@ -2277,7 +2277,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -2328,8 +2328,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp T12,93 AT_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text([VERSION_NOTICES], [m4_default([$2], [m4_newline])([$1])]) @@ -2517,7 +2517,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 F12,9 m4_changecomchangecom T20,40 @@ -2659,11 +2659,11 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 T22,30 AT_DIFF_STDERR(ignore)echo stderr:; cat "$at_stderr" T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -2707,7 +2707,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -2758,7 +2758,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -2834,7 +2834,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 T12,10 m4_cr_digits0123456789 T17,17 @@ -2887,7 +2887,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -2909,13 +2909,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -2938,17 +2938,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -2978,11 +2978,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 F8,8 __line____line__ T9,793 @@ -3116,7 +3116,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 F7,4 m4_decrdecr T12,93 @@ -3130,11 +3130,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -3154,11 +3154,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 T7,2 m4_echo$@ T20,1 @@ -3171,11 +3171,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -3274,17 +3274,17 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 T15,131 AT_CAPTURE_FILEm4_ifndef([AT_ingroup], [m4_fatal([AT_CAPTURE_FILE: missing AT_SETUP detected])])m4_append_uniq([AT_capture_files], ["$1"], [ \ ]) T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 F12,8 _m4_undivertundivert T7,54 @@ -3299,8 +3299,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,30 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 +T28,29 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -3494,7 +3494,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 T14,29 AT_COLOR_TESTSm4_define([AT_color], [auto]) T17,64 @@ -3561,7 +3561,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T11,140 @@ -3631,7 +3631,7 @@ AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir T23,3 _m4_divert(TEST_SCRIPT)450 T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -3759,7 +3759,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 T19,3 _m4_divert(VERSION)350 T14,73 @@ -3818,7 +3818,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -3831,7 +3831,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f index 8033a183565..93fbffb4fad 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] @@ -25,9 +25,9 @@ AS_MESSAGE_LOG_FD T8,0 _m4_warn T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -51,7 +51,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -112,7 +112,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], [m4_map_args_sep([m4_builtin([dumpdef],], [)], [], $@)]) T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -130,7 +130,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -169,14 +169,14 @@ _m4_divert(GROW)10000 T18,72 m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unletter([$2])) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -221,7 +221,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 F6,3 m4_lenlen T14,42 @@ -234,7 +234,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 F12,9 m4_debugmodedebugmode T10,280 @@ -252,7 +252,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T8,66 @@ -289,7 +289,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -345,7 +345,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -363,9 +363,9 @@ T12,32 m4_make_listm4_join([, ], m4_dquote_elt($@)) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -385,7 +385,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -393,7 +393,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -405,7 +405,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -416,9 +416,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 F9,6 m4_syscmdsyscmd T11,136 @@ -454,7 +454,7 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -470,7 +470,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -500,7 +500,7 @@ _AS_DETECT_REQUIRED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_REQUIRED_BODY], [$1 T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -671,8 +671,8 @@ _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -682,7 +682,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -700,7 +700,7 @@ m4_ignore T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T7,75 @@ -714,7 +714,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -753,8 +753,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp F11,11 __program____program__ T6,26 @@ -880,7 +880,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 F12,9 m4_changecomchangecom T20,40 @@ -949,9 +949,9 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -980,7 +980,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -1021,7 +1021,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -1093,7 +1093,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 T12,10 m4_cr_digits0123456789 T17,17 @@ -1146,7 +1146,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -1168,13 +1168,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -1197,17 +1197,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -1237,11 +1237,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 F8,8 __line____line__ T13,41 @@ -1342,7 +1342,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 F7,4 m4_decrdecr T12,93 @@ -1354,11 +1354,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -1378,11 +1378,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 T7,2 m4_echo$@ T20,1 @@ -1393,11 +1393,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -1496,13 +1496,13 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 F12,8 _m4_undivertundivert T7,54 @@ -1517,8 +1517,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,30 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 +T28,29 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -1698,7 +1698,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -1761,7 +1761,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T7,13 @@ -1823,7 +1823,7 @@ _AS_DIRNAME_SED([$1])[] T10,124 AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -1944,7 +1944,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -1986,7 +1986,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -1999,7 +1999,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f index 2d81e697bd3..9d649aa1426 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.6 +# This is a frozen state file generated by GNU M4 1.4.16 V1 Q1,1 [] @@ -305,8 +305,8 @@ m4_cr_LETTERSABCDEFGHIJKLMNOPQRSTUVWXYZ T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) -F11,8 -m4_maketempmaketemp +F11,7 +m4_maketempmkstemp T4,37 m4_nm4_if([$1], [], [], @@ -353,8 +353,8 @@ _m4_text_wrapm4_pushdef([m4_Indent], m4_qlen([$2]))m4_pushdef([m4_Cursor], m4_ql m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])m4_map_args_w([$1], [$0_word(], [, [$2], [$4])])_m4_popdef([m4_Separator], [m4_Cursor], [m4_Indent]) F9,6 m4_formatformat -F10,8 -m4_mkstempmaketemp +F10,7 +m4_mkstempmkstemp F11,11 __program____program__ T7,156 diff --git a/externals/autotools/share/automake-1.12/Automake/Config.pm b/externals/autotools/share/automake-1.12/Automake/Config.pm index 9756159d31e..b96d7cd861f 100644 --- a/externals/autotools/share/automake-1.12/Automake/Config.pm +++ b/externals/autotools/share/automake-1.12/Automake/Config.pm @@ -32,7 +32,7 @@ our $PACKAGE = 'automake'; our $PACKAGE_BUGREPORT = 'bug-automake@gnu.org'; our $VERSION = '1.12.5'; our $RELEASE_YEAR = '2012'; -our $libdir = '/Users/economon/SU2/externals/autotools/share/automake-1.12'; +our $libdir = '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/automake-1.12'; our $perl_threads = 1; 1; diff --git a/externals/autotools/share/info/dir b/externals/autotools/share/info/dir index e495396dfa0..73c759cfa09 100644 --- a/externals/autotools/share/info/dir +++ b/externals/autotools/share/info/dir @@ -15,21 +15,25 @@ File: dir, Node: Top This is the top of the INFO tree * Menu: Individual utilities -* aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. +* aclocal-invocation: (automake)aclocal Invocation. + Generating aclocal.m4. * autoconf-invocation: (autoconf)autoconf Invocation. - How to create configuration scripts -* autoheader: (autoconf)autoheader Invocation. - How to create configuration templates -* autom4te: (autoconf)autom4te Invocation. - The Autoconf executables backbone -* automake-invocation: (automake)automake Invocation. Generating Makefile.in. -* autoreconf: (autoconf)autoreconf Invocation. - Remaking multiple `configure' scripts -* autoscan: (autoconf)autoscan Invocation. - Semi-automatic `configure.ac' writing -* autoupdate: (autoconf)autoupdate Invocation. - Automatic update of `configure.ac' -* config.status: (autoconf)config.status Invocation. Recreating configurations. + How to create configuration + scripts +* autoheader: (autoconf)autoheader Invocation. How to create configuration + templates +* autom4te: (autoconf)autom4te Invocation. The Autoconf executables + backbone +* automake-invocation: (automake)automake Invocation. + Generating Makefile.in. +* autoreconf: (autoconf)autoreconf Invocation. Remaking multiple `configure' + scripts +* autoscan: (autoconf)autoscan Invocation. Semi-automatic `configure.ac' + writing +* autoupdate: (autoconf)autoupdate Invocation. Automatic update of + `configure.ac' +* config.status: (autoconf)config.status Invocation. + Recreating configurations. * configure: (autoconf)configure Invocation. Configuring a package. * ifnames: (autoconf)ifnames Invocation. Listing conditionals in source. * libtool-invocation: (libtool)Invoking libtool. From 96abc4f78df86905dfb4c2c031ef9358ab890fc6 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 10 Feb 2016 18:23:39 +0000 Subject: [PATCH 199/269] Check FSI MPI performance --- Common/include/config_structure.hpp | 8 ++ Common/include/config_structure.inl | 2 + Common/src/config_structure.cpp | 4 + SU2_CFD/src/driver_structure.cpp | 145 ++++++++++++++++++++++++++++ 4 files changed, 159 insertions(+) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index f6bce407be1..30f6cfba6e5 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -703,6 +703,8 @@ class CConfig { bool ParMETIS; /*!< \brief Boolean for activating ParMETIS mode (while testing). */ unsigned short DirectDiff; /*!< \brief Direct Differentation mode. */ bool DiscreteAdjoint; /*!< \brief AD-based discrete adjoint mode. */ + bool Check_FSI_MPI; /*!< \brief Benchmark of FSI performance. */ + /*--- all_options is a map containing all of the options. This is used during config file parsing to track the options which have not been set (so the default values can be used). Without this map @@ -5292,6 +5294,12 @@ class CConfig { */ bool GetDiscrete_Adjoint(void); + /*! + * \brief Get the indicator whether we want to benchmark the MPI performance of FSI problems + * \return The value for checking + */ + bool CheckFSI_MPI(void); + /*! * \brief Get the number of fluid subiterations roblems. * \return Number of FSI subiters. diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index ad7be8bd7fe..95a94b2fb82 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1201,3 +1201,5 @@ inline su2double CConfig::GetResidual_FEM_ETOL(void) { return Res_FEM_ETOL; } inline unsigned short CConfig::GetDirectDiff(){ return DirectDiff;} inline bool CConfig::GetDiscrete_Adjoint() {return DiscreteAdjoint;} + +inline bool CConfig::CheckFSI_MPI() {return Check_FSI_MPI;} diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 7aa4d8c07b3..6c4174c8344 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1187,6 +1187,10 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Transfer method used for multiphysics problems */ addEnumOption("MULTIPHYSICS_TRANSFER_METHOD", Kind_TransferMethod, Transfer_Method_Map, BROADCAST_DATA); + /*!\brief CHK_FSI_MPI + * \n DESCRIPTION: For testing problems in FSI parallelization \ingroup Config*/ + addBoolOption("CHECK_FSI_MPI", Check_FSI_MPI, false); + /* CONFIG_CATEGORY: FSI solver */ /*--- Options related to the FSI solver ---*/ diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index daa49552a3f..19232ca7fc1 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1923,12 +1923,21 @@ void CFSIDriver::Run(CIteration **iteration_container, unsigned long FSIIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); + bool FSI_MPI = config_container[ZONE_FLOW]->CheckFSI_MPI(); + su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif +#ifndef HAVE_MPI + FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StartTime = MPI_Wtime(); +#endif + + /*--- If there is a restart, we need to get the old geometry from the fluid field ---*/ bool restart = (config_container[ZONE_FLOW]->GetRestart() || config_container[ZONE_FLOW]->GetRestart_Flow()); unsigned long ExtIter = config_container[ZONE_FLOW]->GetExtIter(); @@ -1947,6 +1956,19 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, ZONE_STRUCT, ZONE_FLOW); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Predict_Displacements: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + while (FSIIter < nFSIIter){ /*-----------------------------------------------------------------*/ @@ -1958,6 +1980,19 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, transfer_container, ZONE_STRUCT, ZONE_FLOW); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Transfer_Displacements: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + /*-----------------------------------------------------------------*/ /*-------------------- Fluid subiteration -------------------------*/ /*-----------------------------------------------------------------*/ @@ -1978,6 +2013,20 @@ void CFSIDriver::Run(CIteration **iteration_container, integration_container[ZONE_FLOW][FLOW_SOL]->SetConvergence(false); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Fluid subiteration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + /*-----------------------------------------------------------------*/ /*------------------- Set FEA loads from fluid --------------------*/ /*-----------------------------------------------------------------*/ @@ -1987,6 +2036,21 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, transfer_container, ZONE_FLOW, ZONE_STRUCT); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Transfer_Tractions: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + + /*-----------------------------------------------------------------*/ /*------------------ Structural subiteration ----------------------*/ /*-----------------------------------------------------------------*/ @@ -2003,6 +2067,19 @@ void CFSIDriver::Run(CIteration **iteration_container, integration_container[ZONE_STRUCT][FEA_SOL]->SetConvergence(false); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Structural subiteration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } /*-----------------------------------------------------------------*/ /*----------------- Displacements relaxation ----------------------*/ /*-----------------------------------------------------------------*/ @@ -2010,6 +2087,19 @@ void CFSIDriver::Run(CIteration **iteration_container, Relaxation_Displacements(output, geometry_container, solver_container, config_container, ZONE_STRUCT, ZONE_FLOW, FSIIter); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Displacements relaxation: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + /*-----------------------------------------------------------------*/ /*-------------------- Check convergence --------------------------*/ /*-----------------------------------------------------------------*/ @@ -2025,6 +2115,19 @@ void CFSIDriver::Run(CIteration **iteration_container, FSIIter++; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Check convergence: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + } /*-----------------------------------------------------------------*/ @@ -2036,6 +2139,20 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, transfer_container, ZONE_FLOW, ZONE_STRUCT); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Update coupled solver: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + + /*-----------------------------------------------------------------*/ /*-------------------- Update fluid solver ------------------------*/ @@ -2045,6 +2162,20 @@ void CFSIDriver::Run(CIteration **iteration_container, solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, ZONE_FLOW); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Update fluid solver: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + /*-----------------------------------------------------------------*/ /*----------------- Update structural solver ----------------------*/ /*-----------------------------------------------------------------*/ @@ -2053,6 +2184,20 @@ void CFSIDriver::Run(CIteration **iteration_container, solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, ZONE_STRUCT); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + + /*--- Compute/print the total time for performance benchmarking. ---*/ + + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Update structural solver: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; + } + + /*-----------------------------------------------------------------*/ /*--------------- Update convergence parameter --------------------*/ From 948228e033dd6a162f521a626d78128e39cc7234 Mon Sep 17 00:00:00 2001 From: Ethan Alan Hereth Date: Wed, 10 Feb 2016 14:09:21 -0500 Subject: [PATCH 200/269] Fix inconsistencies with output file reporting This commit fixes what seems to be a few copy-paste errors related to solution file output. --- Common/src/config_structure.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index d96723d51ba..7dc8adb67ea 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -3835,11 +3835,11 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { if (val_software == SU2_SOL) { if (Low_MemoryOutput) cout << "Writing output files with low memory RAM requirements."<< endl; switch (Output_FileFormat) { - case PARAVIEW: cout << "The output file format is Paraview ASCII (.dat)." << endl; break; + case PARAVIEW: cout << "The output file format is Paraview ASCII (.vtk)." << endl; break; case TECPLOT: cout << "The output file format is Tecplot ASCII (.dat)." << endl; break; case TECPLOT_BINARY: cout << "The output file format is Tecplot binary (.plt)." << endl; break; - case FIELDVIEW: cout << "The output file format is FieldView ASCII (.dat)." << endl; break; - case FIELDVIEW_BINARY: cout << "The output file format is FieldView ASCII (.dat)." << endl; break; + case FIELDVIEW: cout << "The output file format is FieldView ASCII (.uns)." << endl; break; + case FIELDVIEW_BINARY: cout << "The output file format is FieldView binary (.uns)." << endl; break; case CGNS_SOL: cout << "The output file format is CGNS (.cgns)." << endl; break; } cout << "Flow variables file name: " << Flow_FileName << "." << endl; From 3e81f7f5482d1ac45c85554b758b9f04c22560d4 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Mon, 8 Feb 2016 11:01:01 +0100 Subject: [PATCH 201/269] Added some comments and aligned the code correctly. --- SU2_DOT/include/SU2_DOT.hpp | 28 +++++++++++++-- SU2_DOT/src/SU2_DOT.cpp | 69 ++++++++++++------------------------- 2 files changed, 48 insertions(+), 49 deletions(-) diff --git a/SU2_DOT/include/SU2_DOT.hpp b/SU2_DOT/include/SU2_DOT.hpp index 4c3c2fa7cf3..f70cdd1081f 100644 --- a/SU2_DOT/include/SU2_DOT.hpp +++ b/SU2_DOT/include/SU2_DOT.hpp @@ -45,8 +45,32 @@ using namespace std; -void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file); -void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file); +/*! + * \brief Projection of the surface sensitivity using finite differences (FD). + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] surface_movement - Surface movement class of the problem. + * \param[in] Gradient_file - Output file to store the gradient data. + */ + +void SetProjection_FD(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file); + +/*! + * \brief Projection of the surface sensitivity using algorithmic differentiation (AD). + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] surface_movement - Surface movement class of the problem. + * \param[in] Gradient_file - Output file to store the gradient data. + */ + +void SetProjection_AD(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file); + +/*! + * \brief Prints the gradient information to a file. + * \param[in] Gradient - The gradient data. + * \param[in] config - Definition of the particular problem. + * \param[in] Gradient_file - Output file to store the gradient data. + */ void OutputGradient(su2double** Gradient, CConfig* config, ofstream& Gradient_file); diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 27017d42389..adea42bedaf 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -36,7 +36,7 @@ int main(int argc, char *argv[]) { su2double StartTime = 0.0, StopTime = 0.0, UsedTime = 0.0; char config_file_name[MAX_STRING_SIZE], *cstr; - ofstream Gradient_file, Jacobian_file; + ofstream Gradient_file; int rank = MASTER_NODE; int size = SINGLE_NODE; @@ -129,7 +129,7 @@ int main(int argc, char *argv[]) { if (rank == MASTER_NODE) cout << "Setting local point connectivity." <SetPoint_Connectivity(); - + /*--- Check the orientation before computing geometrical quantities ---*/ if (rank == MASTER_NODE) cout << "Checking the numerical grid orientation of the interior elements." <SetVolume_Deformation(geometry_container[ZONE_0], config_container[ZONE_0], false, true); + + COutput *output = new COutput(); + output->SetSensitivity_Files(geometry_container, config_container, nZone); } /*--- Definition of the Class for surface deformation ---*/ @@ -181,48 +184,20 @@ int main(int argc, char *argv[]) { cstr = new char [config_container[ZONE_0]->GetObjFunc_Grad_FileName().size()+1]; strcpy (cstr, config_container[ZONE_0]->GetObjFunc_Grad_FileName().c_str()); Gradient_file.open(cstr, ios::out); - -// /*--- Write an additional file with the geometric Jacobian ---*/ -// /*--- WARNING: This is only for serial calculations!!! ---*/ -// /*--- WARNING: We should generalize this... ---*/ -// if (size == SINGLE_NODE) { -// Jacobian_file.open("geo_jacobian.csv", ios::out); -// Jacobian_file.precision(15); -// -// /*--- Write the CSV file header ---*/ -// Comma = false; -// for (iMarker = 0; iMarker < config_container[ZONE_0]->GetnMarker_All(); iMarker++) { -// if (config_container[ZONE_0]->GetMarker_All_DV(iMarker) == YES) { -// for (iVertex = 0; iVertex < geometry_container[ZONE_0]->nVertex[iMarker]; iVertex++) { -// iPoint = geometry_container[ZONE_0]->vertex[iMarker][iVertex]->GetNode(); -// if (!Comma) { Jacobian_file << "\t\"DesignVariable\""; Comma = true;} -// Jacobian_file << ", " << "\t\"" << iPoint << "\""; -// } -// } -// } -// Jacobian_file << endl; -// } - } /*--- For the discrete projection method we use AD to compute the derivatives * while the continuous projection uses finite differences ---*/ if (config_container[ZONE_0]->GetDiscrete_Adjoint()){ - - SetProjection_Discrete(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); - + SetProjection_AD(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); }else{ - - SetProjection_Continuous(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); - + SetProjection_FD(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); } + if (rank == MASTER_NODE) Gradient_file.close(); - if (size == SINGLE_NODE) - Jacobian_file.close(); - /*--- Synchronization point after a single solver iteration. Compute the wall clock time required. ---*/ @@ -255,7 +230,7 @@ int main(int argc, char *argv[]) { } -void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ +void SetProjection_FD(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ unsigned short iDV, nDV, iFFDBox, nDV_Value, iMarker, iDim; unsigned long iVertex, iPoint; @@ -287,7 +262,7 @@ void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMove for (iDV = 0; iDV < nDV; iDV++){ nDV_Value = config->GetnDV_Value(iDV); if (nDV_Value != 1){ - cout << "The continuous projection currently only supports a fixed direction of movement for FFD points." << endl; + cout << "The projection using finite differences currently only supports a fixed direction of movement for FFD points." << endl; exit(EXIT_FAILURE); } Gradient[iDV] = new su2double[nDV_Value]; @@ -295,7 +270,7 @@ void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMove /*--- Continuous adjoint gradient computation ---*/ if (rank == MASTER_NODE) - cout << "Evaluate functional gradient using the continuous adjoint strategy." << endl; + cout << "Evaluate functional gradient using Finite Differences." << endl; for (iDV = 0; iDV < nDV; iDV++) { @@ -408,7 +383,7 @@ void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMove else if (config->GetDesign_Variable(iDV) == CUSTOM){ if (rank == MASTER_NODE) - cout <<"Custom design variable will be used in external script" << endl; + cout <<"Custom design variable will be used in external script" << endl; } /*--- Design variable not implement ---*/ @@ -475,10 +450,10 @@ void SetProjection_Continuous(CGeometry *geometry, CConfig *config, CSurfaceMove } -void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ +void SetProjection_AD(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ - su2double DV_Value, *VarCoord, Sensitivity, **Gradient; - unsigned short iDV_Value = 0, iMarker, nMarker, iDim, nDim, iDV, nDV, nDV_Value, my_Gradient; + su2double DV_Value, *VarCoord, Sensitivity, **Gradient, my_Gradient; + unsigned short iDV_Value = 0, iMarker, nMarker, iDim, nDim, iDV, nDV, nDV_Value; unsigned long iVertex, nVertex, iPoint; int rank = MASTER_NODE; @@ -504,7 +479,7 @@ void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMoveme /*--- Discrete adjoint gradient computation ---*/ if (rank == MASTER_NODE) - cout << "Evaluate functional gradient using the discrete adjoint strategy." << endl; + cout << "Evaluate functional gradient using Algorithmic Differentiation." << endl; /*--- Start recording of operations ---*/ @@ -574,21 +549,21 @@ void SetProjection_Discrete(CGeometry *geometry, CConfig *config, CSurfaceMoveme #endif } } - + /*--- Print gradients to screen and file ---*/ - + OutputGradient(Gradient, config, Gradient_file); for (iDV = 0; iDV < nDV; iDV++){ delete [] Gradient[iDV]; } delete [] Gradient; - } - +} + void OutputGradient(su2double** Gradient, CConfig* config, ofstream& Gradient_file){ - + unsigned short nDV, iDV, iDV_Value, nDV_Value; - + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD,&rank); From cf9335f3989f50e80e6f89f7288ba853477204ae Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Thu, 11 Feb 2016 15:03:08 +0100 Subject: [PATCH 202/269] Fixed compilation. --- SU2_DOT/src/SU2_DOT.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index adea42bedaf..8e3bb9c4b04 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -162,9 +162,6 @@ int main(int argc, char *argv[]) { if (rank == MASTER_NODE) cout << "Setting mesh sensitivity." << endl; mesh_movement->SetVolume_Deformation(geometry_container[ZONE_0], config_container[ZONE_0], false, true); - - COutput *output = new COutput(); - output->SetSensitivity_Files(geometry_container, config_container, nZone); } /*--- Definition of the Class for surface deformation ---*/ From 76b5358276db0b236509770417df051798b585a0 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Thu, 11 Feb 2016 18:22:48 +0000 Subject: [PATCH 203/269] More changes to test performance --- SU2_CFD/src/driver_structure.cpp | 145 -------------------------- SU2_CFD/src/integration_structure.cpp | 112 ++++++++++++++++++++ SU2_CFD/src/integration_time.cpp | 70 ++++++++++++- 3 files changed, 180 insertions(+), 147 deletions(-) diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 19232ca7fc1..daa49552a3f 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1923,21 +1923,12 @@ void CFSIDriver::Run(CIteration **iteration_container, unsigned long FSIIter = 0; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); - bool FSI_MPI = config_container[ZONE_FLOW]->CheckFSI_MPI(); - su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif -#ifndef HAVE_MPI - FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StartTime = MPI_Wtime(); -#endif - - /*--- If there is a restart, we need to get the old geometry from the fluid field ---*/ bool restart = (config_container[ZONE_FLOW]->GetRestart() || config_container[ZONE_FLOW]->GetRestart_Flow()); unsigned long ExtIter = config_container[ZONE_FLOW]->GetExtIter(); @@ -1956,19 +1947,6 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, ZONE_STRUCT, ZONE_FLOW); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Predict_Displacements: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - while (FSIIter < nFSIIter){ /*-----------------------------------------------------------------*/ @@ -1980,19 +1958,6 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, transfer_container, ZONE_STRUCT, ZONE_FLOW); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Transfer_Displacements: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - /*-----------------------------------------------------------------*/ /*-------------------- Fluid subiteration -------------------------*/ /*-----------------------------------------------------------------*/ @@ -2013,20 +1978,6 @@ void CFSIDriver::Run(CIteration **iteration_container, integration_container[ZONE_FLOW][FLOW_SOL]->SetConvergence(false); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Fluid subiteration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - /*-----------------------------------------------------------------*/ /*------------------- Set FEA loads from fluid --------------------*/ /*-----------------------------------------------------------------*/ @@ -2036,21 +1987,6 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, transfer_container, ZONE_FLOW, ZONE_STRUCT); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Transfer_Tractions: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - - /*-----------------------------------------------------------------*/ /*------------------ Structural subiteration ----------------------*/ /*-----------------------------------------------------------------*/ @@ -2067,19 +2003,6 @@ void CFSIDriver::Run(CIteration **iteration_container, integration_container[ZONE_STRUCT][FEA_SOL]->SetConvergence(false); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Structural subiteration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } /*-----------------------------------------------------------------*/ /*----------------- Displacements relaxation ----------------------*/ /*-----------------------------------------------------------------*/ @@ -2087,19 +2010,6 @@ void CFSIDriver::Run(CIteration **iteration_container, Relaxation_Displacements(output, geometry_container, solver_container, config_container, ZONE_STRUCT, ZONE_FLOW, FSIIter); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Displacements relaxation: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - /*-----------------------------------------------------------------*/ /*-------------------- Check convergence --------------------------*/ /*-----------------------------------------------------------------*/ @@ -2115,19 +2025,6 @@ void CFSIDriver::Run(CIteration **iteration_container, FSIIter++; for (iZone = 0; iZone < nZone; iZone++) config_container[iZone]->SetFSIIter(FSIIter); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Check convergence: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - } /*-----------------------------------------------------------------*/ @@ -2139,20 +2036,6 @@ void CFSIDriver::Run(CIteration **iteration_container, surface_movement, grid_movement, FFDBox, transfer_container, ZONE_FLOW, ZONE_STRUCT); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Update coupled solver: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - - /*-----------------------------------------------------------------*/ /*-------------------- Update fluid solver ------------------------*/ @@ -2162,20 +2045,6 @@ void CFSIDriver::Run(CIteration **iteration_container, solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, ZONE_FLOW); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Update fluid solver: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - /*-----------------------------------------------------------------*/ /*----------------- Update structural solver ----------------------*/ /*-----------------------------------------------------------------*/ @@ -2184,20 +2053,6 @@ void CFSIDriver::Run(CIteration **iteration_container, solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, ZONE_STRUCT); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - - /*--- Compute/print the total time for performance benchmarking. ---*/ - - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Update structural solver: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; - } - - /*-----------------------------------------------------------------*/ /*--------------- Update convergence parameter --------------------*/ diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 4e6ce90f5a5..b935dc25e2c 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -220,6 +220,20 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- Compute Mass Matrix ---*/ /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ /*--- problem is linear or nonlinear. This is done in the preprocessing step. ---*/ + bool FSI_MPI = config->CheckFSI_MPI(); + su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; + + int rank = MASTER_NODE; + #ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + #endif + + #ifndef HAVE_MPI + FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); + #else + FSI_StartTime = MPI_Wtime(); + #endif + /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ @@ -252,6 +266,17 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, } +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Compute matrices: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + + /*--- Apply the NATURAL BOUNDARY CONDITIONS (loads). ---*/ /*--- If there are FSI loads, they have to be previously applied at other level involving both zones. ---*/ @@ -281,6 +306,17 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, } } +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Apply BCs: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + + } @@ -366,6 +402,20 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); + bool FSI_MPI = config->CheckFSI_MPI(); + su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; + +int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + +#ifndef HAVE_MPI + FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StartTime = MPI_Wtime(); +#endif + /*--- Set the Jacobian according to the different time integration methods ---*/ switch (config->GetKind_TimeIntScheme_FEA()) { @@ -380,6 +430,16 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co break; } +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Set Jacobian: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + /*--- Apply ESSENTIAL BOUNDARY CONDITIONS ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) @@ -392,10 +452,32 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co break; } +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Apply clamped: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + + /*--- Solver linearized system ---*/ solver_container[MainSolver]->Solve_System(geometry, solver_container, config); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Solve system: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + + /*--- Update solution ---*/ switch (config->GetKind_TimeIntScheme_FEA()) { @@ -411,6 +493,15 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co } +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Update solution: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} /*--- Reinforce ESSENTIAL BOUNDARY CONDITIONS: avoids accumulation of numerical error ---*/ @@ -424,9 +515,30 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co // break; } +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Reinforce BC: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + + /*--- Perform the MPI communication of the solution ---*/ solver_container[MainSolver]->Set_MPI_Solution(geometry, config); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Communicate again: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + } diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 658223e6c61..9eba36352dc 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -940,27 +940,82 @@ void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSo CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { // su2double monitor = 0.0; - unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); + unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); + + bool FSI_MPI = config[iZone]->CheckFSI_MPI(); + su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; + +int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + +#ifndef HAVE_MPI + FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StartTime = MPI_Wtime(); +#endif + /*--- Preprocessing ---*/ solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Preprocessing: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} /*--- Space integration ---*/ Space_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], config[iZone], RunTime_EqSystem, Iteration); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Space integration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} /*--- Time integration ---*/ Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], config[iZone], RunTime_EqSystem, Iteration); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Time integration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} /*--- Postprocessing ---*/ solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); + +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Post processing: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} // /*--- Compute adimensional parameters and the convergence monitor ---*/ // @@ -969,4 +1024,15 @@ void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSo /*--- Convergence strategy ---*/ Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif +FSI_UsedTime = FSI_StopTime-FSI_StartTime; +if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n-----------Convergence monitoring: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; +} + + } From 2b8480f520c82d745f616a30d94077a70c608f08 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 11 Feb 2016 14:53:10 -0800 Subject: [PATCH 204/269] no more extraneous built files in SU2_SOL --- SU2_SOL/obj/Makefile.am | 9 ++++--- SU2_SOL/obj/Makefile.in | 53 +++++++++++------------------------------ 2 files changed, 18 insertions(+), 44 deletions(-) diff --git a/SU2_SOL/obj/Makefile.am b/SU2_SOL/obj/Makefile.am index 5bc2b4d6f61..b8a4b7301d7 100644 --- a/SU2_SOL/obj/Makefile.am +++ b/SU2_SOL/obj/Makefile.am @@ -37,21 +37,20 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} bin_PROGRAMS = ../bin/SU2_SOL ___bin_SU2_SOL_SOURCES = \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_structure.cpp \ ../include/SU2_SOL.hpp \ ../src/SU2_SOL.cpp ___bin_SU2_SOL_CXXFLAGS = -___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a \ +___bin_SU2_SOL_LDADD = \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o - + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../Common/lib/libSU2.a # always link to built dependencies from ./externals ___bin_SU2_SOL_CXXFLAGS += @su2_externals_INCLUDES@ diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 6bffa5fab3c..1c150d04f83 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -101,18 +101,18 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp -am____bin_SU2_SOL_OBJECTS = \ - ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.$(OBJEXT) \ - ../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT) +am____bin_SU2_SOL_OBJECTS = ../src/___bin_SU2_SOL-SU2_SOL.$(OBJEXT) ___bin_SU2_SOL_OBJECTS = $(am____bin_SU2_SOL_OBJECTS) -___bin_SU2_SOL_DEPENDENCIES = ../../Common/lib/libSU2.a \ +___bin_SU2_SOL_DEPENDENCIES = \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_fieldview.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ - ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o + ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ + ../../Common/lib/libSU2.a ___bin_SU2_SOL_LINK = $(CXXLD) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -305,12 +305,12 @@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} ___bin_SU2_SOL_SOURCES = \ - ../../SU2_CFD/include/solver_structure.hpp \ - ../../SU2_CFD/src/solver_structure.cpp \ ../include/SU2_SOL.hpp \ ../src/SU2_SOL.cpp +# + # always link to built dependencies from ./externals # if BUILD_CGNS @@ -332,7 +332,8 @@ ___bin_SU2_SOL_SOURCES = \ ___bin_SU2_SOL_CXXFLAGS = @su2_externals_INCLUDES@ @CGNS_CXX@ \ @HDF5_CXX@ @SZIP_CXX@ @ZLIB_CXX@ @MUTATIONPP_CXX@ \ @JSONCPP_CXX@ $(am__empty) -___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a \ +___bin_SU2_SOL_LDADD = \ + ../../SU2_CFD/src/___bin_SU2_CFD-solver_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_structure.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_cgns.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_tecplot.o \ @@ -340,8 +341,9 @@ ___bin_SU2_SOL_LDADD = ../../Common/lib/libSU2.a \ ../../SU2_CFD/src/___bin_SU2_CFD-output_su2.o \ ../../SU2_CFD/src/___bin_SU2_CFD-output_paraview.o \ ../../SU2_CFD/src/___bin_SU2_CFD-variable_structure.o \ - @su2_externals_LIBS@ @CGNS_LD@ @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ \ - @MUTATIONPP_LD@ @JSONCPP_LD@ $(am__empty) + ../../Common/lib/libSU2.a @su2_externals_LIBS@ @CGNS_LD@ \ + @HDF5_LD@ @SZIP_LD@ @ZLIB_LD@ @MUTATIONPP_LD@ @JSONCPP_LD@ \ + $(am__empty) all: all-am .SUFFIXES: @@ -416,15 +418,6 @@ uninstall-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -../../SU2_CFD/src/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src - @: > ../../SU2_CFD/src/$(am__dirstamp) -../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../SU2_CFD/src/$(DEPDIR) - @: > ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) -../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.$(OBJEXT): \ - ../../SU2_CFD/src/$(am__dirstamp) \ - ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) ../src/$(am__dirstamp): @$(MKDIR_P) ../src @: > ../src/$(am__dirstamp) @@ -442,13 +435,11 @@ clean-binPROGRAMS: mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f ../../SU2_CFD/src/*.$(OBJEXT) -rm -f ../src/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po@am__quote@ .cpp.o: @@ -467,20 +458,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.o `test -f '../../SU2_CFD/src/solver_structure.cpp' || echo '$(srcdir)/'`../../SU2_CFD/src/solver_structure.cpp - -../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.obj: ../../SU2_CFD/src/solver_structure.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.obj -MD -MP -MF ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Tpo -c -o ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Tpo ../../SU2_CFD/src/$(DEPDIR)/___bin_SU2_SOL-solver_structure.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../../SU2_CFD/src/solver_structure.cpp' object='../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -c -o ../../SU2_CFD/src/___bin_SU2_SOL-solver_structure.obj `if test -f '../../SU2_CFD/src/solver_structure.cpp'; then $(CYGPATH_W) '../../SU2_CFD/src/solver_structure.cpp'; else $(CYGPATH_W) '$(srcdir)/../../SU2_CFD/src/solver_structure.cpp'; fi` - ../src/___bin_SU2_SOL-SU2_SOL.o: ../src/SU2_SOL.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_SOL_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_SOL-SU2_SOL.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo -c -o ../src/___bin_SU2_SOL-SU2_SOL.o `test -f '../src/SU2_SOL.cpp' || echo '$(srcdir)/'`../src/SU2_SOL.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Tpo ../src/$(DEPDIR)/___bin_SU2_SOL-SU2_SOL.Po @@ -624,8 +601,6 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../SU2_CFD/src/$(DEPDIR)/$(am__dirstamp) - -rm -f ../../SU2_CFD/src/$(am__dirstamp) -rm -f ../bin/$(am__dirstamp) -rm -f ../src/$(DEPDIR)/$(am__dirstamp) -rm -f ../src/$(am__dirstamp) @@ -638,7 +613,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -rf ../src/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -684,7 +659,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ../../SU2_CFD/src/$(DEPDIR) ../src/$(DEPDIR) + -rm -rf ../src/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic From fc503d65e0ba38a7a59a2485bf7ab30f02a0daa1 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 12 Feb 2016 14:05:53 +0000 Subject: [PATCH 205/269] More tests for improving scalability. --- SU2_CFD/src/integration_structure.cpp | 116 -------------------------- SU2_CFD/src/integration_time.cpp | 71 +--------------- SU2_CFD/src/solver_fem_elasticity.cpp | 29 +++++++ 3 files changed, 33 insertions(+), 183 deletions(-) diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index b935dc25e2c..80165888230 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -220,20 +220,6 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- Compute Mass Matrix ---*/ /*--- The mass matrix is computed only once, at the beginning of the calculation, no matter whether the ---*/ /*--- problem is linear or nonlinear. This is done in the preprocessing step. ---*/ - bool FSI_MPI = config->CheckFSI_MPI(); - su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - #ifndef HAVE_MPI - FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); - #else - FSI_StartTime = MPI_Wtime(); - #endif - /*--- If the analysis is linear, only a the constitutive term of the stiffness matrix has to be computed ---*/ /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ @@ -266,17 +252,6 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, } -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Compute matrices: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - - /*--- Apply the NATURAL BOUNDARY CONDITIONS (loads). ---*/ /*--- If there are FSI loads, they have to be previously applied at other level involving both zones. ---*/ @@ -306,18 +281,6 @@ if ((rank == MASTER_NODE) && FSI_MPI) { } } -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Apply BCs: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - - - } void CIntegration::Adjoint_Setup(CGeometry ***geometry, CSolver ****solver_container, CConfig **config, @@ -402,20 +365,6 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co unsigned short MainSolver = config->GetContainerPosition(RunTime_EqSystem); - bool FSI_MPI = config->CheckFSI_MPI(); - su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; - -int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - -#ifndef HAVE_MPI - FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StartTime = MPI_Wtime(); -#endif - /*--- Set the Jacobian according to the different time integration methods ---*/ switch (config->GetKind_TimeIntScheme_FEA()) { @@ -430,16 +379,6 @@ int rank = MASTER_NODE; break; } -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Set Jacobian: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - /*--- Apply ESSENTIAL BOUNDARY CONDITIONS ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) @@ -452,32 +391,10 @@ if ((rank == MASTER_NODE) && FSI_MPI) { break; } -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Apply clamped: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - - /*--- Solver linearized system ---*/ solver_container[MainSolver]->Solve_System(geometry, solver_container, config); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Solve system: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - - /*--- Update solution ---*/ switch (config->GetKind_TimeIntScheme_FEA()) { @@ -492,17 +409,6 @@ if ((rank == MASTER_NODE) && FSI_MPI) { break; } - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Update solution: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - /*--- Reinforce ESSENTIAL BOUNDARY CONDITIONS: avoids accumulation of numerical error ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) @@ -515,31 +421,9 @@ if ((rank == MASTER_NODE) && FSI_MPI) { // break; } -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Reinforce BC: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - - /*--- Perform the MPI communication of the solution ---*/ solver_container[MainSolver]->Set_MPI_Solution(geometry, config); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Communicate again: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} - - } void CIntegration::Convergence_Monitoring(CGeometry *geometry, CConfig *config, unsigned long Iteration, diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 9eba36352dc..bde7645d266 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -941,98 +941,35 @@ void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSo // su2double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); - - bool FSI_MPI = config[iZone]->CheckFSI_MPI(); - su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; - -int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - -#ifndef HAVE_MPI - FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StartTime = MPI_Wtime(); -#endif /*--- Preprocessing ---*/ solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Preprocessing: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); /*--- Space integration ---*/ Space_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], config[iZone], RunTime_EqSystem, Iteration); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Space integration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} /*--- Time integration ---*/ Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], - config[iZone], RunTime_EqSystem, Iteration); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Time integration: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} + config[iZone], RunTime_EqSystem, Iteration); /*--- Postprocessing ---*/ solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Post processing: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); // /*--- Compute adimensional parameters and the convergence monitor ---*/ // // monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); /*--- Convergence strategy ---*/ - Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); - -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif -FSI_UsedTime = FSI_StopTime-FSI_StartTime; -if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n-----------Convergence monitoring: Passed in " << fixed << FSI_UsedTime << " seconds. " << endl; -} + Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); } diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 4475abbc6d5..787f480672d 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2582,9 +2582,38 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c } + bool FSI_MPI = config->CheckFSI_MPI(); + su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + +#ifndef HAVE_MPI + FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StartTime = MPI_Wtime(); +#endif + CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); +#ifndef HAVE_MPI + FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); +#else + FSI_StopTime = MPI_Wtime(); +#endif + FSI_UsedTime = FSI_StopTime-FSI_StartTime; + if ((rank == MASTER_NODE) && FSI_MPI) { + cout << "\n------------------------------- Solve System ------------------------------------ " << endl; + cout << "------------------ It has taken " << fixed << FSI_UsedTime << " seconds on "<< size << " cores. -------------------" << endl; + cout << "-------------------- The number of iterations run was " << IterLinSol << ". ---------------------- " << endl; + } + + /*--- The the number of iterations of the linear solver ---*/ SetIterLinSolver(IterLinSol); From eecc7dddce24291461ec7c07be5bf63f9482e093 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Fri, 12 Feb 2016 16:35:43 +0000 Subject: [PATCH 206/269] Added option for choosing FEM LE solver --- Common/include/config_structure.hpp | 2 ++ Common/src/config_structure.cpp | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 30f6cfba6e5..49eac3c7250 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -322,6 +322,7 @@ class CConfig { *Kind_GridMovement, /*!< \brief Kind of the unsteady mesh movement. */ Kind_Gradient_Method, /*!< \brief Numerical method for computation of spatial gradients. */ Kind_Linear_Solver, /*!< \brief Numerical solver for the implicit scheme. */ + Kind_Linear_Solver_FSI_Struc, /*!< \brief Numerical solver for the structural part in FSI problems. */ Kind_Linear_Solver_Prec, /*!< \brief Preconditioner of the linear solver. */ Kind_Linear_Solver_Prec_FSI_Struc, /*!< \brief Preconditioner of the linear solver for the structural part in FSI problems. */ Kind_AdjTurb_Linear_Solver, /*!< \brief Numerical solver for the turbulent adjoint implicit scheme. */ @@ -385,6 +386,7 @@ class CConfig { unsigned short Kind_Trans_Model, /*!< \brief Transition model definition. */ Kind_Inlet, *Kind_Data_Riemann, *Kind_Data_NRBC; /*!< \brief Kind of inlet boundary treatment. */ su2double Linear_Solver_Error; /*!< \brief Min error of the linear solver for the implicit formulation. */ + su2double Linear_Solver_Error_FSI_Struc; /*!< \brief Min error of the linear solver for the implicit formulation in the structural side for FSI problems . */ unsigned long Linear_Solver_Iter; /*!< \brief Max iterations of the linear solver for the implicit formulation. */ unsigned long Linear_Solver_Iter_FSI_Struc; /*!< \brief Max iterations of the linear solver for FSI applications and structural solver. */ unsigned long Linear_Solver_Restart_Frequency; /*!< \brief Restart frequency of the linear solver for the implicit formulation. */ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 6c4174c8344..7519884f779 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1207,11 +1207,14 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo * \ingroup Config*/ addEnumOption("FSI_STRUCTURAL_PROBLEM", Kind_Solver_Struc_FSI, FSI_Struc_Solver_Map, NO_SOLVER_SFSI); + /* DESCRIPTION: Linear solver for the structural side on FSI problems */ + addEnumOption("FSI_LINEAR_SOLVER_STRUC", Kind_Linear_Solver_FSI_Struc, Linear_Solver_Map, BCGSTAB); /* DESCRIPTION: Preconditioner for the Krylov linear solvers */ - addEnumOption("FSI_LINEAR_SOLVER_PREC_STRUC", Kind_Linear_Solver_Prec_FSI_Struc, Linear_Solver_Prec_Map, ILU); - + addEnumOption("FSI_LINEAR_SOLVER_PREC_STRUC", Kind_Linear_Solver_Prec_FSI_Struc, Linear_Solver_Prec_Map, LU_SGS); /* DESCRIPTION: Maximum number of iterations of the linear solver for the implicit formulation */ addUnsignedLongOption("FSI_LINEAR_SOLVER_ITER_STRUC", Linear_Solver_Iter_FSI_Struc, 500); + /* DESCRIPTION: Minimum error threshold for the linear solver for the implicit formulation */ + addDoubleOption("FSI_LINEAR_SOLVER_ERROR_STRUC", Linear_Solver_Error_FSI_Struc, 1E-5); /* DESCRIPTION: Restart from a steady state (sets grid velocities to 0 when loading the restart). */ addBoolOption("RESTART_STEADY_STATE", SteadyRestart, false); @@ -1587,7 +1590,9 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ if (val_izone==0) { Kind_Solver = Kind_Solver_Fluid_FSI; FSI_Problem = true;} else { Kind_Solver = Kind_Solver_Struc_FSI; FSI_Problem = true; + Kind_Linear_Solver = Kind_Linear_Solver_FSI_Struc; Kind_Linear_Solver_Prec = Kind_Linear_Solver_Prec_FSI_Struc; + Linear_Solver_Error = Linear_Solver_Error_FSI_Struc; Linear_Solver_Iter = Linear_Solver_Iter_FSI_Struc;} } else{ FSI_Problem = false; } From b99ce4cdc3a60ec6c3db513524bbf3f3021a12e7 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Tue, 16 Feb 2016 11:12:51 +0100 Subject: [PATCH 207/269] Added AUTO_DIFF option to use AD based gradient projection also for cont. adjoint. --- Common/include/config_structure.hpp | 6 +++++- Common/include/config_structure.inl | 2 ++ Common/src/config_structure.cpp | 19 ++++++++++++++++--- Common/src/grid_movement_structure.cpp | 20 +++++++++++++------- SU2_DOT/src/SU2_DOT.cpp | 21 ++++++++++++++++----- SU2_PY/SU2/run/interface.py | 8 ++++---- 6 files changed, 56 insertions(+), 20 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index c9cc3114ba5..57934fdbf63 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -379,6 +379,7 @@ class CConfig { SpatialOrder_AdjTurb, /*!< \brief Order of the spatial numerical integration.*/ SpatialOrder_AdjLevelSet; /*!< \brief Order of the spatial numerical integration.*/ bool FSI_Problem; /*!< \brief Boolean to determine whether the simulation is FSI or not. */ + bool AD_Mode; /*!< \brief Algorithmic Differentiation support. */ unsigned short Kind_Material_Compress, /*!< \brief Determines if the material is compressible or incompressible (structural analysis). */ Kind_Material, /*!< \brief Determines the material model to be used (structural analysis). */ Kind_Struct_Solver; /*!< \brief Determines the geometric condition (small or large deformations) for structural analysis. */ @@ -5484,7 +5485,10 @@ class CConfig { */ inline unsigned short GetKindInterpolation(void); - + /*! + * \brief Get the AD support. + */ + bool GetAD_Mode(void); }; #include "config_structure.inl" diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 692885f709f..21dd731e4ee 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1201,3 +1201,5 @@ inline su2double CConfig::GetResidual_FEM_ETOL(void) { return Res_FEM_ETOL; } inline unsigned short CConfig::GetDirectDiff(){ return DirectDiff;} inline bool CConfig::GetDiscrete_Adjoint() {return DiscreteAdjoint;} + +inline bool CConfig::GetAD_Mode(void) {return AD_Mode;} diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 20a2ffe1ade..86fc51ce73c 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1283,12 +1283,16 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Surface continuity at the intersection with the FFD */ addEnumOption("FFD_CONTINUITY", FFD_Continuity, Continuity_Map, DERIVATIVE_2ND); - /*--- Options for the direct differentiation methods ---*/ - /*!\par CONFIG_CATEGORY: Direct Differentation options\ingroup Config*/ - /* DESCRIPTION: Direct differentiation mode */ + /*--- Options for the automatic differentiation methods ---*/ + /*!\par CONFIG_CATEGORY: Automatic Differentation options\ingroup Config*/ + + /* DESCRIPTION: Direct differentiation mode (forward) */ addEnumOption("DIRECT_DIFF", DirectDiff, DirectDiff_Var_Map, NO_DERIVATIVE); + /* DESCRIPTION: Automatic differentiation mode (reverse) */ + addBoolOption("AUTO_DIFF", AD_Mode, NO); + /*--- options that are used in the python optimization scripts. These have no effect on the c++ toolsuite ---*/ /*!\par CONFIG_CATEGORY:Python Options\ingroup Config*/ @@ -2517,6 +2521,15 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ } } +#if defined CODI_REVERSE_TYPE + AD_Mode = YES; +#else + if (AD_Mode == YES){ + cout << "AUTO_DIFF=YES requires Automatic Differentiation support." << endl; + cout << "Please use correct executables (configuration/compilation is done using the preconfigure.py script)." << endl; + } +#endif + if (DiscreteAdjoint){ #if !defined ADOLC_REVERSE_TYPE && !defined CODI_REVERSE_TYPE if (Kind_SU2 == SU2_CFD){ diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index ff61b505cff..6edb1322a86 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -3665,7 +3665,7 @@ void CSurfaceMovement::SetCartesianCoord(CGeometry *geometry, CConfig *config, C Diff = 0.0; for (iDim = 0; iDim < nDim; iDim++) { VarCoord[iDim] = CartCoordNew[iDim] - CartCoordOld[iDim]; - if ((fabs(VarCoord[iDim]) <= EPS) && (config->GetDirectDiff() != D_DESIGN) && (!config->GetDiscrete_Adjoint())) + if ((fabs(VarCoord[iDim]) <= EPS) && (config->GetDirectDiff() != D_DESIGN) && (!config->GetAD_Mode())) VarCoord[iDim] = 0.0; Diff += (VarCoord[iDim]*VarCoord[iDim]); } @@ -4457,13 +4457,16 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig Normal[0] = Normal_[0]*ValCos - Normal_[1]*ValSin; Normal[1] = Normal_[1]*ValCos + Normal_[0]*ValSin; - + /*--- Bump computation ---*/ if (double_surface) { - ek = log10(0.5)/log10(xk); - fk = pow( sin( PI_NUMBER * pow(Coord[0], ek) ) , t2); - + ek = log10(0.5)/log10(xk); + if (Coord[0] > 10*EPS) + fk = pow( sin( PI_NUMBER * pow(Coord[0], ek) ), t2); + else + fk = 0.0; + /*--- Upper and lower surface ---*/ if (( upper) && (Normal[1] > 0)) { VarCoord[1] = Ampl*fk; } @@ -4472,8 +4475,11 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig } else { xCoord = Coord[0] - BumpLoc; - ek = log10(0.5)/log10(xk/BumpSize); - fk = pow( sin( PI_NUMBER * pow(xCoord/BumpSize, ek)), t2); + ek = log10(0.5)/log10((xk+EPS)/BumpSize); + if (Coord[0] > 10*EPS) + fk = pow( sin( PI_NUMBER * pow(xCoord/BumpSize, ek)), t2); + else + fk = 0.0; /*--- Only one surface ---*/ diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 8e3bb9c4b04..59b480f578a 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -183,10 +183,10 @@ int main(int argc, char *argv[]) { Gradient_file.open(cstr, ios::out); } - /*--- For the discrete projection method we use AD to compute the derivatives - * while the continuous projection uses finite differences ---*/ + /*--- If AD mode is enabled we can use it to compute the projection, + * otherwise we use finite differences. ---*/ - if (config_container[ZONE_0]->GetDiscrete_Adjoint()){ + if (config_container[ZONE_0]->GetAD_Mode()){ SetProjection_AD(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); }else{ SetProjection_FD(geometry_container[ZONE_0], config_container[ZONE_0], surface_movement, Gradient_file); @@ -449,7 +449,7 @@ void SetProjection_FD(CGeometry *geometry, CConfig *config, CSurfaceMovement *su void SetProjection_AD(CGeometry *geometry, CConfig *config, CSurfaceMovement *surface_movement, ofstream& Gradient_file){ - su2double DV_Value, *VarCoord, Sensitivity, **Gradient, my_Gradient; + su2double DV_Value, *VarCoord, Sensitivity, **Gradient, my_Gradient, *Normal, Area = 0.0; unsigned short iDV_Value = 0, iMarker, nMarker, iDim, nDim, iDV, nDV, nDV_Value; unsigned long iVertex, nVertex, iPoint; @@ -520,9 +520,20 @@ void SetProjection_AD(CGeometry *geometry, CConfig *config, CSurfaceMovement *su for (iVertex = 0; iVertex vertex[iMarker][iVertex]->GetNode(); VarCoord = geometry->vertex[iMarker][iVertex]->GetVarCoord(); + Normal = geometry->vertex[iMarker][iVertex]->GetNormal(); + Area = 0.0; for (iDim = 0; iDim < nDim; iDim++){ - Sensitivity = geometry->GetSensitivity(iPoint, iDim); + Area += Normal[iDim]*Normal[iDim]; + } + Area = sqrt(Area); + + for (iDim = 0; iDim < nDim; iDim++){ + if (config->GetDiscrete_Adjoint()){ + Sensitivity = geometry->GetSensitivity(iPoint, iDim); + } else { + Sensitivity = -Normal[iDim]*geometry->vertex[iMarker][iVertex]->GetAuxVar()/Area; + } SU2_TYPE::SetDerivative(VarCoord[iDim], SU2_TYPE::GetValue(Sensitivity)); } } diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index ea9b21bd4fa..21ed5dc030c 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -84,7 +84,7 @@ def CFD(config): direct_diff = not konfig.get('DIRECT_DIFF',"") in ["NONE", ""] - discrete_adjoint = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' + auto_diff = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' if direct_diff: tempname = 'config_CFD_DIRECTDIFF.cfg' @@ -95,7 +95,7 @@ def CFD(config): the_Command = 'SU2_CFD_AD ' + tempname - elif discrete_adjoint: + elif auto_diff: tempname = 'config_CFD_AD.cfg' konfig.dump(tempname) @@ -167,9 +167,9 @@ def DOT(config): """ konfig = copy.deepcopy(config) - discrete_adjoint = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' + auto_diff = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' or konfig.get('AUTO_DIFF','NO') == 'YES' - if discrete_adjoint: + if auto_diff: tempname = 'config_DOT_AD.cfg' konfig.dump(tempname) From e51d0a4d911e67cf943131d8e5ff907aac338926 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 16 Feb 2016 19:16:02 +0000 Subject: [PATCH 208/269] Change default linear solver for structural side of FSI --- Common/src/config_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 7519884f779..8c00c1ef6dc 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1208,7 +1208,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo addEnumOption("FSI_STRUCTURAL_PROBLEM", Kind_Solver_Struc_FSI, FSI_Struc_Solver_Map, NO_SOLVER_SFSI); /* DESCRIPTION: Linear solver for the structural side on FSI problems */ - addEnumOption("FSI_LINEAR_SOLVER_STRUC", Kind_Linear_Solver_FSI_Struc, Linear_Solver_Map, BCGSTAB); + addEnumOption("FSI_LINEAR_SOLVER_STRUC", Kind_Linear_Solver_FSI_Struc, Linear_Solver_Map, FGMRES); /* DESCRIPTION: Preconditioner for the Krylov linear solvers */ addEnumOption("FSI_LINEAR_SOLVER_PREC_STRUC", Kind_Linear_Solver_Prec_FSI_Struc, Linear_Solver_Prec_Map, LU_SGS); /* DESCRIPTION: Maximum number of iterations of the linear solver for the implicit formulation */ From bba7c083980cecfaa23366324af5e62bd68ad52c Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Wed, 17 Feb 2016 14:51:13 +0100 Subject: [PATCH 209/269] Fixed small bug in set_ffd_design_var.py --- SU2_PY/set_ffd_design_var.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index 94311e8f41c..b88271dfcd5 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -120,7 +120,7 @@ for iIndex in range(options.iOrder): iVariable = iVariable + 1 dvList = dvList + "( 15, " + str(options.scale) + " | " + options.marker + " | " - dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + + ", " + str(options.xMove) +", " + str(options.yMove) + " )" + dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + ", " + str(options.xMove) +", " + str(options.yMove) + " )" if iVariable < (options.iOrder*options.jOrder): dvList = dvList + "; " From 995e3581c4c5f54ce7b9849fda43f16853f5dc3c Mon Sep 17 00:00:00 2001 From: LaSerpe Date: Wed, 17 Feb 2016 16:45:51 +0100 Subject: [PATCH 210/269] HLLC direct jacobians implementation --- SU2_CFD/include/numerics_structure.hpp | 70 +- SU2_CFD/src/numerics_direct_mean.cpp | 1363 +++++++++++++++++------- 2 files changed, 1007 insertions(+), 426 deletions(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index f48bf537a6a..9b0ffeb0691 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -2053,26 +2053,28 @@ class CUpwAUSM_Flow : public CNumerics { /*! * \class CUpwHLLC_Flow - * \brief Class for solving an approximate Riemann AUSM. + * \brief Class for solving an approximate Riemann HLLC. * \ingroup ConvDiscr - * \author F. Palacios, based on the Joe code implementation - * \version 4.1.0 "Cardinal" + * \author G. Gori, Politecnico di Milano + * \version 4.0.2 "Cardinal" */ class CUpwHLLC_Flow : public CNumerics { private: - bool implicit; - su2double *Diff_U; + bool implicit, grid_movement; + unsigned short iDim, jDim, iVar, jVar; + + su2double *IntermediateState; su2double *Velocity_i, *Velocity_j, *RoeVelocity; - su2double *ProjFlux_i, *ProjFlux_j; - su2double *delta_wave, *delta_vel; - su2double *Lambda, *Epsilon; - su2double **P_Tensor, **invP_Tensor; - su2double sq_vel_i, sq_vel_j, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, - Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, RoeDensity, RoeEnthalpy, RoeSoundSpeed, - RoeProjVelocity, ProjVelocity_i, ProjVelocity_j; - unsigned short iDim, iVar, jVar, kVar; - su2double Rrho, tmp, sq_velRoe, sL, sR, sM, pStar, invSLmSs, sLmuL, rhoSL, rhouSL[3], - eSL, invSRmSs, sRmuR, rhoSR, rhouSR[3], eSR; + + su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i; + su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j; + + su2double sq_velRoe, ProjVelocity, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeSoundSpeed2, RoeProjVelocity, ProjInterfaceVel; + + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; + + su2double Omega, RHO, OmegaSM; + su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; public: @@ -2097,34 +2099,34 @@ class CUpwHLLC_Flow : public CNumerics { * \param[in] config - Definition of the particular problem. */ void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); + }; /*! * \class CUpwGeneralHLLC_Flow - * \brief Class for solving an approximate Riemann AUSM. + * \brief Class for solving an approximate Riemann HLLC. * \ingroup ConvDiscr - * \author F. Palacios, based on the Joe code implementation - * \version 4.1.0 "Cardinal" + * \author G. Gori, Politecnico di Milano + * \version 4.0.2 "Cardinal" */ class CUpwGeneralHLLC_Flow : public CNumerics { private: - bool implicit; - unsigned short iDim, iVar, jVar, kVar; + bool implicit, grid_movement; + unsigned short iDim, jDim, iVar, jVar; - su2double *Diff_U; + su2double *IntermediateState; su2double *Velocity_i, *Velocity_j, *RoeVelocity; - su2double *ProjFlux_i, *ProjFlux_j; - su2double *delta_wave, *delta_vel; - su2double *Lambda, *Epsilon; - su2double **P_Tensor, **invP_Tensor; - + su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i, StaticEnthalpy_i, StaticEnergy_i; su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j, StaticEnthalpy_j, StaticEnergy_j; - su2double sq_velRoe, Proj_ModJac_Tensor_ij, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeSoundSpeed2, RoeProjVelocity; + su2double sq_velRoe, ProjVelocity, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeSoundSpeed2, RoeProjVelocity, ProjInterfaceVel; su2double Kappa_i, Kappa_j, Chi_i, Chi_j, RoeKappa, RoeChi, RoeKappaStaticEnthalpy; - su2double sL, sR, sM, pStar, invSLmSs, sLmuL, rhoSL, rhouSL[3], Rrho, eSL, invSRmSs, sRmuR, rhoSR, rhouSR[3], eSR, kappa; + su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; + + su2double Omega, RHO, OmegaSM; + su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU; public: @@ -2132,14 +2134,12 @@ class CUpwGeneralHLLC_Flow : public CNumerics { /*! * \brief Constructor of the class. * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. * \param[in] config - Definition of the particular problem. */ CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); /*! - * \brief Destructor of the class. */ ~CUpwGeneralHLLC_Flow(void); @@ -2151,20 +2151,14 @@ class CUpwGeneralHLLC_Flow : public CNumerics { * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation). * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation). * \param[in] config - Definition of the particular problem. - */ - void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); + void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config); /*! - * \brief Compute the Average quantities for a general fluid flux between two nodes i and j. - * Using the approach of Vinokur and Montagne' - */ - - void VinokurMontagne(); - + void VinokurMontagne(); }; /*! diff --git a/SU2_CFD/src/numerics_direct_mean.cpp b/SU2_CFD/src/numerics_direct_mean.cpp index 97ed98a88a3..41b51276c69 100644 --- a/SU2_CFD/src/numerics_direct_mean.cpp +++ b/SU2_CFD/src/numerics_direct_mean.cpp @@ -944,47 +944,38 @@ void CUpwAUSM_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jac CUpwHLLC_Flow::CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); + kappa = config->GetRoe_Kappa(); + grid_movement = config->GetGrid_Movement(); Gamma = config->GetGamma(); + Gamma_Minus_One = Gamma - 1.0; - Diff_U = new su2double [nVar]; - Velocity_i = new su2double [nDim]; - Velocity_j = new su2double [nDim]; - RoeVelocity = new su2double [nDim]; - delta_vel = new su2double [nDim]; - delta_wave = new su2double [nVar]; - ProjFlux_i = new su2double [nVar]; - ProjFlux_j = new su2double [nVar]; - Lambda = new su2double [nVar]; - Epsilon = new su2double [nVar]; - P_Tensor = new su2double* [nVar]; - invP_Tensor = new su2double* [nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new su2double [nVar]; - invP_Tensor[iVar] = new su2double [nVar]; - } + IntermediateState = new su2double [nVar]; + dSm_dU = new su2double [nVar]; + dPI_dU = new su2double [nVar]; + drhoStar_dU = new su2double [nVar]; + dpStar_dU = new su2double [nVar]; + dEStar_dU = new su2double [nVar]; + + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; } CUpwHLLC_Flow::~CUpwHLLC_Flow(void) { - delete [] Diff_U; + delete [] IntermediateState; + delete [] dSm_dU; + delete [] dPI_dU; + delete [] drhoStar_dU; + delete [] dpStar_dU; + delete [] dEStar_dU; + delete [] Velocity_i; delete [] Velocity_j; delete [] RoeVelocity; - delete [] delta_vel; - delete [] delta_wave; - delete [] ProjFlux_i; - delete [] ProjFlux_j; - delete [] Lambda; - delete [] Epsilon; - for (iVar = 0; iVar < nVar; iVar++) { - delete [] P_Tensor[iVar]; - delete [] invP_Tensor[iVar]; - } - delete [] P_Tensor; - delete [] invP_Tensor; } @@ -994,413 +985,1009 @@ void CUpwHLLC_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jac Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; + Area += Normal[iDim] * Normal[iDim]; + Area = sqrt(Area); /*-- Unit Normal ---*/ for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; - - /*--- Primitive variables at point i ---*/ - - sq_vel_i = 0.0; + UnitNormal[iDim] = Normal[iDim] / Area; + + /*-- Fluid velocity at node i,j ---*/ + for (iDim = 0; iDim < nDim; iDim++) { - Velocity_i[iDim] = V_i[iDim+1]; - sq_vel_i += Velocity_i[iDim]*Velocity_i[iDim]; + Velocity_i[iDim] = V_i[iDim+1]; + Velocity_j[iDim] = V_j[iDim+1]; } + + /*--- Primitive variables at point i ---*/ + Pressure_i = V_i[nDim+1]; Density_i = V_i[nDim+2]; Enthalpy_i = V_i[nDim+3]; - Energy_i = Enthalpy_i - Pressure_i/Density_i; - SoundSpeed_i = sqrt(fabs(Gamma*Gamma_Minus_One*(Energy_i-0.5*sq_vel_i))); - + /*--- Primitive variables at point j ---*/ - sq_vel_j = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { - Velocity_j[iDim] = V_j[iDim+1]; - sq_vel_j += Velocity_j[iDim]*Velocity_j[iDim]; - } Pressure_j = V_j[nDim+1]; Density_j = V_j[nDim+2]; Enthalpy_j = V_j[nDim+3]; - Energy_j = Enthalpy_j - Pressure_j/Density_j; - SoundSpeed_j = sqrt(fabs(Gamma*Gamma_Minus_One*(Energy_j-0.5*sq_vel_j))); - - /*--- Projected velocities ---*/ - - ProjVelocity_i = 0.0; ProjVelocity_j = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { - ProjVelocity_i += Velocity_i[iDim]*UnitNormal[iDim]; - ProjVelocity_j += Velocity_j[iDim]*UnitNormal[iDim]; - } - - /*--- Mean Roe variables iPoint and jPoint ---*/ - - Rrho = sqrt(fabs(Density_j/Density_i)); - tmp = 1.0/(1.0+Rrho); - for (iDim = 0; iDim < nDim; iDim++) - RoeVelocity[iDim] = tmp*(Velocity_i[iDim] + Velocity_j[iDim]*Rrho); - - RoeProjVelocity = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - RoeProjVelocity += RoeVelocity[iDim]*UnitNormal[iDim]; - - RoeEnthalpy = (Rrho*Enthalpy_j+Enthalpy_i)/(Rrho+1); - - sq_velRoe = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - sq_velRoe += RoeVelocity[iDim]*RoeVelocity[iDim]; - - RoeSoundSpeed = sqrt(fabs((Gamma-1)*(RoeEnthalpy-0.5*sq_velRoe))); - - /*--- Speed of sound at L and R ---*/ - - sL = min(RoeProjVelocity-RoeSoundSpeed, ProjVelocity_i-SoundSpeed_i); - sR = max(RoeProjVelocity+RoeSoundSpeed, ProjVelocity_j+SoundSpeed_j); - - /*--- speed of contact surface ---*/ - - sM = (Pressure_i-Pressure_j - - Density_i*ProjVelocity_i*(sL-ProjVelocity_i) - + Density_j*ProjVelocity_j*(sR-ProjVelocity_j)) - /(Density_j*(sR-ProjVelocity_j)-Density_i*(sL-ProjVelocity_i)); - - /*--- Pressure at right and left (Pressure_j=Pressure_i) side of contact surface ---*/ - - pStar = Density_j * (ProjVelocity_j-sR)*(ProjVelocity_j-sM) + Pressure_j; - - if (sM >= 0.0) { - if (sL > 0.0) { - val_residual[0] = Density_i*ProjVelocity_i; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = Density_i*Velocity_i[iDim]*ProjVelocity_i + Pressure_i*UnitNormal[iDim]; - val_residual[nVar-1] = Energy_i*Density_i*ProjVelocity_i + Pressure_i*ProjVelocity_i; - } - else { - invSLmSs = 1.0/(sL-sM); - sLmuL = sL-ProjVelocity_i; - rhoSL = Density_i*sLmuL*invSLmSs; - for (iDim = 0; iDim < nDim; iDim++) - rhouSL[iDim] = (Density_i*Velocity_i[iDim]*sLmuL+(pStar-Pressure_i)*UnitNormal[iDim])*invSLmSs; - eSL = (sLmuL*Energy_i*Density_i-Pressure_i*ProjVelocity_i+pStar*sM)*invSLmSs; - - val_residual[0] = rhoSL*sM; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = rhouSL[iDim]*sM + pStar*UnitNormal[iDim]; - val_residual[nVar-1] = (eSL+pStar)*sM; - } - } - else { - if (sR >= 0.0) { - invSRmSs = 1.0/(sR-sM); - sRmuR = sR-ProjVelocity_j; - rhoSR = Density_j*sRmuR*invSRmSs; - for (iDim = 0; iDim < nDim; iDim++) - rhouSR[iDim] = (Density_j*Velocity_j[iDim]*sRmuR+(pStar-Pressure_j)*UnitNormal[iDim])*invSRmSs; - eSR = (sRmuR*Energy_j*Density_j-Pressure_j*ProjVelocity_j+pStar*sM)*invSRmSs; - - val_residual[0] = rhoSR*sM; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = rhouSR[iDim]*sM + pStar*UnitNormal[iDim]; - val_residual[nVar-1] = (eSR+pStar)*sM; - } - else { - val_residual[0] = Density_j*ProjVelocity_j; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = Density_j*Velocity_j[iDim]*ProjVelocity_j + Pressure_j*UnitNormal[iDim]; - val_residual[nVar-1] = Energy_j*Density_j*ProjVelocity_j + Pressure_j*ProjVelocity_j; - } - } - - for (iVar = 0; iVar < nVar; iVar++) - val_residual[iVar] *= Area; - - if (implicit) { - - /*--- Compute P and Lambda (do it with the Normal) ---*/ - - RoeDensity = Rrho*Density_i; - - GetPMatrix(&RoeDensity, RoeVelocity, &RoeSoundSpeed, UnitNormal, P_Tensor); - - /*--- Flow eigenvalues and Entropy correctors ---*/ - - for (iDim = 0; iDim < nDim; iDim++) - Lambda[iDim] = RoeProjVelocity; - Lambda[nVar-2] = RoeProjVelocity + RoeSoundSpeed; - Lambda[nVar-1] = RoeProjVelocity - RoeSoundSpeed; - - /*--- Compute inverse P ---*/ - - GetPMatrix_inv(&RoeDensity, RoeVelocity, &RoeSoundSpeed, UnitNormal, invP_Tensor); - - /*--- Jacobias of the inviscid flux, scale = 0.5 because val_residual ~ 0.5*(fc_i+fc_j)*Normal ---*/ - - GetInviscidProjJac(Velocity_i, &Energy_i, Normal, 0.5, val_Jacobian_i); - GetInviscidProjJac(Velocity_j, &Energy_j, Normal, 0.5, val_Jacobian_j); - - /*--- Roe's Flux approximation ---*/ - - for (iVar = 0; iVar < nVar; iVar++) { - for (jVar = 0; jVar < nVar; jVar++) { - Proj_ModJac_Tensor_ij = 0.0; - /*--- Compute |Proj_ModJac_Tensor| = P x |Lambda| x inverse P ---*/ - - for (kVar = 0; kVar < nVar; kVar++) - Proj_ModJac_Tensor_ij += P_Tensor[iVar][kVar]*fabs(Lambda[kVar])*invP_Tensor[kVar][jVar]; - val_Jacobian_i[iVar][jVar] += 0.5*Proj_ModJac_Tensor_ij*Area; - val_Jacobian_j[iVar][jVar] -= 0.5*Proj_ModJac_Tensor_ij*Area; - } - } - } -} + sq_vel_i = 0.0; + sq_vel_j = 0.0; -CUpwGeneralHLLC_Flow::CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { - - implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - kappa = config->GetRoe_Kappa(); - - Gamma = config->GetGamma(); - Gamma_Minus_One = Gamma - 1.0; - - Diff_U = new su2double [nVar]; - Velocity_i = new su2double [nDim]; - Velocity_j = new su2double [nDim]; - RoeVelocity = new su2double [nDim]; - delta_vel = new su2double [nDim]; - delta_wave = new su2double [nVar]; - ProjFlux_i = new su2double [nVar]; - ProjFlux_j = new su2double [nVar]; - Lambda = new su2double [nVar]; - Epsilon = new su2double [nVar]; - P_Tensor = new su2double* [nVar]; - invP_Tensor = new su2double* [nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - P_Tensor[iVar] = new su2double [nVar]; - invP_Tensor[iVar] = new su2double [nVar]; + for (iDim = 0; iDim < nDim; iDim++) { + sq_vel_i += Velocity_i[iDim] * Velocity_i[iDim]; + sq_vel_j += Velocity_j[iDim] * Velocity_j[iDim]; } - -} -CUpwGeneralHLLC_Flow::~CUpwGeneralHLLC_Flow(void) { - - delete [] Diff_U; - delete [] Velocity_i; - delete [] Velocity_j; - delete [] RoeVelocity; - delete [] delta_vel; - delete [] delta_wave; - delete [] ProjFlux_i; - delete [] ProjFlux_j; - delete [] Lambda; - delete [] Epsilon; - for (iVar = 0; iVar < nVar; iVar++) { - delete [] P_Tensor[iVar]; - delete [] invP_Tensor[iVar]; - } - delete [] P_Tensor; - delete [] invP_Tensor; - -} + Energy_i = Enthalpy_i - Pressure_i / Density_i; + Energy_j = Enthalpy_j - Pressure_j / Density_j; -void CUpwGeneralHLLC_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { + SoundSpeed_i = sqrt( (Enthalpy_i - 0.5 * sq_vel_i) * Gamma_Minus_One ); + SoundSpeed_j = sqrt( (Enthalpy_j - 0.5 * sq_vel_j) * Gamma_Minus_One ); + + /*--- Projected velocities ---*/ + ProjVelocity_i = 0; + ProjVelocity_j = 0; - /*--- Face area (norm or the normal vector) ---*/ - - Area = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Area += Normal[iDim]*Normal[iDim]; - Area = sqrt(Area); - - /*-- Unit Normal ---*/ - - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; - - /*--- Primitive variables at point i ---*/ - - sq_vel_i = 0.0; for (iDim = 0; iDim < nDim; iDim++) { - Velocity_i[iDim] = V_i[iDim+1]; - sq_vel_i += Velocity_i[iDim]*Velocity_i[iDim]; + ProjVelocity_i += Velocity_i[iDim] * UnitNormal[iDim]; + ProjVelocity_j += Velocity_j[iDim] * UnitNormal[iDim]; } - Pressure_i = fabs(V_i[nDim+1]); - Density_i = fabs(V_i[nDim+2]); - Enthalpy_i = fabs(V_i[nDim+3]); - Energy_i = Enthalpy_i - Pressure_i/Density_i; + /*--- Projected Grid Velocity ---*/ - StaticEnergy_i = Energy_i - 0.5*sq_vel_i; - StaticEnthalpy_i = Enthalpy_i - 0.5*sq_vel_i; - - Kappa_i = S_i[1]/Density_i; - Chi_i = S_i[0] - Kappa_i*StaticEnergy_i; - SoundSpeed_i = sqrt(Chi_i + StaticEnthalpy_i*Kappa_i); - - /*--- Primitive variables at point j ---*/ - - sq_vel_j = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { - Velocity_j[iDim] = V_j[iDim+1]; - sq_vel_j += Velocity_j[iDim]*Velocity_j[iDim]; - } + ProjInterfaceVel = 0; - Pressure_j = fabs(V_j[nDim+1]); - Density_j = fabs(V_j[nDim+2]); - Enthalpy_j = fabs(V_j[nDim+3]); - Energy_j = Enthalpy_j - Pressure_j/Density_j; + if (grid_movement) { - StaticEnergy_j = Energy_j - 0.5*sq_vel_j; - StaticEnthalpy_j = Enthalpy_j - 0.5*sq_vel_j; + for (iDim = 0; iDim < nDim; iDim++) + ProjInterfaceVel += 0.5 * ( GridVel_i[iDim] + GridVel_j[iDim] )*UnitNormal[iDim]; - Kappa_j = S_j[1]/Density_j; - Chi_j = S_j[0] - Kappa_j*StaticEnergy_j; - SoundSpeed_j = sqrt(Chi_j + StaticEnthalpy_j*Kappa_j); - - /*--- Projected velocities ---*/ - - ProjVelocity_i = 0.0; - ProjVelocity_j = 0.0; + SoundSpeed_i -= ProjInterfaceVel; + SoundSpeed_j += ProjInterfaceVel; - for (iDim = 0; iDim < nDim; iDim++) { - ProjVelocity_i += Velocity_i[iDim]*UnitNormal[iDim]; - ProjVelocity_j += Velocity_j[iDim]*UnitNormal[iDim]; - } + ProjVelocity_i -= ProjInterfaceVel; + ProjVelocity_j -= ProjInterfaceVel; + } /*--- Roe's averaging ---*/ - Rrho = 1/( sqrt(Density_i) + sqrt(Density_j) ); - sq_velRoe = 0.0; - RoeProjVelocity = 0.0; + Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); + + sq_velRoe = 0.0; + RoeProjVelocity = - ProjInterfaceVel; for (iDim = 0; iDim < nDim; iDim++){ - RoeVelocity[iDim] = ( Velocity_i[iDim]*sqrt(Density_i) + Velocity_j[iDim]*sqrt(Density_j) ) * Rrho; - sq_velRoe += RoeVelocity[iDim]*RoeVelocity[iDim]; - RoeProjVelocity += RoeVelocity[iDim]*UnitNormal[iDim]; + RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; + sq_velRoe += RoeVelocity[iDim] * RoeVelocity[iDim]; + RoeProjVelocity += RoeVelocity[iDim] * UnitNormal[iDim]; } + /*--- Mean Roe variables iPoint and jPoint ---*/ + + RoeDensity = sqrt( Density_i * Density_j ); + RoeEnthalpy = ( sqrt(Density_j) * Enthalpy_j + sqrt(Density_i) * Enthalpy_i) / Rrho; + /*--- Roe-averaged speed of sound ---*/ - - RoeEnthalpy = ( Enthalpy_i*sqrt(Density_i) + Enthalpy_j*sqrt(Density_j) ) * Rrho; - RoeSoundSpeed = sqrt( fabs( (Gamma-1)*( RoeEnthalpy - 0.5*sq_velRoe ) )); + //RoeSoundSpeed2 = Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ); + RoeSoundSpeed = sqrt( Gamma_Minus_One * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; + /*--- Speed of sound at L and R ---*/ - sL = min(RoeProjVelocity-RoeSoundSpeed, ProjVelocity_i-SoundSpeed_i); - sR = max(RoeProjVelocity+RoeSoundSpeed, ProjVelocity_j+SoundSpeed_j); + sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i); + sR = max( RoeProjVelocity + RoeSoundSpeed, ProjVelocity_j + SoundSpeed_j); /*--- speed of contact surface ---*/ - - sM = (Pressure_i-Pressure_j - - Density_i*ProjVelocity_i*(sL-ProjVelocity_i) - + Density_j*ProjVelocity_j*(sR-ProjVelocity_j)) - /(Density_j*(sR-ProjVelocity_j)-Density_i*(sL-ProjVelocity_i)); + + RHO = Density_j * (sR - ProjVelocity_j) - Density_i * (sL - ProjVelocity_i); + sM = ( Pressure_i - Pressure_j - Density_i * ProjVelocity_i * ( sL - ProjVelocity_i ) + Density_j * ProjVelocity_j * ( sR - ProjVelocity_j ) ) / RHO; /*--- Pressure at right and left (Pressure_j=Pressure_i) side of contact surface ---*/ - pStar = Density_j * (ProjVelocity_j-sR)*(ProjVelocity_j-sM) + Pressure_j; - - if (sM >= 0.0) { - if (sL > 0.0) { - val_residual[0] = Density_i*ProjVelocity_i; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = Density_i*Velocity_i[iDim]*ProjVelocity_i + Pressure_i*UnitNormal[iDim]; - val_residual[nVar-1] = (Energy_i*Density_i + Pressure_i)*ProjVelocity_i; - } - else { - invSLmSs = 1.0/(sL-sM); - sLmuL = sL-ProjVelocity_i; - rhoSL = Density_i*sLmuL*invSLmSs; - for (iDim = 0; iDim < nDim; iDim++) - rhouSL[iDim] = (Density_i*Velocity_i[iDim]*sLmuL+(pStar-Pressure_i)*UnitNormal[iDim])*invSLmSs; - eSL = (sLmuL*Energy_i*Density_i-Pressure_i*ProjVelocity_i+pStar*sM)*invSLmSs; - - val_residual[0] = rhoSL*sM; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = rhouSL[iDim]*sM + pStar*UnitNormal[iDim]; - val_residual[nVar-1] = (eSL+pStar)*sM; - } - } - else { - if (sR >= 0.0) { - invSRmSs = 1.0/(sR-sM); - sRmuR = sR-ProjVelocity_j; - rhoSR = Density_j*sRmuR*invSRmSs; - for (iDim = 0; iDim < nDim; iDim++) - rhouSR[iDim] = (Density_j*Velocity_j[iDim]*sRmuR+(pStar-Pressure_j)*UnitNormal[iDim])*invSRmSs; - eSR = (sRmuR*Energy_j*Density_j-Pressure_j*ProjVelocity_j+pStar*sM)*invSRmSs; - - val_residual[0] = rhoSR*sM; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = rhouSR[iDim]*sM + pStar*UnitNormal[iDim]; - val_residual[nVar-1] = (eSR+pStar)*sM; - } - else { - val_residual[0] = Density_j*ProjVelocity_j; - for (iDim = 0; iDim < nDim; iDim++) - val_residual[iDim+1] = Density_j*Velocity_j[iDim]*ProjVelocity_j + Pressure_j*UnitNormal[iDim]; - val_residual[nVar-1] = (Energy_j*Density_j + Pressure_j)*ProjVelocity_j; - } + pStar = Density_j * ( ProjVelocity_j - sR ) * ( ProjVelocity_j - sM ) + Pressure_j; + + +if (sM > 0.0) { + + if (sL > 0.0){ + + /*--- Compute Left Flux ---*/ + + val_residual[0] = Density_i * ProjVelocity_i; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = Density_i * Velocity_i[iDim] * ProjVelocity_i + Pressure_i * UnitNormal[iDim]; + val_residual[nVar-1] = Enthalpy_i * Density_i * ProjVelocity_i; + } + else{ + + /*--- Compute Flux Left Star from Left Star State ---*/ + + rhoSL = ( sL - ProjVelocity_i ) / ( sL - sM ); + + IntermediateState[0] = rhoSL * Density_i; + for (iDim = 0; iDim < nDim; iDim++) + IntermediateState[iDim+1] = rhoSL * ( Density_i * Velocity_i[iDim] + ( pStar - Pressure_i ) / ( sL - ProjVelocity_i ) * UnitNormal[iDim] ) ; + IntermediateState[nVar-1] = rhoSL * ( Density_i * Energy_i - ( Pressure_i * ProjVelocity_i - pStar * sM) / ( sL - ProjVelocity_i ) ); + + + val_residual[0] = sM * IntermediateState[0]; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; + val_residual[nVar-1] = sM * ( IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; + } } - + else { + + if (sR < 0.0){ + + /*--- Compute Right Flux ---*/ + + val_residual[0] = Density_j * ProjVelocity_j; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = Density_j * Velocity_j[iDim] * ProjVelocity_j + Pressure_j * UnitNormal[iDim]; + val_residual[nVar-1] = Enthalpy_j * Density_j * ProjVelocity_j; + } + else{ + + /*--- Compute Flux Right Star from Right Star State ---*/ + + rhoSR = ( sR - ProjVelocity_j ) / ( sR - sM ); + + IntermediateState[0] = rhoSR * Density_j; + for (iDim = 0; iDim < nDim; iDim++) + IntermediateState[iDim+1] = rhoSR * ( Density_j * Velocity_j[iDim] + ( pStar - Pressure_j ) / ( sR - ProjVelocity_j ) * UnitNormal[iDim] ) ; + IntermediateState[nVar-1] = rhoSR * ( Density_j * Energy_j - ( Pressure_j * ProjVelocity_j - pStar * sM ) / ( sR - ProjVelocity_j ) ); + + + val_residual[0] = sM * IntermediateState[0]; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; + val_residual[nVar-1] = sM * (IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; + } + } + + for (iVar = 0; iVar < nVar; iVar++) val_residual[iVar] *= Area; - + + if (implicit) { - - /*--- Mean Roe variables iPoint and jPoint ---*/ - - RoeKappa = 0.5*(Kappa_i + Kappa_j); - RoeChi = 0.5*(Chi_i + Chi_j); - RoeDensity = sqrt(Density_i*Density_j); - VinokurMontagne(); - - /*--- Compute P and Lambda (do it with the Normal) ---*/ - - GetPMatrix(&RoeDensity, RoeVelocity, &RoeSoundSpeed, &RoeEnthalpy, &RoeChi, &RoeKappa, UnitNormal, P_Tensor); - - /*--- Flow eigenvalues and Entropy correctors ---*/ - - for (iDim = 0; iDim < nDim; iDim++) - Lambda[iDim] = RoeProjVelocity; + if (sM > 0.0) { - Lambda[nVar-2] = RoeProjVelocity + RoeSoundSpeed; - Lambda[nVar-1] = RoeProjVelocity - RoeSoundSpeed; - - /*--- Compute inverse P ---*/ - - GetPMatrix_inv(invP_Tensor, &RoeDensity, RoeVelocity, &RoeSoundSpeed, &RoeChi , &RoeKappa, UnitNormal); - - /*--- Jacobians of the inviscid flux, scale = 0.5 because val_residual ~ 0.5*(fc_i+fc_j)*Normal ---*/ - - GetInviscidProjJac(Velocity_i, &Enthalpy_i, &Chi_i, &Kappa_i, Normal, 0.5, val_Jacobian_i); - GetInviscidProjJac(Velocity_j, &Enthalpy_j, &Chi_j, &Kappa_j, Normal, 0.5, val_Jacobian_j); - - /*--- Roe's Flux approximation ---*/ + if (sL > 0.0){ + + /*--- Compute Jacobian based on Left State ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) + val_Jacobian_j[iVar][jVar] = 0; + + GetInviscidProjJac(Velocity_i, &Energy_i, UnitNormal, 1.0, val_Jacobian_i); + + } + else{ + /*--- Compute Jacobian based on Left Star State ---*/ + + EStar = IntermediateState[nVar-1]; + Omega = 1/(sL-sM); + OmegaSM = Omega * sM; + + + /*--------- Left Jacobian ---------*/ + + + /*--- Computing pressure derivatives d/dU_L (PI) ---*/ + + dPI_dU[0] = 0.5 * Gamma_Minus_One * sq_vel_i; + for (iDim = 0; iDim < nDim; iDim++) + dPI_dU[iDim+1] = - Gamma_Minus_One * Velocity_i[iDim]; + dPI_dU[nVar-1] = Gamma_Minus_One; + + + /*--- Computing d/dU_L (Sm) ---*/ + + dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + dPI_dU[0] ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) + dPI_dU[iDim+1] ) / RHO; + dSm_dU[nVar-1] = dPI_dU[nVar-1] / RHO; + + + /*--- Computing d/dU_L (rhoStar) ---*/ + + drhoStar_dU[0] = Omega * ( sL + IntermediateState[0] * dSm_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); + drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; + + + /*--- Computing d/dU_L (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; + + + /*--- Computing d/dU_L (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + dEStar_dU[0] += Omega * ProjVelocity_i * ( Enthalpy_i - dPI_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_i - ProjVelocity_i * dPI_dU[iDim+1] ); + dEStar_dU[nVar-1] += Omega * ( sL - ProjVelocity_i - ProjVelocity_i * dPI_dU[nVar-1] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (jDim = 0; jDim < nDim; jDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); + + val_Jacobian_i[jDim+1][0] += OmegaSM * Velocity_i[jDim] * ProjVelocity_i; + + val_Jacobian_i[jDim+1][jDim+1] += OmegaSM * (sL - ProjVelocity_i); + + for (iDim = 0; iDim < nDim; iDim++) + val_Jacobian_i[jDim+1][iDim+1] -= OmegaSM * Velocity_i[jDim] * UnitNormal[iDim]; + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; + + + + + /*--------- Right Jacobian ---------*/ + + + /*--- Computing d/dU_R (Sm) ---*/ + + dSm_dU[0] = ( ProjVelocity_j * ProjVelocity_j - sM * sR - 0.5 * Gamma_Minus_One * sq_vel_j ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) - Gamma_Minus_One * Velocity_j[iDim] ) / RHO; + dSm_dU[nVar-1] = - Gamma_Minus_One / RHO; + + + /*--- Computing d/dU_R (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; + + + /*--- Computing d/dU_R (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (iDim = 0; iDim < nDim; iDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[iDim+1][iVar] = ( OmegaSM + 1 ) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; + } + } + else { + if (sR < 0.0){ + + /*--- Compute Jacobian based on Right State ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) + val_Jacobian_i[iVar][jVar] = 0; + + GetInviscidProjJac(Velocity_j, &Energy_j, UnitNormal, 1.0, val_Jacobian_j); + + } + else{ + /*--- Compute Jacobian based on Right Star State ---*/ + + EStar = IntermediateState[nVar-1]; + Omega = 1/(sR-sM); + OmegaSM = Omega * sM; + + + /*--------- Left Jacobian ---------*/ + + + /*--- Computing d/dU_L (Sm) ---*/ + + dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + 0.5 * Gamma_Minus_One * sq_vel_i ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) - Gamma_Minus_One * Velocity_i[iDim] ) / RHO; + dSm_dU[nVar-1] = Gamma_Minus_One / RHO; + + + /*--- Computing d/dU_L (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; + + + /*--- Computing d/dU_L (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (iDim = 0; iDim < nDim; iDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[iDim+1][iVar] = (OmegaSM + 1) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; + + + + /*--------- Right Jacobian ---------*/ + + + /*--- Computing pressure derivatives d/dU_R (PI) ---*/ + + dPI_dU[0] = 0.5 * Gamma_Minus_One * sq_vel_j; + for (iDim = 0; iDim < nDim; iDim++) + dPI_dU[iDim+1] = - Gamma_Minus_One * Velocity_j[iDim]; + dPI_dU[nVar-1] = Gamma_Minus_One; + + + + /*--- Computing d/dU_R (Sm) ---*/ + + dSm_dU[0] = - ( - ProjVelocity_j * ProjVelocity_j + sM * sR + dPI_dU[0] ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) + dPI_dU[iDim+1] ) / RHO; + dSm_dU[nVar-1] = - dPI_dU[nVar-1] / RHO; + + + /*--- Computing d/dU_R (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; + + + /*--- Computing d/dU_R (rhoStar) ---*/ + + drhoStar_dU[0] = Omega * ( sR + IntermediateState[0] * dSm_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); + drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; + + + /*--- Computing d/dU_R (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + dEStar_dU[0] += Omega * ProjVelocity_j * ( Enthalpy_j - dPI_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_j - ProjVelocity_j * dPI_dU[iDim+1] ); + dEStar_dU[nVar-1] += Omega * ( sR - ProjVelocity_j - ProjVelocity_j * dPI_dU[nVar-1] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (jDim = 0; jDim < nDim; jDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); + + val_Jacobian_j[jDim+1][0] += OmegaSM * Velocity_j[jDim] * ProjVelocity_j; + + val_Jacobian_j[jDim+1][jDim+1] += OmegaSM * (sR - ProjVelocity_j); + + for (iDim = 0; iDim < nDim; iDim++) + val_Jacobian_j[jDim+1][iDim+1] -= OmegaSM * Velocity_j[jDim] * UnitNormal[iDim]; + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; + + } + } + + + /*--- Jacobians of the inviscid flux, scale = k because val_residual ~ 0.5*(fc_i+fc_j)*Normal ---*/ + + Area *= kappa; + + for (iVar = 0; iVar < nVar; iVar++) { + for (jVar = 0; jVar < nVar; jVar++){ + val_Jacobian_i[iVar][jVar] *= Area; + val_Jacobian_j[iVar][jVar] *= Area; + } + } +} + +} + +CUpwGeneralHLLC_Flow::CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { + + implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); + kappa = config->GetRoe_Kappa(); + grid_movement = config->GetGrid_Movement(); + + Gamma = config->GetGamma(); + + IntermediateState = new su2double [nVar]; + dSm_dU = new su2double [nVar]; + dPI_dU = new su2double [nVar]; + drhoStar_dU = new su2double [nVar]; + dpStar_dU = new su2double [nVar]; + dEStar_dU = new su2double [nVar]; + + Velocity_i = new su2double [nDim]; + Velocity_j = new su2double [nDim]; + RoeVelocity = new su2double [nDim]; + +} + +CUpwGeneralHLLC_Flow::~CUpwGeneralHLLC_Flow(void) { + + delete [] IntermediateState; + delete [] dSm_dU; + delete [] dPI_dU; + delete [] drhoStar_dU; + delete [] dpStar_dU; + delete [] dEStar_dU; + + delete [] Velocity_i; + delete [] Velocity_j; + delete [] RoeVelocity; + +} + +void CUpwGeneralHLLC_Flow::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) { + + /*--- Face area (norm or the normal vector) ---*/ + + Area = 0.0; + for (iDim = 0; iDim < nDim; iDim++) + Area += Normal[iDim] * Normal[iDim]; + + Area = sqrt(Area); + + /*-- Unit Normal ---*/ + + for (iDim = 0; iDim < nDim; iDim++) + UnitNormal[iDim] = Normal[iDim] / Area; + + /*-- Fluid velocity at node i,j ---*/ + + for (iDim = 0; iDim < nDim; iDim++) { + Velocity_i[iDim] = V_i[iDim+1]; + Velocity_j[iDim] = V_j[iDim+1]; + } + + /*--- Primitive variables at point i ---*/ + + Pressure_i = V_i[nDim+1]; + Density_i = V_i[nDim+2]; + Enthalpy_i = V_i[nDim+3]; + + /*--- Primitive variables at point j ---*/ + + Pressure_j = V_j[nDim+1]; + Density_j = V_j[nDim+2]; + Enthalpy_j = V_j[nDim+3]; + + + sq_vel_i = 0.0; + sq_vel_j = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + sq_vel_i += Velocity_i[iDim] * Velocity_i[iDim]; + sq_vel_j += Velocity_j[iDim] * Velocity_j[iDim]; + } + + Energy_i = Enthalpy_i - Pressure_i / Density_i; + StaticEnthalpy_i = Enthalpy_i - 0.5 * sq_vel_i; + StaticEnergy_i = Energy_i - 0.5 * sq_vel_i; + + Kappa_i = S_i[1] / Density_i; + Chi_i = S_i[0] - Kappa_i * StaticEnergy_i; + SoundSpeed_i = sqrt(Chi_i + StaticEnthalpy_i * Kappa_i); + + + Energy_j = Enthalpy_j - Pressure_j / Density_j; + StaticEnthalpy_j = Enthalpy_j - 0.5 * sq_vel_j; + StaticEnergy_j = Energy_j - 0.5 * sq_vel_j; + + Kappa_j = S_j[1] / Density_j; + Chi_j = S_j[0] - Kappa_j * StaticEnergy_j; + SoundSpeed_j = sqrt(Chi_j + StaticEnthalpy_j * Kappa_j); + + /*--- Projected velocities ---*/ + + ProjVelocity_i = 0.0; + ProjVelocity_j = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + ProjVelocity_i += Velocity_i[iDim] * UnitNormal[iDim]; + ProjVelocity_j += Velocity_j[iDim] * UnitNormal[iDim]; + } + + + /*--- Projected Grid Velocity ---*/ + + ProjInterfaceVel = 0; + + if (grid_movement) { + + for (iDim = 0; iDim < nDim; iDim++) + ProjInterfaceVel += 0.5 * ( GridVel_i[iDim] + GridVel_j[iDim] )*UnitNormal[iDim]; + + SoundSpeed_i -= ProjInterfaceVel; + SoundSpeed_j += ProjInterfaceVel; + + ProjVelocity_i -= ProjInterfaceVel; + ProjVelocity_j -= ProjInterfaceVel; + } + + /*--- Roe's averaging ---*/ + + Rrho = ( sqrt(Density_i) + sqrt(Density_j) ); + + sq_velRoe = 0.0; + RoeProjVelocity = - ProjInterfaceVel; + + for (iDim = 0; iDim < nDim; iDim++){ + RoeVelocity[iDim] = ( Velocity_i[iDim] * sqrt(Density_i) + Velocity_j[iDim] * sqrt(Density_j) ) / Rrho; + sq_velRoe += RoeVelocity[iDim] * RoeVelocity[iDim]; + RoeProjVelocity += RoeVelocity[iDim] * UnitNormal[iDim]; + } + + /*--- Mean Roe variables iPoint and jPoint ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - for (jVar = 0; jVar < nVar; jVar++) { - Proj_ModJac_Tensor_ij = 0.0; + RoeKappa = 0.5 * ( Kappa_i + Kappa_j ); + RoeChi = 0.5 * ( Chi_i + Chi_j ); + RoeDensity = sqrt( Density_i * Density_j ); + RoeEnthalpy = ( sqrt(Density_j) * Enthalpy_j + sqrt(Density_i) * Enthalpy_i) / Rrho; - /*--- Compute |Proj_ModJac_Tensor| = P x |Lambda| x inverse P ---*/ - - for (kVar = 0; kVar < nVar; kVar++) - Proj_ModJac_Tensor_ij += P_Tensor[iVar][kVar]*fabs(Lambda[kVar])*invP_Tensor[kVar][jVar]; + VinokurMontagne(); - val_Jacobian_i[iVar][jVar] += 0.5*Proj_ModJac_Tensor_ij*Area; - val_Jacobian_j[iVar][jVar] -= 0.5*Proj_ModJac_Tensor_ij*Area; + /*--- Roe-averaged speed of sound ---*/ - } - } - } + //RoeSoundSpeed2 = RoeChi + RoeKappa * ( RoeEnthalpy - 0.5 * sq_velRoe ); + RoeSoundSpeed = sqrt( RoeChi + RoeKappa * ( RoeEnthalpy - 0.5 * sq_velRoe ) ) - ProjInterfaceVel; + + /*--- Speed of sound at L and R ---*/ + + sL = min( RoeProjVelocity - RoeSoundSpeed, ProjVelocity_i - SoundSpeed_i ); + sR = max( RoeProjVelocity + RoeSoundSpeed, ProjVelocity_j + SoundSpeed_j ); + + /*--- speed of contact surface ---*/ + + RHO = Density_j * (sR - ProjVelocity_j) - Density_i * (sL - ProjVelocity_i); + sM = ( Pressure_i - Pressure_j - Density_i * ProjVelocity_i * ( sL - ProjVelocity_i ) + Density_j * ProjVelocity_j * ( sR - ProjVelocity_j ) ) / RHO; + /*--- Pressure at right and left (Pressure_j=Pressure_i) side of contact surface ---*/ + + pStar = Density_j * ( ProjVelocity_j - sR ) * ( ProjVelocity_j - sM ) + Pressure_j; + + +if (sM > 0.0) { + + if (sL > 0.0){ + + /*--- Compute Left Flux ---*/ + + val_residual[0] = Density_i * ProjVelocity_i; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = Density_i * Velocity_i[iDim] * ProjVelocity_i + Pressure_i * UnitNormal[iDim]; + val_residual[nVar-1] = Enthalpy_i * Density_i * ProjVelocity_i; + } + else{ + + /*--- Compute Flux Left Star from Left Star State ---*/ + + rhoSL = ( sL - ProjVelocity_i ) / ( sL - sM ); + + IntermediateState[0] = rhoSL * Density_i; + for (iDim = 0; iDim < nDim; iDim++) + IntermediateState[iDim+1] = rhoSL * ( Density_i * Velocity_i[iDim] + ( pStar - Pressure_i ) / ( sL - ProjVelocity_i ) * UnitNormal[iDim] ) ; + IntermediateState[nVar-1] = rhoSL * ( Density_i * Energy_i - ( Pressure_i * ProjVelocity_i - pStar * sM) / ( sL - ProjVelocity_i ) ); + + + val_residual[0] = sM * IntermediateState[0]; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; + val_residual[nVar-1] = sM * ( IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; + } + } + else { + + if (sR < 0.0){ + + /*--- Compute Right Flux ---*/ + + val_residual[0] = Density_j * ProjVelocity_j; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = Density_j * Velocity_j[iDim] * ProjVelocity_j + Pressure_j * UnitNormal[iDim]; + val_residual[nVar-1] = Enthalpy_j * Density_j * ProjVelocity_j; + } + else{ + + /*--- Compute Flux Right Star from Right Star State ---*/ + + rhoSR = ( sR - ProjVelocity_j ) / ( sR - sM ); + + IntermediateState[0] = rhoSR * Density_j; + for (iDim = 0; iDim < nDim; iDim++) + IntermediateState[iDim+1] = rhoSR * ( Density_j * Velocity_j[iDim] + ( pStar - Pressure_j ) / ( sR - ProjVelocity_j ) * UnitNormal[iDim] ) ; + IntermediateState[nVar-1] = rhoSR * ( Density_j * Energy_j - ( Pressure_j * ProjVelocity_j - pStar * sM ) / ( sR - ProjVelocity_j ) ); + + + val_residual[0] = sM * IntermediateState[0]; + for (iDim = 0; iDim < nDim; iDim++) + val_residual[iDim+1] = sM * IntermediateState[iDim+1] + pStar * UnitNormal[iDim]; + val_residual[nVar-1] = sM * (IntermediateState[nVar-1] + pStar ) + pStar * ProjInterfaceVel; + } + } + + for (iVar = 0; iVar < nVar; iVar++) + val_residual[iVar] *= Area; + + + if (implicit) { + + if (sM > 0.0) { + + if (sL > 0.0){ + + /*--- Compute Jacobian based on Left State ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) + val_Jacobian_j[iVar][jVar] = 0; + + + GetInviscidProjJac(Velocity_i, &Enthalpy_i, &Chi_i, &Kappa_i, UnitNormal, 1.0, val_Jacobian_i); + + } + else{ + /*--- Compute Jacobian based on Left Star State ---*/ + + EStar = IntermediateState[nVar-1]; + Omega = 1/(sL-sM); + OmegaSM = Omega * sM; + + + /*--------- Left Jacobian ---------*/ + + + /*--- Computing pressure derivatives d/dU_L (PI) ---*/ + + dPI_dU[0] = Chi_i - 0.5 * Kappa_i * sq_vel_i; + for (iDim = 0; iDim < nDim; iDim++) + dPI_dU[iDim+1] = - Kappa_i * Velocity_i[iDim]; + dPI_dU[nVar-1] = Kappa_i; + + + /*--- Computing d/dU_L (Sm) ---*/ + + dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + dPI_dU[0] ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) + dPI_dU[iDim+1] ) / RHO; + dSm_dU[nVar-1] = dPI_dU[nVar-1] / RHO; + + + /*--- Computing d/dU_L (rhoStar) ---*/ + + drhoStar_dU[0] = Omega * ( sL + IntermediateState[0] * dSm_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); + drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; + + + /*--- Computing d/dU_L (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; + + + /*--- Computing d/dU_L (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + dEStar_dU[0] += Omega * ProjVelocity_i * ( Enthalpy_i - dPI_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_i - ProjVelocity_i * dPI_dU[iDim+1] ); + dEStar_dU[nVar-1] += Omega * ( sL - ProjVelocity_i - ProjVelocity_i * dPI_dU[nVar-1] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (jDim = 0; jDim < nDim; jDim++){ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); + + val_Jacobian_i[jDim+1][0] += OmegaSM * Velocity_i[jDim] * ProjVelocity_i; + + val_Jacobian_i[jDim+1][jDim+1] += OmegaSM * (sL - ProjVelocity_i); + + for (iDim = 0; iDim < nDim; iDim++) + val_Jacobian_i[jDim+1][iDim+1] -= OmegaSM * Velocity_i[jDim] * UnitNormal[iDim]; + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; + + + + + /*--------- Right Jacobian ---------*/ + + + /*--- Computing pressure derivatives d/dU_R (PI) ---*/ + + dPI_dU[0] = Chi_j - 0.5 * Kappa_j * sq_vel_j; + for (iDim = 0; iDim < nDim; iDim++) + dPI_dU[iDim+1] = - Kappa_j * Velocity_j[iDim]; + dPI_dU[nVar-1] = Kappa_j; + + + /*--- Computing d/dU_R (Sm) ---*/ + + dSm_dU[0] = ( ProjVelocity_j * ProjVelocity_j - sM * sR - dPI_dU[0] ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) + dPI_dU[iDim+1] ) / RHO; + dSm_dU[nVar-1] = - dPI_dU[nVar-1] / RHO; + + + /*--- Computing d/dU_R (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; + + + /*--- Computing d/dU_R (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (iDim = 0; iDim < nDim; iDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[iDim+1][iVar] = ( OmegaSM + 1 ) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; + } + } + else { + if (sR < 0.0){ + + /*--- Compute Jacobian based on Right State ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + for (jVar = 0; jVar < nVar; jVar++) + val_Jacobian_i[iVar][jVar] = 0; + + GetInviscidProjJac(Velocity_j, &Enthalpy_j, &Chi_j, &Kappa_j, UnitNormal, 1.0, val_Jacobian_j); + + } + else{ + /*--- Compute Jacobian based on Right Star State ---*/ + + EStar = IntermediateState[nVar-1]; + Omega = 1/(sR-sM); + OmegaSM = Omega * sM; + + + /*--------- Left Jacobian ---------*/ + + + /*--- Computing pressure derivatives d/dU_L (PI) ---*/ + + dPI_dU[0] = Chi_i - 0.5 * Kappa_i * sq_vel_i; + for (iDim = 0; iDim < nDim; iDim++) + dPI_dU[iDim+1] = - Kappa_i * Velocity_i[iDim]; + dPI_dU[nVar-1] = Kappa_i; + + + /*--- Computing d/dU_L (Sm) ---*/ + + dSm_dU[0] = ( - ProjVelocity_i * ProjVelocity_i + sM * sL + dPI_dU[0] ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = ( UnitNormal[iDim] * ( 2 * ProjVelocity_i - sL - sM ) + dPI_dU[iDim+1] ) / RHO; + dSm_dU[nVar-1] = dPI_dU[nVar-1] / RHO; + + + /*--- Computing d/dU_L (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_i * (sR - ProjVelocity_j) * dSm_dU[iVar]; + + + /*--- Computing d/dU_L (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[0][iVar] = IntermediateState[0] * ( OmegaSM + 1 ) * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (iDim = 0; iDim < nDim; iDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[iDim+1][iVar] = (OmegaSM + 1) * ( IntermediateState[iDim+1] * dSm_dU[iVar] + UnitNormal[iDim] * dpStar_dU[iVar] ); + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_i[nVar-1][iVar] = sM * (dEStar_dU[iVar] + dpStar_dU[iVar]) + (EStar + pStar) * dSm_dU[iVar]; + + + + /*--------- Right Jacobian ---------*/ + + + /*--- Computing pressure derivatives d/dU_R (PI) ---*/ + + dPI_dU[0] = Chi_j - 0.5 * Kappa_j * sq_vel_j; + for (iDim = 0; iDim < nDim; iDim++) + dPI_dU[iDim+1] = - Kappa_j * Velocity_j[iDim]; + dPI_dU[nVar-1] = Kappa_j; + + + /*--- Computing d/dU_R (Sm) ---*/ + + dSm_dU[0] = - ( - ProjVelocity_j * ProjVelocity_j + sM * sR + dPI_dU[0] ) / RHO; + for (iDim = 0; iDim < nDim; iDim++) + dSm_dU[iDim+1] = - ( UnitNormal[iDim] * ( 2 * ProjVelocity_j - sR - sM) + dPI_dU[iDim+1] ) / RHO; + dSm_dU[nVar-1] = - dPI_dU[nVar-1] / RHO; + + + /*--- Computing d/dU_R (pStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dpStar_dU[iVar] = Density_j * (sL - ProjVelocity_i) * dSm_dU[iVar]; + + + /*--- Computing d/dU_R (rhoStar) ---*/ + + drhoStar_dU[0] = Omega * ( sR + IntermediateState[0] * dSm_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + drhoStar_dU[iDim+1] = Omega * ( - UnitNormal[iDim] + IntermediateState[0] * dSm_dU[iDim+1] ); + drhoStar_dU[nVar-1] = Omega * IntermediateState[0] * dSm_dU[nVar-1]; + + + /*--- Computing d/dU_R (EStar) ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + dEStar_dU[iVar] = Omega * ( sM * dpStar_dU[iVar] + ( EStar + pStar ) * dSm_dU[iVar] ); + + dEStar_dU[0] += Omega * ProjVelocity_j * ( Enthalpy_j - dPI_dU[0] ); + for (iDim = 0; iDim < nDim; iDim++) + dEStar_dU[iDim+1] += Omega * ( - UnitNormal[iDim] * Enthalpy_j - ProjVelocity_j * dPI_dU[iDim+1] ); + dEStar_dU[nVar-1] += Omega * ( sR - ProjVelocity_j - ProjVelocity_j * dPI_dU[nVar-1] ); + + + + /*--- Jacobian First Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[0][iVar] = sM * drhoStar_dU[iVar] + IntermediateState[0] * dSm_dU[iVar]; + + /*--- Jacobian Middle Rows ---*/ + + for (jDim = 0; jDim < nDim; jDim++){ + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[jDim+1][iVar] = ( OmegaSM + 1 ) * ( UnitNormal[jDim] * dpStar_dU[iVar] + IntermediateState[jDim+1] * dSm_dU[iVar] ); + + val_Jacobian_j[jDim+1][0] += OmegaSM * Velocity_j[jDim] * ProjVelocity_j; + + val_Jacobian_j[jDim+1][jDim+1] += OmegaSM * (sR - ProjVelocity_j); + + for (iDim = 0; iDim < nDim; iDim++) + val_Jacobian_j[jDim+1][iDim+1] -= OmegaSM * Velocity_j[jDim] * UnitNormal[iDim]; + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[jDim+1][iVar] -= OmegaSM * dPI_dU[iVar] * UnitNormal[jDim]; + } + + /*--- Jacobian Last Row ---*/ + + for (iVar = 0; iVar < nVar; iVar++) + val_Jacobian_j[nVar-1][iVar] = sM * ( dEStar_dU[iVar] + dpStar_dU[iVar] ) + ( EStar + pStar ) * dSm_dU[iVar]; + } + } + + + /*--- Jacobians of the inviscid flux, scale = kappa because val_residual ~ 0.5*(fc_i+fc_j)*Normal ---*/ + + Area *= kappa; + + for (iVar = 0; iVar < nVar; iVar++) { + for (jVar = 0; jVar < nVar; jVar++){ + val_Jacobian_i[iVar][jVar] *= Area; + val_Jacobian_j[iVar][jVar] *= Area; + } + } + + } + } void CUpwGeneralHLLC_Flow::VinokurMontagne() { @@ -1408,24 +1995,24 @@ void CUpwGeneralHLLC_Flow::VinokurMontagne() { su2double delta_rhoStaticEnergy, delta_rho, delta_p, err_P, s, D; delta_rho = Density_j - Density_i; - delta_p = Pressure_j - Pressure_i; + delta_p = Pressure_j - Pressure_i; - RoeKappaStaticEnthalpy = 0.5*(StaticEnthalpy_i*Kappa_i + StaticEnthalpy_j*Kappa_j); + RoeKappaStaticEnthalpy = 0.5 * ( StaticEnthalpy_i * Kappa_i + StaticEnthalpy_j * Kappa_j ); s = RoeChi + RoeKappaStaticEnthalpy; - D = s*s*delta_rho*delta_rho + delta_p*delta_p; - delta_rhoStaticEnergy = Density_j*StaticEnergy_j - Density_i*StaticEnergy_i; - err_P = delta_p - RoeChi*delta_rho - RoeKappa*delta_rhoStaticEnergy; - if (abs((D - delta_p*err_P)/Density_i)>1e-3 && abs(delta_rho/Density_i)>1e-3 && s/Density_i > 1e-3) { + D = s*s * delta_rho * delta_rho + delta_p * delta_p; - RoeKappa = (D*RoeKappa)/(D - delta_p*err_P); - RoeChi = (D*RoeChi+ s*s*delta_rho*err_P)/(D - delta_p*err_P); + delta_rhoStaticEnergy = Density_j * StaticEnergy_j - Density_i * StaticEnergy_i; - } + err_P = delta_p - RoeChi * delta_rho - RoeKappa * delta_rhoStaticEnergy; - RoeSoundSpeed2 = RoeChi + RoeKappa*(RoeEnthalpy-0.5*sq_velRoe); - RoeSoundSpeed = sqrt(fabs(RoeSoundSpeed2)); + if (abs((D - delta_p*err_P)/Density_i) > 1e-3 && abs(delta_rho/Density_i) > 1e-3 && s/Density_i > 1e-3) { + + RoeKappa = ( D * RoeKappa ) / ( D - delta_p * err_P ); + RoeChi = ( D * RoeChi+ s*s * delta_rho * err_P ) / ( D - delta_p * err_P ); + + } } #ifdef CHECK From aedcea1025b25308bfcf054812a76db67e1df66e Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 17 Feb 2016 13:45:01 -0800 Subject: [PATCH 211/269] small error correction and removal of print statements --- Common/src/interpolation_structure.cpp | 4 ++-- SU2_CFD/src/transfer_structure.cpp | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 7ac80704b0d..6b7537f783a 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -675,7 +675,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ if (target_geometry->node[Point_Target]->GetDomain()) { - Coord_i = target_geometry->vertex[markTarget][iVertex]->GetCoord(); + Coord_i = target_geometry->node[Point_Target]->GetCoord(); /*---Loop over the faces previously communicated/stored ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ @@ -726,7 +726,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ /*--- Find distance to the interpolated point ---*/ dist = 0.0; for (iDim=0; iDimvertex[markTarget][iVertex]->GetCoord(iDim); + Coord[iDim] = Coord_i[iDim]; for(iDonor=0; iDonor< nNodes; iDonor++){ Coord[iDim]-=myCoeff[iDonor]*X[iDim*nNodes+iDonor]; } diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index c9d196dcbaa..7013a5f5951 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -969,15 +969,11 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - cout << "Target Point " << Point_Target; - /*--- If this processor owns the node ---*/ if (target_geometry->node[Point_Target]->GetDomain()){ nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); - cout << " receives data from " << nDonorPoints << " donor points: " << endl; - /*--- As we will be adding data, we need to set the variable to 0 ---*/ for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; @@ -990,8 +986,6 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo /*--- We need to get the donor coefficient in a way like this: ---*/ donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); - cout << "Donor Point " << Donor_Global_Index << " has a coefficient of " << donorCoeff << endl; - /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); From bd9a590add869bf4b98f4a05ab41128e6fc54567 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 19 Feb 2016 00:19:23 -0800 Subject: [PATCH 212/269] fix for parallel interpolation --- Common/src/interpolation_structure.cpp | 23 +++++++++++++++++------ SU2_CFD/src/transfer_structure.cpp | 1 - 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 6b7537f783a..5309b02ff0d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -449,7 +449,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ unsigned int nFaces=1; //For 2D cases, we want to look at edges, not faces, as the 'interface' bool face_on_marker=true; - unsigned long nVertexDonor = 0; + unsigned long nVertexDonor = 0, nVertexTarget= 0; unsigned long Point_Target = 0; unsigned long iVertexDonor, iPointDonor = 0; @@ -493,6 +493,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ * -set the transfer coefficient values */ nVertexDonor = 0; + nVertexTarget = 0; markDonor = -1; markTarget = -1; @@ -519,11 +520,13 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ /*--- We have identified the identifier for the target marker ---*/ markTarget = iMarkerTarget; + nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); break; } else { /*--- If the tag hasn't matched any tag within the Flow markers ---*/ markTarget = -1; + nVertexTarget = 0; } } @@ -666,7 +669,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ #endif /*--- Loop over the vertices on the target Marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { + for (iVertex = 0; iVertexGetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ /*--- We have identified the identifier for the structural marker ---*/ markDonor = iMarkerDonor; /*--- Store the number of local points that belong to markDonor ---*/ + nVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); break; } else { /*--- If the tag hasn't matched any tag within the donor markers ---*/ markDonor = -1; + nVertexDonor = 0; } } @@ -1055,18 +1063,21 @@ void CMirror::Set_TransferCoeff(CConfig **config){ if (config[targetZone]->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ /*--- We have identified the identifier for the target marker ---*/ markTarget = iMarkerTarget; + /*--- Store the number of local points that belong to markDonor ---*/ + nVertexTarget = target_geometry->GetnVertex(iMarkerTarget); break; } else { /*--- If the tag hasn't matched any tag within the Flow markers ---*/ markTarget = -1; + nVertexTarget = 0; } } /*-- Collect the number of donor nodes: re-use 'Face' containers --*/ nLocalFace_Donor=0; nLocalFaceNodes_Donor=0; - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + for (jVertex = 0; jVertexvertex[markDonor][jVertex]->GetNode(); // Local index of jVertex if (donor_geometry->node[Point_Donor]->GetDomain()) { @@ -1130,7 +1141,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ nLocalFace_Donor=0; nLocalFaceNodes_Donor=0; - for (jVertex = 0; jVertexGetnVertex(markDonor); jVertex++) { + for (jVertex = 0; jVertexvertex[markDonor][jVertex]->GetNode(); // Local index of jVertex if (donor_geometry->node[Point_Donor]->GetDomain()) { @@ -1164,7 +1175,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ } #endif /*--- Loop over the vertices on the target Marker ---*/ - for (iVertex = 0; iVertexGetnVertex(markTarget); iVertex++) { + for (iVertex = 0; iVertexvertex[markTarget][iVertex]->GetNode(); if (target_geometry->node[iPoint]->GetDomain()) { diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 7013a5f5951..25710a5bc56 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -770,7 +770,6 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ - cout << " ------------------------------ BOUNDARY " << iMarkerInt << " ------------------------------ " << endl; Marker_Donor = -1; Marker_Target = -1; From e5bd8f0637b42cf7198ef7efdb19f59866089a59 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 22 Feb 2016 19:05:52 -0800 Subject: [PATCH 213/269] Updated year to 2016. --- Common/doc/docmain.hpp | 2 +- Common/include/config_structure.hpp | 2 +- Common/include/config_structure.inl | 2 +- Common/include/datatype_structure.hpp | 2 +- Common/include/datatype_structure.inl | 2 +- .../datatypes/codi_forward_structure.hpp | 2 +- .../datatypes/codi_forward_structure.inl | 2 +- .../datatypes/codi_reverse_structure.hpp | 2 +- .../datatypes/codi_reverse_structure.inl | 2 +- .../include/datatypes/complex_structure.hpp | 2 +- .../include/datatypes/complex_structure.inl | 2 +- .../include/datatypes/primitive_structure.hpp | 2 +- .../include/datatypes/primitive_structure.inl | 2 +- Common/include/dual_grid_structure.hpp | 216 +-- Common/include/dual_grid_structure.inl | 80 +- Common/include/element_structure.hpp | 2 +- Common/include/element_structure.inl | 2 +- Common/include/gauss_structure.hpp | 2 +- Common/include/gauss_structure.inl | 2 +- Common/include/geometry_structure.hpp | 2 +- Common/include/geometry_structure.inl | 2 +- Common/include/grid_adaptation_structure.hpp | 2 +- Common/include/grid_adaptation_structure.inl | 2 +- Common/include/grid_movement_structure.hpp | 2 +- Common/include/grid_movement_structure.inl | 2 +- Common/include/interpolation_structure.hpp | 2 +- Common/include/linear_solvers_structure.hpp | 2 +- Common/include/linear_solvers_structure.inl | 2 +- Common/include/linear_solvers_structure_b.hpp | 2 +- Common/include/matrix_structure.hpp | 2 +- Common/include/matrix_structure.inl | 2 +- Common/include/mpi_structure.hpp | 2 +- Common/include/mpi_structure.inl | 2 +- Common/include/option_structure.hpp | 182 +-- Common/include/primal_grid_structure.hpp | 2 +- Common/include/primal_grid_structure.inl | 2 +- Common/include/vector_structure.hpp | 2 +- Common/include/vector_structure.inl | 2 +- Common/lib/Makefile.am | 2 +- Common/lib/Makefile.in | 2 +- Common/src/ad_structure.cpp | 2 +- Common/src/config_structure.cpp | 4 +- Common/src/dual_grid_structure.cpp | 50 +- Common/src/element_linear.cpp | 2 +- Common/src/element_structure.cpp | 2 +- Common/src/gauss_structure.cpp | 2 +- Common/src/geometry_structure.cpp | 2 +- Common/src/grid_adaptation_structure.cpp | 2 +- Common/src/grid_movement_structure.cpp | 2 +- Common/src/interpolation_structure.cpp | 2 +- Common/src/linear_solvers_structure.cpp | 2 +- Common/src/linear_solvers_structure_b.cpp | 2 +- Common/src/matrix_structure.cpp | 2 +- Common/src/mpi_structure.cpp | 2 +- Common/src/primal_grid_structure.cpp | 2 +- Common/src/vector_structure.cpp | 2 +- Makefile.am | 2 +- Makefile.in | 2 +- SU2_CFD/include/SU2_CFD.hpp | 2 +- SU2_CFD/include/definition_structure.hpp | 2 +- SU2_CFD/include/driver_structure.hpp | 356 ++--- SU2_CFD/include/fluid_model.hpp | 2 +- SU2_CFD/include/fluid_model.inl | 2 +- SU2_CFD/include/integration_structure.hpp | 138 +- SU2_CFD/include/integration_structure.inl | 10 +- SU2_CFD/include/iteration_structure.hpp | 2 +- SU2_CFD/include/numerics_structure.hpp | 2 +- SU2_CFD/include/numerics_structure.inl | 74 +- SU2_CFD/include/output_structure.hpp | 2 +- SU2_CFD/include/solver_structure.hpp | 2 +- SU2_CFD/include/solver_structure.inl | 2 +- SU2_CFD/include/transfer_structure.hpp | 2 +- SU2_CFD/include/transport_model.hpp | 2 +- SU2_CFD/include/transport_model.inl | 2 +- SU2_CFD/include/variable_structure.hpp | 910 ++++++------- SU2_CFD/include/variable_structure.inl | 348 ++--- SU2_CFD/obj/Makefile.am | 2 +- SU2_CFD/obj/Makefile.in | 2 +- SU2_CFD/src/SU2_CFD.cpp | 2 +- SU2_CFD/src/definition_structure.cpp | 44 +- SU2_CFD/src/driver_structure.cpp | 2 +- SU2_CFD/src/fluid_model.cpp | 2 +- SU2_CFD/src/fluid_model_pig.cpp | 2 +- SU2_CFD/src/fluid_model_ppr.cpp | 2 +- SU2_CFD/src/fluid_model_pvdw.cpp | 2 +- SU2_CFD/src/integration_structure.cpp | 2 +- SU2_CFD/src/integration_time.cpp | 72 +- SU2_CFD/src/iteration_structure.cpp | 1168 ++++++++--------- SU2_CFD/src/numerics_adjoint_levelset.cpp | 2 +- SU2_CFD/src/numerics_adjoint_mean.cpp | 2 +- SU2_CFD/src/numerics_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 2 +- SU2_CFD/src/numerics_direct_heat.cpp | 2 +- SU2_CFD/src/numerics_direct_mean.cpp | 2 +- SU2_CFD/src/numerics_direct_poisson.cpp | 2 +- SU2_CFD/src/numerics_direct_transition.cpp | 2 +- SU2_CFD/src/numerics_direct_turbulent.cpp | 2 +- SU2_CFD/src/numerics_direct_wave.cpp | 2 +- SU2_CFD/src/numerics_structure.cpp | 2 +- SU2_CFD/src/numerics_template.cpp | 2 +- SU2_CFD/src/output_cgns.cpp | 2 +- SU2_CFD/src/output_fieldview.cpp | 2 +- SU2_CFD/src/output_paraview.cpp | 2 +- SU2_CFD/src/output_structure.cpp | 630 ++++----- SU2_CFD/src/output_su2.cpp | 2 +- SU2_CFD/src/output_tecplot.cpp | 2 +- SU2_CFD/src/solver_adjoint_discrete.cpp | 2 +- SU2_CFD/src/solver_adjoint_levelset.cpp | 2 +- SU2_CFD/src/solver_adjoint_mean.cpp | 2 +- SU2_CFD/src/solver_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/solver_direct_elasticity.cpp | 2 +- SU2_CFD/src/solver_direct_heat.cpp | 2 +- SU2_CFD/src/solver_direct_mean.cpp | 838 ++++++------ SU2_CFD/src/solver_direct_poisson.cpp | 2 +- SU2_CFD/src/solver_direct_transition.cpp | 2 +- SU2_CFD/src/solver_direct_turbulent.cpp | 2 +- SU2_CFD/src/solver_direct_wave.cpp | 2 +- SU2_CFD/src/solver_structure.cpp | 234 ++-- SU2_CFD/src/solver_template.cpp | 2 +- SU2_CFD/src/transfer_physics.cpp | 2 +- SU2_CFD/src/transfer_structure.cpp | 2 +- SU2_CFD/src/transport_model.cpp | 2 +- SU2_CFD/src/variable_adjoint_discrete.cpp | 2 +- SU2_CFD/src/variable_adjoint_levelset.cpp | 2 +- SU2_CFD/src/variable_adjoint_mean.cpp | 2 +- SU2_CFD/src/variable_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/variable_direct_elasticity.cpp | 2 +- SU2_CFD/src/variable_direct_heat.cpp | 2 +- SU2_CFD/src/variable_direct_mean.cpp | 2 +- SU2_CFD/src/variable_direct_poisson.cpp | 2 +- SU2_CFD/src/variable_direct_transition.cpp | 2 +- SU2_CFD/src/variable_direct_turbulent.cpp | 2 +- SU2_CFD/src/variable_direct_wave.cpp | 2 +- SU2_CFD/src/variable_fem_elasticity.cpp | 2 +- SU2_CFD/src/variable_structure.cpp | 2 +- SU2_CFD/src/variable_template.cpp | 2 +- SU2_DEF/include/SU2_DEF.hpp | 2 +- SU2_DEF/obj/Makefile.am | 2 +- SU2_DEF/obj/Makefile.in | 2 +- SU2_DEF/src/SU2_DEF.cpp | 2 +- SU2_DOT/include/SU2_DOT.hpp | 2 +- SU2_DOT/obj/Makefile.am | 2 +- SU2_DOT/obj/Makefile.in | 2 +- SU2_GEO/include/SU2_GEO.hpp | 2 +- SU2_GEO/obj/Makefile.am | 2 +- SU2_GEO/obj/Makefile.in | 2 +- SU2_GEO/src/SU2_GEO.cpp | 2 +- .../Xcode/SU2_GEO.xcodeproj/project.pbxproj | 12 +- SU2_MSH/include/SU2_MSH.hpp | 2 +- SU2_MSH/obj/Makefile.am | 2 +- SU2_MSH/obj/Makefile.in | 2 +- SU2_MSH/src/SU2_MSH.cpp | 2 +- SU2_PY/Makefile.am | 2 +- SU2_PY/Makefile.in | 2 +- SU2_PY/SU2/eval/design.py | 2 +- SU2_PY/SU2/eval/functions.py | 2 +- SU2_PY/SU2/eval/gradients.py | 2 +- SU2_PY/SU2/io/config.py | 2 +- SU2_PY/SU2/io/config_options.py | 2 +- SU2_PY/SU2/io/data.py | 2 +- SU2_PY/SU2/io/filelock.py | 2 +- SU2_PY/SU2/io/redirect.py | 2 +- SU2_PY/SU2/io/state.py | 2 +- SU2_PY/SU2/io/tools.py | 2 +- SU2_PY/SU2/mesh/adapt.py | 2 +- SU2_PY/SU2/mesh/tools.py | 2 +- SU2_PY/SU2/opt/project.py | 2 +- SU2_PY/SU2/opt/scipy_tools.py | 2 +- SU2_PY/SU2/opt/server.py | 2 +- SU2_PY/SU2/run/adaptation.py | 2 +- SU2_PY/SU2/run/adjoint.py | 2 +- SU2_PY/SU2/run/deform.py | 2 +- SU2_PY/SU2/run/direct.py | 2 +- SU2_PY/SU2/run/geometry.py | 2 +- SU2_PY/SU2/run/interface.py | 2 +- SU2_PY/SU2/run/merge.py | 2 +- SU2_PY/SU2/run/projection.py | 2 +- SU2_PY/SU2/util/filter_adjoint.py | 2 +- SU2_PY/SU2/util/plot.py | 2 +- SU2_PY/SU2/util/which.py | 2 +- SU2_PY/change_version_number.py | 2 +- SU2_PY/compute_polar.py | 2 +- SU2_PY/compute_stability.py | 2 +- SU2_PY/config_gui.py | 2 +- SU2_PY/continuous_adjoint.py | 2 +- SU2_PY/direct_differentiation.py | 2 +- SU2_PY/discrete_adjoint.py | 2 +- SU2_PY/finite_differences.py | 2 +- SU2_PY/merge_solution.py | 2 +- SU2_PY/mesh_adaptation.py | 2 +- SU2_PY/mesh_deformation.py | 2 +- SU2_PY/package_tests.py | 2 +- SU2_PY/parallel_computation.py | 2 +- SU2_PY/parallel_computation_fsi.py | 2 +- SU2_PY/parse_config.py | 2 +- SU2_PY/patient_designspace.py | 2 +- SU2_PY/set_ffd_design_var.py | 2 +- SU2_PY/shape_optimization.py | 4 +- SU2_SOL/include/SU2_SOL.hpp | 2 +- SU2_SOL/obj/Makefile.am | 2 +- SU2_SOL/obj/Makefile.in | 4 +- SU2_SOL/src/SU2_SOL.cpp | 2 +- TestCases/TestCase.py | 2 +- TestCases/parallel_regression.py | 2 +- TestCases/parallel_regression_AD.py | 2 +- TestCases/serial_regression.py | 2 +- TestCases/serial_regression_AD.py | 2 +- configure | 4 +- configure.ac | 4 +- externals/Makefile.am | 2 +- externals/Makefile.in | 2 +- preconfigure.py | 4 +- 212 files changed, 2883 insertions(+), 2881 deletions(-) diff --git a/Common/doc/docmain.hpp b/Common/doc/docmain.hpp index 21c683b2a11..16b4fbe50e6 100644 --- a/Common/doc/docmain.hpp +++ b/Common/doc/docmain.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 57934fdbf63..534e1f4f0b1 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 21dd731e4ee..bb273f21663 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatype_structure.hpp b/Common/include/datatype_structure.hpp index e1ab94975db..824bb777a80 100644 --- a/Common/include/datatype_structure.hpp +++ b/Common/include/datatype_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatype_structure.inl b/Common/include/datatype_structure.inl index 699a9220bb6..a3732a3f198 100644 --- a/Common/include/datatype_structure.inl +++ b/Common/include/datatype_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/codi_forward_structure.hpp b/Common/include/datatypes/codi_forward_structure.hpp index 874f2fa0ff8..c1feb5f400f 100644 --- a/Common/include/datatypes/codi_forward_structure.hpp +++ b/Common/include/datatypes/codi_forward_structure.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/codi_forward_structure.inl b/Common/include/datatypes/codi_forward_structure.inl index 1eeed0ffa79..c0bc0e53fec 100644 --- a/Common/include/datatypes/codi_forward_structure.inl +++ b/Common/include/datatypes/codi_forward_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/codi_reverse_structure.hpp b/Common/include/datatypes/codi_reverse_structure.hpp index 1e2ed7b49ce..f3ad3613987 100644 --- a/Common/include/datatypes/codi_reverse_structure.hpp +++ b/Common/include/datatypes/codi_reverse_structure.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/codi_reverse_structure.inl b/Common/include/datatypes/codi_reverse_structure.inl index 81b6453342e..447ab00fbf4 100644 --- a/Common/include/datatypes/codi_reverse_structure.inl +++ b/Common/include/datatypes/codi_reverse_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/complex_structure.hpp b/Common/include/datatypes/complex_structure.hpp index 9919f7cffdd..8efaa7b2233 100644 --- a/Common/include/datatypes/complex_structure.hpp +++ b/Common/include/datatypes/complex_structure.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/complex_structure.inl b/Common/include/datatypes/complex_structure.inl index 2a4bd484cad..f74572d7400 100644 --- a/Common/include/datatypes/complex_structure.inl +++ b/Common/include/datatypes/complex_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/primitive_structure.hpp b/Common/include/datatypes/primitive_structure.hpp index 9d096c811d5..2daf9df3721 100644 --- a/Common/include/datatypes/primitive_structure.hpp +++ b/Common/include/datatypes/primitive_structure.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/datatypes/primitive_structure.inl b/Common/include/datatypes/primitive_structure.inl index 58230d71fc5..aef27934a9d 100644 --- a/Common/include/datatypes/primitive_structure.inl +++ b/Common/include/datatypes/primitive_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index 9b0a9669920..f72bb5f7ce4 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -886,17 +886,17 @@ class CVertex : public CDualGrid { su2double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */ su2double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */ su2double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */ - su2double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */ - long PeriodicPoint[3]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ + su2double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */ + long PeriodicPoint[3]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */ short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */ unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */ - unsigned long *Donor_Points; /*!< \brief indices of donor points for interpolation across zones */ - unsigned long *Donor_Proc; /*!< \brief indices of donor processor for interpolation across zones in parallel */ + unsigned long *Donor_Points; /*!< \brief indices of donor points for interpolation across zones */ + unsigned long *Donor_Proc; /*!< \brief indices of donor processor for interpolation across zones in parallel */ unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */ - unsigned short Donor_Face; /*!<\brief Store the donor face (w/in donor element) for interpolation across zones */ + unsigned short Donor_Face; /*!<\brief Store the donor face (w/in donor element) for interpolation across zones */ su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */ - su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ - unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points; at least there will be one donor point (if the mesh is matching)*/ + su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */ + unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points; at least there will be one donor point (if the mesh is matching)*/ public: @@ -1046,14 +1046,14 @@ class CVertex : public CDualGrid { void SetDonorPoint(long val_periodicpoint, long val_processor); /*! - * \overload - * \param[in] val_periodicpoint - Value of periodic point of the vertex. - * \param[in] val_processor - Processor where the point belong. - * \param[in] val_globalindex - Global index of the donor point. - */ - void SetDonorPoint(long val_periodicpoint, long val_processor, long val_globalindex); - - /*! + * \overload + * \param[in] val_periodicpoint - Value of periodic point of the vertex. + * \param[in] val_processor - Processor where the point belong. + * \param[in] val_globalindex - Global index of the donor point. + */ + void SetDonorPoint(long val_periodicpoint, long val_processor, long val_globalindex); + + /*! * \brief Get the value of the periodic point of a vertex. * \return Value of the periodic point of a vertex. */ @@ -1064,12 +1064,12 @@ class CVertex : public CDualGrid { * \return Value of the periodic point of a vertex. */ long GetDonorProcessor(void); - - /*! - * \brief Get the value of the global index for the donor point of a vertex. - * \return Value of the global index for the donor point of a vertex. - */ - long GetGlobalDonorPoint(void); + + /*! + * \brief Get the value of the global index for the donor point of a vertex. + * \return Value of the global index for the donor point of a vertex. + */ + long GetGlobalDonorPoint(void); /*! * \brief Get the value of the periodic point of a vertex, and its somain @@ -1088,18 +1088,18 @@ class CVertex : public CDualGrid { * \return Value of the donor element of a vertex. */ long GetDonorElem(void); - - /*! - * \brief Set the donor face of a vertex for interpolation across zones. - * \param[in] val_donorface- donor face index (w/in donor elem). - */ - void SetDonorFace(unsigned short val_donorface); - - /*! - * \brief Get the donor face of a vertex for interpolation across zones. - * \return Value of the donor face index (w/in donor elem). - */ - unsigned short GetDonorFace(void); + + /*! + * \brief Set the donor face of a vertex for interpolation across zones. + * \param[in] val_donorface- donor face index (w/in donor elem). + */ + void SetDonorFace(unsigned short val_donorface); + + /*! + * \brief Get the donor face of a vertex for interpolation across zones. + * \return Value of the donor face index (w/in donor elem). + */ + unsigned short GetDonorFace(void); /*! * \brief Set the finite element basis functions needed for interpolation. @@ -1127,80 +1127,80 @@ class CVertex : public CDualGrid { */ unsigned long GetNormal_Neighbor(void); - /*! - * \brief Increment the number of donor points by 1. - */ - void IncrementnDonor(void); - - /*! - * \brief Set the value of nDonor_Points - * \param[in] nDonor - the number of donor points - */ - void SetnDonorPoints(unsigned short nDonor); - - /*! - * \brief Return the value of nDonor_Points - * \return nDonor - the number of donor points - */ - unsigned short GetnDonorPoints(void); - - /*! - * \brief Set the coefficient value of a donor point. - * \param[in] iDonor - Index of the donor point. - * \param[in] val - Value of the coefficent for point iDonor. - */ - void SetDonorCoeff(unsigned short iDonor, su2double val); - - /*! - * \brief Get the coefficient value of a donor point. - * \param[in] iDonor - Index of the donor point. - * \return - Value of the coefficent for point iDonor. - */ - su2double GetDonorCoeff(unsigned short iDonor); - - /*! - * \brief Set the donor point of a vertex for interpolation across zones. - * \param[in] val_donorpoint- donor face index (w/in donor elem). - */ - void SetInterpDonorPoint(unsigned short val_donorindex, long val_donorpoint); - - /*! - * \brief Get the value of the donor point of a vertex (for interpolation). - * \return Value of the donor point of a vertex. - */ - long GetInterpDonorPoint(unsigned short val_donorpoint); - - - /*! - * \brief Set the donor point of a vertex for interpolation across zones. - * \param[in] val_donorpoint- donor face index (w/in donor elem). - */ - void SetInterpDonorProcessor(unsigned short val_donorindex, long val_rank); - - /*! - * \brief Get the value of the donor point of a vertex (for interpolation). - * \return Value of the donor point of a vertex. - */ - long GetInterpDonorProcessor(unsigned short val_donorindex); - - - /*! - * \brief Allocate memory based on how many donor points need to be stored. - * Uses nDonor_Points - */ - void Allocate_DonorInfo(void); - - /*! - * \brief Get the rotation variation - * \return - pointer to the vector defining the rotation - */ - su2double *GetVarRot(void); - - /*! - * \brief Set the rotation variation - * \return - pointer to the vector defining the rotation - */ - void SetVarRot(su2double* val); + /*! + * \brief Increment the number of donor points by 1. + */ + void IncrementnDonor(void); + + /*! + * \brief Set the value of nDonor_Points + * \param[in] nDonor - the number of donor points + */ + void SetnDonorPoints(unsigned short nDonor); + + /*! + * \brief Return the value of nDonor_Points + * \return nDonor - the number of donor points + */ + unsigned short GetnDonorPoints(void); + + /*! + * \brief Set the coefficient value of a donor point. + * \param[in] iDonor - Index of the donor point. + * \param[in] val - Value of the coefficent for point iDonor. + */ + void SetDonorCoeff(unsigned short iDonor, su2double val); + + /*! + * \brief Get the coefficient value of a donor point. + * \param[in] iDonor - Index of the donor point. + * \return - Value of the coefficent for point iDonor. + */ + su2double GetDonorCoeff(unsigned short iDonor); + + /*! + * \brief Set the donor point of a vertex for interpolation across zones. + * \param[in] val_donorpoint- donor face index (w/in donor elem). + */ + void SetInterpDonorPoint(unsigned short val_donorindex, long val_donorpoint); + + /*! + * \brief Get the value of the donor point of a vertex (for interpolation). + * \return Value of the donor point of a vertex. + */ + long GetInterpDonorPoint(unsigned short val_donorpoint); + + + /*! + * \brief Set the donor point of a vertex for interpolation across zones. + * \param[in] val_donorpoint- donor face index (w/in donor elem). + */ + void SetInterpDonorProcessor(unsigned short val_donorindex, long val_rank); + + /*! + * \brief Get the value of the donor point of a vertex (for interpolation). + * \return Value of the donor point of a vertex. + */ + long GetInterpDonorProcessor(unsigned short val_donorindex); + + + /*! + * \brief Allocate memory based on how many donor points need to be stored. + * Uses nDonor_Points + */ + void Allocate_DonorInfo(void); + + /*! + * \brief Get the rotation variation + * \return - pointer to the vector defining the rotation + */ + su2double *GetVarRot(void); + + /*! + * \brief Set the rotation variation + * \return - pointer to the vector defining the rotation + */ + void SetVarRot(su2double* val); }; diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index d5ea5609d09..3a0f456e3d1 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -321,30 +321,30 @@ inline short CVertex::GetRotation_Type(void) { return Rotation_Type; } inline void CVertex::SetDonorPoint(long val_periodicpoint, long val_processor) { PeriodicPoint[0] = val_periodicpoint; PeriodicPoint[1] = val_processor; - PeriodicPoint[2] = 0; + PeriodicPoint[2] = 0; } -inline void CVertex::SetDonorPoint(long val_periodicpoint, long val_processor, long val_globalindex) { - PeriodicPoint[0] = val_periodicpoint; - PeriodicPoint[1] = val_processor; - PeriodicPoint[2] = val_globalindex; -} - - +inline void CVertex::SetDonorPoint(long val_periodicpoint, long val_processor, long val_globalindex) { + PeriodicPoint[0] = val_periodicpoint; + PeriodicPoint[1] = val_processor; + PeriodicPoint[2] = val_globalindex; +} + + inline void CVertex::SetDonorElem(long val_donorelem) { Donor_Elem = val_donorelem; } inline long CVertex::GetDonorElem(void) { return Donor_Elem; } -inline void CVertex::SetDonorFace(unsigned short val_donorface) { Donor_Face = val_donorface; } - -inline unsigned short CVertex::GetDonorFace(void) { return Donor_Face; } - +inline void CVertex::SetDonorFace(unsigned short val_donorface) { Donor_Face = val_donorface; } + +inline unsigned short CVertex::GetDonorFace(void) { return Donor_Face; } + inline long CVertex::GetDonorPoint(void) { return PeriodicPoint[0]; } inline long CVertex::GetDonorProcessor(void) { return PeriodicPoint[1]; } -inline long CVertex::GetGlobalDonorPoint(void) { return PeriodicPoint[2]; } - +inline long CVertex::GetGlobalDonorPoint(void) { return PeriodicPoint[2]; } + inline void CVertex::SetBasisFunction(unsigned short val_node, su2double val_basis) { Basis_Function[val_node] = val_basis; } inline su2double CVertex::GetBasisFunction(unsigned short val_node) { return Basis_Function[val_node]; } @@ -359,28 +359,28 @@ inline void CVertex::SetZeroValues(void) { inline unsigned long CVertex::GetNormal_Neighbor(void) { return Normal_Neighbor; } inline void CVertex::SetNormal_Neighbor(unsigned long val_Normal_Neighbor) { Normal_Neighbor = val_Normal_Neighbor; } - -inline void CVertex::IncrementnDonor(void){nDonor_Points++;} - -inline void CVertex::SetInterpDonorPoint(unsigned short val_donorindex, long val_donorpoint) { Donor_Points[val_donorindex] = val_donorpoint; } - -inline long CVertex::GetInterpDonorPoint(unsigned short val_donorindex) { return Donor_Points[val_donorindex]; } - -inline void CVertex::SetInterpDonorProcessor(unsigned short val_donorindex, long val_donorpoint) { Donor_Proc[val_donorindex] = val_donorpoint; } - -inline long CVertex::GetInterpDonorProcessor(unsigned short val_donorindex) { return Donor_Proc[val_donorindex]; } - -inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } - -inline su2double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} - -inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} - -inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} - -inline su2double *CVertex::GetVarRot(void) {return VarRot;} - -inline void CVertex::SetVarRot(su2double* val) { - for (unsigned short iDim = 0; iDim < nDim; iDim++) - VarRot[iDim] = val[iDim]; -} + +inline void CVertex::IncrementnDonor(void){nDonor_Points++;} + +inline void CVertex::SetInterpDonorPoint(unsigned short val_donorindex, long val_donorpoint) { Donor_Points[val_donorindex] = val_donorpoint; } + +inline long CVertex::GetInterpDonorPoint(unsigned short val_donorindex) { return Donor_Points[val_donorindex]; } + +inline void CVertex::SetInterpDonorProcessor(unsigned short val_donorindex, long val_donorpoint) { Donor_Proc[val_donorindex] = val_donorpoint; } + +inline long CVertex::GetInterpDonorProcessor(unsigned short val_donorindex) { return Donor_Proc[val_donorindex]; } + +inline void CVertex::SetDonorCoeff(unsigned short iDonor, su2double val){ Donor_Coeff[iDonor] = val; } + +inline su2double CVertex::GetDonorCoeff(unsigned short iDonor){ return Donor_Coeff[iDonor];} + +inline unsigned short CVertex::GetnDonorPoints(void){ return nDonor_Points;} + +inline void CVertex::SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;} + +inline su2double *CVertex::GetVarRot(void) {return VarRot;} + +inline void CVertex::SetVarRot(su2double* val) { + for (unsigned short iDim = 0; iDim < nDim; iDim++) + VarRot[iDim] = val[iDim]; +} diff --git a/Common/include/element_structure.hpp b/Common/include/element_structure.hpp index 41f7591bf35..d68d515c901 100644 --- a/Common/include/element_structure.hpp +++ b/Common/include/element_structure.hpp @@ -15,7 +15,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/element_structure.inl b/Common/include/element_structure.inl index 9e2561ddea6..fa37bf31cf2 100644 --- a/Common/include/element_structure.inl +++ b/Common/include/element_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/gauss_structure.hpp b/Common/include/gauss_structure.hpp index b20bfda0731..5a40fcd9d54 100644 --- a/Common/include/gauss_structure.hpp +++ b/Common/include/gauss_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/gauss_structure.inl b/Common/include/gauss_structure.inl index 290bb06542c..1be9b5f9f4a 100644 --- a/Common/include/gauss_structure.inl +++ b/Common/include/gauss_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry_structure.hpp b/Common/include/geometry_structure.hpp index 1c964a97382..7ab8d2a9092 100644 --- a/Common/include/geometry_structure.hpp +++ b/Common/include/geometry_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry_structure.inl b/Common/include/geometry_structure.inl index 36ebb80cda1..e61458919c6 100644 --- a/Common/include/geometry_structure.inl +++ b/Common/include/geometry_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_adaptation_structure.hpp b/Common/include/grid_adaptation_structure.hpp index 22d2f30aef4..3a01d47b825 100644 --- a/Common/include/grid_adaptation_structure.hpp +++ b/Common/include/grid_adaptation_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_adaptation_structure.inl b/Common/include/grid_adaptation_structure.inl index 40e5c5ef5d4..4c2ab24255b 100644 --- a/Common/include/grid_adaptation_structure.inl +++ b/Common/include/grid_adaptation_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement_structure.hpp b/Common/include/grid_movement_structure.hpp index 6495f6f24f6..0d4ded5faff 100644 --- a/Common/include/grid_movement_structure.hpp +++ b/Common/include/grid_movement_structure.hpp @@ -16,7 +16,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement_structure.inl b/Common/include/grid_movement_structure.inl index 972f6d96494..242d3345f85 100644 --- a/Common/include/grid_movement_structure.inl +++ b/Common/include/grid_movement_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interpolation_structure.hpp b/Common/include/interpolation_structure.hpp index c832bc973ed..3fc176e19ae 100644 --- a/Common/include/interpolation_structure.hpp +++ b/Common/include/interpolation_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_solvers_structure.hpp b/Common/include/linear_solvers_structure.hpp index d0ac61f523c..24b8f4dc981 100644 --- a/Common/include/linear_solvers_structure.hpp +++ b/Common/include/linear_solvers_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_solvers_structure.inl b/Common/include/linear_solvers_structure.inl index d51d8132865..e756c5f9c1f 100644 --- a/Common/include/linear_solvers_structure.inl +++ b/Common/include/linear_solvers_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_solvers_structure_b.hpp b/Common/include/linear_solvers_structure_b.hpp index 99ceadf9130..0b0ea1d72a4 100644 --- a/Common/include/linear_solvers_structure_b.hpp +++ b/Common/include/linear_solvers_structure_b.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 47a545589f2..1323b5fd757 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/matrix_structure.inl b/Common/include/matrix_structure.inl index 05ae3612a8b..8e504516be7 100644 --- a/Common/include/matrix_structure.inl +++ b/Common/include/matrix_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/mpi_structure.hpp b/Common/include/mpi_structure.hpp index fd2a14693b0..c819f3e1e95 100644 --- a/Common/include/mpi_structure.hpp +++ b/Common/include/mpi_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/mpi_structure.inl b/Common/include/mpi_structure.inl index be5e4951b43..1f66bb04dbf 100644 --- a/Common/include/mpi_structure.inl +++ b/Common/include/mpi_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 23e8dc3be08..5b409c52299 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -17,7 +17,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -183,7 +183,7 @@ enum ENUM_SOLVER { HEAT_EQUATION = 29, /*!< \brief Definition of the heat solver. */ LINEAR_ELASTICITY = 11, /*!< \brief Definition of the FEA solver. */ FLUID_STRUCTURE_INTERACTION = 12, /*!< \brief Definition of a FSI solver. */ - FEM_ELASTICITY = 13, /*!< \brief Definition of a FEM solver. */ + FEM_ELASTICITY = 13, /*!< \brief Definition of a FEM solver. */ ADJ_EULER = 18, /*!< \brief Definition of the continuous adjoint Euler's solver. */ ADJ_NAVIER_STOKES = 19, /*!< \brief Definition of the continuous adjoint Navier-Stokes' solver. */ ADJ_RANS = 20, /*!< \brief Definition of the continuous adjoint Reynolds-averaged Navier-Stokes' (RANS) solver. */ @@ -240,58 +240,58 @@ enum ENUM_FSI_STRUC_PROBLEM { static const map FSI_Struc_Solver_Map = CCreateMap ("NONE", NO_SOLVER_SFSI) ("LINEAR_ELASTICITY", LINEAR_ELASTICITY_SFSI) -("FEM_ELASTICITY", FEM_ELASTICITY_SFSI); - -/*! - * \brief Material geometric conditions - */ -enum ENUM_STRUCT_SOLVER { - SMALL_DEFORMATIONS = 0, /*!< \brief Definition of linear elastic material. */ - LARGE_DEFORMATIONS = 1, /*!< \brief Definition of Neo-Hookean material. */ -}; -static const map Struct_Map = CCreateMap -("SMALL_DEFORMATIONS", SMALL_DEFORMATIONS) -("LARGE_DEFORMATIONS", LARGE_DEFORMATIONS); - - -/*! - * \brief Material model - */ -enum ENUM_MATERIAL_MODEL { - LINEAR_ELASTIC = 0, /*!< \brief Definition of linear elastic material. */ - NEO_HOOKEAN = 1, /*!< \brief Definition of Neo-Hookean material. */ -}; -static const map Material_Map = CCreateMap -("LINEAR_ELASTIC", LINEAR_ELASTIC) -("NEO_HOOKEAN", NEO_HOOKEAN); - -/*! - * \brief Material compressibility - */ -enum ENUM_MAT_COMPRESS { - COMPRESSIBLE_MAT = 0, /*!< \brief Definition of compressible material. */ - INCOMPRESSIBLE_MAT = 1, /*!< \brief Definition of incompressible material. */ -}; -static const map MatComp_Map = CCreateMap -("COMPRESSIBLE", COMPRESSIBLE_MAT) -("INCOMPRESSIBLE", INCOMPRESSIBLE_MAT); - - - -/*! - * \brief types of interpolators - */ -enum ENUM_INTERPOLATOR { - NEAREST_NEIGHBOR = 0, /*!< \brief Nearest Neigbhor interpolation */ +("FEM_ELASTICITY", FEM_ELASTICITY_SFSI); + +/*! + * \brief Material geometric conditions + */ +enum ENUM_STRUCT_SOLVER { + SMALL_DEFORMATIONS = 0, /*!< \brief Definition of linear elastic material. */ + LARGE_DEFORMATIONS = 1, /*!< \brief Definition of Neo-Hookean material. */ +}; +static const map Struct_Map = CCreateMap +("SMALL_DEFORMATIONS", SMALL_DEFORMATIONS) +("LARGE_DEFORMATIONS", LARGE_DEFORMATIONS); + + +/*! + * \brief Material model + */ +enum ENUM_MATERIAL_MODEL { + LINEAR_ELASTIC = 0, /*!< \brief Definition of linear elastic material. */ + NEO_HOOKEAN = 1, /*!< \brief Definition of Neo-Hookean material. */ +}; +static const map Material_Map = CCreateMap +("LINEAR_ELASTIC", LINEAR_ELASTIC) +("NEO_HOOKEAN", NEO_HOOKEAN); + +/*! + * \brief Material compressibility + */ +enum ENUM_MAT_COMPRESS { + COMPRESSIBLE_MAT = 0, /*!< \brief Definition of compressible material. */ + INCOMPRESSIBLE_MAT = 1, /*!< \brief Definition of incompressible material. */ +}; +static const map MatComp_Map = CCreateMap +("COMPRESSIBLE", COMPRESSIBLE_MAT) +("INCOMPRESSIBLE", INCOMPRESSIBLE_MAT); + + + +/*! + * \brief types of interpolators + */ +enum ENUM_INTERPOLATOR { + NEAREST_NEIGHBOR = 0, /*!< \brief Nearest Neigbhor interpolation */ ISOPARAMETRIC = 1, /*!< \brief Isoparametric interpolation */ - CONSISTCONSERVE = 2,/*!< \brief Consistent & Conservative interpolation (S.A. Brown 1997). Utilizes Isoparametric interpolation. */ -}; - -static const map Interpolator_Map = CCreateMap -("NEAREST_NEIGHBOR", NEAREST_NEIGHBOR) + CONSISTCONSERVE = 2,/*!< \brief Consistent & Conservative interpolation (S.A. Brown 1997). Utilizes Isoparametric interpolation. */ +}; + +static const map Interpolator_Map = CCreateMap +("NEAREST_NEIGHBOR", NEAREST_NEIGHBOR) ("ISOPARAMETRIC", ISOPARAMETRIC) -("CONSISTCONSERVE", CONSISTCONSERVE); - +("CONSISTCONSERVE", CONSISTCONSERVE); + /*! * \brief different regime modes @@ -371,17 +371,17 @@ const int CONV_BOUND_TERM = 4; /*!< \brief Position of the convective boun const int VISC_BOUND_TERM = 5; /*!< \brief Position of the viscous boundary terms in the numerics container array. */ /*! - * \brief types of finite elements (in 2D or 3D) - */ - -const int EL_TRIA = 0; /*!< \brief Elements of three nodes (2D). */ -const int EL_QUAD = 1; /*!< \brief Elements of four nodes (2D). */ - -const int EL_TETRA = 0; /*!< \brief Elements of four nodes (3D). */ -const int EL_HEXA = 1; /*!< \brief Elements of eight nodes (3D). */ - - -/*! + * \brief types of finite elements (in 2D or 3D) + */ + +const int EL_TRIA = 0; /*!< \brief Elements of three nodes (2D). */ +const int EL_QUAD = 1; /*!< \brief Elements of four nodes (2D). */ + +const int EL_TETRA = 0; /*!< \brief Elements of four nodes (3D). */ +const int EL_HEXA = 1; /*!< \brief Elements of eight nodes (3D). */ + + +/*! * \brief types of mathematical problem to solve */ enum ENUM_MATH_PROBLEM { @@ -660,38 +660,38 @@ static const map Time_Int_Map = CCreateMap Time_Int_Map_FEA = CCreateMap ("CD_EXPLICIT", CD_EXPLICIT) ("NEWMARK_IMPLICIT", NEWMARK_IMPLICIT) -("GENERALIZED_ALPHA", GENERALIZED_ALPHA); - -/*! - * \brief type of time integration schemes - */ -enum ENUM_SPACE_ITE_FEA { - NEWTON_RAPHSON = 1, /*!< \brief Full Newton-Rapshon method. */ - MODIFIED_NEWTON_RAPHSON = 2 /*!< \brief Modified Newton-Raphson method. */ -}; -static const map Space_Ite_Map_FEA = CCreateMap -("NEWTON_RAPHSON", NEWTON_RAPHSON) -("MODIFIED_NEWTON_RAPHSON", MODIFIED_NEWTON_RAPHSON); - -/*! - * \brief types of transfer methods - */ -enum ENUM_TRANSFER_METHOD { - BROADCAST_DATA = 1, /*!< \brief Gather data on one processor and broadcast it into all of them, relating to global nodes. */ - SCATTER_DATA = 2, /*!< \brief Gather data on one processor and scatter it into the one that needs it. */ - ALLGATHER_DATA = 3, /*!< \brief All processors gather data (this will be useful for operations over a group of data - averaging) */ - LEGACY_METHOD = 4 /*!< \brief Original transfer method, maintained to check . */ -}; -static const map Transfer_Method_Map = CCreateMap -("BROADCAST_DATA", BROADCAST_DATA) -("SCATTER_DATA", SCATTER_DATA) -("ALLGATHER_DATA", ALLGATHER_DATA) -("LEGACY_METHOD", LEGACY_METHOD); +("GENERALIZED_ALPHA", GENERALIZED_ALPHA); + +/*! + * \brief type of time integration schemes + */ +enum ENUM_SPACE_ITE_FEA { + NEWTON_RAPHSON = 1, /*!< \brief Full Newton-Rapshon method. */ + MODIFIED_NEWTON_RAPHSON = 2 /*!< \brief Modified Newton-Raphson method. */ +}; +static const map Space_Ite_Map_FEA = CCreateMap +("NEWTON_RAPHSON", NEWTON_RAPHSON) +("MODIFIED_NEWTON_RAPHSON", MODIFIED_NEWTON_RAPHSON); + +/*! + * \brief types of transfer methods + */ +enum ENUM_TRANSFER_METHOD { + BROADCAST_DATA = 1, /*!< \brief Gather data on one processor and broadcast it into all of them, relating to global nodes. */ + SCATTER_DATA = 2, /*!< \brief Gather data on one processor and scatter it into the one that needs it. */ + ALLGATHER_DATA = 3, /*!< \brief All processors gather data (this will be useful for operations over a group of data - averaging) */ + LEGACY_METHOD = 4 /*!< \brief Original transfer method, maintained to check . */ +}; +static const map Transfer_Method_Map = CCreateMap +("BROADCAST_DATA", BROADCAST_DATA) +("SCATTER_DATA", SCATTER_DATA) +("ALLGATHER_DATA", ALLGATHER_DATA) +("LEGACY_METHOD", LEGACY_METHOD); /*! * \brief types of schemes to compute the flow gradient diff --git a/Common/include/primal_grid_structure.hpp b/Common/include/primal_grid_structure.hpp index a7c4b9c61fa..53d953bf8eb 100644 --- a/Common/include/primal_grid_structure.hpp +++ b/Common/include/primal_grid_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/primal_grid_structure.inl b/Common/include/primal_grid_structure.inl index 6e545d7f820..d33caa6c9f0 100644 --- a/Common/include/primal_grid_structure.inl +++ b/Common/include/primal_grid_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/vector_structure.hpp b/Common/include/vector_structure.hpp index 4c5039039bd..a1a110f8247 100644 --- a/Common/include/vector_structure.hpp +++ b/Common/include/vector_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/vector_structure.inl b/Common/include/vector_structure.inl index cf94519f980..bc8bc7c5411 100644 --- a/Common/include/vector_structure.inl +++ b/Common/include/vector_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index c581c4fb75f..19e47e8a963 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index b7f52494acf..7ee6f8ba766 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/ad_structure.cpp b/Common/src/ad_structure.cpp index 44c7699d12c..1d35762fe87 100644 --- a/Common/src/ad_structure.cpp +++ b/Common/src/ad_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 7ab64bf2590..b03ced3c702 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -2971,7 +2971,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << "| - Prof. Alberto Guardone's group at Polytechnic University of Milan. |" << endl; cout << "| - Prof. Rafael Palacios' group at Imperial College London. |" << endl; cout <<"-------------------------------------------------------------------------" << endl; - cout << "| Copyright (C) 2012-2015 SU2, the open-source CFD code. |" << endl; + cout << "| Copyright (C) 2012-2016 SU2, the open-source CFD code. |" << endl; cout << "| |" << endl; cout << "| SU2 is free software; you can redistribute it and/or |" << endl; cout << "| modify it under the terms of the GNU Lesser General Public |" << endl; diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 099b22e4800..8bd9fdd7ca8 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -537,30 +537,30 @@ CVertex::CVertex(unsigned long val_point, unsigned short val_nDim) : CDualGrid(v VarCoord[0] = 0.0; VarCoord[1] = 0.0; VarCoord[2] = 0.0; - /*--- Set to NULL variation of the rotation ---*/ - VarRot = NULL; - - /*--- Set to NULL donor arrays for interpolation ---*/ - Donor_Points = NULL; - Donor_Proc = NULL; - Donor_Coeff = NULL; - nDonor_Points = 1; + /*--- Set to NULL variation of the rotation ---*/ + VarRot = NULL; + + /*--- Set to NULL donor arrays for interpolation ---*/ + Donor_Points = NULL; + Donor_Proc = NULL; + Donor_Coeff = NULL; + nDonor_Points = 1; } CVertex::~CVertex() { if (Normal != NULL) delete[] Normal; if (Nodes != NULL) delete[] Nodes; - - /*--- donor arrays for interpolation ---*/ - if (Donor_Coeff != NULL) delete[] Donor_Coeff; - if (Donor_Proc != NULL) delete[] Donor_Proc; - if (Donor_Points != NULL) delete[] Donor_Points; - - if (VarRot!=NULL) - delete[] VarRot; - - + + /*--- donor arrays for interpolation ---*/ + if (Donor_Coeff != NULL) delete[] Donor_Coeff; + if (Donor_Proc != NULL) delete[] Donor_Proc; + if (Donor_Points != NULL) delete[] Donor_Points; + + if (VarRot!=NULL) + delete[] VarRot; + + } void CVertex::SetNodes_Coord(su2double *val_coord_Edge_CG, su2double *val_coord_FaceElem_CG, su2double *val_coord_Elem_CG) { @@ -615,10 +615,10 @@ void CVertex::AddNormal(su2double *val_face_normal) { Normal[0] += val_face_normal[0]; Normal[1] += val_face_normal[1]; if (nDim == 3) Normal[2] += val_face_normal[2]; -} - -void CVertex::Allocate_DonorInfo(void){ - Donor_Points = new unsigned long[nDonor_Points]; - Donor_Proc = new unsigned long[nDonor_Points]; - Donor_Coeff = new su2double[nDonor_Points]; +} + +void CVertex::Allocate_DonorInfo(void){ + Donor_Points = new unsigned long[nDonor_Points]; + Donor_Proc = new unsigned long[nDonor_Points]; + Donor_Coeff = new su2double[nDonor_Points]; } diff --git a/Common/src/element_linear.cpp b/Common/src/element_linear.cpp index b0c16aa00c3..f5888f41aea 100644 --- a/Common/src/element_linear.cpp +++ b/Common/src/element_linear.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/element_structure.cpp b/Common/src/element_structure.cpp index 5198a0f80c8..bbda7489e0c 100644 --- a/Common/src/element_structure.cpp +++ b/Common/src/element_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/gauss_structure.cpp b/Common/src/gauss_structure.cpp index 436fb8bd39e..6914b5a1f51 100644 --- a/Common/src/gauss_structure.cpp +++ b/Common/src/gauss_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 096f9a9c118..4c5a2a2aaad 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_adaptation_structure.cpp b/Common/src/grid_adaptation_structure.cpp index 7e5855849b0..0bec801642a 100644 --- a/Common/src/grid_adaptation_structure.cpp +++ b/Common/src/grid_adaptation_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 6edb1322a86..52184d6976e 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index 7ac80704b0d..a533ac4e46d 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_solvers_structure.cpp b/Common/src/linear_solvers_structure.cpp index 3dacba1ff26..9d0fcab7f80 100644 --- a/Common/src/linear_solvers_structure.cpp +++ b/Common/src/linear_solvers_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_solvers_structure_b.cpp b/Common/src/linear_solvers_structure_b.cpp index a21c71b1b47..4d359c1dc63 100644 --- a/Common/src/linear_solvers_structure_b.cpp +++ b/Common/src/linear_solvers_structure_b.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 5e27732dc28..5a48cd8dd42 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/mpi_structure.cpp b/Common/src/mpi_structure.cpp index 3da4bff7a8f..d5d22e86cf3 100644 --- a/Common/src/mpi_structure.cpp +++ b/Common/src/mpi_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/primal_grid_structure.cpp b/Common/src/primal_grid_structure.cpp index e0b410d2b43..6c68af3eff0 100644 --- a/Common/src/primal_grid_structure.cpp +++ b/Common/src/primal_grid_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/vector_structure.cpp b/Common/src/vector_structure.cpp index 372fd765cc2..16c2c5ca4d0 100644 --- a/Common/src/vector_structure.cpp +++ b/Common/src/vector_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Makefile.am b/Makefile.am index ded78f166c3..c1056cae6b8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/Makefile.in b/Makefile.in index 64b94487ea4..598d5335fde 100644 --- a/Makefile.in +++ b/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index 576a30cea5f..b5d861caf4e 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 7e209e18c92..9192667094c 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/driver_structure.hpp b/SU2_CFD/include/driver_structure.hpp index 5e84f14a600..fac17c1b1c8 100644 --- a/SU2_CFD/include/driver_structure.hpp +++ b/SU2_CFD/include/driver_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,11 +38,11 @@ #include "integration_structure.hpp" #include "output_structure.hpp" #include "numerics_structure.hpp" -#include "transfer_structure.hpp" +#include "transfer_structure.hpp" #include "../../Common/include/geometry_structure.hpp" #include "../../Common/include/grid_movement_structure.hpp" #include "../../Common/include/config_structure.hpp" -#include "../../Common/include/interpolation_structure.hpp" +#include "../../Common/include/interpolation_structure.hpp" using namespace std; @@ -73,11 +73,11 @@ class CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone, - unsigned short val_nDim); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -107,10 +107,10 @@ class CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container){ - }; + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container){ + }; /*! * \brief Definition of the physics iteration class or within a single zone. * \param[in] iteration_container - Pointer to the iteration container to be instantiated. @@ -134,21 +134,21 @@ class CDriver { * \param[in] config - Definition of the particular problem. */ void Integration_Preprocessing(CIntegration **integration_container, CGeometry **geometry, CConfig *config); - - /*! - * \brief Definition and allocation of all interface classes. - * \param[in] transfer_container - Definition of the transfer of information and the physics involved in the interface. - * \param[in] interpolator_container - Definition of the interpolation method between non-matching discretizations of the interface. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] config_container - Definition of the particular problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] nZone - Total number of zones. - * \param[in] nDim - Total number of dimensions. - */ - void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***interpolator_container, - CGeometry ***geometry_container, CConfig **config_container, CSolver ****solver_container, - unsigned short nZone, unsigned short nDim); - + + /*! + * \brief Definition and allocation of all interface classes. + * \param[in] transfer_container - Definition of the transfer of information and the physics involved in the interface. + * \param[in] interpolator_container - Definition of the interpolation method between non-matching discretizations of the interface. + * \param[in] geometry_container - Geometrical definition of the problem. + * \param[in] config_container - Definition of the particular problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] nZone - Total number of zones. + * \param[in] nDim - Total number of dimensions. + */ + void Interface_Preprocessing(CTransfer ***transfer_container, CInterpolator ***interpolator_container, + CGeometry ***geometry_container, CConfig **config_container, CSolver ****solver_container, + unsigned short nZone, unsigned short nDim); + /*! * \brief Definition and allocation of all solver classes. @@ -159,62 +159,62 @@ class CDriver { */ void Numerics_Preprocessing(CNumerics ****numerics_container, CSolver ***solver_container, CGeometry **geometry, CConfig *config); - /*! - * \brief A virtual member. - * \param[in] donorZone - zone in which the displacements will be predicted. - * \param[in] targetZone - zone which receives the predicted displacements. - */ - virtual void Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned short donorZone, unsigned short targetZone){}; - - /*! - * \brief A virtual member. - * \param[in] donorZone - zone in which the tractions will be predicted. - * \param[in] targetZone - zone which receives the predicted traction. - */ - virtual void Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned short donorZone, unsigned short targetZone){}; - - /*! - * \brief A virtual member. - * \param[in] donorZone - zone in which the displacements will be transferred. - * \param[in] targetZone - zone which receives the tractions transferred. - */ - virtual void Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){}; - - /*! - * \brief A virtual member. - * \param[in] donorZone - zone from which the tractions will be transferred. - * \param[in] targetZone - zone which receives the tractions transferred. - */ - virtual void Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){}; - - /*! - * \brief A virtual member. - * \param[in] donorZone - origin of the information. - * \param[in] targetZone - destination of the information. - * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. - */ - virtual void Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; - - /*! - * \brief A virtual member. - * \param[in] donorZone - origin of the information. - * \param[in] targetZone - destination of the information. - * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. - */ - virtual void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + /*! + * \brief A virtual member. + * \param[in] donorZone - zone in which the displacements will be predicted. + * \param[in] targetZone - zone which receives the predicted displacements. + */ + virtual void Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - zone in which the tractions will be predicted. + * \param[in] targetZone - zone which receives the predicted traction. + */ + virtual void Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - zone in which the displacements will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + virtual void Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - zone from which the tractions will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + virtual void Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + virtual void Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; + + /*! + * \brief A virtual member. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + virtual void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter){}; /*! @@ -225,8 +225,8 @@ class CDriver { virtual void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer ***transfer_container, unsigned short zoneFlow, unsigned short zoneStruct){}; - + CTransfer ***transfer_container, unsigned short zoneFlow, unsigned short zoneStruct){}; + }; /*! * \class CSingleZoneDriver @@ -252,11 +252,11 @@ class CSingleZoneDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone, - unsigned short val_nDim); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -286,9 +286,9 @@ class CSingleZoneDriver : public CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container); + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); }; @@ -318,11 +318,11 @@ class CMultiZoneDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone, - unsigned short val_nDim); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -352,9 +352,9 @@ class CMultiZoneDriver : public CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container); + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); }; @@ -383,11 +383,11 @@ class CSpectralDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone, - unsigned short val_nDim); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -409,17 +409,17 @@ class CSpectralDriver : public CDriver { */ void Run(CIteration **iteration_container, - COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container); + COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); /*! * \brief Computation and storage of the time spectral source terms. @@ -478,11 +478,11 @@ class CFSIDriver : public CDriver { CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config, - unsigned short val_nZone, - unsigned short val_nDim); + unsigned short val_nZone, + unsigned short val_nDim); /*! * \brief Destructor of the class. @@ -512,66 +512,66 @@ class CFSIDriver : public CDriver { CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container); - - /*! - * \brief Predict the structural displacements to pass them into the fluid solver on a BGS implementation. - * \param[in] donorZone - zone in which the displacements will be predicted. - * \param[in] targetZone - zone which receives the predicted displacements. - */ - void Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned short donorZone, unsigned short targetZone); - - /*! - * \brief Predict the fluid tractions to pass them into the structural solver on a BGS implementation. - * \param[in] donorZone - zone in which the tractions will be predicted. - * \param[in] targetZone - zone which receives the predicted traction. - */ - void Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned short donorZone, unsigned short targetZone); - - /*! - * \brief Transfer the displacements computed on the structural solver into the fluid solver. - * \param[in] donorZone - zone in which the displacements will be transferred. - * \param[in] targetZone - zone which receives the tractions transferred. - */ - void Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone); - - /*! - * \brief Transfer the tractions computed on the fluid solver into the structural solver. - * \param[in] donorZone - zone from which the tractions will be transferred. - * \param[in] targetZone - zone which receives the tractions transferred. - */ - void Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone); - - /*! - * \brief Apply a relaxation method into the computed displacements. - * \param[in] donorZone - origin of the information. - * \param[in] targetZone - destination of the information. - * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. - */ - void Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, - CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); - - /*! - * \brief Apply a relaxation method into the computed tractions. - * \param[in] donorZone - origin of the information. - * \param[in] targetZone - destination of the information. - * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. - */ - void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CFreeFormDefBox*** FFDBox, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container); + + /*! + * \brief Predict the structural displacements to pass them into the fluid solver on a BGS implementation. + * \param[in] donorZone - zone in which the displacements will be predicted. + * \param[in] targetZone - zone which receives the predicted displacements. + */ + void Predict_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Predict the fluid tractions to pass them into the structural solver on a BGS implementation. + * \param[in] donorZone - zone in which the tractions will be predicted. + * \param[in] targetZone - zone which receives the predicted traction. + */ + void Predict_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Transfer the displacements computed on the structural solver into the fluid solver. + * \param[in] donorZone - zone in which the displacements will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + void Transfer_Displacements(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Transfer the tractions computed on the fluid solver into the structural solver. + * \param[in] donorZone - zone from which the tractions will be transferred. + * \param[in] targetZone - zone which receives the tractions transferred. + */ + void Transfer_Tractions(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, + CTransfer ***transfer_container, unsigned short donorZone, unsigned short targetZone); + + /*! + * \brief Apply a relaxation method into the computed displacements. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + void Relaxation_Displacements(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, + CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); + + /*! + * \brief Apply a relaxation method into the computed tractions. + * \param[in] donorZone - origin of the information. + * \param[in] targetZone - destination of the information. + * \param[in] iFSIIter - Fluid-Structure Interaction subiteration. + */ + void Relaxation_Tractions(COutput *output, CGeometry ***geometry_container, CSolver ****solver_container, CConfig **config_container, unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter); /*! @@ -582,6 +582,6 @@ class CFSIDriver : public CDriver { void Update(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - CTransfer ***transfer_container, unsigned short zoneFlow, unsigned short zoneStruct); + CTransfer ***transfer_container, unsigned short zoneFlow, unsigned short zoneStruct); }; diff --git a/SU2_CFD/include/fluid_model.hpp b/SU2_CFD/include/fluid_model.hpp index 3c84e7ac546..288359c716d 100644 --- a/SU2_CFD/include/fluid_model.hpp +++ b/SU2_CFD/include/fluid_model.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid_model.inl b/SU2_CFD/include/fluid_model.inl index bc5439671f5..6ceb7c16ae0 100644 --- a/SU2_CFD/include/fluid_model.inl +++ b/SU2_CFD/include/fluid_model.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index ee920567a36..e17577ff40d 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -15,7 +15,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -90,19 +90,19 @@ class CIntegration { void Space_Integration(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem); - /*! - * \brief Do the space integration of the numerical system on a FEM framework. - * \author R. Sanchez - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Iteration - Current iteration. - */ - void Space_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, - unsigned short RunTime_EqSystem, unsigned long Iteration); - + /*! + * \brief Do the space integration of the numerical system on a FEM framework. + * \author R. Sanchez + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + void Space_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, + unsigned short RunTime_EqSystem, unsigned long Iteration); + /*! * \brief Do the time integration (explicit or implicit) of the numerical system. * \param[in] geometry - Geometrical definition of the problem. @@ -116,18 +116,18 @@ class CIntegration { unsigned short iRKStep, unsigned short RunTime_EqSystem, unsigned long Iteration); /*! - * \brief Do the time integration (explicit or implicit) of the numerical system on a FEM framework. - * \author R. Sanchez - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Iteration - Current iteration. - */ - void Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, - unsigned short RunTime_EqSystem, unsigned long Iteration); - - /*! + * \brief Do the time integration (explicit or implicit) of the numerical system on a FEM framework. + * \author R. Sanchez + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + void Time_Integration_FEM(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, + unsigned short RunTime_EqSystem, unsigned long Iteration); + + /*! * \brief Initialize the adjoint solution using the primal problem. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. @@ -149,17 +149,17 @@ class CIntegration { unsigned long Iteration, su2double monitor, unsigned short iMesh); /*! - * \brief Do the convergence analysis to determine if the structural FEM analysis has converged. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - * \param[in] solver - Solution of the problem - * \param[in] Iteration - Current iteration. - * \param[in] monitor - Objective function that is use to study its convergence. - */ - void Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *config, CSolver *solver, unsigned long iFSIIter); - - - /*! + * \brief Do the convergence analysis to determine if the structural FEM analysis has converged. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + * \param[in] solver - Solution of the problem + * \param[in] Iteration - Current iteration. + * \param[in] monitor - Objective function that is use to study its convergence. + */ + void Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *config, CSolver *solver, unsigned long iFSIIter); + + + /*! * \brief Do the convergence analysis to determine if the FSI problem has converged on the structural side. * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. @@ -229,14 +229,14 @@ class CIntegration { void SetStructural_Solver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh); /*! - * \brief Save the structural solution at different time steps. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Structural solution. - * \param[in] config - Definition of the particular problem. - */ - void SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh); - - /*! + * \brief Save the structural solution at different time steps. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Structural solution. + * \param[in] config - Definition of the particular problem. + */ + void SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh); + + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver_container - Container vector with all the solutions. @@ -387,18 +387,18 @@ class CIntegration { virtual void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config - Definition of the particular problem. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Iteration - Current iteration. - */ - virtual void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, - CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); - + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config - Definition of the particular problem. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + virtual void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); + /*! * \brief A virtual member. @@ -689,18 +689,18 @@ class CStructuralIntegration : public CIntegration { * \param[in] Iteration - Current iteration. */ void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, - CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); - - /*! - * \brief Do the numerical integration (implicit) of the structural solver. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config - Definition of the particular problem. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Iteration - Current iteration. - */ - void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); + + /*! + * \brief Do the numerical integration (implicit) of the structural solver. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). + * \param[in] config - Definition of the particular problem. + * \param[in] RunTime_EqSystem - System of equations which is going to be solved. + * \param[in] Iteration - Current iteration. + */ + void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); }; diff --git a/SU2_CFD/include/integration_structure.inl b/SU2_CFD/include/integration_structure.inl index 4a6f989a663..2819ea98273 100644 --- a/SU2_CFD/include/integration_structure.inl +++ b/SU2_CFD/include/integration_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -79,10 +79,10 @@ inline void CIntegration::SingleGrid_Iteration(CGeometry ***geometry, CSolver ** inline void CIntegration::Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } - -inline void CIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, - CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } - + +inline void CIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } + inline void CIntegration::SetPotential_Solver(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iMesh, unsigned short iZone) { } diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index ca067cf9830..e6810c42b71 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index f48bf537a6a..1ba7e6fb0ff 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -16,7 +16,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 7f24343a939..7ec9aa391a2 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -55,42 +55,42 @@ inline void CNumerics::PressInt_Linear(su2double CoordCorners[4][3], su2double * inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { } -inline void CNumerics::Compute_Mass_Matrix(CElement *element_container){ } - -inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } - -inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } - -inline void CNumerics::Compute_MeanDilatation_Term(CElement *element_container){ } - -inline void CFEM_Elasticity::Compute_MeanDilatation_Term(CElement *element_container){ } - -inline void CNumerics::Compute_NodalStress_Term(CElement *element_container){ } - -inline void CFEM_Elasticity::Compute_NodalStress_Term(CElement *element_container){ } - -inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container){ } - -inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container){ } - -inline void CNumerics::Compute_Plane_Stress_Term(CElement *element_container) { } - -inline void CFEM_Elasticity::Compute_Plane_Stress_Term(CElement *element_container){ } - -inline void CFEM_NonlinearElasticity::Compute_Plane_Stress_Term(CElement *element_container) { } - -inline void CNumerics::Compute_Constitutive_Matrix(CElement *element_container){ } - -inline void CFEM_Elasticity::Compute_Constitutive_Matrix(CElement *element_container){ } - -inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(CElement *element_container){ } - -inline void CNumerics::Compute_Stress_Tensor(CElement *element_container){ } - -inline void CFEM_Elasticity::Compute_Stress_Tensor(CElement *element_container){ } - -inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(CElement *element_container){ } - +inline void CNumerics::Compute_Mass_Matrix(CElement *element_container){ } + +inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } + +inline void CNumerics::Compute_MeanDilatation_Term(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_MeanDilatation_Term(CElement *element_container){ } + +inline void CNumerics::Compute_NodalStress_Term(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_NodalStress_Term(CElement *element_container){ } + +inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container){ } + +inline void CNumerics::Compute_Plane_Stress_Term(CElement *element_container) { } + +inline void CFEM_Elasticity::Compute_Plane_Stress_Term(CElement *element_container){ } + +inline void CFEM_NonlinearElasticity::Compute_Plane_Stress_Term(CElement *element_container) { } + +inline void CNumerics::Compute_Constitutive_Matrix(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_Constitutive_Matrix(CElement *element_container){ } + +inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(CElement *element_container){ } + +inline void CNumerics::Compute_Stress_Tensor(CElement *element_container){ } + +inline void CFEM_Elasticity::Compute_Stress_Tensor(CElement *element_container){ } + +inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(CElement *element_container){ } + inline void CNumerics::ComputeResidual(su2double *val_residual, CConfig *config) { } inline void CNumerics::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j) { } diff --git a/SU2_CFD/include/output_structure.hpp b/SU2_CFD/include/output_structure.hpp index 67420bc7184..4ac76c75265 100644 --- a/SU2_CFD/include/output_structure.hpp +++ b/SU2_CFD/include/output_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 29b1c9e86fc..06fb4c0e645 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -16,7 +16,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 3812cc4ef68..0059f95fe76 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/transfer_structure.hpp b/SU2_CFD/include/transfer_structure.hpp index 8ead8eef8ae..3094884bd22 100644 --- a/SU2_CFD/include/transfer_structure.hpp +++ b/SU2_CFD/include/transfer_structure.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/transport_model.hpp b/SU2_CFD/include/transport_model.hpp index 464ef318e65..0622930ed38 100644 --- a/SU2_CFD/include/transport_model.hpp +++ b/SU2_CFD/include/transport_model.hpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/transport_model.inl b/SU2_CFD/include/transport_model.inl index 15627cac8e4..8ea8ca7c0d9 100644 --- a/SU2_CFD/include/transport_model.inl +++ b/SU2_CFD/include/transport_model.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 413a678801c..e8b03686948 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -15,7 +15,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -126,13 +126,13 @@ class CVariable { */ void SetSolution(unsigned short val_var, su2double val_solution); - /*! - * \brief Add the value of the solution vector to the previous solution (incremental approach). - * \param[in] val_var - Index of the variable. - * \param[in] val_solution - Value of the solution for the index val_var. - */ - void Add_DeltaSolution(unsigned short val_var, su2double val_solution); - + /*! + * \brief Add the value of the solution vector to the previous solution (incremental approach). + * \param[in] val_var - Index of the variable. + * \param[in] val_solution - Value of the solution for the index val_var. + */ + void Add_DeltaSolution(unsigned short val_var, su2double val_solution); + /*! * \brief Set the value of the non-physical point. * \param[in] val_value - identification of the non-physical point. @@ -1397,22 +1397,22 @@ class CVariable { /*! * \brief A virtual member. - */ - virtual void SetStress_FEM(unsigned short iVar, su2double val_stress); - - /*! - * \brief A virtual member. - */ - virtual void AddStress_FEM(unsigned short iVar, su2double val_stress); - - /*! - * \brief A virtual member. - - */ - virtual su2double *GetStress_FEM(void); - - /*! - * \brief A virtual member. + */ + virtual void SetStress_FEM(unsigned short iVar, su2double val_stress); + + /*! + * \brief A virtual member. + */ + virtual void AddStress_FEM(unsigned short iVar, su2double val_stress); + + /*! + * \brief A virtual member. + + */ + virtual su2double *GetStress_FEM(void); + + /*! + * \brief A virtual member. */ virtual su2double **GetStress(void); @@ -1471,70 +1471,70 @@ class CVariable { */ virtual su2double **GetTraction(void); - /*! - * \brief A virtual member. - */ - virtual void Add_SurfaceLoad_Res(su2double *val_surfForce); - - /*! - * \brief A virtual member. - */ - virtual su2double *Get_SurfaceLoad_Res(void); - - /*! - * \brief A virtual member. - */ - virtual su2double Get_SurfaceLoad_Res(unsigned short iVar); - - /*! - * \brief A virtual member. - */ - virtual void Clear_SurfaceLoad_Res(void); - - /*! - * \brief A virtual member. - */ - virtual void Set_SurfaceLoad_Res_n(void); - - /*! - * \brief A virtual member. - */ - virtual su2double Get_SurfaceLoad_Res_n(unsigned short iVar); - - /*! - * \brief A virtual member. - */ - virtual void Set_FlowTraction(su2double *val_flowTraction); - - /*! - * \brief A virtual member. - */ - virtual void Add_FlowTraction(su2double *val_flowTraction); - - /*! - * \brief A virtual member. - */ - virtual su2double *Get_FlowTraction(void); - - /*! - * \brief A virtual member. - */ - virtual su2double Get_FlowTraction(unsigned short iVar); - - /*! - * \brief A virtual member. - */ - virtual void Set_FlowTraction_n(void); - - /*! - * \brief A virtual member. - */ - virtual su2double Get_FlowTraction_n(unsigned short iVar); - - /*! - * \brief A virtual member. - */ - virtual void Clear_FlowTraction(void); + /*! + * \brief A virtual member. + */ + virtual void Add_SurfaceLoad_Res(su2double *val_surfForce); + + /*! + * \brief A virtual member. + */ + virtual su2double *Get_SurfaceLoad_Res(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_SurfaceLoad_Res(unsigned short iVar); + + /*! + * \brief A virtual member. + */ + virtual void Clear_SurfaceLoad_Res(void); + + /*! + * \brief A virtual member. + */ + virtual void Set_SurfaceLoad_Res_n(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_SurfaceLoad_Res_n(unsigned short iVar); + + /*! + * \brief A virtual member. + */ + virtual void Set_FlowTraction(su2double *val_flowTraction); + + /*! + * \brief A virtual member. + */ + virtual void Add_FlowTraction(su2double *val_flowTraction); + + /*! + * \brief A virtual member. + */ + virtual su2double *Get_FlowTraction(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_FlowTraction(unsigned short iVar); + + /*! + * \brief A virtual member. + */ + virtual void Set_FlowTraction_n(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_FlowTraction_n(unsigned short iVar); + + /*! + * \brief A virtual member. + */ + virtual void Clear_FlowTraction(void); /*! * \brief A virtual member. @@ -1990,12 +1990,12 @@ class CVariable { virtual void SetSolution_Pred(su2double *val_solution_pred); /*! - * \brief A virtual member. Set the value of the solution predicted. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - virtual void SetSolution_Pred(unsigned short val_var, su2double val_solution_pred); - - /*! + * \brief A virtual member. Set the value of the solution predicted. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + virtual void SetSolution_Pred(unsigned short val_var, su2double val_solution_pred); + + /*! * \brief A virtual member. Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. @@ -2020,12 +2020,12 @@ class CVariable { virtual void SetSolution_Pred_Old(su2double *val_solution_pred_Old); /*! - * \brief A virtual member. Set the value of the old solution predicted. - * \param[in] val_solution_pred_old - Pointer to the residual vector. - */ - virtual void SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old); - - /*! + * \brief A virtual member. Set the value of the old solution predicted. + * \param[in] val_solution_pred_old - Pointer to the residual vector. + */ + virtual void SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old); + + /*! * \brief A virtual member. Get the value of the solution predictor. * \param[in] val_var - Index of the variable. * \return Pointer to the old solution vector. @@ -2580,367 +2580,367 @@ class CFEAVariable : public CVariable { }; -/*! - * \class CFEM_ElasVariable - * \brief Main class for defining the variables of the FEM Linear Elastic structural problem. - * \ingroup Structural Finite Element Analysis Variables - * \author F. Palacios, R. Sanchez. - * \version 4.0.0 "Cardinal" - */ -class CFEM_ElasVariable : public CVariable { -protected: - - bool dynamic_analysis; /*!< \brief Bool which determines if the problem is dynamic. */ - bool fsi_analysis; /*!< \brief Bool which determines if the problem is FSI. */ - - su2double *Stress; /*!< \brief Stress tensor. */ - su2double *FlowTraction; /*!< \brief Traction from the fluid field. */ - su2double *FlowTraction_n; /*!< \brief Traction from the fluid field at time n. */ - -// su2double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ - su2double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ - su2double *Residual_Ext_Surf_n; /*!< \brief Term of the residual due to external forces at time n */ - su2double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ - - su2double VonMises_Stress; /*!< \brief Von Mises stress. */ - - su2double *Solution_time_n; /*!< \brief Displacement at the nodes at time n */ - - su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ - *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ - - su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ - *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ - - su2double *Solution_Pred, /*!< \brief Predictor of the solution for FSI purposes */ - *Solution_Pred_Old; /*!< \brief Predictor of the solution at time n for FSI purposes */ - - -public: - - /*! - * \brief Constructor of the class. - */ - CFEM_ElasVariable(void); - - /*! - * \overload - * \param[in] val_fea - Values of the fea solution (initialization value). - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nvar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEM_ElasVariable(void); - - /*! - * \brief Get the value of the stress. - * \return Value of the stress. - */ - su2double *GetStress_FEM(void); - - /*! - * \brief Set the value of the stress at the node - * \param[in] iVar - index of the stress term - * \param[in] val_stress - value of the stress - */ - void SetStress_FEM(unsigned short iVar, su2double val_stress); - - /*! - * \brief Add a certain value to the value of the stress at the node - * \param[in] iVar - index of the stress term - * \param[in] val_stress - value of the stress - */ - void AddStress_FEM(unsigned short iVar, su2double val_stress); - - - /*! - * \brief Add surface load to the residual term - */ - void Add_SurfaceLoad_Res(su2double *val_surfForce); - - /*! - * \brief Get the residual term due to surface load - */ - su2double *Get_SurfaceLoad_Res(void); - - /*! - * \brief Get the residual term due to surface load - */ - su2double Get_SurfaceLoad_Res(unsigned short iVar); - - /*! - * \brief Clear the surface load residual - */ - void Clear_SurfaceLoad_Res(void); - - /*! - * \brief Store the surface load as the load for the previous time step. - */ - void Set_SurfaceLoad_Res_n(void); - - /*! - * \brief Get the surface load from the previous time step. - */ - su2double Get_SurfaceLoad_Res_n(unsigned short iVar); - - /*! - * \brief Set the flow traction at a node on the structural side - */ - void Set_FlowTraction(su2double *val_flowTraction); - - /*! - * \brief Add a value to the flow traction at a node on the structural side - */ - void Add_FlowTraction(su2double *val_flowTraction); - - /*! - * \brief Get the residual term due to the flow traction - */ - su2double *Get_FlowTraction(void); - - /*! - * \brief Get the residual term due to the flow traction - */ - su2double Get_FlowTraction(unsigned short iVar); - - /*! - * \brief Set the value of the flow traction at the previous time step. - */ - void Set_FlowTraction_n(void); - - /*! - * \brief Retrieve the value of the flow traction from the previous time step. - */ - su2double Get_FlowTraction_n(unsigned short iVar); - - /*! - * \brief Clear the flow traction residual - */ - void Clear_FlowTraction(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_time_n(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_old - Pointer to the residual vector. - */ +/*! + * \class CFEM_ElasVariable + * \brief Main class for defining the variables of the FEM Linear Elastic structural problem. + * \ingroup Structural Finite Element Analysis Variables + * \author F. Palacios, R. Sanchez. + * \version 4.0.0 "Cardinal" + */ +class CFEM_ElasVariable : public CVariable { +protected: + + bool dynamic_analysis; /*!< \brief Bool which determines if the problem is dynamic. */ + bool fsi_analysis; /*!< \brief Bool which determines if the problem is FSI. */ + + su2double *Stress; /*!< \brief Stress tensor. */ + su2double *FlowTraction; /*!< \brief Traction from the fluid field. */ + su2double *FlowTraction_n; /*!< \brief Traction from the fluid field at time n. */ + +// su2double *Residual_Int; /*!< \brief Internal stress term for the calculation of the residual */ + su2double *Residual_Ext_Surf; /*!< \brief Term of the residual due to external forces */ + su2double *Residual_Ext_Surf_n; /*!< \brief Term of the residual due to external forces at time n */ + su2double *Residual_Ext_Body; /*!< \brief Term of the residual due to body forces */ + + su2double VonMises_Stress; /*!< \brief Von Mises stress. */ + + su2double *Solution_time_n; /*!< \brief Displacement at the nodes at time n */ + + su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ + *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ + + su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ + *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ + + su2double *Solution_Pred, /*!< \brief Predictor of the solution for FSI purposes */ + *Solution_Pred_Old; /*!< \brief Predictor of the solution at time n for FSI purposes */ + + +public: + + /*! + * \brief Constructor of the class. + */ + CFEM_ElasVariable(void); + + /*! + * \overload + * \param[in] val_fea - Values of the fea solution (initialization value). + * \param[in] val_nDim - Number of dimensions of the problem. + * \param[in] val_nvar - Number of variables of the problem. + * \param[in] config - Definition of the particular problem. + */ + CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); + + /*! + * \brief Destructor of the class. + */ + ~CFEM_ElasVariable(void); + + /*! + * \brief Get the value of the stress. + * \return Value of the stress. + */ + su2double *GetStress_FEM(void); + + /*! + * \brief Set the value of the stress at the node + * \param[in] iVar - index of the stress term + * \param[in] val_stress - value of the stress + */ + void SetStress_FEM(unsigned short iVar, su2double val_stress); + + /*! + * \brief Add a certain value to the value of the stress at the node + * \param[in] iVar - index of the stress term + * \param[in] val_stress - value of the stress + */ + void AddStress_FEM(unsigned short iVar, su2double val_stress); + + + /*! + * \brief Add surface load to the residual term + */ + void Add_SurfaceLoad_Res(su2double *val_surfForce); + + /*! + * \brief Get the residual term due to surface load + */ + su2double *Get_SurfaceLoad_Res(void); + + /*! + * \brief Get the residual term due to surface load + */ + su2double Get_SurfaceLoad_Res(unsigned short iVar); + + /*! + * \brief Clear the surface load residual + */ + void Clear_SurfaceLoad_Res(void); + + /*! + * \brief Store the surface load as the load for the previous time step. + */ + void Set_SurfaceLoad_Res_n(void); + + /*! + * \brief Get the surface load from the previous time step. + */ + su2double Get_SurfaceLoad_Res_n(unsigned short iVar); + + /*! + * \brief Set the flow traction at a node on the structural side + */ + void Set_FlowTraction(su2double *val_flowTraction); + + /*! + * \brief Add a value to the flow traction at a node on the structural side + */ + void Add_FlowTraction(su2double *val_flowTraction); + + /*! + * \brief Get the residual term due to the flow traction + */ + su2double *Get_FlowTraction(void); + + /*! + * \brief Get the residual term due to the flow traction + */ + su2double Get_FlowTraction(unsigned short iVar); + + /*! + * \brief Set the value of the flow traction at the previous time step. + */ + void Set_FlowTraction_n(void); + + /*! + * \brief Retrieve the value of the flow traction from the previous time step. + */ + su2double Get_FlowTraction_n(unsigned short iVar); + + /*! + * \brief Clear the flow traction residual + */ + void Clear_FlowTraction(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_time_n(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ void SetSolution_time_n(su2double *val_solution_time_n); /*! * \brief Set the value of the old solution. * \param[in] val_solution_old - Pointer to the residual vector. */ - void SetSolution_time_n(unsigned short val_var, su2double val_solution); - - /*! - * \brief Set the value of the velocity (Structural Analysis). - * \param[in] val_solution - Solution of the problem (velocity). - */ - void SetSolution_Vel(su2double *val_solution_vel); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution - Value of the solution for the index val_var. - */ - void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); - - /*! - * \brief Set the value of the velocity (Structural Analysis) at time n. - * \param[in] val_solution - Solution of the problem (acceleration). - */ - void SetSolution_Vel_time_n(void); - - /*! - * \brief Set the value of the velocity (Structural Analysis) at time n. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution_old - Value of the old solution for the index val_var. - */ - void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); - - /*! - * \brief Get the solution at time n. - * \param[in] val_var - Index of the variable. - * \return Value of the solution for the index val_var. - */ - su2double GetSolution_time_n(unsigned short val_var); - - /*! - * \brief Get the velocity (Structural Analysis). - * \param[in] val_var - Index of the variable. - * \return Value of the solution for the index val_var. - */ - su2double GetSolution_Vel(unsigned short val_var); - - /*! - * \brief Get the solution of the problem. - * \return Pointer to the solution vector. - */ - su2double *GetSolution_Vel(void); - - /*! - * \brief Get the velocity of the nodes (Structural Analysis) at time n. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Vel_time_n(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Vel_time_n(void); - - /*! - * \brief Set the value of the acceleration (Structural Analysis). - * \param[in] val_solution - Solution of the problem (acceleration). - */ - void SetSolution_Accel(su2double *val_solution_accel); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution - Value of the solution for the index val_var. - */ - void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); - - /*! - * \brief Set the value of the acceleration (Structural Analysis) at time n. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); - - /*! - * \brief Set the value of the acceleration (Structural Analysis) at time n. - * \param[in] val_solution - Solution of the problem (acceleration). - */ - void SetSolution_Accel_time_n(void); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution_old - Value of the old solution for the index val_var. - */ - void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); - - /*! - * \brief Get the acceleration (Structural Analysis). - * \param[in] val_var - Index of the variable. - * \return Value of the solution for the index val_var. - */ - su2double GetSolution_Accel(unsigned short val_var); - - /*! - * \brief Get the solution of the problem. - * \return Pointer to the solution vector. - */ - su2double *GetSolution_Accel(void); - - /*! - * \brief Get the acceleration of the nodes (Structural Analysis) at time n. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Accel_time_n(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Accel_time_n(void); - - - /*! - * \brief Set the value of the solution predictor. - */ - void SetSolution_Pred(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_Pred(su2double *val_solution_pred); - - /*! - * \brief Set the value of the predicted solution. - * \param[in] val_var - Index of the variable - * \param[in] val_solution_pred - Value of the predicted solution. - */ - void SetSolution_Pred(unsigned short val_var, su2double val_solution_pred); - - /*! - * \brief Get the value of the solution predictor. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Pred(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Pred(void); - - /*! - * \brief Set the value of the solution predictor. - */ - void SetSolution_Pred_Old(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_Pred_Old(su2double *val_solution_pred_Old); - - /*! - * \brief A virtual member. Set the value of the old solution predicted. - * \param[in] val_var - Index of the variable - * \param[in] val_solution_pred_old - Value of the old predicted solution. - */ - void SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old); - - /*! - * \brief Get the value of the solution predictor. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Pred_Old(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Pred_Old(void); - - /*! - * \brief Set the value of the Von Mises stress. - * \param[in] val_stress - Value of the Von Mises stress. - */ - void SetVonMises_Stress(su2double val_stress); - - /*! - * \brief Get the value of the Von Mises stress. - * \return Value of the Von Mises stress. - */ - su2double GetVonMises_Stress(void); - - -}; + void SetSolution_time_n(unsigned short val_var, su2double val_solution); + + /*! + * \brief Set the value of the velocity (Structural Analysis). + * \param[in] val_solution - Solution of the problem (velocity). + */ + void SetSolution_Vel(su2double *val_solution_vel); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution - Value of the solution for the index val_var. + */ + void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); + + /*! + * \brief Set the value of the velocity (Structural Analysis) at time n. + * \param[in] val_solution - Solution of the problem (acceleration). + */ + void SetSolution_Vel_time_n(void); + + /*! + * \brief Set the value of the velocity (Structural Analysis) at time n. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution_old - Value of the old solution for the index val_var. + */ + void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); + + /*! + * \brief Get the solution at time n. + * \param[in] val_var - Index of the variable. + * \return Value of the solution for the index val_var. + */ + su2double GetSolution_time_n(unsigned short val_var); + + /*! + * \brief Get the velocity (Structural Analysis). + * \param[in] val_var - Index of the variable. + * \return Value of the solution for the index val_var. + */ + su2double GetSolution_Vel(unsigned short val_var); + + /*! + * \brief Get the solution of the problem. + * \return Pointer to the solution vector. + */ + su2double *GetSolution_Vel(void); + + /*! + * \brief Get the velocity of the nodes (Structural Analysis) at time n. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + su2double GetSolution_Vel_time_n(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + su2double *GetSolution_Vel_time_n(void); + + /*! + * \brief Set the value of the acceleration (Structural Analysis). + * \param[in] val_solution - Solution of the problem (acceleration). + */ + void SetSolution_Accel(su2double *val_solution_accel); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution - Value of the solution for the index val_var. + */ + void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); + + /*! + * \brief Set the value of the acceleration (Structural Analysis) at time n. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); + + /*! + * \brief Set the value of the acceleration (Structural Analysis) at time n. + * \param[in] val_solution - Solution of the problem (acceleration). + */ + void SetSolution_Accel_time_n(void); + + /*! + * \overload + * \param[in] val_var - Index of the variable. + * \param[in] val_solution_old - Value of the old solution for the index val_var. + */ + void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); + + /*! + * \brief Get the acceleration (Structural Analysis). + * \param[in] val_var - Index of the variable. + * \return Value of the solution for the index val_var. + */ + su2double GetSolution_Accel(unsigned short val_var); + + /*! + * \brief Get the solution of the problem. + * \return Pointer to the solution vector. + */ + su2double *GetSolution_Accel(void); + + /*! + * \brief Get the acceleration of the nodes (Structural Analysis) at time n. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + su2double GetSolution_Accel_time_n(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + su2double *GetSolution_Accel_time_n(void); + + + /*! + * \brief Set the value of the solution predictor. + */ + void SetSolution_Pred(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Pred(su2double *val_solution_pred); + + /*! + * \brief Set the value of the predicted solution. + * \param[in] val_var - Index of the variable + * \param[in] val_solution_pred - Value of the predicted solution. + */ + void SetSolution_Pred(unsigned short val_var, su2double val_solution_pred); + + /*! + * \brief Get the value of the solution predictor. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + su2double GetSolution_Pred(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + su2double *GetSolution_Pred(void); + + /*! + * \brief Set the value of the solution predictor. + */ + void SetSolution_Pred_Old(void); + + /*! + * \brief Set the value of the old solution. + * \param[in] val_solution_old - Pointer to the residual vector. + */ + void SetSolution_Pred_Old(su2double *val_solution_pred_Old); + + /*! + * \brief A virtual member. Set the value of the old solution predicted. + * \param[in] val_var - Index of the variable + * \param[in] val_solution_pred_old - Value of the old predicted solution. + */ + void SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old); + + /*! + * \brief Get the value of the solution predictor. + * \param[in] val_var - Index of the variable. + * \return Pointer to the old solution vector. + */ + su2double GetSolution_Pred_Old(unsigned short val_var); + + /*! + * \brief Get the solution at time n. + * \return Pointer to the solution (at time n) vector. + */ + su2double *GetSolution_Pred_Old(void); + + /*! + * \brief Set the value of the Von Mises stress. + * \param[in] val_stress - Value of the Von Mises stress. + */ + void SetVonMises_Stress(su2double val_stress); + + /*! + * \brief Get the value of the Von Mises stress. + * \return Value of the Von Mises stress. + */ + su2double GetVonMises_Stress(void); + + +}; /*! * \class CFEABoundVariable diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 989541b7845..1aaa7564107 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -47,13 +47,13 @@ inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, su2do inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } -inline su2double **CVariable::GetStress(void) { return NULL; } - -inline void CVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { } - -inline void CVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { } - -inline su2double *CVariable::GetStress_FEM(void) { return NULL; } +inline su2double **CVariable::GetStress(void) { return NULL; } + +inline void CVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { } + +inline void CVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { } + +inline su2double *CVariable::GetStress_FEM(void) { return NULL; } inline void CVariable::SetVonMises_Stress(su2double val_stress) { } @@ -69,32 +69,32 @@ inline void CVariable::Upgrade_Connectivity(void) { } inline unsigned short CVariable::Get_Connectivity(void) { return 0; } -inline void CVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { } - -inline su2double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} - -inline su2double CVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return 0.0;} - -inline void CVariable::Clear_SurfaceLoad_Res(void) { } - -inline void CVariable::Set_SurfaceLoad_Res_n(void) { } - -inline su2double CVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) { return 0.0;} - -inline void CVariable::Set_FlowTraction(su2double *val_flowTraction) { } - -inline void CVariable::Add_FlowTraction(su2double *val_flowTraction) { } - -inline su2double *CVariable::Get_FlowTraction(void) {return NULL;} - -inline su2double CVariable::Get_FlowTraction(unsigned short iVar) {return 0.0;} - -inline void CVariable::Clear_FlowTraction(void) { } - -inline void CVariable::Set_FlowTraction_n(void) { } - -inline su2double CVariable::Get_FlowTraction_n(unsigned short iVar) { return 0.0; } - +inline void CVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { } + +inline su2double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} + +inline su2double CVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return 0.0;} + +inline void CVariable::Clear_SurfaceLoad_Res(void) { } + +inline void CVariable::Set_SurfaceLoad_Res_n(void) { } + +inline su2double CVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) { return 0.0;} + +inline void CVariable::Set_FlowTraction(su2double *val_flowTraction) { } + +inline void CVariable::Add_FlowTraction(su2double *val_flowTraction) { } + +inline su2double *CVariable::Get_FlowTraction(void) {return NULL;} + +inline su2double CVariable::Get_FlowTraction(unsigned short iVar) {return 0.0;} + +inline void CVariable::Clear_FlowTraction(void) { } + +inline void CVariable::Set_FlowTraction_n(void) { } + +inline su2double CVariable::Get_FlowTraction_n(unsigned short iVar) { return 0.0; } + inline su2double CVariable::GetBetaInc2(void) { return 0; } inline su2double CVariable::GetDiffLevelSet(void) { return 0; } @@ -113,8 +113,8 @@ inline su2double CVariable::GetNon_Physical(void) { return su2double(Non_Physica inline void CVariable::SetSolution(unsigned short val_var, su2double val_solution) { Solution[val_var] = val_solution; } -inline void CVariable::Add_DeltaSolution(unsigned short val_var, su2double val_solution) { Solution[val_var] += val_solution; } - +inline void CVariable::Add_DeltaSolution(unsigned short val_var, su2double val_solution) { Solution[val_var] += val_solution; } + inline void CVariable::SetUndivided_Laplacian(unsigned short val_var, su2double val_undivided_laplacian) { Undivided_Laplacian[val_var] = val_undivided_laplacian; } inline void CVariable::SetAuxVar(su2double val_auxvar) { AuxVar = val_auxvar; } @@ -577,8 +577,8 @@ inline su2double CVariable::GetSolution_Accel_time_n(unsigned short val_var) { r inline su2double *CVariable::GetSolution_Accel_time_n(void) { return NULL; } -inline void CVariable::SetSolution_Pred(unsigned short val_var, su2double val_solution_pred){ } - +inline void CVariable::SetSolution_Pred(unsigned short val_var, su2double val_solution_pred){ } + inline void CVariable::SetSolution_Pred(su2double *val_solution_pred){ } inline void CVariable::SetSolution_Pred(void){ } @@ -586,8 +586,8 @@ inline void CVariable::SetSolution_Pred(void){ } inline su2double CVariable::GetSolution_Pred(unsigned short val_var){ return 0.0; } inline su2double *CVariable::GetSolution_Pred(void){ return NULL; } - -inline void CVariable::SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old){ } + +inline void CVariable::SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old){ } inline void CVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ } @@ -878,143 +878,143 @@ inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } -inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] = val_stress; } - -inline void CFEM_ElasVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] += val_stress; } - -inline su2double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } - -inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Residual_Ext_Surf[iVar] += val_surfForce[iVar]; -} - -inline su2double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} - -inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return Residual_Ext_Surf[iVar];} - -inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; -} - -inline void CFEM_ElasVariable::Set_SurfaceLoad_Res_n(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf_n[iVar] = Residual_Ext_Surf[iVar]; -} - -inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) {return Residual_Ext_Surf_n[iVar];} - -inline void CFEM_ElasVariable::Set_FlowTraction(su2double *val_flowTraction) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) - FlowTraction[iVar] = val_flowTraction[iVar]; -} - -inline void CFEM_ElasVariable::Add_FlowTraction(su2double *val_flowTraction) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) - FlowTraction[iVar] += val_flowTraction[iVar]; -} - -inline su2double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} - -inline su2double CFEM_ElasVariable::Get_FlowTraction(unsigned short iVar) {return FlowTraction[iVar];} - -inline void CFEM_ElasVariable::Clear_FlowTraction(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = 0.0; -} - -inline void CFEM_ElasVariable::Set_FlowTraction_n(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction_n[iVar] = FlowTraction[iVar]; -} - -inline su2double CFEM_ElasVariable::Get_FlowTraction_n(unsigned short iVar) {return FlowTraction_n[iVar];} - -inline void CFEM_ElasVariable::SetSolution_time_n(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = Solution[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_time_n(su2double *val_solution_time_n) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; +inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] = val_stress; } + +inline void CFEM_ElasVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] += val_stress; } + +inline su2double *CFEM_ElasVariable::GetStress_FEM(void) { return Stress; } + +inline void CFEM_ElasVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + Residual_Ext_Surf[iVar] += val_surfForce[iVar]; +} + +inline su2double *CFEM_ElasVariable::Get_SurfaceLoad_Res(void) {return Residual_Ext_Surf;} + +inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res(unsigned short iVar) {return Residual_Ext_Surf[iVar];} + +inline void CFEM_ElasVariable::Clear_SurfaceLoad_Res(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf[iVar] = 0.0; +} + +inline void CFEM_ElasVariable::Set_SurfaceLoad_Res_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Surf_n[iVar] = Residual_Ext_Surf[iVar]; +} + +inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) {return Residual_Ext_Surf_n[iVar];} + +inline void CFEM_ElasVariable::Set_FlowTraction(su2double *val_flowTraction) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + FlowTraction[iVar] = val_flowTraction[iVar]; +} + +inline void CFEM_ElasVariable::Add_FlowTraction(su2double *val_flowTraction) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + FlowTraction[iVar] += val_flowTraction[iVar]; +} + +inline su2double *CFEM_ElasVariable::Get_FlowTraction(void) {return FlowTraction;} + +inline su2double CFEM_ElasVariable::Get_FlowTraction(unsigned short iVar) {return FlowTraction[iVar];} + +inline void CFEM_ElasVariable::Clear_FlowTraction(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = 0.0; +} + +inline void CFEM_ElasVariable::Set_FlowTraction_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction_n[iVar] = FlowTraction[iVar]; +} + +inline su2double CFEM_ElasVariable::Get_FlowTraction_n(unsigned short iVar) {return FlowTraction_n[iVar];} + +inline void CFEM_ElasVariable::SetSolution_time_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = Solution[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_time_n(su2double *val_solution_time_n) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_time_n[iVar] = val_solution_time_n[iVar]; } inline void CFEM_ElasVariable::SetSolution_time_n(unsigned short val_var, su2double val_solution_time_n) { Solution_time_n[val_var] = val_solution_time_n; } - -inline void CFEM_ElasVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } - -inline void CFEM_ElasVariable::SetSolution_Vel(su2double *val_solution_vel) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel[iVar] = val_solution_vel[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } - -inline void CFEM_ElasVariable::SetSolution_Vel_time_n(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = Solution_Vel[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Vel_time_n(su2double *val_solution_vel_time_n) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = val_solution_vel_time_n[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } - -inline void CFEM_ElasVariable::SetSolution_Accel(su2double *val_solution_accel) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel[iVar] = val_solution_accel[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } - -inline void CFEM_ElasVariable::SetSolution_Accel_time_n(void) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = Solution_Accel[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Accel_time_n(su2double *val_solution_accel_time_n) { - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Pred(unsigned short val_var, su2double val_solution_pred){ Solution_Pred[val_var] = val_solution_pred; } - -inline void CFEM_ElasVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } - -inline void CFEM_ElasVariable::SetSolution_Pred(void){ - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; -} - -inline void CFEM_ElasVariable::SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old){ Solution_Pred_Old[val_var] = val_solution_pred_old; } - -inline void CFEM_ElasVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } - -inline void CFEM_ElasVariable::SetSolution_Pred_Old(void){ - for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred_Old[iVar] = Solution_Pred[iVar]; -} - - -inline su2double CFEM_ElasVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } - -inline su2double *CFEM_ElasVariable::GetSolution_Vel(void) { return Solution_Vel; } - -inline su2double CFEM_ElasVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } - -inline su2double *CFEM_ElasVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } - -inline su2double CFEM_ElasVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } - -inline su2double *CFEM_ElasVariable::GetSolution_Accel(void) { return Solution_Accel; } - -inline su2double CFEM_ElasVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } - -inline su2double *CFEM_ElasVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } - -inline su2double CFEM_ElasVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } - -inline su2double *CFEM_ElasVariable::GetSolution_Pred(void){ return Solution_Pred; } - -inline su2double CFEM_ElasVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } - -inline su2double *CFEM_ElasVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } - -inline su2double CFEM_ElasVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } - -inline void CFEM_ElasVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } - -inline su2double CFEM_ElasVariable::GetVonMises_Stress(void) { return VonMises_Stress; } + +inline void CFEM_ElasVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } + +inline void CFEM_ElasVariable::SetSolution_Vel(su2double *val_solution_vel) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel[iVar] = val_solution_vel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } + +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = Solution_Vel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Vel_time_n(su2double *val_solution_vel_time_n) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Vel_time_n[iVar] = val_solution_vel_time_n[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } + +inline void CFEM_ElasVariable::SetSolution_Accel(su2double *val_solution_accel) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel[iVar] = val_solution_accel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } + +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = Solution_Accel[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Accel_time_n(su2double *val_solution_accel_time_n) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Pred(unsigned short val_var, su2double val_solution_pred){ Solution_Pred[val_var] = val_solution_pred; } + +inline void CFEM_ElasVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } + +inline void CFEM_ElasVariable::SetSolution_Pred(void){ + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred[iVar] = Solution[iVar]; +} + +inline void CFEM_ElasVariable::SetSolution_Pred_Old(unsigned short val_var, su2double val_solution_pred_old){ Solution_Pred_Old[val_var] = val_solution_pred_old; } + +inline void CFEM_ElasVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } + +inline void CFEM_ElasVariable::SetSolution_Pred_Old(void){ + for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Pred_Old[iVar] = Solution_Pred[iVar]; +} + + +inline su2double CFEM_ElasVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } + +inline su2double *CFEM_ElasVariable::GetSolution_Vel(void) { return Solution_Vel; } + +inline su2double CFEM_ElasVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } + +inline su2double *CFEM_ElasVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } + +inline su2double CFEM_ElasVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } + +inline su2double *CFEM_ElasVariable::GetSolution_Accel(void) { return Solution_Accel; } + +inline su2double CFEM_ElasVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } + +inline su2double *CFEM_ElasVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } + +inline su2double CFEM_ElasVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } + +inline su2double *CFEM_ElasVariable::GetSolution_Pred(void){ return Solution_Pred; } + +inline su2double CFEM_ElasVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } + +inline su2double *CFEM_ElasVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } + +inline su2double CFEM_ElasVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } + +inline void CFEM_ElasVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } + +inline su2double CFEM_ElasVariable::GetVonMises_Stress(void) { return VonMises_Stress; } inline void CFEABoundVariable::SetTraction(unsigned short iVar, unsigned short jVar, su2double val_traction) { Traction[iVar][jVar] = val_traction; } diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index efda632f66c..f31efae756e 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index d070775a0bd..4c09c740c0c 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 679606ebb46..d8e14a88da9 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index f1845b30ea9..62d1d7681e6 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -193,19 +193,19 @@ void Driver_Preprocessing(CDriver **driver, CGeometry ***geometry_container, CIntegration ***integration_container, CNumerics *****numerics_container, - CInterpolator ***interpolator_container, - CTransfer ***transfer_container, + CInterpolator ***interpolator_container, + CTransfer ***transfer_container, CConfig **config_container, - unsigned short val_nZone, - unsigned short val_nDim) { + unsigned short val_nZone, + unsigned short val_nDim) { int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif - /*--- fsi implementations will use, as of now, BGS implentation. More to come. ---*/ - bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); + /*--- fsi implementations will use, as of now, BGS implentation. More to come. ---*/ + bool fsi = config_container[ZONE_0]->GetFSI_Simulation(); if (val_nZone == SINGLE_ZONE) { @@ -213,8 +213,8 @@ void Driver_Preprocessing(CDriver **driver, if (rank == MASTER_NODE) cout << "Instantiating a single zone driver for the problem. " << endl; *driver = new CSingleZoneDriver(iteration_container, solver_container, geometry_container, - integration_container, numerics_container, interpolator_container, - transfer_container, config_container, val_nZone, val_nDim); + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); } else if (config_container[ZONE_0]->GetUnsteady_Simulation() == TIME_SPECTRAL) { @@ -222,17 +222,17 @@ void Driver_Preprocessing(CDriver **driver, if (rank == MASTER_NODE) cout << "Instantiating a spectral method driver for the problem. " << endl; *driver = new CSpectralDriver(iteration_container, solver_container, geometry_container, - integration_container, numerics_container, interpolator_container, - transfer_container, config_container, val_nZone, val_nDim); - - } else if ((val_nZone == 2) && fsi) { - - /*--- FSI problem: instantiate the FSI driver class. ---*/ - - if (rank == MASTER_NODE) cout << "Instantiating a Fluid-Structure Interaction driver for the problem. " << endl; - *driver = new CFSIDriver(iteration_container, solver_container, geometry_container, - integration_container, numerics_container, interpolator_container, - transfer_container, config_container, val_nZone, val_nDim); + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); + + } else if ((val_nZone == 2) && fsi) { + + /*--- FSI problem: instantiate the FSI driver class. ---*/ + + if (rank == MASTER_NODE) cout << "Instantiating a Fluid-Structure Interaction driver for the problem. " << endl; + *driver = new CFSIDriver(iteration_container, solver_container, geometry_container, + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); } else { @@ -241,8 +241,8 @@ void Driver_Preprocessing(CDriver **driver, if (rank == MASTER_NODE) cout << "Instantiating a multi-zone driver for the problem. " << endl; *driver = new CMultiZoneDriver(iteration_container, solver_container, geometry_container, - integration_container, numerics_container, interpolator_container, - transfer_container, config_container, val_nZone, val_nDim); + integration_container, numerics_container, interpolator_container, + transfer_container, config_container, val_nZone, val_nDim); /*--- Future multi-zone drivers instatiated here. ---*/ diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index daa49552a3f..ac52c99be14 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid_model.cpp b/SU2_CFD/src/fluid_model.cpp index bbdcb6e2d7d..f0b72f1916d 100644 --- a/SU2_CFD/src/fluid_model.cpp +++ b/SU2_CFD/src/fluid_model.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid_model_pig.cpp b/SU2_CFD/src/fluid_model_pig.cpp index f2191cb543a..82fc38a9f2f 100644 --- a/SU2_CFD/src/fluid_model_pig.cpp +++ b/SU2_CFD/src/fluid_model_pig.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid_model_ppr.cpp b/SU2_CFD/src/fluid_model_ppr.cpp index a291c7f1b85..2d0c781d2ac 100644 --- a/SU2_CFD/src/fluid_model_ppr.cpp +++ b/SU2_CFD/src/fluid_model_ppr.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid_model_pvdw.cpp b/SU2_CFD/src/fluid_model_pvdw.cpp index 05c45ba89da..3a3d6c4f903 100644 --- a/SU2_CFD/src/fluid_model_pvdw.cpp +++ b/SU2_CFD/src/fluid_model_pvdw.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 4e6ce90f5a5..82e621a5aaf 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index 658223e6c61..8ba37ef912d 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -933,40 +933,40 @@ void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver /*--- Convergence strategy ---*/ Convergence_Monitoring(geometry[iZone][MESH_0], config[iZone], Iteration, monitor, MESH_0); - -} - -void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, - CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { -// su2double monitor = 0.0; - - unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); - - /*--- Preprocessing ---*/ - - solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); - - /*--- Space integration ---*/ - - Space_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], - config[iZone], RunTime_EqSystem, Iteration); - - /*--- Time integration ---*/ - - Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], - config[iZone], RunTime_EqSystem, Iteration); - - /*--- Postprocessing ---*/ - - solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); - -// /*--- Compute adimensional parameters and the convergence monitor ---*/ -// -// monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); - - /*--- Convergence strategy ---*/ - Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); + +} + +void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, + CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { +// su2double monitor = 0.0; + + unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); + + /*--- Preprocessing ---*/ + + solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); + + /*--- Space integration ---*/ + + Space_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], + config[iZone], RunTime_EqSystem, Iteration); + + /*--- Time integration ---*/ + + Time_Integration_FEM(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], + config[iZone], RunTime_EqSystem, Iteration); + + /*--- Postprocessing ---*/ + + solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], + config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); + +// /*--- Compute adimensional parameters and the convergence monitor ---*/ +// +// monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); + + /*--- Convergence strategy ---*/ + Convergence_Monitoring_FEM(geometry[iZone][MESH_0], config[iZone], solver_container[iZone][MESH_0][SolContainer_Position], Iteration); } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 60d2b52303c..bad99fc499c 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -84,13 +84,13 @@ void CMeanFlowIteration::Preprocess(COutput *output, CFreeFormDefBox*** FFDBox, unsigned short val_iZone) { - unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); + unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); bool fsi = config_container[val_iZone]->GetFSI_Simulation(); - unsigned long FSIIter = config_container[val_iZone]->GetFSIIter(); + unsigned long FSIIter = config_container[val_iZone]->GetFSIIter(); - bool time_spectral = (config_container[val_iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL); + bool time_spectral = (config_container[val_iZone]->GetUnsteady_Simulation() == TIME_SPECTRAL); /*--- Set the initial condition ---*/ /*--- For FSI problems with subiterations, this must only be done in the first subiteration ---*/ @@ -105,7 +105,7 @@ void CMeanFlowIteration::Preprocess(COutput *output, /*--- Apply a Wind Gust ---*/ - if (config_container[val_iZone]->GetWind_Gust()) { + if (config_container[val_iZone]->GetWind_Gust()) { SetWind_GustField(config_container[val_iZone], geometry_container[val_iZone], solver_container[val_iZone]); } @@ -132,8 +132,8 @@ void CMeanFlowIteration::Iterate(COutput *output, CFreeFormDefBox*** FFDBox, unsigned short val_iZone) { - unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); #ifdef HAVE_MPI int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -272,8 +272,8 @@ void CMeanFlowIteration::Update(COutput *output, unsigned short iMesh; su2double Physical_dt, Physical_t; - unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); - + unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + /*--- Dual time stepping strategy ---*/ if ((config_container[val_iZone]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || @@ -906,310 +906,310 @@ void CFEAIteration::Output() { } void CFEAIteration::Postprocess() { } -CFEM_StructuralAnalysis::CFEM_StructuralAnalysis(CConfig *config) : CIteration(config) { } -CFEM_StructuralAnalysis::~CFEM_StructuralAnalysis(void) { } -void CFEM_StructuralAnalysis::Preprocess() { } -void CFEM_StructuralAnalysis::Iterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone - ) { - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - su2double loadIncrement; - unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); - - bool fsi = config_container[val_iZone]->GetFSI_Simulation(); - - unsigned long iIncrement; - unsigned long nIncrements = config_container[val_iZone]->GetNumberIncrements(); - - bool nonlinear = (config_container[val_iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool linear = (config_container[val_iZone]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems - - bool initial_calc = config_container[val_iZone]->GetExtIter() == 0; // Checks if it is the first calculation. - bool first_iter = config_container[val_iZone]->GetIntIter() == 0; // Checks if it is the first iteration - bool restart = config_container[val_iZone]->GetRestart(); // Restart analysis - bool initial_calc_restart = (SU2_TYPE::Int(config_container[val_iZone]->GetExtIter()) == config_container[val_iZone]->GetDyn_RestartIter()); // Initial calculation for restart - - su2double CurrentTime = config_container[val_iZone]->GetCurrent_DynTime(); - su2double Static_Time = config_container[val_iZone]->GetStatic_Time(); - - bool statTime = (CurrentTime <= Static_Time); - - bool incremental_load = config_container[val_iZone]->GetIncrementalLoad(); // If an incremental load is applied - - /*--- This is to prevent problems when running a linear solver ---*/ - if (!nonlinear) incremental_load = false; - - /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ - integration_container[val_iZone][FEA_SOL]->SetConvergence(false); - - if (linear){ - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - /*--- FEA equations ---*/ - - config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - } - /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ - else if ((nonlinear) && ((!statTime) || (!fsi))){ - - /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - - if (!incremental_load){ - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[val_iZone]->GetDyn_nIntIter(); IntIter++){ - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); - - config_container[val_iZone]->SetIntIter(IntIter); - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; - - } - - } - /*--- The incremental load is only used in nonlinear cases ---*/ - else if (incremental_load){ - - /*--- Set the initial condition: store the current solution as Solution_Old ---*/ - - solver_container[val_iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); - - /*--- The load increment is 1.0 ---*/ - loadIncrement = 1.0; - solver_container[val_iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the first iteration ---*/ - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); - - /*--- Run the second iteration ---*/ - - IntIter = 1; - - config_container[val_iZone]->SetIntIter(IntIter); - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - - bool meetCriteria; - su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; - su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; - - Criteria_UTOL = config_container[val_iZone]->GetIncLoad_Criteria(0); - Criteria_RTOL = config_container[val_iZone]->GetIncLoad_Criteria(1); - Criteria_ETOL = config_container[val_iZone]->GetIncLoad_Criteria(2); - - Residual_UTOL = log10(solver_container[val_iZone][MESH_0][FEA_SOL]->GetRes_FEM(0)); - Residual_RTOL = log10(solver_container[val_iZone][MESH_0][FEA_SOL]->GetRes_FEM(1)); - Residual_ETOL = log10(solver_container[val_iZone][MESH_0][FEA_SOL]->GetRes_FEM(2)); - - meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && - ( Residual_RTOL < Criteria_RTOL ) && - ( Residual_ETOL < Criteria_ETOL ) ); - - /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ - if (meetCriteria){ - - for (IntIter = 2; IntIter < config_container[val_iZone]->GetDyn_nIntIter(); IntIter++){ - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); - - config_container[val_iZone]->SetIntIter(IntIter); - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; - - } - - } - - /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ - - else { - - /*--- Here we have to restart the solution to the original one of the iteration ---*/ - /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ - - solver_container[val_iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); - - /*--- For the number of increments ---*/ - for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ - - loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); - - /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ - - /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ - integration_container[val_iZone][FEA_SOL]->SetConvergence(false); - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); - - /*--- FEA equations ---*/ - - config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - - solver_container[val_iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - if (rank == MASTER_NODE){ - cout << endl; - cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; - } - - /*--- Set the value of the internal iteration ---*/ - IntIter = 0; - config_container[val_iZone]->SetIntIter(IntIter); - - /*--- FEA equations ---*/ - - config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[val_iZone]->GetDyn_nIntIter(); IntIter++){ - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); - - config_container[val_iZone]->SetIntIter(IntIter); - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; - - } - - } - - } - - } - - - } +CFEM_StructuralAnalysis::CFEM_StructuralAnalysis(CConfig *config) : CIteration(config) { } +CFEM_StructuralAnalysis::~CFEM_StructuralAnalysis(void) { } +void CFEM_StructuralAnalysis::Preprocess() { } +void CFEM_StructuralAnalysis::Iterate(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short val_iZone + ) { + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + su2double loadIncrement; + unsigned long IntIter = 0; config_container[val_iZone]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + + bool fsi = config_container[val_iZone]->GetFSI_Simulation(); + + unsigned long iIncrement; + unsigned long nIncrements = config_container[val_iZone]->GetNumberIncrements(); + + bool nonlinear = (config_container[val_iZone]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool linear = (config_container[val_iZone]->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically non-linear problems + + bool initial_calc = config_container[val_iZone]->GetExtIter() == 0; // Checks if it is the first calculation. + bool first_iter = config_container[val_iZone]->GetIntIter() == 0; // Checks if it is the first iteration + bool restart = config_container[val_iZone]->GetRestart(); // Restart analysis + bool initial_calc_restart = (SU2_TYPE::Int(config_container[val_iZone]->GetExtIter()) == config_container[val_iZone]->GetDyn_RestartIter()); // Initial calculation for restart + + su2double CurrentTime = config_container[val_iZone]->GetCurrent_DynTime(); + su2double Static_Time = config_container[val_iZone]->GetStatic_Time(); + + bool statTime = (CurrentTime <= Static_Time); + + bool incremental_load = config_container[val_iZone]->GetIncrementalLoad(); // If an incremental load is applied + + /*--- This is to prevent problems when running a linear solver ---*/ + if (!nonlinear) incremental_load = false; + + /*--- Set the convergence monitor to false, to prevent the solver to stop in intermediate FSI subiterations ---*/ + integration_container[val_iZone][FEA_SOL]->SetConvergence(false); + + if (linear){ + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + + /*--- FEA equations ---*/ + + config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + } + /*--- If the structure is held static and the solver is nonlinear, we don't need to solve for static time, but we need to compute Mass Matrix and Integration constants ---*/ + else if ((nonlinear) && ((!statTime) || (!fsi))){ + + /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ + + if (!incremental_load){ + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[val_iZone]->GetDyn_nIntIter(); IntIter++){ + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); + + config_container[val_iZone]->SetIntIter(IntIter); + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; + + } + + } + /*--- The incremental load is only used in nonlinear cases ---*/ + else if (incremental_load){ + + /*--- Set the initial condition: store the current solution as Solution_Old ---*/ + + solver_container[val_iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); + + /*--- The load increment is 1.0 ---*/ + loadIncrement = 1.0; + solver_container[val_iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the first iteration ---*/ + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); + + /*--- Run the second iteration ---*/ + + IntIter = 1; + + config_container[val_iZone]->SetIntIter(IntIter); + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + + bool meetCriteria; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + + Criteria_UTOL = config_container[val_iZone]->GetIncLoad_Criteria(0); + Criteria_RTOL = config_container[val_iZone]->GetIncLoad_Criteria(1); + Criteria_ETOL = config_container[val_iZone]->GetIncLoad_Criteria(2); + + Residual_UTOL = log10(solver_container[val_iZone][MESH_0][FEA_SOL]->GetRes_FEM(0)); + Residual_RTOL = log10(solver_container[val_iZone][MESH_0][FEA_SOL]->GetRes_FEM(1)); + Residual_ETOL = log10(solver_container[val_iZone][MESH_0][FEA_SOL]->GetRes_FEM(2)); + + meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); + + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ + if (meetCriteria){ + + for (IntIter = 2; IntIter < config_container[val_iZone]->GetDyn_nIntIter(); IntIter++){ + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); + + config_container[val_iZone]->SetIntIter(IntIter); + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; + + } + + } + + /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ + + else { + + /*--- Here we have to restart the solution to the original one of the iteration ---*/ + /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ + + solver_container[val_iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); + + /*--- For the number of increments ---*/ + for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ + + loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); + + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ + + /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ + integration_container[val_iZone][FEA_SOL]->SetConvergence(false); + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); + + /*--- FEA equations ---*/ + + config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + + solver_container[val_iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + + if (rank == MASTER_NODE){ + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + } + + /*--- Set the value of the internal iteration ---*/ + IntIter = 0; + config_container[val_iZone]->SetIntIter(IntIter); + + /*--- FEA equations ---*/ + + config_container[val_iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[val_iZone]->GetDyn_nIntIter(); IntIter++){ + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, val_iZone); + + config_container[val_iZone]->SetIntIter(IntIter); + + integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); + + if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; + + } + + } + + } + + } + + + } else if ( - (nonlinear && statTime) && - ((first_iter && initial_calc) || (restart && initial_calc_restart)) - ){ - - /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ - solver_container[val_iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], - config_container[val_iZone], numerics_container[val_iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); - - } - -} - -void CFEM_StructuralAnalysis::Update(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone){ - - su2double Physical_dt, Physical_t; - unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); - bool dynamic = (config_container[val_iZone]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems - - /*----------------- Compute averaged nodal stress and reactions ------------------------*/ - - solver_container[val_iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], numerics_container[val_iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[val_iZone]); - - /*----------------- Update structural solver ----------------------*/ - - if (dynamic){ - integration_container[val_iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], config_container[val_iZone], MESH_0); - integration_container[val_iZone][FEA_SOL]->SetConvergence(false); - - /*--- Verify convergence criteria (based on total time) ---*/ - - Physical_dt = config_container[val_iZone]->GetDelta_DynTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[val_iZone]->GetTotal_DynTime()) - integration_container[val_iZone][FEA_SOL]->SetConvergence(true); - } - -} -void CFEM_StructuralAnalysis::Monitor() { } -void CFEM_StructuralAnalysis::Output() { } -void CFEM_StructuralAnalysis::Postprocess() { } - - + (nonlinear && statTime) && + ((first_iter && initial_calc) || (restart && initial_calc_restart)) + ){ + + /*--- We need to do the preprocessing to compute the Mass Matrix and integration constants ---*/ + solver_container[val_iZone][MESH_0][FEA_SOL]->Preprocessing(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], + config_container[val_iZone], numerics_container[val_iZone][MESH_0][FEA_SOL], MESH_0, 0, RUNTIME_FEA_SYS, false); + + } + +} + +void CFEM_StructuralAnalysis::Update(COutput *output, + CIntegration ***integration_container, + CGeometry ***geometry_container, + CSolver ****solver_container, + CNumerics *****numerics_container, + CConfig **config_container, + CSurfaceMovement **surface_movement, + CVolumetricMovement **grid_movement, + CFreeFormDefBox*** FFDBox, + unsigned short val_iZone){ + + su2double Physical_dt, Physical_t; + unsigned long ExtIter = config_container[val_iZone]->GetExtIter(); + bool dynamic = (config_container[val_iZone]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + + /*----------------- Compute averaged nodal stress and reactions ------------------------*/ + + solver_container[val_iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], numerics_container[val_iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[val_iZone]); + + /*----------------- Update structural solver ----------------------*/ + + if (dynamic){ + integration_container[val_iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], config_container[val_iZone], MESH_0); + integration_container[val_iZone][FEA_SOL]->SetConvergence(false); + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[val_iZone]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[val_iZone]->GetTotal_DynTime()) + integration_container[val_iZone][FEA_SOL]->SetConvergence(true); + } + +} +void CFEM_StructuralAnalysis::Monitor() { } +void CFEM_StructuralAnalysis::Output() { } +void CFEM_StructuralAnalysis::Postprocess() { } + + CAdjMeanFlowIteration::CAdjMeanFlowIteration(CConfig *config) : CIteration(config) { } CAdjMeanFlowIteration::~CAdjMeanFlowIteration(void) { } void CAdjMeanFlowIteration::Preprocess(COutput *output, @@ -1742,278 +1742,278 @@ void CDiscAdjMeanFlowIteration::Monitor() { } void CDiscAdjMeanFlowIteration::Output() { } void CDiscAdjMeanFlowIteration::Postprocess() { } -void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { - - su2double Physical_dt, Physical_t; - su2double loadIncrement; - unsigned short iZone; - unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - unsigned long iIncrement; - unsigned long nIncrements = config_container[ZONE_0]->GetNumberIncrements(); - - bool dynamic = (config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems - bool nonlinear = (config_container[ZONE_0]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - - bool incremental_load = config_container[ZONE_0]->GetIncrementalLoad(); // If an incremental load is applied - - /*--- This is to prevent problems when running a linear solver ---*/ - if (!nonlinear) incremental_load = false; - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - - /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ - - if (!incremental_load){ - - /*--- Set the initial condition ---*/ - -// for (iZone = 0; iZone < nZone; iZone++) -// solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - if (nonlinear) IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - - } - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - if (nonlinear){ - for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; - - } - - } - - } - /*--- The incremental load is only used in nonlinear cases ---*/ - else if (incremental_load){ - - /*--- Set the initial condition: store the current solution as Solution_Old ---*/ - - for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- The load increment is 1.0 ---*/ - loadIncrement = 1.0; - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - - /*--- Set the value of the internal iteration ---*/ - - IntIter = 0; - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the first iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*--- Run the second iteration ---*/ - - IntIter = 1; - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - bool meetCriteria; - su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; - su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; - - Criteria_UTOL = config_container[ZONE_0]->GetIncLoad_Criteria(0); - Criteria_RTOL = config_container[ZONE_0]->GetIncLoad_Criteria(1); - Criteria_ETOL = config_container[ZONE_0]->GetIncLoad_Criteria(2); - - Residual_UTOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(0)); - Residual_RTOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(1)); - Residual_ETOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(2)); - - meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && - ( Residual_RTOL < Criteria_RTOL ) && - ( Residual_ETOL < Criteria_ETOL ) ); - - /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ - if (meetCriteria){ - - for (IntIter = 2; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; - - } - - } - - /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ - - else { - - /*--- Here we have to restart the solution to the original one of the iteration ---*/ - /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ - - for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); - - /*--- For the number of increments ---*/ - for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ - - loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); - - /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ - - for (iZone = 0; iZone < nZone; iZone++){ - - /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ - integration_container[iZone][FEA_SOL]->SetConvergence(false); - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - - solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); - } - - if (rank == MASTER_NODE){ - cout << endl; - cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; - } - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Set the value of the internal iteration ---*/ - IntIter = 0; - config_container[iZone]->SetIntIter(IntIter); - - /*--- FEA equations ---*/ - - config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - - - } - - /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ - - for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ - - for (iZone = 0; iZone < nZone; iZone++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - config_container[iZone]->SetIntIter(IntIter); - - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, iZone); - - } - - if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; - - } - - } - - } - - } - - - - /*----------------- Compute averaged nodal stress and reactions ------------------------*/ - - for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); - - /*----------------- Update structural solver ----------------------*/ - - if (dynamic){ - for (iZone = 0; iZone < nZone; iZone++) { - integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], config_container[iZone], MESH_0); - integration_container[iZone][FEA_SOL]->SetConvergence(false); - } - - /*--- Verify convergence criteria (based on total time) ---*/ - - Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) - integration_container[ZONE_0][FEA_SOL]->SetConvergence(true); - } - - +void FEM_StructuralIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, + CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, + CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox) { + + su2double Physical_dt, Physical_t; + su2double loadIncrement; + unsigned short iZone; + unsigned short nZone = geometry_container[ZONE_0][MESH_0]->GetnZone(); + unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); + unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); + + unsigned long iIncrement; + unsigned long nIncrements = config_container[ZONE_0]->GetNumberIncrements(); + + bool dynamic = (config_container[ZONE_0]->GetDynamic_Analysis() == DYNAMIC); // Dynamic problems + bool nonlinear = (config_container[ZONE_0]->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + + bool incremental_load = config_container[ZONE_0]->GetIncrementalLoad(); // If an incremental load is applied + + /*--- This is to prevent problems when running a linear solver ---*/ + if (!nonlinear) incremental_load = false; + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + + /*--- THIS IS THE DIRECT APPROACH (NO INCREMENTAL LOAD APPLIED) ---*/ + + if (!incremental_load){ + + /*--- Set the initial condition ---*/ + +// for (iZone = 0; iZone < nZone; iZone++) +// solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + + IntIter = ExtIter; + if (nonlinear) IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + if (nonlinear){ + for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + + } + + } + + } + /*--- The incremental load is only used in nonlinear cases ---*/ + else if (incremental_load){ + + /*--- Set the initial condition: store the current solution as Solution_Old ---*/ + + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- The load increment is 1.0 ---*/ + loadIncrement = 1.0; + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + + /*--- Set the value of the internal iteration ---*/ + + IntIter = 0; + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the first iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*--- Run the second iteration ---*/ + + IntIter = 1; + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + bool meetCriteria; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + su2double Criteria_UTOL, Criteria_RTOL, Criteria_ETOL; + + Criteria_UTOL = config_container[ZONE_0]->GetIncLoad_Criteria(0); + Criteria_RTOL = config_container[ZONE_0]->GetIncLoad_Criteria(1); + Criteria_ETOL = config_container[ZONE_0]->GetIncLoad_Criteria(2); + + Residual_UTOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(0)); + Residual_RTOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(1)); + Residual_ETOL = log10(solver_container[ZONE_0][MESH_0][FEA_SOL]->GetRes_FEM(2)); + + meetCriteria = ( ( Residual_UTOL < Criteria_UTOL ) && + ( Residual_RTOL < Criteria_RTOL ) && + ( Residual_ETOL < Criteria_ETOL ) ); + + /*--- If the criteria is met and the load is not "too big", do the regular calculation ---*/ + if (meetCriteria){ + + for (IntIter = 2; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + + } + + } + + /*--- If the criteria is not met, a whole set of subiterations for the different loads must be done ---*/ + + else { + + /*--- Here we have to restart the solution to the original one of the iteration ---*/ + /*--- Retrieve the Solution_Old as the current solution before subiterating ---*/ + + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->ResetInitialCondition(geometry_container[iZone], solver_container[iZone], config_container[iZone], ExtIter); + + /*--- For the number of increments ---*/ + for (iIncrement = 0; iIncrement < nIncrements; iIncrement++){ + + loadIncrement = (iIncrement + 1.0) * (1.0 / nIncrements); + + /*--- Set the load increment and the initial condition, and output the parameters of UTOL, RTOL, ETOL for the previous iteration ---*/ + + for (iZone = 0; iZone < nZone; iZone++){ + + /*--- Set the convergence monitor to false, to force se solver to converge every subiteration ---*/ + integration_container[iZone][FEA_SOL]->SetConvergence(false); + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + + solver_container[iZone][MESH_0][FEA_SOL]->SetLoad_Increment(loadIncrement); + } + + if (rank == MASTER_NODE){ + cout << endl; + cout << "-- Incremental load: increment " << iIncrement + 1 << " ------------------------------------------" << endl; + } + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Set the value of the internal iteration ---*/ + IntIter = 0; + config_container[iZone]->SetIntIter(IntIter); + + /*--- FEA equations ---*/ + + config_container[iZone]->SetGlobalParam(FEM_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); + + /*--- Run the iteration ---*/ + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + + + } + + /*----------------- If the solver is non-linear, we need to subiterate using a Newton-Raphson approach ----------------------*/ + + for (IntIter = 1; IntIter < config_container[ZONE_0]->GetDyn_nIntIter(); IntIter++){ + + for (iZone = 0; iZone < nZone; iZone++) { + + /*--- Write the convergence history (only screen output) ---*/ + + output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); + + config_container[iZone]->SetIntIter(IntIter); + + integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + config_container, RUNTIME_FEA_SYS, IntIter, iZone); + + } + + if (integration_container[ZONE_0][FEA_SOL]->GetConvergence()) break; + + } + + } + + } + + } + + + + /*----------------- Compute averaged nodal stress and reactions ------------------------*/ + + for (iZone = 0; iZone < nZone; iZone++) + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); + + /*----------------- Update structural solver ----------------------*/ + + if (dynamic){ + for (iZone = 0; iZone < nZone; iZone++) { + integration_container[iZone][FEA_SOL]->SetFEM_StructuralSolver(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], config_container[iZone], MESH_0); + integration_container[iZone][FEA_SOL]->SetConvergence(false); + } + + /*--- Verify convergence criteria (based on total time) ---*/ + + Physical_dt = config_container[ZONE_0]->GetDelta_DynTime(); + Physical_t = (ExtIter+1)*Physical_dt; + if (Physical_t >= config_container[ZONE_0]->GetTotal_DynTime()) + integration_container[ZONE_0][FEA_SOL]->SetConvergence(true); + } + + } void FluidStructureIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, diff --git a/SU2_CFD/src/numerics_adjoint_levelset.cpp b/SU2_CFD/src/numerics_adjoint_levelset.cpp index bd917477cc7..7fd3def9416 100644 --- a/SU2_CFD/src/numerics_adjoint_levelset.cpp +++ b/SU2_CFD/src/numerics_adjoint_levelset.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_adjoint_mean.cpp b/SU2_CFD/src/numerics_adjoint_mean.cpp index c7920d1cb4d..03a18c36be5 100644 --- a/SU2_CFD/src/numerics_adjoint_mean.cpp +++ b/SU2_CFD/src/numerics_adjoint_mean.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_adjoint_turbulent.cpp b/SU2_CFD/src/numerics_adjoint_turbulent.cpp index b5460e8d1c2..5406d0c5884 100644 --- a/SU2_CFD/src/numerics_adjoint_turbulent.cpp +++ b/SU2_CFD/src/numerics_adjoint_turbulent.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index 4db16de3c59..29ec6c25ff6 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_heat.cpp b/SU2_CFD/src/numerics_direct_heat.cpp index 3c33ab64d8b..31147d41b7f 100644 --- a/SU2_CFD/src/numerics_direct_heat.cpp +++ b/SU2_CFD/src/numerics_direct_heat.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_mean.cpp b/SU2_CFD/src/numerics_direct_mean.cpp index 97ed98a88a3..affccc66e4c 100644 --- a/SU2_CFD/src/numerics_direct_mean.cpp +++ b/SU2_CFD/src/numerics_direct_mean.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_poisson.cpp b/SU2_CFD/src/numerics_direct_poisson.cpp index d528a2b7ab0..b41414426fc 100644 --- a/SU2_CFD/src/numerics_direct_poisson.cpp +++ b/SU2_CFD/src/numerics_direct_poisson.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_transition.cpp b/SU2_CFD/src/numerics_direct_transition.cpp index d87ec87fb8c..dcf333582cb 100644 --- a/SU2_CFD/src/numerics_direct_transition.cpp +++ b/SU2_CFD/src/numerics_direct_transition.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_turbulent.cpp b/SU2_CFD/src/numerics_direct_turbulent.cpp index f04eb3e62f7..0b84e957716 100644 --- a/SU2_CFD/src/numerics_direct_turbulent.cpp +++ b/SU2_CFD/src/numerics_direct_turbulent.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_direct_wave.cpp b/SU2_CFD/src/numerics_direct_wave.cpp index 01aa4fd7cdc..48d5f68bec2 100644 --- a/SU2_CFD/src/numerics_direct_wave.cpp +++ b/SU2_CFD/src/numerics_direct_wave.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_structure.cpp b/SU2_CFD/src/numerics_structure.cpp index 0aa4f1833bb..49393307346 100644 --- a/SU2_CFD/src/numerics_structure.cpp +++ b/SU2_CFD/src/numerics_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics_template.cpp b/SU2_CFD/src/numerics_template.cpp index e8555af2102..ce6fb0e2a24 100644 --- a/SU2_CFD/src/numerics_template.cpp +++ b/SU2_CFD/src/numerics_template.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output_cgns.cpp b/SU2_CFD/src/output_cgns.cpp index 37c46cfc542..cbabe6046f7 100644 --- a/SU2_CFD/src/output_cgns.cpp +++ b/SU2_CFD/src/output_cgns.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output_fieldview.cpp b/SU2_CFD/src/output_fieldview.cpp index 31a56d768b0..55fadf3596d 100644 --- a/SU2_CFD/src/output_fieldview.cpp +++ b/SU2_CFD/src/output_fieldview.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index ad7ab36201d..3ae68882c21 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index fdd375c851f..186c9f9c3d9 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -1842,7 +1842,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv unsigned short nVar_First = 0, nVar_Second = 0, nVar_Third = 0; unsigned short iVar_GridVel = 0, iVar_PressCp = 0, iVar_Density = 0, iVar_Lam = 0, iVar_MachMean = 0, iVar_ViscCoeffs = 0, iVar_Sens = 0, iVar_Extra = 0, iVar_Eddy = 0, iVar_Sharp = 0, - iVar_FEA_Vel = 0, iVar_FEA_Accel = 0, iVar_FEA_Stress = 0, iVar_FEA_Stress_3D = 0, + iVar_FEA_Vel = 0, iVar_FEA_Accel = 0, iVar_FEA_Stress = 0, iVar_FEA_Stress_3D = 0, iVar_FEA_Extra = 0, iVar_SensDim = 0; unsigned long iPoint = 0, jPoint = 0, iVertex = 0, iMarker = 0; su2double Gas_Constant, Mach2Vel, Mach_Motion, RefDensity, RefPressure = 0.0, factor = 0.0; @@ -1876,7 +1876,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv ( config->GetKind_Solver() == ADJ_EULER ) || ( config->GetKind_Solver() == ADJ_NAVIER_STOKES ) || ( config->GetKind_Solver() == ADJ_RANS ) ); - bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); unsigned short iDim; unsigned short nDim = geometry->GetnDim(); @@ -1913,7 +1913,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv case WAVE_EQUATION: FirstIndex = WAVE_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case HEAT_EQUATION: FirstIndex = HEAT_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case LINEAR_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; - case FEM_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; + case FEM_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_EULER : case ADJ_NAVIER_STOKES : FirstIndex = ADJFLOW_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_RANS : FirstIndex = ADJFLOW_SOL; if (config->GetFrozen_Visc()) SecondIndex = NONE; else SecondIndex = ADJTURB_SOL; ThirdIndex = NONE; break; case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: FirstIndex = ADJFLOW_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; @@ -1939,7 +1939,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Add the grid velocity to the restart file for the unsteady adjoint ---*/ - if (grid_movement && !fem) { + if (grid_movement && !fem) { iVar_GridVel = nVar_Total; if (geometry->GetnDim() == 2) nVar_Total += 2; else if (geometry->GetnDim() == 3) nVar_Total += 3; @@ -1988,27 +1988,27 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv iVar_Sens = nVar_Total; nVar_Total += 2; } - if (Kind_Solver == LINEAR_ELASTICITY) { + if (Kind_Solver == LINEAR_ELASTICITY) { iVar_FEA_Stress = nVar_Total; nVar_Total += 3; if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} iVar_FEA_Extra = nVar_Total; nVar_Total += 2; - } - - if (Kind_Solver == FEM_ELASTICITY) { - /*--- If the analysis is dynamic... ---*/ - if (config->GetDynamic_Analysis() == DYNAMIC){ - /*--- Velocities ---*/ - iVar_FEA_Vel = nVar_Total; - if (geometry->GetnDim() == 2) nVar_Total += 2; - else if (geometry->GetnDim() == 3) nVar_Total += 3; - /*--- Accelerations ---*/ - iVar_FEA_Accel = nVar_Total; - if (geometry->GetnDim() == 2) nVar_Total += 2; - else if (geometry->GetnDim() == 3) nVar_Total += 3; - } - iVar_FEA_Stress = nVar_Total; nVar_Total += 3; - if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} - iVar_FEA_Extra = nVar_Total; nVar_Total += 1; + } + + if (Kind_Solver == FEM_ELASTICITY) { + /*--- If the analysis is dynamic... ---*/ + if (config->GetDynamic_Analysis() == DYNAMIC){ + /*--- Velocities ---*/ + iVar_FEA_Vel = nVar_Total; + if (geometry->GetnDim() == 2) nVar_Total += 2; + else if (geometry->GetnDim() == 3) nVar_Total += 3; + /*--- Accelerations ---*/ + iVar_FEA_Accel = nVar_Total; + if (geometry->GetnDim() == 2) nVar_Total += 2; + else if (geometry->GetnDim() == 3) nVar_Total += 3; + } + iVar_FEA_Stress = nVar_Total; nVar_Total += 3; + if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} + iVar_FEA_Extra = nVar_Total; nVar_Total += 1; } if ((Kind_Solver == DISC_ADJ_EULER) || @@ -2262,7 +2262,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv Also, in the future more routines like this could be used to write an arbitrary number of additional variables to the file. ---*/ - if (grid_movement && !fem) { + if (grid_movement && !fem) { /*--- Loop over this partition to collect the current variable ---*/ @@ -2882,135 +2882,135 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - - /*--- Communicate the Velocities for dynamic FEM problem ---*/ - - if ((Kind_Solver == FEM_ELASTICITY) && (config->GetDynamic_Analysis() == DYNAMIC)) { - - /*--- Loop over this partition to collect the current variable ---*/ - - jPoint = 0; su2double *Node_Vel; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Check for halos & write only if requested ---*/ - - if (!Local_Halo[iPoint] || Wrt_Halo) { - - /*--- Load buffers with the three grid velocity components. ---*/ - - Node_Vel = solver[FEA_SOL]->node[iPoint]->GetSolution_Vel(); - Buffer_Send_Var[jPoint] = Node_Vel[0]; - Buffer_Send_Res[jPoint] = Node_Vel[1]; - if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Vel[2]; - jPoint++; - } - } - - /*--- Gather the data on the master node. ---*/ - - #ifdef HAVE_MPI - SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (geometry->GetnDim() == 3) { - SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - } - #else - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; - if (geometry->GetnDim() == 3) { - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; - } - #endif - - /*--- The master node unpacks and sorts this variable by global index ---*/ - - if (rank == MASTER_NODE) { - jPoint = 0; iVar = iVar_FEA_Vel; - for (iProcessor = 0; iProcessor < size; iProcessor++) { - for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { - - /*--- Get global index, then loop over each variable and store ---*/ - - iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; - Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; - if (geometry->GetnDim() == 3) - Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; - jPoint++; - } - - /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ - - jPoint = (iProcessor+1)*nBuffer_Scalar; - } - } - } - - /*--- Communicate the Accelerations for dynamic FEM problem ---*/ - - if ((Kind_Solver == FEM_ELASTICITY) && (config->GetDynamic_Analysis() == DYNAMIC)) { - - /*--- Loop over this partition to collect the current variable ---*/ - - jPoint = 0; su2double *Node_Accel; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Check for halos & write only if requested ---*/ - - if (!Local_Halo[iPoint] || Wrt_Halo) { - - /*--- Load buffers with the three grid velocity components. ---*/ - - Node_Accel = solver[FEA_SOL]->node[iPoint]->GetSolution_Accel(); - Buffer_Send_Var[jPoint] = Node_Accel[0]; - Buffer_Send_Res[jPoint] = Node_Accel[1]; - if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Accel[2]; - jPoint++; - } - } - - /*--- Gather the data on the master node. ---*/ - - #ifdef HAVE_MPI - SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - if (geometry->GetnDim() == 3) { - SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - } - #else - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; - if (geometry->GetnDim() == 3) { - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; - } - #endif - - /*--- The master node unpacks and sorts this variable by global index ---*/ - - if (rank == MASTER_NODE) { - jPoint = 0; iVar = iVar_FEA_Accel; - for (iProcessor = 0; iProcessor < size; iProcessor++) { - for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { - - /*--- Get global index, then loop over each variable and store ---*/ - - iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; - Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; - if (geometry->GetnDim() == 3) - Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; - jPoint++; - } - - /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ - - jPoint = (iProcessor+1)*nBuffer_Scalar; - } - } - } - - - /*--- Communicate the Linear elasticity stresses (2D) - Legacy elasticity solver ---*/ + + /*--- Communicate the Velocities for dynamic FEM problem ---*/ + + if ((Kind_Solver == FEM_ELASTICITY) && (config->GetDynamic_Analysis() == DYNAMIC)) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; su2double *Node_Vel; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Node_Vel = solver[FEA_SOL]->node[iPoint]->GetSolution_Vel(); + Buffer_Send_Var[jPoint] = Node_Vel[0]; + Buffer_Send_Res[jPoint] = Node_Vel[1]; + if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Vel[2]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + + #ifdef HAVE_MPI + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (geometry->GetnDim() == 3) { + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + } + #else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + if (geometry->GetnDim() == 3) { + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; + } + #endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Vel; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + if (geometry->GetnDim() == 3) + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } + + /*--- Communicate the Accelerations for dynamic FEM problem ---*/ + + if ((Kind_Solver == FEM_ELASTICITY) && (config->GetDynamic_Analysis() == DYNAMIC)) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; su2double *Node_Accel; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Node_Accel = solver[FEA_SOL]->node[iPoint]->GetSolution_Accel(); + Buffer_Send_Var[jPoint] = Node_Accel[0]; + Buffer_Send_Res[jPoint] = Node_Accel[1]; + if (geometry->GetnDim() == 3) Buffer_Send_Vol[jPoint] = Node_Accel[2]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + + #ifdef HAVE_MPI + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + if (geometry->GetnDim() == 3) { + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + } + #else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + if (geometry->GetnDim() == 3) { + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; + } + #endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Accel; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + if (geometry->GetnDim() == 3) + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } + + + /*--- Communicate the Linear elasticity stresses (2D) - Legacy elasticity solver ---*/ if (Kind_Solver == LINEAR_ELASTICITY) { @@ -3071,70 +3071,70 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - /*--- Communicate the FEM elasticity stresses (2D) - New elasticity solver---*/ - - if (Kind_Solver == FEM_ELASTICITY) { - - /*--- Loop over this partition to collect the current variable ---*/ - - jPoint = 0; su2double *Stress; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Check for halos & write only if requested ---*/ - - if (!Local_Halo[iPoint] || Wrt_Halo) { - - /*--- Load buffers with the three grid velocity components. ---*/ - - Stress = solver[FEA_SOL]->node[iPoint]->GetStress_FEM(); - /*--- Sigma xx ---*/ - Buffer_Send_Var[jPoint] = Stress[0]; - /*--- Sigma yy ---*/ - Buffer_Send_Res[jPoint] = Stress[1]; - /*--- Sigma xy ---*/ - Buffer_Send_Vol[jPoint] = Stress[2]; - jPoint++; - } - } - - /*--- Gather the data on the master node. ---*/ - -#ifdef HAVE_MPI - SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); -#else - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; -#endif - - /*--- The master node unpacks and sorts this variable by global index ---*/ - - if (rank == MASTER_NODE) { - jPoint = 0; iVar = iVar_FEA_Stress; - for (iProcessor = 0; iProcessor < size; iProcessor++) { - for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { - - /*--- Get global index, then loop over each variable and store ---*/ - - iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; - Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; - Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; - jPoint++; - } - - /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ - - jPoint = (iProcessor+1)*nBuffer_Scalar; - } - } - } - - /*--- Communicate the Linear elasticity stresses (3D) - Legacy elasticity solver ---*/ - - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { + /*--- Communicate the FEM elasticity stresses (2D) - New elasticity solver---*/ + + if (Kind_Solver == FEM_ELASTICITY) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; su2double *Stress; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Stress = solver[FEA_SOL]->node[iPoint]->GetStress_FEM(); + /*--- Sigma xx ---*/ + Buffer_Send_Var[jPoint] = Stress[0]; + /*--- Sigma yy ---*/ + Buffer_Send_Res[jPoint] = Stress[1]; + /*--- Sigma xy ---*/ + Buffer_Send_Vol[jPoint] = Stress[2]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + +#ifdef HAVE_MPI + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); +#else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; +#endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Stress; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } + + /*--- Communicate the Linear elasticity stresses (3D) - Legacy elasticity solver ---*/ + + if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { /*--- Loop over this partition to collect the current variable ---*/ @@ -3193,73 +3193,73 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } } - - /*--- Communicate the FEM elasticity stresses (3D) - New elasticity solver---*/ - - if ((Kind_Solver == FEM_ELASTICITY) && (geometry->GetnDim() == 3)) { - - /*--- Loop over this partition to collect the current variable ---*/ - - jPoint = 0; su2double *Stress; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Check for halos & write only if requested ---*/ - - if (!Local_Halo[iPoint] || Wrt_Halo) { - - /*--- Load buffers with the three grid velocity components. ---*/ - - Stress = solver[FEA_SOL]->node[iPoint]->GetStress_FEM(); - /*--- Sigma zz ---*/ - Buffer_Send_Var[jPoint] = Stress[3]; - /*--- Sigma xz ---*/ - Buffer_Send_Res[jPoint] = Stress[4]; - /*--- Sigma yz ---*/ - Buffer_Send_Vol[jPoint] = Stress[5]; - jPoint++; - } - } - - /*--- Gather the data on the master node. ---*/ - -#ifdef HAVE_MPI - SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); -#else - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; - -#endif - - /*--- The master node unpacks and sorts this variable by global index ---*/ - - if (rank == MASTER_NODE) { - jPoint = 0; iVar = iVar_FEA_Stress_3D; - for (iProcessor = 0; iProcessor < size; iProcessor++) { - for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { - - /*--- Get global index, then loop over each variable and store ---*/ - - iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; - Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; - Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; - jPoint++; - } - - /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ - - jPoint = (iProcessor+1)*nBuffer_Scalar; - } - } - } + + /*--- Communicate the FEM elasticity stresses (3D) - New elasticity solver---*/ + + if ((Kind_Solver == FEM_ELASTICITY) && (geometry->GetnDim() == 3)) { + + /*--- Loop over this partition to collect the current variable ---*/ + + jPoint = 0; su2double *Stress; + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + /*--- Check for halos & write only if requested ---*/ + + if (!Local_Halo[iPoint] || Wrt_Halo) { + + /*--- Load buffers with the three grid velocity components. ---*/ + + Stress = solver[FEA_SOL]->node[iPoint]->GetStress_FEM(); + /*--- Sigma zz ---*/ + Buffer_Send_Var[jPoint] = Stress[3]; + /*--- Sigma xz ---*/ + Buffer_Send_Res[jPoint] = Stress[4]; + /*--- Sigma yz ---*/ + Buffer_Send_Vol[jPoint] = Stress[5]; + jPoint++; + } + } + + /*--- Gather the data on the master node. ---*/ + +#ifdef HAVE_MPI + SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); +#else + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; + for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; + +#endif + + /*--- The master node unpacks and sorts this variable by global index ---*/ + + if (rank == MASTER_NODE) { + jPoint = 0; iVar = iVar_FEA_Stress_3D; + for (iProcessor = 0; iProcessor < size; iProcessor++) { + for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { + + /*--- Get global index, then loop over each variable and store ---*/ + + iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; + Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; + Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; + Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; + jPoint++; + } + + /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ + + jPoint = (iProcessor+1)*nBuffer_Scalar; + } + } + } /*--- Communicate the Linear elasticity ---*/ - if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) { + if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) { /*--- Loop over this partition to collect the current variable ---*/ jPoint = 0; @@ -3623,8 +3623,8 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, unsigned short iVar, iDim, nDim = geometry->GetnDim(); unsigned long iPoint, iExtIter = config->GetExtIter(); bool grid_movement = config->GetGrid_Movement(); - bool dynamic_fem = (config->GetDynamic_Analysis() == DYNAMIC); - bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); + bool dynamic_fem = (config->GetDynamic_Analysis() == DYNAMIC); + bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); ofstream restart_file; string filename; @@ -3633,8 +3633,8 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, if ((config->GetAdjoint()) || (config->GetDiscrete_Adjoint())) { filename = config->GetRestart_AdjFileName(); filename = config->GetObjFunc_Extension(filename); - } else if (fem){ - filename = config->GetRestart_FEMFileName(); + } else if (fem){ + filename = config->GetRestart_FEMFileName(); } else { filename = config->GetRestart_FlowFileName(); } @@ -3648,8 +3648,8 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(val_iZone)); } else if (config->GetWrt_Unsteady()) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); - } else if ((fem) && (config->GetWrt_Dynamic())) { - filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if ((fem) && (config->GetWrt_Dynamic())) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file and write the solution. ---*/ @@ -3670,7 +3670,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, } for (iVar = 0; iVar < nVar_Consv; iVar++) { - if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) + if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) restart_file << "\t\"Displacement_" << iVar+1<<"\""; else restart_file << "\t\"Conservative_" << iVar+1<<"\""; @@ -3691,7 +3691,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, /*--- Mesh velocities for dynamic mesh cases ---*/ - if (grid_movement && !fem) { + if (grid_movement && !fem) { if (nDim == 2) { restart_file << "\t\"Grid_Velx\"\t\"Grid_Vely\""; } else { @@ -3750,26 +3750,26 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; } - if (Kind_Solver == FEM_ELASTICITY) { - if (!dynamic_fem) { - if (geometry->GetnDim() == 2) - restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\""; - if (geometry->GetnDim() == 3) - restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\""; - } - else if (dynamic_fem) { - if (geometry->GetnDim() == 2){ - restart_file << "\t\"Velocity_1\"\t\"Velocity_2\"\t\"Acceleration_1\"\t\"Acceleration_2\""; - restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\""; - } - if (geometry->GetnDim() == 3){ - restart_file << "\t\"Velocity_1\"\t\"Velocity_2\"\t\"Velocity_3\"\t\"Acceleration_1\"\t\"Acceleration_2\"\t\"Acceleration_3\""; - restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\""; - } - } - } - - + if (Kind_Solver == FEM_ELASTICITY) { + if (!dynamic_fem) { + if (geometry->GetnDim() == 2) + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\""; + if (geometry->GetnDim() == 3) + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\""; + } + else if (dynamic_fem) { + if (geometry->GetnDim() == 2){ + restart_file << "\t\"Velocity_1\"\t\"Velocity_2\"\t\"Acceleration_1\"\t\"Acceleration_2\""; + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\""; + } + if (geometry->GetnDim() == 3){ + restart_file << "\t\"Velocity_1\"\t\"Velocity_2\"\t\"Velocity_3\"\t\"Acceleration_1\"\t\"Acceleration_2\"\t\"Acceleration_3\""; + restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\""; + } + } + } + + if (config->GetExtraOutput()) { string *headings = NULL; //if (Kind_Solver == RANS) { @@ -3983,7 +3983,7 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char adj_levelset_resid[]= ",\"Res_AdjLevelSet\""; char wave_resid[]= ",\"Res_Wave[0]\",\"Res_Wave[1]\""; char fea_resid[]= ",\"Res_FEA\""; - char fem_resid[]= ",\"Res_FEM[0]\",\"Res_FEM[1]\",\"Res_FEM[2]\""; + char fem_resid[]= ",\"Res_FEM[0]\",\"Res_FEM[1]\",\"Res_FEM[2]\""; char heat_resid[]= ",\"Res_Heat\""; /*--- End of the header ---*/ @@ -4049,11 +4049,11 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { ConvHist_file[0] << begin << fea_coeff; ConvHist_file[0] << fea_resid << end; break; - - case FEM_ELASTICITY: - ConvHist_file[0] << begin << fem_coeff; - ConvHist_file[0] << fem_resid << end; - break; + + case FEM_ELASTICITY: + ConvHist_file[0] << begin << fem_coeff; + ConvHist_file[0] << fem_resid << end; + break; } @@ -5945,7 +5945,7 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << "| - Prof. Alberto Guardone's group at Polytechnic University of Milan. |" << endl; Breakdown_file << "| - Prof. Rafael Palacios' group at Imperial College London. |" << endl; Breakdown_file <<"-------------------------------------------------------------------------" << endl; - Breakdown_file << "| Copyright (C) 2012-2015 SU2, the open-source CFD code. |" << endl; + Breakdown_file << "| Copyright (C) 2012-2016 SU2, the open-source CFD code. |" << endl; Breakdown_file << "| |" << endl; Breakdown_file << "| SU2 is free software; you can redistribute it and/or |" << endl; Breakdown_file << "| modify it under the terms of the GNU Lesser General Public |" << endl; diff --git a/SU2_CFD/src/output_su2.cpp b/SU2_CFD/src/output_su2.cpp index b42fbd087f3..1e477e73753 100644 --- a/SU2_CFD/src/output_su2.cpp +++ b/SU2_CFD/src/output_su2.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output_tecplot.cpp b/SU2_CFD/src/output_tecplot.cpp index 814146ee8b5..3504893e359 100644 --- a/SU2_CFD/src/output_tecplot.cpp +++ b/SU2_CFD/src/output_tecplot.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_adjoint_discrete.cpp b/SU2_CFD/src/solver_adjoint_discrete.cpp index 75213be16d4..9232e47f084 100644 --- a/SU2_CFD/src/solver_adjoint_discrete.cpp +++ b/SU2_CFD/src/solver_adjoint_discrete.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_adjoint_levelset.cpp b/SU2_CFD/src/solver_adjoint_levelset.cpp index 174699cabc9..2bd33a23097 100644 --- a/SU2_CFD/src/solver_adjoint_levelset.cpp +++ b/SU2_CFD/src/solver_adjoint_levelset.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index cb0a43c8749..195b52e57a7 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_adjoint_turbulent.cpp b/SU2_CFD/src/solver_adjoint_turbulent.cpp index a3eba5dc1d0..e2a4265b024 100644 --- a/SU2_CFD/src/solver_adjoint_turbulent.cpp +++ b/SU2_CFD/src/solver_adjoint_turbulent.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 831b9b2e603..9d5d9987b6f 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_direct_heat.cpp b/SU2_CFD/src/solver_direct_heat.cpp index a9cf599ffe8..a3337ebfc26 100644 --- a/SU2_CFD/src/solver_direct_heat.cpp +++ b/SU2_CFD/src/solver_direct_heat.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 02f1ff5a8b0..3e4bd9ea3b4 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -11084,417 +11084,417 @@ void CEulerSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_co void CEulerSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { - unsigned short iDim; - unsigned long iVertex; - su2double *Coord, VarCoord[3] = {0,0,0}; - - #ifndef HAVE_MPI - unsigned long iPoint_Donor, iPoint; - unsigned short iMarker; - su2double *CoordDonor, *DisplacementDonor; - - for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { - - if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { - - for(iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { - - iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); - - iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorPoint(); - - Coord = flow_geometry[MESH_0]->node[iPoint]->GetCoord(); - - CoordDonor = fea_geometry[MESH_0]->node[iPoint_Donor]->GetCoord(); - - /*--- The displacements come from the predicted solution ---*/ - DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); - - for (iDim = 0; iDim < nDim; iDim++) - - VarCoord[iDim] = (CoordDonor[iDim]+DisplacementDonor[iDim])-Coord[iDim]; - - flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); - } - } - } - - #else - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); - - unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; - - unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side - unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers - - unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; - - unsigned long nBuffer_StructCoord = 0, nBuffer_FlowNewCoord = 0; - unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; - - unsigned long Point_Flow, Point_Struct; - long Point_Flow_Rcv, Processor_Flow_Rcv; - unsigned long Processor_Flow; - - int Marker_Flow = -1, Marker_Struct = -1; - - int iProcessor, nProcessor = 0; - - - su2double *Coord_Struct, *Displacement_Struct; - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2; - nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); - nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); - - nProcessor = size; - - /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ - /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - - for (iMarkerFSI = 1; iMarkerFSI <= nMarkerFSI; iMarkerFSI++){ - - Marker_Struct = -1; - Marker_Flow = -1; - - /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ - unsigned long Buffer_Send_nVertexStruct[1], *Buffer_Recv_nVertexStruct = NULL; - unsigned long Buffer_Send_nVertexFlow[1], *Buffer_Recv_nVertexFlow = NULL; - - /*--- The markers on the fluid and structural side are tagged with the same index. - *--- This is independent of the MPI domain decomposition. - *--- We need to loop over all markers on structural side and get the number of nodes - *--- that belong to each FSI marker for each processor ---*/ - - /*--- On the structural side ---*/ - - for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFEA) equals the index we are looping at ---*/ - if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == iMarkerFSI ){ - /*--- We have identified the local index of the FEA marker ---*/ - /*--- Store the number of local points that belong to markFEA on each processor ---*/ - /*--- This includes the halo nodes ---*/ - nLocalVertexStruct = fea_geometry[MESH_0]->GetnVertex(iMarkerStruct); - /*--- Store the identifier for the structural marker ---*/ - Marker_Struct = iMarkerStruct; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the FEA markers ---*/ - nLocalVertexStruct = 0; - Marker_Struct = -1; - } - } - - /*--- On the fluid side ---*/ - - for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ - if ( flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == iMarkerFSI ){ - /*--- We have identified the local index of the Flow marker ---*/ - /*--- Store the number of local points that belong to markFlow on each processor ---*/ - /*--- This includes the halo nodes ---*/ - nLocalVertexFlow = flow_geometry[MESH_0]->GetnVertex(iMarkerFlow); - /*--- Store the identifier for the fluid marker ---*/ - Marker_Flow = iMarkerFlow; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - nLocalVertexFlow = 0; - Marker_Flow = -1; - } - } - - Buffer_Send_nVertexStruct[0] = nLocalVertexStruct; // Retrieve total number of vertices on FEA marker - Buffer_Send_nVertexFlow[0] = nLocalVertexFlow; // Retrieve total number of vertices on Flow marker - if (rank == MASTER_NODE) Buffer_Recv_nVertexStruct = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - if (rank == MASTER_NODE) Buffer_Recv_nVertexFlow = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side - - /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ - SU2_MPI::Allreduce(&nLocalVertexStruct, &MaxLocalVertexStruct, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ - SU2_MPI::Allreduce(&nLocalVertexFlow, &MaxLocalVertexFlow, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexStruct, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexStruct, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexFlow, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexFlow, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - - /*--- We will be gathering the structural coordinates into the master node ---*/ - /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ - nBuffer_StructCoord = MaxLocalVertexStruct * nDim; - nBuffer_FlowNewCoord = MaxLocalVertexFlow * nDim; - - /*--- We will be gathering donor index and donor processor (for structure -> donor = flow) ---*/ - /*--- Then we will pass on to the fluid side the index (flow point) to the appropriate processor ---*/ - nBuffer_DonorIndices = 2 * MaxLocalVertexStruct; - nBuffer_SetIndex = MaxLocalVertexFlow; - - /*--- Send and Recv buffers ---*/ - - /*--- Buffers to send and receive the structural coordinates ---*/ - su2double *Buffer_Send_StructCoord = new su2double[nBuffer_StructCoord]; - su2double *Buffer_Recv_StructCoord = NULL; - - /*--- Buffers to send and receive the donor index and processor ---*/ - long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; - long *Buffer_Recv_DonorIndices = NULL; - - /*--- Buffers to send and receive the new fluid coordinates ---*/ - su2double *Buffer_Send_FlowNewCoord = NULL; - su2double *Buffer_Recv_FlowNewCoord = new su2double[nBuffer_FlowNewCoord]; - - /*--- Buffers to send and receive the fluid index ---*/ - long *Buffer_Send_SetIndex = NULL; - long *Buffer_Recv_SetIndex = new long[nBuffer_SetIndex]; - - /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ - - if (rank == MASTER_NODE) { - Buffer_Recv_StructCoord = new su2double[size*nBuffer_StructCoord]; - Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - Buffer_Send_FlowNewCoord = new su2double[size*nBuffer_FlowNewCoord]; - Buffer_Send_SetIndex = new long[size*nBuffer_SetIndex]; - } - - /*--- On the structural side ---*/ - - /*--- If this processor owns the marker we are looping at on the structural side ---*/ - - /*--- First we initialize all of the indices and processors to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) - Buffer_Send_DonorIndices[iVertex] = -1; - - if (Marker_Struct >= 0){ - - /*--- We have identified the local index of the FEA marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ - - Point_Struct = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); - - Point_Flow = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetDonorPoint(); - - Processor_Flow = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetDonorProcessor(); - - Coord_Struct = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(); - - /*--- The displacements come from the predicted solution ---*/ - Displacement_Struct = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(); - - for (iDim = 0; iDim < nDim; iDim++){ - Buffer_Send_StructCoord[iVertex*nDim+iDim] = Coord_Struct[iDim] + Displacement_Struct[iDim]; - } - /*--- If this processor owns the node ---*/ - if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()){ - Buffer_Send_DonorIndices[2*iVertex] = Point_Flow; - Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Flow; - } - else{ - /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[2*iVertex] = -1; - Buffer_Send_DonorIndices[2*iVertex + 1] = -1; - } - - } - } - - /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ - SU2_MPI::Gather(Buffer_Send_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, Buffer_Recv_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - - /*--- Counter to determine where in the array we have to set the information ---*/ - long *Counter_Processor_Flow = NULL; - long iProcessor_Struct = 0, iIndex_Struct = 0; - long iProcessor_Flow = 0, iPoint_Flow = 0, iIndex_Flow = 0; - - /*--- Now we pack the information to send it over to the different processors ---*/ - - if (rank == MASTER_NODE){ - - /*--- We set the counter to 0 ---*/ - Counter_Processor_Flow = new long[nProcessor]; - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - Counter_Processor_Flow[iProcessor] = 0; - } - - /*--- First we initialize the index vector to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nProcessor*nBuffer_SetIndex; iVertex++) - Buffer_Send_SetIndex[iVertex] = -2; - - /*--- As of now we do the loop over the structural points ---*/ - /*--- The number of points for flow and structure does not necessarily have to match ---*/ - /*--- In fact, it's possible that a processor asks for nFlow nodes and there are only ---*/ - /*--- nStruc < nFlow available; this is due to halo nodes ---*/ - - /*--- For every processor from which we have received information ---*/ - /*--- (This is, for every processor on the structural side) ---*/ - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - - /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ - iProcessor_Struct = iProcessor*nBuffer_StructCoord; - /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ - iIndex_Struct = iProcessor*nBuffer_DonorIndices; - - /*--- For every vertex in the information retreived from iProcessor ---*/ - for (iVertex = 0; iVertex < Buffer_Recv_nVertexStruct[iProcessor]; iVertex++) { - - /*--- The processor and index for the flow are: ---*/ - Processor_Flow_Rcv = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2+1]; - Point_Flow_Rcv = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2]; - - /*--- Load the buffer at the appropriate position ---*/ - /*--- This is determined on the fluid side by: - *--- Processor_Flow*nBuffer_FlowNewCoord -> Initial position of the processor array (fluid side) - *--- + - *--- Counter_Processor_Flow*nDim -> Initial position of the nDim array for the particular point on the fluid side - *--- + - *--- iDim -> Position within the nDim array that corresponds to a point - *--- - *--- While on the structural side is: - *--- iProcessor*nBuffer_StructCoord -> Initial position on the processor array (structural side) - *--- + - *--- iVertex*nDim -> Initial position of the nDim array for the particular point on the structural side - */ - - /*--- We check that we are not setting the value for a halo node ---*/ - if (Point_Flow_Rcv != -1){ - iProcessor_Flow = Processor_Flow_Rcv*nBuffer_FlowNewCoord; - iIndex_Flow = Processor_Flow_Rcv*nBuffer_SetIndex; - iPoint_Flow = Counter_Processor_Flow[Processor_Flow_Rcv]*nDim; - - for (iDim = 0; iDim < nDim; iDim++) - Buffer_Send_FlowNewCoord[iProcessor_Flow + iPoint_Flow + iDim] = Buffer_Recv_StructCoord[iProcessor_Struct + iVertex*nDim + iDim]; - - /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ - Buffer_Send_SetIndex[iIndex_Flow + Counter_Processor_Flow[Processor_Flow_Rcv]] = Point_Flow_Rcv; - - Counter_Processor_Flow[Processor_Flow_Rcv]++; - } - - } - - } - - } - - /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ - SU2_MPI::Scatter(Buffer_Send_FlowNewCoord, nBuffer_FlowNewCoord, MPI_DOUBLE, Buffer_Recv_FlowNewCoord, nBuffer_FlowNewCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - - long indexPoint_iVertex, Point_Flow_Check; - - /*--- For the flow marker we are studying ---*/ - if (Marker_Flow >= 0){ - - /*--- We have identified the local index of the Flow marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < nLocalVertexFlow; iVertex++){ - - Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); - - if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()){ - /*--- Find the index of the point Point_Flow in the buffer Buffer_Recv_SetIndex ---*/ - indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexFlow, Point_Flow)); - - Point_Flow_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; - - if (Point_Flow_Check < 0) { - cout << "WARNING: A nonphysical point is being considered for mesh deformation." << endl; - exit(EXIT_FAILURE); - } - - Coord = flow_geometry[MESH_0]->node[Point_Flow]->GetCoord(); - - for (iDim = 0; iDim < nDim; iDim++) - VarCoord[iDim] = (Buffer_Recv_FlowNewCoord[indexPoint_iVertex*nDim+iDim])-Coord[iDim]; - - flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->SetVarCoord(VarCoord); - - } - - } - - } - - delete [] Buffer_Send_StructCoord; - delete [] Buffer_Send_DonorIndices; - delete [] Buffer_Recv_FlowNewCoord; - delete [] Buffer_Recv_SetIndex; - - if (rank == MASTER_NODE) { - delete [] Buffer_Recv_nVertexStruct; - delete [] Buffer_Recv_nVertexFlow; - delete [] Buffer_Recv_StructCoord; - delete [] Buffer_Recv_DonorIndices; - delete [] Buffer_Send_FlowNewCoord; - delete [] Buffer_Send_SetIndex; - delete [] Counter_Processor_Flow; - } - - - } - - #endif - - flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); - -} - -void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, - CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { - unsigned short iMarker, iDim, iDonor, nDonor; - unsigned long iVertex; - su2double VarCoord[3]; - - unsigned long iPoint_Donor; - su2double *DisplacementDonor, *DisplacementDonor_Prev, coeff; - - for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { - - if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { - - for(iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { - - for (iDim = 0; iDim < nDim; iDim++) - VarCoord[iDim]=0.0; - - nDonor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); - - for (iDonor = 0; iDonor < nDonor; iDonor++){ - iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetInterpDonorPoint(iDonor); - coeff = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(iDonor); - - /*--- The displacements come from the predicted solution ---*/ - DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); - - DisplacementDonor_Prev = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred_Old(); - - for (iDim = 0; iDim < nDim; iDim++) - - VarCoord[iDim] += (DisplacementDonor[iDim] - DisplacementDonor_Prev[iDim])*coeff; - } - - flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); - } - } - } - flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); - + unsigned short iDim; + unsigned long iVertex; + su2double *Coord, VarCoord[3] = {0,0,0}; + + #ifndef HAVE_MPI + unsigned long iPoint_Donor, iPoint; + unsigned short iMarker; + su2double *CoordDonor, *DisplacementDonor; + + for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { + + if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { + + for(iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + + iPoint = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetNode(); + + iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorPoint(); + + Coord = flow_geometry[MESH_0]->node[iPoint]->GetCoord(); + + CoordDonor = fea_geometry[MESH_0]->node[iPoint_Donor]->GetCoord(); + + /*--- The displacements come from the predicted solution ---*/ + DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); + + for (iDim = 0; iDim < nDim; iDim++) + + VarCoord[iDim] = (CoordDonor[iDim]+DisplacementDonor[iDim])-Coord[iDim]; + + flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); + } + } + } + + #else + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; + + unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side + unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers + + unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; + + unsigned long nBuffer_StructCoord = 0, nBuffer_FlowNewCoord = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; + + unsigned long Point_Flow, Point_Struct; + long Point_Flow_Rcv, Processor_Flow_Rcv; + unsigned long Processor_Flow; + + int Marker_Flow = -1, Marker_Struct = -1; + + int iProcessor, nProcessor = 0; + + + su2double *Coord_Struct, *Displacement_Struct; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2; + nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerFSI = 1; iMarkerFSI <= nMarkerFSI; iMarkerFSI++){ + + Marker_Struct = -1; + Marker_Flow = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexStruct[1], *Buffer_Recv_nVertexStruct = NULL; + unsigned long Buffer_Send_nVertexFlow[1], *Buffer_Recv_nVertexFlow = NULL; + + /*--- The markers on the fluid and structural side are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on structural side and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the structural side ---*/ + + for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFEA) equals the index we are looping at ---*/ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == iMarkerFSI ){ + /*--- We have identified the local index of the FEA marker ---*/ + /*--- Store the number of local points that belong to markFEA on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexStruct = fea_geometry[MESH_0]->GetnVertex(iMarkerStruct); + /*--- Store the identifier for the structural marker ---*/ + Marker_Struct = iMarkerStruct; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the FEA markers ---*/ + nLocalVertexStruct = 0; + Marker_Struct = -1; + } + } + + /*--- On the fluid side ---*/ + + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == iMarkerFSI ){ + /*--- We have identified the local index of the Flow marker ---*/ + /*--- Store the number of local points that belong to markFlow on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexFlow = flow_geometry[MESH_0]->GetnVertex(iMarkerFlow); + /*--- Store the identifier for the fluid marker ---*/ + Marker_Flow = iMarkerFlow; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexFlow = 0; + Marker_Flow = -1; + } + } + + Buffer_Send_nVertexStruct[0] = nLocalVertexStruct; // Retrieve total number of vertices on FEA marker + Buffer_Send_nVertexFlow[0] = nLocalVertexFlow; // Retrieve total number of vertices on Flow marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexStruct = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexFlow = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side + + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexStruct, &MaxLocalVertexStruct, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexFlow, &MaxLocalVertexFlow, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexStruct, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexStruct, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexFlow, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexFlow, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_StructCoord = MaxLocalVertexStruct * nDim; + nBuffer_FlowNewCoord = MaxLocalVertexFlow * nDim; + + /*--- We will be gathering donor index and donor processor (for structure -> donor = flow) ---*/ + /*--- Then we will pass on to the fluid side the index (flow point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexStruct; + nBuffer_SetIndex = MaxLocalVertexFlow; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the structural coordinates ---*/ + su2double *Buffer_Send_StructCoord = new su2double[nBuffer_StructCoord]; + su2double *Buffer_Recv_StructCoord = NULL; + + /*--- Buffers to send and receive the donor index and processor ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the new fluid coordinates ---*/ + su2double *Buffer_Send_FlowNewCoord = NULL; + su2double *Buffer_Recv_FlowNewCoord = new su2double[nBuffer_FlowNewCoord]; + + /*--- Buffers to send and receive the fluid index ---*/ + long *Buffer_Send_SetIndex = NULL; + long *Buffer_Recv_SetIndex = new long[nBuffer_SetIndex]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_StructCoord = new su2double[size*nBuffer_StructCoord]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_FlowNewCoord = new su2double[size*nBuffer_FlowNewCoord]; + Buffer_Send_SetIndex = new long[size*nBuffer_SetIndex]; + } + + /*--- On the structural side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Struct >= 0){ + + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ + + Point_Struct = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); + + Point_Flow = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetDonorPoint(); + + Processor_Flow = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetDonorProcessor(); + + Coord_Struct = fea_geometry[MESH_0]->node[Point_Struct]->GetCoord(); + + /*--- The displacements come from the predicted solution ---*/ + Displacement_Struct = fea_solution[MESH_0][FEA_SOL]->node[Point_Struct]->GetSolution_Pred(); + + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_StructCoord[iVertex*nDim+iDim] = Coord_Struct[iDim] + Displacement_Struct[iDim]; + } + /*--- If this processor owns the node ---*/ + if (fea_geometry[MESH_0]->node[Point_Struct]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Flow; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Flow; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + } + + } + } + + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, Buffer_Recv_StructCoord, nBuffer_StructCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Flow = NULL; + long iProcessor_Struct = 0, iIndex_Struct = 0; + long iProcessor_Flow = 0, iPoint_Flow = 0, iIndex_Flow = 0; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- We set the counter to 0 ---*/ + Counter_Processor_Flow = new long[nProcessor]; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + Counter_Processor_Flow[iProcessor] = 0; + } + + /*--- First we initialize the index vector to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nProcessor*nBuffer_SetIndex; iVertex++) + Buffer_Send_SetIndex[iVertex] = -2; + + /*--- As of now we do the loop over the structural points ---*/ + /*--- The number of points for flow and structure does not necessarily have to match ---*/ + /*--- In fact, it's possible that a processor asks for nFlow nodes and there are only ---*/ + /*--- nStruc < nFlow available; this is due to halo nodes ---*/ + + /*--- For every processor from which we have received information ---*/ + /*--- (This is, for every processor on the structural side) ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + + /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ + iProcessor_Struct = iProcessor*nBuffer_StructCoord; + /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ + iIndex_Struct = iProcessor*nBuffer_DonorIndices; + + /*--- For every vertex in the information retreived from iProcessor ---*/ + for (iVertex = 0; iVertex < Buffer_Recv_nVertexStruct[iProcessor]; iVertex++) { + + /*--- The processor and index for the flow are: ---*/ + Processor_Flow_Rcv = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2+1]; + Point_Flow_Rcv = Buffer_Recv_DonorIndices[iIndex_Struct+iVertex*2]; + + /*--- Load the buffer at the appropriate position ---*/ + /*--- This is determined on the fluid side by: + *--- Processor_Flow*nBuffer_FlowNewCoord -> Initial position of the processor array (fluid side) + *--- + + *--- Counter_Processor_Flow*nDim -> Initial position of the nDim array for the particular point on the fluid side + *--- + + *--- iDim -> Position within the nDim array that corresponds to a point + *--- + *--- While on the structural side is: + *--- iProcessor*nBuffer_StructCoord -> Initial position on the processor array (structural side) + *--- + + *--- iVertex*nDim -> Initial position of the nDim array for the particular point on the structural side + */ + + /*--- We check that we are not setting the value for a halo node ---*/ + if (Point_Flow_Rcv != -1){ + iProcessor_Flow = Processor_Flow_Rcv*nBuffer_FlowNewCoord; + iIndex_Flow = Processor_Flow_Rcv*nBuffer_SetIndex; + iPoint_Flow = Counter_Processor_Flow[Processor_Flow_Rcv]*nDim; + + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_FlowNewCoord[iProcessor_Flow + iPoint_Flow + iDim] = Buffer_Recv_StructCoord[iProcessor_Struct + iVertex*nDim + iDim]; + + /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ + Buffer_Send_SetIndex[iIndex_Flow + Counter_Processor_Flow[Processor_Flow_Rcv]] = Point_Flow_Rcv; + + Counter_Processor_Flow[Processor_Flow_Rcv]++; + } + + } + + } + + } + + /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ + SU2_MPI::Scatter(Buffer_Send_FlowNewCoord, nBuffer_FlowNewCoord, MPI_DOUBLE, Buffer_Recv_FlowNewCoord, nBuffer_FlowNewCoord, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + + long indexPoint_iVertex, Point_Flow_Check; + + /*--- For the flow marker we are studying ---*/ + if (Marker_Flow >= 0){ + + /*--- We have identified the local index of the Flow marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexFlow; iVertex++){ + + Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); + + if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()){ + /*--- Find the index of the point Point_Flow in the buffer Buffer_Recv_SetIndex ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexFlow, Point_Flow)); + + Point_Flow_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; + + if (Point_Flow_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for mesh deformation." << endl; + exit(EXIT_FAILURE); + } + + Coord = flow_geometry[MESH_0]->node[Point_Flow]->GetCoord(); + + for (iDim = 0; iDim < nDim; iDim++) + VarCoord[iDim] = (Buffer_Recv_FlowNewCoord[indexPoint_iVertex*nDim+iDim])-Coord[iDim]; + + flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->SetVarCoord(VarCoord); + + } + + } + + } + + delete [] Buffer_Send_StructCoord; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_FlowNewCoord; + delete [] Buffer_Recv_SetIndex; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexStruct; + delete [] Buffer_Recv_nVertexFlow; + delete [] Buffer_Recv_StructCoord; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_FlowNewCoord; + delete [] Buffer_Send_SetIndex; + delete [] Counter_Processor_Flow; + } + + + } + + #endif + + flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); + +} + +void CEulerSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, + CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { + unsigned short iMarker, iDim, iDonor, nDonor; + unsigned long iVertex; + su2double VarCoord[3]; + + unsigned long iPoint_Donor; + su2double *DisplacementDonor, *DisplacementDonor_Prev, coeff; + + for (iMarker = 0; iMarker < flow_config->GetnMarker_All(); iMarker++) { + + if (flow_config->GetMarker_All_FSIinterface(iMarker) != 0) { + + for(iVertex = 0; iVertex < flow_geometry[MESH_0]->nVertex[iMarker]; iVertex++) { + + for (iDim = 0; iDim < nDim; iDim++) + VarCoord[iDim]=0.0; + + nDonor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetnDonorPoints(); + + for (iDonor = 0; iDonor < nDonor; iDonor++){ + iPoint_Donor = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetInterpDonorPoint(iDonor); + coeff = flow_geometry[MESH_0]->vertex[iMarker][iVertex]->GetDonorCoeff(iDonor); + + /*--- The displacements come from the predicted solution ---*/ + DisplacementDonor = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred(); + + DisplacementDonor_Prev = fea_solution[MESH_0][FEA_SOL]->node[iPoint_Donor]->GetSolution_Pred_Old(); + + for (iDim = 0; iDim < nDim; iDim++) + + VarCoord[iDim] += (DisplacementDonor[iDim] - DisplacementDonor_Prev[iDim])*coeff; + } + + flow_geometry[MESH_0]->vertex[iMarker][iVertex]->SetVarCoord(VarCoord); + } + } + } + flow_grid_movement->SetVolume_Deformation(flow_geometry[MESH_0], flow_config, true); + } void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter) { @@ -11613,15 +11613,15 @@ void CEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig } /*--- Read in the next 2 or 3 variables which are the grid velocities ---*/ - /*--- If we are restarting the solution from a previously computed static calculation (no grid movement) ---*/ - /*--- the grid velocities are set to 0. This is useful for FSI computations ---*/ + /*--- If we are restarting the solution from a previously computed static calculation (no grid movement) ---*/ + /*--- the grid velocities are set to 0. This is useful for FSI computations ---*/ su2double GridVel[3] = {0.0,0.0,0.0}; - if (!steady_restart){ - if (nDim == 2) point_line >> GridVel[0] >> GridVel[1]; - else point_line >> GridVel[0] >> GridVel[1] >> GridVel[2]; - } - + if (!steady_restart){ + if (nDim == 2) point_line >> GridVel[0] >> GridVel[1]; + else point_line >> GridVel[0] >> GridVel[1] >> GridVel[2]; + } + for (iDim = 0; iDim < nDim; iDim++) { geometry[MESH_0]->node[iPoint_Local]->SetCoord(iDim, Coord[iDim]); diff --git a/SU2_CFD/src/solver_direct_poisson.cpp b/SU2_CFD/src/solver_direct_poisson.cpp index c695a03ccbf..70f60f00040 100644 --- a/SU2_CFD/src/solver_direct_poisson.cpp +++ b/SU2_CFD/src/solver_direct_poisson.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_direct_transition.cpp b/SU2_CFD/src/solver_direct_transition.cpp index 50448915958..9bbbb48cd69 100644 --- a/SU2_CFD/src/solver_direct_transition.cpp +++ b/SU2_CFD/src/solver_direct_transition.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_direct_turbulent.cpp b/SU2_CFD/src/solver_direct_turbulent.cpp index 9db3d451462..1fe845022e7 100644 --- a/SU2_CFD/src/solver_direct_turbulent.cpp +++ b/SU2_CFD/src/solver_direct_turbulent.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_direct_wave.cpp b/SU2_CFD/src/solver_direct_wave.cpp index 44324f1002b..d150e3283ce 100644 --- a/SU2_CFD/src/solver_direct_wave.cpp +++ b/SU2_CFD/src/solver_direct_wave.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index e95efe1e3a9..2627dbaef24 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -1845,7 +1845,7 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned unsigned short iZone = config->GetiZone(); unsigned short nZone = geometry->GetnZone(); - + /*--- Define geometry constants in the solver structure ---*/ @@ -1865,8 +1865,8 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned if (config->GetAdjoint() || config->GetDiscrete_Adjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); - } else if (fem){ - filename = config->GetSolution_FEMFileName(); + } else if (fem){ + filename = config->GetSolution_FEMFileName(); } else { filename = config->GetSolution_FlowFileName(); } @@ -1880,8 +1880,8 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); - } else if (config->GetWrt_Dynamic()) { - filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file ---*/ @@ -2167,14 +2167,14 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); unsigned short iZone = config->GetiZone(); - unsigned short nZone = geometry[iZone]->GetnZone(); + unsigned short nZone = geometry[iZone]->GetnZone(); /*--- Retrieve filename from config ---*/ if (config->GetAdjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); - } else if (fem){ - filename = config->GetSolution_FEMFileName(); + } else if (fem){ + filename = config->GetSolution_FEMFileName(); } else { filename = config->GetSolution_FlowFileName(); } @@ -2187,8 +2187,8 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- Unsteady problems require an iteration number to be appended. ---*/ if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); - } else if (config->GetWrt_Dynamic()) { - filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); } /*--- Open the restart file ---*/ @@ -2262,121 +2262,121 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf delete [] Global2Local; delete [] Solution; -} - -void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CConfig *config, int val_iter) { - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - /*--- Restart the solution from file information ---*/ - string filename; - unsigned long iPoint, index; - string UnstExt, text_line, AdjExt; - ifstream solution_file; - unsigned short iField; - unsigned long iExtIter = config->GetExtIter(); +} + +void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CConfig *config, int val_iter) { + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + /*--- Restart the solution from file information ---*/ + string filename; + unsigned long iPoint, index; + string UnstExt, text_line, AdjExt; + ifstream solution_file; + unsigned short iField; + unsigned long iExtIter = config->GetExtIter(); bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); unsigned short iZone = config->GetiZone(); - unsigned short nZone = geometry->GetnZone(); - - /*--- Retrieve filename from config ---*/ - if (config->GetAdjoint()) { - filename = config->GetSolution_AdjFileName(); - filename = config->GetObjFunc_Extension(filename); - } else if (fem){ - filename = config->GetSolution_FEMFileName(); - } else { - filename = config->GetSolution_FlowFileName(); + unsigned short nZone = geometry->GetnZone(); + + /*--- Retrieve filename from config ---*/ + if (config->GetAdjoint()) { + filename = config->GetSolution_AdjFileName(); + filename = config->GetObjFunc_Extension(filename); + } else if (fem){ + filename = config->GetSolution_FEMFileName(); + } else { + filename = config->GetSolution_FlowFileName(); } /*--- Multizone problems require the number of the zone to be appended. ---*/ if (nZone > 1) - filename = config->GetMultizone_FileName(filename, iZone); - - /*--- Unsteady problems require an iteration number to be appended. ---*/ - if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { - filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); - } else if (config->GetWrt_Dynamic()) { - filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + filename = config->GetMultizone_FileName(filename, iZone); + + /*--- Unsteady problems require an iteration number to be appended. ---*/ + if (config->GetWrt_Unsteady() || config->GetUnsteady_Simulation() == TIME_SPECTRAL) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } else if (config->GetWrt_Dynamic()) { + filename = config->GetUnsteady_FileName(filename, SU2_TYPE::Int(iExtIter)); + } + + /*--- Open the restart file ---*/ + solution_file.open(filename.data(), ios::in); + + /*--- In case there is no file ---*/ + if (solution_file.fail()) { + if (rank == MASTER_NODE) + cout << "There is no SU2 restart file!!" << endl; + exit(EXIT_FAILURE); } - - /*--- Open the restart file ---*/ - solution_file.open(filename.data(), ios::in); - - /*--- In case there is no file ---*/ - if (solution_file.fail()) { - if (rank == MASTER_NODE) - cout << "There is no SU2 restart file!!" << endl; - exit(EXIT_FAILURE); - } - - /*--- Output the file name to the console. ---*/ - if (rank == MASTER_NODE) - cout << "Reading and storing the solution from " << filename - << "." << endl; - - /*--- Set the number of variables, one per field in the - restart file (without including the PointID) ---*/ - nVar = config->fields.size() - 1; - - su2double *Solution = new su2double[nVar]; - - /*--- In case this is a parallel simulation, we need to perform the - Global2Local index transformation first. ---*/ - long *Global2Local = NULL; - Global2Local = new long[geometry->GetGlobal_nPointDomain()]; - /*--- First, set all indices to a negative value by default ---*/ - for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) { - Global2Local[iPoint] = -1; - } - - /*--- Now fill array with the transform values only for local points ---*/ - for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { - Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; - } - - /*--- Read all lines in the restart file ---*/ - long iPoint_Local = 0; unsigned long iPoint_Global = 0; - - /*--- The first line is the header ---*/ - getline (solution_file, text_line); - - while (getline (solution_file, text_line)) { - istringstream point_line(text_line); - - /*--- Retrieve local index. If this node from the restart file lives - on a different processor, the value of iPoint_Local will be -1, as - initialized above. Otherwise, the local index for this node on the - current processor will be returned and used to instantiate the vars. ---*/ - iPoint_Local = Global2Local[iPoint_Global]; - if (iPoint_Local >= 0) { - - /*--- The PointID is not stored --*/ - point_line >> index; - - /*--- Store the solution (starting with node coordinates) --*/ - for (iField = 0; iField < nVar; iField++) - point_line >> Solution[iField]; - - node[iPoint_Local]->SetSolution(Solution); - - - } - iPoint_Global++; - } - - /*--- Close the restart file ---*/ - solution_file.close(); - - /*--- Free memory needed for the transformation ---*/ - delete [] Global2Local; - delete [] Solution; - + + /*--- Output the file name to the console. ---*/ + if (rank == MASTER_NODE) + cout << "Reading and storing the solution from " << filename + << "." << endl; + + /*--- Set the number of variables, one per field in the + restart file (without including the PointID) ---*/ + nVar = config->fields.size() - 1; + + su2double *Solution = new su2double[nVar]; + + /*--- In case this is a parallel simulation, we need to perform the + Global2Local index transformation first. ---*/ + long *Global2Local = NULL; + Global2Local = new long[geometry->GetGlobal_nPointDomain()]; + /*--- First, set all indices to a negative value by default ---*/ + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) { + Global2Local[iPoint] = -1; + } + + /*--- Now fill array with the transform values only for local points ---*/ + for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { + Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; + } + + /*--- Read all lines in the restart file ---*/ + long iPoint_Local = 0; unsigned long iPoint_Global = 0; + + /*--- The first line is the header ---*/ + getline (solution_file, text_line); + + while (getline (solution_file, text_line)) { + istringstream point_line(text_line); + + /*--- Retrieve local index. If this node from the restart file lives + on a different processor, the value of iPoint_Local will be -1, as + initialized above. Otherwise, the local index for this node on the + current processor will be returned and used to instantiate the vars. ---*/ + iPoint_Local = Global2Local[iPoint_Global]; + if (iPoint_Local >= 0) { + + /*--- The PointID is not stored --*/ + point_line >> index; + + /*--- Store the solution (starting with node coordinates) --*/ + for (iField = 0; iField < nVar; iField++) + point_line >> Solution[iField]; + + node[iPoint_Local]->SetSolution(Solution); + + + } + iPoint_Global++; + } + + /*--- Close the restart file ---*/ + solution_file.close(); + + /*--- Free memory needed for the transformation ---*/ + delete [] Global2Local; + delete [] Solution; + } CBaselineSolver::~CBaselineSolver(void) { } diff --git a/SU2_CFD/src/solver_template.cpp b/SU2_CFD/src/solver_template.cpp index 9da7ec05748..86d4a56823a 100644 --- a/SU2_CFD/src/solver_template.cpp +++ b/SU2_CFD/src/solver_template.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 4e145ed6c54..4e28a1469fb 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index c9d196dcbaa..0ff25e1293b 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/transport_model.cpp b/SU2_CFD/src/transport_model.cpp index 705364e6fc3..72385b25625 100644 --- a/SU2_CFD/src/transport_model.cpp +++ b/SU2_CFD/src/transport_model.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_adjoint_discrete.cpp b/SU2_CFD/src/variable_adjoint_discrete.cpp index 2661e685afc..3c897c7440e 100644 --- a/SU2_CFD/src/variable_adjoint_discrete.cpp +++ b/SU2_CFD/src/variable_adjoint_discrete.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_adjoint_levelset.cpp b/SU2_CFD/src/variable_adjoint_levelset.cpp index 7340343e258..68c360d24c8 100644 --- a/SU2_CFD/src/variable_adjoint_levelset.cpp +++ b/SU2_CFD/src/variable_adjoint_levelset.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_adjoint_mean.cpp b/SU2_CFD/src/variable_adjoint_mean.cpp index 65373e803b3..69c16aeacb7 100644 --- a/SU2_CFD/src/variable_adjoint_mean.cpp +++ b/SU2_CFD/src/variable_adjoint_mean.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_adjoint_turbulent.cpp b/SU2_CFD/src/variable_adjoint_turbulent.cpp index 1150312da36..ad023f8f1ad 100644 --- a/SU2_CFD/src/variable_adjoint_turbulent.cpp +++ b/SU2_CFD/src/variable_adjoint_turbulent.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp index 88e5a074061..631f7026eef 100644 --- a/SU2_CFD/src/variable_direct_elasticity.cpp +++ b/SU2_CFD/src/variable_direct_elasticity.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_heat.cpp b/SU2_CFD/src/variable_direct_heat.cpp index 7a0f594bd93..8e175faff77 100644 --- a/SU2_CFD/src/variable_direct_heat.cpp +++ b/SU2_CFD/src/variable_direct_heat.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_mean.cpp b/SU2_CFD/src/variable_direct_mean.cpp index a56a146847f..7704d4c3332 100644 --- a/SU2_CFD/src/variable_direct_mean.cpp +++ b/SU2_CFD/src/variable_direct_mean.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_poisson.cpp b/SU2_CFD/src/variable_direct_poisson.cpp index a7b7c01d3dc..05221b702e4 100644 --- a/SU2_CFD/src/variable_direct_poisson.cpp +++ b/SU2_CFD/src/variable_direct_poisson.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_transition.cpp b/SU2_CFD/src/variable_direct_transition.cpp index 6a1cbb234c5..ac9a8252f6d 100644 --- a/SU2_CFD/src/variable_direct_transition.cpp +++ b/SU2_CFD/src/variable_direct_transition.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_turbulent.cpp b/SU2_CFD/src/variable_direct_turbulent.cpp index 29550085697..f6c57ec5f7d 100644 --- a/SU2_CFD/src/variable_direct_turbulent.cpp +++ b/SU2_CFD/src/variable_direct_turbulent.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_direct_wave.cpp b/SU2_CFD/src/variable_direct_wave.cpp index 5a821a813f6..6898536c7f8 100644 --- a/SU2_CFD/src/variable_direct_wave.cpp +++ b/SU2_CFD/src/variable_direct_wave.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 50cf54accd7..151b473f2dd 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_structure.cpp b/SU2_CFD/src/variable_structure.cpp index 895f06efe8d..bacf589c26f 100644 --- a/SU2_CFD/src/variable_structure.cpp +++ b/SU2_CFD/src/variable_structure.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variable_template.cpp b/SU2_CFD/src/variable_template.cpp index f9f3ff3c141..5b3c0596b25 100644 --- a/SU2_CFD/src/variable_template.cpp +++ b/SU2_CFD/src/variable_template.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/include/SU2_DEF.hpp b/SU2_DEF/include/SU2_DEF.hpp index 089c34b96b8..9ccb16b15ce 100644 --- a/SU2_DEF/include/SU2_DEF.hpp +++ b/SU2_DEF/include/SU2_DEF.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/obj/Makefile.am b/SU2_DEF/obj/Makefile.am index 383bc0b40aa..0c09c69eca5 100644 --- a/SU2_DEF/obj/Makefile.am +++ b/SU2_DEF/obj/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index cac57d3b19c..bc3a72f7c26 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index bd2c3f0c41f..d69482a598f 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DOT/include/SU2_DOT.hpp b/SU2_DOT/include/SU2_DOT.hpp index f70cdd1081f..14fc71b833e 100644 --- a/SU2_DOT/include/SU2_DOT.hpp +++ b/SU2_DOT/include/SU2_DOT.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DOT/obj/Makefile.am b/SU2_DOT/obj/Makefile.am index 3644be344ee..72cc70f5a2a 100644 --- a/SU2_DOT/obj/Makefile.am +++ b/SU2_DOT/obj/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index 3008d469426..51fb80ed6f4 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_GEO/include/SU2_GEO.hpp b/SU2_GEO/include/SU2_GEO.hpp index 31eab3cd9af..07307011a9c 100644 --- a/SU2_GEO/include/SU2_GEO.hpp +++ b/SU2_GEO/include/SU2_GEO.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_GEO/obj/Makefile.am b/SU2_GEO/obj/Makefile.am index 9efb591f989..0306fb81e15 100644 --- a/SU2_GEO/obj/Makefile.am +++ b/SU2_GEO/obj/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 3b67fb7494e..78e0c83ffbb 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 2f26d2a12e8..aa5bafdf07d 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_IDE/Xcode/SU2_GEO.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_GEO.xcodeproj/project.pbxproj index 44bd14a4e8a..9725ad53ec4 100644 --- a/SU2_IDE/Xcode/SU2_GEO.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_GEO.xcodeproj/project.pbxproj @@ -16,9 +16,9 @@ 05E6DB3F17EB61C300FA1F7E /* primal_grid_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05E6DB3617EB61C300FA1F7E /* primal_grid_structure.cpp */; }; 05E6DB4017EB61C300FA1F7E /* vector_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05E6DB3717EB61C300FA1F7E /* vector_structure.cpp */; }; 05E6DC5717EB649500FA1F7E /* SU2_GEO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05E6DC5617EB649500FA1F7E /* SU2_GEO.cpp */; }; - E941BBDC1B71D968005C6C06 /* datatype_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBD91B71D968005C6C06 /* datatype_structure.cpp */; }; E941BBDD1B71D968005C6C06 /* linear_solvers_structure_b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBDA1B71D968005C6C06 /* linear_solvers_structure_b.cpp */; }; E941BBDE1B71D968005C6C06 /* mpi_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBDB1B71D968005C6C06 /* mpi_structure.cpp */; }; + E9F232E21C7BFDCB005CA9AE /* ad_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9F232E11C7BFDCB005CA9AE /* ad_structure.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -63,7 +63,6 @@ 05E6DB3717EB61C300FA1F7E /* vector_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vector_structure.cpp; path = ../../Common/src/vector_structure.cpp; sourceTree = ""; }; 05E6DC5517EB649000FA1F7E /* SU2_GEO.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = SU2_GEO.hpp; path = ../../SU2_GEO/include/SU2_GEO.hpp; sourceTree = ""; }; 05E6DC5617EB649500FA1F7E /* SU2_GEO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SU2_GEO.cpp; path = ../../SU2_GEO/src/SU2_GEO.cpp; sourceTree = ""; }; - E941BBD91B71D968005C6C06 /* datatype_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = datatype_structure.cpp; path = ../../Common/src/datatype_structure.cpp; sourceTree = ""; }; E941BBDA1B71D968005C6C06 /* linear_solvers_structure_b.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = linear_solvers_structure_b.cpp; path = ../../Common/src/linear_solvers_structure_b.cpp; sourceTree = ""; }; E941BBDB1B71D968005C6C06 /* mpi_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mpi_structure.cpp; path = ../../Common/src/mpi_structure.cpp; sourceTree = ""; }; E941BBDF1B71D986005C6C06 /* datatype_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = datatype_structure.inl; path = ../../Common/include/datatype_structure.inl; sourceTree = ""; }; @@ -83,6 +82,9 @@ E941BBEE1B71D9CA005C6C06 /* primitive_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = primitive_structure.inl; sourceTree = ""; }; E941BBEF1B71D9CA005C6C06 /* linear_solvers_structure_b.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = linear_solvers_structure_b.hpp; path = ../../Common/include/linear_solvers_structure_b.hpp; sourceTree = ""; }; E941BBF01B71D9CA005C6C06 /* mpi_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = mpi_structure.hpp; path = ../../Common/include/mpi_structure.hpp; sourceTree = ""; }; + E9F232DF1C7BFDBC005CA9AE /* ad_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = ad_structure.hpp; path = ../../Common/include/ad_structure.hpp; sourceTree = ""; }; + E9F232E01C7BFDBC005CA9AE /* ad_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ad_structure.inl; path = ../../Common/include/ad_structure.inl; sourceTree = ""; }; + E9F232E11C7BFDCB005CA9AE /* ad_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ad_structure.cpp; path = ../../Common/src/ad_structure.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -113,6 +115,7 @@ E941BBE11B71D9CA005C6C06 /* datatype_structure.hpp */, E941BBE21B71D9CA005C6C06 /* datatypes */, E941BBF01B71D9CA005C6C06 /* mpi_structure.hpp */, + E9F232DF1C7BFDBC005CA9AE /* ad_structure.hpp */, ); name = Include; sourceTree = ""; @@ -130,6 +133,7 @@ 05E6DA7A17EB5FAE00FA1F7E /* vector_structure.inl */, E941BBDF1B71D986005C6C06 /* datatype_structure.inl */, E941BBE01B71D986005C6C06 /* mpi_structure.inl */, + E9F232E01C7BFDBC005CA9AE /* ad_structure.inl */, ); name = InLine; sourceTree = ""; @@ -159,8 +163,8 @@ 05E6DB3517EB61C300FA1F7E /* matrix_structure.cpp */, 05E6DB3617EB61C300FA1F7E /* primal_grid_structure.cpp */, 05E6DB3717EB61C300FA1F7E /* vector_structure.cpp */, - E941BBD91B71D968005C6C06 /* datatype_structure.cpp */, E941BBDB1B71D968005C6C06 /* mpi_structure.cpp */, + E9F232E11C7BFDCB005CA9AE /* ad_structure.cpp */, ); name = Source; sourceTree = ""; @@ -251,10 +255,10 @@ 05E6DB3C17EB61C300FA1F7E /* grid_movement_structure.cpp in Sources */, 05E6DB3D17EB61C300FA1F7E /* linear_solvers_structure.cpp in Sources */, 05E6DB3E17EB61C300FA1F7E /* matrix_structure.cpp in Sources */, + E9F232E21C7BFDCB005CA9AE /* ad_structure.cpp in Sources */, E941BBDD1B71D968005C6C06 /* linear_solvers_structure_b.cpp in Sources */, 05E6DB3F17EB61C300FA1F7E /* primal_grid_structure.cpp in Sources */, E941BBDE1B71D968005C6C06 /* mpi_structure.cpp in Sources */, - E941BBDC1B71D968005C6C06 /* datatype_structure.cpp in Sources */, 05E6DB4017EB61C300FA1F7E /* vector_structure.cpp in Sources */, 05E6DC5717EB649500FA1F7E /* SU2_GEO.cpp in Sources */, ); diff --git a/SU2_MSH/include/SU2_MSH.hpp b/SU2_MSH/include/SU2_MSH.hpp index f581ac184ec..1ab5d64e97a 100644 --- a/SU2_MSH/include/SU2_MSH.hpp +++ b/SU2_MSH/include/SU2_MSH.hpp @@ -14,7 +14,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_MSH/obj/Makefile.am b/SU2_MSH/obj/Makefile.am index 11bc3e8176b..fda98d3e5ae 100644 --- a/SU2_MSH/obj/Makefile.am +++ b/SU2_MSH/obj/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index d8197c2c839..b32413418f4 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_MSH/src/SU2_MSH.cpp b/SU2_MSH/src/SU2_MSH.cpp index 4b45bdb8411..30865e9e9f2 100644 --- a/SU2_MSH/src/SU2_MSH.cpp +++ b/SU2_MSH/src/SU2_MSH.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/Makefile.am b/SU2_PY/Makefile.am index 8fc532d8e37..025562d1d5a 100644 --- a/SU2_PY/Makefile.am +++ b/SU2_PY/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index 3d43f5b0b11..7744d44fc34 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py index 8787e9f2f04..bfe848d1c26 100644 --- a/SU2_PY/SU2/eval/design.py +++ b/SU2_PY/SU2/eval/design.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/eval/functions.py b/SU2_PY/SU2/eval/functions.py index 624ca08d43d..184dca34f46 100644 --- a/SU2_PY/SU2/eval/functions.py +++ b/SU2_PY/SU2/eval/functions.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index 52fbd668abc..65a1036b1d3 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index 261621f40b9..d260f0be476 100644 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/config_options.py b/SU2_PY/SU2/io/config_options.py index c53d7ce9612..09c4feaf7fd 100644 --- a/SU2_PY/SU2/io/config_options.py +++ b/SU2_PY/SU2/io/config_options.py @@ -12,7 +12,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/SU2_PY/SU2/io/data.py b/SU2_PY/SU2/io/data.py index 8fd97850757..a9d40e3e1ff 100644 --- a/SU2_PY/SU2/io/data.py +++ b/SU2_PY/SU2/io/data.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/filelock.py b/SU2_PY/SU2/io/filelock.py index ac22f490c6f..05988d4a626 100644 --- a/SU2_PY/SU2/io/filelock.py +++ b/SU2_PY/SU2/io/filelock.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/redirect.py b/SU2_PY/SU2/io/redirect.py index 5bd5644a3f6..bc631dee8ea 100644 --- a/SU2_PY/SU2/io/redirect.py +++ b/SU2_PY/SU2/io/redirect.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/state.py b/SU2_PY/SU2/io/state.py index b897fb29634..5577473b71d 100644 --- a/SU2_PY/SU2/io/state.py +++ b/SU2_PY/SU2/io/state.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py index 3932ffbc2cd..bf9e8e9dd78 100644 --- a/SU2_PY/SU2/io/tools.py +++ b/SU2_PY/SU2/io/tools.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/mesh/adapt.py b/SU2_PY/SU2/mesh/adapt.py index d9c4dddfcab..830cef24870 100644 --- a/SU2_PY/SU2/mesh/adapt.py +++ b/SU2_PY/SU2/mesh/adapt.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/mesh/tools.py b/SU2_PY/SU2/mesh/tools.py index 8e39052384f..dc11a140dee 100644 --- a/SU2_PY/SU2/mesh/tools.py +++ b/SU2_PY/SU2/mesh/tools.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/opt/project.py b/SU2_PY/SU2/opt/project.py index ee9b94b6ccd..0a7add6b88b 100644 --- a/SU2_PY/SU2/opt/project.py +++ b/SU2_PY/SU2/opt/project.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py index 8b91967185c..1113e3e8c8e 100644 --- a/SU2_PY/SU2/opt/scipy_tools.py +++ b/SU2_PY/SU2/opt/scipy_tools.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/opt/server.py b/SU2_PY/SU2/opt/server.py index 6c9c61fbf6e..75d93c77566 100644 --- a/SU2_PY/SU2/opt/server.py +++ b/SU2_PY/SU2/opt/server.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/adaptation.py b/SU2_PY/SU2/run/adaptation.py index d00cd479b62..51b041f181b 100644 --- a/SU2_PY/SU2/run/adaptation.py +++ b/SU2_PY/SU2/run/adaptation.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/adjoint.py b/SU2_PY/SU2/run/adjoint.py index acab5ec2f7b..c39c3907b47 100644 --- a/SU2_PY/SU2/run/adjoint.py +++ b/SU2_PY/SU2/run/adjoint.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/deform.py b/SU2_PY/SU2/run/deform.py index 4eacd801749..6414d542f90 100644 --- a/SU2_PY/SU2/run/deform.py +++ b/SU2_PY/SU2/run/deform.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py index 8cb5ea7e41c..d63705f0833 100644 --- a/SU2_PY/SU2/run/direct.py +++ b/SU2_PY/SU2/run/direct.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index f6836a79ba7..0af2326bc9a 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index 21ed5dc030c..86eccb26041 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py index 6235e6efc4f..1a75f6584d2 100644 --- a/SU2_PY/SU2/run/merge.py +++ b/SU2_PY/SU2/run/merge.py @@ -3,7 +3,7 @@ # \author T. Economon, T. Lukaczyk, F. Palacios # \version 4.1.0 "Cardinal" # -# Copyright (C) 2012-2015 SU2 Developers. +# Copyright (C) 2012-2016 SU2 Developers. # # SU2 is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py index fa02369fb89..7237cc934bc 100644 --- a/SU2_PY/SU2/run/projection.py +++ b/SU2_PY/SU2/run/projection.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/filter_adjoint.py b/SU2_PY/SU2/util/filter_adjoint.py index 4f1fc7b8bd2..2e1081a1739 100644 --- a/SU2_PY/SU2/util/filter_adjoint.py +++ b/SU2_PY/SU2/util/filter_adjoint.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/plot.py b/SU2_PY/SU2/util/plot.py index 847b18c7b98..6c730f10d0b 100644 --- a/SU2_PY/SU2/util/plot.py +++ b/SU2_PY/SU2/util/plot.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/which.py b/SU2_PY/SU2/util/which.py index 2cf8a1cfae1..dda0142db75 100644 --- a/SU2_PY/SU2/util/which.py +++ b/SU2_PY/SU2/util/which.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/change_version_number.py b/SU2_PY/change_version_number.py index 40245ab74b7..7c812348fdf 100755 --- a/SU2_PY/change_version_number.py +++ b/SU2_PY/change_version_number.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/compute_polar.py b/SU2_PY/compute_polar.py index b3e3ef5d3f8..845053e4f01 100755 --- a/SU2_PY/compute_polar.py +++ b/SU2_PY/compute_polar.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/compute_stability.py b/SU2_PY/compute_stability.py index 03d48a658a0..b878ee7fa58 100755 --- a/SU2_PY/compute_stability.py +++ b/SU2_PY/compute_stability.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/config_gui.py b/SU2_PY/config_gui.py index 4c96adec06d..bf478729957 100755 --- a/SU2_PY/config_gui.py +++ b/SU2_PY/config_gui.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/continuous_adjoint.py b/SU2_PY/continuous_adjoint.py index bad174eca84..10101583c75 100755 --- a/SU2_PY/continuous_adjoint.py +++ b/SU2_PY/continuous_adjoint.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/direct_differentiation.py b/SU2_PY/direct_differentiation.py index d1700725345..22149a0e6fa 100755 --- a/SU2_PY/direct_differentiation.py +++ b/SU2_PY/direct_differentiation.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/discrete_adjoint.py b/SU2_PY/discrete_adjoint.py index 3358238b970..77b0b0d44a8 100755 --- a/SU2_PY/discrete_adjoint.py +++ b/SU2_PY/discrete_adjoint.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/finite_differences.py b/SU2_PY/finite_differences.py index 0c02c4fa9da..11b54874bd5 100755 --- a/SU2_PY/finite_differences.py +++ b/SU2_PY/finite_differences.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/merge_solution.py b/SU2_PY/merge_solution.py index 676c8317229..483fdb41696 100755 --- a/SU2_PY/merge_solution.py +++ b/SU2_PY/merge_solution.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/mesh_adaptation.py b/SU2_PY/mesh_adaptation.py index 16fcc6feb21..4a12c2a2626 100755 --- a/SU2_PY/mesh_adaptation.py +++ b/SU2_PY/mesh_adaptation.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/mesh_deformation.py b/SU2_PY/mesh_deformation.py index 1dd16d97709..5a0b0f7fe3c 100755 --- a/SU2_PY/mesh_deformation.py +++ b/SU2_PY/mesh_deformation.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/package_tests.py b/SU2_PY/package_tests.py index 20dc29b8294..f1129f7ee74 100755 --- a/SU2_PY/package_tests.py +++ b/SU2_PY/package_tests.py @@ -13,7 +13,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/parallel_computation.py b/SU2_PY/parallel_computation.py index 96fece78f73..05be0bbd5c5 100755 --- a/SU2_PY/parallel_computation.py +++ b/SU2_PY/parallel_computation.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py index 3501c402634..a0a5d718252 100644 --- a/SU2_PY/parallel_computation_fsi.py +++ b/SU2_PY/parallel_computation_fsi.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/parse_config.py b/SU2_PY/parse_config.py index 9f63c70c139..6a322e880b0 100755 --- a/SU2_PY/parse_config.py +++ b/SU2_PY/parse_config.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/patient_designspace.py b/SU2_PY/patient_designspace.py index 6a2e22ac777..e692da8c466 100755 --- a/SU2_PY/patient_designspace.py +++ b/SU2_PY/patient_designspace.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index b88271dfcd5..8cceba2beb6 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -15,7 +15,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py index 3fd216cd1c1..be876c9e073 100755 --- a/SU2_PY/shape_optimization.py +++ b/SU2_PY/shape_optimization.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -76,7 +76,7 @@ def main(): sys.stdout.write('| - Prof. Alberto Guardone\'s group at Polytechnic University of Milan. |\n') sys.stdout.write('| - Prof. Rafael Palacios\' group at Imperial College London. |\n') sys.stdout.write('-------------------------------------------------------------------------\n') - sys.stdout.write('| Copyright (C) 2012-2015 SU2, the open-source CFD code. |\n') + sys.stdout.write('| Copyright (C) 2012-2016 SU2, the open-source CFD code. |\n') sys.stdout.write('| |\n') sys.stdout.write('| SU2 is free software; you can redistribute it and/or |\n') sys.stdout.write('| modify it under the terms of the GNU Lesser General Public |\n') diff --git a/SU2_SOL/include/SU2_SOL.hpp b/SU2_SOL/include/SU2_SOL.hpp index 065b17b269e..cc2ba407df1 100644 --- a/SU2_SOL/include/SU2_SOL.hpp +++ b/SU2_SOL/include/SU2_SOL.hpp @@ -8,7 +8,7 @@ * SU2 Project Leaders: Dr. Palacios (Francisco.D.Palacios@boeing.com) * Dr. Economon (economon@stanford.edu) * - * Copyright (C) 2012-2015 SU2 Developers. + * Copyright (C) 2012-2016 SU2 Developers. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_SOL/obj/Makefile.am b/SU2_SOL/obj/Makefile.am index b8a4b7301d7..140d0a6f53f 100644 --- a/SU2_SOL/obj/Makefile.am +++ b/SU2_SOL/obj/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 1c150d04f83..260eeacd35d 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -309,8 +309,6 @@ ___bin_SU2_SOL_SOURCES = \ ../src/SU2_SOL.cpp -# - # always link to built dependencies from ./externals # if BUILD_CGNS diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index cfda12ef5c7..18143fcdc97 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -13,7 +13,7 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * - * Copyright (C) 2012-2015 SU2, the open-source CFD code. + * Copyright (C) 2012-2016 SU2, the open-source CFD code. * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 6424c365e63..fe233c1b3c4 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index be7683cd3ed..e28ccef6b92 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index fd0995f5de0..2bb045a1b6c 100755 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 4a50c07a3b3..34ac4dfd4a3 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index 706546e46c0..bd86b87aff0 100755 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/configure b/configure index 3afcdfe2bc4..b35205935b5 100755 --- a/configure +++ b/configure @@ -8505,7 +8505,7 @@ abs_prefix=$prefix #`(cd $prefix && pwd)` | - Prof. Alberto Guardone's group at Polytechnic University of Milan. | | - Prof. Rafael Palacios' group at Imperial College London. | ------------------------------------------------------------------------- -| Copyright (C) 2012-2015 SU2, the open-source CFD code. | +| Copyright (C) 2012-2016 SU2, the open-source CFD code. | | | | SU2 is free software; you can redistribute it and/or | | modify it under the terms of the GNU Lesser General Public | @@ -8588,7 +8588,7 @@ $as_echo " | - Prof. Alberto Guardone's group at Polytechnic University of Milan. | | - Prof. Rafael Palacios' group at Imperial College London. | ------------------------------------------------------------------------- -| Copyright (C) 2012-2015 SU2, the open-source CFD code. | +| Copyright (C) 2012-2016 SU2, the open-source CFD code. | | | | SU2 is free software; you can redistribute it and/or | | modify it under the terms of the GNU Lesser General Public | diff --git a/configure.ac b/configure.ac index e2d98a25adc..e8fc354e873 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -588,7 +588,7 @@ AC_MSG_RESULT([ | - Prof. Alberto Guardone's group at Polytechnic University of Milan. | | - Prof. Rafael Palacios' group at Imperial College London. | ------------------------------------------------------------------------- -| Copyright (C) 2012-2015 SU2, the open-source CFD code. | +| Copyright (C) 2012-2016 SU2, the open-source CFD code. | | | | SU2 is free software; you can redistribute it and/or | | modify it under the terms of the GNU Lesser General Public | diff --git a/externals/Makefile.am b/externals/Makefile.am index c22f4138200..2ba033ab63b 100644 --- a/externals/Makefile.am +++ b/externals/Makefile.am @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/externals/Makefile.in b/externals/Makefile.in index 1db60358472..a38b264a183 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -30,7 +30,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/preconfigure.py b/preconfigure.py index ca1c280a1f9..5c32a7fea58 100755 --- a/preconfigure.py +++ b/preconfigure.py @@ -14,7 +14,7 @@ # Prof. Alberto Guardone's group at Polytechnic University of Milan. # Prof. Rafael Palacios' group at Imperial College London. # -# Copyright (C) 2012-2015 SU2, the open-source CFD code. +# Copyright (C) 2012-2016 SU2, the open-source CFD code. # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -575,7 +575,7 @@ def header(): '| - Prof. Alberto Guardone\'s group at Polytechnic University of Milan. | \n'\ '| - Prof. Rafael Palacios\' group at Imperial College London. | \n'\ '------------------------------------------------------------------------- \n'\ - '| Copyright (C) 2012-2015 SU2, the open-source CFD code. | \n'\ + '| Copyright (C) 2012-2016 SU2, the open-source CFD code. | \n'\ '| | \n'\ '| SU2 is free software; you can redistribute it and/or | \n'\ '| modify it under the terms of the GNU Lesser General Public | \n'\ From 6b36f7aff51d1d7908cad0ab68d596fbd7b0f13c Mon Sep 17 00:00:00 2001 From: Francisco Palacios Date: Sun, 28 Feb 2016 22:23:11 -0800 Subject: [PATCH 214/269] Updated Adjoint variable to Continuous_Adjoint --- Common/include/config_structure.hpp | 12 ++++----- Common/include/config_structure.inl | 2 +- Common/include/option_structure.hpp | 29 +++++++++++---------- Common/src/config_structure.cpp | 34 ++++++++++++------------- Common/src/grid_movement_structure.cpp | 12 ++++----- SU2_CFD/src/driver_structure.cpp | 2 +- SU2_CFD/src/iteration_structure.cpp | 2 +- SU2_CFD/src/output_fieldview.cpp | 10 +++----- SU2_CFD/src/output_paraview.cpp | 4 +-- SU2_CFD/src/output_structure.cpp | 10 ++++---- SU2_CFD/src/output_tecplot.cpp | 6 ++--- SU2_CFD/src/solver_direct_mean.cpp | 14 +++++----- SU2_CFD/src/solver_direct_turbulent.cpp | 6 ++--- SU2_CFD/src/solver_structure.cpp | 6 ++--- SU2_PY/SU2/run/geometry.py | 11 +++++--- 15 files changed, 82 insertions(+), 78 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 534e1f4f0b1..7ae41ee8bb8 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -84,7 +84,7 @@ class CConfig { su2double FFD_Tol; /*!< \brief Tolerance in the point inversion problem. */ bool Viscous_Limiter_Flow, Viscous_Limiter_Turb; /*!< \brief Viscous limiters. */ bool Write_Conv_FSI; /*!< \brief Write convergence file for FSI problems. */ - bool Adjoint, /*!< \brief Flag to know if the code is solving an adjoint problem. */ + bool ContinuousAdjoint, /*!< \brief Flag to know if the code is solving an adjoint problem. */ Viscous, /*!< \brief Flag to know if the code is solving a viscous problem. */ EquivArea, /*!< \brief Flag to know if the code is going to compute and plot the equivalent area. */ InvDesign_Cp, /*!< \brief Flag to know if the code is going to compute and plot the inverse design. */ @@ -856,12 +856,12 @@ class CConfig { option_map.insert(pair(name, val)); } - void addMathProblemOption(const string name, bool & Adjoint, const bool & Adjoint_default, - bool & Restart_Flow, const bool & Restart_Flow_default, - bool &DiscreteAdjoint, const bool & DiscreteAdjoint_default) { + void addMathProblemOption(const string name, bool & ContinuousAdjoint, const bool & ContinuousAdjoint_default, + bool & DiscreteAdjoint, const bool & DiscreteAdjoint_default, + bool & Restart_Flow, const bool & Restart_Flow_default) { assert(option_map.find(name) == option_map.end()); all_options.insert(pair(name, true)); - COptionBase* val = new COptionMathProblem(name, Adjoint, Adjoint_default, Restart_Flow, Restart_Flow_default, DiscreteAdjoint, DiscreteAdjoint_default); + COptionBase* val = new COptionMathProblem(name, ContinuousAdjoint, ContinuousAdjoint_default, DiscreteAdjoint, DiscreteAdjoint_default, Restart_Flow, Restart_Flow_default); option_map.insert(pair(name, val)); } @@ -4419,7 +4419,7 @@ class CConfig { * \brief Determines if problem is adjoint * \return true if Adjoint */ - bool GetAdjoint(void); + bool GetContinuous_Adjoint(void); /*! * \brief Determines if problem is viscous diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index bb273f21663..af0e96172b3 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -59,7 +59,7 @@ inline unsigned short CConfig::GetRef_NonDim(void) { return Ref_NonDim; } inline void CConfig::SetKind_SU2(unsigned short val_kind_su2) { Kind_SU2 = val_kind_su2 ; } -inline bool CConfig::GetAdjoint(void) { return Adjoint; } +inline bool CConfig::GetContinuous_Adjoint(void) { return ContinuousAdjoint; } inline bool CConfig::GetViscous(void) { return Viscous; } diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 5b409c52299..9dbba555014 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1858,19 +1858,19 @@ class COptionConvect : public COptionBase{ class COptionMathProblem : public COptionBase{ string name; // identifier for the option - bool & adjoint; - bool & restart; + bool & cont_adjoint; + bool cont_adjoint_def; bool & disc_adjoint; - bool adjoint_def; - bool restart_def; bool disc_adjoint_def; + bool & restart; + bool restart_def; public: - COptionMathProblem(string option_field_name, bool & adjoint_field, bool adjoint_default, bool & restart_field, bool restart_default, bool & disc_adjoint_field, bool disc_adjoint_default) : adjoint(adjoint_field), restart(restart_field), disc_adjoint(disc_adjoint_field){ + COptionMathProblem(string option_field_name, bool & cont_adjoint_field, bool cont_adjoint_default, bool & disc_adjoint_field, bool disc_adjoint_default, bool & restart_field, bool restart_default) : cont_adjoint(cont_adjoint_field), disc_adjoint(disc_adjoint_field), restart(restart_field){ this->name = option_field_name; - this->adjoint_def = adjoint_default; - this->restart_def = restart_default; + this->cont_adjoint_def = cont_adjoint_default; this->disc_adjoint_def = disc_adjoint_default; + this->restart_def = restart_default; } ~COptionMathProblem() {}; @@ -1886,31 +1886,32 @@ class COptionMathProblem : public COptionBase{ return badValue(option_value, "math problem", this->name); } if (option_value[0] == "DIRECT") { - this->adjoint = false; - this->restart = false; + this->cont_adjoint = false; this->disc_adjoint = false; + this->restart = false; return ""; } if (option_value[0] == "CONTINUOUS_ADJOINT") { - this->adjoint= true; - this->restart= true; + this->cont_adjoint= true; this->disc_adjoint = false; + this->restart= true; return ""; } if (option_value[0] == "DISCRETE_ADJOINT"){ this->disc_adjoint = true; + this->cont_adjoint= false; this->restart = true; - this->adjoint= false; return ""; } return "option in math problem map not considered in constructor"; } void SetDefault() { - this->adjoint = this->adjoint_def; - this->restart = this->restart_def; + this->cont_adjoint = this->cont_adjoint_def; this->disc_adjoint = this->disc_adjoint_def; + this->restart = this->restart_def; } + }; class COptionDVParam : public COptionBase{ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index b03ced3c702..d31f0a89cb2 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -218,7 +218,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /*!\brief PHYSICAL_PROBLEM \n DESCRIPTION: Physical governing equations \n Options: see \link Solver_Map \endlink \n DEFAULT: NO_SOLVER \ingroup Config*/ addEnumOption("PHYSICAL_PROBLEM", Kind_Solver, Solver_Map, NO_SOLVER); /*!\brief MATH_PROBLEM \n DESCRIPTION: Mathematical problem \n Options: DIRECT, ADJOINT \ingroup Config*/ - addMathProblemOption("MATH_PROBLEM" , Adjoint, false , Restart_Flow, false, DiscreteAdjoint, false); + addMathProblemOption("MATH_PROBLEM" , ContinuousAdjoint, false , Restart_Flow, false, DiscreteAdjoint, false); /*!\brief KIND_TURB_MODEL \n DESCRIPTION: Specify turbulence model \n Options: see \link Turb_Model_Map \endlink \n DEFAULT: NO_TURB_MODEL \ingroup Config*/ addEnumOption("KIND_TURB_MODEL", Kind_Turb_Model, Turb_Model_Map, NO_TURB_MODEL); @@ -1573,7 +1573,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ /*--- Deactivate the multigrid in the adjoint problem ---*/ - if ((Adjoint && !MG_AdjointFlow) || + if ((ContinuousAdjoint && !MG_AdjointFlow) || (Unsteady_Simulation == TIME_STEPPING)) { nMGLevels = 0; } /*--- If Fluid Structure Interaction, set the solver for each zone. @@ -2385,7 +2385,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ if (Restart) MGCycle = V_CYCLE; - if (Adjoint) { + if (ContinuousAdjoint) { if (Kind_Solver == EULER) Kind_Solver = ADJ_EULER; if (Kind_Solver == NAVIER_STOKES) Kind_Solver = ADJ_NAVIER_STOKES; if (Kind_Solver == RANS) Kind_Solver = ADJ_RANS; @@ -2394,7 +2394,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ nCFL = nMGLevels+1; CFL = new su2double[nCFL]; CFL[0] = CFLFineGrid; - if (Adjoint){ + if (ContinuousAdjoint){ CFL[0] = CFL[0] * CFLRedCoeff_AdjFlow; CFL_AdaptParam[2]*=CFLRedCoeff_AdjFlow; CFL_AdaptParam[3]*=CFLRedCoeff_AdjFlow; @@ -3092,15 +3092,15 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { } if (Restart) { - if (!Adjoint && Kind_Solver != FEM_ELASTICITY) cout << "Read flow solution from: " << Solution_FlowFileName << "." << endl; - if (Adjoint) cout << "Read adjoint solution from: " << Solution_AdjFileName << "." << endl; + if (!ContinuousAdjoint && Kind_Solver != FEM_ELASTICITY) cout << "Read flow solution from: " << Solution_FlowFileName << "." << endl; + if (ContinuousAdjoint) cout << "Read adjoint solution from: " << Solution_AdjFileName << "." << endl; if (Kind_Solver == FEM_ELASTICITY) cout << "Read structural solution from: " << Solution_FEMFileName << "." << endl; } else { cout << "No restart solution, use the values at infinity (freestream)." << endl; } - if (Adjoint) + if (ContinuousAdjoint) cout << "Read flow solution from: " << Solution_FlowFileName << "." << endl; @@ -3351,7 +3351,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { } } - if (((val_software == SU2_CFD) && ( Adjoint )) || (val_software == SU2_DOT)) { + if (((val_software == SU2_CFD) && ( ContinuousAdjoint )) || (val_software == SU2_DOT)) { cout << endl <<"----------------------- Design problem definition -----------------------" << endl; switch (Kind_ObjFunc) { @@ -3735,7 +3735,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << "Maximum number of iterations: " << nExtIter <<"."<< endl; if (ConvCriteria == CAUCHY) { - if (!Adjoint && !DiscreteAdjoint) + if (!ContinuousAdjoint && !DiscreteAdjoint) switch (Cauchy_Func_Flow) { case LIFT_COEFFICIENT: cout << "Cauchy criteria for Lift using " << Cauchy_Elems << " elements and epsilon " <GetUnsteady_Simulation() == TIME_SPECTRAL); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); /*--- Problem dimension and physical time step ---*/ nDim = geometry->GetnDim(); @@ -2138,7 +2138,7 @@ void CVolumetricMovement::Rigid_Pitching(CGeometry *geometry, CConfig *config, u unsigned short nDim = geometry->GetnDim(); unsigned long iPoint; bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -2297,7 +2297,7 @@ void CVolumetricMovement::Rigid_Plunging(CGeometry *geometry, CConfig *config, u unsigned short iDim, nDim = geometry->GetnDim(); unsigned long iPoint; bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -2439,7 +2439,7 @@ void CVolumetricMovement::Rigid_Translation(CGeometry *geometry, CConfig *config unsigned short iDim, nDim = geometry->GetnDim(); unsigned long iPoint; bool time_spectral = (config->GetUnsteady_Simulation() == TIME_SPECTRAL); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -5429,7 +5429,7 @@ void CSurfaceMovement::SetBoundary_Flutter3D(CGeometry *geometry, CConfig *confi su2double Omega[3], Ampl[3]; su2double DEG2RAD = PI_NUMBER/180.0; int rank; - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -5532,7 +5532,7 @@ void CSurfaceMovement::SetExternal_Deformation(CGeometry *geometry, CConfig *con string motion_filename, UnstExt, text_line; ifstream motion_file; bool unsteady = config->GetUnsteady_Simulation(); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); /*--- Load stuff from config ---*/ diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index ac52c99be14..38c42d7b767 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1482,7 +1482,7 @@ void CSpectralDriver::SetTimeSpectral(CGeometry ***geometry_container, CSolver * unsigned short nVar = solver_container[ZONE_0][MESH_0][FLOW_SOL]->GetnVar(); unsigned long iPoint; bool implicit = (config_container[ZONE_0]->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); - bool adjoint = (config_container[ZONE_0]->GetAdjoint()); + bool adjoint = (config_container[ZONE_0]->GetContinuous_Adjoint()); if (adjoint) { implicit = (config_container[ZONE_0]->GetKind_TimeIntScheme_AdjFlow() == EULER_IMPLICIT); } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index bad99fc499c..f475c18f03e 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -2260,7 +2260,7 @@ void SetGrid_Movement(CGeometry **geometry_container, CSurfaceMovement *surface_ unsigned long nIterMesh; unsigned long iPoint; bool stat_mesh = true; - bool adjoint = config_container->GetAdjoint(); + bool adjoint = config_container->GetContinuous_Adjoint(); bool time_spectral = (config_container->GetUnsteady_Simulation() == TIME_SPECTRAL); /*--- For a time-spectral case, set "iteration number" to the zone number, diff --git a/SU2_CFD/src/output_fieldview.cpp b/SU2_CFD/src/output_fieldview.cpp index 55fadf3596d..5f0ac60e191 100644 --- a/SU2_CFD/src/output_fieldview.cpp +++ b/SU2_CFD/src/output_fieldview.cpp @@ -39,8 +39,7 @@ void COutput::SetFieldViewASCII(CConfig *config, CGeometry *geometry, unsigned s unsigned long iPoint, iElem, iNode, nbfaces; unsigned long iExtIter = config->GetExtIter(); - bool adjoint = config->GetAdjoint(); - bool disc_adjoint = config->GetDiscrete_Adjoint(); + bool adjoint = config->GetContinuous_Adjoint() || config->GetDiscrete_Adjoint(); bool grid_movement = config->GetGrid_Movement(); @@ -49,7 +48,7 @@ void COutput::SetFieldViewASCII(CConfig *config, CGeometry *geometry, unsigned s /*--- Write file name with extension ---*/ - if (adjoint || disc_adjoint) filename = config->GetAdj_FileName(); + if (adjoint) filename = config->GetAdj_FileName(); else filename = config->GetFlow_FileName(); if (Kind_Solver == LINEAR_ELASTICITY) @@ -484,15 +483,14 @@ void COutput::SetFieldViewBinary(CConfig *config, CGeometry *geometry, unsigned unsigned long iPoint, iElem, iNode, nbfaces; unsigned long iExtIter = config->GetExtIter(); - bool adjoint = config->GetAdjoint(); - bool disc_adjoint = config->GetDiscrete_Adjoint(); + bool adjoint = config->GetContinuous_Adjoint() || config->GetDiscrete_Adjoint(); char cstr[200], buffer[50]; string filename; /*--- Write file name with extension ---*/ - if (adjoint || disc_adjoint) filename = config->GetAdj_FileName(); + if (adjoint) filename = config->GetAdj_FileName(); else filename = config->GetFlow_FileName(); if (Kind_Solver == LINEAR_ELASTICITY) diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index 3ae68882c21..3419355c004 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -45,7 +45,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s unsigned long nGlobal_Elem_Storage; bool grid_movement = config->GetGrid_Movement(); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool disc_adj = config->GetDiscrete_Adjoint(); bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); @@ -984,7 +984,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign unsigned long nGlobal_Elem_Storage; bool grid_movement = config->GetGrid_Movement(); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool fem = (config->GetKind_Solver() == FEM_ELASTICITY); char cstr[200], buffer[50]; diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 186c9f9c3d9..4afda99b95a 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -701,7 +701,7 @@ void COutput::SetSurfaceCSV_Adjoint(CConfig *config, CGeometry *geometry, CSolve /*--- Write the 3D surface flow coefficient file ---*/ if (geometry->GetnDim() == 3) { - SurfAdj_file << "\"Point\",\"Sensitivity\",\"PsiRho\",\"Phi_x\",\"Phi_y\",\"Phi_z\",\"PsiE\",\"x_coord\",\"y_coord\",\"z_coord\"" << endl; + SurfAdj_file << "\"Point\",\"Sensitivity\",\"PsiRho\",\"Phi_x\",\"Phi_y\",\"Phi_z\",\"PsiE\",\"x_coord\",\"y_coord\",\"z_coord\""; if (config->GetDiscrete_Adjoint()){ SurfAdj_file << ",\"x_Sens\",\"y_Sens\",\"z_Sens\""; } @@ -3630,7 +3630,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, /*--- Retrieve filename from config ---*/ - if ((config->GetAdjoint()) || (config->GetDiscrete_Adjoint())) { + if ((config->GetContinuous_Adjoint()) || (config->GetDiscrete_Adjoint())) { filename = config->GetRestart_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ @@ -4144,7 +4144,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, isothermal = true; bool turbulent = ((config[val_iZone]->GetKind_Solver() == RANS) || (config[val_iZone]->GetKind_Solver() == ADJ_RANS) || (config[val_iZone]->GetKind_Solver() == DISC_ADJ_RANS)); - bool adjoint = config[val_iZone]->GetAdjoint() || config[val_iZone]->GetDiscrete_Adjoint(); + bool adjoint = config[val_iZone]->GetContinuous_Adjoint() || config[val_iZone]->GetDiscrete_Adjoint(); bool disc_adj = config[val_iZone]->GetDiscrete_Adjoint(); bool wave = (config[val_iZone]->GetKind_Solver() == WAVE_EQUATION); bool heat = (config[val_iZone]->GetKind_Solver() == HEAT_EQUATION); @@ -6901,7 +6901,7 @@ void COutput::SetBaselineResult_Files(CSolver **solver, CGeometry **geometry, CC char buffer_char[50], out_file[MAX_STRING_SIZE]; string filename; - if (!config[iZone]->GetAdjoint()) filename = config[iZone]->GetFlow_FileName(); + if (!config[iZone]->GetContinuous_Adjoint()) filename = config[iZone]->GetFlow_FileName(); else filename = config[iZone]->GetAdj_FileName(); if (size > 1) { @@ -6920,7 +6920,7 @@ void COutput::SetBaselineResult_Files(CSolver **solver, CGeometry **geometry, CC char buffer_char[50], out_file[MAX_STRING_SIZE]; string filename; - if (!config[iZone]->GetAdjoint()) filename = config[iZone]->GetSurfFlowCoeff_FileName(); + if (!config[iZone]->GetContinuous_Adjoint()) filename = config[iZone]->GetSurfFlowCoeff_FileName(); else filename = config[iZone]->GetSurfAdjCoeff_FileName(); if (size > 1) { diff --git a/SU2_CFD/src/output_tecplot.cpp b/SU2_CFD/src/output_tecplot.cpp index 3504893e359..4e67b836011 100644 --- a/SU2_CFD/src/output_tecplot.cpp +++ b/SU2_CFD/src/output_tecplot.cpp @@ -42,7 +42,7 @@ void COutput::SetTecplotASCII(CConfig *config, CGeometry *geometry, CSolver **so bool *SurfacePoint = NULL; bool grid_movement = config->GetGrid_Movement(); - bool adjoint = config->GetAdjoint() || config->GetDiscrete_Adjoint(); + bool adjoint = config->GetContinuous_Adjoint() || config->GetDiscrete_Adjoint(); char cstr[200], buffer[50]; string filename; @@ -696,7 +696,7 @@ void COutput::SetTecplotASCII_LowMemory(CConfig *config, CGeometry *geometry, CS string filename, text_line; char buffer_char[50], out_file[MAX_STRING_SIZE]; - if (!config->GetAdjoint()) { + if (!config->GetContinuous_Adjoint()) { if (surf_sol) filename = config->GetSurfFlowCoeff_FileName(); else filename = config->GetFlow_FileName(); } @@ -713,7 +713,7 @@ void COutput::SetTecplotASCII_LowMemory(CConfig *config, CGeometry *geometry, CS for (int iRank = 0; iRank < size; iRank++) { - if (!config->GetAdjoint()) { + if (!config->GetContinuous_Adjoint()) { if (surf_sol) filename = config->GetSurfFlowCoeff_FileName(); else filename = config->GetFlow_FileName(); } diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 3e4bd9ea3b4..5f8b90fe80e 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -106,7 +106,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, unsigned short (config->GetUnsteady_Simulation() == DT_STEPPING_2ND)); bool time_stepping = config->GetUnsteady_Simulation() == TIME_STEPPING; bool roe_turkel = (config->GetKind_Upwind_Flow() == TURKEL); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); string filename = config->GetSolution_FlowFileName(); unsigned short direct_diff = config->GetDirectDiff(); @@ -3126,7 +3126,7 @@ void CEulerSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container #endif unsigned long ExtIter = config->GetExtIter(); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool low_fidelity = (config->GetLowFidelitySim() && (iMesh == MESH_1)); bool second_order = ((config->GetSpatialOrder_Flow() == SECOND_ORDER) || (config->GetSpatialOrder_Flow() == SECOND_ORDER_LIMITER) || (adjoint && config->GetKind_ConvNumScheme_AdjFlow() == ROE)); @@ -4735,7 +4735,7 @@ void CEulerSolver::ExplicitRK_Iteration(CGeometry *geometry, CSolver **solver_co unsigned long iPoint; su2double RK_AlphaCoeff = config->Get_Alpha_RKStep(iRKStep); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); for (iVar = 0; iVar < nVar; iVar++) { SetRes_RMS(iVar, 0.0); @@ -4778,7 +4778,7 @@ void CEulerSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **solver unsigned short iVar; unsigned long iPoint; - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); for (iVar = 0; iVar < nVar; iVar++) { SetRes_RMS(iVar, 0.0); @@ -4821,7 +4821,7 @@ void CEulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver unsigned long iPoint, total_index, IterLinSol = 0; su2double Delta, *local_Res_TruncError, Vol; - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool roe_turkel = config->GetKind_Upwind_Flow() == TURKEL; /*--- Set maximum residual to zero ---*/ @@ -11955,7 +11955,7 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) (config->GetUnsteady_Simulation() == DT_STEPPING_2ND)); bool time_stepping = config->GetUnsteady_Simulation() == TIME_STEPPING; bool roe_turkel = (config->GetKind_Upwind_Flow() == TURKEL); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); string filename = config->GetSolution_FlowFileName(); unsigned short direct_diff = config->GetDirectDiff(); @@ -12733,7 +12733,7 @@ void CNSSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, C #endif unsigned long ExtIter = config->GetExtIter(); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT); bool center = (config->GetKind_ConvNumScheme_Flow() == SPACE_CENTERED) || (adjoint && config->GetKind_ConvNumScheme_AdjFlow() == SPACE_CENTERED); bool center_jst = center && config->GetKind_Centered_Flow() == JST; diff --git a/SU2_CFD/src/solver_direct_turbulent.cpp b/SU2_CFD/src/solver_direct_turbulent.cpp index 1fe845022e7..fd423abe8f3 100644 --- a/SU2_CFD/src/solver_direct_turbulent.cpp +++ b/SU2_CFD/src/solver_direct_turbulent.cpp @@ -608,7 +608,7 @@ void CTurbSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_ unsigned long iPoint, total_index; su2double Delta, Vol, density_old = 0.0, density = 0.0; - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -988,7 +988,7 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor unsigned short iZone = config->GetiZone(); unsigned short nZone = geometry->GetnZone(); bool restart = (config->GetRestart() || config->GetRestart_Flow()); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); @@ -2466,7 +2466,7 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh unsigned short iZone = config->GetiZone(); unsigned short nZone = geometry->GetnZone(); bool restart = (config->GetRestart() || config->GetRestart_Flow()); - bool adjoint = config->GetAdjoint(); + bool adjoint = config->GetContinuous_Adjoint(); bool compressible = (config->GetKind_Regime() == COMPRESSIBLE); bool incompressible = (config->GetKind_Regime() == INCOMPRESSIBLE); bool freesurface = (config->GetKind_Regime() == FREESURFACE); diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index 2627dbaef24..bad199a14c0 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -1862,7 +1862,7 @@ CBaselineSolver::CBaselineSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Retrieve filename from config ---*/ - if (config->GetAdjoint() || config->GetDiscrete_Adjoint()) { + if (config->GetContinuous_Adjoint() || config->GetDiscrete_Adjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ @@ -2170,7 +2170,7 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf unsigned short nZone = geometry[iZone]->GetnZone(); /*--- Retrieve filename from config ---*/ - if (config->GetAdjoint()) { + if (config->GetContinuous_Adjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ @@ -2284,7 +2284,7 @@ void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CSolver ***solver, CC unsigned short nZone = geometry->GetnZone(); /*--- Retrieve filename from config ---*/ - if (config->GetAdjoint()) { + if (config->GetContinuous_Adjoint()) { filename = config->GetSolution_AdjFileName(); filename = config->GetObjFunc_Extension(filename); } else if (fem){ diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index 0af2326bc9a..cd1bb981b36 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -73,9 +73,14 @@ def geometry ( config , step = 1e-3 ): # unpack function_name = konfig['GEO_PARAM'] - func_filename = 'of_func.dat' - grad_filename = 'of_grad.dat' - + + func_filename = config['VALUE_OBJFUNC_FILENAME'] + func_filename = os.path.splitext( func_filename )[0] + + grad_filename = config['GRAD_OBJFUNC_FILENAME'] + grad_filename = os.path.splitext( grad_filename )[0] + + # choose dv values Definition_DV = konfig['DEFINITION_DV'] n_DV = len(Definition_DV['KIND']) From 3bd7efe328bd67c8b4d24ee0fd9b763249a5e1da Mon Sep 17 00:00:00 2001 From: LaSerpe Date: Mon, 29 Feb 2016 09:32:04 +0100 Subject: [PATCH 215/269] residuals update for regression tests --- TestCases/parallel_regression.py | 4 ++-- TestCases/serial_regression.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index e28ccef6b92..dbb99243ba3 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -70,7 +70,7 @@ def main(): wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 100 - wedge.test_vals = [-1.645662, 3.976794, -0.252158, 0.044412] #last 4 columns + wedge.test_vals = [-1.690232, 3.924432, -0.252221, 0.044419] #last 4 columns wedge.su2_exec = "parallel_computation.py -f" wedge.timeout = 1600 wedge.tol = 0.00001 @@ -119,7 +119,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.846659, -1.384550, -1.207461, 75.974174] #last 4 columns + cylinder_lowmach.test_vals = [-6.861860, -1.399846, -1.557250, 110.230719] #last 4 columns cylinder_lowmach.su2_exec = "parallel_computation.py -f" cylinder_lowmach.timeout = 1600 cylinder_lowmach.tol = 0.00001 diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 34ac4dfd4a3..869b060e96f 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -70,7 +70,7 @@ def main(): wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 100 - wedge.test_vals = [-1.711318, 3.913749, -0.252131, 0.044402] #last 4 columns + wedge.test_vals = [-1.769374, 3.848733, -0.252191, 0.044410] #last 4 columns wedge.su2_exec = "SU2_CFD" wedge.timeout = 1600 wedge.tol = 0.00001 @@ -118,7 +118,7 @@ def main(): cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 - cylinder_lowmach.test_vals = [-6.830987, -1.368840, -0.142509, 73.962090] #last 4 columns + cylinder_lowmach.test_vals = [-6.850123, -1.388088, -0.056090, 108.140177] #last 4 columns cylinder_lowmach.su2_exec = "SU2_CFD" cylinder_lowmach.timeout = 1600 cylinder_lowmach.tol = 0.00001 From 645d61679db00a8b5041dfb3b1153bf8e6b0c1d3 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Thu, 3 Mar 2016 13:01:44 -0800 Subject: [PATCH 216/269] Small fix to config option class defaults. --- Common/src/config_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index d31f0a89cb2..1f31804835a 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -218,7 +218,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /*!\brief PHYSICAL_PROBLEM \n DESCRIPTION: Physical governing equations \n Options: see \link Solver_Map \endlink \n DEFAULT: NO_SOLVER \ingroup Config*/ addEnumOption("PHYSICAL_PROBLEM", Kind_Solver, Solver_Map, NO_SOLVER); /*!\brief MATH_PROBLEM \n DESCRIPTION: Mathematical problem \n Options: DIRECT, ADJOINT \ingroup Config*/ - addMathProblemOption("MATH_PROBLEM" , ContinuousAdjoint, false , Restart_Flow, false, DiscreteAdjoint, false); + addMathProblemOption("MATH_PROBLEM", ContinuousAdjoint, false, DiscreteAdjoint, false, Restart_Flow, false); /*!\brief KIND_TURB_MODEL \n DESCRIPTION: Specify turbulence model \n Options: see \link Turb_Model_Map \endlink \n DEFAULT: NO_TURB_MODEL \ingroup Config*/ addEnumOption("KIND_TURB_MODEL", Kind_Turb_Model, Turb_Model_Map, NO_TURB_MODEL); From ee55e4d1eaf4fadc8e45049a4693269a74443302 Mon Sep 17 00:00:00 2001 From: Francisco Palacios Date: Thu, 3 Mar 2016 21:59:41 -0800 Subject: [PATCH 217/269] bug fixing --- SU2_PY/SU2/io/config.py | 6 +++++- SU2_PY/SU2/run/geometry.py | 7 ++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index d260f0be476..d5ca6bfe1d2 100644 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -566,7 +566,11 @@ def read_config(filename): data_dict['OPT_BOUND_UPPER'] = 1e10 if not data_dict.has_key('OPT_BOUND_LOWER'): data_dict['OPT_BOUND_LOWER'] = -1e10 - + if not data_dict.has_key('VALUE_OBJFUNC_FILENAME'): + data_dict['VALUE_OBJFUNC_FILENAME'] = 'of_eval.dat' + if not data_dict.has_key('GRAD_OBJFUNC_FILENAME'): + data_dict['GRAD_OBJFUNC_FILENAME'] = 'of_grad.dat' + return data_dict #: def read_config() diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index cd1bb981b36..60e3903d0d4 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -74,12 +74,9 @@ def geometry ( config , step = 1e-3 ): # unpack function_name = konfig['GEO_PARAM'] - func_filename = config['VALUE_OBJFUNC_FILENAME'] - func_filename = os.path.splitext( func_filename )[0] - - grad_filename = config['GRAD_OBJFUNC_FILENAME'] - grad_filename = os.path.splitext( grad_filename )[0] + func_filename = konfig['VALUE_OBJFUNC_FILENAME'] + grad_filename = konfig['GRAD_OBJFUNC_FILENAME'] # choose dv values Definition_DV = konfig['DEFINITION_DV'] From 3780d00dcb4e6e03f6b554701b3153e26383a7a3 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Mon, 7 Mar 2016 19:21:15 +0000 Subject: [PATCH 218/269] Added support for body forces(dead load). --- Common/include/element_structure.hpp | 15 +++ Common/include/element_structure.inl | 2 + Common/src/element_linear.cpp | 60 +++++++++ Common/src/element_structure.cpp | 17 +++ SU2_CFD/include/numerics_structure.hpp | 18 ++- SU2_CFD/include/numerics_structure.inl | 2 + SU2_CFD/include/solver_structure.hpp | 20 +++ SU2_CFD/include/solver_structure.inl | 2 + SU2_CFD/include/variable_structure.hpp | 40 ++++++ SU2_CFD/include/variable_structure.inl | 21 +++ SU2_CFD/src/numerics_fem_elasticity.cpp | 54 ++++++++ SU2_CFD/src/solver_fem_elasticity.cpp | 164 ++++++++++++++++++++++-- SU2_CFD/src/variable_fem_elasticity.cpp | 3 +- 13 files changed, 405 insertions(+), 13 deletions(-) diff --git a/Common/include/element_structure.hpp b/Common/include/element_structure.hpp index d68d515c901..acaaee27871 100644 --- a/Common/include/element_structure.hpp +++ b/Common/include/element_structure.hpp @@ -73,6 +73,7 @@ class CElement { su2double **Ks_ab; /*!< \brief Structure for the stress component of the tangent matrix. */ su2double ***Kk_ab; /*!< \brief Structure for the pressure component of the tangent matrix. */ su2double **Kt_a; /*!< \brief Structure for the nodal stress term for the residual computation. */ + su2double **FDL_a; /*!< \brief Structure for the dead loads for the residual computation. */ su2double el_Pressure; /*!< \brief Pressure in the element */ public: @@ -239,6 +240,13 @@ class CElement { */ void Add_Kt_a(su2double *val_Kt_a, unsigned short nodeA); + /*! + * \brief Add the value of the dead load for the computation of the residual. + * \param[in] nodeA - index of Node a. + * \param[in] val_FDL_a - value of the term that will constitute the diagonal of the stress contribution. + */ + void Add_FDL_a(su2double *val_FDL_a, unsigned short nodeA); + /*! * \brief Set the value of a submatrix K relating nodes a and b, for the pressure term (this term is subintegrated). * \param[in] nodeA - index of Node a. @@ -296,6 +304,13 @@ class CElement { */ su2double *Get_Kt_a(unsigned short nodeA); + /*! + * \brief Return the value of the dead load component of the residual for node a. + * \param[in] nodeA - index of Node a. + * \param[out] val_Kt_a - value of the stress term. + */ + su2double *Get_FDL_a(unsigned short nodeA); + /*! * \brief Retrieve the value of the shape functions. * \param[in] iNode - Index of the node. diff --git a/Common/include/element_structure.inl b/Common/include/element_structure.inl index fa37bf31cf2..741cf8a1b6b 100644 --- a/Common/include/element_structure.inl +++ b/Common/include/element_structure.inl @@ -69,6 +69,8 @@ inline su2double *CElement::Get_Kk_ab(unsigned short nodeA, unsigned short nodeB inline su2double *CElement::Get_Kt_a(unsigned short nodeA){ return Kt_a[nodeA];} +inline su2double *CElement::Get_FDL_a(unsigned short nodeA){ return FDL_a[nodeA];} + inline su2double CElement::Get_Ks_ab(unsigned short nodeA, unsigned short nodeB) { return Ks_ab[nodeA][nodeB]; } inline void CElement::Add_Mab(su2double val_Mab, unsigned short nodeA, unsigned short nodeB) { Mab[nodeA][nodeB] += val_Mab; } diff --git a/Common/src/element_linear.cpp b/Common/src/element_linear.cpp index f5888f41aea..645c8e34c30 100644 --- a/Common/src/element_linear.cpp +++ b/Common/src/element_linear.cpp @@ -41,6 +41,8 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) unsigned short iNode, iGauss, jNode; unsigned short nDimSq; + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + nNodes = 3; nGaussPoints = 1; @@ -105,6 +107,16 @@ CTRIA1::CTRIA1(unsigned short val_nDim, CConfig *config) Kt_a[iNode] = new su2double [nDim]; } + if (body_forces){ + FDL_a = new su2double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + FDL_a[iNode] = new su2double [nDim]; + } + } + else{ + FDL_a = NULL; + } + su2double Xi, Eta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ Xi = GaussCoord[iGauss][0]; @@ -145,6 +157,7 @@ CTRIA1::~CTRIA1(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + if (FDL_a != NULL) delete [] FDL_a[iVar]; delete [] NodalExtrap[iVar]; } @@ -159,6 +172,8 @@ CTRIA1::~CTRIA1(void) { delete [] GaussWeight; delete [] NodalExtrap; + if (FDL_a != NULL) delete [] FDL_a; + } void CTRIA1::ComputeGrad_Linear(void){ @@ -311,6 +326,8 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) unsigned short iNode, iGauss, jNode; unsigned short nDimSq; + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + nNodes = 4; nGaussPoints = 4; @@ -378,6 +395,16 @@ CQUAD4::CQUAD4(unsigned short val_nDim, CConfig *config) Kt_a[iNode] = new su2double [nDim]; } + if (body_forces){ + FDL_a = new su2double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + FDL_a[iNode] = new su2double [nDim]; + } + } + else{ + FDL_a = NULL; + } + /*--- Store the shape functions (they only need to be computed once) ---*/ su2double Xi, Eta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -436,6 +463,7 @@ CQUAD4::~CQUAD4(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + if (FDL_a != NULL) delete [] FDL_a[iVar]; delete [] NodalExtrap[iVar]; } @@ -450,6 +478,8 @@ CQUAD4::~CQUAD4(void) { delete [] GaussWeight; delete [] NodalExtrap; + if (FDL_a != NULL) delete [] FDL_a; + } void CQUAD4::ComputeGrad_Linear(void){ @@ -759,6 +789,8 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) unsigned short iNode, iGauss, jNode; unsigned short nDimSq; + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + nNodes = 4; nGaussPoints = 1; @@ -823,6 +855,16 @@ CTETRA1::CTETRA1(unsigned short val_nDim, CConfig *config) Kt_a[iNode] = new su2double [nDim]; } + if (body_forces){ + FDL_a = new su2double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + FDL_a[iNode] = new su2double [nDim]; + } + } + else{ + FDL_a = NULL; + } + /*--- Store the shape functions (they only need to be computed once) ---*/ su2double Xi, Eta, Zeta, val_Ni; for (iGauss = 0; iGauss < nGaussPoints; iGauss++){ @@ -864,6 +906,7 @@ CTETRA1::~CTETRA1(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + if (FDL_a != NULL) delete [] FDL_a[iVar]; delete [] NodalExtrap[iVar]; } @@ -878,6 +921,8 @@ CTETRA1::~CTETRA1(void) { delete [] GaussWeight; delete [] NodalExtrap; + if (FDL_a != NULL) delete [] FDL_a; + } void CTETRA1::ComputeGrad_Linear(void){ @@ -1047,6 +1092,8 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) unsigned short iNode, iGauss, jNode; unsigned short nDimSq; + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + nNodes = 8; nGaussPoints = 8; @@ -1118,6 +1165,16 @@ CHEXA8::CHEXA8(unsigned short val_nDim, CConfig *config) Kt_a[iNode] = new su2double [nDim]; } + if (body_forces){ + FDL_a = new su2double *[nNodes]; + for (iNode = 0; iNode < nNodes; iNode++){ + FDL_a[iNode] = new su2double [nDim]; + } + } + else{ + FDL_a = NULL; + } + /*--- Store the shape functions (they only need to be computed once) ---*/ su2double Xi, Eta, Zeta, val_Ni; @@ -1186,6 +1243,7 @@ CHEXA8::~CHEXA8(void) { delete [] Kab[iVar]; delete [] Ks_ab[iVar]; delete [] Kt_a[iVar]; + if (FDL_a != NULL) delete [] FDL_a[iVar]; delete [] NodalExtrap[iVar]; } @@ -1200,6 +1258,8 @@ CHEXA8::~CHEXA8(void) { delete [] GaussWeight; delete [] NodalExtrap; + if (FDL_a != NULL) delete [] FDL_a; + } diff --git a/Common/src/element_structure.cpp b/Common/src/element_structure.cpp index bbda7489e0c..de72c4ea0fc 100644 --- a/Common/src/element_structure.cpp +++ b/Common/src/element_structure.cpp @@ -61,6 +61,8 @@ CElement::CElement(void) { Kk_ab = NULL; Kt_a = NULL; + FDL_a = NULL; + } @@ -95,6 +97,8 @@ CElement::CElement(unsigned short val_nDim, CConfig *config) { Kk_ab = NULL; Kt_a = NULL; + FDL_a = NULL; + } CElement::~CElement(void) { @@ -116,6 +120,8 @@ CElement::~CElement(void) { if (Kk_ab != NULL) delete [] Kk_ab; if (Kt_a != NULL) delete [] Kt_a; + if (FDL_a != NULL) delete [] FDL_a; + } void CElement::Add_Kab(su2double **val_Kab, unsigned short nodeA, unsigned short nodeB){ @@ -161,6 +167,16 @@ void CElement::Add_Kt_a(su2double *val_Kt_a, unsigned short nodeA){ } +void CElement::Add_FDL_a(su2double *val_FDL_a, unsigned short nodeA){ + + unsigned short iDim; + + for(iDim = 0; iDim < nDim; iDim++) { + FDL_a[nodeA][iDim] += val_FDL_a[iDim]; + } + +} + void CElement::clearElement(void){ @@ -171,6 +187,7 @@ void CElement::clearElement(void){ for(iNode = 0; iNode < nNodes; iNode++) { for(iDim = 0; iDim < nDim; iDim++){ if (Kt_a != NULL) Kt_a[iNode][iDim] = 0.0; + if (FDL_a != NULL) FDL_a[iNode][iDim] = 0.0; } for (jNode = 0; jNode < nNodes; jNode++) { if (Ks_ab != NULL) Ks_ab[iNode][jNode] = 0.0; diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index ca798e6cb7a..ac800635af9 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1520,28 +1520,34 @@ class CNumerics { /*! * \brief A virtual member to compute the plane stress term in an element for nonlinear structural problems - * \param[in] config - Definition of the particular problem. + * \param[in] element_container - Element structure for the particular element integrated. */ virtual void Compute_Plane_Stress_Term(CElement *element_container); /*! * \brief A virtual member to compute the constitutive matrix in an element for structural problems - * \param[in] config - Definition of the particular problem. + * \param[in] element_container - Element structure for the particular element integrated. */ virtual void Compute_Constitutive_Matrix(CElement *element_container); /*! * \brief A virtual member to compute the stress tensor in an element for structural problems - * \param[in] config - Definition of the particular problem. + * \param[in] element_container - Element structure for the particular element integrated. */ virtual void Compute_Stress_Tensor(CElement *element_container); /*! * \brief A virtual member to compute the mass matrix - * \param[in] config - Definition of the particular problem. + * \param[in] element_container - Element structure for the particular element integrated. */ virtual void Compute_Mass_Matrix(CElement *element_container); + /*! + * \brief A virtual member to compute the residual component due to dead loads + * \param[in] element_container - Element structure for the particular element integrated. + */ + virtual void Compute_Dead_Load(CElement *element_container); + /*! * \brief A virtual member to compute the averaged nodal stresses * \param[in] element_container - Element structure for the particular element integrated. @@ -4181,6 +4187,8 @@ class CFEM_Elasticity : public CNumerics { su2double **GradNi_Ref_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ su2double **GradNi_Curr_Mat;/*!< \brief Gradients of Ni - Auxiliary. */ + su2double *FAux_Dead_Load; /*!< \brief Auxiliar vector for the dead loads */ + public: /*! @@ -4198,6 +4206,8 @@ class CFEM_Elasticity : public CNumerics { void Compute_Mass_Matrix(CElement *element_container); + void Compute_Dead_Load(CElement *element_container); + virtual void Compute_Tangent_Matrix(CElement *element_container); virtual void Compute_MeanDilatation_Term(CElement *element_container); diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 7ec9aa391a2..c3c7d75ac75 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -57,6 +57,8 @@ inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2doubl inline void CNumerics::Compute_Mass_Matrix(CElement *element_container){ } +inline void CNumerics::Compute_Dead_Load(CElement *element_container){ } + inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 06fb4c0e645..ca83069c4a4 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2746,6 +2746,16 @@ class CSolver { virtual void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief A virtual member. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + + virtual void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -7179,6 +7189,8 @@ class CFEM_ElasticitySolver : public CSolver { su2double *Res_Time_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ su2double *Res_FSI_Cont; /*!< \brief Auxiliary vector to store the surface load contribution to the residual */ + su2double *Res_Dead_Load; /*!< \brief Auxiliary vector to store the body load contribution to the residual */ + su2double *solutionPredictor; /*!< \brief Auxiliary vector to store the solution predictor */ su2double *Solution_Interm; /*!< \brief Auxiliary vector to store the intermediate solution */ @@ -7352,6 +7364,14 @@ class CFEM_ElasticitySolver : public CSolver { void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + /*! + * \brief Compute the dead loads. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] solver - Description of the numerical method. + * \param[in] config - Definition of the particular problem. + */ + void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); /*! * \brief Initializes the matrices/residuals in the solution process (avoids adding over previous values). diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 0059f95fe76..4e2b0871f13 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -738,6 +738,8 @@ inline void CSolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solve inline void CSolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } + inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index e8b03686948..ce4bf3b00b6 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1501,6 +1501,26 @@ class CVariable { */ virtual su2double Get_SurfaceLoad_Res_n(unsigned short iVar); + /*! + * \brief A virtual member. + */ + virtual void Add_BodyForces_Res(su2double *val_bodyForce); + + /*! + * \brief A virtual member. + */ + virtual su2double *Get_BodyForces_Res(void); + + /*! + * \brief A virtual member. + */ + virtual su2double Get_BodyForces_Res(unsigned short iVar); + + /*! + * \brief A virtual member. + */ + virtual void Clear_BodyForces_Res(void); + /*! * \brief A virtual member. */ @@ -2688,6 +2708,26 @@ class CFEM_ElasVariable : public CVariable { */ su2double Get_SurfaceLoad_Res_n(unsigned short iVar); + /*! + * \brief Add body forces to the residual term. + */ + void Add_BodyForces_Res(su2double *val_bodyForce); + + /*! + * \brief Clear the surface load residual + */ + void Clear_BodyForces_Res(void); + + /*! + * \brief Get the body forces. + */ + su2double *Get_BodyForces_Res(void); + + /*! + * \brief Get the body forces. + */ + su2double Get_BodyForces_Res(unsigned short iVar); + /*! * \brief Set the flow traction at a node on the structural side */ diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 1aaa7564107..1412cbc9680 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -81,6 +81,14 @@ inline void CVariable::Set_SurfaceLoad_Res_n(void) { } inline su2double CVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) { return 0.0;} +inline void CVariable::Add_BodyForces_Res(su2double *val_bodyForce) { } + +inline su2double *CVariable::Get_BodyForces_Res(void) {return NULL;} + +inline su2double CVariable::Get_BodyForces_Res(unsigned short iVar) {return 0.0;} + +inline void CVariable::Clear_BodyForces_Res(void) { } + inline void CVariable::Set_FlowTraction(su2double *val_flowTraction) { } inline void CVariable::Add_FlowTraction(su2double *val_flowTraction) { } @@ -903,6 +911,19 @@ inline void CFEM_ElasVariable::Set_SurfaceLoad_Res_n(void) { inline su2double CFEM_ElasVariable::Get_SurfaceLoad_Res_n(unsigned short iVar) {return Residual_Ext_Surf_n[iVar];} +inline void CFEM_ElasVariable::Add_BodyForces_Res(su2double *val_bodyForce) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) + Residual_Ext_Body[iVar] += val_bodyForce[iVar]; +} + +inline su2double *CFEM_ElasVariable::Get_BodyForces_Res(void) {return Residual_Ext_Body;} + +inline su2double CFEM_ElasVariable::Get_BodyForces_Res(unsigned short iVar) {return Residual_Ext_Body[iVar];} + +inline void CFEM_ElasVariable::Clear_BodyForces_Res(void) { + for (unsigned short iVar = 0; iVar < nVar; iVar++) Residual_Ext_Body[iVar] = 0.0; +} + inline void CFEM_ElasVariable::Set_FlowTraction(su2double *val_flowTraction) { for (unsigned short iVar = 0; iVar < nVar; iVar++) FlowTraction[iVar] = val_flowTraction[iVar]; diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 8331099c772..919b210dcaa 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -33,6 +33,8 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + E = config->GetElasticyMod(); Nu = config->GetPoissonRatio(); Rho_s = config->GetMaterialDensity(); @@ -40,6 +42,9 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); Kappa = config->GetBulk_Modulus_Struct(); + // Auxiliary vector for body forces (dead load) + if (body_forces) FAux_Dead_Load = new su2double [nDim]; else FAux_Dead_Load = NULL; + plane_stress = (config->GetElas2D_Formulation() == PLANE_STRESS); unsigned short iVar; @@ -124,6 +129,8 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { delete [] GradNi_Ref_Mat; delete [] GradNi_Curr_Mat; + if (FAux_Dead_Load != NULL) delete [] FAux_Dead_Load; + } void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ @@ -173,3 +180,50 @@ void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ } +void CFEM_Elasticity::Compute_Dead_Load(CElement *element){ + + unsigned short iGauss, nGauss; + unsigned short iNode, iDim, nNode; + + su2double Weight, Jac_X; + + /* -- Gravity directionality: + * -- For 2D problems, we assume the direction for gravity is -y + * -- For 3D problems, we assume the direction for gravity is -z + */ + su2double g_force[3] = {0.0,0.0,0.0}; + + if (nDim == 2) g_force[1] = -1*STANDART_GRAVITY; + else if (nDim == 3) g_force[2] = -1*STANDART_GRAVITY; + + element->clearElement(); /*--- Restarts the element: avoids adding over previous results in other elements and sets initial values to 0--*/ + element->ComputeGrad_Linear(); /*--- Need to compute the gradients to obtain the Jacobian ---*/ + + nNode = element->GetnNodes(); + nGauss = element->GetnGaussPoints(); + + for (iGauss = 0; iGauss < nGauss; iGauss++){ + + Weight = element->GetWeight(iGauss); + Jac_X = element->GetJ_X(iGauss); /*--- The dead load is computed in the reference configuration ---*/ + + /*--- Retrieve the values of the shape functions for each node ---*/ + /*--- This avoids repeated operations ---*/ + for (iNode = 0; iNode < nNode; iNode++){ + Ni_Vec[iNode] = element->GetNi(iNode,iGauss); + } + + for (iNode = 0; iNode < nNode; iNode++){ + + for (iDim = 0; iDim < nDim; iDim++){ + FAux_Dead_Load[iDim] = Weight * Ni_Vec[iNode] * Jac_X * Rho_s * g_force[iDim]; + } + + element->Add_FDL_a(FAux_Dead_Load,iNode); + + } + + } + +} + diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 787f480672d..bbe2c8e095e 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -63,6 +63,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { Res_Time_Cont = NULL; Res_FSI_Cont = NULL; + Res_Dead_Load = NULL; + nodeReactions = NULL; solutionPredictor = NULL; @@ -89,6 +91,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool fsi = config->GetFSI_Simulation(); // FSI simulation bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + int rank = MASTER_NODE; #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -370,6 +374,14 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ Res_Ext_Surf = new su2double[nVar]; + /*--- Contribution of the body forces to the residual (auxiliary vector) ---*/ + if (body_forces){ + Res_Dead_Load = new su2double[nVar]; + } + else { + Res_Dead_Load = NULL; + } + /*--- Contribution of the fluid tractions to the residual (auxiliary vector) ---*/ if (fsi){ Res_FSI_Cont = new su2double[nVar]; @@ -378,7 +390,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi Res_FSI_Cont = NULL; } - /*--- Time integration contribution to the residual ---*/ if (dynamic) { Res_Time_Cont = new su2double [nVar]; @@ -505,6 +516,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] Res_Stress_i; delete [] Res_Ext_Surf; if (Res_Time_Cont != NULL) delete[] Res_Time_Cont; + if (Res_Dead_Load != NULL) delete[] Res_Dead_Load; delete [] Solution; delete [] SolRest; delete [] GradN_X; @@ -990,6 +1002,10 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ bool restart = config->GetRestart(); // Restart analysis bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Initial calculation for restart + bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied + + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + /*--- Set vector entries to zero ---*/ for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { LinSysAux.SetBlock_Zero(iPoint); @@ -1026,6 +1042,25 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); } + /* + * If body forces are taken into account, we need to compute the term that goes into the residual, + * which will be constant along the calculation both for linear and nonlinear analysis. + * + * Only initialized once, at the first iteration or the beginning of the calculation after a restart. + * + * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. + */ + + if ((body_forces && initial_calc && first_iter) || + (body_forces && restart && initial_calc_restart && first_iter)) { + // If the load is incremental, we have to reset the variable to avoid adding up over the increments + if (incremental_load){ + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_BodyForces_Res(); + } + // Compute the dead load term + Compute_DeadLoad(geometry, solver_container, numerics[VISC_TERM], config); + } + /* * If the problem is nonlinear, we need to initialize the Jacobian and the stiffness matrix at least at the beginning * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each @@ -1616,6 +1651,57 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } +void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { + + unsigned long iElem, iVar; + unsigned short iNode, iDim, nNodes; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord; + int EL_KIND; + + su2double *Dead_Load = NULL; + unsigned short NelNodes; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + } + } + + numerics->Compute_Dead_Load(element_container[EL_KIND]); + + NelNodes = element_container[EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + Dead_Load = element_container[EL_KIND]->Get_FDL_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Dead_Load[iVar] = Dead_Load[iVar]; + + node[indexNode[iNode]]->Add_BodyForces_Res(Res_Dead_Load); + + } + + } + + +} + void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } @@ -1704,16 +1790,10 @@ void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_con node[iPoint]->SetSolution_Accel(Solution); } - // for (iVar = 0; iVar < nVar; iVar++){ - // nodeReactions[iVar] = - 1.0 * LinSysRes.GetBlock(iPoint, iVar); - // } - // - // LinSysReact.SetBlock(iPoint,nodeReactions); /*--- Initialize the reaction vector ---*/ LinSysReact.SetBlock(iPoint, Residual); - LinSysRes.SetBlock(iPoint, Residual); /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ @@ -2062,6 +2142,8 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation. + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + bool restart = config->GetRestart(); // Restart solution bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration @@ -2082,6 +2164,21 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add the contribution to the residual due to body forces ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } } } @@ -2152,6 +2249,7 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv if (incremental_load){ for (iVar = 0; iVar < nVar; iVar++){ Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + } } else { @@ -2159,7 +2257,23 @@ void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolv } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - /*--- Add FSI contribution ---*/ + + /*--- Body forces contribution (dead load) ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + + /*--- FSI contribution (flow loads) ---*/ if (fsi) { if (incremental_load){ for (iVar = 0; iVar < nVar; iVar++){ @@ -2331,6 +2445,8 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSol bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method bool fsi = config->GetFSI_Simulation(); // FSI simulation. + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + bool restart = config->GetRestart(); // Restart solution bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration @@ -2353,6 +2469,22 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSol } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add the contribution to the residual due to body forces ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + } } @@ -2431,6 +2563,22 @@ void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSol } LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + /*--- Add the contribution to the residual due to body forces. + *--- It is constant over time, so it's not necessary to distribute it. ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + /*--- Add FSI contribution ---*/ if (fsi) { if (incremental_load){ diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_fem_elasticity.cpp index 151b473f2dd..857da6fbd6f 100644 --- a/SU2_CFD/src/variable_fem_elasticity.cpp +++ b/SU2_CFD/src/variable_fem_elasticity.cpp @@ -64,7 +64,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim unsigned short iVar; bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - bool body_forces = false; // Bool for adding body forces in the future. + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). bool incremental_load = config->GetIncrementalLoad(); bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. @@ -139,6 +139,7 @@ CFEM_ElasVariable::CFEM_ElasVariable(su2double *val_fea, unsigned short val_nDim for (iVar = 0; iVar < nVar; iVar++){ Residual_Ext_Surf[iVar] = 0.0; + if (body_forces) Residual_Ext_Body[iVar] = 0.0; } } From 7a4c2a10c8c8c1f8b542a098969214f07e27b81d Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 8 Mar 2016 13:17:05 +0000 Subject: [PATCH 219/269] Redefine bulk modulus. --- SU2_CFD/src/numerics_fem_elasticity.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index 919b210dcaa..b25ab765172 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -40,7 +40,8 @@ CFEM_Elasticity::CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVa Rho_s = config->GetMaterialDensity(); Mu = E / (2.0*(1.0 + Nu)); Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); - Kappa = config->GetBulk_Modulus_Struct(); + Kappa = Lambda + (2/3)*Mu; + //Kappa = config->GetBulk_Modulus_Struct(); // Auxiliary vector for body forces (dead load) if (body_forces) FAux_Dead_Load = new su2double [nDim]; else FAux_Dead_Load = NULL; From 1809033a30c39c63a9e9c0921c73a7c0b93674d1 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 8 Mar 2016 15:04:32 -0800 Subject: [PATCH 220/269] Python bug fix for direct differentiation. --- SU2_PY/SU2/run/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index 86eccb26041..0b8aa30e897 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -93,7 +93,7 @@ def CFD(config): processes = konfig['NUMBER_PART'] - the_Command = 'SU2_CFD_AD ' + tempname + the_Command = 'SU2_CFD_DIRECTDIFF ' + tempname elif auto_diff: tempname = 'config_CFD_AD.cfg' From 2a82ae830cd5674005310f2225f2949e12d5383e Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Mar 2016 14:50:13 +0000 Subject: [PATCH 221/269] Change VISC_TERM for FEA_TERM in numerics container. --- Common/include/option_structure.hpp | 3 +++ Common/src/config_structure.cpp | 2 +- SU2_CFD/src/driver_structure.cpp | 12 ++++++------ SU2_CFD/src/integration_structure.cpp | 20 ++++++++++---------- SU2_CFD/src/iteration_structure.cpp | 6 +++--- SU2_CFD/src/solver_fem_elasticity.cpp | 4 ++-- 6 files changed, 25 insertions(+), 22 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 9dbba555014..df08cedfc4f 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -370,6 +370,9 @@ const int SOURCE_SECOND_TERM = 3; /*!< \brief Position of the second source te const int CONV_BOUND_TERM = 4; /*!< \brief Position of the convective boundary terms in the numerics container array. */ const int VISC_BOUND_TERM = 5; /*!< \brief Position of the viscous boundary terms in the numerics container array. */ +const int FEA_TERM = 0; /*!< \brief Position of the finite element analysis terms in the numerics container array. */ + + /*! * \brief types of finite elements (in 2D or 3D) */ diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index bc0b84017bf..75c39e28c94 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1214,7 +1214,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Maximum number of iterations of the linear solver for the implicit formulation */ addUnsignedLongOption("FSI_LINEAR_SOLVER_ITER_STRUC", Linear_Solver_Iter_FSI_Struc, 500); /* DESCRIPTION: Minimum error threshold for the linear solver for the implicit formulation */ - addDoubleOption("FSI_LINEAR_SOLVER_ERROR_STRUC", Linear_Solver_Error_FSI_Struc, 1E-5); + addDoubleOption("FSI_LINEAR_SOLVER_ERROR_STRUC", Linear_Solver_Error_FSI_Struc, 1E-6); /* DESCRIPTION: Restart from a steady state (sets grid velocities to 0 when loading the restart). */ addBoolOption("RESTART_STEADY_STATE", SteadyRestart, false); diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 38c42d7b767..5b8dd5508fc 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -1039,7 +1039,7 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, if (fea) { /*--- Definition of the viscous scheme for each equation and mesh level ---*/ - numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CGalerkin_FEA(nDim, nVar_FEA, config); + numerics_container[MESH_0][FEA_SOL][FEA_TERM] = new CGalerkin_FEA(nDim, nVar_FEA, config); } @@ -1048,7 +1048,7 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, switch (config->GetGeometricConditions()) { case SMALL_DEFORMATIONS : switch (config->GetMaterialModel()) { - case LINEAR_ELASTIC: numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_LinearElasticity(nDim, nVar_FEM, config); break; + case LINEAR_ELASTIC: numerics_container[MESH_0][FEA_SOL][FEA_TERM] = new CFEM_LinearElasticity(nDim, nVar_FEM, config); break; case NEO_HOOKEAN : cout << "Material model does not correspond to geometric conditions." << endl; exit(EXIT_FAILURE); break; default: cout << "Material model not implemented." << endl; exit(EXIT_FAILURE); break; } @@ -1058,8 +1058,8 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, case LINEAR_ELASTIC: cout << "Material model does not correspond to geometric conditions." << endl; exit(EXIT_FAILURE); break; case NEO_HOOKEAN : switch (config->GetMaterialCompressibility()) { - case COMPRESSIBLE_MAT : numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_NeoHookean_Comp(nDim, nVar_FEM, config); break; - case INCOMPRESSIBLE_MAT : numerics_container[MESH_0][FEA_SOL][VISC_TERM] = new CFEM_NeoHookean_Incomp(nDim, nVar_FEM, config); break; + case COMPRESSIBLE_MAT : numerics_container[MESH_0][FEA_SOL][FEA_TERM] = new CFEM_NeoHookean_Comp(nDim, nVar_FEM, config); break; + case INCOMPRESSIBLE_MAT : numerics_container[MESH_0][FEA_SOL][FEA_TERM] = new CFEM_NeoHookean_Incomp(nDim, nVar_FEM, config); break; default: cout << "Material model not implemented." << endl; exit(EXIT_FAILURE); break; } break; @@ -2224,11 +2224,11 @@ void CFSIDriver::Transfer_Tractions(COutput *output, CIntegration ***integration case LEGACY_METHOD: if (MatchingMesh){ solver_container[targetZone][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[donorZone], geometry_container[targetZone], geometry_container[donorZone], - config_container[targetZone], config_container[donorZone], numerics_container[targetZone][MESH_0][SolContainer_Position_fea][VISC_TERM]); + config_container[targetZone], config_container[donorZone], numerics_container[targetZone][MESH_0][SolContainer_Position_fea][FEA_TERM]); } else { solver_container[targetZone][MESH_0][FEA_SOL]->SetFEA_Load_Int(solver_container[donorZone], geometry_container[targetZone], geometry_container[donorZone], - config_container[targetZone], config_container[donorZone], numerics_container[targetZone][MESH_0][SolContainer_Position_fea][VISC_TERM]); + config_container[targetZone], config_container[donorZone], numerics_container[targetZone][MESH_0][SolContainer_Position_fea][FEA_TERM]); } break; } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 5a0e88410bf..547a1fa98f4 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -225,7 +225,7 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ if ((linear_analysis && initial_calc) || (linear_analysis && restart && initial_calc_restart)){ - solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics[VISC_TERM], config); + solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics[FEA_TERM], config); } else if (!linear_analysis){ /*--- If the analysis is nonlinear, also the stress terms need to be computed ---*/ @@ -233,7 +233,7 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- They are calculated together to avoid looping twice over the elements ---*/ if (IterativeScheme == NEWTON_RAPHSON){ /*--- The Jacobian is reinitialized every time in Preprocessing (before calling Space_Integration_FEM) */ - solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[FEA_TERM], config); } /*--- If the method is modified Newton-Raphson, the stiffness matrix is only computed once at the beginning of the time-step ---*/ @@ -241,11 +241,11 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, else if (IterativeScheme == MODIFIED_NEWTON_RAPHSON){ if (first_iter){ - solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[FEA_TERM], config); } else{ - solver_container[MainSolver]->Compute_NodalStressRes(geometry, solver_container, numerics[VISC_TERM], config); + solver_container[MainSolver]->Compute_NodalStressRes(geometry, solver_container, numerics[FEA_TERM], config); } } @@ -260,10 +260,10 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { switch (config->GetMarker_All_KindBC(iMarker)) { case LOAD_DIR_BOUNDARY: - solver_container[MainSolver]->BC_Dir_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + solver_container[MainSolver]->BC_Dir_Load(geometry, solver_container, numerics[FEA_TERM], config, iMarker); break; case LOAD_SINE_BOUNDARY: - solver_container[MainSolver]->BC_Sine_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + solver_container[MainSolver]->BC_Sine_Load(geometry, solver_container, numerics[FEA_TERM], config, iMarker); break; } } @@ -273,10 +273,10 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { switch (config->GetMarker_All_KindBC(iMarker)) { case LOAD_BOUNDARY: - solver_container[MainSolver]->BC_Normal_Load(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + solver_container[MainSolver]->BC_Normal_Load(geometry, solver_container, numerics[FEA_TERM], config, iMarker); break; case PRESSURE_BOUNDARY: - solver_container[MainSolver]->BC_Pressure(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + solver_container[MainSolver]->BC_Pressure(geometry, solver_container, numerics[FEA_TERM], config, iMarker); break; } } @@ -384,7 +384,7 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) switch (config->GetMarker_All_KindBC(iMarker)) { case CLAMPED_BOUNDARY: - solver_container[MainSolver]->BC_Clamped(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + solver_container[MainSolver]->BC_Clamped(geometry, solver_container, numerics[FEA_TERM], config, iMarker); break; case DISPLACEMENT_BOUNDARY: solver_container[MainSolver]->BC_Normal_Displacement(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); @@ -414,7 +414,7 @@ void CIntegration::Time_Integration_FEM(CGeometry *geometry, CSolver **solver_co for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) switch (config->GetMarker_All_KindBC(iMarker)) { case CLAMPED_BOUNDARY: - solver_container[MainSolver]->BC_Clamped_Post(geometry, solver_container, numerics[VISC_TERM], config, iMarker); + solver_container[MainSolver]->BC_Clamped_Post(geometry, solver_container, numerics[FEA_TERM], config, iMarker); break; // case DISPLACEMENT_BOUNDARY: // solver_container[MainSolver]->BC_Normal_Displacement(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index f475c18f03e..c899511f62b 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1188,7 +1188,7 @@ void CFEM_StructuralAnalysis::Update(COutput *output, /*----------------- Compute averaged nodal stress and reactions ------------------------*/ - solver_container[val_iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], numerics_container[val_iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[val_iZone]); + solver_container[val_iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], numerics_container[val_iZone][MESH_0][FEA_SOL][FEA_TERM], config_container[val_iZone]); /*----------------- Update structural solver ----------------------*/ @@ -1995,7 +1995,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*----------------- Compute averaged nodal stress and reactions ------------------------*/ for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][VISC_TERM], config_container[iZone]); + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][FEA_TERM], config_container[iZone]); /*----------------- Update structural solver ----------------------*/ @@ -2173,7 +2173,7 @@ void FluidStructureIteration(COutput *output, CIntegration ***integration_contai /*--- Update loads for the FEA model ---*/ solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][VISC_TERM]); + config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][FEA_TERM]); /*--- Run the iteration ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index bbe2c8e095e..5cee3a478fb 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1039,7 +1039,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ (dynamic && restart && initial_calc_restart && first_iter)) { MassMatrix.SetValZero(); Compute_IntegrationConstants(config); - Compute_MassMatrix(geometry, solver_container, numerics[VISC_TERM], config); + Compute_MassMatrix(geometry, solver_container, numerics[FEA_TERM], config); } /* @@ -1058,7 +1058,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_BodyForces_Res(); } // Compute the dead load term - Compute_DeadLoad(geometry, solver_container, numerics[VISC_TERM], config); + Compute_DeadLoad(geometry, solver_container, numerics[FEA_TERM], config); } /* From 8456c665b2316b125f97d9f8e0eef6925a008f8e Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Mar 2016 15:26:57 +0000 Subject: [PATCH 222/269] Move FEM numerics container one level up. --- SU2_CFD/include/solver_structure.hpp | 34 ++++++++++++------------ SU2_CFD/include/solver_structure.inl | 16 +++++------ SU2_CFD/src/integration_structure.cpp | 8 +++--- SU2_CFD/src/iteration_structure.cpp | 4 +-- SU2_CFD/src/solver_direct_elasticity.cpp | 20 +++++++------- SU2_CFD/src/solver_fem_elasticity.cpp | 30 ++++++++++----------- 6 files changed, 56 insertions(+), 56 deletions(-) diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index ca83069c4a4..8839f2e6a29 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -2706,7 +2706,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2715,7 +2715,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! @@ -2725,7 +2725,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2734,7 +2734,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2744,7 +2744,7 @@ class CSolver { * \param[in] config - Definition of the particular problem. */ - virtual void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2754,7 +2754,7 @@ class CSolver { * \param[in] config - Definition of the particular problem. */ - virtual void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2763,7 +2763,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2772,7 +2772,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + virtual void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -7090,7 +7090,7 @@ class CFEASolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Compute the stiffness and mass matrices of the problem. @@ -7099,7 +7099,7 @@ class CFEASolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -7108,7 +7108,7 @@ class CFEASolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -7325,7 +7325,7 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Compute the stiffness matrix of the problem and the nodal stress terms at the same time (more efficient if full Newton Raphson). @@ -7334,7 +7334,7 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Compute the mass matrix of the problem. @@ -7343,7 +7343,7 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Compute the nodal stress terms and add them to the residual. @@ -7352,7 +7352,7 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Compute the stress at the nodes for output purposes. @@ -7362,7 +7362,7 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] config - Definition of the particular problem. */ - void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Compute the dead loads. @@ -7371,7 +7371,7 @@ class CFEM_ElasticitySolver : public CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config); + void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief Initializes the matrices/residuals in the solution process (avoids adding over previous values). diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 4e2b0871f13..9f49daee70d 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -728,21 +728,21 @@ inline CFluidModel* CSolver::GetFluidModel(void) { return NULL;} inline CFluidModel* CEulerSolver::GetFluidModel(void) { return FluidModel;} -inline void CSolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { } +inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } inline void CSolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 547a1fa98f4..24e83ff4e2b 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -225,7 +225,7 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- This is done only once, at the beginning of the calculation. From then on, K is constant ---*/ if ((linear_analysis && initial_calc) || (linear_analysis && restart && initial_calc_restart)){ - solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics[FEA_TERM], config); + solver_container[MainSolver]->Compute_StiffMatrix(geometry, solver_container, numerics, config); } else if (!linear_analysis){ /*--- If the analysis is nonlinear, also the stress terms need to be computed ---*/ @@ -233,7 +233,7 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, /*--- They are calculated together to avoid looping twice over the elements ---*/ if (IterativeScheme == NEWTON_RAPHSON){ /*--- The Jacobian is reinitialized every time in Preprocessing (before calling Space_Integration_FEM) */ - solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[FEA_TERM], config); + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics, config); } /*--- If the method is modified Newton-Raphson, the stiffness matrix is only computed once at the beginning of the time-step ---*/ @@ -241,11 +241,11 @@ void CIntegration::Space_Integration_FEM(CGeometry *geometry, else if (IterativeScheme == MODIFIED_NEWTON_RAPHSON){ if (first_iter){ - solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics[FEA_TERM], config); + solver_container[MainSolver]->Compute_StiffMatrix_NodalStressRes(geometry, solver_container, numerics, config); } else{ - solver_container[MainSolver]->Compute_NodalStressRes(geometry, solver_container, numerics[FEA_TERM], config); + solver_container[MainSolver]->Compute_NodalStressRes(geometry, solver_container, numerics, config); } } diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index c899511f62b..bc573bb4a15 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1188,7 +1188,7 @@ void CFEM_StructuralAnalysis::Update(COutput *output, /*----------------- Compute averaged nodal stress and reactions ------------------------*/ - solver_container[val_iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], numerics_container[val_iZone][MESH_0][FEA_SOL][FEA_TERM], config_container[val_iZone]); + solver_container[val_iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0], numerics_container[val_iZone][MESH_0][FEA_SOL], config_container[val_iZone]); /*----------------- Update structural solver ----------------------*/ @@ -1995,7 +1995,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*----------------- Compute averaged nodal stress and reactions ------------------------*/ for (iZone = 0; iZone < nZone; iZone++) - solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL][FEA_TERM], config_container[iZone]); + solver_container[iZone][MESH_0][FEA_SOL]->Compute_NodalStress(geometry_container[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][FEA_SOL], config_container[iZone]); /*----------------- Update structural solver ----------------------*/ diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 9d5d9987b6f..fe2ed81cb18 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -360,14 +360,14 @@ void CFEASolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, if (ExtIter == 0){ if (!dynamic){ - Compute_StiffMatrix(geometry, solver_container, numerics[VISC_TERM], config); + Compute_StiffMatrix(geometry, solver_container, numerics, config); } else if (dynamic){ /*--- Compute the integration constants ---*/ Compute_IntegrationConstants(config); /*--- Compute the stiffness and mass matrices ---*/ - Compute_StiffMassMatrix(geometry, solver_container, numerics[VISC_TERM], config); + Compute_StiffMassMatrix(geometry, solver_container, numerics, config); } @@ -464,7 +464,7 @@ void CFEASolver::Compute_IntegrationConstants(CConfig *config) { } -void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; unsigned long iElem, PointCorners[8]; @@ -494,8 +494,8 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta /*--- We set the element stiffness matrix ---*/ - if (nDim == 2) numerics->SetFEA_StiffMatrix2D(StiffMatrix_Elem, CoordCorners, nNodes, form2d); - if (nDim == 3) numerics->SetFEA_StiffMatrix3D(StiffMatrix_Elem, CoordCorners, nNodes); + if (nDim == 2) numerics[FEA_TERM]->SetFEA_StiffMatrix2D(StiffMatrix_Elem, CoordCorners, nNodes, form2d); + if (nDim == 3) numerics[FEA_TERM]->SetFEA_StiffMatrix3D(StiffMatrix_Elem, CoordCorners, nNodes); /*--- Initialization of the auxiliar matrix ---*/ @@ -521,7 +521,7 @@ void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_conta } -void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; unsigned long iElem, PointCorners[8]; @@ -559,8 +559,8 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c } } - if (nDim == 2) numerics->SetFEA_StiffMassMatrix2D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes, form2d); - if (nDim == 3) numerics->SetFEA_StiffMassMatrix3D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes); + if (nDim == 2) numerics[FEA_TERM]->SetFEA_StiffMassMatrix2D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes, form2d); + if (nDim == 3) numerics[FEA_TERM]->SetFEA_StiffMassMatrix3D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes); /*--- Initialization of the auxiliar matrix ---*/ @@ -593,7 +593,7 @@ void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_c } -void CFEASolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEASolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { cout << "Here we will compute the damping matrix." << endl; } @@ -1229,7 +1229,7 @@ void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, /*--- Container of the shape functions ---*/ CNumerics *numerics; - numerics=numerics_container[VISC_TERM]; + numerics=numerics_container[FEA_TERM]; /*--- Enforcement of displacement boundary conditions ---*/ unsigned short MainSolver = config->GetContainerPosition(RUNTIME_FEA_SYS); diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5cee3a478fb..fe47cb5f9ec 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1039,7 +1039,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ (dynamic && restart && initial_calc_restart && first_iter)) { MassMatrix.SetValZero(); Compute_IntegrationConstants(config); - Compute_MassMatrix(geometry, solver_container, numerics[FEA_TERM], config); + Compute_MassMatrix(geometry, solver_container, numerics, config); } /* @@ -1058,7 +1058,7 @@ void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_ for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_BodyForces_Res(); } // Compute the dead load term - Compute_DeadLoad(geometry, solver_container, numerics[FEA_TERM], config); + Compute_DeadLoad(geometry, solver_container, numerics, config); } /* @@ -1115,7 +1115,7 @@ void CFEM_ElasticitySolver::ResetInitialCondition(CGeometry **geometry, CSolver } -void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned long iElem, iVar, jVar; unsigned short iNode, iDim, nNodes; @@ -1150,7 +1150,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s } } - numerics->Compute_Tangent_Matrix(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); @@ -1177,7 +1177,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s } -void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned long iElem, iVar, jVar; unsigned short iNode, iDim, nNodes; @@ -1219,9 +1219,9 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet /*--- If incompressible, we compute the Mean Dilatation term first so the volume is already computed ---*/ - if (incompressible) numerics->Compute_MeanDilatation_Term(element_container[EL_KIND]); + if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[EL_KIND]); - numerics->Compute_Tangent_Matrix(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); @@ -1259,7 +1259,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet } -void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned long iElem, iVar; unsigned short iNode, iDim, nNodes; @@ -1292,7 +1292,7 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so } } - numerics->Compute_Mass_Matrix(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); @@ -1316,7 +1316,7 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so } -void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned long iElem, iVar; @@ -1352,7 +1352,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver } } - numerics->Compute_NodalStress_Term(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); @@ -1374,7 +1374,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver } -void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned long iPoint, iElem, iVar; unsigned short iNode, iDim, iStress; @@ -1424,7 +1424,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } } - numerics->Compute_Averaged_NodalStress(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); @@ -1651,7 +1651,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } -void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config) { +void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { unsigned long iElem, iVar; unsigned short iNode, iDim, nNodes; @@ -1684,7 +1684,7 @@ void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solv } } - numerics->Compute_Dead_Load(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Dead_Load(element_container[EL_KIND]); NelNodes = element_container[EL_KIND]->GetnNodes(); From b6853d9b7fc23eeef01d31c46339462800058a9b Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Mar 2016 16:18:36 +0000 Subject: [PATCH 223/269] Increased flexibility in element_container for FE analysis. --- Common/include/option_structure.hpp | 1 + SU2_CFD/include/solver_structure.hpp | 2 +- SU2_CFD/src/solver_fem_elasticity.cpp | 132 +++++++++++++------------- 3 files changed, 70 insertions(+), 65 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index df08cedfc4f..9af4aa19127 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -117,6 +117,7 @@ const unsigned int MAX_NUMBER_FFD = 10; /*!< \brief Maximum number of FFDBo const unsigned int MAX_SOLS = 6; /*!< \brief Maximum number of solutions at the same time (dimension of solution container array). */ const unsigned int MAX_TERMS = 6; /*!< \brief Maximum number of terms in the numerical equations (dimension of solver container array). */ const unsigned int MAX_ZONES = 3; /*!< \brief Maximum number of zones. */ +const unsigned int MAX_FE_KINDS = 4; /*!< \brief Maximum number of Finite Elements. */ const unsigned int NO_RK_ITER = 0; /*!< \brief No Runge-Kutta iteration. */ const unsigned int MESH_0 = 0; /*!< \brief Definition of the finest grid level. */ diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 8839f2e6a29..7144bc54c24 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -7224,7 +7224,7 @@ class CFEM_ElasticitySolver : public CSolver { public: - CElement** element_container; /*!< \brief Vector which the define the finite element structure for each problem. */ + CElement*** element_container; /*!< \brief Vector which the define the finite element structure for each problem. */ /*! * \brief Constructor of the class. diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index fe47cb5f9ec..1d84cf4a98c 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -81,7 +81,8 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { unsigned long iPoint; - unsigned short iVar, jVar, iDim, jDim, nKindElements; + unsigned short iVar, jVar, iDim, jDim; + unsigned short iTerm, iKind; unsigned short iZone = config->GetiZone(); unsigned short nZone = geometry->GetnZone(); @@ -92,6 +93,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); int rank = MASTER_NODE; #ifdef HAVE_MPI @@ -107,9 +109,35 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi nPoint = geometry->GetnPoint(); nPointDomain = geometry->GetnPointDomain(); - nKindElements = 2; - element_container = new CElement*[nKindElements]; + /*--- Here is where we assign the kind of each element ---*/ + + /*--- First level: different possible terms of the equations ---*/ + element_container = new CElement** [MAX_TERMS]; + for (iTerm = 0; iTerm < MAX_TERMS; iTerm++) + element_container[iTerm] = new CElement* [MAX_FE_KINDS]; + + if (nDim == 2){ + if (incompressible){ + element_container[FEA_TERM][EL_TRIA] = new CTRIA1(nDim, config); + element_container[FEA_TERM][EL_QUAD] = new CQUAD4P1(nDim, config); + } + else{ + element_container[FEA_TERM][EL_TRIA] = new CTRIA1(nDim, config); + element_container[FEA_TERM][EL_QUAD] = new CQUAD4(nDim, config); + } + } + else if (nDim == 3){ + if (incompressible){ + element_container[FEA_TERM][EL_TETRA] = new CTETRA1(nDim, config); + element_container[FEA_TERM][EL_HEXA] = new CHEXA8P1(nDim, config); + } + else{ + element_container[FEA_TERM][EL_TETRA] = new CTETRA1(nDim, config); + element_container[FEA_TERM][EL_HEXA] = new CHEXA8(nDim, config); + } + } + node = new CVariable*[nPoint]; GradN_X = new su2double [nDim]; @@ -297,8 +325,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi } - bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); - /*--- Term ij of the Jacobian ---*/ Jacobian_ij = new su2double*[nVar]; @@ -437,29 +463,6 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi LinSysReact.Initialize(nPoint, nPointDomain, nVar, 0.0); - /*--- Here is where we assign the kind of each element ---*/ - - if (nDim == 2){ - if (incompressible){ - element_container[EL_TRIA] = new CTRIA1(nDim, config); - element_container[EL_QUAD] = new CQUAD4P1(nDim, config); - } - else{ - element_container[EL_TRIA] = new CTRIA1(nDim, config); - element_container[EL_QUAD] = new CQUAD4(nDim, config); - } - } - else if (nDim == 3){ - if (incompressible){ - element_container[EL_TETRA] = new CTETRA1(nDim, config); - element_container[EL_HEXA] = new CHEXA8P1(nDim, config); - } - else{ - element_container[EL_TETRA] = new CTETRA1(nDim, config); - element_container[EL_HEXA] = new CHEXA8(nDim, config); - } - } - /*--- Initialize the auxiliary vector and matrix for the computation of the nodal Reactions ---*/ normalVertex = new su2double [nDim]; @@ -485,15 +488,16 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { - unsigned short iVar, nKindElements = 2; + unsigned short iVar, jVar; unsigned long iPoint; for (iPoint = 0; iPoint < nPoint; iPoint++){ delete [] node[iPoint]; } - for (iVar = 0; iVar < nKindElements; iVar++){ - delete [] element_container[iVar]; + for (iVar = 0; iVar < MAX_TERMS; iVar++){ + for (jVar = 0; jVar < MAX_FE_KINDS; iVar++) + if (element_container[iVar][jVar] != NULL) delete [] element_container[iVar][jVar]; } for (iVar = 0; iVar < nVar; iVar++){ @@ -507,7 +511,7 @@ CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { delete [] stressTensor[iVar]; } - delete [] element_container; + if (element_container != NULL) delete [] element_container; delete [] node; delete [] Jacobian_ij; if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij; @@ -1146,19 +1150,19 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); } } - numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ for (jNode = 0; jNode < NelNodes; jNode++){ - Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); + Kab = element_container[FEA_TERM][EL_KIND]->Get_Kab(iNode, jNode); for (iVar = 0; iVar < nVar; iVar++){ for (jVar = 0; jVar < nVar; jVar++){ @@ -1212,22 +1216,22 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); } } /*--- If incompressible, we compute the Mean Dilatation term first so the volume is already computed ---*/ - if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[EL_KIND]); + if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[FEA_TERM][EL_KIND]); - numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ - Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; /*--- Check if this is my node or not ---*/ @@ -1235,9 +1239,9 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet for (jNode = 0; jNode < NelNodes; jNode++){ - Kab = element_container[EL_KIND]->Get_Kab(iNode, jNode); - Ks_ab = element_container[EL_KIND]->Get_Ks_ab(iNode,jNode); - if (incompressible) Kk_ab = element_container[EL_KIND]->Get_Kk_ab(iNode,jNode); + Kab = element_container[FEA_TERM][EL_KIND]->Get_Kab(iNode, jNode); + Ks_ab = element_container[FEA_TERM][EL_KIND]->Get_Ks_ab(iNode,jNode); + if (incompressible) Kk_ab = element_container[FEA_TERM][EL_KIND]->Get_Kk_ab(iNode,jNode); for (iVar = 0; iVar < nVar; iVar++){ Jacobian_s_ij[iVar][iVar] = Ks_ab; @@ -1288,19 +1292,19 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); } } - numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[FEA_TERM][EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ for (jNode = 0; jNode < NelNodes; jNode++){ - Mab = element_container[EL_KIND]->Get_Mab(iNode, jNode); + Mab = element_container[FEA_TERM][EL_KIND]->Get_Mab(iNode, jNode); for (iVar = 0; iVar < nVar; iVar++){ MassMatrix_ij[iVar][iVar] = Mab; @@ -1347,18 +1351,18 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); } } - numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[FEA_TERM][EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ - Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); @@ -1419,26 +1423,26 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); } } - numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[FEA_TERM][EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ /*--- This only works if the problem is nonlinear ---*/ - Ta = element_container[EL_KIND]->Get_Kt_a(iNode); + Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; LinSysReact.AddBlock(indexNode[iNode], Res_Stress_i); for (iStress = 0; iStress < nStress; iStress++){ node[indexNode[iNode]]->AddStress_FEM(iStress, - (element_container[EL_KIND]->Get_NodalStress(iNode, iStress) / + (element_container[FEA_TERM][EL_KIND]->Get_NodalStress(iNode, iStress) / geometry->node[indexNode[iNode]]->GetnElem()) ); } @@ -1680,17 +1684,17 @@ void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solv indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); for (iDim = 0; iDim < nDim; iDim++) { val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - element_container[EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); } } - numerics[FEA_TERM]->Compute_Dead_Load(element_container[EL_KIND]); + numerics[FEA_TERM]->Compute_Dead_Load(element_container[FEA_TERM][EL_KIND]); - NelNodes = element_container[EL_KIND]->GetnNodes(); + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); for (iNode = 0; iNode < NelNodes; iNode++){ - Dead_Load = element_container[EL_KIND]->Get_FDL_a(iNode); + Dead_Load = element_container[FEA_TERM][EL_KIND]->Get_FDL_a(iNode); for (iVar = 0; iVar < nVar; iVar++) Res_Dead_Load[iVar] = Dead_Load[iVar]; node[indexNode[iNode]]->Add_BodyForces_Res(Res_Dead_Load); From 243d9f958e218a513249d19bc2331d5f67089310 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Mar 2016 17:04:42 +0000 Subject: [PATCH 224/269] Deleted features introduced for debugging. --- Common/include/config_structure.hpp | 1 - Common/include/config_structure.inl | 2 -- Common/src/config_structure.cpp | 4 --- SU2_CFD/src/solver_fem_elasticity.cpp | 35 +++------------------------ 4 files changed, 3 insertions(+), 39 deletions(-) diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index f3e0356479a..8799f5215f1 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -707,7 +707,6 @@ class CConfig { bool ParMETIS; /*!< \brief Boolean for activating ParMETIS mode (while testing). */ unsigned short DirectDiff; /*!< \brief Direct Differentation mode. */ bool DiscreteAdjoint; /*!< \brief AD-based discrete adjoint mode. */ - bool Check_FSI_MPI; /*!< \brief Benchmark of FSI performance. */ /*--- all_options is a map containing all of the options. This is used during config file parsing diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index f3189c8ae87..8b43e351000 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -1204,6 +1204,4 @@ inline unsigned short CConfig::GetDirectDiff(){ return DirectDiff;} inline bool CConfig::GetDiscrete_Adjoint() {return DiscreteAdjoint;} -inline bool CConfig::CheckFSI_MPI() {return Check_FSI_MPI;} - inline bool CConfig::GetAD_Mode(void) {return AD_Mode;} diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 75c39e28c94..73ca3b71179 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1187,10 +1187,6 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /* DESCRIPTION: Transfer method used for multiphysics problems */ addEnumOption("MULTIPHYSICS_TRANSFER_METHOD", Kind_TransferMethod, Transfer_Method_Map, BROADCAST_DATA); - /*!\brief CHK_FSI_MPI - * \n DESCRIPTION: For testing problems in FSI parallelization \ingroup Config*/ - addBoolOption("CHECK_FSI_MPI", Check_FSI_MPI, false); - /* CONFIG_CATEGORY: FSI solver */ /*--- Options related to the FSI solver ---*/ diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 1d84cf4a98c..5e9318a4c6e 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -2734,38 +2734,9 @@ void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_c } - bool FSI_MPI = config->CheckFSI_MPI(); - su2double FSI_StartTime = 0.0, FSI_StopTime = 0.0, FSI_UsedTime = 0.0; - - int rank = MASTER_NODE; - int size = SINGLE_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); -#endif - -#ifndef HAVE_MPI - FSI_StartTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StartTime = MPI_Wtime(); -#endif - CSysSolve femSystem; IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); -#ifndef HAVE_MPI - FSI_StopTime = su2double(clock())/su2double(CLOCKS_PER_SEC); -#else - FSI_StopTime = MPI_Wtime(); -#endif - FSI_UsedTime = FSI_StopTime-FSI_StartTime; - if ((rank == MASTER_NODE) && FSI_MPI) { - cout << "\n------------------------------- Solve System ------------------------------------ " << endl; - cout << "------------------ It has taken " << fixed << FSI_UsedTime << " seconds on "<< size << " cores. -------------------" << endl; - cout << "-------------------- The number of iterations run was " << IterLinSol << ". ---------------------- " << endl; - } - - /*--- The the number of iterations of the linear solver ---*/ SetIterLinSolver(IterLinSol); @@ -3478,7 +3449,7 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, SetWAitken_Dyn(1.0); - historyFile_FSI << " " << endl ; + if (iFSIIter == 0) historyFile_FSI << " " << endl ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 ; @@ -3492,7 +3463,7 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, SetWAitken_Dyn(fea_config->GetAitkenStatRelax()); - historyFile_FSI << " " << endl ; + if (iFSIIter == 0) historyFile_FSI << " " << endl ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() ; @@ -3513,7 +3484,7 @@ void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, SetWAitken_Dyn(WAitkDyn); if (writeHistFSI && (rank == MASTER_NODE)){ - historyFile_FSI << " " << endl ; + if (iFSIIter == 0) historyFile_FSI << " " << endl ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; From 9f89b1b236e66ce4d83166f9df9a7869959b4886 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Wed, 9 Mar 2016 19:16:42 +0000 Subject: [PATCH 225/269] Pass config all the way down to FEM numerics. --- SU2_CFD/include/numerics_structure.hpp | 70 +++++++++---------- SU2_CFD/include/numerics_structure.inl | 38 +++++----- SU2_CFD/src/numerics_fem_elasticity.cpp | 4 +- .../src/numerics_fem_linear_elasticity.cpp | 4 +- .../src/numerics_fem_nonlinear_elasticity.cpp | 34 ++++----- SU2_CFD/src/solver_fem_elasticity.cpp | 14 ++-- 6 files changed, 82 insertions(+), 82 deletions(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index ac800635af9..e0e5d7337dd 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1504,55 +1504,55 @@ class CNumerics { * \brief A virtual member to compute the tangent matrix in structural problems * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Tangent_Matrix(CElement *element_container); + virtual void Compute_Tangent_Matrix(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the pressure term in incompressible or nearly-incompressible structural problems * \param[in] element_container - Definition of the particular element integrated. */ - virtual void Compute_MeanDilatation_Term(CElement *element_container); + virtual void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the nodal stress term in non-linear structural problems * \param[in] element_container - Definition of the particular element integrated. */ - virtual void Compute_NodalStress_Term(CElement *element_container); + virtual void Compute_NodalStress_Term(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the plane stress term in an element for nonlinear structural problems * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Plane_Stress_Term(CElement *element_container); + virtual void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the constitutive matrix in an element for structural problems * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Constitutive_Matrix(CElement *element_container); + virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the stress tensor in an element for structural problems * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Stress_Tensor(CElement *element_container); + virtual void Compute_Stress_Tensor(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the mass matrix * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Mass_Matrix(CElement *element_container); + virtual void Compute_Mass_Matrix(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the residual component due to dead loads * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Dead_Load(CElement *element_container); + virtual void Compute_Dead_Load(CElement *element_container, CConfig *config); /*! * \brief A virtual member to compute the averaged nodal stresses * \param[in] element_container - Element structure for the particular element integrated. */ - virtual void Compute_Averaged_NodalStress(CElement *element_container); + virtual void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config); /*! * \brief Computes a basis of orthogonal vectors from a suppled vector @@ -4204,23 +4204,23 @@ class CFEM_Elasticity : public CNumerics { */ ~CFEM_Elasticity(void); - void Compute_Mass_Matrix(CElement *element_container); + void Compute_Mass_Matrix(CElement *element_container, CConfig *config); - void Compute_Dead_Load(CElement *element_container); + void Compute_Dead_Load(CElement *element_container, CConfig *config); - virtual void Compute_Tangent_Matrix(CElement *element_container); + virtual void Compute_Tangent_Matrix(CElement *element_container, CConfig *config); - virtual void Compute_MeanDilatation_Term(CElement *element_container); + virtual void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config); - virtual void Compute_NodalStress_Term(CElement *element_container); + virtual void Compute_NodalStress_Term(CElement *element_container, CConfig *config); - virtual void Compute_Averaged_NodalStress(CElement *element_container); + virtual void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config); - virtual void Compute_Plane_Stress_Term(CElement *element_container); + virtual void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config); - virtual void Compute_Constitutive_Matrix(CElement *element_container); + virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config); - virtual void Compute_Stress_Tensor(CElement *element_container); + virtual void Compute_Stress_Tensor(CElement *element_container, CConfig *config); }; @@ -4250,18 +4250,18 @@ class CFEM_LinearElasticity : public CFEM_Elasticity { */ ~CFEM_LinearElasticity(void); - void Compute_Tangent_Matrix(CElement *element_container); + void Compute_Tangent_Matrix(CElement *element_container, CConfig *config); void Compute_Constitutive_Matrix(void); using CNumerics::Compute_Constitutive_Matrix; - void Compute_Averaged_NodalStress(CElement *element_container); + void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config); // virtual void Compute_Stress_Tensor(void); -// virtual void Compute_MeanDilatation_Term(CElement *element_container); +// virtual void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config); -// virtual void Compute_NodalStress_Term(CElement *element_container); +// virtual void Compute_NodalStress_Term(CElement *element_container, CConfig *config); }; @@ -4303,19 +4303,19 @@ class CFEM_NonlinearElasticity : public CFEM_Elasticity { */ ~CFEM_NonlinearElasticity(void); - void Compute_Tangent_Matrix(CElement *element_container); + void Compute_Tangent_Matrix(CElement *element_container, CConfig *config); - void Compute_MeanDilatation_Term(CElement *element_container); + void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config); - void Compute_NodalStress_Term(CElement *element_container); + void Compute_NodalStress_Term(CElement *element_container, CConfig *config); - void Compute_Averaged_NodalStress(CElement *element_container); + void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config); - virtual void Compute_Plane_Stress_Term(CElement *element_container); + virtual void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config); - virtual void Compute_Constitutive_Matrix(CElement *element_container); + virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config); - virtual void Compute_Stress_Tensor(CElement *element_container); + virtual void Compute_Stress_Tensor(CElement *element_container, CConfig *config); }; @@ -4344,12 +4344,12 @@ class CFEM_NeoHookean_Comp : public CFEM_NonlinearElasticity { */ ~CFEM_NeoHookean_Comp(void); - void Compute_Plane_Stress_Term(CElement *element_container); + void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config); - void Compute_Constitutive_Matrix(CElement *element_container); + void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config); using CNumerics::Compute_Constitutive_Matrix; - void Compute_Stress_Tensor(CElement *element_container); + void Compute_Stress_Tensor(CElement *element_container, CConfig *config); }; @@ -4377,12 +4377,12 @@ class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { */ ~CFEM_NeoHookean_Incomp(void); - void Compute_Plane_Stress_Term(CElement *element_container); + void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config); - void Compute_Constitutive_Matrix(CElement *element_container); + void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config); using CNumerics::Compute_Constitutive_Matrix; - void Compute_Stress_Tensor(CElement *element_container); + void Compute_Stress_Tensor(CElement *element_container, CConfig *config); }; diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index c3c7d75ac75..cdcc48b9ae7 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -55,43 +55,43 @@ inline void CNumerics::PressInt_Linear(su2double CoordCorners[4][3], su2double * inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { } -inline void CNumerics::Compute_Mass_Matrix(CElement *element_container){ } +inline void CNumerics::Compute_Mass_Matrix(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_Dead_Load(CElement *element_container){ } +inline void CNumerics::Compute_Dead_Load(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container){ } +inline void CNumerics::Compute_Tangent_Matrix(CElement *element_container, CConfig *config){ } -inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_Tangent_Matrix(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_MeanDilatation_Term(CElement *element_container){ } +inline void CNumerics::Compute_MeanDilatation_Term(CElement *element_container, CConfig *config){ } -inline void CFEM_Elasticity::Compute_MeanDilatation_Term(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_MeanDilatation_Term(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_NodalStress_Term(CElement *element_container){ } +inline void CNumerics::Compute_NodalStress_Term(CElement *element_container, CConfig *config){ } -inline void CFEM_Elasticity::Compute_NodalStress_Term(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_NodalStress_Term(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container){ } +inline void CNumerics::Compute_Averaged_NodalStress(CElement *element_container, CConfig *config){ } -inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_Averaged_NodalStress(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_Plane_Stress_Term(CElement *element_container) { } +inline void CNumerics::Compute_Plane_Stress_Term(CElement *element_container, CConfig *config) { } -inline void CFEM_Elasticity::Compute_Plane_Stress_Term(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_Plane_Stress_Term(CElement *element_container, CConfig *config){ } -inline void CFEM_NonlinearElasticity::Compute_Plane_Stress_Term(CElement *element_container) { } +inline void CFEM_NonlinearElasticity::Compute_Plane_Stress_Term(CElement *element_container, CConfig *config) { } -inline void CNumerics::Compute_Constitutive_Matrix(CElement *element_container){ } +inline void CNumerics::Compute_Constitutive_Matrix(CElement *element_container, CConfig *config){ } -inline void CFEM_Elasticity::Compute_Constitutive_Matrix(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_Constitutive_Matrix(CElement *element_container, CConfig *config){ } -inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(CElement *element_container){ } +inline void CFEM_NonlinearElasticity::Compute_Constitutive_Matrix(CElement *element_container, CConfig *config){ } -inline void CNumerics::Compute_Stress_Tensor(CElement *element_container){ } +inline void CNumerics::Compute_Stress_Tensor(CElement *element_container, CConfig *config){ } -inline void CFEM_Elasticity::Compute_Stress_Tensor(CElement *element_container){ } +inline void CFEM_Elasticity::Compute_Stress_Tensor(CElement *element_container, CConfig *config){ } -inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(CElement *element_container){ } +inline void CFEM_NonlinearElasticity::Compute_Stress_Tensor(CElement *element_container, CConfig *config){ } inline void CNumerics::ComputeResidual(su2double *val_residual, CConfig *config) { } diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_fem_elasticity.cpp index b25ab765172..b23d1016670 100644 --- a/SU2_CFD/src/numerics_fem_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_elasticity.cpp @@ -134,7 +134,7 @@ CFEM_Elasticity::~CFEM_Elasticity(void) { } -void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ +void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element, CConfig *config){ unsigned short iGauss, nGauss; unsigned short iNode, jNode, nNode; @@ -181,7 +181,7 @@ void CFEM_Elasticity::Compute_Mass_Matrix(CElement *element){ } -void CFEM_Elasticity::Compute_Dead_Load(CElement *element){ +void CFEM_Elasticity::Compute_Dead_Load(CElement *element, CConfig *config){ unsigned short iGauss, nGauss; unsigned short iNode, iDim, nNode; diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp index 0e67a741719..d4025c2112d 100644 --- a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_linear_elasticity.cpp @@ -55,7 +55,7 @@ CFEM_LinearElasticity::~CFEM_LinearElasticity(void) { } -void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element){ +void CFEM_LinearElasticity::Compute_Tangent_Matrix(CElement *element, CConfig *config){ unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; @@ -213,7 +213,7 @@ void CFEM_LinearElasticity::Compute_Constitutive_Matrix(void){ } -void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element){ +void CFEM_LinearElasticity::Compute_Averaged_NodalStress(CElement *element, CConfig *config){ unsigned short iVar, jVar; unsigned short iGauss, nGauss; diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp index ef16aa03741..b8bdeb77fd2 100644 --- a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp +++ b/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp @@ -101,7 +101,7 @@ CFEM_NonlinearElasticity::~CFEM_NonlinearElasticity(void) { } -void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ +void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element, CConfig *config){ unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; @@ -188,7 +188,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ if (nDim == 2) { if (plane_stress){ // Compute the value of the term 33 for the deformation gradient - Compute_Plane_Stress_Term(element); + Compute_Plane_Stress_Term(element, config); F_Mat[2][2] = f33; } else{ @@ -217,8 +217,8 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ /*--- Compute the constitutive matrix ---*/ - Compute_Constitutive_Matrix(element); - Compute_Stress_Tensor(element); + Compute_Constitutive_Matrix(element, config); + Compute_Stress_Tensor(element, config); for (iNode = 0; iNode < nNode; iNode++){ @@ -332,7 +332,7 @@ void CFEM_NonlinearElasticity::Compute_Tangent_Matrix(CElement *element){ } -void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ +void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element, CConfig *config){ unsigned short iVar, jVar; unsigned short iGauss, nGauss; @@ -431,7 +431,7 @@ void CFEM_NonlinearElasticity::Compute_MeanDilatation_Term(CElement *element){ } -void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ +void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element, CConfig *config){ unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; @@ -491,7 +491,7 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ if (nDim == 2) { if (plane_stress){ // Compute the value of the term 33 for the deformation gradient - Compute_Plane_Stress_Term(element); + Compute_Plane_Stress_Term(element, config); F_Mat[2][2] = f33; } else{ @@ -520,7 +520,7 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ /*--- Compute the stress tensor ---*/ - Compute_Stress_Tensor(element); + Compute_Stress_Tensor(element, config); for (iNode = 0; iNode < nNode; iNode++){ @@ -543,7 +543,7 @@ void CFEM_NonlinearElasticity::Compute_NodalStress_Term(CElement *element){ } -void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ +void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element, CConfig *config){ unsigned short iVar, jVar, kVar; unsigned short iGauss, nGauss; @@ -603,7 +603,7 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ if (nDim == 2) { if (plane_stress){ // Compute the value of the term 33 for the deformation gradient - Compute_Plane_Stress_Term(element); + Compute_Plane_Stress_Term(element, config); F_Mat[2][2] = f33; } else{ @@ -632,7 +632,7 @@ void CFEM_NonlinearElasticity::Compute_Averaged_NodalStress(CElement *element){ /*--- Compute the stress tensor ---*/ - Compute_Stress_Tensor(element); + Compute_Stress_Tensor(element, config); for (iNode = 0; iNode < nNode; iNode++){ @@ -678,7 +678,7 @@ CFEM_NeoHookean_Comp::~CFEM_NeoHookean_Comp(void) { } -void CFEM_NeoHookean_Comp::Compute_Plane_Stress_Term(CElement *element) { +void CFEM_NeoHookean_Comp::Compute_Plane_Stress_Term(CElement *element, CConfig *config) { su2double j_red = 1.0; su2double fx = 0.0, fpx = 1.0; @@ -712,7 +712,7 @@ void CFEM_NeoHookean_Comp::Compute_Plane_Stress_Term(CElement *element) { } -void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { +void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element, CConfig *config) { su2double Mu_p = 0.0, Lambda_p = 0.0; @@ -740,7 +740,7 @@ void CFEM_NeoHookean_Comp::Compute_Constitutive_Matrix(CElement *element) { } -void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element) { +void CFEM_NeoHookean_Comp::Compute_Stress_Tensor(CElement *element, CConfig *config) { unsigned short iVar,jVar; su2double Mu_J = 0.0, Lambda_J = 0.0; @@ -790,11 +790,11 @@ CFEM_NeoHookean_Incomp::~CFEM_NeoHookean_Incomp(void) { } -void CFEM_NeoHookean_Incomp::Compute_Plane_Stress_Term(CElement *element) { +void CFEM_NeoHookean_Incomp::Compute_Plane_Stress_Term(CElement *element, CConfig *config) { } -void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { +void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element, CConfig *config) { unsigned short iVar; su2double el_P; @@ -891,7 +891,7 @@ void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element) { } -void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element) { +void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element, CConfig *config) { unsigned short iDim,jDim; su2double dij, el_P; diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 5e9318a4c6e..3a76a7b9589 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -1154,7 +1154,7 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **s } } - numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND]); + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND], config); NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); @@ -1223,9 +1223,9 @@ void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geomet /*--- If incompressible, we compute the Mean Dilatation term first so the volume is already computed ---*/ - if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[FEA_TERM][EL_KIND]); + if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[FEA_TERM][EL_KIND], config); - numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND]); + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND], config); NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); @@ -1296,7 +1296,7 @@ void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **so } } - numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[FEA_TERM][EL_KIND]); + numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[FEA_TERM][EL_KIND], config); NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); @@ -1356,7 +1356,7 @@ void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver } } - numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[FEA_TERM][EL_KIND]); + numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[FEA_TERM][EL_KIND], config); NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); @@ -1428,7 +1428,7 @@ void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **s } } - numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[FEA_TERM][EL_KIND]); + numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[FEA_TERM][EL_KIND], config); NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); @@ -1688,7 +1688,7 @@ void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solv } } - numerics[FEA_TERM]->Compute_Dead_Load(element_container[FEA_TERM][EL_KIND]); + numerics[FEA_TERM]->Compute_Dead_Load(element_container[FEA_TERM][EL_KIND], config); NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); From 028e15d6cf872639cd2e34a0a6ebe69e947e1f16 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 12 Mar 2016 20:22:33 -0800 Subject: [PATCH 226/269] file differencing test added --- TestCases/TestCase.py | 68 +++++++++++++++++++++++++++++++++- TestCases/serial_regression.py | 15 ++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index fe233c1b3c4..5cdb0a7c705 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -29,7 +29,8 @@ # You should have received a copy of the GNU Lesser General Public # License along with SU2. If not, see . -import time, os, subprocess, datetime +import time, os, subprocess, datetime, sys +import difflib class TestCase: @@ -52,6 +53,10 @@ def __init__(self,tag_in): self.su2_exec = "SU2_CFD" self.timeout = 300 self.tol = 0.001 + + # Options for file-comparison tests + self.reference_file = "of_grad.dat.ref" + self.test_file = "of_grad.dat" def run_test(self): @@ -182,6 +187,67 @@ def run_test(self): os.chdir(workdir) return passed + + def run_diff(self): + print '==================== Start Test: %s ===================='%self.tag + passed = True + timed_out = False + + # Assemble the shell command to run + logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] + command = "%s -f %s > %s" % (self.su2_exec, self.cfg_file, logfilename) + + # Run SU2 + workdir = os.getcwd() + os.chdir(self.cfg_dir) + print os.getcwd() + start = datetime.datetime.now() + process = subprocess.Popen(command, shell=True) # This line launches SU2 + + # check for timeout + while process.poll() is None: + time.sleep(0.1) + now = datetime.datetime.now() + running_time = (now - start).seconds + if running_time > self.timeout: + try: + process.kill() + os.system('killall %s' % self.su2_exec) # In case of parallel execution + except AttributeError: # popen.kill apparently fails on some versions of subprocess... the killall command should take care of things! + pass + timed_out = True + passed = False + + + if not timed_out: + # Compare files + fromfile = self.reference_file + tofile = self.test_file + + fromdate = time.ctime(os.stat(fromfile).st_mtime) + todate = time.ctime(os.stat(tofile).st_mtime) + fromlines = open(fromfile, 'U').readlines() + tolines = open(tofile, 'U').readlines() + + diff = list(difflib.unified_diff(fromlines, tolines, fromfile, tofile, + fromdate, todate)) + + + if (diff==[]): + passed=True + else: + for line in diff: + print line[:-1] + passed=False + + else: + passed = False + + print 'test duration: %.2f min'%(running_time/60.0) + print '==================== End Test: %s ====================\n'%self.tag + + os.chdir(workdir) + return passed def adjust_iter(self): diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 869b060e96f..b6f8a79aa18 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -538,6 +538,21 @@ def main(): pass_list = [ test.run_test() for test in test_list ] + + ###################################### + ### RUN PYTHON TESTS ### + ###################################### + contadj_euler_py = TestCase('contadj_euler_py') + contadj_euler_py.cfg_dir = "cont_adj_euler/naca0012" + contadj_euler_py.cfg_file = "inv_NACA0012.cfg" + contadj_euler_py.test_iter = 10 + contadj_euler_py.su2_exec = "continuous_adjoint.py" + contadj_euler_py.timeout = 1600 + contadj_euler_py.reference_file = "of_grad_cd.dat.ref" + contadj_euler_py.test_file = "of_grad_cd.dat" + pass_list.append(contadj_euler_py.run_diff()) + test_list.append(contadj_euler_py) + # Tests summary print '==================================================================' print 'Summary of the serial tests' From 88f7811c2dc06e83849d7217bfe2cf9f4b622a6e Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 12 Mar 2016 20:24:08 -0800 Subject: [PATCH 227/269] changed name of testing function to run_filediff --- TestCases/TestCase.py | 2 +- TestCases/serial_regression.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 5cdb0a7c705..f73949ace5b 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -188,7 +188,7 @@ def run_test(self): os.chdir(workdir) return passed - def run_diff(self): + def run_filediff(self): print '==================== Start Test: %s ===================='%self.tag passed = True timed_out = False diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index b6f8a79aa18..24e9f863b2d 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -550,7 +550,7 @@ def main(): contadj_euler_py.timeout = 1600 contadj_euler_py.reference_file = "of_grad_cd.dat.ref" contadj_euler_py.test_file = "of_grad_cd.dat" - pass_list.append(contadj_euler_py.run_diff()) + pass_list.append(contadj_euler_py.run_filediff()) test_list.append(contadj_euler_py) # Tests summary From 1a666c603d2477399fcad35cf3b56af49abdea93 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 12 Mar 2016 20:46:32 -0800 Subject: [PATCH 228/269] added finite_differences.py regression test --- TestCases/serial_regression.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 24e9f863b2d..748f219c732 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -542,6 +542,8 @@ def main(): ###################################### ### RUN PYTHON TESTS ### ###################################### + + # test continuous_adjoint.py contadj_euler_py = TestCase('contadj_euler_py') contadj_euler_py.cfg_dir = "cont_adj_euler/naca0012" contadj_euler_py.cfg_file = "inv_NACA0012.cfg" @@ -552,6 +554,18 @@ def main(): contadj_euler_py.test_file = "of_grad_cd.dat" pass_list.append(contadj_euler_py.run_filediff()) test_list.append(contadj_euler_py) + + # test finite_difference.py + findiff_euler_py = TestCase('findiff_euler_py') + findiff_euler_py.cfg_dir = "cont_adj_euler/naca0012" + findiff_euler_py.cfg_file = "inv_NACA0012_FD.cfg" + findiff_euler_py.test_iter = 10 + findiff_euler_py.su2_exec = "finite_differences.py" + findiff_euler_py.timeout = 1600 + findiff_euler_py.reference_file = "of_grad_findiff.dat.ref" + findiff_euler_py.test_file = "FINDIFF/of_grad_findiff.dat" + pass_list.append(findiff_euler_py.run_filediff()) + test_list.append(findiff_euler_py) # Tests summary print '==================================================================' From 97b1037fe7eb0be2dccc5e1f8bea2dbe92683678 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 14 Mar 2016 18:13:09 -0700 Subject: [PATCH 229/269] Added the discrete and direct diff python tests. Added adjust iter for python tests. Moved inv_NACA0012_FD.cfg. --- .travis.yml | 4 +- TestCases/TestCase.py | 5 +- .../naca0012/inv_NACA0012_FD.cfg | 305 ++++++++++++++++++ TestCases/serial_regression_AD.py | 30 +- 4 files changed, 340 insertions(+), 4 deletions(-) create mode 100644 TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg diff --git a/.travis.yml b/.travis.yml index f05ae5cb63c..0ec7c9168d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,10 +26,10 @@ env: - CONFIGURE_COMMAND="./preconfigure.py --enable-mpi --with-cc=mpicc --with-cxx=mpicxx --prefix=$TRAVIS_BUILD_DIR" TEST_SCRIPT=parallel_regression.py # Serial build and test for AD - - CONFIGURE_COMMAND="./preconfigure.py --prefix=$TRAVIS_BUILD_DIR --enable-autodiff" + - CONFIGURE_COMMAND="./preconfigure.py --prefix=$TRAVIS_BUILD_DIR --enable-autodiff --enable-direct-diff" TEST_SCRIPT=serial_regression_AD.py # Parallel build and test for AD - - CONFIGURE_COMMAND="./preconfigure.py --enable-mpi --with-cc=mpicc --with-cxx=mpicxx --prefix=$TRAVIS_BUILD_DIR --enable-autodiff" + - CONFIGURE_COMMAND="./preconfigure.py --enable-mpi --with-cc=mpicc --with-cxx=mpicxx --prefix=$TRAVIS_BUILD_DIR --enable-autodiff --enable-direct-diff" TEST_SCRIPT=parallel_regression_AD.py diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index f73949ace5b..fcead351a6a 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -193,7 +193,10 @@ def run_filediff(self): passed = True timed_out = False - # Assemble the shell command to run + # Adjust the number of iterations in the config file + self.adjust_iter() + + # Assemble the shell command to run logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] command = "%s -f %s > %s" % (self.su2_exec, self.cfg_file, logfilename) diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg new file mode 100644 index 00000000000..a41c9e2da45 --- /dev/null +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg @@ -0,0 +1,305 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Adjoint transonic inviscid flow around a NACA0012 airfoil % +% Author: Thomas D. Economon % +% Institution: Stanford University % +% Date: 2011.11.02 % +% File Version 4.1.0 "Cardinal" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% POISSON_EQUATION) +PHYSICAL_PROBLEM= EULER +% +% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) +MATH_PROBLEM= CONTINUOUS_ADJOINT +% +% Restart solution (NO, YES) +RESTART_SOL= YES + +% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.8 +% +% Angle of attack (degrees) +AoA= 1.25 +% +% Free-stream pressure (101325.0 N/m^2 by default, only Euler flows) +FREESTREAM_PRESSURE= 101325.0 +% +% Free-stream temperature (288.15 K by default) +FREESTREAM_TEMPERATURE= 288.15 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.25 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference length for pitching, rolling, and yawing non-dimensional moment +REF_LENGTH_MOMENT= 1.0 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 1.0 + +% ----------------------- BOUNDARY CONDITION DEFINITION -----------------------% +% +% Marker of the Euler boundary (0 = no marker) +MARKER_EULER= ( airfoil ) +% +% Marker of the far field (0 = no marker) +MARKER_FAR= ( farfield ) +% +% Marker of the surface which is going to be plotted or designed +MARKER_PLOTTING= ( airfoil ) +% +% Marker of the surface where the functional (Cd, Cl, etc.) will be evaluated +MARKER_MONITORING= ( airfoil ) + +% ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% +% Numerical method for spatial gradients (GREEN_GAUSS, LEAST_SQUARES, +% WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= GREEN_GAUSS +% +% Adjoint problem boundary condition (DRAG, LIFT, SIDEFORCE, MOMENT_X, +% MOMENT_Y, MOMENT_Z, EFFICIENCY, +% EQUIVALENT_AREA, NEARFIELD_PRESSURE, +% FORCE_X, FORCE_Y, FORCE_Z, THRUST, +% TORQUE, FREE_SURFACE, TOTAL_HEAT, +% MAXIMUM_HEATFLUX, INVERSE_DESIGN_PRESSURE, +% INVERSE_DESIGN_HEATFLUX) +OBJECTIVE_FUNCTION= DRAG +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 5.0 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= NO +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, +% CFL max value ) +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +% +% Runge-Kutta alpha coefficients +RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) +% +% Number of total iterations +EXT_ITER= 1 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +% Multi-Grid Levels (0 = no multi-grid) +MGLEVEL= 2 +% +% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) +MGCYCLE= W_CYCLE +% +% Multi-Grid PreSmoothing Level +MG_PRE_SMOOTH= ( 1, 2, 2, 2 ) +% +% Multi-Grid PostSmoothing Level +MG_POST_SMOOTH= ( 1, 1, 1, 1 ) +% +% Jacobi implicit smoothing of the correction +MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) +% +% Damping factor for the residual restriction +MG_DAMP_RESTRICTION= 1.0 +% +% Damping factor for the correction prolongation +MG_DAMP_PROLONGATION= 1.0 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, +% TURKEL_PREC, MSW) +CONV_NUM_METHOD_FLOW= JST +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% +SPATIAL_ORDER_FLOW= 2ND_ORDER_LIMITER +% +% Slope limiter (VENKATAKRISHNAN, MINMOD) +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +% +% Coefficient for the limiter +LIMITER_COEFF= 0.3 +% +% 1st, 2nd and 4th order artificial dissipation coefficients +AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% ---------------- ADJOINT-FLOW NUMERICAL METHOD DEFINITION -------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, ROE) +CONV_NUM_METHOD_ADJFLOW= ROE +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% +SPATIAL_ORDER_ADJFLOW= 2ND_ORDER +% +% Slope limiter (VENKATAKRISHNAN, SHARP_EDGES) +SLOPE_LIMITER_ADJFLOW= VENKATAKRISHNAN +% +% Coefficient for the sharp edges limiter +SHARP_EDGES_COEFF= 3.0 +% +% 1st, 2nd, and 4th order artificial dissipation coefficients +AD_COEFF_ADJFLOW= ( 0.15, 0.5, 0.02 ) +% +% Reduction factor of the CFL coefficient in the adjoint problem +CFL_REDUCTION_ADJFLOW= 0.5 +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT) +TIME_DISCRE_ADJFLOW= EULER_IMPLICIT + +% ------------------------ GRID DEFORMATION PARAMETERS ------------------------% +% +% Kind of deformation (FFD_SETTING, HICKS_HENNE, HICKS_HENNE_NORMAL, PARABOLIC, +% HICKS_HENNE_SHOCK, NACA_4DIGITS, DISPLACEMENT, ROTATION, +% FFD_CONTROL_POINT, FFD_DIHEDRAL_ANGLE, FFD_TWIST_ANGLE, +% FFD_ROTATION) +DV_KIND= HICKS_HENNE +% +% Marker of the surface in which we are going apply the shape deformation +DV_MARKER= ( airfoil ) +% +% Parameters of the shape deformation +% - HICKS_HENNE_FAMILY ( Lower(0)/Upper(1) side, x_Loc ) +% - NACA_4DIGITS ( 1st digit, 2nd digit, 3rd and 4th digit ) +% - PARABOLIC ( 1st digit, 2nd and 3rd digit ) +% - DISPLACEMENT ( x_Disp, y_Disp, z_Disp ) +% - ROTATION ( x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +DV_PARAM= ( 1, 0.5 ) +% +% Value of the shape deformation deformation +DV_VALUE= 0.01 + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% Convergence criteria (CAUCHY, RESIDUAL) +% +CONV_CRITERIA= RESIDUAL +% +% Residual reduction (order of magnitude with respect to the initial value) +RESIDUAL_REDUCTION= 10 +% +% Min value of the residual (log10 of the residual) +RESIDUAL_MINVAL= -12 +% +% Start Cauchy criteria at iteration number +STARTCONV_ITER= 10 +% +% Number of elements to apply the criteria +CAUCHY_ELEMS= 100 +% +% Epsilon to control the series convergence +CAUCHY_EPS= 1E-6 +% +% Function to apply the criteria (LIFT, DRAG, SENS_GEOMETRY, SENS_MACH, +% DELTA_LIFT, DELTA_DRAG) +CAUCHY_FUNC_FLOW= DRAG + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= mesh_NACA0012_inv.su2 +% +% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= mesh_out.su2 +% +% Restart flow input file +SOLUTION_FLOW_FILENAME= solution_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= solution_adj.dat +% +% Output file format (PARAVIEW, TECPLOT) +OUTPUT_FORMAT= TECPLOT +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FLOW_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FLOW_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output Objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FLOW_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Writing solution file frequency +WRT_SOL_FREQ= 250 +% +% Writing convergence history frequency +WRT_CON_FREQ= 1 + +% --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% +% Available flow based objective functions or constraint functions +% DRAG, LIFT, SIDEFORCE, EFFICIENCY, +% FORCE_X, FORCE_Y, FORCE_Z, +% MOMENT_X, MOMENT_Y, MOMENT_Z, +% THRUST, TORQUE, FIGURE_OF_MERIT, +% EQUIVALENT_AREA, NEARFIELD_PRESSURE, +% FREE_SURFACE +% +% Available geometrical based objective functions or constraint functions +% MAX_THICKNESS, 1/4_THICKNESS, 1/2_THICKNESS, 3/4_THICKNESS, AREA, AOA, CHORD, +% MAX_THICKNESS_SEC1, MAX_THICKNESS_SEC2, MAX_THICKNESS_SEC3, MAX_THICKNESS_SEC4, MAX_THICKNESS_SEC5, +% 1/4_THICKNESS_SEC1, 1/4_THICKNESS_SEC2, 1/4_THICKNESS_SEC3, 1/4_THICKNESS_SEC4, 1/4_THICKNESS_SEC5, +% 1/2_THICKNESS_SEC1, 1/2_THICKNESS_SEC2, 1/2_THICKNESS_SEC3, 1/2_THICKNESS_SEC4, 1/2_THICKNESS_SEC5, +% 3/4_THICKNESS_SEC1, 3/4_THICKNESS_SEC2, 3/4_THICKNESS_SEC3, 3/4_THICKNESS_SEC4, 3/4_THICKNESS_SEC5, +% AREA_SEC1, AREA_SEC2, AREA_SEC3, AREA_SEC4, AREA_SEC5, +% AOA_SEC1, AOA_SEC2, AOA_SEC3, AOA_SEC4, AOA_SEC5, +% CHORD_SEC1, CHORD_SEC2, CHORD_SEC3, CHORD_SEC4, CHORD_SEC5 +% +% Available design variables +% HICKS_HENNE ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) +% COSINE_BUMP ( 2, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc, x_Size ) +% SPHERICAL ( 3, Scale | Mark. List | ControlPoint_Index, Theta_Disp, R_Disp ) +% NACA_4DIGITS ( 4, Scale | Mark. List | 1st digit, 2nd digit, 3rd and 4th digit ) +% DISPLACEMENT ( 5, Scale | Mark. List | x_Disp, y_Disp, z_Disp ) +% ROTATION ( 6, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn ) +% FFD_CONTROL_POINT ( 7, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, k_Ind, x_Mov, y_Mov, z_Mov ) +% FFD_DIHEDRAL_ANGLE ( 8, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% FFD_TWIST_ANGLE ( 9, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% FFD_ROTATION ( 10, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% FFD_CAMBER ( 11, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% FFD_THICKNESS ( 12, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% FFD_VOLUME ( 13, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% FOURIER ( 14, Scale | Mark. List | Lower(0)/Upper(1) side, index, cos(0)/sin(1) ) +% +% Optimization objective function with scaling factor +% ex= Objective * Scale +OPT_OBJECTIVE= DRAG * 0.001 +% +% Optimization constraint functions with scaling factors, separated by semicolons +% ex= (Objective = Value ) * Scale, use '>','<','=' +OPT_CONSTRAINT= ( LIFT > 0.327 ) * 0.001; ( MOMENT_Z > 0.0 ) * 0.001; ( MAX_THICKNESS > 0.12 ) * 0.001 +% +% Optimization design variables, separated by semicolons +DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( 1, 1.0 | airfoil | 0, 0.15 ); diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index bd86b87aff0..5ff5dd2e10d 100755 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -79,13 +79,41 @@ def main(): discadj_rans_naca0012_sst.timeout = 1600 discadj_rans_naca0012_sst.tol = 0.00001 test_list.append(discadj_rans_naca0012_sst) - + ###################################### ### RUN TESTS ### ###################################### pass_list = [ test.run_test() for test in test_list ] + ###################################### + ### RUN PYTHON TESTS ### + ###################################### + + # test discrete_adjoint.py + discadj_euler_py = TestCase('discadj_euler_py') + discadj_euler_py.cfg_dir = "cont_adj_euler/naca0012" + discadj_euler_py.cfg_file = "inv_NACA0012.cfg" + discadj_euler_py.test_iter = 10 + discadj_euler_py.su2_exec = "discrete_adjoint.py" + discadj_euler_py.timeout = 1600 + discadj_euler_py.reference_file = "of_grad_cd_disc.dat.ref" + discadj_euler_py.test_file = "of_grad_cd.dat" + pass_list.append(discadj_euler_py.run_filediff()) + test_list.append(discadj_euler_py) + + # test direct_differentiation.py + directdiff_euler_py = TestCase('directdiff_euler_py') + directdiff_euler_py.cfg_dir = "cont_adj_euler/naca0012" + directdiff_euler_py.cfg_file = "inv_NACA0012_FD.cfg" + directdiff_euler_py.test_iter = 10 + directdiff_euler_py.su2_exec = "direct_differentiation.py" + directdiff_euler_py.timeout = 1600 + directdiff_euler_py.reference_file = "of_grad_directdiff.dat.ref" + directdiff_euler_py.test_file = "DIRECTDIFF/of_grad_directdiff.dat" + pass_list.append(directdiff_euler_py.run_filediff()) + test_list.append(directdiff_euler_py) + # Tests summary print '==================================================================' print 'Summary of the serial tests' From dd3a5ee8a547a01026d56c491c98627aebb603c6 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 14:03:05 +0000 Subject: [PATCH 230/269] Eliminate dependencies for legacy FEA solver. --- Common/include/option_structure.hpp | 4 - Common/src/config_structure.cpp | 28 +- SU2_CFD/include/integration_structure.hpp | 25 +- SU2_CFD/include/integration_structure.inl | 3 - SU2_CFD/include/iteration_structure.hpp | 114 --- SU2_CFD/include/numerics_structure.hpp | 346 ++++----- SU2_CFD/include/numerics_structure.inl | 20 +- SU2_CFD/include/solver_structure.hpp | 826 +++++++++++----------- SU2_CFD/include/solver_structure.inl | 44 +- SU2_CFD/include/variable_structure.hpp | 618 ++++++++-------- SU2_CFD/include/variable_structure.inl | 110 +-- SU2_CFD/obj/Makefile.am | 3 - SU2_CFD/obj/Makefile.in | 186 +---- SU2_CFD/src/SU2_CFD.cpp | 4 - SU2_CFD/src/driver_structure.cpp | 36 +- SU2_CFD/src/integration_structure.cpp | 10 +- SU2_CFD/src/integration_time.cpp | 35 - SU2_CFD/src/iteration_structure.cpp | 343 +-------- SU2_CFD/src/output_fieldview.cpp | 4 +- SU2_CFD/src/output_paraview.cpp | 179 +---- SU2_CFD/src/output_structure.cpp | 212 +----- SU2_CFD/src/output_tecplot.cpp | 6 +- SU2_CFD/src/solver_fem_elasticity.cpp | 2 +- 23 files changed, 1041 insertions(+), 2117 deletions(-) diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 9af4aa19127..261402fa832 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -182,7 +182,6 @@ enum ENUM_SOLVER { POISSON_EQUATION = 4, /*!< \brief Definition of the poisson potential solver. */ WAVE_EQUATION = 10, /*!< \brief Definition of the wave solver. */ HEAT_EQUATION = 29, /*!< \brief Definition of the heat solver. */ - LINEAR_ELASTICITY = 11, /*!< \brief Definition of the FEA solver. */ FLUID_STRUCTURE_INTERACTION = 12, /*!< \brief Definition of a FSI solver. */ FEM_ELASTICITY = 13, /*!< \brief Definition of a FEM solver. */ ADJ_EULER = 18, /*!< \brief Definition of the continuous adjoint Euler's solver. */ @@ -205,7 +204,6 @@ static const map Solver_Map = CCreateMap FSI_Fluid_Solver_Map = CCreateM */ enum ENUM_FSI_STRUC_PROBLEM { NO_SOLVER_SFSI = 0, /*!< \brief Definition of no solver. */ - LINEAR_ELASTICITY_SFSI = 11, /*!< \brief Linear elasticity equations for the FSI problem */ FEM_ELASTICITY_SFSI = 13, /*!< \brief Nonlinear elasticity equations for the FSI problem */ }; static const map FSI_Struc_Solver_Map = CCreateMap ("NONE", NO_SOLVER_SFSI) -("LINEAR_ELASTICITY", LINEAR_ELASTICITY_SFSI) ("FEM_ELASTICITY", FEM_ELASTICITY_SFSI); /*! diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 73ca3b71179..435148257b4 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -1199,7 +1199,7 @@ void CConfig::SetConfig_Options(unsigned short val_iZone, unsigned short val_nZo /*!\brief PHYSICAL_PROBLEM_STRUCTURAL_FSI * DESCRIPTION: Physical governing equations \n - * Options: NONE (default), LINEAR_ELASTICITY, NONLINEAR_ELASTICITY + * Options: NONE (default), FEM_ELASTICITY * \ingroup Config*/ addEnumOption("FSI_STRUCTURAL_PROBLEM", Kind_Solver_Struc_FSI, FSI_Struc_Solver_Map, NO_SOLVER_SFSI); @@ -1630,12 +1630,6 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ else Unst_nIntIter = 2; } - if (Kind_Solver == LINEAR_ELASTICITY) { - nMGLevels = 0; - if (Dynamic_Analysis == STATIC) - nExtIter = 1; - } - if (Kind_Solver == FEM_ELASTICITY) { nMGLevels = 0; if (Dynamic_Analysis == STATIC) @@ -1649,7 +1643,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ Kind_Regime == FREESURFACE) { Wrt_Unsteady = false; } else { Wrt_Unsteady = true; } - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { + if (Kind_Solver == FEM_ELASTICITY) { if (Dynamic_Analysis == STATIC) { Wrt_Dynamic = false; } else { Wrt_Dynamic = true; } @@ -3041,7 +3035,6 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { case POISSON_EQUATION: cout << "Poisson equation." << endl; break; case WAVE_EQUATION: cout << "Wave equation." << endl; break; case HEAT_EQUATION: cout << "Heat equation." << endl; break; - case LINEAR_ELASTICITY: cout << "Linear elasticity solver." << endl; break; case FEM_ELASTICITY: if (Kind_Struct_Solver == SMALL_DEFORMATIONS) cout << "Geometrically linear elasticity solver." << endl; if (Kind_Struct_Solver == LARGE_DEFORMATIONS) cout << "Geometrically non-linear elasticity solver." << endl; @@ -3068,7 +3061,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { } - if ((Kind_Regime == COMPRESSIBLE) && (Kind_Solver != LINEAR_ELASTICITY) && (Kind_Solver != FEM_ELASTICITY) && + if ((Kind_Regime == COMPRESSIBLE) && (Kind_Solver != FEM_ELASTICITY) && (Kind_Solver != HEAT_EQUATION) && (Kind_Solver != WAVE_EQUATION)) { cout << "Mach number: " << Mach <<"."<< endl; cout << "Angle of attack (AoA): " << AoA <<" deg, and angle of sideslip (AoS): " << AoS <<" deg."<< endl; @@ -3580,7 +3573,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << endl <<"---------------------- Time Numerical Integration -----------------------" << endl; - if ((Kind_Solver != LINEAR_ELASTICITY) && (Kind_Solver != FEM_ELASTICITY) ) { + if (Kind_Solver != FEM_ELASTICITY) { switch (Unsteady_Simulation) { case NO: cout << "Local time stepping (steady state simulation)." << endl; break; @@ -3679,7 +3672,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << "Damping factor for the correction prolongation: " << Damp_Correc_Prolong <<"."<< endl; } - if ((Kind_Solver != LINEAR_ELASTICITY) && (Kind_Solver != FEM_ELASTICITY) && (Kind_Solver != HEAT_EQUATION) && (Kind_Solver != WAVE_EQUATION)) { + if ((Kind_Solver != FEM_ELASTICITY) && (Kind_Solver != HEAT_EQUATION) && (Kind_Solver != WAVE_EQUATION)) { if (!CFL_Adapt) cout << "No CFL adaptation." << endl; else cout << "CFL adaptation. Factor down: "<< CFL_AdaptParam[0] <<", factor up: "<< CFL_AdaptParam[1] @@ -3835,7 +3828,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << "Forces breakdown file name: " << Breakdown_FileName << "." << endl; - if ((Kind_Solver != LINEAR_ELASTICITY) && (Kind_Solver != FEM_ELASTICITY) && (Kind_Solver != HEAT_EQUATION) && (Kind_Solver != WAVE_EQUATION)) { + if ((Kind_Solver != FEM_ELASTICITY) && (Kind_Solver != HEAT_EQUATION) && (Kind_Solver != WAVE_EQUATION)) { if (!ContinuousAdjoint && !DiscreteAdjoint) { cout << "Surface flow coefficients file name: " << SurfFlowCoeff_FileName << "." << endl; cout << "Flow variables file name: " << Flow_FileName << "." << endl; @@ -4877,15 +4870,6 @@ void CConfig::SetGlobalParam(unsigned short val_solver, SetKind_TimeIntScheme(Kind_TimeIntScheme_Heat); } break; - case LINEAR_ELASTICITY: - - Current_DynTime = static_cast(val_extiter)*Delta_DynTime; - - if (val_system == RUNTIME_FEA_SYS) { - SetKind_ConvNumScheme(NONE, NONE, NONE, NONE, NONE); - SetKind_TimeIntScheme(Kind_TimeIntScheme_FEA); - } - break; case FEM_ELASTICITY: Current_DynTime = static_cast(val_extiter)*Delta_DynTime; diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index e17577ff40d..52b3eab14f1 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -375,17 +375,6 @@ class CIntegration { virtual void SingleGrid_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config - Definition of the particular problem. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Iteration - Current iteration. - */ - virtual void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, - CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); /*! * \brief A virtual member. @@ -396,7 +385,7 @@ class CIntegration { * \param[in] RunTime_EqSystem - System of equations which is going to be solved. * \param[in] Iteration - Current iteration. */ - virtual void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, + virtual void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); @@ -691,18 +680,6 @@ class CStructuralIntegration : public CIntegration { void Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); - /*! - * \brief Do the numerical integration (implicit) of the structural solver. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config - Definition of the particular problem. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Iteration - Current iteration. - */ - void Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, - CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone); - }; #include "integration_structure.inl" diff --git a/SU2_CFD/include/integration_structure.inl b/SU2_CFD/include/integration_structure.inl index 2819ea98273..6fc104229b8 100644 --- a/SU2_CFD/include/integration_structure.inl +++ b/SU2_CFD/include/integration_structure.inl @@ -80,9 +80,6 @@ inline void CIntegration::SingleGrid_Iteration(CGeometry ***geometry, CSolver ** inline void CIntegration::Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } -inline void CIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, - CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { } - inline void CIntegration::SetPotential_Solver(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iMesh, unsigned short iZone) { } diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index e6810c42b71..a0ba255ffef 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -573,100 +573,6 @@ class CPoissonIteration : public CIteration { }; -/*! - * \class CFEAIteration - * \brief Class for driving an iteration of the FEA system. - * \author T. Economon - * \version 4.1.0 "Cardinal" - */ -class CFEAIteration : public CIteration { -public: - - /*! - * \brief Constructor of the class. - * \param[in] config - Definition of the particular problem. - */ - CFEAIteration(CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEAIteration(void); - - /*! - * \brief Preprocessing to prepare for an iteration of the physics. - * \param[in] ??? - Description here. - */ - void Preprocess(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone); - - /*! - * \brief Perform a single iteration of the FEA system. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - */ - void Iterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone); - - /*! - * \brief Updates the containers for the FEA system. - * \param[in] ??? - Description here. - */ - void Update(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone); - - /*! - * \brief Monitors the convergence and other metrics for the FEA system. - * \param[in] ??? - Description here. - */ - void Monitor(); - - /*! - * \brief Outputs desired files and quantities for the FEA system. - * \param[in] ??? - Description here. - */ - void Output(); - - /*! - * \brief Postprocesses the FEA system before heading to another physics system or the next iteration. - * \param[in] ??? - Description here. - */ - void Postprocess(); - -}; - - /*! * \class CFEM_StructuralAnalysis * \brief Class for driving an iteration of structural analysis. @@ -1030,26 +936,6 @@ class CDiscAdjMeanFlowIteration : public CIteration { }; -/*! - * \brief Iteration function for Fluid-Structure Interaction applications. - * \author F. Palacios, R. Sanchez. - * \param[in] output - Pointer to the COutput class. - * \param[in] integration_container - Container vector with all the integration methods. - * \param[in] geometry_container - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics_container - Description of the numerical method (the way in which the equations are solved). - * \param[in] config_container - Definition of the particular problem. - * \param[in] surface_movement - Surface movement classes of the problem. - * \param[in] grid_movement - Volume grid movement classes of the problem. - * \param[in] FFDBox - FFD FFDBoxes of the problem. - * \param[in] ExtIter - Current physical time iteration number. - * \param[in] nFluidIt - Number of fluid iterations within a fixed time step. - */ -void FluidStructureIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long iFluidIt, unsigned long nFluidIt); - /*! * \brief Iteration function for structural analysis using the Finite Element Method. * \author R. Sanchez. diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index e0e5d7337dd..dfa734ac7eb 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1437,68 +1437,68 @@ class CNumerics { * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + //virtual void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); + //virtual void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing mass matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + //virtual void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing mass matrix of the Galerkin method. * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); + //virtual void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief Computing dead load vector of the Galerkin method. * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); + //virtual void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); /*! * \brief Computing stiffness matrix of the Galerkin method. * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. * \param[in] config - Definition of the particular problem. */ - virtual void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); + //virtual void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); /*! * \brief Computing stresses in FEA method. * \param[in] config - Definition of the particular problem. */ - virtual void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); + //virtual void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); /*! * \brief Computing stresses in FEA method. * \param[in] config - Definition of the particular problem. */ - virtual void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); + //virtual void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); /*! * \brief A virtual member to linearly interpolate pressures * \param[in] config - Definition of the particular problem. */ - virtual void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); + //virtual void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); /*! * \brief A virtual member to linearly interpolate viscous stresses * \param[in] config - Definition of the particular problem. */ - virtual void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); + //virtual void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); /*! * \brief A virtual member to compute the tangent matrix in structural problems @@ -3996,169 +3996,169 @@ class CGalerkin_Flow : public CNumerics { void ComputeResidual (su2double **val_stiffmatrix_elem, CConfig *config); }; -/*! - * \class CGalerkin_FEA - * \brief Class for computing the stiffness matrix of the Galerkin method. - * \ingroup ViscDiscr - * \author F. Palacios, R.Sanchez - * \version 4.1.0 "Cardinal" - */ -class CGalerkin_FEA : public CNumerics { - - su2double E; /*!< \brief Young's modulus of elasticity. */ - su2double Nu; /*!< \brief Poisson's ratio. */ - su2double Rho_s; /*!< \brief Structural density. */ - su2double Mu; /*!< \brief Lame's coeficient. */ - su2double Lambda; /*!< \brief Lame's coeficient. */ - -public: - - /*! - * \brief Constructor of the class. - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nVar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CGalerkin_FEA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CGalerkin_FEA(void); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. - * \param[in] Pnodal - Pressure at the nodes. - * \param[in] CoordCorners[2][2] - Coordiantes of the corners. - */ - void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Tau_0 - Stress tensor at the node 0. - * \param[in] Tau_1 - Stress tensor at the node 1. - * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. - * \param[in] CoordCorners[2][2] - Coordiantes of the corners. - */ - void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Xi - Local coordinates. - * \param[in] Eta - Local coordinates. - * \param[in] Mu - Local coordinates. - * \param[in] CoordCorners[8][3] - Coordiantes of the corners. - * \param[in] shp[8][4] - Shape function information - */ - su2double ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Xi - Local coordinates. - * \param[in] Eta - Local coordinates. - * \param[in] Mu - Local coordinates. - * \param[in] CoordCorners[8][3] - Coordiantes of the corners. - * \param[in] shp[8][4] - Shape function information - */ - su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Xi - Local coordinates. - * \param[in] Eta - Local coordinates. - * \param[in] Mu - Local coordinates. - * \param[in] CoordCorners[8][3] - Coordiantes of the corners. - * \param[in] shp[8][4] - Shape function information - */ - su2double ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Xi - Local coordinates. - * \param[in] Eta - Local coordinates. - * \param[in] Mu - Local coordinates. - * \param[in] CoordCorners[8][3] - Coordiantes of the corners. - * \param[in] shp[8][4] - Shape function information - */ - su2double ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Xi - Local coordinates. - * \param[in] Eta - Local coordinates. - * \param[in] Mu - Local coordinates. - * \param[in] CoordCorners[8][3] - Coordiantes of the corners. - * \param[in] shp[8][4] - Shape function information - */ - su2double ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); - - /*! - * \brief Shape functions and derivative of the shape functions - * \param[in] Xi - Local coordinates. - * \param[in] Eta - Local coordinates. - * \param[in] Mu - Local coordinates. - * \param[in] CoordCorners[8][3] - Coordiantes of the corners. - * \param[in] shp[8][4] - Shape function information - */ - su2double ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); - - /*! - * \brief Computing stiffness matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); - - /*! - * \brief Computing stiffness matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); - - /*! - * \brief Computing mass matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); - - /*! - * \brief Computing mass matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); - - /*! - * \brief Computing stresses in FEA method at the nodes. - * \param[in] config - Definition of the particular problem. - */ - void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); - - - /*! - * \brief Computing stresses in FEA method at the nodes. - * \param[in] config - Definition of the particular problem. - */ - void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); - - /*! - * \brief Computing dead load vector of the Galerkin method. - * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); - - /*! - * \brief Computing stiffness matrix of the Galerkin method. - * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); - -}; +///*! +// * \class CGalerkin_FEA +// * \brief Class for computing the stiffness matrix of the Galerkin method. +// * \ingroup ViscDiscr +// * \author F. Palacios, R.Sanchez +// * \version 4.1.0 "Cardinal" +// */ +//class CGalerkin_FEA : public CNumerics { +// +// su2double E; /*!< \brief Young's modulus of elasticity. */ +// su2double Nu; /*!< \brief Poisson's ratio. */ +// su2double Rho_s; /*!< \brief Structural density. */ +// su2double Mu; /*!< \brief Lame's coeficient. */ +// su2double Lambda; /*!< \brief Lame's coeficient. */ +// +//public: +// +// /*! +// * \brief Constructor of the class. +// * \param[in] val_nDim - Number of dimensions of the problem. +// * \param[in] val_nVar - Number of variables of the problem. +// * \param[in] config - Definition of the particular problem. +// */ +// CGalerkin_FEA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); +// +// /*! +// * \brief Destructor of the class. +// */ +// ~CGalerkin_FEA(void); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. +// * \param[in] Pnodal - Pressure at the nodes. +// * \param[in] CoordCorners[2][2] - Coordiantes of the corners. +// */ +// void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Tau_0 - Stress tensor at the node 0. +// * \param[in] Tau_1 - Stress tensor at the node 1. +// * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. +// * \param[in] CoordCorners[2][2] - Coordiantes of the corners. +// */ +// void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Xi - Local coordinates. +// * \param[in] Eta - Local coordinates. +// * \param[in] Mu - Local coordinates. +// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. +// * \param[in] shp[8][4] - Shape function information +// */ +// su2double ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Xi - Local coordinates. +// * \param[in] Eta - Local coordinates. +// * \param[in] Mu - Local coordinates. +// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. +// * \param[in] shp[8][4] - Shape function information +// */ +// su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Xi - Local coordinates. +// * \param[in] Eta - Local coordinates. +// * \param[in] Mu - Local coordinates. +// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. +// * \param[in] shp[8][4] - Shape function information +// */ +// su2double ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Xi - Local coordinates. +// * \param[in] Eta - Local coordinates. +// * \param[in] Mu - Local coordinates. +// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. +// * \param[in] shp[8][4] - Shape function information +// */ +// su2double ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Xi - Local coordinates. +// * \param[in] Eta - Local coordinates. +// * \param[in] Mu - Local coordinates. +// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. +// * \param[in] shp[8][4] - Shape function information +// */ +// su2double ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); +// +// /*! +// * \brief Shape functions and derivative of the shape functions +// * \param[in] Xi - Local coordinates. +// * \param[in] Eta - Local coordinates. +// * \param[in] Mu - Local coordinates. +// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. +// * \param[in] shp[8][4] - Shape function information +// */ +// su2double ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); +// +// /*! +// * \brief Computing stiffness matrix of the Galerkin method. +// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. +// * \param[in] config - Definition of the particular problem. +// */ +// void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); +// +// /*! +// * \brief Computing stiffness matrix of the Galerkin method. +// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. +// * \param[in] config - Definition of the particular problem. +// */ +// void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); +// +// /*! +// * \brief Computing mass matrix of the Galerkin method. +// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. +// * \param[in] config - Definition of the particular problem. +// */ +// void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); +// +// /*! +// * \brief Computing mass matrix of the Galerkin method. +// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. +// * \param[in] config - Definition of the particular problem. +// */ +// void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); +// +// /*! +// * \brief Computing stresses in FEA method at the nodes. +// * \param[in] config - Definition of the particular problem. +// */ +// void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); +// +// +// /*! +// * \brief Computing stresses in FEA method at the nodes. +// * \param[in] config - Definition of the particular problem. +// */ +// void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); +// +// /*! +// * \brief Computing dead load vector of the Galerkin method. +// * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. +// * \param[in] config - Definition of the particular problem. +// */ +// void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); +// +// /*! +// * \brief Computing stiffness matrix of the Galerkin method. +// * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. +// * \param[in] config - Definition of the particular problem. +// */ +// void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); +// +//}; /*! * \class CFEM_Elasticity diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index cdcc48b9ae7..e01719ded46 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -35,25 +35,25 @@ inline su2double CNumerics::Determinant_3x3(su2double A00, su2double A01, su2dou return A00*(A11*A22-A12*A21) - A01*(A10*A22-A12*A20) + A02*(A10*A21-A11*A20); } -inline void CNumerics::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } +//inline void CNumerics::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } -inline void CNumerics::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } +//inline void CNumerics::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } -inline void CNumerics::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } +//inline void CNumerics::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } -inline void CNumerics::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } +//inline void CNumerics::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } -inline void CNumerics::GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } +//inline void CNumerics::GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } -inline void CNumerics::GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { } +//inline void CNumerics::GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { } -inline void CNumerics::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } +//inline void CNumerics::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } -inline void CNumerics::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } +//inline void CNumerics::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } -inline void CNumerics::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double *Fnodal) { } +//inline void CNumerics::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double *Fnodal) { } -inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { } +//inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { } inline void CNumerics::Compute_Mass_Matrix(CElement *element_container, CConfig *config){ } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 7144bc54c24..03af28cb3f4 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -638,8 +638,8 @@ class CSolver { * \param[in] config - Definition of the particular problem. * \param[in] val_marker - Surface marker where the boundary condition is applied. */ - virtual void BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); + //virtual void BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + // unsigned short val_marker); /*! * \brief A virtual member. @@ -2408,7 +2408,7 @@ class CSolver { * \param[in] geometry - Geometrical definition of the problem. * \param[in] config - Definition of the particular problem. */ - virtual void GetSurface_Pressure(CGeometry *geometry, CConfig *config); + //virtual void GetSurface_Pressure(CGeometry *geometry, CConfig *config); /*! * \brief A virtual member. @@ -2500,9 +2500,9 @@ class CSolver { * \param[in] fea_config - Geometrical definition of the problem. * \param[in] fea_geometry - Definition of the particular problem. */ - virtual void SetStruct_Displacement(CGeometry **fea_geometry, - CConfig *fea_config, - CSolver ***fea_solution); + //virtual void SetStruct_Displacement(CGeometry **fea_geometry, + // CConfig *fea_config, + // CSolver ***fea_solution); /*! * \brief A virtual member. @@ -2763,7 +2763,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); + //virtual void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2772,7 +2772,7 @@ class CSolver { * \param[in] solver - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ - virtual void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); + //virtual void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); /*! * \brief A virtual member. @@ -2802,7 +2802,7 @@ class CSolver { * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. */ - virtual void SetSolution_time_n(CGeometry *geometry, CConfig *config); + //virtual void SetSolution_time_n(CGeometry *geometry, CConfig *config); /*! * \brief A virtual member. @@ -6756,410 +6756,410 @@ class CHeatSolver : public CSolver { }; -/*! \class CFEASolver - * \brief Main class for defining the FEA solver. - * \author F. Palacios, R. Sanchez. - * \version 4.1.0 "Cardinal" - * \date May 3, 2010. - */ -class CFEASolver : public CSolver { -private: - - su2double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ - CSysMatrix StiffMatrixSpace; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ - CSysMatrix StiffMatrixTime; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ - - CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix in Galerkin computations. */ - CSysMatrix DampMatrix; /*!< \brief Sparse structure for storing the damping matrix in Galerkin computations. */ - - CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ - CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ - - su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Stiffness Matrices. */ - **StiffMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ - **MassMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Mass Matrices. */ - **MassMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices. */ - **MassMatrix_Node_Int, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices * a0. */ - **DampMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Damping Matrices. */ - **DampMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Damping Matrices. */ - *DeadLoadVector_Elem, /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ - *DeadLoadVector_Node; /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ - - su2double a_dt[8]; /*!< \brief Integration constants. */ - - su2double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ - su2double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ - - su2double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ - - - -public: - - /*! - * \brief Constructor of the class. - */ - CFEASolver(void); - - /*! - * \overload - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEASolver(CGeometry *geometry, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEASolver(void); - - /*! - * \brief Integrate the Poisson equation using a Galerkin method. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] iMesh - Index of the mesh in multigrid computations. - */ - void Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short iMesh, unsigned short iRKStep); - - /*! - * \brief Impose a displacement (constraint) boundary condition --> Clamped boundary. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - /*! - * \brief Impose a displacement (constraint) boundary condition --> Clamped boundary. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - /*! - * \brief Impose a displacement (constraint) boundary condition. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - /*! - * \brief Impose a load boundary condition. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - /*! - * \brief Impose a load boundary condition. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - /*! - * \brief Impose a load boundary condition in cartesian coordinates. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - /*! - * \brief Impose a sine-wave load boundary condition in cartesian coordinates. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - - /*! - * \brief Impose a load boundary condition. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - void BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker); - - /*! - * \brief Set residuals to zero. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - * \param[in] iRKStep - Current step of the Runge-Kutta iteration. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - * \param[in] Output - boolean to determine whether to print output. - */ - void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output); - - /*! - * \brief Postprocessing. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - * \param[in] iMesh - Index of the mesh in multigrid computations. - */ - void Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, - unsigned short iMesh); - - /*! - * \brief Source term computation. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] second_numerics - Description of the second numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] iMesh - Index of the mesh in multigrid computations. - */ - void Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, - CConfig *config, unsigned short iMesh); - - /*! - * \brief Update the solution using an implicit solver. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - */ - void ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); - - /*! - * \brief Update the solution using an implicit Newmark solver. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - */ - void ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); - - /*! - * \brief Set the total residual adding the term that comes from the Dual Time Strategy. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - * \param[in] iRKStep - Current step of the Runge-Kutta iteration. - * \param[in] iMesh - Index of the mesh in multigrid computations. - * \param[in] RunTime_EqSystem - System of equations which is going to be solved. - */ - void SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, - unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem); - - /*! - * \brief Get the surface pressure from a file. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void GetSurface_Pressure(CGeometry *geometry, CConfig *config); - - /*! - * \brief Set the the tractions in the in the FEA solver (matching mesh). - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] flow_solution - Container vector with all the solutions. - * \param[in] fea_config - Definition of the particular problem. - */ - void SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); - - /*! - * \brief Set the the tractions in the in the FEA solver (non-matching mesh). - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] flow_solution - Container vector with all the solutions. - * \param[in] fea_config - Definition of the particular problem. - */ - void SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); - - /*! - * \brief Set the initial condition for the FEA Equations. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container with all the solutions. - * \param[in] config - Definition of the particular problem. - * \param[in] ExtIter - External iteration. - */ - void SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter); - - /*! - * \brief Provide the total (inviscid + viscous) non dimensional FEA coefficient. - * \return Value of the FEA coefficient (inviscid + viscous contribution). - */ - su2double GetTotal_CFEA(void); - - /*! - * \brief Set the value of the FEA coefficient. - * \param[in] val_cfea - Value of the FEA coefficient. - */ - void SetTotal_CFEA(su2double val_cfea); - - /*! - * \brief Set the displacement for the nodes in the structural mesh - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] fea_grid_movement - Geometrical definition of the problem. - * \param[in] fea_config - Geometrical definition of the problem. - * \param[in] flow_geometry - Definition of the particular problem. - */ - void SetStruct_Displacement(CGeometry **fea_geometry, - CConfig *fea_config, - CSolver ***fea_solution); - - /*! - * \brief Predictor for structural displacements based on previous iterations - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] fea_grid_movement - Geometrical definition of the problem. - * \param[in] fea_config - Geometrical definition of the problem. - * \param[in] flow_geometry - Definition of the particular problem. - */ - void PredictStruct_Displacement(CGeometry **fea_geometry, - CConfig *fea_config, - CSolver ***fea_solution); - - /*! - * \brief Computation of Aitken's coefficient. - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] fea_config - Geometrical definition of the problem. - * \param[in] fea_geometry - Definition of the particular problem. - */ - void ComputeAitken_Coefficient(CGeometry **fea_geometry, - CConfig *fea_config, - CSolver ***fea_solution, - unsigned long iFSIIter); - - /*! - * \brief Aitken's relaxation of the solution. - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] fea_config - Geometrical definition of the problem. - * \param[in] fea_geometry - Definition of the particular problem. - */ - void SetAitken_Relaxation(CGeometry **fea_geometry, - CConfig *fea_config, - CSolver ***fea_solution); - - /*! - * \brief Aitken's relaxation of the solution. - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] fea_config - Geometrical definition of the problem. - * \param[in] fea_geometry - Definition of the particular problem. - */ - void Update_StructSolution(CGeometry **fea_geometry, - CConfig *fea_config, - CSolver ***fea_solution); - - /*! - * \brief Get the value of the FSI convergence. - * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. - */ - void SetFSI_ConvValue(unsigned short val_index, su2double val_criteria); - - /*! - * \brief Get the value of the FSI convergence. - * \param[in] Value of interest: 0 - Initial value, 1 - Current value. - * \return Values to compare - */ - su2double GetFSI_ConvValue(unsigned short val_index); - - /*! - * \brief Compute the stiffness matrix of the problem. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); - - /*! - * \brief Compute the stiffness and mass matrices of the problem. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); - - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); - - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - void Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config); - - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - void Compute_IntegrationConstants(CConfig *config); - - /*! - * \brief Set the solution variables at time n to the current solution. - * \param[in] geometry - Geometrical definition of the problem. - */ - void SetSolution_time_n(CGeometry *geometry, CConfig *config); - - /*! - * \brief Retrieve the value of the dynamic Aitken relaxation factor. - * \return Value of the dynamic Aitken relaxation factor. - */ - su2double GetWAitken_Dyn(void); - - /*! - * \brief Retrieve the value of the last Aitken relaxation factor in the previous time step. - * \return Value of the last Aitken relaxation factor in the previous time step. - */ - su2double GetWAitken_Dyn_tn1(void); - - /*! - * \brief Set the value of the dynamic Aitken relaxation factor - * \param[in] Value of the dynamic Aitken relaxation factor - */ - void SetWAitken_Dyn(su2double waitk); - - /*! - * \brief Set the value of the last Aitken relaxation factor in the current time step. - * \param[in] Value of the last Aitken relaxation factor in the current time step. - */ - void SetWAitken_Dyn_tn1(su2double waitk_tn1); - - -}; +///*! \class CFEASolver +// * \brief Main class for defining the FEA solver. +// * \author F. Palacios, R. Sanchez. +// * \version 4.1.0 "Cardinal" +// * \date May 3, 2010. +// */ +//class CFEASolver : public CSolver { +//private: +// +// su2double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ +// CSysMatrix StiffMatrixSpace; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ +// CSysMatrix StiffMatrixTime; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ +// +// CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix in Galerkin computations. */ +// CSysMatrix DampMatrix; /*!< \brief Sparse structure for storing the damping matrix in Galerkin computations. */ +// +// CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ +// CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ +// +// su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Stiffness Matrices. */ +// **StiffMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ +// **MassMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Mass Matrices. */ +// **MassMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices. */ +// **MassMatrix_Node_Int, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices * a0. */ +// **DampMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Damping Matrices. */ +// **DampMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Damping Matrices. */ +// *DeadLoadVector_Elem, /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ +// *DeadLoadVector_Node; /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ +// +// su2double a_dt[8]; /*!< \brief Integration constants. */ +// +// su2double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ +// su2double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ +// +// su2double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ +// +// +// +//public: +// +// /*! +// * \brief Constructor of the class. +// */ +// CFEASolver(void); +// +// /*! +// * \overload +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] config - Definition of the particular problem. +// */ +// CFEASolver(CGeometry *geometry, CConfig *config); +// +// /*! +// * \brief Destructor of the class. +// */ +// ~CFEASolver(void); +// +// /*! +// * \brief Integrate the Poisson equation using a Galerkin method. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] iMesh - Index of the mesh in multigrid computations. +// */ +// void Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short iMesh, unsigned short iRKStep); +// +// /*! +// * \brief Impose a displacement (constraint) boundary condition --> Clamped boundary. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// /*! +// * \brief Impose a displacement (constraint) boundary condition --> Clamped boundary. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// /*! +// * \brief Impose a displacement (constraint) boundary condition. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// /*! +// * \brief Impose a load boundary condition. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// /*! +// * \brief Impose a load boundary condition. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// /*! +// * \brief Impose a load boundary condition in cartesian coordinates. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// /*! +// * \brief Impose a sine-wave load boundary condition in cartesian coordinates. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// +// /*! +// * \brief Impose a load boundary condition. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] val_marker - Surface marker where the boundary condition is applied. +// */ +// void BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker); +// +// /*! +// * \brief Set residuals to zero. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] config - Definition of the particular problem. +// * \param[in] iRKStep - Current step of the Runge-Kutta iteration. +// * \param[in] RunTime_EqSystem - System of equations which is going to be solved. +// * \param[in] Output - boolean to determine whether to print output. +// */ +// void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output); +// +// /*! +// * \brief Postprocessing. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] config - Definition of the particular problem. +// * \param[in] iMesh - Index of the mesh in multigrid computations. +// */ +// void Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, +// unsigned short iMesh); +// +// /*! +// * \brief Source term computation. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] numerics - Description of the numerical method. +// * \param[in] second_numerics - Description of the second numerical method. +// * \param[in] config - Definition of the particular problem. +// * \param[in] iMesh - Index of the mesh in multigrid computations. +// */ +// void Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, +// CConfig *config, unsigned short iMesh); +// +// /*! +// * \brief Update the solution using an implicit solver. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] config - Definition of the particular problem. +// */ +// void ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); +// +// /*! +// * \brief Update the solution using an implicit Newmark solver. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] config - Definition of the particular problem. +// */ +// void ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); +// +// /*! +// * \brief Set the total residual adding the term that comes from the Dual Time Strategy. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] config - Definition of the particular problem. +// * \param[in] iRKStep - Current step of the Runge-Kutta iteration. +// * \param[in] iMesh - Index of the mesh in multigrid computations. +// * \param[in] RunTime_EqSystem - System of equations which is going to be solved. +// */ +// void SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, +// unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem); +// +// /*! +// * \brief Get the surface pressure from a file. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] config - Definition of the particular problem. +// */ +// void GetSurface_Pressure(CGeometry *geometry, CConfig *config); +// +// /*! +// * \brief Set the the tractions in the in the FEA solver (matching mesh). +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] flow_solution - Container vector with all the solutions. +// * \param[in] fea_config - Definition of the particular problem. +// */ +// void SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); +// +// /*! +// * \brief Set the the tractions in the in the FEA solver (non-matching mesh). +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] flow_solution - Container vector with all the solutions. +// * \param[in] fea_config - Definition of the particular problem. +// */ +// void SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); +// +// /*! +// * \brief Set the initial condition for the FEA Equations. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container with all the solutions. +// * \param[in] config - Definition of the particular problem. +// * \param[in] ExtIter - External iteration. +// */ +// void SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter); +// +// /*! +// * \brief Provide the total (inviscid + viscous) non dimensional FEA coefficient. +// * \return Value of the FEA coefficient (inviscid + viscous contribution). +// */ +// su2double GetTotal_CFEA(void); +// +// /*! +// * \brief Set the value of the FEA coefficient. +// * \param[in] val_cfea - Value of the FEA coefficient. +// */ +// void SetTotal_CFEA(su2double val_cfea); +// +// /*! +// * \brief Set the displacement for the nodes in the structural mesh +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] fea_grid_movement - Geometrical definition of the problem. +// * \param[in] fea_config - Geometrical definition of the problem. +// * \param[in] flow_geometry - Definition of the particular problem. +// */ +// void SetStruct_Displacement(CGeometry **fea_geometry, +// CConfig *fea_config, +// CSolver ***fea_solution); +// +// /*! +// * \brief Predictor for structural displacements based on previous iterations +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] fea_grid_movement - Geometrical definition of the problem. +// * \param[in] fea_config - Geometrical definition of the problem. +// * \param[in] flow_geometry - Definition of the particular problem. +// */ +// void PredictStruct_Displacement(CGeometry **fea_geometry, +// CConfig *fea_config, +// CSolver ***fea_solution); +// +// /*! +// * \brief Computation of Aitken's coefficient. +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] fea_config - Geometrical definition of the problem. +// * \param[in] fea_geometry - Definition of the particular problem. +// */ +// void ComputeAitken_Coefficient(CGeometry **fea_geometry, +// CConfig *fea_config, +// CSolver ***fea_solution, +// unsigned long iFSIIter); +// +// /*! +// * \brief Aitken's relaxation of the solution. +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] fea_config - Geometrical definition of the problem. +// * \param[in] fea_geometry - Definition of the particular problem. +// */ +// void SetAitken_Relaxation(CGeometry **fea_geometry, +// CConfig *fea_config, +// CSolver ***fea_solution); +// +// /*! +// * \brief Aitken's relaxation of the solution. +// * \param[in] fea_geometry - Geometrical definition of the problem. +// * \param[in] fea_config - Geometrical definition of the problem. +// * \param[in] fea_geometry - Definition of the particular problem. +// */ +// void Update_StructSolution(CGeometry **fea_geometry, +// CConfig *fea_config, +// CSolver ***fea_solution); +// +// /*! +// * \brief Get the value of the FSI convergence. +// * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. +// */ +// void SetFSI_ConvValue(unsigned short val_index, su2double val_criteria); +// +// /*! +// * \brief Get the value of the FSI convergence. +// * \param[in] Value of interest: 0 - Initial value, 1 - Current value. +// * \return Values to compare +// */ +// su2double GetFSI_ConvValue(unsigned short val_index); +// +// /*! +// * \brief Compute the stiffness matrix of the problem. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// */ +// void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); +// +// /*! +// * \brief Compute the stiffness and mass matrices of the problem. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// */ +// void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); +// +// /*! +// * \brief A virtual member. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// */ +// void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); +// +// /*! +// * \brief A virtual member. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// */ +// void Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config); +// +// /*! +// * \brief A virtual member. +// * \param[in] geometry - Geometrical definition of the problem. +// * \param[in] solver_container - Container vector with all the solutions. +// * \param[in] solver - Description of the numerical method. +// * \param[in] config - Definition of the particular problem. +// */ +// void Compute_IntegrationConstants(CConfig *config); +// +// /*! +// * \brief Set the solution variables at time n to the current solution. +// * \param[in] geometry - Geometrical definition of the problem. +// */ +// void SetSolution_time_n(CGeometry *geometry, CConfig *config); +// +// /*! +// * \brief Retrieve the value of the dynamic Aitken relaxation factor. +// * \return Value of the dynamic Aitken relaxation factor. +// */ +// su2double GetWAitken_Dyn(void); +// +// /*! +// * \brief Retrieve the value of the last Aitken relaxation factor in the previous time step. +// * \return Value of the last Aitken relaxation factor in the previous time step. +// */ +// su2double GetWAitken_Dyn_tn1(void); +// +// /*! +// * \brief Set the value of the dynamic Aitken relaxation factor +// * \param[in] Value of the dynamic Aitken relaxation factor +// */ +// void SetWAitken_Dyn(su2double waitk); +// +// /*! +// * \brief Set the value of the last Aitken relaxation factor in the current time step. +// * \param[in] Value of the last Aitken relaxation factor in the current time step. +// */ +// void SetWAitken_Dyn_tn1(su2double waitk_tn1); +// +// +//}; /*! \class CFEM_ElasticitySolver * \brief Main class for defining a FEM solver for elastic structural problems. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 9f49daee70d..63a12852525 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -72,7 +72,7 @@ inline void CSolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geome inline void CSolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { } -inline void CSolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { } +//inline void CSolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { } inline void CSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { } @@ -86,7 +86,7 @@ inline void CSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetric inline void CSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { } -inline void CSolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } +//inline void CSolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } inline void CSolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } @@ -504,8 +504,8 @@ inline void CSolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_conta inline void CSolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } -inline void CSolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } +//inline void CSolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, +// unsigned short val_marker) { } inline void CSolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } @@ -740,15 +740,15 @@ inline void CSolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_c inline void CSolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } +//inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } +//inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } inline void CSolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } inline void CSolver::Compute_IntegrationConstants(CConfig *config) { } -inline void CSolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { } +//inline void CSolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { } inline su2double CEulerSolver::GetDensity_Inf(void) { return Density_Inf; } @@ -1106,21 +1106,21 @@ inline su2double CAdjEulerSolver::GetPsiE_Inf(void) { return PsiE_Inf; } inline su2double CAdjEulerSolver::GetPhi_Inf(unsigned short val_dim) { return Phi_Inf[val_dim]; } -inline su2double CFEASolver::GetTotal_CFEA() { return Total_CFEA; } - -inline void CFEASolver::SetTotal_CFEA(su2double cfea) { Total_CFEA = cfea; } - -inline su2double CFEASolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } - -inline su2double CFEASolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } - -inline void CFEASolver::SetWAitken_Dyn(su2double waitk) { WAitken_Dyn = waitk; } - -inline void CFEASolver::SetWAitken_Dyn_tn1(su2double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } - -inline void CFEASolver::SetFSI_ConvValue(unsigned short val_index, su2double val_criteria) { FSI_Conv[val_index] = val_criteria; } - -inline su2double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } +//inline su2double CFEASolver::GetTotal_CFEA() { return Total_CFEA; } +// +//inline void CFEASolver::SetTotal_CFEA(su2double cfea) { Total_CFEA = cfea; } +// +//inline su2double CFEASolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } +// +//inline su2double CFEASolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } +// +//inline void CFEASolver::SetWAitken_Dyn(su2double waitk) { WAitken_Dyn = waitk; } +// +//inline void CFEASolver::SetWAitken_Dyn_tn1(su2double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } +// +//inline void CFEASolver::SetFSI_ConvValue(unsigned short val_index, su2double val_criteria) { FSI_Conv[val_index] = val_criteria; } +// +//inline su2double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } inline su2double CFEM_ElasticitySolver::GetRes_FEM(unsigned short val_var) { return Conv_Check[val_var]; } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index ce4bf3b00b6..7c4cdbcb4df 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1388,12 +1388,12 @@ class CVariable { /*! * \brief A virtual member. */ - virtual void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); + //virtual void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief A virtual member. */ - virtual void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); + //virtual void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief A virtual member. @@ -1415,7 +1415,7 @@ class CVariable { * \brief A virtual member. */ - virtual su2double **GetStress(void); + //virtual su2double **GetStress(void); /*! * \brief A virtual member. @@ -1431,28 +1431,28 @@ class CVariable { /*! * \brief A virtual member. */ - virtual void SetFlow_Pressure(su2double val_pressure); + //virtual void SetFlow_Pressure(su2double val_pressure); /*! * \brief A virtual member. */ - virtual su2double GetFlow_Pressure(void); + //virtual su2double GetFlow_Pressure(void); /*! * \brief A virtual member. */ - virtual void Initialize_Connectivity(void); + //virtual void Initialize_Connectivity(void); /*! * \brief A virtual member. */ - virtual void Upgrade_Connectivity(void); + //virtual void Upgrade_Connectivity(void); /*! * \brief A virtual member. */ - virtual unsigned short Get_Connectivity(void); + //virtual unsigned short Get_Connectivity(void); /*! @@ -2298,307 +2298,307 @@ class CHeatVariable : public CVariable { }; -/*! - * \class CFEAVariable - * \brief Main class for defining the variables of the FEA equation solver. - * \ingroup Structural Finite Element Analysis Variables - * \author F. Palacios, R. Sanchez. - * \version 4.1.0 "Cardinal" - */ -class CFEAVariable : public CVariable { -protected: - su2double Flow_Pressure; /*!< \brief Pressure of the fluid. */ - - bool dynamicFEA; /*!< \brief Non-physical points in the solution (force first order). */ - - su2double **Stress; /*!< \brief Stress tensor. */ - su2double VonMises_Stress; /*!< \brief Von Mises stress. */ - unsigned short nAttachedElements; /*!< \brief Number of elements connected to the node. */ - - su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ - *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ - - su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ - *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ - - su2double *Solution_Pred; /*!< \brief Predictor of the solution (for FSI applications) */ - su2double *Solution_Pred_Old; /*!< \brief Predictor of the solution (for FSI applications) in the iter k-1 */ - -public: - - /*! - * \brief Constructor of the class. - */ - CFEAVariable(void); - - /*! - * \overload - * \param[in] val_fea - Values of the fea solution (initialization value). - * \param[in] val_nDim - Number of dimensions of the problem. - * \param[in] val_nvar - Number of variables of the problem. - * \param[in] config - Definition of the particular problem. - */ - CFEAVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); - - /*! - * \brief Destructor of the class. - */ - ~CFEAVariable(void); - - /*! - * \brief Set the value of the stress. - * \param[in] iVar - i index. - * \param[in] jVar - j index. - * \param[in] val_stress - Value of the stress. - */ - void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); - - /*! - * \brief Add a value to the stress matrix in the element. - * \param[in] iVar - i index. - * \param[in] jVar - j index. - * \param[in] val_stress - Value of the stress. - */ - void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); - - /*! - * \brief Get the value of the stress. - * \return Value of the stress. - */ - su2double **GetStress(void); - - /*! - * \brief Set the value of the Von Mises stress. - * \param[in] val_stress - Value of the Von Mises stress. - */ - void SetVonMises_Stress(su2double val_stress); - - /*! - * \brief Get the value of the Von Mises stress. - * \return Value of the Von Mises stress. - */ - su2double GetVonMises_Stress(void); - - /*! - * \brief Set the value of the Von Mises stress. - * \param[in] val_stress - Value of the Von Mises stress. - */ - void SetFlow_Pressure(su2double val_pressure); - - /*! - * \brief Get the value of the Von Mises stress. - * \return Value of the Von Mises stress. - */ - su2double GetFlow_Pressure(void); - - /*! - * \brief Initialize the value of the number of attached elements to a node. - * \return Value of the Von Mises stress. - */ - void Initialize_Connectivity(void); - - - /*! - * \brief Add a 1 to the value of the number of attached elements to a node. - * \return Value of the Von Mises stress. - */ - void Upgrade_Connectivity(void); - - - /*! - * \brief Returns the value of the number of attached elements to a node. - * \return Value of the Von Mises stress. - */ - unsigned short Get_Connectivity(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_time_n(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_time_n(su2double *val_solution_time_n); - - - /*! - * \brief Set the value of the velocity (Structural Analysis). - * \param[in] val_solution - Solution of the problem (velocity). - */ - void SetSolution_Vel(su2double *val_solution_vel); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution - Value of the solution for the index val_var. - */ - void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); - - /*! - * \brief Set the value of the velocity (Structural Analysis) at time n. - * \param[in] val_solution - Solution of the problem (acceleration). - */ - void SetSolution_Vel_time_n(void); - - /*! - * \brief Set the value of the velocity (Structural Analysis) at time n. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution_old - Value of the old solution for the index val_var. - */ - void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); - - /*! - * \brief Get the solution at time n. - * \param[in] val_var - Index of the variable. - * \return Value of the solution for the index val_var. - */ - su2double GetSolution_time_n(unsigned short val_var); - - /*! - * \brief Get the velocity (Structural Analysis). - * \param[in] val_var - Index of the variable. - * \return Value of the solution for the index val_var. - */ - su2double GetSolution_Vel(unsigned short val_var); - - /*! - * \brief Get the solution of the problem. - * \return Pointer to the solution vector. - */ - su2double *GetSolution_Vel(void); - - /*! - * \brief Get the velocity of the nodes (Structural Analysis) at time n. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Vel_time_n(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Vel_time_n(void); - - /*! - * \brief Set the value of the acceleration (Structural Analysis). - * \param[in] val_solution - Solution of the problem (acceleration). - */ - void SetSolution_Accel(su2double *val_solution_accel); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution - Value of the solution for the index val_var. - */ - void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); - - /*! - * \brief Set the value of the acceleration (Structural Analysis) at time n. - * \param[in] val_solution_old - Pointer to the residual vector. - */ - void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); - - /*! - * \brief Set the value of the acceleration (Structural Analysis) at time n. - * \param[in] val_solution - Solution of the problem (acceleration). - */ - void SetSolution_Accel_time_n(void); - - /*! - * \overload - * \param[in] val_var - Index of the variable. - * \param[in] val_solution_old - Value of the old solution for the index val_var. - */ - void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); - - /*! - * \brief Get the acceleration (Structural Analysis). - * \param[in] val_var - Index of the variable. - * \return Value of the solution for the index val_var. - */ - su2double GetSolution_Accel(unsigned short val_var); - - /*! - * \brief Get the solution of the problem. - * \return Pointer to the solution vector. - */ - su2double *GetSolution_Accel(void); - - /*! - * \brief Get the acceleration of the nodes (Structural Analysis) at time n. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Accel_time_n(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Accel_time_n(void); - - - /*! - * \brief Set the value of the solution predictor. - */ - void SetSolution_Pred(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_pred - Pointer to the residual vector. - */ - void SetSolution_Pred(su2double *val_solution_pred); - - /*! - * \brief Get the value of the solution predictor. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Pred(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Pred(void); - - /*! - * \brief Set the value of the solution predictor. - */ - void SetSolution_Pred_Old(void); - - /*! - * \brief Set the value of the old solution. - * \param[in] val_solution_pred_Old - Pointer to the residual vector. - */ - void SetSolution_Pred_Old(su2double *val_solution_pred_Old); - - /*! - * \brief Get the value of the solution predictor. - * \param[in] val_var - Index of the variable. - * \return Pointer to the old solution vector. - */ - su2double GetSolution_Pred_Old(unsigned short val_var); - - /*! - * \brief Get the solution at time n. - * \return Pointer to the solution (at time n) vector. - */ - su2double *GetSolution_Pred_Old(void); - - - -}; +///*! +// * \class CFEAVariable +// * \brief Main class for defining the variables of the FEA equation solver. +// * \ingroup Structural Finite Element Analysis Variables +// * \author F. Palacios, R. Sanchez. +// * \version 4.1.0 "Cardinal" +// */ +//class CFEAVariable : public CVariable { +//protected: +// su2double Flow_Pressure; /*!< \brief Pressure of the fluid. */ +// +// bool dynamicFEA; /*!< \brief Non-physical points in the solution (force first order). */ +// +// su2double **Stress; /*!< \brief Stress tensor. */ +// su2double VonMises_Stress; /*!< \brief Von Mises stress. */ +// unsigned short nAttachedElements; /*!< \brief Number of elements connected to the node. */ +// +// su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ +// *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ +// +// su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ +// *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ +// +// su2double *Solution_Pred; /*!< \brief Predictor of the solution (for FSI applications) */ +// su2double *Solution_Pred_Old; /*!< \brief Predictor of the solution (for FSI applications) in the iter k-1 */ +// +//public: +// +// /*! +// * \brief Constructor of the class. +// */ +// CFEAVariable(void); +// +// /*! +// * \overload +// * \param[in] val_fea - Values of the fea solution (initialization value). +// * \param[in] val_nDim - Number of dimensions of the problem. +// * \param[in] val_nvar - Number of variables of the problem. +// * \param[in] config - Definition of the particular problem. +// */ +// CFEAVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); +// +// /*! +// * \brief Destructor of the class. +// */ +// ~CFEAVariable(void); +// +// /*! +// * \brief Set the value of the stress. +// * \param[in] iVar - i index. +// * \param[in] jVar - j index. +// * \param[in] val_stress - Value of the stress. +// */ +// void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); +// +// /*! +// * \brief Add a value to the stress matrix in the element. +// * \param[in] iVar - i index. +// * \param[in] jVar - j index. +// * \param[in] val_stress - Value of the stress. +// */ +// void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); +// +// /*! +// * \brief Get the value of the stress. +// * \return Value of the stress. +// */ +// su2double **GetStress(void); +// +// /*! +// * \brief Set the value of the Von Mises stress. +// * \param[in] val_stress - Value of the Von Mises stress. +// */ +// void SetVonMises_Stress(su2double val_stress); +// +// /*! +// * \brief Get the value of the Von Mises stress. +// * \return Value of the Von Mises stress. +// */ +// su2double GetVonMises_Stress(void); +// +// /*! +// * \brief Set the value of the Von Mises stress. +// * \param[in] val_stress - Value of the Von Mises stress. +// */ +// void SetFlow_Pressure(su2double val_pressure); +// +// /*! +// * \brief Get the value of the Von Mises stress. +// * \return Value of the Von Mises stress. +// */ +// su2double GetFlow_Pressure(void); +// +// /*! +// * \brief Initialize the value of the number of attached elements to a node. +// * \return Value of the Von Mises stress. +// */ +// void Initialize_Connectivity(void); +// +// +// /*! +// * \brief Add a 1 to the value of the number of attached elements to a node. +// * \return Value of the Von Mises stress. +// */ +// void Upgrade_Connectivity(void); +// +// +// /*! +// * \brief Returns the value of the number of attached elements to a node. +// * \return Value of the Von Mises stress. +// */ +// unsigned short Get_Connectivity(void); +// +// /*! +// * \brief Set the value of the old solution. +// * \param[in] val_solution_old - Pointer to the residual vector. +// */ +// void SetSolution_time_n(void); +// +// /*! +// * \brief Set the value of the old solution. +// * \param[in] val_solution_old - Pointer to the residual vector. +// */ +// void SetSolution_time_n(su2double *val_solution_time_n); +// +// +// /*! +// * \brief Set the value of the velocity (Structural Analysis). +// * \param[in] val_solution - Solution of the problem (velocity). +// */ +// void SetSolution_Vel(su2double *val_solution_vel); +// +// /*! +// * \overload +// * \param[in] val_var - Index of the variable. +// * \param[in] val_solution - Value of the solution for the index val_var. +// */ +// void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); +// +// /*! +// * \brief Set the value of the velocity (Structural Analysis) at time n. +// * \param[in] val_solution - Solution of the problem (acceleration). +// */ +// void SetSolution_Vel_time_n(void); +// +// /*! +// * \brief Set the value of the velocity (Structural Analysis) at time n. +// * \param[in] val_solution_old - Pointer to the residual vector. +// */ +// void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); +// +// /*! +// * \overload +// * \param[in] val_var - Index of the variable. +// * \param[in] val_solution_old - Value of the old solution for the index val_var. +// */ +// void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); +// +// /*! +// * \brief Get the solution at time n. +// * \param[in] val_var - Index of the variable. +// * \return Value of the solution for the index val_var. +// */ +// su2double GetSolution_time_n(unsigned short val_var); +// +// /*! +// * \brief Get the velocity (Structural Analysis). +// * \param[in] val_var - Index of the variable. +// * \return Value of the solution for the index val_var. +// */ +// su2double GetSolution_Vel(unsigned short val_var); +// +// /*! +// * \brief Get the solution of the problem. +// * \return Pointer to the solution vector. +// */ +// su2double *GetSolution_Vel(void); +// +// /*! +// * \brief Get the velocity of the nodes (Structural Analysis) at time n. +// * \param[in] val_var - Index of the variable. +// * \return Pointer to the old solution vector. +// */ +// su2double GetSolution_Vel_time_n(unsigned short val_var); +// +// /*! +// * \brief Get the solution at time n. +// * \return Pointer to the solution (at time n) vector. +// */ +// su2double *GetSolution_Vel_time_n(void); +// +// /*! +// * \brief Set the value of the acceleration (Structural Analysis). +// * \param[in] val_solution - Solution of the problem (acceleration). +// */ +// void SetSolution_Accel(su2double *val_solution_accel); +// +// /*! +// * \overload +// * \param[in] val_var - Index of the variable. +// * \param[in] val_solution - Value of the solution for the index val_var. +// */ +// void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); +// +// /*! +// * \brief Set the value of the acceleration (Structural Analysis) at time n. +// * \param[in] val_solution_old - Pointer to the residual vector. +// */ +// void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); +// +// /*! +// * \brief Set the value of the acceleration (Structural Analysis) at time n. +// * \param[in] val_solution - Solution of the problem (acceleration). +// */ +// void SetSolution_Accel_time_n(void); +// +// /*! +// * \overload +// * \param[in] val_var - Index of the variable. +// * \param[in] val_solution_old - Value of the old solution for the index val_var. +// */ +// void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); +// +// /*! +// * \brief Get the acceleration (Structural Analysis). +// * \param[in] val_var - Index of the variable. +// * \return Value of the solution for the index val_var. +// */ +// su2double GetSolution_Accel(unsigned short val_var); +// +// /*! +// * \brief Get the solution of the problem. +// * \return Pointer to the solution vector. +// */ +// su2double *GetSolution_Accel(void); +// +// /*! +// * \brief Get the acceleration of the nodes (Structural Analysis) at time n. +// * \param[in] val_var - Index of the variable. +// * \return Pointer to the old solution vector. +// */ +// su2double GetSolution_Accel_time_n(unsigned short val_var); +// +// /*! +// * \brief Get the solution at time n. +// * \return Pointer to the solution (at time n) vector. +// */ +// su2double *GetSolution_Accel_time_n(void); +// +// +// /*! +// * \brief Set the value of the solution predictor. +// */ +// void SetSolution_Pred(void); +// +// /*! +// * \brief Set the value of the old solution. +// * \param[in] val_solution_pred - Pointer to the residual vector. +// */ +// void SetSolution_Pred(su2double *val_solution_pred); +// +// /*! +// * \brief Get the value of the solution predictor. +// * \param[in] val_var - Index of the variable. +// * \return Pointer to the old solution vector. +// */ +// su2double GetSolution_Pred(unsigned short val_var); +// +// /*! +// * \brief Get the solution at time n. +// * \return Pointer to the solution (at time n) vector. +// */ +// su2double *GetSolution_Pred(void); +// +// /*! +// * \brief Set the value of the solution predictor. +// */ +// void SetSolution_Pred_Old(void); +// +// /*! +// * \brief Set the value of the old solution. +// * \param[in] val_solution_pred_Old - Pointer to the residual vector. +// */ +// void SetSolution_Pred_Old(su2double *val_solution_pred_Old); +// +// /*! +// * \brief Get the value of the solution predictor. +// * \param[in] val_var - Index of the variable. +// * \return Pointer to the old solution vector. +// */ +// su2double GetSolution_Pred_Old(unsigned short val_var); +// +// /*! +// * \brief Get the solution at time n. +// * \return Pointer to the solution (at time n) vector. +// */ +// su2double *GetSolution_Pred_Old(void); +// +// +// +//}; /*! * \class CFEM_ElasVariable diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 1412cbc9680..aae82ba00d4 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -43,11 +43,11 @@ inline void CVariable::AddTraction(unsigned short iVar, unsigned short jVar, su2 inline su2double **CVariable::GetTraction(void) { return NULL; } -inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } +//inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } -inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } +//inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } -inline su2double **CVariable::GetStress(void) { return NULL; } +//inline su2double **CVariable::GetStress(void) { return NULL; } inline void CVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { } @@ -59,15 +59,15 @@ inline void CVariable::SetVonMises_Stress(su2double val_stress) { } inline su2double CVariable::GetVonMises_Stress(void) { return 0; } -inline void CVariable::SetFlow_Pressure(su2double val_pressure) { } +//inline void CVariable::SetFlow_Pressure(su2double val_pressure) { } -inline su2double CVariable::GetFlow_Pressure(void) { return 0; } +//inline su2double CVariable::GetFlow_Pressure(void) { return 0; } -inline void CVariable::Initialize_Connectivity(void) { } +//inline void CVariable::Initialize_Connectivity(void) { } -inline void CVariable::Upgrade_Connectivity(void) { } +//inline void CVariable::Upgrade_Connectivity(void) { } -inline unsigned short CVariable::Get_Connectivity(void) { return 0; } +//inline unsigned short CVariable::Get_Connectivity(void) { return 0; } inline void CVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { } @@ -866,25 +866,25 @@ inline void CAdjNSVariable::SetVelSolutionOldDVector(void) { for (unsigned short inline void CAdjNSVariable::SetVelSolutionDVector(void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution[iDim+1] = ForceProj_Vector[iDim]; }; -inline void CFEAVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] = val_stress; } +//inline void CFEAVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] = val_stress; } -inline void CFEAVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] += val_stress; } +//inline void CFEAVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] += val_stress; } -inline su2double **CFEAVariable::GetStress(void) { return Stress; } +//inline su2double **CFEAVariable::GetStress(void) { return Stress; } -inline void CFEAVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } +//inline void CFEAVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } -inline su2double CFEAVariable::GetVonMises_Stress(void) { return VonMises_Stress; } +//inline su2double CFEAVariable::GetVonMises_Stress(void) { return VonMises_Stress; } -inline void CFEAVariable::SetFlow_Pressure(su2double val_pressure) { Flow_Pressure = val_pressure; } +//inline void CFEAVariable::SetFlow_Pressure(su2double val_pressure) { Flow_Pressure = val_pressure; } -inline su2double CFEAVariable::GetFlow_Pressure(void) { return Flow_Pressure; } +//inline su2double CFEAVariable::GetFlow_Pressure(void) { return Flow_Pressure; } -inline void CFEAVariable::Initialize_Connectivity(void) { nAttachedElements = 0; } +//inline void CFEAVariable::Initialize_Connectivity(void) { nAttachedElements = 0; } -inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } +//inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } -inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } +//inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] = val_stress; } @@ -1043,43 +1043,43 @@ inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short j inline su2double **CFEABoundVariable::GetTraction(void) { return Traction; } -inline void CFEAVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } - -inline void CFEAVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } - -inline su2double CFEAVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } - -inline su2double CFEAVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } - -inline su2double *CFEAVariable::GetSolution_Vel(void) { return Solution_Vel; } - -inline su2double CFEAVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } - -inline su2double *CFEAVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } - -inline void CFEAVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } - -inline void CFEAVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } - -inline su2double CFEAVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } - -inline su2double *CFEAVariable::GetSolution_Accel(void) { return Solution_Accel; } - -inline su2double CFEAVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } - -inline su2double *CFEAVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } - -inline void CFEAVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } - -inline su2double CFEAVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } - -inline su2double *CFEAVariable::GetSolution_Pred(void){ return Solution_Pred; } - -inline void CFEAVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } - -inline su2double CFEAVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } - -inline su2double *CFEAVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } +//inline void CFEAVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } +// +//inline void CFEAVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } +// +//inline su2double CFEAVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } +// +//inline su2double CFEAVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } +// +//inline su2double *CFEAVariable::GetSolution_Vel(void) { return Solution_Vel; } +// +//inline su2double CFEAVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } +// +//inline su2double *CFEAVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } +// +//inline void CFEAVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } +// +//inline void CFEAVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } +// +//inline su2double CFEAVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } +// +//inline su2double *CFEAVariable::GetSolution_Accel(void) { return Solution_Accel; } +// +//inline su2double CFEAVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } +// +//inline su2double *CFEAVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } +// +//inline void CFEAVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } +// +//inline su2double CFEAVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } +// +//inline su2double *CFEAVariable::GetSolution_Pred(void){ return Solution_Pred; } +// +//inline void CFEAVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } +// +//inline su2double CFEAVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } +// +//inline su2double *CFEAVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } inline su2double* CWaveVariable::GetSolution_Direct() { return Solution_Direct;} diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index f31efae756e..d2f53fd831f 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -82,7 +82,6 @@ su2_cfd_sources = \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_turbulent.cpp \ ../src/numerics_direct_poisson.cpp \ - ../src/numerics_direct_elasticity.cpp \ ../src/numerics_direct_heat.cpp \ ../src/numerics_direct_mean.cpp \ ../src/numerics_direct_transition.cpp \ @@ -104,7 +103,6 @@ su2_cfd_sources = \ ../src/solver_adjoint_turbulent.cpp \ ../src/solver_adjoint_discrete.cpp \ ../src/solver_direct_poisson.cpp \ - ../src/solver_direct_elasticity.cpp \ ../src/solver_direct_heat.cpp \ ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ @@ -122,7 +120,6 @@ su2_cfd_sources = \ ../src/variable_adjoint_turbulent.cpp \ ../src/variable_adjoint_discrete.cpp \ ../src/variable_direct_poisson.cpp \ - ../src/variable_direct_elasticity.cpp \ ../src/variable_direct_heat.cpp \ ../src/variable_direct_mean.cpp \ ../src/variable_direct_transition.cpp \ diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 4c09c740c0c..21fd305b1af 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -132,7 +132,6 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_turbulent.cpp \ ../src/numerics_direct_poisson.cpp \ - ../src/numerics_direct_elasticity.cpp \ ../src/numerics_direct_heat.cpp \ ../src/numerics_direct_mean.cpp \ ../src/numerics_direct_transition.cpp \ @@ -149,9 +148,8 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/solver_adjoint_mean.cpp \ ../src/solver_adjoint_turbulent.cpp \ ../src/solver_adjoint_discrete.cpp \ - ../src/solver_direct_poisson.cpp \ - ../src/solver_direct_elasticity.cpp \ - ../src/solver_direct_heat.cpp ../src/solver_direct_mean.cpp \ + ../src/solver_direct_poisson.cpp ../src/solver_direct_heat.cpp \ + ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ ../src/solver_direct_wave.cpp ../src/solver_fem_elasticity.cpp \ @@ -163,7 +161,6 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/variable_adjoint_turbulent.cpp \ ../src/variable_adjoint_discrete.cpp \ ../src/variable_direct_poisson.cpp \ - ../src/variable_direct_elasticity.cpp \ ../src/variable_direct_heat.cpp \ ../src/variable_direct_mean.cpp \ ../src/variable_direct_transition.cpp \ @@ -185,7 +182,6 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_adjoint_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT) \ @@ -207,7 +203,6 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_adjoint_discrete.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT) \ @@ -225,7 +220,6 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_adjoint_discrete.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT) \ @@ -268,7 +262,6 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_turbulent.cpp \ ../src/numerics_direct_poisson.cpp \ - ../src/numerics_direct_elasticity.cpp \ ../src/numerics_direct_heat.cpp \ ../src/numerics_direct_mean.cpp \ ../src/numerics_direct_transition.cpp \ @@ -285,9 +278,8 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../src/solver_adjoint_mean.cpp \ ../src/solver_adjoint_turbulent.cpp \ ../src/solver_adjoint_discrete.cpp \ - ../src/solver_direct_poisson.cpp \ - ../src/solver_direct_elasticity.cpp \ - ../src/solver_direct_heat.cpp ../src/solver_direct_mean.cpp \ + ../src/solver_direct_poisson.cpp ../src/solver_direct_heat.cpp \ + ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ ../src/solver_direct_wave.cpp ../src/solver_fem_elasticity.cpp \ @@ -299,7 +291,6 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../src/variable_adjoint_turbulent.cpp \ ../src/variable_adjoint_discrete.cpp \ ../src/variable_direct_poisson.cpp \ - ../src/variable_direct_elasticity.cpp \ ../src/variable_direct_heat.cpp \ ../src/variable_direct_mean.cpp \ ../src/variable_direct_transition.cpp \ @@ -321,7 +312,6 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-numerics_adjoint_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_direct_transition.$(OBJEXT) \ @@ -343,7 +333,6 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-solver_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_adjoint_discrete.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_direct_transition.$(OBJEXT) \ @@ -361,7 +350,6 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-variable_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_adjoint_discrete.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_direct_transition.$(OBJEXT) \ @@ -403,7 +391,6 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_turbulent.cpp \ ../src/numerics_direct_poisson.cpp \ - ../src/numerics_direct_elasticity.cpp \ ../src/numerics_direct_heat.cpp \ ../src/numerics_direct_mean.cpp \ ../src/numerics_direct_transition.cpp \ @@ -420,9 +407,8 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/solver_adjoint_mean.cpp \ ../src/solver_adjoint_turbulent.cpp \ ../src/solver_adjoint_discrete.cpp \ - ../src/solver_direct_poisson.cpp \ - ../src/solver_direct_elasticity.cpp \ - ../src/solver_direct_heat.cpp ../src/solver_direct_mean.cpp \ + ../src/solver_direct_poisson.cpp ../src/solver_direct_heat.cpp \ + ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ ../src/solver_direct_wave.cpp ../src/solver_fem_elasticity.cpp \ @@ -434,7 +420,6 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/variable_adjoint_turbulent.cpp \ ../src/variable_adjoint_discrete.cpp \ ../src/variable_direct_poisson.cpp \ - ../src/variable_direct_elasticity.cpp \ ../src/variable_direct_heat.cpp \ ../src/variable_direct_mean.cpp \ ../src/variable_direct_transition.cpp \ @@ -455,7 +440,6 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_transition.$(OBJEXT) \ @@ -477,7 +461,6 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_discrete.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_transition.$(OBJEXT) \ @@ -495,7 +478,6 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_discrete.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_poisson.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_mean.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_transition.$(OBJEXT) \ @@ -739,7 +721,6 @@ su2_cfd_sources = \ ../src/numerics_adjoint_mean.cpp \ ../src/numerics_adjoint_turbulent.cpp \ ../src/numerics_direct_poisson.cpp \ - ../src/numerics_direct_elasticity.cpp \ ../src/numerics_direct_heat.cpp \ ../src/numerics_direct_mean.cpp \ ../src/numerics_direct_transition.cpp \ @@ -761,7 +742,6 @@ su2_cfd_sources = \ ../src/solver_adjoint_turbulent.cpp \ ../src/solver_adjoint_discrete.cpp \ ../src/solver_direct_poisson.cpp \ - ../src/solver_direct_elasticity.cpp \ ../src/solver_direct_heat.cpp \ ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ @@ -779,7 +759,6 @@ su2_cfd_sources = \ ../src/variable_adjoint_turbulent.cpp \ ../src/variable_adjoint_discrete.cpp \ ../src/variable_direct_poisson.cpp \ - ../src/variable_direct_elasticity.cpp \ ../src/variable_direct_heat.cpp \ ../src/variable_direct_mean.cpp \ ../src/variable_direct_transition.cpp \ @@ -929,8 +908,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_direct_mean.$(OBJEXT): \ @@ -973,8 +950,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_direct_mean.$(OBJEXT): \ @@ -1009,8 +984,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_direct_mean.$(OBJEXT): \ @@ -1059,8 +1032,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-numerics_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-numerics_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-numerics_direct_mean.$(OBJEXT): \ @@ -1103,8 +1074,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-solver_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-solver_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-solver_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-solver_direct_mean.$(OBJEXT): \ @@ -1139,8 +1108,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-variable_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_direct_mean.$(OBJEXT): \ @@ -1186,8 +1153,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_mean.$(OBJEXT): \ @@ -1230,8 +1195,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_mean.$(OBJEXT): \ @@ -1266,8 +1229,6 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_poisson.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.$(OBJEXT): \ - ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_mean.$(OBJEXT): \ @@ -1308,7 +1269,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po@am__quote@ @@ -1330,7 +1290,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po@am__quote@ @@ -1347,7 +1306,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po@am__quote@ @@ -1370,7 +1328,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_poisson.Po@am__quote@ @@ -1392,7 +1349,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_poisson.Po@am__quote@ @@ -1409,7 +1365,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_poisson.Po@am__quote@ @@ -1432,7 +1387,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_poisson.Po@am__quote@ @@ -1454,7 +1408,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_poisson.Po@am__quote@ @@ -1471,7 +1424,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_turbulent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_poisson.Po@am__quote@ @@ -1680,20 +1632,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_poisson.obj `if test -f '../src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD-numerics_direct_elasticity.o: ../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp - -../src/___bin_SU2_CFD-numerics_direct_elasticity.obj: ../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD-numerics_direct_heat.o: ../src/numerics_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_heat.o `test -f '../src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../src/numerics_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po @@ -1988,20 +1926,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_direct_poisson.obj `if test -f '../src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD-solver_direct_elasticity.o: ../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp - -../src/___bin_SU2_CFD-solver_direct_elasticity.obj: ../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD-solver_direct_heat.o: ../src/solver_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD-solver_direct_heat.o `test -f '../src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../src/solver_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po @@ -2240,20 +2164,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_direct_poisson.obj `if test -f '../src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD-variable_direct_elasticity.o: ../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp - -../src/___bin_SU2_CFD-variable_direct_elasticity.obj: ../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD-variable_direct_heat.o: ../src/variable_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD-variable_direct_heat.o `test -f '../src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../src/variable_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po @@ -2548,20 +2458,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_poisson.obj `if test -f '../src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o: ../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp - -../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj: ../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD_AD-numerics_direct_heat.o: ../src/numerics_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_heat.o `test -f '../src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../src/numerics_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_heat.Po @@ -2856,20 +2752,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_direct_poisson.obj `if test -f '../src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o: ../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp - -../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj: ../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD_AD-solver_direct_heat.o: ../src/solver_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_direct_heat.o `test -f '../src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../src/solver_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_heat.Po @@ -3108,20 +2990,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_direct_poisson.obj `if test -f '../src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o: ../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp - -../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj: ../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD_AD-variable_direct_heat.o: ../src/variable_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_direct_heat.o `test -f '../src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../src/variable_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_heat.Po @@ -3416,20 +3284,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_poisson.obj `if test -f '../src/numerics_direct_poisson.cpp'; then $(CYGPATH_W) '../src/numerics_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o: ../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp - -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj: ../src/numerics_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.o: ../src/numerics_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.o `test -f '../src/numerics_direct_heat.cpp' || echo '$(srcdir)/'`../src/numerics_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.Po @@ -3724,20 +3578,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_poisson.obj `if test -f '../src/solver_direct_poisson.cpp'; then $(CYGPATH_W) '../src/solver_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o: ../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp - -../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj: ../src/solver_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.o: ../src/solver_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.o `test -f '../src/solver_direct_heat.cpp' || echo '$(srcdir)/'`../src/solver_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.Po @@ -3976,20 +3816,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_poisson.obj `if test -f '../src/variable_direct_poisson.cpp'; then $(CYGPATH_W) '../src/variable_direct_poisson.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_poisson.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o: ../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp - -../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj: ../src/variable_direct_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` - ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.o: ../src/variable_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.o `test -f '../src/variable_direct_heat.cpp' || echo '$(srcdir)/'`../src/variable_direct_heat.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.Po diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index d8e14a88da9..40d5e975ecf 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -405,10 +405,6 @@ int main(int argc, char *argv[]) { StopCalc = integration_container[ZONE_0][WAVE_SOL]->GetConvergence(); break; case HEAT_EQUATION: StopCalc = integration_container[ZONE_0][HEAT_SOL]->GetConvergence(); break; - case LINEAR_ELASTICITY: - // This is a temporal fix, while we code the non-linear solver - // StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; - StopCalc = false; break; case FEM_ELASTICITY: StopCalc = integration_container[ZONE_0][FEA_SOL]->GetConvergence(); break; case ADJ_EULER: case ADJ_NAVIER_STOKES: case ADJ_RANS: diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 5b8dd5508fc..d8b267dd5d2 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -157,7 +157,7 @@ void CDriver::Solver_Preprocessing(CSolver ***solver_container, CGeometry **geom unsigned short iMGlevel; bool euler, ns, turbulent, adj_euler, adj_ns, adj_turb, - poisson, wave, fea, heat, fem, + poisson, wave, heat, fem, spalart_allmaras, neg_spalart_allmaras, menter_sst, transition, template_solver, disc_adj; @@ -168,7 +168,7 @@ void CDriver::Solver_Preprocessing(CSolver ***solver_container, CGeometry **geom spalart_allmaras = false; menter_sst = false; poisson = false; neg_spalart_allmaras = false; wave = false; disc_adj = false; - fea = false; fem = false; + fem = false; heat = false; transition = false; template_solver = false; @@ -183,7 +183,6 @@ void CDriver::Solver_Preprocessing(CSolver ***solver_container, CGeometry **geom case POISSON_EQUATION: poisson = true; break; case WAVE_EQUATION: wave = true; break; case HEAT_EQUATION: heat = true; break; - case LINEAR_ELASTICITY: fea = true; break; case FEM_ELASTICITY: fem = true; break; case ADJ_EULER : euler = true; adj_euler = true; break; case ADJ_NAVIER_STOKES : ns = true; turbulent = (config->GetKind_Turb_Model() != NONE); adj_ns = true; break; @@ -250,9 +249,6 @@ void CDriver::Solver_Preprocessing(CSolver ***solver_container, CGeometry **geom if (heat) { solver_container[iMGlevel][HEAT_SOL] = new CHeatSolver(geometry[iMGlevel], config); } - if (fea) { - solver_container[iMGlevel][FEA_SOL] = new CFEASolver(geometry[iMGlevel], config); - } if (fem) { solver_container[iMGlevel][FEA_SOL] = new CFEM_ElasticitySolver(geometry[iMGlevel], config); } @@ -283,7 +279,7 @@ void CDriver::Integration_Preprocessing(CIntegration **integration_container, euler, adj_euler, ns, adj_ns, turbulent, adj_turb, - poisson, wave, fea, fem, heat, template_solver, transition, disc_adj; + poisson, wave, fem, heat, template_solver, transition, disc_adj; /*--- Initialize some useful booleans ---*/ euler = false; adj_euler = false; @@ -292,7 +288,7 @@ void CDriver::Integration_Preprocessing(CIntegration **integration_container, poisson = false; disc_adj = false; wave = false; heat = false; - fea = false; fem = false; + fem = false; transition = false; template_solver = false; @@ -305,7 +301,6 @@ void CDriver::Integration_Preprocessing(CIntegration **integration_container, case POISSON_EQUATION: poisson = true; break; case WAVE_EQUATION: wave = true; break; case HEAT_EQUATION: heat = true; break; - case LINEAR_ELASTICITY: fea = true; break; case FEM_ELASTICITY: fem = true; break; case ADJ_EULER : euler = true; adj_euler = true; break; case ADJ_NAVIER_STOKES : ns = true; turbulent = (config->GetKind_Turb_Model() != NONE); adj_ns = true; break; @@ -327,7 +322,6 @@ void CDriver::Integration_Preprocessing(CIntegration **integration_container, if (poisson) integration_container[POISSON_SOL] = new CSingleGridIntegration(config); if (wave) integration_container[WAVE_SOL] = new CSingleGridIntegration(config); if (heat) integration_container[HEAT_SOL] = new CSingleGridIntegration(config); - if (fea) integration_container[FEA_SOL] = new CStructuralIntegration(config); if (fem) integration_container[FEA_SOL] = new CStructuralIntegration(config); /*--- Allocate solution for adjoint problem ---*/ @@ -352,7 +346,6 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, nVar_Adj_Flow = 0, nVar_Adj_Turb = 0, nVar_Poisson = 0, - nVar_FEA = 0, nVar_FEM = 0, nVar_Wave = 0, nVar_Heat = 0; @@ -366,7 +359,7 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, spalart_allmaras, neg_spalart_allmaras, menter_sst, poisson, wave, - fea, fem, + fem, heat, transition, template_solver; @@ -380,7 +373,7 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, euler = false; ns = false; turbulent = false; poisson = false; adj_euler = false; adj_ns = false; adj_turb = false; - wave = false; heat = false; fea = false; fem = false; + wave = false; heat = false; fem = false; spalart_allmaras = false; neg_spalart_allmaras = false; menter_sst = false; transition = false; template_solver = false; @@ -394,7 +387,6 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, case POISSON_EQUATION: poisson = true; break; case WAVE_EQUATION: wave = true; break; case HEAT_EQUATION: heat = true; break; - case LINEAR_ELASTICITY: fea = true; break; case FEM_ELASTICITY: fem = true; break; case ADJ_EULER : euler = true; adj_euler = true; break; case ADJ_NAVIER_STOKES : ns = true; turbulent = (config->GetKind_Turb_Model() != NONE); adj_ns = true; break; @@ -424,7 +416,6 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, if (poisson) nVar_Poisson = solver_container[MESH_0][POISSON_SOL]->GetnVar(); if (wave) nVar_Wave = solver_container[MESH_0][WAVE_SOL]->GetnVar(); - if (fea) nVar_FEA = solver_container[MESH_0][FEA_SOL]->GetnVar(); if (fem) nVar_FEM = solver_container[MESH_0][FEA_SOL]->GetnVar(); if (heat) nVar_Heat = solver_container[MESH_0][HEAT_SOL]->GetnVar(); @@ -1034,15 +1025,7 @@ void CDriver::Numerics_Preprocessing(CNumerics ****numerics_container, numerics_container[MESH_0][WAVE_SOL][VISC_TERM] = new CGalerkin_Flow(nDim, nVar_Wave, config); } - - /*--- Solver definition for the FEA problem ---*/ - if (fea) { - - /*--- Definition of the viscous scheme for each equation and mesh level ---*/ - numerics_container[MESH_0][FEA_SOL][FEA_TERM] = new CGalerkin_FEA(nDim, nVar_FEA, config); - - } - + /*--- Solver definition for the FEM problem ---*/ if (fem) { switch (config->GetGeometricConditions()) { @@ -1112,11 +1095,6 @@ void CDriver::Iteration_Preprocessing(CIteration **iteration_container, CConfig iteration_container[iZone] = new CPoissonIteration(config[iZone]); break; - case LINEAR_ELASTICITY: - if (rank == MASTER_NODE) - cout << ": FEA iteration." << endl; - iteration_container[iZone] = new CFEAIteration(config[iZone]); - break; case FEM_ELASTICITY: if (rank == MASTER_NODE) cout << ": FEM iteration." << endl; diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 24e83ff4e2b..ca9c4949ec7 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -154,9 +154,9 @@ void CIntegration::Space_Integration(CGeometry *geometry, case DISPLACEMENT_BOUNDARY: solver_container[MainSolver]->BC_Normal_Displacement(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); break; - case FLOWLOAD_BOUNDARY: - solver_container[MainSolver]->BC_Flow_Load(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); - break; +// case FLOWLOAD_BOUNDARY: +// solver_container[MainSolver]->BC_Flow_Load(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); +// break; case LOAD_BOUNDARY: solver_container[MainSolver]->BC_Normal_Load(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); break; @@ -324,7 +324,7 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai /*--- Fluid time integration schemes ---*/ - if ((KindSolver != LINEAR_ELASTICITY) && (KindSolver != FEM_ELASTICITY)) { + if (KindSolver != FEM_ELASTICITY) { switch (config->GetKind_TimeIntScheme()) { case (RUNGE_KUTTA_EXPLICIT): @@ -341,7 +341,7 @@ void CIntegration::Time_Integration(CGeometry *geometry, CSolver **solver_contai /*--- Structural time integration schemes ---*/ } - else if ((KindSolver == LINEAR_ELASTICITY) || (KindSolver == FEM_ELASTICITY)) { + else if (KindSolver == FEM_ELASTICITY) { switch (config->GetKind_TimeIntScheme_FEA()) { case (CD_EXPLICIT): diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index e179cfe922e..e47009327e6 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -902,41 +902,6 @@ CStructuralIntegration::~CStructuralIntegration(void) { } void CStructuralIntegration::Structural_Iteration(CGeometry ***geometry, CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { - su2double monitor = 0.0; - - unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); - - /*--- Preprocessing ---*/ - - solver_container[iZone][MESH_0][SolContainer_Position]->Preprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0, Iteration, RunTime_EqSystem, false); - - /*--- Space integration ---*/ - - Space_Integration(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], numerics_container[iZone][MESH_0][SolContainer_Position], - config[iZone], MESH_0, NO_RK_ITER, RunTime_EqSystem); - - /*--- Time integration ---*/ - - Time_Integration(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], config[iZone], NO_RK_ITER, - RunTime_EqSystem, Iteration); - - /*--- Postprocessing ---*/ - - solver_container[iZone][MESH_0][SolContainer_Position]->Postprocessing(geometry[iZone][MESH_0], solver_container[iZone][MESH_0], - config[iZone], numerics_container[iZone][MESH_0][SolContainer_Position], MESH_0); - - /*--- Compute adimensional parameters and the convergence monitor ---*/ - - monitor = log10(solver_container[iZone][MESH_0][FEA_SOL]->GetRes_RMS(0)); - - /*--- Convergence strategy ---*/ - Convergence_Monitoring(geometry[iZone][MESH_0], config[iZone], Iteration, monitor, MESH_0); - -} - -void CStructuralIntegration::Structural_Iteration_FEM(CGeometry ***geometry, CSolver ****solver_container, - CNumerics *****numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned long Iteration, unsigned short iZone) { // su2double monitor = 0.0; unsigned short SolContainer_Position = config[iZone]->GetContainerPosition(RunTime_EqSystem); diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index bc573bb4a15..b93e708b64e 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -827,85 +827,6 @@ void CPoissonIteration::Output() { } void CPoissonIteration::Postprocess() { } -CFEAIteration::CFEAIteration(CConfig *config) : CIteration(config) { } -CFEAIteration::~CFEAIteration(void) { } -void CFEAIteration::Preprocess(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone) { - - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - if (config_container[val_iZone]->GetGrid_Movement()) - SetGrid_Movement(geometry_container[val_iZone], surface_movement[val_iZone], - grid_movement[val_iZone], FFDBox[val_iZone], solver_container[val_iZone], config_container[val_iZone], val_iZone, IntIter, ExtIter); - - /*--- Set the initial condition at the first iteration ---*/ - - solver_container[val_iZone][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[val_iZone], solver_container[val_iZone], config_container[val_iZone], ExtIter); - -} -void CFEAIteration::Iterate(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone) { - - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - /*--- FEA equations ---*/ - - config_container[val_iZone]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Run the iteration ---*/ - - integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); - - -} -void CFEAIteration::Update(COutput *output, - CIntegration ***integration_container, - CGeometry ***geometry_container, - CSolver ****solver_container, - CNumerics *****numerics_container, - CConfig **config_container, - CSurfaceMovement **surface_movement, - CVolumetricMovement **grid_movement, - CFreeFormDefBox*** FFDBox, - unsigned short val_iZone) { - - /*----------------- Update structural solver ----------------------*/ - - bool dynamic = (config_container[val_iZone]->GetDynamic_Analysis() == DYNAMIC); - - if (dynamic){ - integration_container[val_iZone][FEA_SOL]->SetStructural_Solver(geometry_container[val_iZone][MESH_0], solver_container[val_iZone][MESH_0][FEA_SOL], config_container[val_iZone], MESH_0); - } - -} -void CFEAIteration::Monitor() { } -void CFEAIteration::Output() { } -void CFEAIteration::Postprocess() { } - - CFEM_StructuralAnalysis::CFEM_StructuralAnalysis(CConfig *config) : CIteration(config) { } CFEM_StructuralAnalysis::~CFEM_StructuralAnalysis(void) { } void CFEM_StructuralAnalysis::Preprocess() { } @@ -968,7 +889,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, /*--- Run the iteration ---*/ - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); } @@ -989,7 +910,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, /*--- Run the iteration ---*/ - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); @@ -1003,7 +924,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, config_container[val_iZone]->SetIntIter(IntIter); - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; @@ -1032,7 +953,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, /*--- Run the first iteration ---*/ - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); @@ -1046,7 +967,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, config_container[val_iZone]->SetIntIter(IntIter); - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); @@ -1077,7 +998,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, config_container[val_iZone]->SetIntIter(IntIter); - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; @@ -1129,7 +1050,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, /*--- Run the iteration ---*/ - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); @@ -1143,7 +1064,7 @@ void CFEM_StructuralAnalysis::Iterate(COutput *output, config_container[val_iZone]->SetIntIter(IntIter); - integration_container[val_iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[val_iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, val_iZone); if (integration_container[val_iZone][FEA_SOL]->GetConvergence()) break; @@ -1792,7 +1713,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Run the iteration ---*/ - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); @@ -1812,7 +1733,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai config_container[iZone]->SetIntIter(IntIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -1848,7 +1769,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Run the first iteration ---*/ - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); @@ -1862,7 +1783,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai config_container[iZone]->SetIntIter(IntIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -1896,7 +1817,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai config_container[iZone]->SetIntIter(IntIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -1956,7 +1877,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai /*--- Run the iteration ---*/ - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); @@ -1975,7 +1896,7 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai config_container[iZone]->SetIntIter(IntIter); - integration_container[iZone][FEA_SOL]->Structural_Iteration_FEM(geometry_container, solver_container, numerics_container, + integration_container[iZone][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, config_container, RUNTIME_FEA_SYS, IntIter, iZone); } @@ -2014,240 +1935,6 @@ void FEM_StructuralIteration(COutput *output, CIntegration ***integration_contai } -} - -void FluidStructureIteration(COutput *output, CIntegration ***integration_container, CGeometry ***geometry_container, - CSolver ****solver_container, CNumerics *****numerics_container, CConfig **config_container, - CSurfaceMovement **surface_movement, CVolumetricMovement **grid_movement, CFreeFormDefBox*** FFDBox, - unsigned long iFluidIt, unsigned long nFluidIt) { - - su2double Physical_dt, Physical_t; - unsigned short iMesh; - unsigned long IntIter = 0; config_container[ZONE_0]->SetIntIter(IntIter); - unsigned long IntIter_Struct = 0; config_container[ZONE_1]->SetIntIter(IntIter_Struct); - unsigned long iFSIIter = 0; - unsigned long nFSIIter = config_container[ZONE_0]->GetnIterFSI(); - unsigned long ExtIter = config_container[ZONE_0]->GetExtIter(); - - unsigned short SolContainer_Position_fea = config_container[ZONE_1]->GetContainerPosition(RUNTIME_FEA_SYS); - - /*------------- Structural predictor for displacements ------------*/ - - /*--- Predict structural displacement --*/ - solver_container[ZONE_1][MESH_0][FEA_SOL]->PredictStruct_Displacement(geometry_container[ZONE_1], config_container[ZONE_1], - solver_container[ZONE_1]); - - - while (iFSIIterSetFlow_Displacement(geometry_container[ZONE_0], grid_movement[ZONE_0], - config_container[ZONE_0], config_container[ZONE_1], - geometry_container[ZONE_1], solver_container[ZONE_1]); - - /*---------------------- Fluid iteration --------------------------*/ - - /*--- Set the initial condition ---*/ - - solver_container[ZONE_0][MESH_0][FLOW_SOL]->SetInitialCondition(geometry_container[ZONE_0], solver_container[ZONE_0], config_container[ZONE_0], ExtIter); - - /*--- Apply a Wind Gust ---*/ - - if (config_container[ZONE_0]->GetWind_Gust()){ - //SetWind_GustField(config_container[ZONE_0],geometry_container[ZONE_0],solver_container[ZONE_0]); - } - - /*--- Set the value of the internal iteration ---*/ - - IntIter = ExtIter; - - if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) IntIter = 0; - - /*--- Update global parameters ---*/ - - if (config_container[ZONE_0]->GetKind_Solver() == EULER){ - config_container[ZONE_0]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - } - if (config_container[ZONE_0]->GetKind_Solver() == NAVIER_STOKES){ - config_container[ZONE_0]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - } - if (config_container[ZONE_0]->GetKind_Solver() == RANS){ - config_container[ZONE_0]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - } - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[ZONE_0][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, ZONE_0); - - if (config_container[ZONE_0]->GetKind_Solver() == RANS) { - - /*--- Solve the turbulence model ---*/ - - config_container[ZONE_0]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[ZONE_0][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, ZONE_0); - - /*--- Solve transition model ---*/ - - if (config_container[ZONE_0]->GetKind_Trans_Model() == LM) { - config_container[ZONE_0]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[ZONE_0][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, ZONE_0); - } - - } - - /*--- Dual time stepping strategy ---*/ - - if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - for(IntIter = 1; IntIter < config_container[ZONE_0]->GetUnst_nIntIter(); IntIter++) { - - /*--- Write the convergence history (only screen output) ---*/ - - output->SetConvHistory_Body(NULL, geometry_container, solver_container, config_container, integration_container, true, 0.0, ZONE_0); - - /*--- Set the value of the internal iteration ---*/ - - config_container[ZONE_0]->SetIntIter(IntIter); - - /*--- Pseudo-timestepping for the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes equations ---*/ - - if (config_container[ZONE_0]->GetKind_Solver() == EULER) - config_container[ZONE_0]->SetGlobalParam(EULER, RUNTIME_FLOW_SYS, ExtIter); - if (config_container[ZONE_0]->GetKind_Solver() == NAVIER_STOKES) - config_container[ZONE_0]->SetGlobalParam(NAVIER_STOKES, RUNTIME_FLOW_SYS, ExtIter); - if (config_container[ZONE_0]->GetKind_Solver() == RANS) - config_container[ZONE_0]->SetGlobalParam(RANS, RUNTIME_FLOW_SYS, ExtIter); - - /*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/ - - integration_container[ZONE_0][FLOW_SOL]->MultiGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FLOW_SYS, IntIter, ZONE_0); - - /*--- Pseudo-timestepping the turbulence model ---*/ - - if (config_container[ZONE_0]->GetKind_Solver() == RANS) { - - /*--- Solve the turbulence model ---*/ - - config_container[ZONE_0]->SetGlobalParam(RANS, RUNTIME_TURB_SYS, ExtIter); - integration_container[ZONE_0][TURB_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TURB_SYS, IntIter, ZONE_0); - - /*--- Solve transition model ---*/ - - if (config_container[ZONE_0]->GetKind_Trans_Model() == LM) { - config_container[ZONE_0]->SetGlobalParam(RANS, RUNTIME_TRANS_SYS, ExtIter); - integration_container[ZONE_0][TRANS_SOL]->SingleGrid_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_TRANS_SYS, IntIter, ZONE_0); - } - } - - if (integration_container[ZONE_0][FLOW_SOL]->GetConvergence()) break; - - } - - } - - /*-------------------- Structural iteration -----------------------*/ - - /*--- Set the initial condition at the first iteration ---*/ - - // solver_container[ZONE_1][MESH_0][FEA_SOL]->SetInitialCondition(geometry_container[ZONE_1], solver_container[ZONE_1], config_container[ZONE_1], ExtIter); - - /*--- Set the value of the internal iteration ---*/ - - IntIter_Struct = ExtIter; - - /*--- FEA equations ---*/ - - config_container[ZONE_1]->SetGlobalParam(LINEAR_ELASTICITY, RUNTIME_FEA_SYS, ExtIter); - - /*--- Update loads for the FEA model ---*/ - - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetFEA_Load(solver_container[ZONE_0], geometry_container[ZONE_1], geometry_container[ZONE_0], - config_container[ZONE_1], config_container[ZONE_0], numerics_container[ZONE_1][MESH_0][SolContainer_Position_fea][FEA_TERM]); - - /*--- Run the iteration ---*/ - - integration_container[ZONE_1][FEA_SOL]->Structural_Iteration(geometry_container, solver_container, numerics_container, - config_container, RUNTIME_FEA_SYS, IntIter_Struct, ZONE_1); - - /*-------------------- Aitken's relaxation ------------------------*/ - - solver_container[ZONE_1][MESH_0][FEA_SOL]->ComputeAitken_Coefficient(geometry_container[ZONE_1], config_container[ZONE_1], - solver_container[ZONE_1], iFSIIter); - - - solver_container[ZONE_1][MESH_0][FEA_SOL]->SetAitken_Relaxation(geometry_container[ZONE_1], config_container[ZONE_1], - solver_container[ZONE_1]); - - /*-------------------- Check convergence --------------------------*/ - - integration_container[ZONE_1][FEA_SOL]->Convergence_Monitoring_FSI(geometry_container[ZONE_1][MESH_0], config_container[ZONE_1], - solver_container[ZONE_1][MESH_0][FEA_SOL], iFSIIter); - - if (integration_container[ZONE_1][FEA_SOL]->GetConvergence_FSI()) break; - - /*--------------------- Update iFSIIter ---------------------------*/ - - iFSIIter++; - - } - - if ((config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config_container[ZONE_0]->GetUnsteady_Simulation() == DT_STEPPING_2ND)) { - - /*-------------------- Update fluid solver ------------------------*/ - - /*--- Update dual time solver on all mesh levels ---*/ - - for (iMesh = 0; iMesh <= config_container[ZONE_0]->GetnMGLevels(); iMesh++) { - integration_container[ZONE_0][FLOW_SOL]->SetDualTime_Solver(geometry_container[ZONE_0][iMesh], solver_container[ZONE_0][iMesh][FLOW_SOL], config_container[ZONE_0], iMesh); - integration_container[ZONE_0][FLOW_SOL]->SetConvergence(false); - } - - /*--- Update dual time solver for the turbulence model ---*/ - - if (config_container[ZONE_0]->GetKind_Solver() == RANS) { - integration_container[ZONE_0][TURB_SOL]->SetDualTime_Solver(geometry_container[ZONE_0][MESH_0], solver_container[ZONE_0][MESH_0][TURB_SOL], config_container[ZONE_0], MESH_0); - integration_container[ZONE_0][TURB_SOL]->SetConvergence(false); - } - - /*--- Update dual time solver for the transition model ---*/ - - if (config_container[ZONE_0]->GetKind_Trans_Model() == LM) { - integration_container[ZONE_0][TRANS_SOL]->SetDualTime_Solver(geometry_container[ZONE_0][MESH_0], solver_container[ZONE_0][MESH_0][TRANS_SOL], config_container[ZONE_0], MESH_0); - integration_container[ZONE_0][TRANS_SOL]->SetConvergence(false); - } - - /*--- Verify convergence criteria (based on total time) ---*/ - - Physical_dt = config_container[ZONE_0]->GetDelta_UnstTime(); - Physical_t = (ExtIter+1)*Physical_dt; - if (Physical_t >= config_container[ZONE_0]->GetTotal_UnstTime()) - integration_container[ZONE_0][FLOW_SOL]->SetConvergence(true); - - } - - /*----------------- Update structural solver ----------------------*/ - - integration_container[ZONE_1][FEA_SOL]->SetStructural_Solver(geometry_container[ZONE_1][MESH_0], solver_container[ZONE_1][MESH_0][FEA_SOL], config_container[ZONE_1], MESH_0); - - /*-----------------------------------------------------------------*/ - /*--------------- Update convergence parameter --------------------*/ - /*-----------------------------------------------------------------*/ - - integration_container[ZONE_1][FEA_SOL]->SetConvergence_FSI(false); - - } void SetGrid_Movement(CGeometry **geometry_container, CSurfaceMovement *surface_movement, diff --git a/SU2_CFD/src/output_fieldview.cpp b/SU2_CFD/src/output_fieldview.cpp index 5f0ac60e191..f612a319e19 100644 --- a/SU2_CFD/src/output_fieldview.cpp +++ b/SU2_CFD/src/output_fieldview.cpp @@ -51,7 +51,7 @@ void COutput::SetFieldViewASCII(CConfig *config, CGeometry *geometry, unsigned s if (adjoint) filename = config->GetAdj_FileName(); else filename = config->GetFlow_FileName(); - if (Kind_Solver == LINEAR_ELASTICITY) + if (Kind_Solver == FEM_ELASTICITY) filename = config->GetStructure_FileName().c_str(); if (Kind_Solver == WAVE_EQUATION) @@ -493,7 +493,7 @@ void COutput::SetFieldViewBinary(CConfig *config, CGeometry *geometry, unsigned if (adjoint) filename = config->GetAdj_FileName(); else filename = config->GetFlow_FileName(); - if (Kind_Solver == LINEAR_ELASTICITY) + if (Kind_Solver == FEM_ELASTICITY) filename = config->GetStructure_FileName().c_str(); if (Kind_Solver == WAVE_EQUATION) diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index 3419355c004..0c756c70cb4 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -66,7 +66,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s filename = config->GetFlow_FileName(); } - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) { + if (Kind_Solver == FEM_ELASTICITY) { if (surf_sol) filename = config->GetSurfStructure_FileName().c_str(); else @@ -367,7 +367,7 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s for (iVar = 0; iVar < nVar_Consv; iVar++) { - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) + if (Kind_Solver == FEM_ELASTICITY) Paraview_File << "\nSCALARS Displacement_" << iVar+1 << " float 1\n"; else Paraview_File << "\nSCALARS Conservative_" << iVar+1 << " float 1\n"; @@ -723,91 +723,6 @@ void COutput::SetParaview_ASCII(CConfig *config, CGeometry *geometry, unsigned s } } - if (Kind_Solver == LINEAR_ELASTICITY) { - - Paraview_File << "\nSCALARS Sxx float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Syy float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Sxy float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - if (nDim == 3){ - - Paraview_File << "\nSCALARS Szz float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Sxz float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Syz float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - } - - Paraview_File << "\nSCALARS Von_Mises_Stress float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (surf_sol) { - if (LocalIndex[iPoint+1] != 0) { - /*--- Loop over the vars/residuals and write the values to file ---*/ - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } else { - /*--- Loop over the vars/residuals and write the values to file ---*/ - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - } - - if (Kind_Solver == FEM_ELASTICITY) { if (config->GetDynamic_Analysis() == DYNAMIC) { @@ -1014,7 +929,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign } } - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)){ + if (Kind_Solver == FEM_ELASTICITY){ if (surf_sol) filename = config->GetSurfStructure_FileName().c_str(); else @@ -1319,7 +1234,7 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign for (iVar = 0; iVar < nVar_Consv; iVar++) { - if ((Kind_Solver == LINEAR_ELASTICITY) || (Kind_Solver == FEM_ELASTICITY)) + if (Kind_Solver == FEM_ELASTICITY) Paraview_File << "\nSCALARS Displacement_" << iVar+1 << " float 1\n"; else Paraview_File << "\nSCALARS Conservative_" << iVar+1 << " float 1\n"; @@ -1635,92 +1550,6 @@ void COutput::SetParaview_MeshASCII(CConfig *config, CGeometry *geometry, unsign VarCounter++; } - - - if (Kind_Solver == LINEAR_ELASTICITY) { - - Paraview_File << "\nSCALARS Sxx float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Syy float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Sxy float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - if (nDim == 3){ - - Paraview_File << "\nSCALARS Szz float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Sxz float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - Paraview_File << "\nSCALARS Syz float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (! surf_sol) { - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - } - - Paraview_File << "\nSCALARS Von_Mises_Stress float 1\n"; - Paraview_File << "LOOKUP_TABLE default\n"; - - for (iPoint = 0; iPoint < nGlobal_Poin; iPoint++) { - if (surf_sol) { - if (LocalIndex[iPoint+1] != 0) { - /*--- Loop over the vars/residuals and write the values to file ---*/ - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } else { - /*--- Loop over the vars/residuals and write the values to file ---*/ - Paraview_File << scientific << Data[VarCounter][iPoint] << "\t"; - } - } - VarCounter++; - - } - if (Kind_Solver == FEM_ELASTICITY) { diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 4afda99b95a..37b80d84c53 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -1912,7 +1912,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv case POISSON_EQUATION: FirstIndex = POISSON_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case WAVE_EQUATION: FirstIndex = WAVE_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case HEAT_EQUATION: FirstIndex = HEAT_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; - case LINEAR_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case FEM_ELASTICITY: FirstIndex = FEA_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_EULER : case ADJ_NAVIER_STOKES : FirstIndex = ADJFLOW_SOL; SecondIndex = NONE; ThirdIndex = NONE; break; case ADJ_RANS : FirstIndex = ADJFLOW_SOL; if (config->GetFrozen_Visc()) SecondIndex = NONE; else SecondIndex = ADJTURB_SOL; ThirdIndex = NONE; break; @@ -1987,12 +1986,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv ( Kind_Solver == ADJ_RANS )) { iVar_Sens = nVar_Total; nVar_Total += 2; } - - if (Kind_Solver == LINEAR_ELASTICITY) { - iVar_FEA_Stress = nVar_Total; nVar_Total += 3; - if (geometry->GetnDim() == 3) {iVar_FEA_Stress_3D = nVar_Total; nVar_Total += 3;} - iVar_FEA_Extra = nVar_Total; nVar_Total += 2; - } if (Kind_Solver == FEM_ELASTICITY) { /*--- If the analysis is dynamic... ---*/ @@ -3008,68 +3001,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } } - - - /*--- Communicate the Linear elasticity stresses (2D) - Legacy elasticity solver ---*/ - - if (Kind_Solver == LINEAR_ELASTICITY) { - - /*--- Loop over this partition to collect the current variable ---*/ - - jPoint = 0; su2double **Stress; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Check for halos & write only if requested ---*/ - - if (!Local_Halo[iPoint] || Wrt_Halo) { - - /*--- Load buffers with the three grid velocity components. ---*/ - - Stress = solver[FEA_SOL]->node[iPoint]->GetStress(); - /*--- Sigma xx ---*/ - Buffer_Send_Var[jPoint] = Stress[0][0]; - /*--- Sigma yy ---*/ - Buffer_Send_Res[jPoint] = Stress[1][1]; - /*--- Sigma xy ---*/ - Buffer_Send_Vol[jPoint] = Stress[0][1]; - jPoint++; - } - } - - /*--- Gather the data on the master node. ---*/ - -#ifdef HAVE_MPI - SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); -#else - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; -#endif - - /*--- The master node unpacks and sorts this variable by global index ---*/ - - if (rank == MASTER_NODE) { - jPoint = 0; iVar = iVar_FEA_Stress; - for (iProcessor = 0; iProcessor < size; iProcessor++) { - for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { - - /*--- Get global index, then loop over each variable and store ---*/ - - iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; - Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; - Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; - jPoint++; - } - - /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ - - jPoint = (iProcessor+1)*nBuffer_Scalar; - } - } - } /*--- Communicate the FEM elasticity stresses (2D) - New elasticity solver---*/ @@ -3132,68 +3063,6 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv } } - /*--- Communicate the Linear elasticity stresses (3D) - Legacy elasticity solver ---*/ - - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { - - /*--- Loop over this partition to collect the current variable ---*/ - - jPoint = 0; su2double **Stress; - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Check for halos & write only if requested ---*/ - - if (!Local_Halo[iPoint] || Wrt_Halo) { - - /*--- Load buffers with the three grid velocity components. ---*/ - - Stress = solver[FEA_SOL]->node[iPoint]->GetStress(); - /*--- Sigma zz ---*/ - Buffer_Send_Var[jPoint] = Stress[2][2]; - /*--- Sigma xz ---*/ - Buffer_Send_Res[jPoint] = Stress[0][2]; - /*--- Sigma yz ---*/ - Buffer_Send_Vol[jPoint] = Stress[1][2]; - jPoint++; - } - } - - /*--- Gather the data on the master node. ---*/ - -#ifdef HAVE_MPI - SU2_MPI::Gather(Buffer_Send_Var, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Var, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Res, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Res, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_Vol, nBuffer_Scalar, MPI_DOUBLE, Buffer_Recv_Vol, nBuffer_Scalar, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); -#else - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Var[iPoint] = Buffer_Send_Var[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Res[iPoint] = Buffer_Send_Res[iPoint]; - for (iPoint = 0; iPoint < nBuffer_Scalar; iPoint++) Buffer_Recv_Vol[iPoint] = Buffer_Send_Vol[iPoint]; - -#endif - - /*--- The master node unpacks and sorts this variable by global index ---*/ - - if (rank == MASTER_NODE) { - jPoint = 0; iVar = iVar_FEA_Stress_3D; - for (iProcessor = 0; iProcessor < size; iProcessor++) { - for (iPoint = 0; iPoint < Buffer_Recv_nPoint[iProcessor]; iPoint++) { - - /*--- Get global index, then loop over each variable and store ---*/ - - iGlobal_Index = Buffer_Recv_GlobalIndex[jPoint]; - Data[iVar][iGlobal_Index] = Buffer_Recv_Var[jPoint]; - Data[iVar+1][iGlobal_Index] = Buffer_Recv_Res[jPoint]; - Data[iVar+2][iGlobal_Index] = Buffer_Recv_Vol[jPoint]; - jPoint++; - } - - /*--- Adjust jPoint to index of next proc's data in the buffers. ---*/ - - jPoint = (iProcessor+1)*nBuffer_Scalar; - } - } - } - /*--- Communicate the FEM elasticity stresses (3D) - New elasticity solver---*/ if ((Kind_Solver == FEM_ELASTICITY) && (geometry->GetnDim() == 3)) { @@ -3259,7 +3128,7 @@ void COutput::MergeSolution(CConfig *config, CGeometry *geometry, CSolver **solv /*--- Communicate the Linear elasticity ---*/ - if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) { + if ( Kind_Solver == FEM_ELASTICITY ) { /*--- Loop over this partition to collect the current variable ---*/ jPoint = 0; @@ -3670,7 +3539,7 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, } for (iVar = 0; iVar < nVar_Consv; iVar++) { - if (( Kind_Solver == LINEAR_ELASTICITY ) || ( Kind_Solver == FEM_ELASTICITY )) + if ( Kind_Solver == FEM_ELASTICITY ) restart_file << "\t\"Displacement_" << iVar+1<<"\""; else restart_file << "\t\"Conservative_" << iVar+1<<"\""; @@ -3742,14 +3611,6 @@ void COutput::SetRestart(CConfig *config, CGeometry *geometry, CSolver **solver, } } - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 2)) { - restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; - } - - if ((Kind_Solver == LINEAR_ELASTICITY) && (geometry->GetnDim() == 3)) { - restart_file << "\t\"Sxx\"\t\"Syy\"\t\"Sxy\"\t\"Szz\"\t\"Sxz\"\t\"Syz\"\t\"Von_Mises_Stress\"\t\"Flow_Pressure\""; - } - if (Kind_Solver == FEM_ELASTICITY) { if (!dynamic_fem) { if (geometry->GetnDim() == 2) @@ -3943,7 +3804,6 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char rotating_frame_coeff[]= ",\"CMerit\",\"CT\",\"CQ\""; char free_surface_coeff[]= ",\"CFreeSurface\""; char wave_coeff[]= ",\"CWave\""; - char fea_coeff[]= ",\"CFEA\""; char fem_coeff[]= ",\"VM_Stress\""; char adj_coeff[]= ",\"Sens_Geo\",\"Sens_Mach\",\"Sens_AoA\",\"Sens_Press\",\"Sens_Temp\",\"Sens_AoS\",\"Sens_BPress\""; char oneD_outputs[]= ",\"Avg_TotalPress\",\"Avg_Mach\",\"Avg_Temperature\",\"MassFlowRate\",\"FluxAvg_Pressure\",\"FluxAvg_Density\",\"FluxAvg_Velocity\",\"FluxAvg_Enthalpy\""; @@ -3982,7 +3842,7 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char levelset_resid[]= ",\"Res_LevelSet\""; char adj_levelset_resid[]= ",\"Res_AdjLevelSet\""; char wave_resid[]= ",\"Res_Wave[0]\",\"Res_Wave[1]\""; - char fea_resid[]= ",\"Res_FEA\""; +// char fea_resid[]= ",\"Res_FEA\""; char fem_resid[]= ",\"Res_FEM[0]\",\"Res_FEM[1]\",\"Res_FEM[2]\""; char heat_resid[]= ",\"Res_Heat\""; @@ -4044,11 +3904,6 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { ConvHist_file[0] << begin << heat_coeff; ConvHist_file[0] << heat_resid << end; break; - - case LINEAR_ELASTICITY: - ConvHist_file[0] << begin << fea_coeff; - ConvHist_file[0] << fea_resid << end; - break; case FEM_ELASTICITY: ConvHist_file[0] << begin << fem_coeff; @@ -4118,7 +3973,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, char begin[1000], direct_coeff[1000], surface_coeff[1000], aeroelastic_coeff[1000], monitoring_coeff[10000], adjoint_coeff[1000], flow_resid[1000], adj_flow_resid[1000], turb_resid[1000], trans_resid[1000], adj_turb_resid[1000], levelset_resid[1000], adj_levelset_resid[1000], wave_coeff[1000], - heat_coeff[1000], fea_coeff[1000], fem_coeff[1000], wave_resid[1000], heat_resid[1000], fea_resid[1000], + heat_coeff[1000], fem_coeff[1000], wave_resid[1000], heat_resid[1000], //fea_resid[1000], fem_resid[1000], end[1000], oneD_outputs[1000], massflow_outputs[1000], d_direct_coeff[1000]; su2double dummy = 0.0, *Coord; @@ -4148,7 +4003,6 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, bool disc_adj = config[val_iZone]->GetDiscrete_Adjoint(); bool wave = (config[val_iZone]->GetKind_Solver() == WAVE_EQUATION); bool heat = (config[val_iZone]->GetKind_Solver() == HEAT_EQUATION); - bool fea = (config[val_iZone]->GetKind_Solver() == LINEAR_ELASTICITY); bool flow = (config[val_iZone]->GetKind_Solver() == EULER) || (config[val_iZone]->GetKind_Solver() == NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == RANS) || (config[val_iZone]->GetKind_Solver() == ADJ_EULER) || (config[val_iZone]->GetKind_Solver() == ADJ_NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == ADJ_RANS); @@ -4172,7 +4026,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, su2double Total_CLift = 0.0, Total_CDrag = 0.0, Total_CSideForce = 0.0, Total_CMx = 0.0, Total_CMy = 0.0, Total_CMz = 0.0, Total_CEff = 0.0, Total_CEquivArea = 0.0, Total_CNearFieldOF = 0.0, Total_CFx = 0.0, Total_CFy = 0.0, Total_CFz = 0.0, Total_CMerit = 0.0, Total_CT = 0.0, Total_CQ = 0.0, Total_CFreeSurface = 0.0, Total_CWave = 0.0, Total_CHeat = 0.0, Total_CpDiff = 0.0, Total_HeatFluxDiff = 0.0, - Total_CFEA = 0.0, Total_Heat = 0.0, Total_MaxHeat = 0.0, Total_Mdot = 0.0, Total_CFEM = 0.0; + Total_Heat = 0.0, Total_MaxHeat = 0.0, Total_Mdot = 0.0, Total_CFEM = 0.0; su2double OneD_AvgStagPress = 0.0, OneD_AvgMach = 0.0, OneD_AvgTemp = 0.0, OneD_MassFlowRate = 0.0, OneD_FluxAvgPress = 0.0, OneD_FluxAvgDensity = 0.0, OneD_FluxAvgVelocity = 0.0, OneD_FluxAvgEntalpy = 0.0; @@ -4234,7 +4088,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Initialize number of variables ---*/ unsigned short nVar_Flow = 0, nVar_LevelSet = 0, nVar_Turb = 0, - nVar_Trans = 0, nVar_Wave = 0, nVar_Heat = 0, nVar_FEA = 0, + nVar_Trans = 0, nVar_Wave = 0, nVar_Heat = 0, //nVar_FEA = 0, nVar_AdjFlow = 0, nVar_AdjLevelSet = 0, nVar_AdjTurb = 0, nVar_FEM = 0; @@ -4249,7 +4103,6 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, } if (transition) nVar_Trans = 2; if (wave) nVar_Wave = 2; - if (fea) nVar_FEA = nDim; if (heat) nVar_Heat = 1; if (freesurface) nVar_LevelSet = 1; @@ -4275,7 +4128,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, residual_transition = new su2double[nVar_Trans]; residual_levelset = new su2double[nVar_LevelSet]; residual_wave = new su2double[nVar_Wave]; - residual_fea = new su2double[nVar_FEA]; +// residual_fea = new su2double[nVar_FEA]; residual_heat = new su2double[nVar_Heat]; residual_fem = new su2double[nVar_FEM]; @@ -4561,21 +4414,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, } break; - - case LINEAR_ELASTICITY: - - /*--- FEA coefficients ---*/ - - Total_CFEA = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetTotal_CFEA(); - - /*--- Plasma Residuals ---*/ - - for (iVar = 0; iVar < nVar_FEA; iVar++) { - residual_fea[iVar] = solver_container[val_iZone][FinestMesh][FEA_SOL]->GetRes_RMS(iVar); - } - - break; - + case FEM_ELASTICITY: /*--- FEM coefficients -- As of now, this is the Von Mises Stress ---*/ @@ -4819,13 +4658,6 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, break; - case LINEAR_ELASTICITY: - - SPRINTF (direct_coeff, ", %12.10f", Total_CFEA); - SPRINTF (fea_resid, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f", log10 (residual_fea[0]), dummy, dummy, dummy, dummy ); - - break; - case FEM_ELASTICITY: SPRINTF (direct_coeff, ", %12.10f", Total_CFEM); @@ -5169,14 +5001,6 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout << " Res[Heat]" << " CHeat(Total)"<< endl; break; - case LINEAR_ELASTICITY : - if (!Unsteady) cout << endl << " Iter" << " Time(s)"; - else cout << endl << " IntIter" << " ExtIter"; - - if (nDim == 2) cout << " Res[Displx]" << " Res[Disply]" << " CFEA(Total)"<< endl; - if (nDim == 3) cout << " Res[Displx]" << " Res[Disply]" << " Res[Displz]" << " CFEA(Total)"<< endl; - break; - case FEM_ELASTICITY : if (!nonlinear_analysis) cout << endl << " Iter" << " Time(s)"; else cout << endl << " IntIter" << " ExtIter"; @@ -5498,25 +5322,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout.width(14); cout << Total_CHeat; cout << endl; break; - - case LINEAR_ELASTICITY: - - if (!DualTime_Iteration) { - ConvHist_file[0] << begin << fea_coeff << fea_resid << end; - ConvHist_file[0].flush(); - } - - cout.precision(6); - cout.setf(ios::fixed, ios::floatfield); - cout.width(15); cout << log10(residual_fea[0]); - cout.width(15); cout << log10(residual_fea[1]); - if (nDim == 3) { cout.width(15); cout << log10(residual_fea[2]); } - cout.precision(4); - cout.setf(ios::scientific, ios::floatfield); - cout.width(14); cout << Total_CFEA; - cout << endl; - break; - + case FEM_ELASTICITY: if (!DualTime_Iteration) { diff --git a/SU2_CFD/src/output_tecplot.cpp b/SU2_CFD/src/output_tecplot.cpp index 4e67b836011..6f93fa9bdac 100644 --- a/SU2_CFD/src/output_tecplot.cpp +++ b/SU2_CFD/src/output_tecplot.cpp @@ -59,7 +59,7 @@ void COutput::SetTecplotASCII(CConfig *config, CGeometry *geometry, CSolver **so else filename = config->GetFlow_FileName(); } - if (Kind_Solver == LINEAR_ELASTICITY) { + if (Kind_Solver == FEM_ELASTICITY) { if (surf_sol) filename = config->GetSurfStructure_FileName().c_str(); else filename = config->GetStructure_FileName().c_str(); } @@ -213,8 +213,8 @@ void COutput::SetTecplotASCII(CConfig *config, CGeometry *geometry, CSolver **so } } - if (Kind_Solver == LINEAR_ELASTICITY) { - Tecplot_File << ", \"Von_Mises_Stress\", \"Flow_Pressure\""; + if (Kind_Solver == FEM_ELASTICITY) { + Tecplot_File << ", \"Von_Mises_Stress\""; } if (config->GetExtraOutput()) { diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_fem_elasticity.cpp index 3a76a7b9589..5553163a133 100644 --- a/SU2_CFD/src/solver_fem_elasticity.cpp +++ b/SU2_CFD/src/solver_fem_elasticity.cpp @@ -82,7 +82,7 @@ CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *confi unsigned long iPoint; unsigned short iVar, jVar, iDim, jDim; - unsigned short iTerm, iKind; + unsigned short iTerm; unsigned short iZone = config->GetiZone(); unsigned short nZone = geometry->GetnZone(); From a588aa32316e0a5d86974583b78ff36e5905664f Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 14:06:30 +0000 Subject: [PATCH 231/269] Removed old *direct_elasticity files. --- SU2_CFD/src/numerics_direct_elasticity.cpp | 1426 ----------- SU2_CFD/src/solver_direct_elasticity.cpp | 2584 -------------------- SU2_CFD/src/variable_direct_elasticity.cpp | 248 -- 3 files changed, 4258 deletions(-) delete mode 100644 SU2_CFD/src/numerics_direct_elasticity.cpp delete mode 100644 SU2_CFD/src/solver_direct_elasticity.cpp delete mode 100644 SU2_CFD/src/variable_direct_elasticity.cpp diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp deleted file mode 100644 index 29ec6c25ff6..00000000000 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ /dev/null @@ -1,1426 +0,0 @@ -/*! - * \file numerics_direct_elasticity.cpp - * \brief This file contains the FEM discretization for structural problems. - * \author F. Palacios, R. Sanchez - * \version 4.1.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2016 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/numerics_structure.hpp" -#include - -CGalerkin_FEA::CGalerkin_FEA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config) : CNumerics(val_nDim, val_nVar, config) { - - E = config->GetElasticyMod(); - Nu = config->GetPoissonRatio(); - Rho_s = config->GetMaterialDensity(); - Mu = E / (2.0*(1.0 + Nu)); - Lambda = Nu*E/((1.0+Nu)*(1.0-2.0*Nu)); - -} - -CGalerkin_FEA::~CGalerkin_FEA(void) { } - - -void CGalerkin_FEA::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]) { - - if (nDim == 2){ - - su2double a[3], Length_Elem, GaussPoint[2]; - unsigned short iDim, iGauss, nGP=2; - su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; - } - - PX_1=tn_e[0]; - PY_1=tn_e[1]; - PX_2=tn_e[2]; - PY_2=tn_e[3]; - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Jacobian = Length_Elem/2; - Weight = 1.0; - - GaussPoint[0] = -0.577350269189626; - GaussPoint[1] = 0.577350269189626; - - for (iGauss=0; iGauss < nGP; iGauss++){ - - N1 = 1 - GaussPoint[iGauss]; - N2 = 1 + GaussPoint[iGauss]; - - Fnodal[0] += 0.25*Jacobian*Weight*N1*(N1*PX_1+N2*PX_2); - Fnodal[1] += 0.25*Jacobian*Weight*N1*(N1*PY_1+N2*PY_2); - Fnodal[2] += 0.25*Jacobian*Weight*N2*(N1*PX_1+N2*PX_2); - Fnodal[3] += 0.25*Jacobian*Weight*N2*(N1*PY_1+N2*PY_2); - - } - - } - - else if (nDim == 3){ - cout << "Three-dimensional case has not been implemented yet" << endl; - } - -} - -void CGalerkin_FEA::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { - - if (nDim == 2) { - - su2double a[3] = {0.0,0.0,0.0}, Length_Elem; - su2double Normal_Elem[2] = {0.0,0.0}, Normal_Elem_Unit[2] = {0.0,0.0}; - su2double GaussPoint[2] = {0.0,0.0}; - su2double TauElem_0[3] = {0.0,0.0,0.0}, TauElem_1[3] = {0.0,0.0,0.0}; - su2double N1, N2, Weight, Jacobian, PX_1, PX_2, PY_1, PY_2; - unsigned short iDim, jDim, iGauss, nGP=2; - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = CoordCorners[0][iDim]-CoordCorners[1][iDim]; - } - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); - - Normal_Elem_Unit[0] = Normal_Elem[0]/Length_Elem; - Normal_Elem_Unit[1] = Normal_Elem[1]/Length_Elem; - - GaussPoint[0] = -0.577350269189626; - GaussPoint[1] = 0.577350269189626; - - Weight = 1.0; - Jacobian = Length_Elem/2; - - for (iDim = 0; iDim < nDim; iDim++) { - TauElem_0[iDim] = 0.0; - TauElem_1[iDim] = 0.0; - for (jDim = 0; jDim < nDim; jDim++) { - TauElem_0[iDim] += Tau_0[iDim][jDim]*Normal_Elem_Unit[jDim]; - TauElem_1[iDim] += Tau_1[iDim][jDim]*Normal_Elem_Unit[jDim]; - } - } - - PX_1=TauElem_0[0]; - PY_1=TauElem_0[1]; - PX_2=TauElem_1[0]; - PY_2=TauElem_1[1]; - - FviscNodal[0]=0.0; - FviscNodal[1]=0.0; - FviscNodal[2]=0.0; - FviscNodal[3]=0.0; - - for (iGauss=0; iGauss < nGP; iGauss++){ - - N1 = 1 - GaussPoint[iGauss]; - N2 = 1 + GaussPoint[iGauss]; - - FviscNodal[0] += 0.25*Jacobian*Weight*N1*(N1*PX_1+N2*PX_2); - FviscNodal[1] += 0.25*Jacobian*Weight*N1*(N1*PY_1+N2*PY_2); - - FviscNodal[2] += 0.25*Jacobian*Weight*N2*(N1*PX_1+N2*PX_2); - FviscNodal[3] += 0.25*Jacobian*Weight*N2*(N1*PY_1+N2*PY_2); - - } - - } else if (nDim == 3){ - cout << "Three-dimensional case has not been implemented yet" << endl; - } - -} - -su2double CGalerkin_FEA::ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { - - int i, j, k; - su2double c0, c1, xsj; - su2double xs[3][3], ad[3][3]; - - /*--- Shape functions ---*/ - - DShapeFunction[0][3] = Xi; - DShapeFunction[1][3] = Eta; - DShapeFunction[2][3] = 1-Xi-Eta; - - /*--- dN/d xi, dN/d eta, dN/d mu ---*/ - - DShapeFunction[0][0] = 1.0; DShapeFunction[0][1] = 0.0; - DShapeFunction[1][0] = 0.0; DShapeFunction[1][1] = 1.0; - DShapeFunction[2][0] = -1.0; DShapeFunction[2][1] = -1.0; - - /*--- Jacobian transformation ---*/ - - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { - xs[i][j] = 0.0; - for (k = 0; k < 3; k++) { - xs[i][j] = xs[i][j]+CoordCorners[k][j]*DShapeFunction[k][i]; - } - } - } - - /*--- Adjoint to Jacobian ---*/ - - ad[0][0] = xs[1][1]; - ad[0][1] = -xs[0][1]; - ad[1][0] = -xs[1][0]; - ad[1][1] = xs[0][0]; - - /*--- Determinant of Jacobian ---*/ - - xsj = ad[0][0]*ad[1][1]-ad[0][1]*ad[1][0]; - - /*--- Jacobian inverse ---*/ - - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { - xs[i][j] = ad[i][j]/xsj; - } - } - - /*--- Derivatives with repect to global coordinates ---*/ - - for (k = 0; k < 3; k++) { - c0 = xs[0][0]*DShapeFunction[k][0]+xs[0][1]*DShapeFunction[k][1]; // dN/dx - c1 = xs[1][0]*DShapeFunction[k][0]+xs[1][1]*DShapeFunction[k][1]; // dN/dy - DShapeFunction[k][0] = c0; // store dN/dx instead of dN/d xi - DShapeFunction[k][1] = c1; // store dN/dy instead of dN/d eta - } - - return xsj; - -} - -su2double CGalerkin_FEA::ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { - - int i, j, k; - su2double c0, c1, xsj; - su2double xs[3][3], ad[3][3]; - - /*--- Shape functions ---*/ - - DShapeFunction[0][3] = 0.25*(1.0-Xi)*(1.0-Eta); - DShapeFunction[1][3] = 0.25*(1.0+Xi)*(1.0-Eta); - DShapeFunction[2][3] = 0.25*(1.0+Xi)*(1.0+Eta); - DShapeFunction[3][3] = 0.25*(1.0-Xi)*(1.0+Eta); - - /*--- dN/d xi, dN/d eta, dN/d mu ---*/ - - DShapeFunction[0][0] = -0.25*(1.0-Eta); DShapeFunction[0][1] = -0.25*(1.0-Xi); - DShapeFunction[1][0] = 0.25*(1.0-Eta); DShapeFunction[1][1] = -0.25*(1.0+Xi); - DShapeFunction[2][0] = 0.25*(1.0+Eta); DShapeFunction[2][1] = 0.25*(1.0+Xi); - DShapeFunction[3][0] = -0.25*(1.0+Eta); DShapeFunction[3][1] = 0.25*(1.0-Xi); - - /*--- Jacobian transformation ---*/ - - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { - xs[i][j] = 0.0; - for (k = 0; k < 4; k++) { - xs[i][j] = xs[i][j]+CoordCorners[k][j]*DShapeFunction[k][i]; - } - } - } - - /*--- Adjoint to Jacobian ---*/ - - ad[0][0] = xs[1][1]; - ad[0][1] = -xs[0][1]; - ad[1][0] = -xs[1][0]; - ad[1][1] = xs[0][0]; - - /*--- Determinant of Jacobian ---*/ - - xsj = ad[0][0]*ad[1][1]-ad[0][1]*ad[1][0]; - - /*--- Jacobian inverse ---*/ - - for (i = 0; i < 2; i++) { - for (j = 0; j < 2; j++) { - xs[i][j] = ad[i][j]/xsj; - } - } - - /*--- Derivatives with repect to global coordinates ---*/ - - for (k = 0; k < 4; k++) { - c0 = xs[0][0]*DShapeFunction[k][0]+xs[0][1]*DShapeFunction[k][1]; // dN/dx - c1 = xs[1][0]*DShapeFunction[k][0]+xs[1][1]*DShapeFunction[k][1]; // dN/dy - DShapeFunction[k][0] = c0; // store dN/dx instead of dN/d xi - DShapeFunction[k][1] = c1; // store dN/dy instead of dN/d eta - } - - return xsj; - -} - -su2double CGalerkin_FEA::ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { - - int i, j, k; - su2double c0, c1, c2, xsj; - su2double xs[3][3], ad[3][3]; - - /*--- Shape functions ---*/ - - DShapeFunction[0][3] = Xi; - DShapeFunction[1][3] = Eta; - DShapeFunction[2][3] = 1.0 - Xi - Eta - Zeta; - DShapeFunction[3][3] = Zeta; - - /*--- dN/d xi, dN/d eta, dN/d mu ---*/ - - DShapeFunction[0][0] = 1.0; DShapeFunction[0][1] = 0.0; DShapeFunction[0][2] = 0.0; - DShapeFunction[1][0] = 0.0; DShapeFunction[1][1] = 1.0; DShapeFunction[1][2] = 0.0; - DShapeFunction[2][0] = -1.0; DShapeFunction[2][1] = -1.0; DShapeFunction[2][2] = -1.0; - DShapeFunction[3][0] = 0.0; DShapeFunction[3][1] = 0.0; DShapeFunction[3][2] = 1.0; - - /*--- Jacobian transformation ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = 0.0; - for (k = 0; k < 4; k++) { - xs[i][j] = xs[i][j]+CoordCorners[k][j]*DShapeFunction[k][i]; - } - } - } - - /*--- Adjoint to Jacobian ---*/ - - ad[0][0] = xs[1][1]*xs[2][2]-xs[1][2]*xs[2][1]; - ad[0][1] = xs[0][2]*xs[2][1]-xs[0][1]*xs[2][2]; - ad[0][2] = xs[0][1]*xs[1][2]-xs[0][2]*xs[1][1]; - ad[1][0] = xs[1][2]*xs[2][0]-xs[1][0]*xs[2][2]; - ad[1][1] = xs[0][0]*xs[2][2]-xs[0][2]*xs[2][0]; - ad[1][2] = xs[0][2]*xs[1][0]-xs[0][0]*xs[1][2]; - ad[2][0] = xs[1][0]*xs[2][1]-xs[1][1]*xs[2][0]; - ad[2][1] = xs[0][1]*xs[2][0]-xs[0][0]*xs[2][1]; - ad[2][2] = xs[0][0]*xs[1][1]-xs[0][1]*xs[1][0]; - - /*--- Determinant of Jacobian ---*/ - - xsj = xs[0][0]*ad[0][0]+xs[0][1]*ad[1][0]+xs[0][2]*ad[2][0]; - - /*--- Jacobian inverse ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = ad[i][j]/xsj; - } - } - - /*--- Derivatives with repect to global coordinates ---*/ - - for (k = 0; k < 4; k++) { - c0 = xs[0][0]*DShapeFunction[k][0]+xs[0][1]*DShapeFunction[k][1]+xs[0][2]*DShapeFunction[k][2]; // dN/dx - c1 = xs[1][0]*DShapeFunction[k][0]+xs[1][1]*DShapeFunction[k][1]+xs[1][2]*DShapeFunction[k][2]; // dN/dy - c2 = xs[2][0]*DShapeFunction[k][0]+xs[2][1]*DShapeFunction[k][1]+xs[2][2]*DShapeFunction[k][2]; // dN/dz - DShapeFunction[k][0] = c0; // store dN/dx instead of dN/d xi - DShapeFunction[k][1] = c1; // store dN/dy instead of dN/d eta - DShapeFunction[k][2] = c2; // store dN/dz instead of dN/d mu - } - - return xsj; - -} - -su2double CGalerkin_FEA::ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { - - int i, j, k; - su2double c0, c1, c2, xsj; - su2double xs[3][3], ad[3][3]; - - /*--- Shape functions ---*/ - - su2double Den = 4.0*(1.0 - Zeta); - - DShapeFunction[0][3] = (-Xi+Eta+Zeta-1.0)*(-Xi-Eta+Zeta-1.0)/Den; - DShapeFunction[1][3] = (-Xi-Eta+Zeta-1.0)*(Xi-Eta+Zeta-1.0)/Den; - DShapeFunction[2][3] = (Xi+Eta+Zeta-1.0)*(Xi-Eta+Zeta-1.0)/Den; - DShapeFunction[3][3] = (Xi+Eta+Zeta-1.0)*(-Xi+Eta+Zeta-1.0)/Den; - DShapeFunction[4][3] = Zeta; - - /*--- dN/d xi, dN/d eta, dN/d Zeta ---*/ - - DShapeFunction[0][0] = 0.5 + (0.5*Xi)/(1.0 - Zeta); - DShapeFunction[0][1] = (0.5*Eta)/(-1.0 + Zeta); - DShapeFunction[0][2] = (-0.25 - 0.25*Eta*Eta + (0.5 - 0.25*Zeta)*Zeta + 0.25*Xi*Xi)/((-1.0 + Zeta)*(-1.0 + Zeta)); - - DShapeFunction[1][0] = (0.5*Xi)/(-1.0 + Zeta); - DShapeFunction[1][1] = (-0.5 - 0.5*Eta + 0.5*Zeta)/(-1.0 + Zeta); - DShapeFunction[1][2] = (-0.25 + 0.25*Eta*Eta + (0.5 - 0.25*Zeta)*Zeta - 0.25*Xi*Xi)/((-1.0 + Zeta)*(-1.0 + Zeta)); - - DShapeFunction[2][0] = -0.5 + (0.5*Xi)/(1.0 - 1.0*Zeta); - DShapeFunction[2][1] = (0.5*Eta)/(-1.0 + Zeta); - DShapeFunction[2][2] = (-0.25 - 0.25*Eta*Eta + (0.5 - 0.25*Zeta)*Zeta + 0.25*Xi*Xi)/((-1.0 + Zeta)*(-1.0 + Zeta)); - - DShapeFunction[3][0] = (0.5*Xi)/(-1.0 + Zeta); - DShapeFunction[3][1] = (0.5 - 0.5*Eta - 0.5*Zeta)/(-1.0 + Zeta); - DShapeFunction[3][2] = (-0.25 + 0.25*Eta*Eta + (0.5 - 0.25*Zeta)*Zeta - 0.25*Xi*Xi)/((-1.0 + Zeta)*(-1.0 + Zeta)); - - DShapeFunction[4][0] = 0.0; - DShapeFunction[4][1] = 0.0; - DShapeFunction[4][2] = 1.0; - - /*--- Jacobian transformation ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = 0.0; - for (k = 0; k < 5; k++) { - xs[i][j] = xs[i][j]+CoordCorners[k][j]*DShapeFunction[k][i]; - } - } - } - - /*--- Adjoint to Jacobian ---*/ - - ad[0][0] = xs[1][1]*xs[2][2]-xs[1][2]*xs[2][1]; - ad[0][1] = xs[0][2]*xs[2][1]-xs[0][1]*xs[2][2]; - ad[0][2] = xs[0][1]*xs[1][2]-xs[0][2]*xs[1][1]; - ad[1][0] = xs[1][2]*xs[2][0]-xs[1][0]*xs[2][2]; - ad[1][1] = xs[0][0]*xs[2][2]-xs[0][2]*xs[2][0]; - ad[1][2] = xs[0][2]*xs[1][0]-xs[0][0]*xs[1][2]; - ad[2][0] = xs[1][0]*xs[2][1]-xs[1][1]*xs[2][0]; - ad[2][1] = xs[0][1]*xs[2][0]-xs[0][0]*xs[2][1]; - ad[2][2] = xs[0][0]*xs[1][1]-xs[0][1]*xs[1][0]; - - /*--- Determinant of Jacobian ---*/ - - xsj = xs[0][0]*ad[0][0]+xs[0][1]*ad[1][0]+xs[0][2]*ad[2][0]; - - /*--- Jacobian inverse ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = ad[i][j]/xsj; - } - } - - /*--- Derivatives with repect to global coordinates ---*/ - - for (k = 0; k < 5; k++) { - c0 = xs[0][0]*DShapeFunction[k][0]+xs[0][1]*DShapeFunction[k][1]+xs[0][2]*DShapeFunction[k][2]; // dN/dx - c1 = xs[1][0]*DShapeFunction[k][0]+xs[1][1]*DShapeFunction[k][1]+xs[1][2]*DShapeFunction[k][2]; // dN/dy - c2 = xs[2][0]*DShapeFunction[k][0]+xs[2][1]*DShapeFunction[k][1]+xs[2][2]*DShapeFunction[k][2]; // dN/dz - DShapeFunction[k][0] = c0; // store dN/dx instead of dN/d xi - DShapeFunction[k][1] = c1; // store dN/dy instead of dN/d eta - DShapeFunction[k][2] = c2; // store dN/dz instead of dN/d Zeta - } - - return xsj; - -} - -su2double CGalerkin_FEA::ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { - - int i, j, k; - su2double c0, c1, c2, xsj; - su2double xs[3][3], ad[3][3]; - - /*--- Shape functions ---*/ - - DShapeFunction[0][3] = 0.5*Eta*(1.0-Xi); - DShapeFunction[1][3] = 0.5*Zeta*(1.0-Xi); - DShapeFunction[2][3] = 0.5*(1.0-Eta-Zeta)*(1.0-Xi); - DShapeFunction[3][3] = 0.5*Eta*(Xi+1.0); - DShapeFunction[4][3] = 0.5*Zeta*(Xi+1.0); - DShapeFunction[5][3] = 0.5*(1.0-Eta-Zeta)*(Xi+1.0); - - /*--- dN/d Xi, dN/d Eta, dN/d Zeta ---*/ - - DShapeFunction[0][0] = -0.5*Eta; DShapeFunction[0][1] = 0.5*(1.0-Xi); DShapeFunction[0][2] = 0.0; - DShapeFunction[1][0] = -0.5*Zeta; DShapeFunction[1][1] = 0.0; DShapeFunction[1][2] = 0.5*(1.0-Xi); - DShapeFunction[2][0] = -0.5*(1.0-Eta-Zeta); DShapeFunction[2][1] = -0.5*(1.0-Xi); DShapeFunction[2][2] = -0.5*(1.0-Xi); - DShapeFunction[3][0] = 0.5*Eta; DShapeFunction[3][1] = 0.5*(Xi+1.0); DShapeFunction[3][2] = 0.0; - DShapeFunction[4][0] = 0.5*Zeta; DShapeFunction[4][1] = 0.0; DShapeFunction[4][2] = 0.5*(Xi+1.0); - DShapeFunction[5][0] = 0.5*(1.0-Eta-Zeta); DShapeFunction[5][1] = -0.5*(Xi+1.0); DShapeFunction[5][2] = -0.5*(Xi+1.0); - - /*--- Jacobian transformation ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = 0.0; - for (k = 0; k < 6; k++) { - xs[i][j] = xs[i][j]+CoordCorners[k][j]*DShapeFunction[k][i]; - } - } - } - - /*--- Adjoint to Jacobian ---*/ - - ad[0][0] = xs[1][1]*xs[2][2]-xs[1][2]*xs[2][1]; - ad[0][1] = xs[0][2]*xs[2][1]-xs[0][1]*xs[2][2]; - ad[0][2] = xs[0][1]*xs[1][2]-xs[0][2]*xs[1][1]; - ad[1][0] = xs[1][2]*xs[2][0]-xs[1][0]*xs[2][2]; - ad[1][1] = xs[0][0]*xs[2][2]-xs[0][2]*xs[2][0]; - ad[1][2] = xs[0][2]*xs[1][0]-xs[0][0]*xs[1][2]; - ad[2][0] = xs[1][0]*xs[2][1]-xs[1][1]*xs[2][0]; - ad[2][1] = xs[0][1]*xs[2][0]-xs[0][0]*xs[2][1]; - ad[2][2] = xs[0][0]*xs[1][1]-xs[0][1]*xs[1][0]; - - /*--- Determinant of Jacobian ---*/ - - xsj = xs[0][0]*ad[0][0]+xs[0][1]*ad[1][0]+xs[0][2]*ad[2][0]; - - /*--- Jacobian inverse ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = ad[i][j]/xsj; - } - } - - /*--- Derivatives with repect to global coordinates ---*/ - - for (k = 0; k < 6; k++) { - c0 = xs[0][0]*DShapeFunction[k][0]+xs[0][1]*DShapeFunction[k][1]+xs[0][2]*DShapeFunction[k][2]; // dN/dx - c1 = xs[1][0]*DShapeFunction[k][0]+xs[1][1]*DShapeFunction[k][1]+xs[1][2]*DShapeFunction[k][2]; // dN/dy - c2 = xs[2][0]*DShapeFunction[k][0]+xs[2][1]*DShapeFunction[k][1]+xs[2][2]*DShapeFunction[k][2]; // dN/dz - DShapeFunction[k][0] = c0; // store dN/dx instead of dN/d xi - DShapeFunction[k][1] = c1; // store dN/dy instead of dN/d eta - DShapeFunction[k][2] = c2; // store dN/dz instead of dN/d Zeta - } - - return xsj; - -} - -su2double CGalerkin_FEA::ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]) { - - int i, j, k; - su2double c0, c1, c2, xsj; - su2double xs[3][3], ad[3][3]; - - - /*--- Shape functions ---*/ - - DShapeFunction[0][3] = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0-Zeta); - DShapeFunction[1][3] = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0-Zeta); - DShapeFunction[2][3] = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0-Zeta); - DShapeFunction[3][3] = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0-Zeta); - DShapeFunction[4][3] = 0.125*(1.0-Xi)*(1.0-Eta)*(1.0+Zeta); - DShapeFunction[5][3] = 0.125*(1.0+Xi)*(1.0-Eta)*(1.0+Zeta); - DShapeFunction[6][3] = 0.125*(1.0+Xi)*(1.0+Eta)*(1.0+Zeta); - DShapeFunction[7][3] = 0.125*(1.0-Xi)*(1.0+Eta)*(1.0+Zeta); - - /*--- dN/d xi ---*/ - - DShapeFunction[0][0] = -0.125*(1.0-Eta)*(1.0-Zeta); - DShapeFunction[1][0] = 0.125*(1.0-Eta)*(1.0-Zeta); - DShapeFunction[2][0] = 0.125*(1.0+Eta)*(1.0-Zeta); - DShapeFunction[3][0] = -0.125*(1.0+Eta)*(1.0-Zeta); - DShapeFunction[4][0] = -0.125*(1.0-Eta)*(1.0+Zeta); - DShapeFunction[5][0] = 0.125*(1.0-Eta)*(1.0+Zeta); - DShapeFunction[6][0] = 0.125*(1.0+Eta)*(1.0+Zeta); - DShapeFunction[7][0] = -0.125*(1.0+Eta)*(1.0+Zeta); - - /*--- dN/d eta ---*/ - - DShapeFunction[0][1] = -0.125*(1.0-Xi)*(1.0-Zeta); - DShapeFunction[1][1] = -0.125*(1.0+Xi)*(1.0-Zeta); - DShapeFunction[2][1] = 0.125*(1.0+Xi)*(1.0-Zeta); - DShapeFunction[3][1] = 0.125*(1.0-Xi)*(1.0-Zeta); - DShapeFunction[4][1] = -0.125*(1.0-Xi)*(1.0+Zeta); - DShapeFunction[5][1] = -0.125*(1.0+Xi)*(1.0+Zeta); - DShapeFunction[6][1] = 0.125*(1.0+Xi)*(1.0+Zeta); - DShapeFunction[7][1] = 0.125*(1.0-Xi)*(1.0+Zeta); - - /*--- dN/d mu ---*/ - - DShapeFunction[0][2] = -0.125*(1.0-Xi)*(1.0-Eta); - DShapeFunction[1][2] = -0.125*(1.0+Xi)*(1.0-Eta); - DShapeFunction[2][2] = -0.125*(1.0+Xi)*(1.0+Eta); - DShapeFunction[3][2] = -0.125*(1.0-Xi)*(1.0+Eta); - DShapeFunction[4][2] = 0.125*(1.0-Xi)*(1.0-Eta); - DShapeFunction[5][2] = 0.125*(1.0+Xi)*(1.0-Eta); - DShapeFunction[6][2] = 0.125*(1.0+Xi)*(1.0+Eta); - DShapeFunction[7][2] = 0.125*(1.0-Xi)*(1.0+Eta); - - - /*--- Jacobian transformation ---*/ - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = 0.0; - for (k = 0; k < 8; k++) { - xs[i][j] = xs[i][j]+CoordCorners[k][j]*DShapeFunction[k][i]; - } - } - } - - /*--- Adjoint to Jacobian ---*/ - - ad[0][0] = xs[1][1]*xs[2][2]-xs[1][2]*xs[2][1]; - ad[0][1] = xs[0][2]*xs[2][1]-xs[0][1]*xs[2][2]; - ad[0][2] = xs[0][1]*xs[1][2]-xs[0][2]*xs[1][1]; - ad[1][0] = xs[1][2]*xs[2][0]-xs[1][0]*xs[2][2]; - ad[1][1] = xs[0][0]*xs[2][2]-xs[0][2]*xs[2][0]; - ad[1][2] = xs[0][2]*xs[1][0]-xs[0][0]*xs[1][2]; - ad[2][0] = xs[1][0]*xs[2][1]-xs[1][1]*xs[2][0]; - ad[2][1] = xs[0][1]*xs[2][0]-xs[0][0]*xs[2][1]; - ad[2][2] = xs[0][0]*xs[1][1]-xs[0][1]*xs[1][0]; - - /*--- Determinant of Jacobian ---*/ - - xsj = xs[0][0]*ad[0][0]+xs[0][1]*ad[1][0]+xs[0][2]*ad[2][0]; - - /*--- Jacobian inverse ---*/ - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - xs[i][j] = ad[i][j]/xsj; - } - } - - /*--- Derivatives with repect to global coordinates ---*/ - - for (k = 0; k < 8; k++) { - c0 = xs[0][0]*DShapeFunction[k][0]+xs[0][1]*DShapeFunction[k][1]+xs[0][2]*DShapeFunction[k][2]; // dN/dx - c1 = xs[1][0]*DShapeFunction[k][0]+xs[1][1]*DShapeFunction[k][1]+xs[1][2]*DShapeFunction[k][2]; // dN/dy - c2 = xs[2][0]*DShapeFunction[k][0]+xs[2][1]*DShapeFunction[k][1]+xs[2][2]*DShapeFunction[k][2]; // dN/dz - DShapeFunction[k][0] = c0; // store dN/dx instead of dN/d xi - DShapeFunction[k][1] = c1; // store dN/dy instead of dN/d eta - DShapeFunction[k][2] = c2; // store dN/dz instead of dN/d Zeta - } - - return xsj; - -} - -void CGalerkin_FEA::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - - su2double B_Matrix[3][8], Aux_Matrix[8][3]; - su2double D_Matrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; - su2double Xi = 0.0, Eta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[4][3], Weight[4]; - unsigned short nVar = 2; - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 3) { - nGauss = 1; - Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 - } - - /*--- Quadrilateral. Nodes of numerical integration at 4 points (order 2). ---*/ - - if (nNodes == 4) { - nGauss = 4; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; - } - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; - - if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; - } - - if (form2d==0){ - - /*--- Compute the D Matrix (for plane stress and 2-D)---*/ - - D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); - - } - else if (form2d==1){ - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; - - - } - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < 3; jVar++) { - Aux_Matrix[iVar][jVar] = 0.0; - for (kVar = 0; kVar < 3; kVar++) - Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 3; kVar++) { - StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; - } - } - } - - } - -} - -void CGalerkin_FEA::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { - - su2double B_Matrix[6][24], D_Matrix[6][6], Aux_Matrix[24][6]; - su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[8][3], Weight[8]; - - unsigned short nVar = 3; - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 4) { - nGauss = 1; - Location[0][0] = 0.25; Location[0][1] = 0.25; Location[0][2] = 0.25; Weight[0] = 0.166666666666666; // Note: W=1, V=1/6 - } - - /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ - - if (nNodes == 5) { - nGauss = 5; - Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; Weight[0] = 0.133333333333333; - Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; Weight[1] = 0.133333333333333; - Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; Weight[2] = 0.133333333333333; - Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; Weight[3] = 0.133333333333333; - Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; Weight[4] = 0.133333333333333; - } - - /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ - - if (nNodes == 6) { - nGauss = 6; - Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; Weight[0] = 0.166666666666666; - Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; Weight[1] = 0.166666666666666; - Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; Weight[2] = 0.166666666666666; - Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; Weight[3] = 0.166666666666666; - Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; Weight[4] = 0.166666666666666; - Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; Weight[5] = 0.166666666666666; - } - - /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ - - if (nNodes == 8) { - nGauss = 8; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Location[0][2] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Location[1][2] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Location[2][2] = -0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Location[3][2] = -0.577350269189626; Weight[3] = 1.0; - Location[4][0] = -0.577350269189626; Location[4][1] = -0.577350269189626; Location[4][2] = 0.577350269189626; Weight[4] = 1.0; - Location[5][0] = 0.577350269189626; Location[5][1] = -0.577350269189626; Location[5][2] = 0.577350269189626; Weight[5] = 1.0; - Location[6][0] = 0.577350269189626; Location[6][1] = 0.577350269189626; Location[6][2] = 0.577350269189626; Weight[6] = 1.0; - Location[7][0] = -0.577350269189626; Location[7][1] = 0.577350269189626; Location[7][2] = 0.577350269189626; Weight[7] = 1.0; - } - - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; Zeta = Location[iGauss][2]; - - if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 6; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; - - B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; - - B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; - } - - /*--- Compute the D Matrix (for plane strain and 3-D)---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; - D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; - D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; - D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; - D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; - - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < 6; jVar++) { - Aux_Matrix[iVar][jVar] = 0.0; - for (kVar = 0; kVar < 6; kVar++) - Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 6; kVar++) { - StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; - } - } - } - - } - -} - -void CGalerkin_FEA::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - - su2double B_Matrix[3][8], D_Matrix[3][3], N_Matrix[2][8], Aux_Matrix[8][3]; - su2double Xi = 0.0, Eta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[4][3], Weight[4]; - unsigned short nVar = 2; - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - MassMatrix_Elem[iVar][jVar] = 0.0; - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 3) { - nGauss = 1; - Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 - } - - /*--- QUADRILATERAL. Nodes of numerical integration at 4 points (order 2). ---*/ - - if (nNodes == 4) { - nGauss = 4; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; - } - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; - - if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the N Matrix ---*/ - - for (iVar = 0; iVar < 2; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - N_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - N_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][3]; - N_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][3]; - } - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; - } - - - if (form2d==0){ - - /*--- Compute the D Matrix (for plane stress and 2-D)---*/ - - D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); - - } - else { - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; - - } - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < 3; jVar++) { - Aux_Matrix[iVar][jVar] = 0.0; - for (kVar = 0; kVar < 3; kVar++) - Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 3; kVar++) { - StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; - } - } - } - - /*--- Compute the NT.N Matrix (mass matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 2; kVar++) { - MassMatrix_Elem[iVar][jVar] += Weight[iGauss] * N_Matrix[kVar][iVar] * N_Matrix[kVar][jVar] * Det * Rho_s; - } - } - } - - } - -} - -void CGalerkin_FEA::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { - - - su2double B_Matrix[6][24], D_Matrix[6][6], N_Matrix[3][24], Aux_Matrix[24][6]; - su2double Xi = 0.0, Eta = 0.0, Zeta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[8][3], Weight[8]; - - unsigned short nVar = 3; - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - MassMatrix_Elem[iVar][jVar] = 0.0; - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 4) { - nGauss = 1; - Location[0][0] = 0.25; Location[0][1] = 0.25; Location[0][2] = 0.25; Weight[0] = 0.166666666666666; // Note: W=1, V=1/6 - } - - /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ - - if (nNodes == 5) { - nGauss = 5; - Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; Weight[0] = 0.133333333333333; - Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; Weight[1] = 0.133333333333333; - Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; Weight[2] = 0.133333333333333; - Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; Weight[3] = 0.133333333333333; - Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; Weight[4] = 0.133333333333333; - } - - /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ - - if (nNodes == 6) { - nGauss = 6; - Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; Weight[0] = 0.166666666666666; - Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; Weight[1] = 0.166666666666666; - Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; Weight[2] = 0.166666666666666; - Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; Weight[3] = 0.166666666666666; - Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; Weight[4] = 0.166666666666666; - Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; Weight[5] = 0.166666666666666; - } - - /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ - - if (nNodes == 8) { - nGauss = 8; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Location[0][2] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Location[1][2] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Location[2][2] = -0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Location[3][2] = -0.577350269189626; Weight[3] = 1.0; - Location[4][0] = -0.577350269189626; Location[4][1] = -0.577350269189626; Location[4][2] = 0.577350269189626; Weight[4] = 1.0; - Location[5][0] = 0.577350269189626; Location[5][1] = -0.577350269189626; Location[5][2] = 0.577350269189626; Weight[5] = 1.0; - Location[6][0] = 0.577350269189626; Location[6][1] = 0.577350269189626; Location[6][2] = 0.577350269189626; Weight[6] = 1.0; - Location[7][0] = -0.577350269189626; Location[7][1] = 0.577350269189626; Location[7][2] = 0.577350269189626; Weight[7] = 1.0; - } - - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; Zeta = Location[iGauss][2]; - - if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - - /*--- Compute the N Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - N_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - N_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][3]; - N_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][3]; - N_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][3]; - } - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 6; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; - - B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; - - B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; - } - - /*--- Compute the D Matrix (for plane strain and 3-D)---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; - D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; - D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; - D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; - D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; - - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < 6; jVar++) { - Aux_Matrix[iVar][jVar] = 0.0; - for (kVar = 0; kVar < 6; kVar++) - Aux_Matrix[iVar][jVar] += B_Matrix[kVar][iVar]*D_Matrix[kVar][jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 6; kVar++) { - StiffMatrix_Elem[iVar][jVar] += Weight[iGauss] * Aux_Matrix[iVar][kVar]*B_Matrix[kVar][jVar] * Det; - } - } - } - - /*--- Compute the NT.N Matrix (mass matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar; iVar++) { - for (jVar = 0; jVar < nNodes*nVar; jVar++) { - for (kVar = 0; kVar < 3; kVar++) { - MassMatrix_Elem[iVar][jVar] += Weight[iGauss] * N_Matrix[kVar][iVar] * N_Matrix[kVar][jVar] * Det * Rho_s; - } - } - } - - - } - -} - - -void CGalerkin_FEA::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity){ - - su2double N_Matrix[2][8], Aux_Vector[2], DeadLoad_Elem[80]; - su2double Xi = 0.0, Eta = 0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, iGauss, nGauss = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; - su2double Location[4][3], Weight[4]; - unsigned short nVar2D = 2; - - su2double gravity; - - gravity=9.80665; - - for (iVar = 0; iVar < nNodes; iVar++) { - DeadLoad_Elem[2*iVar]=0.0; - DeadLoad_Elem[2*iVar+1]=-matDensity*gravity; - DeadLoadVector_Elem[2*iVar]=0.0; - DeadLoadVector_Elem[2*iVar+1]=0.0; - } - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 3) { - nGauss = 1; - Location[0][0] = 0.333333333333333; Location[0][1] = 0.333333333333333; Weight[0] = 0.5; // Note: W=1, A=1/2 - } - - /*--- QUADRILATERAL. Nodes of numerical integration at 4 points (order 2). ---*/ - - if (nNodes == 4) { - nGauss = 4; - Location[0][0] = -0.577350269189626; Location[0][1] = -0.577350269189626; Weight[0] = 1.0; - Location[1][0] = 0.577350269189626; Location[1][1] = -0.577350269189626; Weight[1] = 1.0; - Location[2][0] = 0.577350269189626; Location[2][1] = 0.577350269189626; Weight[2] = 1.0; - Location[3][0] = -0.577350269189626; Location[3][1] = 0.577350269189626; Weight[3] = 1.0; - } - - for (iGauss = 0; iGauss < nGauss; iGauss++) { - - Xi = Location[iGauss][0]; Eta = Location[iGauss][1]; - - if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < nVar2D; iVar++) - for (jVar = 0; jVar < nNodes*nVar2D; jVar++) - N_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - N_Matrix[0][0+iNode*nVar2D] = DShapeFunction[iNode][3]; - N_Matrix[1][1+iNode*nVar2D] = DShapeFunction[iNode][3]; - } - - /*--- Compute the BT.D Matrix ---*/ - - for (iVar = 0; iVar < nVar2D; iVar++) { - Aux_Vector[iVar] = 0.0; - for (jVar = 0; jVar < nNodes*nVar2D; jVar++) { - Aux_Vector[iVar] += N_Matrix[iVar][jVar]*DeadLoad_Elem[jVar]; - } - } - - /*--- Compute the BT.D.B Matrix (stiffness matrix), and add to the original - matrix using Gauss integration ---*/ - - for (iVar = 0; iVar < nNodes*nVar2D; iVar++) { - for (jVar = 0; jVar < nVar2D; jVar++) { - DeadLoadVector_Elem[iVar] += Weight[iGauss] * N_Matrix[jVar][iVar] * Aux_Vector[jVar] * Det; - } - } - - } - -} - -void CGalerkin_FEA::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity){ - -} - - -void CGalerkin_FEA::GetFEA_StressNodal2D(su2double StressNodal[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { - - - su2double B_Matrix[3][8], StrainVector[3]; - su2double D_Matrix[3][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; - //su2double Xi = 0.0; - // su2double Det = 0.0, Eta = 0.0; - unsigned short iNode, iVar, jVar, kVar, iNodal; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; -// su2double Location[4][3] = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0},{0.0, 0.0, 0.0}}; - unsigned short nVar = 2; - - /*--- Triangle. Nodes of numerical integration at 1 point (order 1). ---*/ - -// if (nNodes == 3) { -// Location[0][0] = 1.0; Location[0][1] = 0.0; -// Location[0][0] = 0.0; Location[0][1] = 1.0; -// Location[0][0] = 0.0; Location[0][1] = 0.0; -// } else { -// /*--- QUADRILATERAL. Nodes of numerical integration at 4 points (order 2). ---*/ -// Location[0][0] = -1.0; Location[0][1] = -1.0; -// Location[1][0] = 1.0; Location[1][1] = -1.0; -// Location[2][0] = 1.0; Location[2][1] = 1.0; -// Location[3][0] = -1.0; Location[3][1] = 1.0; -// } - - for (iNodal = 0; iNodal < nNodes; iNodal++) { - - //Xi = Location[iNodal][0]; - - /*--- Unused Vars ---*/ - //Eta = Location[iNodal][1]; - // if (nNodes == 3) Det = ShapeFunc_Triangle(Xi, Eta, CoordCorners, DShapeFunction); - // if (nNodes == 4) Det = ShapeFunc_Quadrilateral(Xi, Eta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 3; iVar++){ - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - } - - for (iNode = 0; iNode < nNodes; iNode++) { - - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[2][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][1+iNode*nVar] = DShapeFunction[iNode][0]; - - } - - if (form2d==0){ - - /*--- Compute the D Matrix (for plane stress and 2-D)---*/ - - D_Matrix[0][0] = E/(1-Nu*Nu); D_Matrix[0][1] = (E*Nu)/(1-Nu*Nu); D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = (E*Nu)/(1-Nu*Nu); D_Matrix[1][1] = E/(1-Nu*Nu); D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = ((1-Nu)*E)/(2*(1-Nu*Nu)); - - } - else if (form2d==1){ - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of Mu and Lambda---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = 0.0; - D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = Mu; - - /*--- Compute the D Matrix (for plane strain and 2-D) as a function of E and Nu---*/ - - // D_Matrix[0][0] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[0][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][2] = 0.0; - // D_Matrix[1][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][1] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[1][2] = 0.0; - // D_Matrix[2][0] = 0.0; D_Matrix[2][1] = 0.0; D_Matrix[2][2] = (E*(1-2*Nu))/(2*(1+Nu)*(1-2*Nu)); - - } - - /*--- Compute the Strain vector (e=B*D) ---*/ - - for (iVar = 0; iVar < 3; iVar++) { - StrainVector[iVar] = 0.0; - for (kVar = 0; kVar < nNodes*nVar; kVar++) - StrainVector[iVar] += B_Matrix[iVar][kVar]*DispElement[kVar]; - } - - /*--- Compute the Stress vector (s=D*e) ---*/ - - for (iVar = 0; iVar < 3; iVar++) { - StressNodal[iNodal][iVar] = 0.0; - for (kVar = 0; kVar < 3; kVar++) - StressNodal[iNodal][iVar] += D_Matrix[iVar][kVar]*StrainVector[kVar]; - } - - } - -} - -void CGalerkin_FEA::GetFEA_StressNodal3D(su2double StressNodal[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { - - - su2double B_Matrix[6][24], D_Matrix[6][6], StrainVector[6]; -// su2double Xi = 0.0, Eta = 0.0, Zeta=0.0, Det = 0.0; - unsigned short iNode, iVar, jVar, kVar, iNodal, nNodal = 0; - su2double DShapeFunction[8][4] = {{0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, - {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0}}; -// su2double Location[8][3]; - - unsigned short nVar = 3; - - /*--- Tetrahedrons. Nodes of numerical integration at 1 point (order 1). ---*/ - - if (nNodes == 4) { - nNodal = 4; -// Location[0][0] = 1.0; Location[0][1] = 0.0; Location[0][2] = 0.0; -// Location[1][0] = 0.0; Location[1][1] = 1.0; Location[1][2] = 0.0; -// Location[2][0] = 0.0; Location[2][1] = 0.0; Location[2][2] = 0.0; -// Location[3][0] = 0.0; Location[3][1] = 0.0; Location[3][2] = 1.0; - } - - /*--- Pyramids. Nodes numerical integration at 5 points. ---*/ - - if (nNodes == 5) { - nNodal = 5; -// Location[0][0] = 0.5; Location[0][1] = 0.0; Location[0][2] = 0.1531754163448146; -// Location[1][0] = 0.0; Location[1][1] = 0.5; Location[1][2] = 0.1531754163448146; -// Location[2][0] = -0.5; Location[2][1] = 0.0; Location[2][2] = 0.1531754163448146; -// Location[3][0] = 0.0; Location[3][1] = -0.5; Location[3][2] = 0.1531754163448146; -// Location[4][0] = 0.0; Location[4][1] = 0.0; Location[4][2] = 0.6372983346207416; - } - - /*--- Prism. Nodes of numerical integration at 6 points (order 3 in Xi, order 2 in Eta and Mu ). ---*/ - - if (nNodes == 6) { - nNodal = 6; -// Location[0][0] = 0.5; Location[0][1] = 0.5; Location[0][2] = -0.577350269189626; -// Location[1][0] = -0.577350269189626; Location[1][1] = 0.0; Location[1][2] = 0.5; -// Location[2][0] = 0.5; Location[2][1] = -0.577350269189626; Location[2][2] = 0.0; -// Location[3][0] = 0.5; Location[3][1] = 0.5; Location[3][2] = 0.577350269189626; -// Location[4][0] = 0.577350269189626; Location[4][1] = 0.0; Location[4][2] = 0.5; -// Location[5][0] = 0.5; Location[5][1] = 0.577350269189626; Location[5][2] = 0.0; - } - - /*--- Hexahedrons. Nodes of numerical integration at 6 points (order 3). ---*/ - - if (nNodes == 8) { - nNodal = 8; -// Location[0][0] = -1.0; Location[0][1] = -1.0; Location[0][2] = -1.0; -// Location[1][0] = 1.0; Location[1][1] = -1.0; Location[1][2] = -1.0; -// Location[2][0] = 1.0; Location[2][1] = 1.0; Location[2][2] = -1.0; -// Location[3][0] = -1.0; Location[3][1] = 1.0; Location[3][2] = -1.0; -// Location[4][0] = -1.0; Location[4][1] = -1.0; Location[4][2] = 1.0; -// Location[5][0] = 1.0; Location[5][1] = -1.0; Location[5][2] = 1.0; -// Location[6][0] = 1.0; Location[6][1] = 1.0; Location[6][2] = 1.0; -// Location[7][0] = -1.0; Location[7][1] = 1.0; Location[7][2] = 1.0; - } - - for (iNodal = 0; iNodal < nNodal; iNodal++) { - -// Xi = Location[iNodal][0]; Eta = Location[iNodal][1]; Zeta = Location[iNodal][2]; - -// if (nNodes == 4) Det = ShapeFunc_Tetra(Xi, Eta, Zeta, CoordCorners, DShapeFunction); -// if (nNodes == 5) Det = ShapeFunc_Pyram(Xi, Eta, Zeta, CoordCorners, DShapeFunction); -// if (nNodes == 6) Det = ShapeFunc_Prism(Xi, Eta, Zeta, CoordCorners, DShapeFunction); -// if (nNodes == 8) Det = ShapeFunc_Hexa(Xi, Eta, Zeta, CoordCorners, DShapeFunction); - - /*--- Compute the B Matrix ---*/ - - for (iVar = 0; iVar < 6; iVar++) - for (jVar = 0; jVar < nNodes*nVar; jVar++) - B_Matrix[iVar][jVar] = 0.0; - - for (iNode = 0; iNode < nNodes; iNode++) { - B_Matrix[0][0+iNode*nVar] = DShapeFunction[iNode][0]; - B_Matrix[1][1+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[2][2+iNode*nVar] = DShapeFunction[iNode][2]; - - B_Matrix[3][0+iNode*nVar] = DShapeFunction[iNode][1]; - B_Matrix[3][1+iNode*nVar] = DShapeFunction[iNode][0]; - - B_Matrix[4][1+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[4][2+iNode*nVar] = DShapeFunction[iNode][1]; - - B_Matrix[5][0+iNode*nVar] = DShapeFunction[iNode][2]; - B_Matrix[5][2+iNode*nVar] = DShapeFunction[iNode][0]; - } - - /*--- Compute the D Matrix (for plane strain and 3-D)---*/ - - D_Matrix[0][0] = Lambda + 2.0*Mu; D_Matrix[0][1] = Lambda; D_Matrix[0][2] = Lambda; D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; - D_Matrix[1][0] = Lambda; D_Matrix[1][1] = Lambda + 2.0*Mu; D_Matrix[1][2] = Lambda; D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; - D_Matrix[2][0] = Lambda; D_Matrix[2][1] = Lambda; D_Matrix[2][2] = Lambda + 2.0*Mu; D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; - D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = Mu; D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; - D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = Mu; D_Matrix[4][5] = 0.0; - D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = Mu; - - // D_Matrix[0][0] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[0][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][2] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[0][3] = 0.0; D_Matrix[0][4] = 0.0; D_Matrix[0][5] = 0.0; - // D_Matrix[1][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][1] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[1][2] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[1][3] = 0.0; D_Matrix[1][4] = 0.0; D_Matrix[1][5] = 0.0; - // D_Matrix[2][0] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[2][1] = (E*Nu)/((1+Nu)*(1-2*Nu)); D_Matrix[2][2] = (E*(1-Nu))/((1+Nu)*(1-2*Nu)); D_Matrix[2][3] = 0.0; D_Matrix[2][4] = 0.0; D_Matrix[2][5] = 0.0; - // D_Matrix[3][0] = 0.0; D_Matrix[3][1] = 0.0; D_Matrix[3][2] = 0.0; D_Matrix[3][3] = E/(2*(1+Nu)); D_Matrix[3][4] = 0.0; D_Matrix[3][5] = 0.0; - // D_Matrix[4][0] = 0.0; D_Matrix[4][1] = 0.0; D_Matrix[4][2] = 0.0; D_Matrix[4][3] = 0.0; D_Matrix[4][4] = E/(2*(1+Nu)); D_Matrix[4][5] = 0.0; - // D_Matrix[5][0] = 0.0; D_Matrix[5][1] = 0.0; D_Matrix[5][2] = 0.0; D_Matrix[5][3] = 0.0; D_Matrix[5][4] = 0.0; D_Matrix[5][5] = E/(2*(1+Nu)); - // - /*--- Compute the Strain vector (e=B*D) ---*/ - - for (iVar = 0; iVar < 6; iVar++) { - StrainVector[iVar] = 0.0; - for (kVar = 0; kVar < nNodes*nVar; kVar++) - StrainVector[iVar] += B_Matrix[iVar][kVar]*DispElement[kVar]; - } - - /*--- Compute the Stress vector (s=D*e) ---*/ - - for (iVar = 0; iVar < 6; iVar++) { - StressNodal[iNodal][iVar] = 0.0; - for (kVar = 0; kVar < 6; kVar++) - StressNodal[iNodal][iVar] += D_Matrix[iVar][kVar]*StrainVector[kVar]; - } - - } - - - -} diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp deleted file mode 100644 index fe2ed81cb18..00000000000 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ /dev/null @@ -1,2584 +0,0 @@ -/*! - * \file solution_direct_elasticity.cpp - * \brief Main subrotuines for solving the linear elasticity equation. - * \author F. Palacios, R. Sanchez - * \version 4.1.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2016 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/solver_structure.hpp" - -CFEASolver::CFEASolver(void) : CSolver() { } - -CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { - - unsigned long iPoint; - unsigned short iVar, jVar, NodesElement = 0, nLineLets; - unsigned short iDim; - su2double dull_val; - - int rank = MASTER_NODE; -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - nPoint = geometry->GetnPoint(); - nPointDomain = geometry->GetnPointDomain(); - nDim = geometry->GetnDim(); - node = new CVariable*[nPoint]; - - - WAitken_Dyn = 0.0; - WAitken_Dyn_tn1 = 0.0; - - SetFSI_ConvValue(0,0.0); - SetFSI_ConvValue(1,0.0); - - nVar = nDim; - - if (nDim == 2) NodesElement = 4; - if (nDim == 3) NodesElement = 8; - - /*--- Define some auxiliary vectors related to the residual ---*/ - - Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new su2double[nDim]; - for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; - } - - /*--- Define some auxiliary vectors related to the solution ---*/ - - Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - - /*--- Element aux stiffness matrix definition ---*/ - - StiffMatrix_Elem = new su2double*[NodesElement*nDim]; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - StiffMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; - for (jVar = 0; jVar < NodesElement*nDim; jVar++) { - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Node aux stiffness matrix definition ---*/ - - StiffMatrix_Node = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - StiffMatrix_Node[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - StiffMatrix_Node[iVar][jVar] = 0.0; - } - } - - /*--- Element aux mass matrix definition ---*/ - - MassMatrix_Elem = new su2double*[NodesElement*nDim]; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - MassMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; - for (jVar = 0; jVar < NodesElement*nDim; jVar++) { - MassMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Node aux mass matrix definition ---*/ - - MassMatrix_Node = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_Node[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - MassMatrix_Node[iVar][jVar] = 0.0; - } - } - - /*--- Node aux mass matrix definition ---*/ - - MassMatrix_Node_Int = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_Node_Int[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - MassMatrix_Node_Int[iVar][jVar] = 0.0; - } - } - - /*--- Element aux damping matrix definition ---*/ - - DampMatrix_Elem = new su2double*[NodesElement*nDim]; - for (iVar = 0; iVar < NodesElement*nDim; iVar++) { - DampMatrix_Elem[iVar] = new su2double [NodesElement*nDim]; - for (jVar = 0; jVar < NodesElement*nDim; jVar++) { - DampMatrix_Elem[iVar][jVar] = 0.0; - } - } - - /*--- Node aux damping matrix definition ---*/ - - DampMatrix_Node = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - DampMatrix_Node[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - DampMatrix_Node[iVar][jVar] = 0.0; - } - } - - /*--- Initialization of integration constants ---*/ - - for (iVar = 0; iVar < 8; iVar++){ - a_dt[iVar]=0.0; - } - - /*--- Element aux dead load vector definition ---*/ - DeadLoadVector_Elem = new su2double [NodesElement*nDim]; - - /*--- Node aux dead load vector definition ---*/ - DeadLoadVector_Node = new su2double [nVar]; - - - /*--- Initialization of matrix structures ---*/ - - if (rank == MASTER_NODE) cout << "Initialize Stiffness structure (Linear Elasticity)." << endl; - - if (nDim==2){ - unsigned short form2d; - form2d=config->GetElas2D_Formulation(); - if (form2d==0) cout << "Plane stress model for 2D structural analysis (Linear Elasticity)." << endl; - if (form2d==1) cout << "Plane strain model for 2D structural analysis (Linear Elasticity)." << endl; - } - - StiffMatrixSpace.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - StiffMatrixTime.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - DampMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - - if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Linear Elasticity)." << endl; - Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - - if ((config->GetKind_Linear_Solver_Prec() == LINELET) || - (config->GetKind_Linear_Solver() == SMOOTHER_LINELET)) { - nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config); - if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl; - } - - /*--- Initialization of linear solver structures ---*/ - - LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); - LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); - LinSysAux.Initialize(nPoint, nPointDomain, nVar, 0.0); - - TimeRes_Aux.Initialize(nPoint, nPointDomain, nVar, 0.0); - TimeRes.Initialize(nPoint, nPointDomain, nVar, 0.0); - - /*--- Computation of gradients by least squares ---*/ - - Smatrix = new su2double* [nDim]; - for (unsigned short iDim = 0; iDim < nDim; iDim++) - Smatrix[iDim] = new su2double [nDim]; - - cvector = new su2double* [nVar]; - for (unsigned short iVar = 0; iVar < nVar; iVar++) - cvector[iVar] = new su2double [nDim]; - - /*--- Check for a restart, initialize from zero otherwise ---*/ - - bool restart = (config->GetRestart() || config->GetRestart_Flow()); - - if (!restart) { - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - node[iPoint] = new CFEAVariable(Solution, nDim, nVar, config); - } - } - else { - unsigned long index; - string text_line, mesh_filename; - ifstream restart_file; - - /*--- Restart the solution from file information ---*/ - - mesh_filename = config->GetSolution_FlowFileName(); - restart_file.open(mesh_filename.data(), ios::in); - - /*--- In case there is no file ---*/ - - if (restart_file.fail()) { - cout << "There is no fea restart file!!" << endl; - exit(EXIT_FAILURE); - } - - /*--- In case this is a parallel simulation, we need to perform the - Global2Local index transformation first. ---*/ - - long *Global2Local; - Global2Local = new long[geometry->GetGlobal_nPointDomain()]; - - /*--- First, set all indices to a negative value by default ---*/ - - for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) { - Global2Local[iPoint] = -1; - } - - /*--- Now fill array with the transform values only for local points ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPointDomain(); iPoint++) { - Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; - } - - /*--- Read all lines in the restart file ---*/ - - long iPoint_Local; unsigned long iPoint_Global = 0; - - /*--- The first line is the header ---*/ - - getline (restart_file, text_line); - - while (getline (restart_file, text_line)) { - istringstream point_line(text_line); - - /*--- Retrieve local index. If this node from the restart file lives - on a different processor, the value of iPoint_Local will be -1. - Otherwise, the local index for this node on the current processor - will be returned and used to instantiate the vars. ---*/ - - iPoint_Local = Global2Local[iPoint_Global]; - if (iPoint_Local >= 0) { - if (nDim == 2) point_line >> index >> dull_val >> dull_val >> Solution[0] >> Solution[1]; - if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> Solution[0] >> Solution[1] >> Solution[2]; - node[iPoint_Local] = new CFEAVariable(Solution, nDim, nVar, config); - } - iPoint_Global++; - } - - /*--- Instantiate the variable class with an arbitrary solution - at any halo/periodic nodes. The initial solution can be arbitrary, - because a send/recv is performed immediately in the solver. ---*/ - - for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { - node[iPoint] = new CFEAVariable(Solution, nDim, nVar, config); - } - - /*--- Close the restart file ---*/ - - restart_file.close(); - - /*--- Free memory needed for the transformation ---*/ - - delete [] Global2Local; - } - -} - -CFEASolver::~CFEASolver(void) { - - unsigned short iVar, iDim, NodesElement = 0; - - if (nDim == 2) NodesElement = 4; - if (nDim == 3) NodesElement = 8; - - delete [] Residual; - delete [] Residual_Max; - delete [] Solution; - - for (iVar = 0; iVar < NodesElement*nDim; iVar++) - delete [] StiffMatrix_Elem[iVar]; - - for (iVar = 0; iVar < nVar; iVar++) - delete [] StiffMatrix_Node[iVar]; - - for (iVar = 0; iVar < NodesElement*nDim; iVar++) - delete [] MassMatrix_Elem[iVar]; - - for (iVar = 0; iVar < nVar; iVar++) - delete [] MassMatrix_Elem[iVar]; - - for (iVar = 0; iVar < NodesElement*nDim; iVar++) - delete [] DampMatrix_Elem[iVar]; - - for (iVar = 0; iVar < nVar; iVar++) - delete [] DampMatrix_Elem[iVar]; - - delete [] StiffMatrix_Elem; - delete [] StiffMatrix_Node; - delete [] MassMatrix_Elem; - delete [] MassMatrix_Node; - delete [] DampMatrix_Elem; - delete [] DampMatrix_Node; - - /*--- Computation of gradients by least-squares ---*/ - - for (iDim = 0; iDim < nDim; iDim++) - delete [] Smatrix[iDim]; - delete [] Smatrix; - - for (iVar = 0; iVar < nVar; iVar++) - delete [] cvector[iVar]; - delete [] cvector; - - -} - - - -void CFEASolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { - - GetSurface_Pressure(geometry, config); - - unsigned long ExtIter = config->GetExtIter(); - - /*--- Set residuals and auxiliar variables to zero ---*/ - - Initialize_SystemMatrix(geometry, solver_container, config); - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - if (ExtIter == 0){ - - if (!dynamic){ - Compute_StiffMatrix(geometry, solver_container, numerics, config); - } - else if (dynamic){ - /*--- Compute the integration constants ---*/ - Compute_IntegrationConstants(config); - - /*--- Compute the stiffness and mass matrices ---*/ - Compute_StiffMassMatrix(geometry, solver_container, numerics, config); - - } - - } - -} - -void CFEASolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned long iPoint; - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - unsigned long ExtIter = config->GetExtIter(); - bool fsi = config->GetFSI_Simulation(); - - if (!fsi) { - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { - LinSysRes.SetBlock_Zero(iPoint); - LinSysAux.SetBlock_Zero(iPoint); - } - - /*--- Set matrix entries to zero ---*/ - - /*--- Static calculation ---*/ - - if (dynamic && ExtIter == 0){ - - StiffMatrixSpace.SetValZero(); - StiffMatrixTime.SetValZero(); - - MassMatrix.SetValZero(); - DampMatrix.SetValZero(); - - } - - /*--- Dynamic calculation ---*/ - else if (!dynamic){ - - StiffMatrixSpace.SetValZero(); - Jacobian.SetValZero(); - - } - - } - - else { - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { - LinSysAux.SetBlock_Zero(iPoint); - } - - /*--- Set matrix entries to zero ---*/ - - /*--- Static calculation ---*/ - - if (dynamic && ExtIter == 0){ - - StiffMatrixSpace.SetValZero(); - StiffMatrixTime.SetValZero(); - - MassMatrix.SetValZero(); - DampMatrix.SetValZero(); - - } - - /*--- Dynamic calculation ---*/ - else if (!dynamic){ - - StiffMatrixSpace.SetValZero(); - Jacobian.SetValZero(); - - } - - } - - -} - -void CFEASolver::Compute_IntegrationConstants(CConfig *config) { - - su2double Delta_t= config->GetDelta_DynTime(); - su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); - - /*--- Integration constants for Newmark scheme ---*/ - - a_dt[0]= 1 / (alpha*pow(Delta_t,2.0)); - a_dt[1]= delta / (alpha*Delta_t); - a_dt[2]= 1 / (alpha*Delta_t); - a_dt[3]= 1 /(2*alpha) - 1; - a_dt[4]= delta/alpha - 1; - a_dt[5]= (Delta_t/2) * (delta/alpha - 2); - a_dt[6]= Delta_t * (1-delta); - a_dt[7]= delta * Delta_t; - -} - -void CFEASolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; - unsigned long iElem, PointCorners[8]; - su2double CoordCorners[8][3]; - - form2d=config->GetElas2D_Formulation(); - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) nNodes = 8; - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNodes = 0; iNodes < nNodes; iNodes++) { - PointCorners[iNodes] = geometry->elem[iElem]->GetNode(iNodes); - for (iDim = 0; iDim < nDim; iDim++) { - CoordCorners[iNodes][iDim] = geometry->node[PointCorners[iNodes]]->GetCoord(iDim); - } - } - - /*--- We set the element stiffness matrix ---*/ - - if (nDim == 2) numerics[FEA_TERM]->SetFEA_StiffMatrix2D(StiffMatrix_Elem, CoordCorners, nNodes, form2d); - if (nDim == 3) numerics[FEA_TERM]->SetFEA_StiffMatrix3D(StiffMatrix_Elem, CoordCorners, nNodes); - - /*--- Initialization of the auxiliar matrix ---*/ - - for (iVar = 0; iVar < nVar; iVar++) - for (jVar = 0; jVar < nVar; jVar++) - StiffMatrix_Node[iVar][jVar] = 0.0; - - /*--- Transform the stiffness matrix into the - contributions for the individual nodes relative to each other. ---*/ - - for (iVar = 0; iVar < nNodes; iVar++) { - for (jVar = 0; jVar < nNodes; jVar++) { - for (iDim = 0; iDim < nVar; iDim++) { - for (jDim = 0; jDim < nVar; jDim++) { - StiffMatrix_Node[iDim][jDim] = StiffMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; - } - } - StiffMatrixSpace.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); - } - } - - } - -} - -void CFEASolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned short iVar, jVar, nNodes = 0, iNodes, iDim, jDim, form2d; - unsigned long iElem, PointCorners[8]; - su2double CoordCorners[8][3]; - - form2d=config->GetElas2D_Formulation(); - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) nNodes = 3; - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) nNodes = 4; - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) nNodes = 4; - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) nNodes = 5; - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) nNodes = 6; - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) nNodes = 8; - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNodes = 0; iNodes < nNodes; iNodes++) { - PointCorners[iNodes] = geometry->elem[iElem]->GetNode(iNodes); - for (iDim = 0; iDim < nDim; iDim++) { - CoordCorners[iNodes][iDim] = geometry->node[PointCorners[iNodes]]->GetCoord(iDim); - } - } - - /*--- We set the element stiffness matrix ---*/ - - /*--- This solves the problem but... why? ---*/ - for (iVar = 0; iVar < nNodes*nDim; iVar++) { - StiffMatrix_Elem[iVar] = new su2double [nNodes*nDim]; - for (jVar = 0; jVar < nNodes*nDim; jVar++) { - StiffMatrix_Elem[iVar][jVar] = 0.0; - } - } - - if (nDim == 2) numerics[FEA_TERM]->SetFEA_StiffMassMatrix2D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes, form2d); - if (nDim == 3) numerics[FEA_TERM]->SetFEA_StiffMassMatrix3D(StiffMatrix_Elem, MassMatrix_Elem, CoordCorners, nNodes); - - /*--- Initialization of the auxiliar matrix ---*/ - - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - StiffMatrix_Node[iVar][jVar] = 0.0; - MassMatrix_Node[iVar][jVar] = 0.0; - } - } - - /*--- Transform the stiffness and mass matrices into the - contributions for the individual nodes relative to each other. ---*/ - - for (iVar = 0; iVar < nNodes; iVar++) { - for (jVar = 0; jVar < nNodes; jVar++) { - for (iDim = 0; iDim < nVar; iDim++) { - for (jDim = 0; jDim < nVar; jDim++) { - StiffMatrix_Node[iDim][jDim] = StiffMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; - MassMatrix_Node[iDim][jDim] = MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; - MassMatrix_Node_Int[iDim][jDim] = a_dt[0] * MassMatrix_Elem[(iVar*nDim)+iDim][(jVar*nDim)+jDim]; - } - } - MassMatrix.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node); - StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], StiffMatrix_Node); - StiffMatrixTime.AddBlock(PointCorners[iVar], PointCorners[jVar], MassMatrix_Node_Int); - } - } - - } - -} - -void CFEASolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - cout << "Here we will compute the damping matrix." << endl; -} - - -void CFEASolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - if (dynamic){ - for(unsigned long iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - // The loop is over nPoints so the boundaries are also updated - node[iPoint]->SetSolution_time_n(); - node[iPoint]->SetSolution_Vel_time_n(); - node[iPoint]->SetSolution_Accel_time_n(); - } - } - -} - - - - - -void CFEASolver::Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, - CConfig *config, unsigned short iMesh) { - - /*--- Compute body forces load vector ---*/ - - - - /*--- Compute initial stresses effect ---*/ - - -} - -void CFEASolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, - CConfig *config, unsigned short iMesh, unsigned short iRKStep) { - -} - - -/*-------------------------------------------------------------------------------------------------- - * Definition of new boundary conditions - ---------------------------------------------------------------------------------------------------*/ - -void CFEASolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - unsigned long iPoint, iVertex; - unsigned short iVar, jVar; - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - su2double **mIdentity, **mZeros; // Variables to delete blocks in the jacobian - - mIdentity = new su2double *[nDim]; // Number of rows, allocate memory for each - for(int iMat=0; iMatGetElasticyMod(); - if (iMat==jMat) mIdentity[iMat][jMat]=1.0; - else mIdentity[iMat][jMat]=0; - } - } - - - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { - - /*--- Get node index ---*/ - - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - - if (nDim == 2) { - Solution[0] = 0.0; Solution[1] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; - } - else { - Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; - } - - node[iPoint]->SetSolution(Solution); - - if (dynamic){ - node[iPoint]->SetSolution_Vel(Solution); - node[iPoint]->SetSolution_Accel(Solution); - } - - LinSysRes.SetBlock(iPoint, Residual); - - /*--- Set the boundary clamped condition ---*/ - - /*--- If the problem is dynamic ---*/ - - if(dynamic){ - - /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ - - node[iPoint]->SetSolution_time_n(Solution); - node[iPoint]->SetSolution_Vel_time_n(Solution); - node[iPoint]->SetSolution_Accel_time_n(Solution); - - /*--- Delete the rows for a particular node ---*/ - for (jVar = 0; jVar < nPoint; jVar++){ - if (iPoint==jVar) { - StiffMatrixTime.SetBlock(iPoint,jVar,mIdentity); - MassMatrix.SetBlock(iPoint,jVar,mIdentity); - } - else { - StiffMatrixTime.SetBlock(iPoint,jVar,mZeros); - MassMatrix.SetBlock(iPoint,jVar,mZeros); - } - } - - /*--- Delete the columns for a particular node ---*/ - for (iVar = 0; iVar < nPoint; iVar++){ - if (iVar==iPoint) { - StiffMatrixTime.SetBlock(iVar,iPoint,mIdentity); - MassMatrix.SetBlock(iVar,iPoint,mIdentity); - } - else { - StiffMatrixTime.SetBlock(iVar,iPoint,mZeros); - MassMatrix.SetBlock(iVar,iPoint,mZeros); - } - } - - } - - /*--- If the problem is static ---*/ - - else{ - - /*--- Delete the rows for a particular node ---*/ - for (jVar = 0; jVar < nPoint; jVar++){ - if (iPoint==jVar) { - Jacobian.SetBlock(iPoint,jVar,mIdentity); - StiffMatrixSpace.SetBlock(iPoint,jVar,mIdentity); - } - else { - Jacobian.SetBlock(iPoint,jVar,mZeros); - StiffMatrixSpace.SetBlock(iPoint,jVar,mZeros); - } - } - - /*--- Delete the columns for a particular node ---*/ - for (iVar = 0; iVar < nPoint; iVar++){ - if (iVar==iPoint) { - Jacobian.SetBlock(iVar,iPoint,mIdentity); - StiffMatrixSpace.SetBlock(iPoint,jVar,mIdentity); - } - else { - Jacobian.SetBlock(iVar,iPoint,mZeros); - StiffMatrixSpace.SetBlock(iPoint,jVar,mZeros); - } - } - - } - - } - - -} - - -void CFEASolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - unsigned long iPoint, iVertex; - - su2double **mIdentity, **mZeros; // Variables to delete blocks in the jacobian - - - mIdentity = new su2double *[nDim]; // Number of rows, allocate memory for each - for(int iMat=0; iMatnVertex[val_marker]; iVertex++) { - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - - if (nDim == 2) { - Solution[0] = 0.0; Solution[1] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; - } - else { - Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; - } - - node[iPoint]->SetSolution(Solution); - node[iPoint]->SetSolution_Old(Solution); - - - /*--- Re-set the displacement condition ---*/ - LinSysRes.SetBlock(iPoint, Residual); - - } - -} - - -void CFEASolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - unsigned long iPoint, iVertex, total_index; - unsigned short iVar, iDim; - su2double *Normal, Area, UnitaryNormal[3] = {0.0,0.0,0.0}; - - su2double TotalDispl = config->GetDispl_Value(config->GetMarker_All_TagBound(val_marker)); - - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - Normal = geometry->vertex[val_marker][iVertex]->GetNormal(); - - /*--- Compute area, and unitary normal ---*/ - - Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) Area += Normal[iDim]*Normal[iDim]; Area = sqrt(Area); - for (iDim = 0; iDim < nDim; iDim++) UnitaryNormal[iDim] = Normal[iDim]/Area; - - if (config->GetUnsteady_Simulation() == STEADY) { - if (nDim == 2) { - Solution[0] = TotalDispl*UnitaryNormal[0]; Solution[1] = TotalDispl*UnitaryNormal[1]; - Residual[0] = TotalDispl*UnitaryNormal[0]; Residual[1] = TotalDispl*UnitaryNormal[1]; - } - else { - Solution[0] = TotalDispl*UnitaryNormal[0]; Solution[1] = TotalDispl*UnitaryNormal[1]; Solution[2] = TotalDispl*UnitaryNormal[2]; - Residual[0] = TotalDispl*UnitaryNormal[0]; Residual[1] = TotalDispl*UnitaryNormal[1]; Residual[2] = TotalDispl*UnitaryNormal[2]; - } - } - else { - if (nDim == 2) { - Solution[0] = TotalDispl*UnitaryNormal[0]; Solution[1] = TotalDispl*UnitaryNormal[1]; - Solution[2] = 0.0; Solution[3] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; - Residual[2] = 0.0; Residual[3] = 0.0; - } - else { - Solution[0] = TotalDispl*UnitaryNormal[0]; Solution[1] = TotalDispl*UnitaryNormal[1]; Solution[2] = TotalDispl*UnitaryNormal[2]; - Solution[3] = 0.0; Solution[4] = 0.0; Solution[5] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; - Residual[3] = 0.0; Residual[4] = 0.0; Residual[5] = 0.0; - } - } - - node[iPoint]->SetSolution(Solution); - node[iPoint]->SetSolution_Old(Solution); - - LinSysRes.SetBlock(iPoint, Residual); - - /*--- Set the dirichlet condition ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - Jacobian.DeleteValsRowi(total_index); - } - - } -} - -void CFEASolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - su2double a[3], b[3]; - unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0; - su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL; - su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; - //su2double Length_Elem = 0.0, Area_Elem = 0.0; - unsigned short iDim; - - su2double TotalLoad = config->GetLoad_Value(config->GetMarker_All_TagBound(val_marker)); - - for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - - Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); - Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - if (nDim == 3) { Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); } - - /*--- Compute area (3D), and length of the surfaces (2D) ---*/ - - if (nDim == 2) { - - for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - - //Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); - Normal_Elem[0] = a[1]; - Normal_Elem[1] = -(a[0]); - - } - - if (nDim == 3) { - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = Coord_0[iDim]-Coord_2[iDim]; - b[iDim] = Coord_1[iDim]-Coord_2[iDim]; - } - - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - - Normal_Elem[0] = -(0.5*(a[1]*b[2]-a[2]*b[1])); - Normal_Elem[1] = -(-0.5*(a[0]*b[2]-a[2]*b[0])); - Normal_Elem[2] = -(0.5*(a[0]*b[1]-a[1]*b[0])); - - } - - - if (nDim == 2) { - Residual[0] = (1.0/2.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/2.0)*TotalLoad*Normal_Elem[1]; - LinSysRes.AddBlock(Point_0, Residual); - Residual[0] = (1.0/2.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/2.0)*TotalLoad*Normal_Elem[1]; - LinSysRes.AddBlock(Point_1, Residual); - } - - else { - Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; - LinSysRes.AddBlock(Point_0, Residual); - - Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; - LinSysRes.AddBlock(Point_1, Residual); - - Residual[0] = (1.0/3.0)*TotalLoad*Normal_Elem[0]; Residual[1] = (1.0/3.0)*TotalLoad*Normal_Elem[1]; Residual[2] = (1.0/3.0)*TotalLoad*Normal_Elem[2]; - LinSysRes.AddBlock(Point_2, Residual); - } - - } - -} - - -void CFEASolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - su2double a[3] = {0.0, 0.0, 0.0}, b[3] = {0.0, 0.0, 0.0}; - su2double AC[3] = {0.0, 0.0, 0.0}, BD[3] = {0.0, 0.0, 0.0}; - unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; - su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0; -// su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; - unsigned short iDim; - - su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); - su2double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); - su2double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); - - su2double TotalLoad; - - bool Sigmoid_Load = config->GetSigmoid_Load(); - su2double CurrentTime=config->GetCurrent_DynTime(); - su2double ModAmpl, NonModAmpl; - - bool Ramp_Load = config->GetRamp_Load(); - su2double Ramp_Time = config->GetRamp_Time(); - - if (Ramp_Load){ - ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; - NonModAmpl=LoadDirVal*LoadDirMult; - TotalLoad=min(ModAmpl,NonModAmpl); - } - else if (Sigmoid_Load){ - ModAmpl=2*((1/(1+exp(-1*CurrentTime)))-0.5); - TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; - } - else{ - TotalLoad=LoadDirVal*LoadDirMult; - } - - /*--- Compute the norm of the vector that was passed in the config file ---*/ - su2double Norm = 0.0; - if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); - if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); - - for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - - Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); - Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - - /*--- Compute area (3D), and length of the surfaces (2D) ---*/ - - if (nDim == 2) { - - for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); -// Normal_Elem[0] = a[1]; -// Normal_Elem[1] = -(a[0]); - - } else { - - Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); - Coord_2 = geometry->node[Point_2]->GetCoord(); - - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = Coord_1[iDim]-Coord_0[iDim]; - b[iDim] = Coord_2[iDim]-Coord_0[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=a[1]*b[2]-a[2]*b[1]; - Nj=-a[0]*b[2]+a[2]*b[0]; - Nk=a[0]*b[1]-a[1]*b[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - - } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); - Coord_3 = geometry->node[Point_3]->GetCoord(); - - for (iDim = 0; iDim < nDim; iDim++) { - AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; - BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=AC[1]*BD[2]-AC[2]*BD[1]; - Nj=-AC[0]*BD[2]+AC[2]*BD[0]; - Nk=AC[0]*BD[1]-AC[1]*BD[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - } - } - - if (nDim == 2) { - - Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - - } - - else { - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - LinSysRes.AddBlock(Point_3, Residual); - - } - - } - - } - -} - -void CFEASolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - su2double a[3] = {0.0, 0.0, 0.0}, b[3] = {0.0, 0.0, 0.0}; - su2double AC[3] = {0.0, 0.0, 0.0}, BD[3] = {0.0, 0.0, 0.0}; - unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; - su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0; -// su2double Normal_Elem[3] = {0.0, 0.0, 0.0}; - unsigned short iDim; - - su2double LoadAmplitude = config->GetLoad_Sine_Amplitude(config->GetMarker_All_TagBound(val_marker)); - su2double LoadFrequency = config->GetLoad_Sine_Frequency(config->GetMarker_All_TagBound(val_marker)); - su2double *Load_Dir_Local= config->GetLoad_Sine_Dir(config->GetMarker_All_TagBound(val_marker)); - - su2double CurrentTime=config->GetCurrent_DynTime(); - - su2double TotalLoad = LoadAmplitude*sin(2*PI_NUMBER*LoadFrequency*CurrentTime); - - /*--- Compute the norm of the vector that was passed in the config file ---*/ - su2double Norm = 0.0; - if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); - if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); - - for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - - Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); - Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - - /*--- Compute area (3D), and length of the surfaces (2D) ---*/ - - if (nDim == 2) { - - for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); -// Normal_Elem[0] = a[1]; -// Normal_Elem[1] = -(a[0]); - - } else { // 3D - - Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); - Coord_2 = geometry->node[Point_2]->GetCoord(); - - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = Coord_1[iDim]-Coord_0[iDim]; - b[iDim] = Coord_2[iDim]-Coord_0[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=a[1]*b[2]-a[2]*b[1]; - Nj=-a[0]*b[2]+a[2]*b[0]; - Nk=a[0]*b[1]-a[1]*b[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - - //Area_Elem = 0.5*fabs(a[0]*b[1]-a[1]*b[0]); - - } else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); - Coord_3 = geometry->node[Point_3]->GetCoord(); - - for (iDim = 0; iDim < nDim; iDim++) { - AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; - BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=AC[1]*BD[2]-AC[2]*BD[1]; - Nj=-AC[0]*BD[2]+AC[2]*BD[0]; - Nk=AC[0]*BD[1]-AC[1]*BD[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - } - } - - if (nDim == 2) { - - Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - - } - - else { - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - - - } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - LinSysRes.AddBlock(Point_0, Residual); - LinSysRes.AddBlock(Point_1, Residual); - LinSysRes.AddBlock(Point_2, Residual); - LinSysRes.AddBlock(Point_3, Residual); - - } - - } - - } - -} - -void CFEASolver::BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } - -void CFEASolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } - - -void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics_container, unsigned short iMesh) { - unsigned long iPoint, iElem; - su2double **Stress, VonMises_Stress=0.0, MaxVonMises_Stress = 0.0; - su2double Sxx=0.0,Syy=0.0,Szz=0.0,Sxy=0.0,Sxz=0.0,Syz=0.0,S1,S2; - - unsigned long PointCorners[8]; - unsigned short nNodes=0, iNodes, iDim, jDim, form2d; - su2double CoordCorners[8][3]; -// su2double CoordGauss[8][3]; - - /*--- Container of the shape functions ---*/ - CNumerics *numerics; - numerics=numerics_container[FEA_TERM]; - - /*--- Enforcement of displacement boundary conditions ---*/ - unsigned short MainSolver = config->GetContainerPosition(RUNTIME_FEA_SYS); - unsigned int iMarker; - - form2d=config->GetElas2D_Formulation(); - - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { - switch (config->GetMarker_All_KindBC(iMarker)) { - case CLAMPED_BOUNDARY: - solver_container[MainSolver]->BC_Clamped(geometry, solver_container, numerics_container[CONV_BOUND_TERM], config, iMarker); - break; - } - } - - /* --- Initialize the stress and the number of elements connected to each node ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - node[iPoint]->Initialize_Connectivity(); - for (iDim = 0; iDim < nDim; iDim++){ - for (jDim = 0; jDim < nDim; jDim++){ - node[iPoint]->SetStress(iDim, jDim, 0); - } - } - } - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE){ nNodes = 3;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL){ nNodes = 4;} - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON){ nNodes = 4;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID){ nNodes = 5;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM){ nNodes = 6;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON){ nNodes = 8;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNodes = 0; iNodes < nNodes; iNodes++) { - - /*--- Get the index of the nodes and saves it in PointCorners ---*/ - PointCorners[iNodes] = geometry->elem[iElem]->GetNode(iNodes); - - for (iDim = 0; iDim < nDim; iDim++) { - - /*--- Get the coordinates of the nodes and saves it in CoordCorners ---*/ - CoordCorners[iNodes][iDim] = geometry->node[PointCorners[iNodes]]->GetCoord(iDim); - - /*--- Initialization of the gauss coordinate matrix ---*/ -// CoordGauss[iNodes][iDim] = 0.0; - } - } - - /*----------------------------------------------------------------------------------*/ - /*--- We obtain the stresses in the element, from the finite element formulation ---*/ - /*----------------------------------------------------------------------------------*/ - - /*--- For a 2D element ---*/ - - if (nDim == 2) { - - su2double StressNodal[8][3], DispElement[8]; - - /*--- Set the element displacements vector, from the global solution ---*/ - - for (iNodes = 0; iNodes < nNodes; iNodes++) { - for (iDim = 0; iDim < nDim; iDim++) { - DispElement[nDim*iNodes+iDim]=node[PointCorners[iNodes]]->GetSolution(iDim); - } - } - - /*--- Obtain the stresses in the nodes ---*/ - numerics->GetFEA_StressNodal2D(StressNodal, DispElement, CoordCorners, nNodes, form2d); - - /*--- Add the value of the element stress extrapolated to the node to the value stored on the nodes ---*/ - /*--- At the same point, add a counter to take into account on how many elements connect to the node ---*/ - - for (iPoint = 0; iPoint < nNodes; iPoint++) { - - node[PointCorners[iPoint]]->AddStress(0, 0, StressNodal[iPoint][0]); - node[PointCorners[iPoint]]->AddStress(1, 1, StressNodal[iPoint][1]); - node[PointCorners[iPoint]]->AddStress(0, 1, StressNodal[iPoint][2]); - node[PointCorners[iPoint]]->AddStress(1, 0, StressNodal[iPoint][2]); - - node[PointCorners[iPoint]]->Upgrade_Connectivity(); - - } - - } - - /*--- For a 3D element ---*/ - - if (nDim == 3) { - - su2double StressNodal[8][6], DispElement[24]; - - /*--- Set the element displacements vector, from the global solution ---*/ - - for (iNodes = 0; iNodes < nNodes; iNodes++) { - for (iDim = 0; iDim < nDim; iDim++) { - DispElement[nDim*iNodes+iDim]=node[PointCorners[iNodes]]->GetSolution(iDim); - } - } - - /*--- Obtain the stresses in the gaussian points ---*/ - numerics->GetFEA_StressNodal3D(StressNodal, DispElement, CoordCorners, nNodes); - - /*--- Add the value of the element stress extrapolated to the node to the value stored on the nodes ---*/ - /*--- At the same point, add a counter to take into account on how many elements connect to the node ---*/ - - for (iPoint = 0; iPoint < nNodes; iPoint++) { - - node[PointCorners[iPoint]]->AddStress(0, 0, StressNodal[iPoint][0]); - node[PointCorners[iPoint]]->AddStress(1, 1, StressNodal[iPoint][1]); - node[PointCorners[iPoint]]->AddStress(2, 2, StressNodal[iPoint][2]); - - node[PointCorners[iPoint]]->AddStress(0, 1, StressNodal[iPoint][3]); - node[PointCorners[iPoint]]->AddStress(1, 0, StressNodal[iPoint][3]); - - node[PointCorners[iPoint]]->AddStress(0, 2, StressNodal[iPoint][4]); - node[PointCorners[iPoint]]->AddStress(2, 0, StressNodal[iPoint][4]); - - node[PointCorners[iPoint]]->AddStress(1, 2, StressNodal[iPoint][5]); - node[PointCorners[iPoint]]->AddStress(2, 1, StressNodal[iPoint][5]); - - node[PointCorners[iPoint]]->Upgrade_Connectivity(); - - } - - } - - } - - - /* --- Variable to store the number of elements connected to each node ---*/ - - su2double nElPerNode=0; - - /* --- For the number of nodes in the mesh ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - - /* --- Get the stresses, added up from all the elements that connect to the node ---*/ - - Stress = node[iPoint]->GetStress(); - nElPerNode = node[iPoint]->Get_Connectivity(); - - /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ - - if (geometry->GetnDim() == 2) { - - Sxx=Stress[0][0]/nElPerNode; - Syy=Stress[1][1]/nElPerNode; - Sxy=Stress[0][1]/nElPerNode; - - S1=(Sxx+Syy)/2+sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); - S2=(Sxx+Syy)/2-sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); - - VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); - - } - else if (geometry->GetnDim() == 3) { - - Sxx = Stress[0][0]/nElPerNode; - Syy = Stress[1][1]/nElPerNode; - Szz = Stress[2][2]/nElPerNode; - - Sxy = Stress[0][1]/nElPerNode; - Sxz = Stress[0][2]/nElPerNode; - Syz = Stress[1][2]/nElPerNode; - - VonMises_Stress = sqrt(0.5*( pow(Sxx - Syy, 2.0) - + pow(Syy - Szz, 2.0) - + pow(Szz - Sxx, 2.0) - + 6.0*(Sxy*Sxy+Sxz*Sxz+Syz*Syz) - )); - - } - - node[iPoint]->SetVonMises_Stress(VonMises_Stress); - - /*--- Compute the maximum value of the Von Mises Stress ---*/ - - MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); - - /*--- Set the new value of the stress, averaged from the number of elements ---*/ - - node[iPoint]->SetStress(0, 0, Sxx); - node[iPoint]->SetStress(1, 1, Syy); - node[iPoint]->SetStress(0, 1, Sxy); - node[iPoint]->SetStress(1, 0, Sxy); - - if (geometry->GetnDim() == 3) { - node[iPoint]->SetStress(2, 2, Szz); - node[iPoint]->SetStress(0, 2, Sxz); - node[iPoint]->SetStress(2, 0, Sxz); - node[iPoint]->SetStress(1, 2, Syz); - node[iPoint]->SetStress(2, 1, Syz); - } - - } - -#ifdef HAVE_MPI - - /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - - su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - -#endif - - /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ - - Total_CFEA = MaxVonMises_Stress; - -} - -void CFEASolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, - unsigned short iMesh, unsigned short RunTime_EqSystem) { } - -void CFEASolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - - unsigned short iVar; - unsigned long iPoint, total_index, IterLinSol; - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - unsigned long ExtIter = config->GetExtIter(); - - su2double *PointTimeRes = NULL; - - unsigned short check=0; - - if ((dynamic) && (ExtIter == 0) && (check==0)){ - - /*--- Build implicit system ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Right hand side of the system (-Residual) and initial guess (x = 0) ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - LinSysSol[total_index] = 0.0; - } - - } - - /*--- Initialize residual and solution at the ghost points ---*/ - - for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar + iVar; - LinSysRes[total_index] = 0.0; - LinSysSol[total_index] = 0.0; - } - - } - - - /*--- Solve the linear dynamic system ---*/ - - CSysSolve femSystem; - IterLinSol = femSystem.Solve(MassMatrix, LinSysRes, LinSysSol, geometry, config); - SetIterLinSolver(IterLinSol); - - /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Acceleration for t=0 ---*/ - node[iPoint]->SetSolution(iVar, 0.0); - node[iPoint]->SetSolution_Vel(iVar, 0.0); - node[iPoint]->SetSolution_Accel(iVar, LinSysSol[iPoint*nVar+iVar]); - - } - - } - - } - else{ - - /*--- Build implicit system ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Right hand side of the system (-Residual) and initial guess (x = 0) ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - LinSysSol[total_index] = 0.0; - } - - } - - /*--- Initialize residual and solution at the ghost points ---*/ - - for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar + iVar; - LinSysRes[total_index] = 0.0; - LinSysSol[total_index] = 0.0; - } - - } - - /*--- If dynamic analysis ---*/ - - if (dynamic){ - - /*--- Get mass term ---*/ - - /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++){ - - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) - a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) - a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - - } - - TimeRes_Aux.SetBlock(iPoint, Residual); - - } - - /*--- Once computed, compute M*TimeRes_Aux ---*/ - - MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); - - /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - PointTimeRes = TimeRes.GetBlock(iPoint); - - LinSysRes.AddBlock(iPoint, PointTimeRes); - - } - - - /*--- Solve the linear dynamic system ---*/ - - CSysSolve femSystem; - IterLinSol = femSystem.Solve(StiffMatrixTime, LinSysRes, LinSysSol, geometry, config); - SetIterLinSolver(IterLinSol); - } - else { - - /*--- Solve the linear static system ---*/ - - CSysSolve femSystem; - IterLinSol = femSystem.Solve(StiffMatrixSpace, LinSysRes, LinSysSol, geometry, config); - SetIterLinSolver(IterLinSol); - } - - - - /*--- Update solution and (if dynamic) advance velocity and acceleration vectors in time ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Displacements component of the solution ---*/ - - node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - } - - if (dynamic){ - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Acceleration component of the solution ---*/ - /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ - - Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - - node[iPoint]->GetSolution_time_n(iVar)) - - a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - - a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); - - } - - /*--- Set the acceleration in the node structure ---*/ - - node[iPoint]->SetSolution_Accel(Solution); - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Velocity component of the solution ---*/ - /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ - - Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ - a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + - a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); - - } - - /*--- Set the velocity in the node structure ---*/ - - node[iPoint]->SetSolution_Vel(Solution); - - } - - } - - /*--- MPI solution ---*/ - - Set_MPI_Solution(geometry, config); - - /*--- Compute the residual Ax-f ---*/ - - if (dynamic){ - - StiffMatrixTime.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); - - } - else { - - StiffMatrixSpace.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); - - } - - /*--- Compute the reactions ---*/ - - /*--- Set maximum residual to zero ---*/ - - for (iVar = 0; iVar < nVar; iVar++) { - SetRes_RMS(iVar, 0.0); - SetRes_Max(iVar, 0.0, 0); - } - - /*--- Compute the residual ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); - AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); - } - } - - /*--- Compute the root mean square residual ---*/ - - SetResidual_RMS(geometry, config); - - } - -} - -void CFEASolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned short iVar; - unsigned long iPoint, total_index, IterLinSol; - - /*--- Build implicit system ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - /*--- Right hand side of the system (-Residual) and initial guess (x = 0) ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - LinSysSol[total_index] = 0.0; - } - - } - - /*--- Initialize residual and solution at the ghost points ---*/ - for (iPoint = geometry->GetnPointDomain(); iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar + iVar; - LinSysRes[total_index] = 0.0; - LinSysSol[total_index] = 0.0; - } - } - - /*--- Solve or smooth the linear system ---*/ - - CSysSolve system; - IterLinSol = system.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); - SetIterLinSolver(IterLinSol); - - /*--- MPI solution ---*/ - - Set_MPI_Solution(geometry, config); - - /*--- Compute the residual Ax-f ---*/ - - Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); - - /*--- Set maximum residual to zero ---*/ - - for (iVar = 0; iVar < nVar; iVar++) { - SetRes_RMS(iVar, 0.0); - SetRes_Max(iVar, 0.0, 0); - } - - /*--- Compute the residual ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); - AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); - } - } - - /*--- Compute the root mean square residual ---*/ - - SetResidual_RMS(geometry, config); - -} - -void CFEASolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { - unsigned long iPoint; - - bool restart = (config->GetRestart() || config->GetRestart_Flow()); - bool dual_time = ((config->GetUnsteady_Simulation() == DT_STEPPING_1ST) || - (config->GetUnsteady_Simulation() == DT_STEPPING_2ND)); - - /*--- Problem dimension and physical time step ---*/ - unsigned short nDim = geometry[MESH_0]->GetnDim(); - - for (iPoint = 0; iPoint < geometry[MESH_0]->GetnPoint(); iPoint++) { - - /*--- Set initial boundary condition at the first iteration ---*/ - if ((ExtIter == 0) && (!restart)) { - - if (config->GetUnsteady_Simulation() == STEADY) { - if (nDim == 2) { Solution[0] = 0.0; Solution[1] = 0.0; } - else { Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; } - } - else { - if (nDim == 2) { Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; Solution[3] = 0.0; } - else { Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; Solution[3] = 0.0; Solution[4] = 0.0; Solution[5] = 0.0; } - } - - node[iPoint]->SetSolution(Solution); - - if (dual_time) { - node[iPoint]->Set_Solution_time_n(); - node[iPoint]->Set_Solution_time_n1(); - } - - } - } -} - -void CFEASolver::GetSurface_Pressure(CGeometry *geometry, CConfig *config) { - - unsigned short iMarker, icommas, iDim; - unsigned long iVertex, iPoint, iExtIter; - su2double Pressure = 0.0, Dist, Coord[3]; - string text_line; - string::size_type position; - ifstream Surface_file; - char buffer[50], cstr[200]; - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); -#endif - - /*--- Reset the value of the Flow_Pressure ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) - node[iPoint]->SetFlow_Pressure(0.0); - - for (iExtIter = 0; iExtIter < config->GetnExtIter(); iExtIter++) { - - /*--- Prepare to read surface sensitivity files (CSV) ---*/ - - string surfadj_filename = config->GetSurfFlowCoeff_FileName(); - - /*--- Remove the domain number from the surface csv filename ---*/ - - if (size > SINGLE_NODE) { - if ((rank+1 >= 0) && (rank+1 < 10)) surfadj_filename.erase (surfadj_filename.end()-2, surfadj_filename.end()); - if ((rank+1 >= 10) && (rank+1 < 100)) surfadj_filename.erase (surfadj_filename.end()-3, surfadj_filename.end()); - if ((rank+1 >= 100) && (rank+1 < 1000)) surfadj_filename.erase (surfadj_filename.end()-4, surfadj_filename.end()); - if ((rank+1 >= 1000) && (rank+1 < 10000)) surfadj_filename.erase (surfadj_filename.end()-5, surfadj_filename.end()); - } - strcpy (cstr, surfadj_filename.c_str()); - - /*--- Write file name with extension if unsteady or steady ---*/ - - if ((config->GetUnsteady_Simulation() && config->GetWrt_Unsteady()) || - (config->GetUnsteady_Simulation() == TIME_SPECTRAL)) { - if ((SU2_TYPE::Int(iExtIter) >= 0) && (SU2_TYPE::Int(iExtIter) < 10)) SPRINTF (buffer, "_0000%d.csv", SU2_TYPE::Int(iExtIter)); - if ((SU2_TYPE::Int(iExtIter) >= 10) && (SU2_TYPE::Int(iExtIter) < 100)) SPRINTF (buffer, "_000%d.csv", SU2_TYPE::Int(iExtIter)); - if ((SU2_TYPE::Int(iExtIter) >= 100) && (SU2_TYPE::Int(iExtIter) < 1000)) SPRINTF (buffer, "_00%d.csv", SU2_TYPE::Int(iExtIter)); - if ((SU2_TYPE::Int(iExtIter) >= 1000) && (SU2_TYPE::Int(iExtIter) < 10000)) SPRINTF (buffer, "_0%d.csv", SU2_TYPE::Int(iExtIter)); - if (SU2_TYPE::Int(iExtIter) >= 10000) SPRINTF (buffer, "_%d.csv", SU2_TYPE::Int(iExtIter)); - } - else SPRINTF (buffer, ".csv"); - - strcat (cstr, buffer); - - /*--- Open the surface file ---*/ - - Surface_file.open(cstr, ios::in); - - getline(Surface_file, text_line); - - /*--- Res the surface file ---*/ - - while (getline(Surface_file, text_line)) { - - /*--- Remove commas from the surface file ---*/ - - for (icommas = 0; icommas < 100; icommas++) { - position = text_line.find( ",", 0 ); - if (position!=string::npos) text_line.erase (position, 1); - } - - /*--- Read the file ---*/ - istringstream point_line(text_line); - if (nDim == 2) { point_line >> iPoint >> Coord[0] >> Coord[1] >> Pressure; } - if (nDim == 3) { point_line >> iPoint >> Coord[0] >> Coord[1] >> Coord[2] >> Pressure; } - - /*--- Compute the distance from the surface to the points in the .csv files ---*/ - - for (iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) { - if (config->GetMarker_All_KindBC(iMarker) == PRESSURE_BOUNDARY) { - for (iVertex = 0; iVertex < geometry->GetnVertex(iMarker); iVertex++) { - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - /*--- Compute the distance between the point and the grid points ---*/ - Dist = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - Dist += (Coord[iDim]-geometry->node[iPoint]->GetCoord(iDim))*(Coord[iDim]-geometry->node[iPoint]->GetCoord(iDim)); - Dist = sqrt(Dist); - - /*--- Check the distance and set the pressure ---*/ - if (Dist < 1E-10) { node[iPoint]->SetFlow_Pressure(Pressure); } - - } - } - } - - } - - Surface_file.close(); - - } - -} - -void CFEASolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, - CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - - - unsigned short nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; - unsigned short markFlow, iPoint, iMarkerFSIint; - unsigned short nMarkerFlow, iMarkerFlow; - unsigned long *nodeVertex, *donorVertex; - su2double **normalsVertex, **normalsVertex_Unit, **tn_f; - su2double factorForces; - - su2double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; - - bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); - - bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || - (flow_config->GetKind_Solver() == RANS) ); - - su2double Pinf = 0.0; - - su2double ModAmpl; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); - - bool Ramp_Load = fea_config->GetRamp_Load(); - su2double Ramp_Time = fea_config->GetRamp_Time(); - - if (CurrentTime <= Static_Time){ - ModAmpl=0.0; - } - else if((CurrentTime > Static_Time) && - (CurrentTime <= (Static_Time + Ramp_Time)) && - (Ramp_Load)){ - ModAmpl=(CurrentTime-Static_Time)/Ramp_Time; - ModAmpl=max(ModAmpl,0.0); - ModAmpl=min(ModAmpl,1.0); - } - else{ - ModAmpl=1.0; - } - - /*--- Number of markers in the FSI interface ---*/ - nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; - - /*--- Initialization of vectors of residuals ---*/ - /*--- WATCH OUT! This Shouldn't be here I think... For the dead load */ - - for (iPoint = 0; iPoint < fea_geometry[MESH_0]->GetnPoint(); iPoint ++) { - LinSysRes.SetBlock_Zero(iPoint); - } - - /*--- Redimensionalize the pressure ---*/ - - Velocity_Real = flow_config->GetVelocity_FreeStream(); - Density_Real = flow_config->GetDensity_FreeStream(); - - Velocity_ND = flow_config->GetVelocity_FreeStreamND(); - Density_ND = flow_config->GetDensity_FreeStreamND(); - - - Velocity2_Real = 0.0; - Velocity2_ND = 0.0; - for (iDim = 0; iDim < nDim; iDim++){ - Velocity2_Real += Velocity_Real[iDim]*Velocity_Real[iDim]; - Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; - } - - - factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); - - /*--- Loop over all the markers on the interface ---*/ - - for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - - //nMarkerFEA=fea_geometry[MESH_0]->GetnMarker(); - nMarkerFlow=flow_geometry[MESH_0]->GetnMarker(); - - /*--- Identification of the markers ---*/ - - markFlow = 0; - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow=iMarkerFlow; - } - } - - nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); - - nodeVertex = new unsigned long [nVertexFlow]; - donorVertex = new unsigned long [nVertexFlow]; - - tn_f = new su2double* [nVertexFlow]; - for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - tn_f[iVertex] = new su2double[nDim]; - } - - normalsVertex = new su2double* [nVertexFlow]; - for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex[iVertex] = new su2double[nDim]; - } - - normalsVertex_Unit = new su2double* [nVertexFlow]; - for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex_Unit[iVertex] = new su2double[nDim]; - } - - su2double **Grad_PrimVar = NULL; - su2double Viscosity = 0.0; - su2double Tau[3][3]; - - su2double div_vel, Delta; - su2double Area; - - /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ - - su2double Pn = 0.0; - - /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ - for (iVertex=0; iVertex < nVertexFlow; iVertex++){ - - // Node from the flow mesh - nodeVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); - - // Normals at the vertex: these normals go inside the fluid domain. - normalsVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); - - // Unit normals - Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) { - Area += normalsVertex[iVertex][iDim]*normalsVertex[iVertex][iDim]; - } - Area = sqrt(Area); - - for (iDim = 0; iDim < nDim; iDim++) { - normalsVertex_Unit[iVertex][iDim] = normalsVertex[iVertex][iDim]/Area; - } - - // Corresponding node on the structural mesh - donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); - - // Retrieve the values of pressure, viscosity - if (incompressible){ - - Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressureInc(); - Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosityInc(); - - } - } - else if (compressible){ - - Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressure(); - Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosity(); - - } - } - - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iVertex][iDim] = -(Pn-Pinf)*normalsVertex[iVertex][iDim]; - } - - // Calculate tn in the fluid nodes for the viscous term - - if ((compressible || incompressible) && viscous_flow){ - - // Divergence of the velocity - div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; - if (incompressible) div_vel = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - - for (jDim = 0 ; jDim < nDim; jDim++) { - // Dirac delta - Delta = 0.0; if (iDim == jDim) Delta = 1.0; - - // Viscous stress - Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - - TWO3*Viscosity*div_vel*Delta; - - // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iVertex][iDim] += Tau[iDim][jDim]*normalsVertex[iVertex][jDim]; - } - } - } - - // Rescale tn to SI units - - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iVertex][iDim] = tn_f[iVertex][iDim]*factorForces; - } - - // Apply time-dependent coefficient (static structure, ramp load, full load) - - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iVertex][iDim] = tn_f[iVertex][iDim]*ModAmpl; - } - - // This works only for matching meshes - - for (iDim=0; iDim < nDim; iDim++){ - Residual[iDim]=tn_f[iVertex][iDim]; - } - - - - LinSysRes.AddBlock(donorVertex[iVertex], Residual); - - } - - } - -} - -void CFEASolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, - CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - - - unsigned short nVertexFlow, iVertex, nMarkerFSIint, iDim, jDim; - unsigned short markFlow, iPoint, iMarkerFSIint; - unsigned short nMarkerFlow, iMarkerFlow; - unsigned long *nodeVertex, *donorVertex; - su2double **normalsVertex, **normalsVertex_Unit, **tn_f; - su2double factorForces; - - su2double *Velocity_ND, Density_ND, *Velocity_Real, Density_Real, Velocity2_Real, Velocity2_ND; - - bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); -// bool freesurface = (flow_config->GetKind_Regime() == FREESURFACE); - - bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || - (flow_config->GetKind_Solver() == RANS) ); - - su2double Pinf = 0.0; - - markFlow=0; - - su2double ModAmpl; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); - - bool Ramp_Load = fea_config->GetRamp_Load(); - su2double Ramp_Time = fea_config->GetRamp_Time(); - - if (CurrentTime <= Static_Time){ - ModAmpl=0.0; - } - else if((CurrentTime > Static_Time) && - (CurrentTime <= (Static_Time + Ramp_Time)) && - (Ramp_Load)){ - ModAmpl=(CurrentTime-Static_Time)/Ramp_Time; - ModAmpl=max(ModAmpl,0.0); - ModAmpl=min(ModAmpl,1.0); - } - else{ - ModAmpl=1.0; - } - - /*--- Number of markers in the FSI interface ---*/ - nMarkerFSIint = (fea_config->GetMarker_n_FSIinterface())/2; - - /*--- Initialization of vectors of residuals ---*/ - /*--- WATCH OUT! This Shouldn't be here I think... For the dead load */ - - for (iPoint = 0; iPoint < fea_geometry[MESH_0]->GetnPoint(); iPoint ++) { - LinSysRes.SetBlock_Zero(iPoint); - } - - /*--- Redimensionalize the pressure ---*/ - - Velocity_Real = flow_config->GetVelocity_FreeStream(); - Density_Real = flow_config->GetDensity_FreeStream(); - - Velocity_ND = flow_config->GetVelocity_FreeStreamND(); - Density_ND = flow_config->GetDensity_FreeStreamND(); - - - Velocity2_Real = 0.0; - Velocity2_ND = 0.0; - for (iDim = 0; iDim < nDim; iDim++){ - Velocity2_Real += Velocity_Real[iDim]*Velocity_Real[iDim]; - Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; - } - - factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); - - /*--- Loop over all the markers on the interface ---*/ - - for (iMarkerFSIint=0; iMarkerFSIint < nMarkerFSIint; iMarkerFSIint++){ - - nMarkerFlow=flow_geometry[MESH_0]->GetnMarker(); - - /*--- Identification of the markers ---*/ - - for (iMarkerFlow=0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSIint+1)){ - markFlow=iMarkerFlow; - } - } - - nVertexFlow = flow_geometry[MESH_0]->GetnVertex(markFlow); - - nodeVertex = new unsigned long [nVertexFlow]; - donorVertex = new unsigned long [nVertexFlow]; - - tn_f = new su2double* [nVertexFlow]; - for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - tn_f[iVertex] = new su2double[nDim]; - } - - normalsVertex = new su2double* [nVertexFlow]; - for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex[iVertex] = new su2double[nDim]; - } - - normalsVertex_Unit = new su2double* [nVertexFlow]; - for (iVertex = 0; iVertex < nVertexFlow; iVertex++) { - normalsVertex_Unit[iVertex] = new su2double[nDim]; - } - - su2double **Grad_PrimVar = NULL; - su2double Viscosity = 0.0; - su2double Tau[3][3]; - su2double div_vel = 0.0, Delta = 0.0; - su2double Area = 0.0; - su2double Pn = 0.0; - - /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ - /*--- Here, we are looping over the fluid, and we find the pointer to the structure (donorVertex) ---*/ - for (iVertex=0; iVertex < nVertexFlow; iVertex++){ - - // Node from the flow mesh - nodeVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNode(); - - // Normals at the vertex: these normals go inside the fluid domain. - normalsVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetNormal(); - - // Unit normals - Area = 0.0; for (iDim = 0; iDim < nDim; iDim++) { - Area += normalsVertex[iVertex][iDim]*normalsVertex[iVertex][iDim]; - } - Area = sqrt(Area); - - for (iDim = 0; iDim < nDim; iDim++) { - normalsVertex_Unit[iVertex][iDim] = normalsVertex[iVertex][iDim]/Area; - } - - // Corresponding node on the structural mesh - // donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorPoint(); - donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetInterpDonorPoint(0); // If point - //donorVertex[iVertex]=flow_geometry[MESH_0]->vertex[markFlow][iVertex]->GetDonorInfo(0,3); // If vertex - - // Retrieve the values of pressure, viscosity and density - if (incompressible){ - - Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressureInc(); - Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosityInc(); - - } - } - else if (compressible){ - - Pn=flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetPressure(); - Pinf=flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[nodeVertex[iVertex]]->GetLaminarViscosity(); - - } - } - - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iVertex][iDim] = -(Pn-Pinf)*normalsVertex[iVertex][iDim]; - } - - // Calculate tn in the fluid nodes for the viscous term - - if ( (compressible || incompressible) && viscous_flow) { - - // Divergence of the velocity - div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; - if (incompressible) div_vel = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - - for (jDim = 0 ; jDim < nDim; jDim++) { - // Dirac delta - Delta = 0.0; if (iDim == jDim) Delta = 1.0; - - // Viscous stress - Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - - TWO3*Viscosity*div_vel*Delta; - - // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iVertex][iDim] += Tau[iDim][jDim]*normalsVertex[iVertex][jDim]; - } - } - } - - // Rescale tn to SI units - - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iVertex][iDim] = tn_f[iVertex][iDim]*factorForces; - } - - // Apply time-dependent coefficient (static structure, ramp load, full load) - - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iVertex][iDim] = tn_f[iVertex][iDim]*ModAmpl; - } - - // This works only for matching meshes - - for (iDim=0; iDim < nDim; iDim++){ - Residual[iDim]=tn_f[iVertex][iDim]; - } - - LinSysRes.AddBlock(donorVertex[iVertex], Residual); - - } - - } - -} - - -void CFEASolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - - - unsigned long iPoint, iDim; - unsigned long nPoint, nDim; - su2double *Coord, *VarCoord, *Displacement; - - - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - - VarCoord = new su2double [nDim]; - - for (iPoint=0; iPoint < nPoint; iPoint++){ - - Coord = fea_geometry[MESH_0]->node[iPoint]->GetCoord(); - - Displacement = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - - for (iDim = 0; iDim < nDim; iDim++) - VarCoord[iDim] = (Coord[iDim]+Displacement[iDim]); - - fea_geometry[MESH_0]->node[iPoint]->SetCoord(VarCoord); - - } - -} - - -void CFEASolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - - unsigned short predOrder=fea_config->GetPredictorOrder(); - su2double Delta_t= fea_config->GetDelta_DynTime(); - unsigned long iPoint, iDim; - unsigned long nPoint, nDim; - su2double *solDisp, *solVel, *solVel_tn, *valPred; - - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - - for (iPoint=0; iPointnode[iPoint]->SetSolution_Pred(); - else if (predOrder==1) { - - solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); - valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - for (iDim=0; iDimnode[iPoint]->GetSolution(); - solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); - solVel_tn = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel_time_n(); - valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - for (iDim=0; iDimnode[iPoint]->SetSolution_Pred(); - } - } - -} - -void CFEASolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution, unsigned long iFSIIter) { - - unsigned long iPoint, iDim; - unsigned long nPoint, nDim; - su2double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; - su2double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; - su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; - su2double numAitk, denAitk; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); - su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn; - - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - - numAitk = 0.0; - denAitk = 0.0; - - ofstream historyFile_FSI; - bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); - if (writeHistFSI){ - char cstrFSI[200]; - string filenameHistFSI = fea_config->GetConv_FileName_FSI(); - strcpy (cstrFSI, filenameHistFSI.data()); - historyFile_FSI.open (cstrFSI, std::ios_base::app); - } - - - /*--- Only when there is movement, and a dynamic coefficient is requested, it makes sense to compute the Aitken's coefficient ---*/ - - if (CurrentTime > Static_Time) { - - if (iFSIIter == 0){ - - WAitkDyn_tn1 = GetWAitken_Dyn_tn1(); - WAitkDyn_Max = fea_config->GetAitkenDynMaxInit(); - - WAitkDyn = min(WAitkDyn_tn1, WAitkDyn_Max); - - /*--- Temporal fix, only for now ---*/ - WAitkDyn = max(WAitkDyn, 0.1); - - SetWAitken_Dyn(WAitkDyn); - if (writeHistFSI){ - historyFile_FSI << " " << endl ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; - } - - } - else{ - - for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); - dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); - dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); - - for (iDim=0; iDim < nDim; iDim++){ - - - /*--- Compute the deltaU and deltaU_n+1 ---*/ - deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; - deltaU_p1[iDim] = dispCalc[iDim] - dispPred[iDim]; - - /*--- Compute the difference ---*/ - delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; - - /*--- Add numerator and denominator ---*/ - numAitk += deltaU[iDim] * delta_deltaU[iDim]; - denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; - - } - - } - - WAitkDyn = GetWAitken_Dyn(); - - if (denAitk > 1E-8){ - WAitkDyn = - 1.0 * WAitkDyn * numAitk / denAitk ; - } - - WAitkDyn = max(WAitkDyn, 0.1); - WAitkDyn = min(WAitkDyn, 1.0); - - SetWAitken_Dyn(WAitkDyn); - - if (writeHistFSI){ - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn << "," ; - } - - } - - } - - if (writeHistFSI){historyFile_FSI.close();} - -} - -void CFEASolver::SetAitken_Relaxation(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - - unsigned long iPoint, iDim; - unsigned long nPoint, nDim; - unsigned short RelaxMethod_FSI; - su2double *dispPred, *dispCalc; - su2double WAitken; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); - - nPoint = fea_geometry[MESH_0]->GetnPoint(); - nDim = fea_geometry[MESH_0]->GetnDim(); - - RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); - - /*--- Only when there is movement it makes sense to update the solutions... ---*/ - - if (CurrentTime > Static_Time) { - - if (RelaxMethod_FSI == NO_RELAXATION){ - WAitken = 1.0; - } - else if (RelaxMethod_FSI == FIXED_PARAMETER){ - WAitken = fea_config->GetAitkenStatRelax(); - } - else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ - WAitken = GetWAitken_Dyn(); - } - else { - WAitken = 1.0; - cout << "No relaxation parameter used. " << endl; - } - - - for (iPoint=0; iPointnode[iPoint]->GetSolution_Pred(); - dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - - /*--- Set predicted solution as the old predicted solution ---*/ - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred_Old(); - - /*--- Set calculated solution as the old solution (needed for dynamic Aitken relaxation) ---*/ - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Old(dispCalc); - - /*--- Apply the Aitken relaxation ---*/ - for (iDim=0; iDim < nDim; iDim++){ - dispPred[iDim] = (1.0 - WAitken)*dispPred[iDim] + WAitken*dispCalc[iDim]; - } - - /*--- Set obtained solution as the new predicted solution ---*/ - /*--- As dispPred is the pointer to the solution_Pred, we don't need to do this... ---*/ - //fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(dispPred); - - } - - } - - -} - -void CFEASolver::Update_StructSolution(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { - - su2double *valSolutionPred; - - for (unsigned long iPoint=0; iPointGetnPoint(); iPoint++){ - - valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution(valSolutionPred); - - } - -} - diff --git a/SU2_CFD/src/variable_direct_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp deleted file mode 100644 index 631f7026eef..00000000000 --- a/SU2_CFD/src/variable_direct_elasticity.cpp +++ /dev/null @@ -1,248 +0,0 @@ -/*! - * \file variable_direct_elasticity.cpp - * \brief Definition of the solution fields. - * \author F. Palacios, R. Sanchez - * \version 4.1.0 "Cardinal" - * - * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). - * Dr. Thomas D. Economon (economon@stanford.edu). - * - * SU2 Developers: Prof. Juan J. Alonso's group at Stanford University. - * Prof. Piero Colonna's group at Delft University of Technology. - * Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. - * Prof. Alberto Guardone's group at Polytechnic University of Milan. - * Prof. Rafael Palacios' group at Imperial College London. - * - * Copyright (C) 2012-2016 SU2, the open-source CFD code. - * - * SU2 is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * SU2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SU2. If not, see . - */ - -#include "../include/variable_structure.hpp" - -CFEAVariable::CFEAVariable(void) : CVariable() { } - -CFEAVariable::CFEAVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config) -: CVariable(val_nDim, val_nvar, config) { - unsigned short iVar, iDim, jDim; - - dynamicFEA = (config->GetDynamic_Analysis() == DYNAMIC); - - /*--- Allocate residual structures ---*/ - Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; - - /*--- Initialization of variables ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - Solution[iVar] = val_fea[iVar]; - Solution_Old[iVar] = val_fea[iVar]; - } - - if (dynamicFEA){ - - /*--- Allocate solution structures ---*/ - Solution_Pred = new su2double [nVar]; - Solution_Pred_Old = new su2double [nVar]; - Solution_time_n = new su2double [nVar]; - Solution_Vel = new su2double [nVar]; - Solution_Vel_time_n = new su2double [nVar]; - Solution_Accel = new su2double [nVar]; - Solution_Accel_time_n = new su2double [nVar]; - - /*--- Initialization of variables for dynamic problem ---*/ - for (iVar = 0; iVar < nVar; iVar++) { - Solution_Pred[iVar] = val_fea[iVar]; - Solution_Pred_Old[iVar] = val_fea[iVar]; - Solution_time_n[iVar] = val_fea[iVar]; - Solution_Vel[iVar] = val_fea[iVar]; - Solution_Vel_time_n[iVar] = val_fea[iVar]; - Solution_Accel[iVar] = val_fea[iVar]; - Solution_Accel_time_n[iVar] = val_fea[iVar]; - } - } - - - - /*--- Allocate stress tensor ---*/ - Stress = new su2double* [nDim]; - for (iDim = 0; iDim < nDim; iDim++) - Stress[iDim] = new su2double [nDim]; - - /*--- Initialize stress tensor---*/ - for (iDim = 0; iDim < nDim; iDim++){ - for (jDim = 0; jDim < nDim; jDim++){ - Stress[iDim][jDim]=0.0; - } - } -} - -CFEAVariable::~CFEAVariable(void) { - unsigned short iDim; - - for (iDim = 0; iDim < nDim; iDim++) - delete [] Stress[iDim]; - delete [] Stress; - delete [] Residual_Sum; - delete [] Residual_Old; - delete [] Solution; - - if (dynamicFEA){ - delete[] Solution_Pred; - delete[] Solution_Pred_Old; - delete[] Solution_time_n; - delete[] Solution_Vel; - delete[] Solution_Vel_time_n; - delete[] Solution_Accel; - delete[] Solution_Accel_time_n ; - } - - - -} - -void CFEAVariable::SetSolution_time_n(void) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_time_n[iVar] = Solution[iVar]; - -} - -void CFEAVariable::SetSolution_time_n(su2double *val_solution_time_n) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_time_n[iVar] = val_solution_time_n[iVar]; - -} - -void CFEAVariable::SetSolution_Vel(su2double *val_solution_vel) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Vel[iVar] = val_solution_vel[iVar]; - -} - -void CFEAVariable::SetSolution_Vel_time_n(su2double *val_solution_vel_time_n) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Vel_time_n[iVar] = val_solution_vel_time_n[iVar]; - -} - -void CFEAVariable::SetSolution_Vel_time_n(void) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Vel_time_n[iVar] = Solution_Vel[iVar]; - -} - -void CFEAVariable::SetSolution_Accel(su2double *val_solution_accel) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Accel[iVar] = val_solution_accel[iVar]; - -} - -void CFEAVariable::SetSolution_Accel_time_n(su2double *val_solution_accel_time_n) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Accel_time_n[iVar] = val_solution_accel_time_n[iVar]; - -} - -void CFEAVariable::SetSolution_Accel_time_n(void) { - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Accel_time_n[iVar] = Solution_Accel[iVar]; - -} - -void CFEAVariable::SetSolution_Pred(void){ - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Pred[iVar] = Solution[iVar]; - -} - -void CFEAVariable::SetSolution_Pred_Old(void){ - - for (unsigned short iVar = 0; iVar < nVar; iVar++) - Solution_Pred_Old[iVar] = Solution_Pred[iVar]; - -} - - -CFEABoundVariable::CFEABoundVariable(void) : CVariable() { } - -CFEABoundVariable::CFEABoundVariable(unsigned short val_nDim, unsigned short val_nvar, unsigned short val_nElBound, CConfig *config) -: CVariable(val_nDim, val_nvar, config) { - unsigned short iDim, jDim; - - /*--- Allocate residual structures ---*/ - Residual_Sum = new su2double [nVar]; Residual_Old = new su2double [nVar]; - - /*--- Allocate stress tensor ---*/ - if (nDim == 2){ - Traction = new su2double* [2*nDim]; - for (iDim = 0; iDim < 2*nDim ; iDim++) - Traction[iDim] = new su2double [val_nElBound]; - } - else if (nDim == 3){ - /*--- Allocate stress tensor ---*/ - Traction = new su2double* [4*nDim]; - for (iDim = 0; iDim < 4*nDim ; iDim++) - Traction[iDim] = new su2double [val_nElBound]; - } - - /*--- Initialize stress tensor ---*/ - if (nDim == 2){ - /*--- Initialize stress tensor---*/ - for (iDim = 0; iDim < 2*nDim; iDim++){ - for (jDim = 0; jDim < val_nElBound; jDim++){ - Traction[iDim][jDim]=0.0; - } - } - } - else if (nDim == 3){ - /*--- Initialize stress tensor---*/ - for (iDim = 0; iDim < 4*nDim; iDim++){ - for (jDim = 0; jDim < val_nElBound; jDim++){ - Traction[iDim][jDim]=0.0; - } - } - } - -} - -CFEABoundVariable::~CFEABoundVariable(void) { - unsigned short iDim; - - /*--- Initialize stress tensor ---*/ - if (nDim == 2){ - /*--- Initialize stress tensor---*/ - for (iDim = 0; iDim < 2*nDim; iDim++){ - delete [] Traction[iDim]; - } - } - else if (nDim == 3){ - /*--- Initialize stress tensor---*/ - for (iDim = 0; iDim < 4*nDim; iDim++){ - delete [] Traction[iDim]; - } - } - - delete [] Traction; - - delete [] Residual_Sum; - delete [] Residual_Old; - -} From 778bd1fbd62e7264886d32ca3d6bf9aa7ddf6ad7 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 14:29:57 +0000 Subject: [PATCH 232/269] Renamed files from *fem* to *direct* --- SU2_CFD/obj/Makefile.am | 10 +- SU2_CFD/obj/Makefile.in | 433 +++++++++--------- ...ity.cpp => numerics_direct_elasticity.cpp} | 0 ... => numerics_direct_elasticity_linear.cpp} | 0 ... numerics_direct_elasticity_nonlinear.cpp} | 0 ...icity.cpp => solver_direct_elasticity.cpp} | 0 ...ity.cpp => variable_direct_elasticity.cpp} | 0 7 files changed, 223 insertions(+), 220 deletions(-) rename SU2_CFD/src/{numerics_fem_elasticity.cpp => numerics_direct_elasticity.cpp} (100%) rename SU2_CFD/src/{numerics_fem_linear_elasticity.cpp => numerics_direct_elasticity_linear.cpp} (100%) rename SU2_CFD/src/{numerics_fem_nonlinear_elasticity.cpp => numerics_direct_elasticity_nonlinear.cpp} (100%) rename SU2_CFD/src/{solver_fem_elasticity.cpp => solver_direct_elasticity.cpp} (100%) rename SU2_CFD/src/{variable_fem_elasticity.cpp => variable_direct_elasticity.cpp} (100%) diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index d2f53fd831f..26cd1b5cfde 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -87,9 +87,9 @@ su2_cfd_sources = \ ../src/numerics_direct_transition.cpp \ ../src/numerics_direct_turbulent.cpp \ ../src/numerics_direct_wave.cpp \ - ../src/numerics_fem_nonlinear_elasticity.cpp \ - ../src/numerics_fem_linear_elasticity.cpp \ - ../src/numerics_fem_elasticity.cpp \ + ../src/numerics_direct_elasticity_nonlinear.cpp \ + ../src/numerics_direct_elasticity_linear.cpp \ + ../src/numerics_direct_elasticity.cpp \ ../src/numerics_structure.cpp \ ../src/numerics_template.cpp \ ../src/output_cgns.cpp \ @@ -108,7 +108,7 @@ su2_cfd_sources = \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ ../src/solver_direct_wave.cpp \ - ../src/solver_fem_elasticity.cpp \ + ../src/solver_direct_elasticity.cpp \ ../src/solver_structure.cpp \ ../src/solver_template.cpp \ ../src/transfer_physics.cpp \ @@ -125,7 +125,7 @@ su2_cfd_sources = \ ../src/variable_direct_transition.cpp \ ../src/variable_direct_turbulent.cpp \ ../src/variable_direct_wave.cpp \ - ../src/variable_fem_elasticity.cpp \ + ../src/variable_direct_elasticity.cpp \ ../src/variable_structure.cpp \ ../src/variable_template.cpp diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 21fd305b1af..7f397af41fd 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -137,9 +137,9 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/numerics_direct_transition.cpp \ ../src/numerics_direct_turbulent.cpp \ ../src/numerics_direct_wave.cpp \ - ../src/numerics_fem_nonlinear_elasticity.cpp \ - ../src/numerics_fem_linear_elasticity.cpp \ - ../src/numerics_fem_elasticity.cpp \ + ../src/numerics_direct_elasticity_nonlinear.cpp \ + ../src/numerics_direct_elasticity_linear.cpp \ + ../src/numerics_direct_elasticity.cpp \ ../src/numerics_structure.cpp ../src/numerics_template.cpp \ ../src/output_cgns.cpp ../src/output_structure.cpp \ ../src/output_tecplot.cpp ../src/output_fieldview.cpp \ @@ -152,7 +152,8 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ - ../src/solver_direct_wave.cpp ../src/solver_fem_elasticity.cpp \ + ../src/solver_direct_wave.cpp \ + ../src/solver_direct_elasticity.cpp \ ../src/solver_structure.cpp ../src/solver_template.cpp \ ../src/transfer_physics.cpp ../src/transfer_structure.cpp \ ../src/SU2_CFD.cpp ../src/transport_model.cpp \ @@ -166,7 +167,7 @@ am_____bin_SU2_CFD_SOURCES_DIST = ../include/definition_structure.hpp \ ../src/variable_direct_transition.cpp \ ../src/variable_direct_turbulent.cpp \ ../src/variable_direct_wave.cpp \ - ../src/variable_fem_elasticity.cpp \ + ../src/variable_direct_elasticity.cpp \ ../src/variable_structure.cpp ../src/variable_template.cpp am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ @@ -187,9 +188,9 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.$(OBJEXT) \ - ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.$(OBJEXT) \ - ../src/___bin_SU2_CFD-numerics_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.$(OBJEXT) \ + ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.$(OBJEXT) \ + ../src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-numerics_template.$(OBJEXT) \ ../src/___bin_SU2_CFD-output_cgns.$(OBJEXT) \ @@ -208,7 +209,7 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-solver_template.$(OBJEXT) \ ../src/___bin_SU2_CFD-transfer_physics.$(OBJEXT) \ @@ -225,7 +226,7 @@ am__objects_1 = ../src/___bin_SU2_CFD-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD-variable_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD-variable_template.$(OBJEXT) @BUILD_NORMAL_TRUE@am____bin_SU2_CFD_OBJECTS = $(am__objects_1) @@ -267,9 +268,9 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../src/numerics_direct_transition.cpp \ ../src/numerics_direct_turbulent.cpp \ ../src/numerics_direct_wave.cpp \ - ../src/numerics_fem_nonlinear_elasticity.cpp \ - ../src/numerics_fem_linear_elasticity.cpp \ - ../src/numerics_fem_elasticity.cpp \ + ../src/numerics_direct_elasticity_nonlinear.cpp \ + ../src/numerics_direct_elasticity_linear.cpp \ + ../src/numerics_direct_elasticity.cpp \ ../src/numerics_structure.cpp ../src/numerics_template.cpp \ ../src/output_cgns.cpp ../src/output_structure.cpp \ ../src/output_tecplot.cpp ../src/output_fieldview.cpp \ @@ -282,7 +283,8 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ - ../src/solver_direct_wave.cpp ../src/solver_fem_elasticity.cpp \ + ../src/solver_direct_wave.cpp \ + ../src/solver_direct_elasticity.cpp \ ../src/solver_structure.cpp ../src/solver_template.cpp \ ../src/transfer_physics.cpp ../src/transfer_structure.cpp \ ../src/SU2_CFD.cpp ../src/transport_model.cpp \ @@ -296,7 +298,7 @@ am_____bin_SU2_CFD_AD_SOURCES_DIST = \ ../src/variable_direct_transition.cpp \ ../src/variable_direct_turbulent.cpp \ ../src/variable_direct_wave.cpp \ - ../src/variable_fem_elasticity.cpp \ + ../src/variable_direct_elasticity.cpp \ ../src/variable_structure.cpp ../src/variable_template.cpp am__objects_2 = \ ../src/___bin_SU2_CFD_AD-definition_structure.$(OBJEXT) \ @@ -317,9 +319,9 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-numerics_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.$(OBJEXT) \ + ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.$(OBJEXT) \ + ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-numerics_template.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-output_cgns.$(OBJEXT) \ @@ -338,7 +340,7 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-solver_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-solver_template.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-transfer_physics.$(OBJEXT) \ @@ -355,7 +357,7 @@ am__objects_2 = \ ../src/___bin_SU2_CFD_AD-variable_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_AD-variable_template.$(OBJEXT) @BUILD_REVERSE_TRUE@am____bin_SU2_CFD_AD_OBJECTS = $(am__objects_2) @@ -396,9 +398,9 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/numerics_direct_transition.cpp \ ../src/numerics_direct_turbulent.cpp \ ../src/numerics_direct_wave.cpp \ - ../src/numerics_fem_nonlinear_elasticity.cpp \ - ../src/numerics_fem_linear_elasticity.cpp \ - ../src/numerics_fem_elasticity.cpp \ + ../src/numerics_direct_elasticity_nonlinear.cpp \ + ../src/numerics_direct_elasticity_linear.cpp \ + ../src/numerics_direct_elasticity.cpp \ ../src/numerics_structure.cpp ../src/numerics_template.cpp \ ../src/output_cgns.cpp ../src/output_structure.cpp \ ../src/output_tecplot.cpp ../src/output_fieldview.cpp \ @@ -411,7 +413,8 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/solver_direct_mean.cpp \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ - ../src/solver_direct_wave.cpp ../src/solver_fem_elasticity.cpp \ + ../src/solver_direct_wave.cpp \ + ../src/solver_direct_elasticity.cpp \ ../src/solver_structure.cpp ../src/solver_template.cpp \ ../src/transfer_physics.cpp ../src/transfer_structure.cpp \ ../src/SU2_CFD.cpp ../src/transport_model.cpp \ @@ -425,7 +428,7 @@ am_____bin_SU2_CFD_DIRECTDIFF_SOURCES_DIST = \ ../src/variable_direct_transition.cpp \ ../src/variable_direct_turbulent.cpp \ ../src/variable_direct_wave.cpp \ - ../src/variable_fem_elasticity.cpp \ + ../src/variable_direct_elasticity.cpp \ ../src/variable_structure.cpp ../src/variable_template.cpp am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-fluid_model.$(OBJEXT) \ @@ -445,9 +448,9 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_template.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-output_cgns.$(OBJEXT) \ @@ -466,7 +469,7 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-solver_template.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.$(OBJEXT) \ @@ -483,7 +486,7 @@ am__objects_3 = ../src/___bin_SU2_CFD_DIRECTDIFF-definition_structure.$(OBJEXT) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_transition.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_turbulent.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_wave.$(OBJEXT) \ - ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.$(OBJEXT) \ + ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_structure.$(OBJEXT) \ ../src/___bin_SU2_CFD_DIRECTDIFF-variable_template.$(OBJEXT) @BUILD_DIRECTDIFF_TRUE@am____bin_SU2_CFD_DIRECTDIFF_OBJECTS = \ @@ -726,9 +729,9 @@ su2_cfd_sources = \ ../src/numerics_direct_transition.cpp \ ../src/numerics_direct_turbulent.cpp \ ../src/numerics_direct_wave.cpp \ - ../src/numerics_fem_nonlinear_elasticity.cpp \ - ../src/numerics_fem_linear_elasticity.cpp \ - ../src/numerics_fem_elasticity.cpp \ + ../src/numerics_direct_elasticity_nonlinear.cpp \ + ../src/numerics_direct_elasticity_linear.cpp \ + ../src/numerics_direct_elasticity.cpp \ ../src/numerics_structure.cpp \ ../src/numerics_template.cpp \ ../src/output_cgns.cpp \ @@ -747,7 +750,7 @@ su2_cfd_sources = \ ../src/solver_direct_transition.cpp \ ../src/solver_direct_turbulent.cpp \ ../src/solver_direct_wave.cpp \ - ../src/solver_fem_elasticity.cpp \ + ../src/solver_direct_elasticity.cpp \ ../src/solver_structure.cpp \ ../src/solver_template.cpp \ ../src/transfer_physics.cpp \ @@ -764,7 +767,7 @@ su2_cfd_sources = \ ../src/variable_direct_transition.cpp \ ../src/variable_direct_turbulent.cpp \ ../src/variable_direct_wave.cpp \ - ../src/variable_fem_elasticity.cpp \ + ../src/variable_direct_elasticity.cpp \ ../src/variable_structure.cpp \ ../src/variable_template.cpp @@ -918,11 +921,11 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-numerics_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD-numerics_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-numerics_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -960,7 +963,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-solver_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD-solver_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-solver_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -994,7 +997,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD-variable_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD-variable_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD-variable_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1042,11 +1045,11 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-numerics_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-numerics_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1084,7 +1087,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-solver_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-solver_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_AD-solver_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-solver_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1118,7 +1121,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_AD-variable_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_AD-variable_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_AD-variable_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1163,11 +1166,11 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1205,7 +1208,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1239,7 +1242,7 @@ clean-binPROGRAMS: ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_wave.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) -../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.$(OBJEXT): \ +../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) ../src/___bin_SU2_CFD_DIRECTDIFF-variable_structure.$(OBJEXT): \ ../src/$(am__dirstamp) ../src/$(DEPDIR)/$(am__dirstamp) @@ -1269,15 +1272,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-numerics_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-output_cgns.Po@am__quote@ @@ -1290,13 +1293,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-solver_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-transfer_physics.Po@am__quote@ @@ -1306,13 +1309,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD-variable_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-SU2_CFD.Po@am__quote@ @@ -1328,15 +1331,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-output_cgns.Po@am__quote@ @@ -1349,13 +1352,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-transfer_physics.Po@am__quote@ @@ -1365,13 +1368,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-SU2_CFD.Po@am__quote@ @@ -1387,15 +1390,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-output_cgns.Po@am__quote@ @@ -1408,13 +1411,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-transfer_physics.Po@am__quote@ @@ -1424,13 +1427,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_levelset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_adjoint_turbulent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_heat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_mean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_poisson.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_transition.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_turbulent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_wave.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_structure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_template.Po@am__quote@ @@ -1702,47 +1705,47 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_wave.obj `if test -f '../src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o: ../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.o: ../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.o `test -f '../src/numerics_direct_elasticity_nonlinear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_nonlinear.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.o `test -f '../src/numerics_direct_elasticity_nonlinear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_nonlinear.cpp -../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj: ../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.obj: ../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.obj `if test -f '../src/numerics_direct_elasticity_nonlinear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_nonlinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_nonlinear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_nonlinear.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_nonlinear.obj `if test -f '../src/numerics_direct_elasticity_nonlinear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_nonlinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_nonlinear.cpp'; fi` -../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o: ../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.o: ../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.o `test -f '../src/numerics_direct_elasticity_linear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_linear.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.o `test -f '../src/numerics_direct_elasticity_linear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_linear.cpp -../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj: ../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.obj: ../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.obj `if test -f '../src/numerics_direct_elasticity_linear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_linear.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity_linear.obj `if test -f '../src/numerics_direct_elasticity_linear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_linear.cpp'; fi` -../src/___bin_SU2_CFD-numerics_fem_elasticity.o: ../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-numerics_direct_elasticity.o: ../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp -../src/___bin_SU2_CFD-numerics_fem_elasticity.obj: ../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-numerics_direct_elasticity.obj: ../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD-numerics_structure.o: ../src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-numerics_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-numerics_structure.Tpo -c -o ../src/___bin_SU2_CFD-numerics_structure.o `test -f '../src/numerics_structure.cpp' || echo '$(srcdir)/'`../src/numerics_structure.cpp @@ -1996,19 +1999,19 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_direct_wave.obj `if test -f '../src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD-solver_fem_elasticity.o: ../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-solver_direct_elasticity.o: ../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp -../src/___bin_SU2_CFD-solver_fem_elasticity.obj: ../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-solver_direct_elasticity.obj: ../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD-solver_structure.o: ../src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-solver_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-solver_structure.Tpo -c -o ../src/___bin_SU2_CFD-solver_structure.o `test -f '../src/solver_structure.cpp' || echo '$(srcdir)/'`../src/solver_structure.cpp @@ -2234,19 +2237,19 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_direct_wave.obj `if test -f '../src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD-variable_fem_elasticity.o: ../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-variable_direct_elasticity.o: ../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp -../src/___bin_SU2_CFD-variable_fem_elasticity.obj: ../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD-variable_direct_elasticity.obj: ../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD-variable_structure.o: ../src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD-variable_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD-variable_structure.Tpo -c -o ../src/___bin_SU2_CFD-variable_structure.o `test -f '../src/variable_structure.cpp' || echo '$(srcdir)/'`../src/variable_structure.cpp @@ -2528,47 +2531,47 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_wave.obj `if test -f '../src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.o: ../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.o: ../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.o `test -f '../src/numerics_direct_elasticity_nonlinear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_nonlinear.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.o `test -f '../src/numerics_direct_elasticity_nonlinear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_nonlinear.cpp -../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.obj: ../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.obj: ../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.obj `if test -f '../src/numerics_direct_elasticity_nonlinear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_nonlinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_nonlinear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_nonlinear.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_nonlinear.obj `if test -f '../src/numerics_direct_elasticity_nonlinear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_nonlinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_nonlinear.cpp'; fi` -../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.o: ../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.o: ../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.o `test -f '../src/numerics_direct_elasticity_linear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_linear.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.o `test -f '../src/numerics_direct_elasticity_linear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_linear.cpp -../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.obj: ../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.obj: ../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.obj `if test -f '../src/numerics_direct_elasticity_linear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_linear.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity_linear.obj `if test -f '../src/numerics_direct_elasticity_linear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_linear.cpp'; fi` -../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.o: ../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o: ../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp -../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.obj: ../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj: ../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD_AD-numerics_structure.o: ../src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-numerics_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-numerics_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-numerics_structure.o `test -f '../src/numerics_structure.cpp' || echo '$(srcdir)/'`../src/numerics_structure.cpp @@ -2822,19 +2825,19 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_direct_wave.obj `if test -f '../src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD_AD-solver_fem_elasticity.o: ../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o: ../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp -../src/___bin_SU2_CFD_AD-solver_fem_elasticity.obj: ../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj: ../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD_AD-solver_structure.o: ../src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-solver_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-solver_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-solver_structure.o `test -f '../src/solver_structure.cpp' || echo '$(srcdir)/'`../src/solver_structure.cpp @@ -3060,19 +3063,19 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_direct_wave.obj `if test -f '../src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD_AD-variable_fem_elasticity.o: ../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-variable_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o: ../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp -../src/___bin_SU2_CFD_AD-variable_fem_elasticity.obj: ../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-variable_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj: ../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_AD-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD_AD-variable_structure.o: ../src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_AD_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_AD-variable_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_AD-variable_structure.Tpo -c -o ../src/___bin_SU2_CFD_AD-variable_structure.o `test -f '../src/variable_structure.cpp' || echo '$(srcdir)/'`../src/variable_structure.cpp @@ -3354,47 +3357,47 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_wave.obj `if test -f '../src/numerics_direct_wave.cpp'; then $(CYGPATH_W) '../src/numerics_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.o: ../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.o: ../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.o `test -f '../src/numerics_direct_elasticity_nonlinear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_nonlinear.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.o `test -f '../src/numerics_fem_nonlinear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_nonlinear_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.o `test -f '../src/numerics_direct_elasticity_nonlinear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_nonlinear.cpp -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.obj: ../src/numerics_fem_nonlinear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_nonlinear_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.obj: ../src/numerics_direct_elasticity_nonlinear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.obj `if test -f '../src/numerics_direct_elasticity_nonlinear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_nonlinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_nonlinear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_nonlinear.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_nonlinear_elasticity.obj `if test -f '../src/numerics_fem_nonlinear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_nonlinear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_nonlinear_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_nonlinear.obj `if test -f '../src/numerics_direct_elasticity_nonlinear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_nonlinear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_nonlinear.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.o: ../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.o: ../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.o `test -f '../src/numerics_direct_elasticity_linear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_linear.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.o `test -f '../src/numerics_fem_linear_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_linear_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.o `test -f '../src/numerics_direct_elasticity_linear.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity_linear.cpp -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.obj: ../src/numerics_fem_linear_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_linear_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.obj: ../src/numerics_direct_elasticity_linear.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.obj `if test -f '../src/numerics_direct_elasticity_linear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_linear.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity_linear.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_linear_elasticity.obj `if test -f '../src/numerics_fem_linear_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_linear_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_linear_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity_linear.obj `if test -f '../src/numerics_direct_elasticity_linear.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity_linear.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity_linear.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.o: ../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o: ../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.o `test -f '../src/numerics_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.o `test -f '../src/numerics_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/numerics_direct_elasticity.cpp -../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.obj: ../src/numerics_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj: ../src/numerics_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/numerics_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_fem_elasticity.obj `if test -f '../src/numerics_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_direct_elasticity.obj `if test -f '../src/numerics_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/numerics_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/numerics_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.o: ../src/numerics_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-numerics_structure.o `test -f '../src/numerics_structure.cpp' || echo '$(srcdir)/'`../src/numerics_structure.cpp @@ -3648,19 +3651,19 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_wave.obj `if test -f '../src/solver_direct_wave.cpp'; then $(CYGPATH_W) '../src/solver_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.o: ../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o: ../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.o `test -f '../src/solver_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.o `test -f '../src/solver_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/solver_direct_elasticity.cpp -../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.obj: ../src/solver_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj: ../src/solver_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/solver_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_fem_elasticity.obj `if test -f '../src/solver_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_direct_elasticity.obj `if test -f '../src/solver_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/solver_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/solver_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.o: ../src/solver_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-solver_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-solver_structure.o `test -f '../src/solver_structure.cpp' || echo '$(srcdir)/'`../src/solver_structure.cpp @@ -3886,19 +3889,19 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_wave.obj `if test -f '../src/variable_direct_wave.cpp'; then $(CYGPATH_W) '../src/variable_direct_wave.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_wave.cpp'; fi` -../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.o: ../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.o' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o: ../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.o `test -f '../src/variable_fem_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_fem_elasticity.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.o `test -f '../src/variable_direct_elasticity.cpp' || echo '$(srcdir)/'`../src/variable_direct_elasticity.cpp -../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.obj: ../src/variable_fem_elasticity.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_fem_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.obj' libtool=no @AMDEPBACKSLASH@ +../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj: ../src/variable_direct_elasticity.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Tpo ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='../src/variable_direct_elasticity.cpp' object='../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_fem_elasticity.obj `if test -f '../src/variable_fem_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_fem_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_fem_elasticity.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_direct_elasticity.obj `if test -f '../src/variable_direct_elasticity.cpp'; then $(CYGPATH_W) '../src/variable_direct_elasticity.cpp'; else $(CYGPATH_W) '$(srcdir)/../src/variable_direct_elasticity.cpp'; fi` ../src/___bin_SU2_CFD_DIRECTDIFF-variable_structure.o: ../src/variable_structure.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS) $(CXXFLAGS) -MT ../src/___bin_SU2_CFD_DIRECTDIFF-variable_structure.o -MD -MP -MF ../src/$(DEPDIR)/___bin_SU2_CFD_DIRECTDIFF-variable_structure.Tpo -c -o ../src/___bin_SU2_CFD_DIRECTDIFF-variable_structure.o `test -f '../src/variable_structure.cpp' || echo '$(srcdir)/'`../src/variable_structure.cpp diff --git a/SU2_CFD/src/numerics_fem_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp similarity index 100% rename from SU2_CFD/src/numerics_fem_elasticity.cpp rename to SU2_CFD/src/numerics_direct_elasticity.cpp diff --git a/SU2_CFD/src/numerics_fem_linear_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp similarity index 100% rename from SU2_CFD/src/numerics_fem_linear_elasticity.cpp rename to SU2_CFD/src/numerics_direct_elasticity_linear.cpp diff --git a/SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp similarity index 100% rename from SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp rename to SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp diff --git a/SU2_CFD/src/solver_fem_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp similarity index 100% rename from SU2_CFD/src/solver_fem_elasticity.cpp rename to SU2_CFD/src/solver_direct_elasticity.cpp diff --git a/SU2_CFD/src/variable_fem_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp similarity index 100% rename from SU2_CFD/src/variable_fem_elasticity.cpp rename to SU2_CFD/src/variable_direct_elasticity.cpp From 7b23a46b2287dbf2782585b0c9fda462abcea63c Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 14:35:32 +0000 Subject: [PATCH 233/269] Added (C) --- SU2_CFD/src/numerics_direct_elasticity.cpp | 2 ++ SU2_CFD/src/numerics_direct_elasticity_linear.cpp | 2 ++ SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp | 2 ++ SU2_CFD/src/solver_direct_elasticity.cpp | 2 ++ 4 files changed, 8 insertions(+) diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index b23d1016670..cb992a52b35 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -13,6 +13,8 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * + * Copyright (C) 2012-2016 SU2, the open-source CFD code. + * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either diff --git a/SU2_CFD/src/numerics_direct_elasticity_linear.cpp b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp index d4025c2112d..df19737d309 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_linear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp @@ -13,6 +13,8 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * + * Copyright (C) 2012-2016 SU2, the open-source CFD code. + * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either diff --git a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp index b8bdeb77fd2..9c0f6d9c780 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp @@ -13,6 +13,8 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * + * Copyright (C) 2012-2016 SU2, the open-source CFD code. + * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 5553163a133..752adcf3d2a 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -13,6 +13,8 @@ * Prof. Alberto Guardone's group at Polytechnic University of Milan. * Prof. Rafael Palacios' group at Imperial College London. * + * Copyright (C) 2012-2016 SU2, the open-source CFD code. + * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either From 46f6a684be9384a56f2cb01a961baf18ca9cc6d5 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 14:38:32 +0000 Subject: [PATCH 234/269] Renamed LINEAR_ELASTICITY as FEM_ELASTICITY in TestCases/config*.cfg --- TestCases/actuator_disk/ActDisk_Euler.cfg | 4 ++-- TestCases/aeroelastic/aeroelastic_NACA64A010.cfg | 2 +- TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg | 2 +- TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg | 2 +- TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg | 2 +- .../cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg | 2 +- TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg | 2 +- TestCases/cont_adj_rans/naca0012/turb_nasa.cfg | 2 +- TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg | 2 +- TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg | 2 +- TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg | 2 +- TestCases/euler/biparabolic/BIPARABOLIC.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012.cfg | 2 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- TestCases/fixed_cl/naca0012/inv_NACA0012.cfg | 4 ++-- TestCases/gust/inv_gust_NACA0012.cfg | 2 +- TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg | 2 +- TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg | 4 ++-- TestCases/incomp_rans/AhmedBody/AhmedBody.cfg | 2 +- TestCases/incomp_rans/naca0012/naca0012.cfg | 4 ++-- TestCases/linear_elasticity/beam.cfg | 6 +++--- TestCases/moving_wall/cavity/lam_cavity.cfg | 2 +- .../moving_wall/spinning_cylinder/spinning_cylinder.cfg | 2 +- TestCases/navierstokes/cylinder/cylinder_lowmach.cfg | 2 +- TestCases/navierstokes/cylinder/lam_cylinder.cfg | 2 +- TestCases/navierstokes/flatplate/lam_flatplate.cfg | 2 +- TestCases/nicf/LS89/turb_SA_PR.cfg | 2 +- TestCases/nicf/LS89/turb_SST_PR.cfg | 2 +- .../pitching_naca64a010/pitching_NACA64A010.cfg | 2 +- .../pitching_oneram6/pitching_ONERAM6.cfg | 2 +- .../rotating_naca0012/rotating_NACA0012.cfg | 2 +- .../steady_inverse_design/inv_NACA0012.cfg | 4 ++-- .../optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg | 2 +- .../steady_naca0012/inv_NACA0012_basic.cfg | 2 +- .../optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg | 2 +- .../optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg | 2 +- .../pitching_naca64a010/turb_NACA64A010.cfg | 2 +- .../optimization_rans/pitching_oneram6/turb_ONERAM6.cfg | 2 +- TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg | 2 +- .../optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/rans/flatplate/turb_SA_flatplate.cfg | 2 +- TestCases/rans/flatplate/turb_SST_flatplate.cfg | 2 +- TestCases/rans/naca0012/turb_NACA0012_sa.cfg | 2 +- TestCases/rans/naca0012/turb_NACA0012_sa_neg.cfg | 2 +- TestCases/rans/naca0012/turb_NACA0012_sst.cfg | 2 +- TestCases/rans/oneram6/turb_ONERAM6.cfg | 2 +- TestCases/rans/rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/rans/rae2822/turb_SST_RAE2822.cfg | 2 +- TestCases/rans/s809/trans_s809.cfg | 2 +- TestCases/rans/s809/turb_S809.cfg | 2 +- TestCases/rans/vki_turbine/turb_vki.cfg | 2 +- TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg | 2 +- TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/spectral_method/spectral.cfg | 2 +- .../pitching_naca64a010_euler/pitching_NACA64A010.cfg | 2 +- .../unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg | 2 +- TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg | 2 +- TestCases/unsteady/square_cylinder/turb_square.cfg | 2 +- 59 files changed, 66 insertions(+), 66 deletions(-) diff --git a/TestCases/actuator_disk/ActDisk_Euler.cfg b/TestCases/actuator_disk/ActDisk_Euler.cfg index da4e280f211..4c11dd0ff7a 100644 --- a/TestCases/actuator_disk/ActDisk_Euler.cfg +++ b/TestCases/actuator_disk/ActDisk_Euler.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % @@ -383,4 +383,4 @@ OPT_CONSTRAINT= NONE % Optimization design variables, separated by semicolons %DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( 1, 1.0 | airfoil | 0, 0.15 ); ( 1, 1.0 | airfoil | 0, 0.20 ); ( 1, 1.0 | airfoil | 0, 0.25 ); ( 1, 1.0 | airfoil | 0, 0.30 ); ( 1, 1.0 | airfoil | 0, 0.35 ); ( 1, 1.0 | airfoil | 0, 0.40 ); ( 1, 1.0 | airfoil | 0, 0.45 ); ( 1, 1.0 | airfoil | 0, 0.50 ); ( 1, 1.0 | airfoil | 0, 0.55 ); ( 1, 1.0 | airfoil | 0, 0.60 ); ( 1, 1.0 | airfoil | 0, 0.65 ); ( 1, 1.0 | airfoil | 0, 0.70 ); ( 1, 1.0 | airfoil | 0, 0.75 ); ( 1, 1.0 | airfoil | 0, 0.80 ); ( 1, 1.0 | airfoil | 0, 0.85 ); ( 1, 1.0 | airfoil | 0, 0.90 ); ( 1, 1.0 | airfoil | 0, 0.95 ); ( 1, 1.0 | airfoil | 1, 0.05 ); ( 1, 1.0 | airfoil | 1, 0.10 ); ( 1, 1.0 | airfoil | 1, 0.15 ); ( 1, 1.0 | airfoil | 1, 0.20 ); ( 1, 1.0 | airfoil | 1, 0.25 ); ( 1, 1.0 | airfoil | 1, 0.30 ); ( 1, 1.0 | airfoil | 1, 0.35 ); ( 1, 1.0 | airfoil | 1, 0.40 ); ( 1, 1.0 | airfoil | 1, 0.45 ); ( 1, 1.0 | airfoil | 1, 0.50 ); ( 1, 1.0 | airfoil | 1, 0.55 ); ( 1, 1.0 | airfoil | 1, 0.60 ); ( 1, 1.0 | airfoil | 1, 0.65 ); ( 1, 1.0 | airfoil | 1, 0.70 ); ( 1, 1.0 | airfoil | 1, 0.75 ); ( 1, 1.0 | airfoil | 1, 0.80 ); ( 1, 1.0 | airfoil | 1, 0.85 ); ( 1, 1.0 | airfoil | 1, 0.90 ); ( 1, 1.0 | airfoil | 1, 0.95 ) -DEFINITION_DV= ( 15, 1.0 | airfoil | 0, 0, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 0, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 1, 0, 1.0 ) \ No newline at end of file +DEFINITION_DV= ( 15, 1.0 | airfoil | 0, 0, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 0, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 1, 0, 1.0 ) diff --git a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg index ed51bc32e5e..97cbd2fd55d 100644 --- a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg +++ b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg index 3c12cd11067..ed2217be4a8 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg index 28b0723d720..7793cd86357 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg @@ -13,7 +13,7 @@ % % Physical governing equations (EULER, NAVIER_STOKES, % TNE2_EULER, TNE2_NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg index 23e7b29b123..21d645618ed 100644 --- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg +++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg @@ -13,7 +13,7 @@ % % Physical governing equations (EULER, NAVIER_STOKES, % TNE2_EULER, TNE2_NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg index 606b5a2d644..07346248ebe 100644 --- a/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg index d9c6743471a..f5a236f78b4 100644 --- a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg index c0ef0346162..766cf903187 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) % PHYSICAL_PROBLEM= NAVIER_STOKES diff --git a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg index 2e28aceca02..40223661781 100644 --- a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg @@ -16,7 +16,7 @@ % FREE_SURFACE_EULER, FREE_SURFACE_NAVIER_STOKES, % FLUID_STRUCTURE_EULER, FLUID_STRUCTURE_NAVIER_STOKES, % AEROACOUSTIC_EULER, AEROACOUSTIC_NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY) +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY) PHYSICAL_PROBLEM= NAVIER_STOKES % % Specify turbulence model (NONE, SA, SA_NEG, SST) diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg index 3e6034d4907..1ff1ffba410 100644 --- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg +++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg @@ -14,7 +14,7 @@ % % Physical governing equations (EULER, NAVIER_STOKES, % TNE2_EULER, TNE2_NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg index ed85cb14f28..73af33f77be 100644 --- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg +++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg @@ -14,7 +14,7 @@ % % Physical governing equations (EULER, NAVIER_STOKES, % TNE2_EULER, TNE2_NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/euler/biparabolic/BIPARABOLIC.cfg b/TestCases/euler/biparabolic/BIPARABOLIC.cfg index 58040db80fe..5d5da645416 100644 --- a/TestCases/euler/biparabolic/BIPARABOLIC.cfg +++ b/TestCases/euler/biparabolic/BIPARABOLIC.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index 5d02692bf7d..dc873745d35 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/euler/naca0012/inv_NACA0012.cfg b/TestCases/euler/naca0012/inv_NACA0012.cfg index 18927ef9737..b3a39e7edb0 100644 --- a/TestCases/euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index c7eba56194c..cc4cee5e451 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg index c2acc5852ab..9cb8a53d256 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % @@ -353,4 +353,4 @@ OPT_OBJECTIVE= DRAG * 0.001 OPT_CONSTRAINT= ( LIFT > 0.328188 ) * 0.001; ( MOMENT_Z > 0.034068 ) * 0.001; ( MAX_THICKNESS > 0.11 ) * 0.001 % % Optimization design variables, separated by semicolons -DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( 1, 1.0 | airfoil | 0, 0.15 ); ( 1, 1.0 | airfoil | 0, 0.20 ); ( 1, 1.0 | airfoil | 0, 0.25 ); ( 1, 1.0 | airfoil | 0, 0.30 ); ( 1, 1.0 | airfoil | 0, 0.35 ); ( 1, 1.0 | airfoil | 0, 0.40 ); ( 1, 1.0 | airfoil | 0, 0.45 ); ( 1, 1.0 | airfoil | 0, 0.50 ); ( 1, 1.0 | airfoil | 0, 0.55 ); ( 1, 1.0 | airfoil | 0, 0.60 ); ( 1, 1.0 | airfoil | 0, 0.65 ); ( 1, 1.0 | airfoil | 0, 0.70 ); ( 1, 1.0 | airfoil | 0, 0.75 ); ( 1, 1.0 | airfoil | 0, 0.80 ); ( 1, 1.0 | airfoil | 0, 0.85 ); ( 1, 1.0 | airfoil | 0, 0.90 ); ( 1, 1.0 | airfoil | 0, 0.95 ); ( 1, 1.0 | airfoil | 1, 0.05 ); ( 1, 1.0 | airfoil | 1, 0.10 ); ( 1, 1.0 | airfoil | 1, 0.15 ); ( 1, 1.0 | airfoil | 1, 0.20 ); ( 1, 1.0 | airfoil | 1, 0.25 ); ( 1, 1.0 | airfoil | 1, 0.30 ); ( 1, 1.0 | airfoil | 1, 0.35 ); ( 1, 1.0 | airfoil | 1, 0.40 ); ( 1, 1.0 | airfoil | 1, 0.45 ); ( 1, 1.0 | airfoil | 1, 0.50 ); ( 1, 1.0 | airfoil | 1, 0.55 ); ( 1, 1.0 | airfoil | 1, 0.60 ); ( 1, 1.0 | airfoil | 1, 0.65 ); ( 1, 1.0 | airfoil | 1, 0.70 ); ( 1, 1.0 | airfoil | 1, 0.75 ); ( 1, 1.0 | airfoil | 1, 0.80 ); ( 1, 1.0 | airfoil | 1, 0.85 ); ( 1, 1.0 | airfoil | 1, 0.90 ); ( 1, 1.0 | airfoil | 1, 0.95 ) \ No newline at end of file +DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( 1, 1.0 | airfoil | 0, 0.15 ); ( 1, 1.0 | airfoil | 0, 0.20 ); ( 1, 1.0 | airfoil | 0, 0.25 ); ( 1, 1.0 | airfoil | 0, 0.30 ); ( 1, 1.0 | airfoil | 0, 0.35 ); ( 1, 1.0 | airfoil | 0, 0.40 ); ( 1, 1.0 | airfoil | 0, 0.45 ); ( 1, 1.0 | airfoil | 0, 0.50 ); ( 1, 1.0 | airfoil | 0, 0.55 ); ( 1, 1.0 | airfoil | 0, 0.60 ); ( 1, 1.0 | airfoil | 0, 0.65 ); ( 1, 1.0 | airfoil | 0, 0.70 ); ( 1, 1.0 | airfoil | 0, 0.75 ); ( 1, 1.0 | airfoil | 0, 0.80 ); ( 1, 1.0 | airfoil | 0, 0.85 ); ( 1, 1.0 | airfoil | 0, 0.90 ); ( 1, 1.0 | airfoil | 0, 0.95 ); ( 1, 1.0 | airfoil | 1, 0.05 ); ( 1, 1.0 | airfoil | 1, 0.10 ); ( 1, 1.0 | airfoil | 1, 0.15 ); ( 1, 1.0 | airfoil | 1, 0.20 ); ( 1, 1.0 | airfoil | 1, 0.25 ); ( 1, 1.0 | airfoil | 1, 0.30 ); ( 1, 1.0 | airfoil | 1, 0.35 ); ( 1, 1.0 | airfoil | 1, 0.40 ); ( 1, 1.0 | airfoil | 1, 0.45 ); ( 1, 1.0 | airfoil | 1, 0.50 ); ( 1, 1.0 | airfoil | 1, 0.55 ); ( 1, 1.0 | airfoil | 1, 0.60 ); ( 1, 1.0 | airfoil | 1, 0.65 ); ( 1, 1.0 | airfoil | 1, 0.70 ); ( 1, 1.0 | airfoil | 1, 0.75 ); ( 1, 1.0 | airfoil | 1, 0.80 ); ( 1, 1.0 | airfoil | 1, 0.85 ); ( 1, 1.0 | airfoil | 1, 0.90 ); ( 1, 1.0 | airfoil | 1, 0.95 ) diff --git a/TestCases/gust/inv_gust_NACA0012.cfg b/TestCases/gust/inv_gust_NACA0012.cfg index d09a69bacc3..43241c527c4 100644 --- a/TestCases/gust/inv_gust_NACA0012.cfg +++ b/TestCases/gust/inv_gust_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index 3fc6c6c9856..ab93c2e36fc 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg index cd36298bc01..fb2245a9376 100644 --- a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % @@ -205,4 +205,4 @@ SURFACE_FLOW_FILENAME= surface_flow WRT_SOL_FREQ= 100 % % Writing convergence history frequency -WRT_CON_FREQ= 1 \ No newline at end of file +WRT_CON_FREQ= 1 diff --git a/TestCases/incomp_rans/AhmedBody/AhmedBody.cfg b/TestCases/incomp_rans/AhmedBody/AhmedBody.cfg index 0be47f3bb39..ea918bc7879 100644 --- a/TestCases/incomp_rans/AhmedBody/AhmedBody.cfg +++ b/TestCases/incomp_rans/AhmedBody/AhmedBody.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/incomp_rans/naca0012/naca0012.cfg b/TestCases/incomp_rans/naca0012/naca0012.cfg index 7e24be807e1..40b144ddab0 100644 --- a/TestCases/incomp_rans/naca0012/naca0012.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012.cfg @@ -13,7 +13,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % @@ -252,4 +252,4 @@ SURFACE_ADJ_FILENAME= surface_adjoint WRT_SOL_FREQ= 100 % % Writing convergence history frequency -WRT_CON_FREQ= 1 \ No newline at end of file +WRT_CON_FREQ= 1 diff --git a/TestCases/linear_elasticity/beam.cfg b/TestCases/linear_elasticity/beam.cfg index 59f36db72b8..0ac16873e70 100644 --- a/TestCases/linear_elasticity/beam.cfg +++ b/TestCases/linear_elasticity/beam.cfg @@ -12,9 +12,9 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) -PHYSICAL_PROBLEM= LINEAR_ELASTICITY +PHYSICAL_PROBLEM= FEM_ELASTICITY % % Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) MATH_PROBLEM= DIRECT @@ -247,4 +247,4 @@ WRT_CON_FREQ= 1 WRT_CON_FREQ_DUALTIME= 1 % % Output rind layers in the solution files -WRT_HALO= NO \ No newline at end of file +WRT_HALO= NO diff --git a/TestCases/moving_wall/cavity/lam_cavity.cfg b/TestCases/moving_wall/cavity/lam_cavity.cfg index 3ad0d21aa95..d6873409285 100644 --- a/TestCases/moving_wall/cavity/lam_cavity.cfg +++ b/TestCases/moving_wall/cavity/lam_cavity.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg index 79be9a1d38b..73bb1f4956f 100644 --- a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg +++ b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg index a60bc19ac70..bb783f2709c 100644 --- a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg +++ b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg @@ -13,7 +13,7 @@ % % Physical governing equations (EULER, NAVIER_STOKES, % TNE2_EULER, TNE2_NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index a6e0bd1b88f..da4e5007b05 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 576cdaa8395..7391e6d2b6f 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/nicf/LS89/turb_SA_PR.cfg b/TestCases/nicf/LS89/turb_SA_PR.cfg index 1195325d97e..dfc43f6c6ea 100644 --- a/TestCases/nicf/LS89/turb_SA_PR.cfg +++ b/TestCases/nicf/LS89/turb_SA_PR.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/nicf/LS89/turb_SST_PR.cfg b/TestCases/nicf/LS89/turb_SST_PR.cfg index 5f71d2d1ab2..efc45c4bd27 100644 --- a/TestCases/nicf/LS89/turb_SST_PR.cfg +++ b/TestCases/nicf/LS89/turb_SST_PR.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg index 49c79f709c0..df243bf4b11 100644 --- a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg +++ b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg index 7babae0083e..ad0221d533f 100644 --- a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg +++ b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg index 84ac0d7748c..ec914198767 100644 --- a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg +++ b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg index 0952bbc97b8..361674af4be 100644 --- a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg +++ b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % @@ -355,4 +355,4 @@ OPT_BOUND_UPPER= 0.1 OPT_BOUND_LOWER= -0.1 % % Optimization design variables, separated by semicolons -DEFINITION_DV= ( 15, 1.0 | airfoil | BOX, 0, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 0, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 1, 0.0, 1.0 ) \ No newline at end of file +DEFINITION_DV= ( 15, 1.0 | airfoil | BOX, 0, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 0, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 1, 0.0, 1.0 ) diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg index 318434a2d11..2c45a7a13ad 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg index 0a5ded5bccc..dfc35392676 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index 20d10918f2c..2f4b6b57b81 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg index a30529dd7ae..fe9bfc8c92c 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg index f9243c3e99c..f4db774e4a3 100644 --- a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg +++ b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg index 3c4382a806d..beb163bfc24 100644 --- a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg index a06830d330f..51dc7516198 100644 --- a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg index 891402fc81c..9d7c69662b3 100644 --- a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/flatplate/turb_SA_flatplate.cfg b/TestCases/rans/flatplate/turb_SA_flatplate.cfg index e823bbf78f8..e50ce6a5659 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/flatplate/turb_SST_flatplate.cfg b/TestCases/rans/flatplate/turb_SST_flatplate.cfg index f7f8e115a21..47929b881f0 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg index 3fc3cdf4c6a..dbc0f9574a8 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg @@ -13,7 +13,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/naca0012/turb_NACA0012_sa_neg.cfg b/TestCases/rans/naca0012/turb_NACA0012_sa_neg.cfg index 2e8e7940cc4..d1aeb86bc8e 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sa_neg.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sa_neg.cfg @@ -13,7 +13,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg index 2191b08b2a4..232aa556255 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg @@ -13,7 +13,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/oneram6/turb_ONERAM6.cfg b/TestCases/rans/oneram6/turb_ONERAM6.cfg index ded6027d2d0..46212f6b4c2 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg index 9bb35408a4d..d822dc1365c 100644 --- a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg index 9ac4ac3867c..18e68d7c69c 100644 --- a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/s809/trans_s809.cfg b/TestCases/rans/s809/trans_s809.cfg index 5dfc6650325..a8a6b13cf34 100644 --- a/TestCases/rans/s809/trans_s809.cfg +++ b/TestCases/rans/s809/trans_s809.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/s809/turb_S809.cfg b/TestCases/rans/s809/turb_S809.cfg index c585f8a3602..76473b9bb21 100644 --- a/TestCases/rans/s809/turb_S809.cfg +++ b/TestCases/rans/s809/turb_S809.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rans/vki_turbine/turb_vki.cfg b/TestCases/rans/vki_turbine/turb_vki.cfg index 8768552d5be..6c9fb093277 100644 --- a/TestCases/rans/vki_turbine/turb_vki.cfg +++ b/TestCases/rans/vki_turbine/turb_vki.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg index 9ba96f4e863..e0c579b6371 100644 --- a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg +++ b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index fb57cbb044f..d2c15b65038 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/spectral_method/spectral.cfg b/TestCases/spectral_method/spectral.cfg index 53b160e01eb..9ed108fb502 100644 --- a/TestCases/spectral_method/spectral.cfg +++ b/TestCases/spectral_method/spectral.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg index 036b2e9cef8..240cbeedeed 100644 --- a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg index 521ca3c2000..4e86d1e5270 100644 --- a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg index 2239abc8e9b..2f6d858fd5b 100644 --- a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg +++ b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % diff --git a/TestCases/unsteady/square_cylinder/turb_square.cfg b/TestCases/unsteady/square_cylinder/turb_square.cfg index e88ac476178..c1ba8a83d91 100644 --- a/TestCases/unsteady/square_cylinder/turb_square.cfg +++ b/TestCases/unsteady/square_cylinder/turb_square.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= NAVIER_STOKES % From e13e723fb427e1a5036776bc8161e1d3720f99f5 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 14:40:33 +0000 Subject: [PATCH 235/269] Renamed LINEAR_ELASTICITY as FEM_ELASTICITY in config*.cfg --- QuickStart/inv_NACA0012.cfg | 2 +- config_template.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QuickStart/inv_NACA0012.cfg b/QuickStart/inv_NACA0012.cfg index deaf3389a7f..b3249f5e75f 100644 --- a/QuickStart/inv_NACA0012.cfg +++ b/QuickStart/inv_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % diff --git a/config_template.cfg b/config_template.cfg index b6e127c4594..bd57a80295b 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % From f35f64cafbcdd78e2c944dc65ae46f4588d05f39 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 15:41:28 +0000 Subject: [PATCH 236/269] Update version and remove comments. --- SU2_CFD/include/numerics_structure.hpp | 164 ------- SU2_CFD/include/numerics_structure.inl | 20 - SU2_CFD/include/solver_structure.hpp | 405 ------------------ SU2_CFD/include/solver_structure.inl | 16 - SU2_CFD/include/variable_structure.hpp | 302 ------------- SU2_CFD/include/variable_structure.inl | 58 --- SU2_CFD/src/numerics_direct_elasticity.cpp | 4 +- .../src/numerics_direct_elasticity_linear.cpp | 4 +- .../numerics_direct_elasticity_nonlinear.cpp | 4 +- SU2_CFD/src/solver_direct_elasticity.cpp | 4 +- SU2_CFD/src/transfer_physics.cpp | 2 +- SU2_CFD/src/transfer_structure.cpp | 2 +- SU2_CFD/src/variable_direct_elasticity.cpp | 4 +- 13 files changed, 12 insertions(+), 977 deletions(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index dfa734ac7eb..b3aafad3196 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -3996,170 +3996,6 @@ class CGalerkin_Flow : public CNumerics { void ComputeResidual (su2double **val_stiffmatrix_elem, CConfig *config); }; -///*! -// * \class CGalerkin_FEA -// * \brief Class for computing the stiffness matrix of the Galerkin method. -// * \ingroup ViscDiscr -// * \author F. Palacios, R.Sanchez -// * \version 4.1.0 "Cardinal" -// */ -//class CGalerkin_FEA : public CNumerics { -// -// su2double E; /*!< \brief Young's modulus of elasticity. */ -// su2double Nu; /*!< \brief Poisson's ratio. */ -// su2double Rho_s; /*!< \brief Structural density. */ -// su2double Mu; /*!< \brief Lame's coeficient. */ -// su2double Lambda; /*!< \brief Lame's coeficient. */ -// -//public: -// -// /*! -// * \brief Constructor of the class. -// * \param[in] val_nDim - Number of dimensions of the problem. -// * \param[in] val_nVar - Number of variables of the problem. -// * \param[in] config - Definition of the particular problem. -// */ -// CGalerkin_FEA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config); -// -// /*! -// * \brief Destructor of the class. -// */ -// ~CGalerkin_FEA(void); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. -// * \param[in] Pnodal - Pressure at the nodes. -// * \param[in] CoordCorners[2][2] - Coordiantes of the corners. -// */ -// void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Tau_0 - Stress tensor at the node 0. -// * \param[in] Tau_1 - Stress tensor at the node 1. -// * \param[in] Fnodal - Forces at the nodes in cartesian coordinates. -// * \param[in] CoordCorners[2][2] - Coordiantes of the corners. -// */ -// void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Xi - Local coordinates. -// * \param[in] Eta - Local coordinates. -// * \param[in] Mu - Local coordinates. -// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. -// * \param[in] shp[8][4] - Shape function information -// */ -// su2double ShapeFunc_Triangle(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Xi - Local coordinates. -// * \param[in] Eta - Local coordinates. -// * \param[in] Mu - Local coordinates. -// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. -// * \param[in] shp[8][4] - Shape function information -// */ -// su2double ShapeFunc_Quadrilateral(su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Xi - Local coordinates. -// * \param[in] Eta - Local coordinates. -// * \param[in] Mu - Local coordinates. -// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. -// * \param[in] shp[8][4] - Shape function information -// */ -// su2double ShapeFunc_Tetra(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Xi - Local coordinates. -// * \param[in] Eta - Local coordinates. -// * \param[in] Mu - Local coordinates. -// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. -// * \param[in] shp[8][4] - Shape function information -// */ -// su2double ShapeFunc_Prism(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Xi - Local coordinates. -// * \param[in] Eta - Local coordinates. -// * \param[in] Mu - Local coordinates. -// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. -// * \param[in] shp[8][4] - Shape function information -// */ -// su2double ShapeFunc_Pyram(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); -// -// /*! -// * \brief Shape functions and derivative of the shape functions -// * \param[in] Xi - Local coordinates. -// * \param[in] Eta - Local coordinates. -// * \param[in] Mu - Local coordinates. -// * \param[in] CoordCorners[8][3] - Coordiantes of the corners. -// * \param[in] shp[8][4] - Shape function information -// */ -// su2double ShapeFunc_Hexa(su2double Xi, su2double Eta, su2double Mu, su2double CoordCorners[8][3], su2double DShapeFunction[8][4]); -// -// /*! -// * \brief Computing stiffness matrix of the Galerkin method. -// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. -// * \param[in] config - Definition of the particular problem. -// */ -// void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); -// -// /*! -// * \brief Computing stiffness matrix of the Galerkin method. -// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. -// * \param[in] config - Definition of the particular problem. -// */ -// void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); -// -// /*! -// * \brief Computing mass matrix of the Galerkin method. -// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. -// * \param[in] config - Definition of the particular problem. -// */ -// void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); -// -// /*! -// * \brief Computing mass matrix of the Galerkin method. -// * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. -// * \param[in] config - Definition of the particular problem. -// */ -// void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); -// -// /*! -// * \brief Computing stresses in FEA method at the nodes. -// * \param[in] config - Definition of the particular problem. -// */ -// void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); -// -// -// /*! -// * \brief Computing stresses in FEA method at the nodes. -// * \param[in] config - Definition of the particular problem. -// */ -// void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); -// -// /*! -// * \brief Computing dead load vector of the Galerkin method. -// * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. -// * \param[in] config - Definition of the particular problem. -// */ -// void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); -// -// /*! -// * \brief Computing stiffness matrix of the Galerkin method. -// * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. -// * \param[in] config - Definition of the particular problem. -// */ -// void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); -// -//}; - /*! * \class CFEM_Elasticity * \brief Generic class for computing the tangent matrix and the residual for structural problems diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index e01719ded46..8ec01488900 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -35,26 +35,6 @@ inline su2double CNumerics::Determinant_3x3(su2double A00, su2double A01, su2dou return A00*(A11*A22-A12*A21) - A01*(A10*A22-A12*A20) + A02*(A10*A21-A11*A20); } -//inline void CNumerics::SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } - -//inline void CNumerics::SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } - -//inline void CNumerics::SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } - -//inline void CNumerics::SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes) { } - -//inline void CNumerics::GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d) { } - -//inline void CNumerics::GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes) { } - -//inline void CNumerics::SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } - -//inline void CNumerics::SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity) { } - -//inline void CNumerics::PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double *Fnodal) { } - -//inline void CNumerics::ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]) { } - inline void CNumerics::Compute_Mass_Matrix(CElement *element_container, CConfig *config){ } inline void CNumerics::Compute_Dead_Load(CElement *element_container, CConfig *config){ } diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 03af28cb3f4..0b574f1c2ac 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -6756,411 +6756,6 @@ class CHeatSolver : public CSolver { }; -///*! \class CFEASolver -// * \brief Main class for defining the FEA solver. -// * \author F. Palacios, R. Sanchez. -// * \version 4.1.0 "Cardinal" -// * \date May 3, 2010. -// */ -//class CFEASolver : public CSolver { -//private: -// -// su2double Total_CFEA; /*!< \brief Total FEA coefficient for all the boundaries. */ -// CSysMatrix StiffMatrixSpace; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ -// CSysMatrix StiffMatrixTime; /*!< \brief Sparse structure for storing the stiffness matrix in Galerkin computations. */ -// -// CSysMatrix MassMatrix; /*!< \brief Sparse structure for storing the mass matrix in Galerkin computations. */ -// CSysMatrix DampMatrix; /*!< \brief Sparse structure for storing the damping matrix in Galerkin computations. */ -// -// CSysVector TimeRes_Aux; /*!< \brief Auxiliary vector for adding mass and damping contributions to the residual. */ -// CSysVector TimeRes; /*!< \brief Vector for adding mass and damping contributions to the residual */ -// -// su2double **StiffMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Stiffness Matrices. */ -// **StiffMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Stiffness Matrices. */ -// **MassMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Mass Matrices. */ -// **MassMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices. */ -// **MassMatrix_Node_Int, /*!< \brief Auxiliary matrices for storing point to point Mass Matrices * a0. */ -// **DampMatrix_Elem, /*!< \brief Auxiliary matrices for storing elem to elem Damping Matrices. */ -// **DampMatrix_Node, /*!< \brief Auxiliary matrices for storing point to point Damping Matrices. */ -// *DeadLoadVector_Elem, /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ -// *DeadLoadVector_Node; /*!< \brief Auxiliary vector for storing point to point Dead Loads. */ -// -// su2double a_dt[8]; /*!< \brief Integration constants. */ -// -// su2double WAitken_Dyn; /*!< \brief Aitken's dynamic coefficient */ -// su2double WAitken_Dyn_tn1; /*!< \brief Aitken's dynamic coefficient in the previous iteration */ -// -// su2double FSI_Conv[2]; /*!< \brief Values to check the convergence of the FSI problem. */ -// -// -// -//public: -// -// /*! -// * \brief Constructor of the class. -// */ -// CFEASolver(void); -// -// /*! -// * \overload -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] config - Definition of the particular problem. -// */ -// CFEASolver(CGeometry *geometry, CConfig *config); -// -// /*! -// * \brief Destructor of the class. -// */ -// ~CFEASolver(void); -// -// /*! -// * \brief Integrate the Poisson equation using a Galerkin method. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] iMesh - Index of the mesh in multigrid computations. -// */ -// void Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short iMesh, unsigned short iRKStep); -// -// /*! -// * \brief Impose a displacement (constraint) boundary condition --> Clamped boundary. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// /*! -// * \brief Impose a displacement (constraint) boundary condition --> Clamped boundary. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// /*! -// * \brief Impose a displacement (constraint) boundary condition. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// /*! -// * \brief Impose a load boundary condition. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// /*! -// * \brief Impose a load boundary condition. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// /*! -// * \brief Impose a load boundary condition in cartesian coordinates. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// /*! -// * \brief Impose a sine-wave load boundary condition in cartesian coordinates. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// -// /*! -// * \brief Impose a load boundary condition. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] val_marker - Surface marker where the boundary condition is applied. -// */ -// void BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker); -// -// /*! -// * \brief Set residuals to zero. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] config - Definition of the particular problem. -// * \param[in] iRKStep - Current step of the Runge-Kutta iteration. -// * \param[in] RunTime_EqSystem - System of equations which is going to be solved. -// * \param[in] Output - boolean to determine whether to print output. -// */ -// void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output); -// -// /*! -// * \brief Postprocessing. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] config - Definition of the particular problem. -// * \param[in] iMesh - Index of the mesh in multigrid computations. -// */ -// void Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, -// unsigned short iMesh); -// -// /*! -// * \brief Source term computation. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] numerics - Description of the numerical method. -// * \param[in] second_numerics - Description of the second numerical method. -// * \param[in] config - Definition of the particular problem. -// * \param[in] iMesh - Index of the mesh in multigrid computations. -// */ -// void Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CNumerics *second_numerics, -// CConfig *config, unsigned short iMesh); -// -// /*! -// * \brief Update the solution using an implicit solver. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] config - Definition of the particular problem. -// */ -// void ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); -// -// /*! -// * \brief Update the solution using an implicit Newmark solver. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] config - Definition of the particular problem. -// */ -// void ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config); -// -// /*! -// * \brief Set the total residual adding the term that comes from the Dual Time Strategy. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] config - Definition of the particular problem. -// * \param[in] iRKStep - Current step of the Runge-Kutta iteration. -// * \param[in] iMesh - Index of the mesh in multigrid computations. -// * \param[in] RunTime_EqSystem - System of equations which is going to be solved. -// */ -// void SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, -// unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem); -// -// /*! -// * \brief Get the surface pressure from a file. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] config - Definition of the particular problem. -// */ -// void GetSurface_Pressure(CGeometry *geometry, CConfig *config); -// -// /*! -// * \brief Set the the tractions in the in the FEA solver (matching mesh). -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] flow_solution - Container vector with all the solutions. -// * \param[in] fea_config - Definition of the particular problem. -// */ -// void SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); -// -// /*! -// * \brief Set the the tractions in the in the FEA solver (non-matching mesh). -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] flow_solution - Container vector with all the solutions. -// * \param[in] fea_config - Definition of the particular problem. -// */ -// void SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics); -// -// /*! -// * \brief Set the initial condition for the FEA Equations. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container with all the solutions. -// * \param[in] config - Definition of the particular problem. -// * \param[in] ExtIter - External iteration. -// */ -// void SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter); -// -// /*! -// * \brief Provide the total (inviscid + viscous) non dimensional FEA coefficient. -// * \return Value of the FEA coefficient (inviscid + viscous contribution). -// */ -// su2double GetTotal_CFEA(void); -// -// /*! -// * \brief Set the value of the FEA coefficient. -// * \param[in] val_cfea - Value of the FEA coefficient. -// */ -// void SetTotal_CFEA(su2double val_cfea); -// -// /*! -// * \brief Set the displacement for the nodes in the structural mesh -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] fea_grid_movement - Geometrical definition of the problem. -// * \param[in] fea_config - Geometrical definition of the problem. -// * \param[in] flow_geometry - Definition of the particular problem. -// */ -// void SetStruct_Displacement(CGeometry **fea_geometry, -// CConfig *fea_config, -// CSolver ***fea_solution); -// -// /*! -// * \brief Predictor for structural displacements based on previous iterations -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] fea_grid_movement - Geometrical definition of the problem. -// * \param[in] fea_config - Geometrical definition of the problem. -// * \param[in] flow_geometry - Definition of the particular problem. -// */ -// void PredictStruct_Displacement(CGeometry **fea_geometry, -// CConfig *fea_config, -// CSolver ***fea_solution); -// -// /*! -// * \brief Computation of Aitken's coefficient. -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] fea_config - Geometrical definition of the problem. -// * \param[in] fea_geometry - Definition of the particular problem. -// */ -// void ComputeAitken_Coefficient(CGeometry **fea_geometry, -// CConfig *fea_config, -// CSolver ***fea_solution, -// unsigned long iFSIIter); -// -// /*! -// * \brief Aitken's relaxation of the solution. -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] fea_config - Geometrical definition of the problem. -// * \param[in] fea_geometry - Definition of the particular problem. -// */ -// void SetAitken_Relaxation(CGeometry **fea_geometry, -// CConfig *fea_config, -// CSolver ***fea_solution); -// -// /*! -// * \brief Aitken's relaxation of the solution. -// * \param[in] fea_geometry - Geometrical definition of the problem. -// * \param[in] fea_config - Geometrical definition of the problem. -// * \param[in] fea_geometry - Definition of the particular problem. -// */ -// void Update_StructSolution(CGeometry **fea_geometry, -// CConfig *fea_config, -// CSolver ***fea_solution); -// -// /*! -// * \brief Get the value of the FSI convergence. -// * \param[in] Set value of interest: 0 - Initial value, 1 - Current value. -// */ -// void SetFSI_ConvValue(unsigned short val_index, su2double val_criteria); -// -// /*! -// * \brief Get the value of the FSI convergence. -// * \param[in] Value of interest: 0 - Initial value, 1 - Current value. -// * \return Values to compare -// */ -// su2double GetFSI_ConvValue(unsigned short val_index); -// -// /*! -// * \brief Compute the stiffness matrix of the problem. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// */ -// void Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); -// -// /*! -// * \brief Compute the stiffness and mass matrices of the problem. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// */ -// void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); -// -// /*! -// * \brief A virtual member. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// */ -// void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); -// -// /*! -// * \brief A virtual member. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// */ -// void Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config); -// -// /*! -// * \brief A virtual member. -// * \param[in] geometry - Geometrical definition of the problem. -// * \param[in] solver_container - Container vector with all the solutions. -// * \param[in] solver - Description of the numerical method. -// * \param[in] config - Definition of the particular problem. -// */ -// void Compute_IntegrationConstants(CConfig *config); -// -// /*! -// * \brief Set the solution variables at time n to the current solution. -// * \param[in] geometry - Geometrical definition of the problem. -// */ -// void SetSolution_time_n(CGeometry *geometry, CConfig *config); -// -// /*! -// * \brief Retrieve the value of the dynamic Aitken relaxation factor. -// * \return Value of the dynamic Aitken relaxation factor. -// */ -// su2double GetWAitken_Dyn(void); -// -// /*! -// * \brief Retrieve the value of the last Aitken relaxation factor in the previous time step. -// * \return Value of the last Aitken relaxation factor in the previous time step. -// */ -// su2double GetWAitken_Dyn_tn1(void); -// -// /*! -// * \brief Set the value of the dynamic Aitken relaxation factor -// * \param[in] Value of the dynamic Aitken relaxation factor -// */ -// void SetWAitken_Dyn(su2double waitk); -// -// /*! -// * \brief Set the value of the last Aitken relaxation factor in the current time step. -// * \param[in] Value of the last Aitken relaxation factor in the current time step. -// */ -// void SetWAitken_Dyn_tn1(su2double waitk_tn1); -// -// -//}; - /*! \class CFEM_ElasticitySolver * \brief Main class for defining a FEM solver for elastic structural problems. * \author R. Sanchez. diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 63a12852525..5fd816b75c5 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -1106,22 +1106,6 @@ inline su2double CAdjEulerSolver::GetPsiE_Inf(void) { return PsiE_Inf; } inline su2double CAdjEulerSolver::GetPhi_Inf(unsigned short val_dim) { return Phi_Inf[val_dim]; } -//inline su2double CFEASolver::GetTotal_CFEA() { return Total_CFEA; } -// -//inline void CFEASolver::SetTotal_CFEA(su2double cfea) { Total_CFEA = cfea; } -// -//inline su2double CFEASolver::GetWAitken_Dyn(void) { return WAitken_Dyn; } -// -//inline su2double CFEASolver::GetWAitken_Dyn_tn1(void) { return WAitken_Dyn_tn1; } -// -//inline void CFEASolver::SetWAitken_Dyn(su2double waitk) { WAitken_Dyn = waitk; } -// -//inline void CFEASolver::SetWAitken_Dyn_tn1(su2double waitk_tn1) { WAitken_Dyn_tn1 = waitk_tn1; } -// -//inline void CFEASolver::SetFSI_ConvValue(unsigned short val_index, su2double val_criteria) { FSI_Conv[val_index] = val_criteria; } -// -//inline su2double CFEASolver::GetFSI_ConvValue(unsigned short val_index){ return FSI_Conv[val_index]; } - inline su2double CFEM_ElasticitySolver::GetRes_FEM(unsigned short val_var) { return Conv_Check[val_var]; } inline su2double CFEM_ElasticitySolver::GetTotal_CFEA() { return Total_CFEA; } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 7c4cdbcb4df..91faef85d5c 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -2298,308 +2298,6 @@ class CHeatVariable : public CVariable { }; -///*! -// * \class CFEAVariable -// * \brief Main class for defining the variables of the FEA equation solver. -// * \ingroup Structural Finite Element Analysis Variables -// * \author F. Palacios, R. Sanchez. -// * \version 4.1.0 "Cardinal" -// */ -//class CFEAVariable : public CVariable { -//protected: -// su2double Flow_Pressure; /*!< \brief Pressure of the fluid. */ -// -// bool dynamicFEA; /*!< \brief Non-physical points in the solution (force first order). */ -// -// su2double **Stress; /*!< \brief Stress tensor. */ -// su2double VonMises_Stress; /*!< \brief Von Mises stress. */ -// unsigned short nAttachedElements; /*!< \brief Number of elements connected to the node. */ -// -// su2double *Solution_Vel, /*!< \brief Velocity of the nodes. */ -// *Solution_Vel_time_n; /*!< \brief Velocity of the nodes at time n. */ -// -// su2double *Solution_Accel, /*!< \brief Acceleration of the nodes. */ -// *Solution_Accel_time_n; /*!< \brief Acceleration of the nodes at time n. */ -// -// su2double *Solution_Pred; /*!< \brief Predictor of the solution (for FSI applications) */ -// su2double *Solution_Pred_Old; /*!< \brief Predictor of the solution (for FSI applications) in the iter k-1 */ -// -//public: -// -// /*! -// * \brief Constructor of the class. -// */ -// CFEAVariable(void); -// -// /*! -// * \overload -// * \param[in] val_fea - Values of the fea solution (initialization value). -// * \param[in] val_nDim - Number of dimensions of the problem. -// * \param[in] val_nvar - Number of variables of the problem. -// * \param[in] config - Definition of the particular problem. -// */ -// CFEAVariable(su2double *val_fea, unsigned short val_nDim, unsigned short val_nvar, CConfig *config); -// -// /*! -// * \brief Destructor of the class. -// */ -// ~CFEAVariable(void); -// -// /*! -// * \brief Set the value of the stress. -// * \param[in] iVar - i index. -// * \param[in] jVar - j index. -// * \param[in] val_stress - Value of the stress. -// */ -// void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); -// -// /*! -// * \brief Add a value to the stress matrix in the element. -// * \param[in] iVar - i index. -// * \param[in] jVar - j index. -// * \param[in] val_stress - Value of the stress. -// */ -// void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); -// -// /*! -// * \brief Get the value of the stress. -// * \return Value of the stress. -// */ -// su2double **GetStress(void); -// -// /*! -// * \brief Set the value of the Von Mises stress. -// * \param[in] val_stress - Value of the Von Mises stress. -// */ -// void SetVonMises_Stress(su2double val_stress); -// -// /*! -// * \brief Get the value of the Von Mises stress. -// * \return Value of the Von Mises stress. -// */ -// su2double GetVonMises_Stress(void); -// -// /*! -// * \brief Set the value of the Von Mises stress. -// * \param[in] val_stress - Value of the Von Mises stress. -// */ -// void SetFlow_Pressure(su2double val_pressure); -// -// /*! -// * \brief Get the value of the Von Mises stress. -// * \return Value of the Von Mises stress. -// */ -// su2double GetFlow_Pressure(void); -// -// /*! -// * \brief Initialize the value of the number of attached elements to a node. -// * \return Value of the Von Mises stress. -// */ -// void Initialize_Connectivity(void); -// -// -// /*! -// * \brief Add a 1 to the value of the number of attached elements to a node. -// * \return Value of the Von Mises stress. -// */ -// void Upgrade_Connectivity(void); -// -// -// /*! -// * \brief Returns the value of the number of attached elements to a node. -// * \return Value of the Von Mises stress. -// */ -// unsigned short Get_Connectivity(void); -// -// /*! -// * \brief Set the value of the old solution. -// * \param[in] val_solution_old - Pointer to the residual vector. -// */ -// void SetSolution_time_n(void); -// -// /*! -// * \brief Set the value of the old solution. -// * \param[in] val_solution_old - Pointer to the residual vector. -// */ -// void SetSolution_time_n(su2double *val_solution_time_n); -// -// -// /*! -// * \brief Set the value of the velocity (Structural Analysis). -// * \param[in] val_solution - Solution of the problem (velocity). -// */ -// void SetSolution_Vel(su2double *val_solution_vel); -// -// /*! -// * \overload -// * \param[in] val_var - Index of the variable. -// * \param[in] val_solution - Value of the solution for the index val_var. -// */ -// void SetSolution_Vel(unsigned short val_var, su2double val_solution_vel); -// -// /*! -// * \brief Set the value of the velocity (Structural Analysis) at time n. -// * \param[in] val_solution - Solution of the problem (acceleration). -// */ -// void SetSolution_Vel_time_n(void); -// -// /*! -// * \brief Set the value of the velocity (Structural Analysis) at time n. -// * \param[in] val_solution_old - Pointer to the residual vector. -// */ -// void SetSolution_Vel_time_n(su2double *val_solution_vel_time_n); -// -// /*! -// * \overload -// * \param[in] val_var - Index of the variable. -// * \param[in] val_solution_old - Value of the old solution for the index val_var. -// */ -// void SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n); -// -// /*! -// * \brief Get the solution at time n. -// * \param[in] val_var - Index of the variable. -// * \return Value of the solution for the index val_var. -// */ -// su2double GetSolution_time_n(unsigned short val_var); -// -// /*! -// * \brief Get the velocity (Structural Analysis). -// * \param[in] val_var - Index of the variable. -// * \return Value of the solution for the index val_var. -// */ -// su2double GetSolution_Vel(unsigned short val_var); -// -// /*! -// * \brief Get the solution of the problem. -// * \return Pointer to the solution vector. -// */ -// su2double *GetSolution_Vel(void); -// -// /*! -// * \brief Get the velocity of the nodes (Structural Analysis) at time n. -// * \param[in] val_var - Index of the variable. -// * \return Pointer to the old solution vector. -// */ -// su2double GetSolution_Vel_time_n(unsigned short val_var); -// -// /*! -// * \brief Get the solution at time n. -// * \return Pointer to the solution (at time n) vector. -// */ -// su2double *GetSolution_Vel_time_n(void); -// -// /*! -// * \brief Set the value of the acceleration (Structural Analysis). -// * \param[in] val_solution - Solution of the problem (acceleration). -// */ -// void SetSolution_Accel(su2double *val_solution_accel); -// -// /*! -// * \overload -// * \param[in] val_var - Index of the variable. -// * \param[in] val_solution - Value of the solution for the index val_var. -// */ -// void SetSolution_Accel(unsigned short val_var, su2double val_solution_accel); -// -// /*! -// * \brief Set the value of the acceleration (Structural Analysis) at time n. -// * \param[in] val_solution_old - Pointer to the residual vector. -// */ -// void SetSolution_Accel_time_n(su2double *val_solution_accel_time_n); -// -// /*! -// * \brief Set the value of the acceleration (Structural Analysis) at time n. -// * \param[in] val_solution - Solution of the problem (acceleration). -// */ -// void SetSolution_Accel_time_n(void); -// -// /*! -// * \overload -// * \param[in] val_var - Index of the variable. -// * \param[in] val_solution_old - Value of the old solution for the index val_var. -// */ -// void SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n); -// -// /*! -// * \brief Get the acceleration (Structural Analysis). -// * \param[in] val_var - Index of the variable. -// * \return Value of the solution for the index val_var. -// */ -// su2double GetSolution_Accel(unsigned short val_var); -// -// /*! -// * \brief Get the solution of the problem. -// * \return Pointer to the solution vector. -// */ -// su2double *GetSolution_Accel(void); -// -// /*! -// * \brief Get the acceleration of the nodes (Structural Analysis) at time n. -// * \param[in] val_var - Index of the variable. -// * \return Pointer to the old solution vector. -// */ -// su2double GetSolution_Accel_time_n(unsigned short val_var); -// -// /*! -// * \brief Get the solution at time n. -// * \return Pointer to the solution (at time n) vector. -// */ -// su2double *GetSolution_Accel_time_n(void); -// -// -// /*! -// * \brief Set the value of the solution predictor. -// */ -// void SetSolution_Pred(void); -// -// /*! -// * \brief Set the value of the old solution. -// * \param[in] val_solution_pred - Pointer to the residual vector. -// */ -// void SetSolution_Pred(su2double *val_solution_pred); -// -// /*! -// * \brief Get the value of the solution predictor. -// * \param[in] val_var - Index of the variable. -// * \return Pointer to the old solution vector. -// */ -// su2double GetSolution_Pred(unsigned short val_var); -// -// /*! -// * \brief Get the solution at time n. -// * \return Pointer to the solution (at time n) vector. -// */ -// su2double *GetSolution_Pred(void); -// -// /*! -// * \brief Set the value of the solution predictor. -// */ -// void SetSolution_Pred_Old(void); -// -// /*! -// * \brief Set the value of the old solution. -// * \param[in] val_solution_pred_Old - Pointer to the residual vector. -// */ -// void SetSolution_Pred_Old(su2double *val_solution_pred_Old); -// -// /*! -// * \brief Get the value of the solution predictor. -// * \param[in] val_var - Index of the variable. -// * \return Pointer to the old solution vector. -// */ -// su2double GetSolution_Pred_Old(unsigned short val_var); -// -// /*! -// * \brief Get the solution at time n. -// * \return Pointer to the solution (at time n) vector. -// */ -// su2double *GetSolution_Pred_Old(void); -// -// -// -//}; - /*! * \class CFEM_ElasVariable * \brief Main class for defining the variables of the FEM Linear Elastic structural problem. diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index aae82ba00d4..71724fce90a 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -866,26 +866,6 @@ inline void CAdjNSVariable::SetVelSolutionOldDVector(void) { for (unsigned short inline void CAdjNSVariable::SetVelSolutionDVector(void) { for (unsigned short iDim = 0; iDim < nDim; iDim++) Solution[iDim+1] = ForceProj_Vector[iDim]; }; -//inline void CFEAVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] = val_stress; } - -//inline void CFEAVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { Stress[iVar][jVar] += val_stress; } - -//inline su2double **CFEAVariable::GetStress(void) { return Stress; } - -//inline void CFEAVariable::SetVonMises_Stress(su2double val_stress) { VonMises_Stress = val_stress; } - -//inline su2double CFEAVariable::GetVonMises_Stress(void) { return VonMises_Stress; } - -//inline void CFEAVariable::SetFlow_Pressure(su2double val_pressure) { Flow_Pressure = val_pressure; } - -//inline su2double CFEAVariable::GetFlow_Pressure(void) { return Flow_Pressure; } - -//inline void CFEAVariable::Initialize_Connectivity(void) { nAttachedElements = 0; } - -//inline void CFEAVariable::Upgrade_Connectivity(void) { nAttachedElements += 1; } - -//inline unsigned short CFEAVariable::Get_Connectivity(void) { return nAttachedElements; } - inline void CFEM_ElasVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] = val_stress; } inline void CFEM_ElasVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { Stress[iVar] += val_stress; } @@ -1043,44 +1023,6 @@ inline void CFEABoundVariable::AddTraction(unsigned short iVar, unsigned short j inline su2double **CFEABoundVariable::GetTraction(void) { return Traction; } -//inline void CFEAVariable::SetSolution_Vel(unsigned short val_var, su2double val_solution_vel) { Solution_Vel[val_var] = val_solution_vel; } -// -//inline void CFEAVariable::SetSolution_Vel_time_n(unsigned short val_var, su2double val_solution_vel_time_n) { Solution_Vel_time_n[val_var] = val_solution_vel_time_n; } -// -//inline su2double CFEAVariable::GetSolution_time_n(unsigned short val_var) { return Solution_time_n[val_var]; } -// -//inline su2double CFEAVariable::GetSolution_Vel(unsigned short val_var) { return Solution_Vel[val_var]; } -// -//inline su2double *CFEAVariable::GetSolution_Vel(void) { return Solution_Vel; } -// -//inline su2double CFEAVariable::GetSolution_Vel_time_n(unsigned short val_var) { return Solution_Vel_time_n[val_var]; } -// -//inline su2double *CFEAVariable::GetSolution_Vel_time_n(void) { return Solution_Vel_time_n; } -// -//inline void CFEAVariable::SetSolution_Accel(unsigned short val_var, su2double val_solution_accel) { Solution_Accel[val_var] = val_solution_accel; } -// -//inline void CFEAVariable::SetSolution_Accel_time_n(unsigned short val_var, su2double val_solution_accel_time_n) { Solution_Accel_time_n[val_var] = val_solution_accel_time_n; } -// -//inline su2double CFEAVariable::GetSolution_Accel(unsigned short val_var) { return Solution_Accel[val_var]; } -// -//inline su2double *CFEAVariable::GetSolution_Accel(void) { return Solution_Accel; } -// -//inline su2double CFEAVariable::GetSolution_Accel_time_n(unsigned short val_var) { return Solution_Accel_time_n[val_var]; } -// -//inline su2double *CFEAVariable::GetSolution_Accel_time_n(void) { return Solution_Accel_time_n; } -// -//inline void CFEAVariable::SetSolution_Pred(su2double *val_solution_pred){ Solution_Pred = val_solution_pred; } -// -//inline su2double CFEAVariable::GetSolution_Pred(unsigned short val_var){ return Solution_Pred[val_var]; } -// -//inline su2double *CFEAVariable::GetSolution_Pred(void){ return Solution_Pred; } -// -//inline void CFEAVariable::SetSolution_Pred_Old(su2double *val_solution_pred_Old){ Solution_Pred_Old = val_solution_pred_Old; } -// -//inline su2double CFEAVariable::GetSolution_Pred_Old(unsigned short val_var){ return Solution_Pred_Old[val_var]; } -// -//inline su2double *CFEAVariable::GetSolution_Pred_Old(void){ return Solution_Pred_Old; } - inline su2double* CWaveVariable::GetSolution_Direct() { return Solution_Direct;} inline void CWaveVariable::SetSolution_Direct(su2double *val_solution_direct) { for (unsigned short iVar = 0; iVar < nVar; iVar++) Solution_Direct[iVar] += val_solution_direct[iVar];} diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index cb992a52b35..2b568ba84ca 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -1,8 +1,8 @@ /*! - * \file numerics_fem_linear_elasticity.cpp + * \file numerics_direct_elasticity.cpp * \brief This file contains the routines for setting the tangent matrix and residual of a FEM linear elastic structural problem. * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_elasticity_linear.cpp b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp index df19737d309..2aff24332aa 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_linear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp @@ -1,8 +1,8 @@ /*! - * \file numerics_fem_elasticity.cpp + * \file numerics_direct_elasticity_linear.cpp * \brief This file contains the routines for setting the FEM elastic structural problem. * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp index 9c0f6d9c780..f0caaf9ccca 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp @@ -1,8 +1,8 @@ /*! - * \file numerics_fem_nonlinear_elasticity.cpp + * \file numerics_direct_elasticity_nonlinear.cpp * \brief This file contains the routines for setting the tangent matrix and residual of a FEM nonlinear elastic structural problem. * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 752adcf3d2a..2e0630814c9 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -1,8 +1,8 @@ /*! - * \file solution_template.cpp + * \file solver_direct_elasticity.cpp * \brief Main subroutines for solving direct FEM elasticity problems. * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 4e28a1469fb..8791c058703 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -2,7 +2,7 @@ * \file transfer_structure.cpp * \brief Main subroutines for physics of the information transfer between zones * \author R. Sanchez - * \version 4.0.1 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 4a5e4e38a11..136f806e975 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -2,7 +2,7 @@ * \file transfer_structure.cpp * \brief Main subroutines for MPI transfer of information between zones * \author R. Sanchez - * \version 4.0.1 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp index 857da6fbd6f..096df859c4d 100644 --- a/SU2_CFD/src/variable_direct_elasticity.cpp +++ b/SU2_CFD/src/variable_direct_elasticity.cpp @@ -1,8 +1,8 @@ /*! - * \file variable_fem_elasticity.cpp + * \file variable_direct_elasticity.cpp * \brief Definition of the variables for FEM elastic structural problems. * \author R. Sanchez - * \version 4.0.0 "Cardinal" + * \version 4.1.0 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). From 53f064817973e738435a21a28d472ba79a36386d Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 21:40:00 +0000 Subject: [PATCH 237/269] Removed comments. --- SU2_CFD/include/numerics_structure.hpp | 70 +------------------------- SU2_CFD/include/solver_structure.hpp | 51 ------------------- SU2_CFD/include/solver_structure.inl | 15 +----- SU2_CFD/include/variable_structure.hpp | 43 ---------------- SU2_CFD/include/variable_structure.inl | 16 ------ SU2_CFD/src/integration_structure.cpp | 3 -- SU2_CFD/src/output_structure.cpp | 6 +-- 7 files changed, 5 insertions(+), 199 deletions(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index b3aafad3196..c0123674484 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -1431,75 +1431,7 @@ class CNumerics { su2double **val_Jacobian_j, su2double *val_Jacobian_muj, su2double ***val_Jacobian_gradj, CConfig *config); - - /*! - * \brief Computing stiffness matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - //virtual void SetFEA_StiffMatrix2D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); - - /*! - * \brief Computing stiffness matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - //virtual void SetFEA_StiffMatrix3D(su2double **StiffMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); - - /*! - * \brief Computing mass matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - //virtual void SetFEA_StiffMassMatrix2D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); - - /*! - * \brief Computing mass matrix of the Galerkin method. - * \param[out] val_stiffmatrix_elem - Stiffness matrix for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - //virtual void SetFEA_StiffMassMatrix3D(su2double **StiffMatrix_Elem, su2double **MassMatrix_Elem, su2double CoordCorners[8][3], unsigned short nNodes); - - /*! - * \brief Computing dead load vector of the Galerkin method. - * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - //virtual void SetFEA_DeadLoad2D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); - - /*! - * \brief Computing stiffness matrix of the Galerkin method. - * \param[out] val_deadloadvector_elem - Dead load at the nodes for Galerkin computation. - * \param[in] config - Definition of the particular problem. - */ - //virtual void SetFEA_DeadLoad3D(su2double *DeadLoadVector_Elem, su2double CoordCorners[8][3], unsigned short nNodes, su2double matDensity); - - - /*! - * \brief Computing stresses in FEA method. - * \param[in] config - Definition of the particular problem. - */ - //virtual void GetFEA_StressNodal2D(su2double StressVector[8][3], su2double DispElement[8], su2double CoordCorners[8][3], unsigned short nNodes, unsigned short form2d); - - - /*! - * \brief Computing stresses in FEA method. - * \param[in] config - Definition of the particular problem. - */ - //virtual void GetFEA_StressNodal3D(su2double StressVector[8][6], su2double DispElement[24], su2double CoordCorners[8][3], unsigned short nNodes); - - /*! - * \brief A virtual member to linearly interpolate pressures - * \param[in] config - Definition of the particular problem. - */ - //virtual void PressInt_Linear(su2double CoordCorners[4][3], su2double *tn_e, su2double Fnodal[12]); - - /*! - * \brief A virtual member to linearly interpolate viscous stresses - * \param[in] config - Definition of the particular problem. - */ - //virtual void ViscTermInt_Linear(su2double CoordCorners[2][2], su2double Tau_0[3][3], su2double Tau_1[3][3], su2double FviscNodal[4]); - + /*! * \brief A virtual member to compute the tangent matrix in structural problems * \param[in] element_container - Element structure for the particular element integrated. diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 0b574f1c2ac..8e2217ead08 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -630,16 +630,6 @@ class CSolver { virtual void BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker); - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] numerics - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - * \param[in] val_marker - Surface marker where the boundary condition is applied. - */ - //virtual void BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - // unsigned short val_marker); /*! * \brief A virtual member. @@ -2402,13 +2392,6 @@ class CSolver { * \ Set the flux averaged enthalpy at a marker. =\f$ \frac{ \int(rho*u*h dA) }{ \int(rho *u *dA ) }\f$ */ virtual void SetOneD_FluxAvgEntalpy(su2double EnthalpyRef); - - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - //virtual void GetSurface_Pressure(CGeometry *geometry, CConfig *config); /*! * \brief A virtual member. @@ -2494,16 +2477,6 @@ class CSolver { CGeometry **fea_geometry, CSolver ***fea_solution); - /*! - * \brief A virtual member. - * \param[in] fea_geometry - Geometrical definition of the problem. - * \param[in] fea_config - Geometrical definition of the problem. - * \param[in] fea_geometry - Definition of the particular problem. - */ - //virtual void SetStruct_Displacement(CGeometry **fea_geometry, - // CConfig *fea_config, - // CSolver ***fea_solution); - /*! * \brief A virtual member. * \param[in] fea_geometry - Geometrical definition of the problem. @@ -2756,24 +2729,6 @@ class CSolver { virtual void Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - //virtual void Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); - - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] solver - Description of the numerical method. - * \param[in] config - Definition of the particular problem. - */ - //virtual void Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config); - /*! * \brief A virtual member. * \param[in] geometry - Geometrical definition of the problem. @@ -2798,12 +2753,6 @@ class CSolver { */ virtual void Compute_IntegrationConstants(CConfig *config); - /*! - * \brief A virtual member. - * \param[in] geometry - Geometrical definition of the problem. - */ - //virtual void SetSolution_time_n(CGeometry *geometry, CConfig *config); - /*! * \brief A virtual member. * \return Value of the dynamic Aitken relaxation factor diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index 5fd816b75c5..ad8943cefed 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -86,8 +86,6 @@ inline void CSolver::SetFlow_Displacement(CGeometry **flow_geometry, CVolumetric inline void CSolver::SetFlow_Displacement_Int(CGeometry **flow_geometry, CVolumetricMovement *flow_grid_movement, CConfig *flow_config, CConfig *fea_config, CGeometry **fea_geometry, CSolver ***fea_solution) { } -//inline void CSolver::SetStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } - inline void CSolver::PredictStruct_Displacement(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution) { } inline void CSolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fea_config, CSolver ***fea_solution, unsigned long iFSIIter) { } @@ -503,10 +501,7 @@ inline void CSolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_conta inline void CSolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } - -//inline void CSolver::BC_Flow_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, -// unsigned short val_marker) { } - + inline void CSolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) { } @@ -740,15 +735,9 @@ inline void CSolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_c inline void CSolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } -//inline void CSolver::Compute_StiffMassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } - -//inline void CSolver::Compute_StiffMassDampMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { } - inline void CSolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } -inline void CSolver::Compute_IntegrationConstants(CConfig *config) { } - -//inline void CSolver::SetSolution_time_n(CGeometry *geometry, CConfig *config) { } +inline void CSolver::Compute_IntegrationConstants(CConfig *config) { } inline su2double CEulerSolver::GetDensity_Inf(void) { return Density_Inf; } diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 91faef85d5c..641e9458e1a 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -1384,16 +1384,6 @@ class CVariable { * \brief A virtual member. */ virtual void SetVelocity(void); - - /*! - * \brief A virtual member. - */ - //virtual void SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress); - - /*! - * \brief A virtual member. - */ - //virtual void AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress); /*! * \brief A virtual member. @@ -1411,12 +1401,6 @@ class CVariable { */ virtual su2double *GetStress_FEM(void); - /*! - * \brief A virtual member. - - */ - //virtual su2double **GetStress(void); - /*! * \brief A virtual member. */ @@ -1427,33 +1411,6 @@ class CVariable { */ virtual su2double GetVonMises_Stress(void); - - /*! - * \brief A virtual member. - */ - //virtual void SetFlow_Pressure(su2double val_pressure); - - /*! - * \brief A virtual member. - - */ - //virtual su2double GetFlow_Pressure(void); - - /*! - * \brief A virtual member. - */ - //virtual void Initialize_Connectivity(void); - - /*! - * \brief A virtual member. - */ - //virtual void Upgrade_Connectivity(void); - - /*! - * \brief A virtual member. - */ - //virtual unsigned short Get_Connectivity(void); - /*! * \brief A virtual member. diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index 71724fce90a..d61003af961 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -43,12 +43,6 @@ inline void CVariable::AddTraction(unsigned short iVar, unsigned short jVar, su2 inline su2double **CVariable::GetTraction(void) { return NULL; } -//inline void CVariable::SetStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } - -//inline void CVariable::AddStress(unsigned short iVar, unsigned short jVar, su2double val_stress) { } - -//inline su2double **CVariable::GetStress(void) { return NULL; } - inline void CVariable::SetStress_FEM(unsigned short iVar, su2double val_stress) { } inline void CVariable::AddStress_FEM(unsigned short iVar, su2double val_stress) { } @@ -59,16 +53,6 @@ inline void CVariable::SetVonMises_Stress(su2double val_stress) { } inline su2double CVariable::GetVonMises_Stress(void) { return 0; } -//inline void CVariable::SetFlow_Pressure(su2double val_pressure) { } - -//inline su2double CVariable::GetFlow_Pressure(void) { return 0; } - -//inline void CVariable::Initialize_Connectivity(void) { } - -//inline void CVariable::Upgrade_Connectivity(void) { } - -//inline unsigned short CVariable::Get_Connectivity(void) { return 0; } - inline void CVariable::Add_SurfaceLoad_Res(su2double *val_surfForce) { } inline su2double *CVariable::Get_SurfaceLoad_Res(void) {return NULL;} diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index ca9c4949ec7..0c278361755 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -154,9 +154,6 @@ void CIntegration::Space_Integration(CGeometry *geometry, case DISPLACEMENT_BOUNDARY: solver_container[MainSolver]->BC_Normal_Displacement(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); break; -// case FLOWLOAD_BOUNDARY: -// solver_container[MainSolver]->BC_Flow_Load(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); -// break; case LOAD_BOUNDARY: solver_container[MainSolver]->BC_Normal_Load(geometry, solver_container, numerics[CONV_BOUND_TERM], config, iMarker); break; diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 37b80d84c53..806acf43490 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -3842,7 +3842,6 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char levelset_resid[]= ",\"Res_LevelSet\""; char adj_levelset_resid[]= ",\"Res_AdjLevelSet\""; char wave_resid[]= ",\"Res_Wave[0]\",\"Res_Wave[1]\""; -// char fea_resid[]= ",\"Res_FEA\""; char fem_resid[]= ",\"Res_FEM[0]\",\"Res_FEM[1]\",\"Res_FEM[2]\""; char heat_resid[]= ",\"Res_Heat\""; @@ -3973,7 +3972,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, char begin[1000], direct_coeff[1000], surface_coeff[1000], aeroelastic_coeff[1000], monitoring_coeff[10000], adjoint_coeff[1000], flow_resid[1000], adj_flow_resid[1000], turb_resid[1000], trans_resid[1000], adj_turb_resid[1000], levelset_resid[1000], adj_levelset_resid[1000], wave_coeff[1000], - heat_coeff[1000], fem_coeff[1000], wave_resid[1000], heat_resid[1000], //fea_resid[1000], + heat_coeff[1000], fem_coeff[1000], wave_resid[1000], heat_resid[1000], fem_resid[1000], end[1000], oneD_outputs[1000], massflow_outputs[1000], d_direct_coeff[1000]; su2double dummy = 0.0, *Coord; @@ -4088,7 +4087,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Initialize number of variables ---*/ unsigned short nVar_Flow = 0, nVar_LevelSet = 0, nVar_Turb = 0, - nVar_Trans = 0, nVar_Wave = 0, nVar_Heat = 0, //nVar_FEA = 0, + nVar_Trans = 0, nVar_Wave = 0, nVar_Heat = 0, nVar_AdjFlow = 0, nVar_AdjLevelSet = 0, nVar_AdjTurb = 0, nVar_FEM = 0; @@ -4128,7 +4127,6 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, residual_transition = new su2double[nVar_Trans]; residual_levelset = new su2double[nVar_LevelSet]; residual_wave = new su2double[nVar_Wave]; -// residual_fea = new su2double[nVar_FEA]; residual_heat = new su2double[nVar_Heat]; residual_fem = new su2double[nVar_FEM]; From 9c6949282283d42b48ce1b29de36b82a163548f6 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 21:43:08 +0000 Subject: [PATCH 238/269] Fix EOF in test case. --- TestCases/actuator_disk/ActDisk_Euler.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestCases/actuator_disk/ActDisk_Euler.cfg b/TestCases/actuator_disk/ActDisk_Euler.cfg index 4c11dd0ff7a..a8bc1a78305 100644 --- a/TestCases/actuator_disk/ActDisk_Euler.cfg +++ b/TestCases/actuator_disk/ActDisk_Euler.cfg @@ -383,4 +383,4 @@ OPT_CONSTRAINT= NONE % Optimization design variables, separated by semicolons %DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( 1, 1.0 | airfoil | 0, 0.15 ); ( 1, 1.0 | airfoil | 0, 0.20 ); ( 1, 1.0 | airfoil | 0, 0.25 ); ( 1, 1.0 | airfoil | 0, 0.30 ); ( 1, 1.0 | airfoil | 0, 0.35 ); ( 1, 1.0 | airfoil | 0, 0.40 ); ( 1, 1.0 | airfoil | 0, 0.45 ); ( 1, 1.0 | airfoil | 0, 0.50 ); ( 1, 1.0 | airfoil | 0, 0.55 ); ( 1, 1.0 | airfoil | 0, 0.60 ); ( 1, 1.0 | airfoil | 0, 0.65 ); ( 1, 1.0 | airfoil | 0, 0.70 ); ( 1, 1.0 | airfoil | 0, 0.75 ); ( 1, 1.0 | airfoil | 0, 0.80 ); ( 1, 1.0 | airfoil | 0, 0.85 ); ( 1, 1.0 | airfoil | 0, 0.90 ); ( 1, 1.0 | airfoil | 0, 0.95 ); ( 1, 1.0 | airfoil | 1, 0.05 ); ( 1, 1.0 | airfoil | 1, 0.10 ); ( 1, 1.0 | airfoil | 1, 0.15 ); ( 1, 1.0 | airfoil | 1, 0.20 ); ( 1, 1.0 | airfoil | 1, 0.25 ); ( 1, 1.0 | airfoil | 1, 0.30 ); ( 1, 1.0 | airfoil | 1, 0.35 ); ( 1, 1.0 | airfoil | 1, 0.40 ); ( 1, 1.0 | airfoil | 1, 0.45 ); ( 1, 1.0 | airfoil | 1, 0.50 ); ( 1, 1.0 | airfoil | 1, 0.55 ); ( 1, 1.0 | airfoil | 1, 0.60 ); ( 1, 1.0 | airfoil | 1, 0.65 ); ( 1, 1.0 | airfoil | 1, 0.70 ); ( 1, 1.0 | airfoil | 1, 0.75 ); ( 1, 1.0 | airfoil | 1, 0.80 ); ( 1, 1.0 | airfoil | 1, 0.85 ); ( 1, 1.0 | airfoil | 1, 0.90 ); ( 1, 1.0 | airfoil | 1, 0.95 ) -DEFINITION_DV= ( 15, 1.0 | airfoil | 0, 0, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 0, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 1, 0, 1.0 ) +DEFINITION_DV= ( 15, 1.0 | airfoil | 0, 0, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 0, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 0, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 1, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 2, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 3, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 4, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 5, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 6, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 7, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 8, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 9, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 10, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 11, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 12, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 13, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 14, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 15, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 16, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 17, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 18, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 19, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 20, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 21, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 22, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 23, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 24, 1, 0, 1.0 ); ( 15, 1.0 | airfoil | 0, 25, 1, 0, 1.0 ) \ No newline at end of file From b3b3bc6c45a11e5ae65264d25081a2269a2d3111 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 21:48:53 +0000 Subject: [PATCH 239/269] Removed changes in m4sugar and autotools --- .../share/autoconf/autoconf/autoconf.m4f | 848 +++++++++--------- .../autotools/share/autoconf/autom4te.cfg | 8 +- .../share/autoconf/autotest/autotest.m4f | 132 +-- .../autotools/share/autoconf/m4sugar/m4sh.m4f | 130 +-- .../share/autoconf/m4sugar/m4sugar.m4f | 10 +- .../share/automake-1.12/Automake/Config.pm | 2 +- externals/autotools/share/info/dir | 32 +- 7 files changed, 579 insertions(+), 583 deletions(-) diff --git a/externals/autotools/share/autoconf/autoconf/autoconf.m4f b/externals/autotools/share/autoconf/autoconf/autoconf.m4f index 08fd2b488e0..429b6d7726b 100644 --- a/externals/autotools/share/autoconf/autoconf/autoconf.m4f +++ b/externals/autotools/share/autoconf/autoconf/autoconf.m4f @@ -1,11 +1,11 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] T28,27 -m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:779 +m4_location(AC_PROG_CXX_C_O)../../lib/autoconf/c.m4:803 T27,30 -m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:156 +m4_location(AC_LANG_ASSERT)../../lib/autoconf/lang.m4:158 T22,133 _AS_LITERAL_HEREDOC_IFm4_if(m4_index([$1], [@S|@]), [-1], [m4_if(m4_index(m4_translit([[$1]], [\`], [$]), [$]), [-1], @@ -17,7 +17,7 @@ T27,54 AC_PATH_PROGS_FEATURE_CHECK_$0([$1], [$2], [$3], m4_default([$4], [:]), [$5])dnl T37,32 -m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:217 +m4_location(AC_ERLANG_SUBST_ROOT_DIR)../../lib/autoconf/erlang.m4:236 T16,400 _AS_EXIT_PREPARE_m4_defun_pro([$0])AS_REQUIRE_SHELL_FN([as_fn_set_status], [AS_FUNCTION_DESCRIBE([as_fn_set_status], [STATUS], @@ -165,17 +165,17 @@ AC_AIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_AIX' is obsolete You should run autoupdate.])dnl AC_USE_SYSTEM_EXTENSIONS[]_m4_defun_epi([$0]) T31,31 -m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:73 +m4_location(AC_ERLANG_PATH_ERL)../../lib/autoconf/erlang.m4:81 T17,0 AS_MESSAGE_LOG_FD T28,68 AC_LANG_PREPROC(Objective C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCPP])[]_m4_defun_epi([$0]) T24,33 -m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:323 +m4_location(_AC_PROG_FC)../../lib/autoconf/fortran.m4:351 T23,34 -m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2529 +m4_location(AC_TRY_CPP)../../lib/autoconf/general.m4:2530 T34,33 -m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:737 +m4_location(AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:742 T22,1406 AC_SYS_LONG_FILE_NAMES_m4_defun_pro([$0])AC_CACHE_CHECK(for long file names, ac_cv_sys_long_file_names, [ac_cv_sys_long_file_names=yes @@ -210,9 +210,9 @@ if test $ac_cv_sys_long_file_names = yes; then fi []_m4_defun_epi([$0]) T27,36 -m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1845 +m4_location(_AC_FUNC_VFORK)../../lib/autoconf/functions.m4:1939 T34,30 -m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:280 +m4_location(AC_LANG_FUNC_LINK_TRY)../../lib/autoconf/lang.m4:282 T29,212 _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -224,7 +224,7 @@ _AC_CHECK_HEADER_PREPROC_BODY AS_LINENO_PUSH([$[]1]) T18,65 AC_LANG_PREPROC(C)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2403 +m4_location(_AC_DO_TOKENS)../../lib/autoconf/general.m4:2405 T14,159 ac_cv_prog_gxx_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_gxx' is obsolete. You should run autoupdate.])dnl @@ -292,9 +292,9 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then fi T26,33 -m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:581 +m4_location(_AC_PROG_FC_V)../../lib/autoconf/fortran.m4:603 T31,31 -m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:86 +m4_location(AC_ERLANG_NEED_ERL)../../lib/autoconf/erlang.m4:91 T17,1105 AC_FUNC_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_GETGROUPS])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl @@ -330,15 +330,15 @@ LIBS=$ac_save_LIBS T18,23 AC_DEFINE_UNQUOTED_AC_DEFINE_Q([_$0], $@) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 T24,33 m4_location(AC_TIMEZONE)../../lib/autoconf/oldnames.m4:80 T25,30 -m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:365 +m4_location(AC_PATH_XTRA)../../lib/autoconf/libs.m4:478 T28,32 -m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:67 +m4_location(AC_CHECK_HEADER)../../lib/autoconf/headers.m4:72 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -399,9 +399,9 @@ AC_LANG_CONFTEST(C++)cat confdefs.h - <<_ACEOF >conftest.$ac_ext $1 _ACEOF T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 T23,34 -m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1121 +m4_location(AC_FC_FUNC)../../lib/autoconf/fortran.m4:1126 F5,5 ifdefifdef T20,113 @@ -410,11 +410,11 @@ _AC_ENABLE_IF_ACTIONm4_append_uniq([_AC_USER_OPTS], [$1_$2], [ AS_IF([test "${$1_$2+set}" = set], [$1val=$$1_$2; $3], [$4])dnl T28,33 -m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:510 +m4_location(_AC_INIT_SRCDIR)../../lib/autoconf/general.m4:545 T28,30 -m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:141 +m4_location(_AC_LANG_ABBREV)../../lib/autoconf/lang.m4:142 T28,31 -m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:773 +m4_location(AC_CHECK_SIZEOF)../../lib/autoconf/types.m4:791 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -448,7 +448,7 @@ esac F6,6 syscmdsyscmd T30,33 -m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:123 +m4_location(_AC_LINKER_OPTION)../../lib/autoconf/fortran.m4:131 T28,33 m4_location(AC_HAVE_HEADERS)../../lib/autoconf/oldnames.m4:35 T18,50 @@ -460,7 +460,7 @@ m4_patsubstm4_expand_once([m4_warn([syntax], [do not use m4_patsubst: use patsubst or m4_bpatsubst])])dnl patsubst($@) T34,34 -m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2949 +m4_location(_AC_LIBOBJS_NORMALIZE)../../lib/autoconf/general.m4:2965 T18,94 _m4_set_contents_2_m4_stack_reverse([_m4_set_($1)], [_m4_set([$1])], [$2[]_m4_defn([_m4_set_($1)])$3], [$4[]]) @@ -472,7 +472,7 @@ ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && echo " T27,31 m4_location(AC_TYPE_SIZE_T)../../lib/autoconf/types.m4:602 T27,33 -m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:564 +m4_location(AC_HEADER_STAT)../../lib/autoconf/headers.m4:591 T8,81 m4_chompm4_format([[%.*s]], m4_index(m4_translit([[$1]], [ /.], [/ ])[./.], [/.]), [$1]) @@ -516,11 +516,11 @@ m4_ifset([AC_PACKAGE_BUGREPORT], T9,0 AN_OUTPUT T27,35 -m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:362 +m4_location(AC_FUNC_ALLOCA)../../lib/autoconf/functions.m4:412 T30,34 -m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1486 +m4_location(AC_FC_LINE_LENGTH)../../lib/autoconf/fortran.m4:1536 T29,33 -m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:249 +m4_location(AC_CHECK_HEADERS)../../lib/autoconf/headers.m4:255 T23,103 AC_LANG_PREPROC(Erlang)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) @@ -661,9 +661,9 @@ AC_TYPE_INT32_T_m4_defun_pro([$0])_AC_TYPE_INT(32)[]_m4_defun_epi([$0]) T18,2 AC_LANG_SOURCE(Go)$1 T33,33 -m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1599 +m4_location(_AC_OUTPUT_MAIN_LOOP)../../lib/autoconf/status.m4:1737 T24,30 -m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:107 +m4_location(AC_LANG_POP)../../lib/autoconf/lang.m4:115 T11,165 _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], @@ -785,7 +785,7 @@ char *realloc (); AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2]) []_m4_defun_epi([$0]) T27,33 -m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:475 +m4_location(AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:480 T29,33 m4_location(AC_PROGRAM_CHECK)../../lib/autoconf/oldnames.m4:41 T16,2 @@ -835,7 +835,7 @@ T15,267 _AC_CONFIG_FOOSm4_map_args_w([$2], [_AC_CONFIG_REGISTER([$1],], [, [$3])])m4_define([_AC_SEEN_CONFIG(ANY)])m4_define([_AC_SEEN_CONFIG($1)])_AC_CONFIG_COMMANDS_INIT([$4])ac_config_[]m4_tolower([$1])="$ac_config_[]m4_tolower([$1]) m4_if([$1], [COMMANDS], [$2], [m4_normalize([$2])])" T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 T14,441 AC_C_VARARRAYS_m4_defun_pro([$0]) AC_CACHE_CHECK([for variable-length arrays], @@ -858,7 +858,7 @@ T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) T31,36 -m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1625 +m4_location(AC_FUNC_STRERROR_R)../../lib/autoconf/functions.m4:1660 F7,4 m4_incrincr F8,4 @@ -867,7 +867,7 @@ T33,36 AC_LANG_FUNC_LINK_TRY(Fortran 77)AC_LANG_PROGRAM([], [ call $1]) T28,34 -m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3074 +m4_location(_AC_COMPUTE_INT)../../lib/autoconf/general.m4:3081 T13,124 _m4_defun_prom4_ifdef([_m4_expansion_stack], [], [_m4_defun_pro_outer([$1])])m4_expansion_stack_push([$1])m4_pushdef([_m4_expanding($1)]) T15,114 @@ -881,7 +881,7 @@ T27,103 AC_LANG_PREPROC(Fortran 77)_m4_defun_pro([$0])m4_warn([syntax], [$0: No preprocessor defined for ]_AC_LANG)[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -893,7 +893,7 @@ _AS_ECHO_LOG_m4_defun_pro([$0])AS_REQUIRE([_AS_LINENO_PREPARE])[]_m4_popdef([$0] T14,110 AC_DIVERT_PUSHm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], [$1])_m4_divert_raw(_m4_divert([$1], [$2])) T29,33 -m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:485 +m4_location(AC_HEADER_DIRENT)../../lib/autoconf/headers.m4:500 T17,604 _AS_SHELL_FN_WORKas_fn_return () { (exit [$]1); } as_fn_success () { as_fn_return 0; } @@ -943,13 +943,13 @@ AC_C_FLEXIBLE_ARRAY_MEMBER_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,33 -m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:924 +m4_location(__AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:996 T27,31 m4_location(AC_TYPE_MODE_T)../../lib/autoconf/types.m4:614 T20,34 -m4_location(AC_INIT)../../lib/autoconf/general.m4:1358 +m4_location(AC_INIT)../../lib/autoconf/general.m4:1363 T27,28 -m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1882 +m4_location(AC_C_VARARRAYS)../../lib/autoconf/c.m4:1895 T21,97 m4_copyright_condensem4_text_wrap(m4_bpatsubst(m4_flatten([[$1]]), [(C)[- ,0-9]*\([1-9][0-9][0-9][0-9]\)], [(C) \1])) @@ -995,7 +995,7 @@ _AC_LANG_IO_PROGRAM(C++)AC_LANG_PROGRAM([@%:@include ], return ferror (f) || fclose (f) != 0; ]) T31,32 -m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:79 +m4_location(_AC_LIST_MEMBER_IF)../../lib/autoconf/fortran.m4:92 T17,203 m4_cr_not_Letters  !"#*%&'()$+,./0123456789:;<=>?@[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -1063,7 +1063,7 @@ ATEOF ERLCFLAGS="$ERLCFLAGS" ])])[]_m4_defun_epi([$0]) T30,34 -m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2518 +m4_location(AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2520 T18,3219 AC_FUNC_GETLOADAVG_m4_defun_pro([$0])ac_have_func=no # yes means we've found a way to get the load average. @@ -1166,9 +1166,9 @@ AC_SUBST([$1])dnl _AC_ARG_VAR_PRECIOUS([$1])dnl []_m4_defun_epi([$0]) T30,31 -m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:304 +m4_location(AM_TYPE_PTRDIFF_T)../../lib/autoconf/types.m4:305 T27,33 -m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:761 +m4_location(AC_HEADER_TIME)../../lib/autoconf/headers.m4:777 T21,1 _m4_divert(M4SH-INIT)6 T18,1 @@ -1241,9 +1241,9 @@ AS_IF([test "$cross_compiling" = yes], T12,66 m4_re_string[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T31,34 -m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2315 +m4_location(_AC_RUN_LOG_STDERR)../../lib/autoconf/general.m4:2325 T24,33 -m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:833 +m4_location(AC_UNISTD_H)../../lib/autoconf/headers.m4:834 T31,86 _AC_LANG_IO_PROGRAM(Fortran 77)AC_LANG_PROGRAM([], [dnl @@ -1305,7 +1305,7 @@ AC_TYPE_LONG_DOUBLE_WIDER_m4_defun_pro([$0]) T32,36 m4_location(AC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1719 T25,34 -m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:198 +m4_location(AC_PATH_TOOL)../../lib/autoconf/programs.m4:214 T23,47 _AC_CONFIG_COMPUTE_DESTm4_format([[%.*s]], m4_index([$1:], [:]), [$1]) T18,676 @@ -1360,9 +1360,9 @@ ac_link='$GOC -o conftest$ac_exeext $GOFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&A ac_compiler_gnu=yes T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 T26,34 -m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2748 +m4_location(AC_RUN_IFELSE)../../lib/autoconf/general.m4:2757 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 @@ -1376,7 +1376,7 @@ __AC_FC_NAME_MANGLING AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 T34,35 m4_location(AM_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:501 T15,165 @@ -1514,7 +1514,7 @@ m4_PACKAGE_YEAR2012 T44,34 m4_location(AC_VALIDATE_CACHED_SYSTEM_TUPLE)../../lib/autoconf/general.m4:1865 T30,33 -m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:463 +m4_location(AC_PREFIX_PROGRAM)../../lib/autoconf/general.m4:473 T10,211 m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_ifdef([$1], [m4_errprintn( @@ -1583,7 +1583,7 @@ AC_SUBST([FC_DEFINE])dnl AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 F6,3 m4_lenlen T14,42 @@ -1627,7 +1627,7 @@ _AC_FC_LIBRARY_LDFLAGS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 T12,4697 AC_PATH_XTRA_m4_defun_pro([$0])AC_REQUIRE([AC_PATH_X])dnl if test "$no_x" = yes; then @@ -1743,9 +1743,9 @@ AC_SUBST(X_LIBS)dnl AC_SUBST(X_EXTRA_LIBS)dnl []_m4_defun_epi([$0]) T24,34 -m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1094 +m4_location(_AC_FC_FUNC)../../lib/autoconf/fortran.m4:1106 T30,34 -m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1670 +m4_location(AC_CONFIG_AUX_DIR)../../lib/autoconf/general.m4:1671 F12,9 m4_debugmodedebugmode T10,280 @@ -1757,7 +1757,7 @@ m4_set_addm4_ifdef([_m4_set([$1],$2)], [1])m4_pushdef([_m4_set([$1])], [$2])_m4_set_size([$1], [m4_incr])$3]) T28,31 -m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:841 +m4_location(AC_LONG_64_BITS)../../lib/autoconf/types.m4:849 T14,549 _AC_RUN_IFELSE_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_try_run], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_try_run], [LINENO], @@ -1777,7 +1777,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu T24,34 -m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2452 +m4_location(AC_TRY_EVAL)../../lib/autoconf/general.m4:2453 T14,122 m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], [m4_warn([syntax], @@ -1843,13 +1843,13 @@ fi T19,92 AC_CHECK_DECLS_ONCE_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_DECL_ONCE(], [)], [], $1)[]_m4_defun_epi([$0]) T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 T25,34 -m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:894 +m4_location(AC_PROG_YACC)../../lib/autoconf/programs.m4:902 T27,1 _AC_LANG_PREFIX(Fortran 77)F T23,28 -m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:150 +m4_location(AC_PROG_GO)../../lib/autoconf/go.m4:177 T32,0 m4_include(autoconf/programs.m4) T10,412 @@ -1865,7 +1865,7 @@ test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ]) T37,33 -m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:162 +m4_location(_AC_CHECK_HEADER_COMPILE)../../lib/autoconf/headers.m4:173 T33,34 m4_location(AC_CHECK_TOOL_PREFIX)../../lib/autoconf/programs.m4:183 T17,92 @@ -1874,7 +1874,7 @@ _AC_COMPILE_IFELSE($@)[]_m4_defun_epi([$0]) T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T27,34 -m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1636 +m4_location(AC_ARG_PROGRAM)../../lib/autoconf/general.m4:1654 T18,268 _AC_INIT_COPYRIGHTAC_COPYRIGHT(m4_defn([_AC_COPYRIGHT_YEARS]), [VERSION_FSF], [ m4_copyright_condense])dnl @@ -1911,9 +1911,9 @@ dnl # for best performing tool in a list breaks down. rm -f conftest.in conftest.tmp conftest.nl conftest.out])dnl T24,34 -m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:349 +m4_location(AC_PROG_AWK)../../lib/autoconf/programs.m4:350 T31,34 -m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1564 +m4_location(AC_FC_CHECK_BOUNDS)../../lib/autoconf/fortran.m4:1616 T19,700 AC_TYPE_LONG_DOUBLE_m4_defun_pro([$0]) AC_CACHE_CHECK([for long double], [ac_cv_type_long_double], @@ -2063,7 +2063,7 @@ m4_ifdef([_m4_diverting([AC_PROG_INSTALL])], [-]), [-], [[m4_unquote(], [)]], T17,70 AC_CONFIG_HEADERS_m4_defun_pro([$0])_AC_CONFIG_FOOS([HEADERS], $@)[]_m4_defun_epi([$0]) T32,35 -m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:107 +m4_location(AC_CHECK_FUNCS_ONCE)../../lib/autoconf/functions.m4:108 T8,66 m4_ifsetm4_ifdef([$1], [m4_ifval(_m4_defn([$1]), [$2], [$3])], @@ -2088,7 +2088,7 @@ T17,41 AC_PROVIDE_IFELSEm4_ifdef([m4_provide($1)], [$2], [$3]) T27,28 -m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1444 +m4_location(AC_C_BIGENDIAN)../../lib/autoconf/c.m4:1608 T12,30 m4_esyscmd_sm4_chomp_all(m4_esyscmd([$1])) T6,264 @@ -2116,7 +2116,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 T32,0 m4_include(autoconf/autoscan.m4) T20,201 @@ -2137,7 +2137,7 @@ AC_TEST_PROGRAM_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_PR You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_RUN], [AC_TRY_RUN($@)])[]_m4_defun_epi([$0]) T33,34 -m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2907 +m4_location(AC_CONFIG_LIBOBJ_DIR)../../lib/autoconf/general.m4:2908 T17,272 _AS_IDENTIFIER_IFm4_cond([[$1]], [], [], [m4_eval(m4_len(m4_translit([[$1]], ][[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]][)) > 0)], [1], [], @@ -2256,9 +2256,9 @@ AC_PROGRAMS_PATH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGRA You should run autoupdate.])dnl m4_if($#, 0, [AC_PATH_PROGS], [AC_PATH_PROGS($@)])[]_m4_defun_epi([$0]) T25,29 -m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:81 +m4_location(_AC_LANG_SET)../../lib/autoconf/lang.m4:82 T27,34 -m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:851 +m4_location(AC_PROG_RANLIB)../../lib/autoconf/programs.m4:852 T13,84 _AS_QUOTE_OLDm4_warn([obsolete], [back quotes and double quotes must not be escaped in: $1])$1 @@ -2302,18 +2302,18 @@ T9,72 m4_mapallm4_if([$2], [], [], [_m4_foreach([m4_apply([$1],], [)], [], $2)]) T37,33 -m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:245 +m4_location(AC_LANG_PREPROC(Fortran))../../lib/autoconf/fortran.m4:247 F14,6 _m4_divert_rawdivert T13,71 AC_LIBSOURCES_m4_defun_pro([$0])m4_map_args([AC_LIBSOURCE], $1)[]_m4_defun_epi([$0]) T37,32 -m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:301 +m4_location(AC_ERLANG_SUBST_ERTS_VER)../../lib/autoconf/erlang.m4:320 T12,94 AH_CHECK_LIBAH_TEMPLATE(AS_TR_CPP([HAVE_LIB$1]), [Define to 1 if you have the `$1' library (-l$1).]) T40,33 -m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:238 +m4_location(AC_LANG_PREPROC(Fortran 77))../../lib/autoconf/fortran.m4:240 T6,122 m4_cdrm4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], @@ -2491,9 +2491,9 @@ ac_ext=$ac_save_ext _AC_PROG_FC_G []_m4_defun_epi([$0]) T29,33 -m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:437 +m4_location(AC_HEADER_ASSERT)../../lib/autoconf/headers.m4:452 T30,33 -m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:76 +m4_location(AC_HAVE_POUNDBANG)../../lib/autoconf/specific.m4:79 T23,60 AC_LANG_PROGRAM(Erlang)[-module(conftest). -export([start/0]).] @@ -2565,7 +2565,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 T22,2800 _AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_CANONICAL_HOST])dnl _AC_FORTRAN_ASSERT()dnl @@ -2656,7 +2656,7 @@ fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" AC_SUBST([]_AC_LANG_PREFIX[]LIBS) []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2503 +m4_location(_AC_PREPROC_IFELSE)../../lib/autoconf/general.m4:2511 F5,5 indirindir T19,572 @@ -2738,11 +2738,11 @@ AC_HAVE_FUNCS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_FUNC You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_FUNCS], [AC_CHECK_FUNCS($@)])[]_m4_defun_epi([$0]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 T28,33 m4_location(AM_PROG_INSTALL)../../lib/autoconf/oldnames.m4:92 T30,30 -m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:406 +m4_location(AC_NO_EXECUTABLES)../../lib/autoconf/lang.m4:437 T24,23 _AC_LANG_NULL_PROGRAM(C)AC_LANG_PROGRAM([], []) T19,295 @@ -2757,15 +2757,15 @@ AC_CHECK_DECLS([sys_siglist],,, ]) []_m4_defun_epi([$0]) T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 T31,35 -m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:573 +m4_location(AC_REPLACE_FNMATCH)../../lib/autoconf/functions.m4:577 T29,30 -m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:297 +m4_location(AC_LANG_INT_SAVE)../../lib/autoconf/lang.m4:298 T28,28 -m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1378 +m4_location(AC_PROG_CC_STDC)../../lib/autoconf/c.m4:1391 T26,28 -m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1739 +m4_location(AC_C_RESTRICT)../../lib/autoconf/c.m4:1776 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -2791,7 +2791,7 @@ AC_PROGRAMS_CHECK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PROGR You should run autoupdate.])dnl m4_if($#, 0, [AC_CHECK_PROGS], [AC_CHECK_PROGS($@)])[]_m4_defun_epi([$0]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -2803,9 +2803,9 @@ m4_if($#, 0, [AC_FUNC_STRCOLL], [AC_FUNC_STRCOLL($@)])[]_m4_defun_epi([$0]) F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 T34,33 -m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:273 +m4_location(AC_CHECK_HEADERS_ONCE)../../lib/autoconf/headers.m4:274 T18,8 m4_PACKAGE_TARNAMEautoconf T14,87 @@ -2897,9 +2897,9 @@ AC_FUNC_STRTOLD_m4_defun_pro([$0]) T21,90 AC_CHECK_HEADERS_ONCE_m4_defun_pro([$0])m4_map_args_w([$1], [_AC_CHECK_HEADER_ONCE(], [)])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 T26,34 -m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:355 +m4_location(AC_PROG_EGREP)../../lib/autoconf/programs.m4:365 T18,3540 _AC_OUTPUT_SUBDIRS # @@ -3033,7 +3033,7 @@ AC_DEFINE_UNQUOTED(AS_TR_CPP(sizeof_$1), $AS_TR_SH([ac_cv_sizeof_$1]), [The size of `$1', as computed by sizeof.]) []_m4_defun_epi([$0]) T30,34 -m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1752 +m4_location(AC_FC_MODULE_FLAG)../../lib/autoconf/fortran.m4:1800 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -3043,9 +3043,9 @@ AC_REQUIRE_AUX_FILEAS_LITERAL_WORD_IF([$1], [], T17,31 m4_default_quotedm4_if([$1], [], [[$2]], [[$1]]) T27,34 -m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2729 +m4_location(_AC_RUN_IFELSE)../../lib/autoconf/general.m4:2739 T29,27 -m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:328 +m4_location(_AC_ARG_VAR_LIBS)../../lib/autoconf/c.m4:330 T11,88 AH_VERBATIMAS_LITERAL_WORD_IF([$1], [AH_OUTPUT(_m4_expand([$1]), AS_ESCAPE([[$2]], [\']))]) @@ -3104,7 +3104,7 @@ AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0 T12,21 AC_LANG_CASEm4_case(_AC_LANG, $@) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 T26,33 m4_location(AC_ST_BLKSIZE)../../lib/autoconf/oldnames.m4:76 T15,470 @@ -3120,7 +3120,7 @@ AC_LANG_CONFTEST(Fortran 77)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,35 -m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:508 +m4_location(_AC_FUNC_FNMATCH_IF)../../lib/autoconf/functions.m4:541 T21,33 m4_location(AC_UID_T)../../lib/autoconf/oldnames.m4:82 T31,33 @@ -3134,11 +3134,11 @@ AC_MSG_CHECKING{ _AS_ECHO_LOG([checking $1]) _AS_ECHO_N([checking $1... ]); }dnl T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 T31,36 -m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1749 +m4_location(AC_FUNC_UTIME_NULL)../../lib/autoconf/functions.m4:1774 T27,35 -m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:912 +m4_location(AC_FUNC_MALLOC)../../lib/autoconf/functions.m4:921 T14,97 AC_CHECK_FILES_m4_defun_pro([$0])m4_map_args_w([$1], [AC_CHECK_FILE(_$0(], [)[$2], [$3])])[]_m4_defun_epi([$0]) T17,733 @@ -3159,7 +3159,7 @@ _AC_CANONICAL_SPLIT([host]) m4_ifdef([_m4_diverting([AC_CANONICAL_HOST])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_HOST],], [, _m4_divert_dump)]])) T24,34 -m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2687 +m4_location(AC_TRY_LINK)../../lib/autoconf/general.m4:2688 T17,109 _AC_LANG_DISPATCHm4_ifdef([$1($2)], [m4_indir([$1($2)], m4_shift2($@))], @@ -3167,7 +3167,7 @@ _AC_LANG_DISPATCHm4_ifdef([$1($2)], F9,6 m4_syscmdsyscmd T20,29 -m4_location(AC_LANG)../../lib/autoconf/lang.m4:88 +m4_location(AC_LANG)../../lib/autoconf/lang.m4:91 T16,116 _AC_ARG_VAR_LIBS_m4_defun_pro([$0])AC_ARG_VAR([LIBS], [libraries to pass to the linker, e.g. -l])[]_m4_defun_epi([$0]) @@ -3186,7 +3186,7 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T30,33 -m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:42 +m4_location(AC_CONFIG_TESTDIR)../../lib/autoconf/autotest.m4:77 T32,0 m4_include(autoconf/autotest.m4) T16,84 @@ -3601,7 +3601,7 @@ fi T9,22 m4_shift2m4_shift(m4_shift($@)) T23,28 -m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1661 +m4_location(AC_C_CONST)../../lib/autoconf/c.m4:1721 T18,80 m4_expansion_stackm4_stack_foreach_sep_lifo([_$0], [_$0_entry(], [) ])m4_location[: the top level] @@ -3642,10 +3642,10 @@ m4_version_prereqm4_if(m4_version_compare([2.69], [$1]), [m4_fatal([Autoconf version $1 or higher is required], [63])])], [$2]) -T25,29 -m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:97 +T25,30 +m4_location(AC_LANG_PUSH)../../lib/autoconf/lang.m4:100 T25,36 -m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1201 +m4_location(AC_FUNC_MMAP)../../lib/autoconf/functions.m4:1349 T10,43 _AC_DEFINEAS_ECHO(["AS_ESCAPE([[$1]])"]) >>confdefs.h T24,33 @@ -3655,9 +3655,9 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 T30,34 -m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2606 +m4_location(AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2608 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -3687,7 +3687,7 @@ AC_LANG_POP(Fortran 77)dnl T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 T13,110 _AC_ENABLE_IF@%:@ Check whether --$1-$2 was given. _AC_ENABLE_IF_ACTION([$1], m4_translit([$2], [-+.], [___]), [$3], [$4]) @@ -3724,7 +3724,7 @@ else fi []_m4_defun_epi([$0]) T29,32 -m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:719 +m4_location(AC_CONFIG_HEADER)../../lib/autoconf/status.m4:720 T15,97 _AC_CHECK_FILES[$1], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1]), [1], [Define to 1 if you have the file `$1'.])] @@ -3757,9 +3757,9 @@ AC_CACHE_CHECK([for Erlang/OTP root directory], AC_SUBST([ERLANG_ROOT_DIR], [$ac_cv_erlang_root_dir]) []_m4_defun_epi([$0]) T32,31 -m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:389 +m4_location(AC_TYPE_LONG_DOUBLE)../../lib/autoconf/types.m4:409 T28,28 -m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1828 +m4_location(AC_C_PROTOTYPES)../../lib/autoconf/c.m4:1840 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -3797,11 +3797,11 @@ fi rm -f conftest.data []_m4_defun_epi([$0]) T28,34 -m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1030 +m4_location(_AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1066 T19,34 -m4_location(AC_RSH)../../lib/autoconf/programs.m4:858 +m4_location(AC_RSH)../../lib/autoconf/programs.m4:860 T29,31 -m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:800 +m4_location(AC_CHECK_ALIGNOF)../../lib/autoconf/types.m4:803 T13,333 m4_divert_popm4_if([$1], [], [], [$1], _m4_defn([_m4_divert_diversion]), [], @@ -3832,7 +3832,7 @@ AC_ARG_VAR(YFLAGS, will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications.])[]_m4_defun_epi([$0]) T32,33 -m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:181 +m4_location(AC_REQUIRE_SHELL_FN)../../lib/autoconf/general.m4:182 T9,190 AC_PREFIX_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_PREFIX' is obsolete. You should run autoupdate.])dnl @@ -3868,7 +3868,7 @@ AC_CHECK_HEADERS(string.h)[]_m4_defun_epi([$0]) T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T42,27 -m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:345 +m4_location(_AC_PROG_PREPROC_WORKS_IFELSE)../../lib/autoconf/c.m4:378 T12,115 AC_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text(m4_default_quoted([$2], [VERSION_USER]), [m4_default([$3], [m4_newline])([$1])]) @@ -3883,13 +3883,13 @@ _AC_FC_FUNC([$1],[$2]) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:388 +m4_location(AC_PROG_GREP)../../lib/autoconf/programs.m4:393 T27,35 -m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:950 +m4_location(AC_FUNC_MEMCMP)../../lib/autoconf/functions.m4:981 T31,0 m4_include(autoconf/headers.m4) T27,34 -m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3056 +m4_location(AC_COMPUTE_INT)../../lib/autoconf/general.m4:3068 T9,86 AH_BOTTOMm4_define([_AH_COUNTER], m4_incr(_AH_COUNTER))dnl AH_VERBATIM([zzzz]_AH_COUNTER, [$1]) @@ -3898,7 +3898,7 @@ m4_location(AC_TYPE_INT16_T)../../lib/autoconf/types.m4:625 T25,33 m4_location(AC_FIND_XTRA)../../lib/autoconf/oldnames.m4:58 T26,34 -m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2777 +m4_location(AC_CHECK_FILE)../../lib/autoconf/general.m4:2791 T34,292 _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTLAC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ], ac_cv_sys_tiocgwinsz_in_sys_ioctl_h, @@ -3941,11 +3941,11 @@ AC_LANG_POP(C++)dnl T17,2 AC_LANG_SOURCE(C)$1 T33,33 -m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:220 +m4_location(_AC_CHECK_HEADER_NEW)../../lib/autoconf/headers.m4:223 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 T27,34 -m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2808 +m4_location(AC_CHECK_FILES)../../lib/autoconf/general.m4:2809 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -4148,7 +4148,7 @@ m4_translittranslit T28,35 m4_location(fp_FUNC_FNMATCH)../../lib/autoconf/functions.m4:594 T27,34 -m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1363 +m4_location(AC_FC_FREEFORM)../../lib/autoconf/fortran.m4:1395 T29,220 _AC_CHECK_HEADER_COMPILE_BODY AS_LINENO_PUSH([$[]1]) AC_CACHE_CHECK([for $[]2], [$[]3], @@ -4171,7 +4171,7 @@ m4_divert_pushm4_divert_stack_push([$0], [$1])m4_pushdef([_m4_divert_diversion], T21,95 _AC_LANG_NULL_PROGRAM_m4_defun_pro([$0])AC_LANG_SOURCE([_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:259 +m4_location(AC_TYPE_GETGROUPS)../../lib/autoconf/types.m4:299 T8,87 m4_fatalm4_errprintn(m4_location[: error: $1] m4_expansion_stack)m4_exit(m4_if([$2],, 1, [$2])) @@ -4251,9 +4251,9 @@ ${ DEFS=`sed -n "$ac_script" confdefs.h` ] T26,31 -m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:590 +m4_location(AC_TYPE_UID_T)../../lib/autoconf/types.m4:598 T24,33 -m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:891 +m4_location(AC_F77_MAIN)../../lib/autoconf/fortran.m4:896 T20,98 _AC_LANG_OPENMP(C++) #ifndef _OPENMP @@ -4265,13 +4265,13 @@ int main () { return omp_get_num_threads (); } T27,2 AC_LANG_SOURCE(Objective C)$1 T24,34 -m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2350 +m4_location(_AC_DO_ECHO)../../lib/autoconf/general.m4:2371 T29,31 m4_location(AC_TYPE_UINT64_T)../../lib/autoconf/types.m4:631 T20,33 m4_location(AC_LN_S)../../lib/autoconf/oldnames.m4:62 T27,31 -m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:829 +m4_location(AC_INT_16_BITS)../../lib/autoconf/types.m4:836 T16,225 _AS_LINENO_WORKS as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO @@ -4349,19 +4349,19 @@ m4_wrap_m4_wrap([], [$1[]]) T16,9 _AS_TEST_X_WORKStest -x / T28,35 -m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:927 +m4_location(AC_FUNC_MBRTOWC)../../lib/autoconf/functions.m4:945 T25,34 -m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2538 +m4_location(AC_EGREP_CPP)../../lib/autoconf/general.m4:2550 T29,34 -m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2694 +m4_location(AC_COMPILE_CHECK)../../lib/autoconf/general.m4:2696 T26,36 -m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1829 +m4_location(_AC_FUNC_FORK)../../lib/autoconf/functions.m4:1840 T25,34 -m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:451 +m4_location(AC_XENIX_DIR)../../lib/autoconf/specific.m4:464 T26,34 -m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2920 +m4_location(AC_LIBSOURCES)../../lib/autoconf/general.m4:2921 T22,34 -m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2938 +m4_location(AC_LIBOBJ)../../lib/autoconf/general.m4:2941 T12,110 _m4_set_sizem4_define([_m4_set_size($1)], m4_ifdef([_m4_set_size($1)], [$2(m4_indir([_m4_set_size($1)]))], @@ -4405,7 +4405,7 @@ AC_STRUCT_ST_BLOCKS_m4_defun_pro([$0])AC_CHECK_MEMBERS([struct stat.st_blocks], T6,43 m4_map_m4_foreach([_m4_apply([$1],], [)], [], $2) T28,34 -m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:524 +m4_location(AC_PROG_INSTALL)../../lib/autoconf/programs.m4:612 T10,54 m4_includem4_include_unique([$1])dnl m4_builtin([include], [$1]) @@ -4583,9 +4583,9 @@ AC_CONFIG_SUBDIRS_m4_defun_pro([$0])AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])AC_RE T28,36 m4_location(AM_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1385 T22,30 -m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:323 +m4_location(AC_PATH_X)../../lib/autoconf/libs.m4:358 T36,33 -m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1071 +m4_location(AC_CONFIG_COMMANDS_POST)../../lib/autoconf/status.m4:1073 T26,1 _m4_divert(HEADER-COMMENT)2 T26,688 @@ -4884,21 +4884,21 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran])dnl []_m4_defun_epi([$0]) T22,33 -m4_location(AC_PREREQ)../../lib/autoconf/general.m4:305 +m4_location(AC_PREREQ)../../lib/autoconf/general.m4:307 T28,35 -m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:546 +m4_location(AC_FUNC_FNMATCH)../../lib/autoconf/functions.m4:551 T10,177 AM_MINGW32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_MINGW32' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MINGW32], [AC_MINGW32($@)])[]_m4_defun_epi([$0]) T31,35 -m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:715 +m4_location(AC_FUNC_GETLOADAVG)../../lib/autoconf/functions.m4:803 T11,150 AC_SCO_INTL_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SCO_INTL' is obsolete. You should run autoupdate.])dnl AC_FUNC_STRFTIME[]_m4_defun_epi([$0]) T27,33 -m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:268 +m4_location(ac_cv_prog_g77)../../lib/autoconf/fortran.m4:269 T23,36 m4_location(AC_VPRINTF)../../lib/autoconf/functions.m4:1966 T21,36 @@ -4927,19 +4927,19 @@ _AS_DIRNAME_SED_m4_defun_pro([$0])AS_ECHO([X[]$1]) | T25,33 m4_location(AC_ST_BLOCKS)../../lib/autoconf/oldnames.m4:77 T33,33 -m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:819 +m4_location(AC_HEADER_TIOCGWINSZ)../../lib/autoconf/headers.m4:828 T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T30,34 -m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2332 +m4_location(_AC_RUN_LOG_LIMIT)../../lib/autoconf/general.m4:2344 T30,33 -m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:833 +m4_location(AC_F77_DUMMY_MAIN)../../lib/autoconf/fortran.m4:838 T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -4948,9 +4948,9 @@ AM_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T37,30 -m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:329 +m4_location(AC_LANG_COMPILER_REQUIRE)../../lib/autoconf/lang.m4:331 T27,33 -m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:677 +m4_location(AC_HEADER_STDC)../../lib/autoconf/headers.m4:729 T6,37 _AC_CC_AC_LANG_DISPATCH([$0], _AC_LANG, $@) T16,65 @@ -4968,9 +4968,9 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 T27,27 -m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:822 +m4_location(AC_PROG_OBJCPP)../../lib/autoconf/c.m4:847 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -4980,7 +4980,7 @@ m4_providem4_ifdef([m4_provide($1)], [], [m4_set_add([_m4_provide], [$1], [m4_define([m4_provide($1)], m4_ifdef([_m4_diverting], [_m4_defn([_m4_diverting])]))])]) T26,28 -m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1787 +m4_location(AC_C_VOLATILE)../../lib/autoconf/c.m4:1801 T18,209 AC_LONG_FILE_NAMES_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LONG_FILE_NAMES' is obsolete. You should run autoupdate.])dnl @@ -4992,7 +4992,7 @@ AC_CYGWIN32_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_CYGWIN32' i You should run autoupdate.])dnl m4_if($#, 0, [AC_CYGWIN], [AC_CYGWIN($@)])[]_m4_defun_epi([$0]) T28,30 -m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:137 +m4_location(AC_HAVE_LIBRARY)../../lib/autoconf/libs.m4:145 T13,100 AS_LINENO_POP_m4_defun_pro([$0])eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno[]_m4_defun_epi([$0]) T11,65 @@ -5002,7 +5002,7 @@ m4_ignore T28,33 m4_location(AC_STDC_HEADERS)../../lib/autoconf/oldnames.m4:75 T29,35 -m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:149 +m4_location(AC_TRY_LINK_FUNC)../../lib/autoconf/functions.m4:150 T20,184 _AC_FC_NAME_MANGLING_m4_defun_pro([$0])AC_REQUIRE([AC_FC_LIBRARY_LDFLAGS])dnl AC_REQUIRE([AC_FC_DUMMY_MAIN])dnl @@ -5069,19 +5069,19 @@ if test $ac_cv_func_chown_works = yes; then fi []_m4_defun_epi([$0]) T30,34 -m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1815 +m4_location(AC_CANONICAL_HOST)../../lib/autoconf/general.m4:1828 T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T9,0 AU_DEFINE T28,34 -m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2556 +m4_location(AC_EGREP_HEADER)../../lib/autoconf/general.m4:2559 T8,179 AC_ERROR_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ERROR' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_MSG_ERROR], [AC_MSG_ERROR($@)])[]_m4_defun_epi([$0]) T27,34 -m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2461 +m4_location(AC_TRY_COMMAND)../../lib/autoconf/general.m4:2463 T9,184 AC_SIZE_T_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SIZE_T' is obsolete. You should run autoupdate.])dnl @@ -5119,11 +5119,11 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 T27,27 -m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:636 +m4_location(AC_PROG_CXXCPP)../../lib/autoconf/c.m4:661 T32,32 -m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:175 +m4_location(AC_ERLANG_CHECK_LIB)../../lib/autoconf/erlang.m4:211 T19,153 _AC_CONFIG_REGISTERm4_if([$1], [COMMANDS], [], @@ -5153,15 +5153,15 @@ _AC_FC_MAIN AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T34,30 -m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:256 +m4_location(_AC_LANG_NULL_PROGRAM)../../lib/autoconf/lang.m4:257 T24,33 m4_location(AC_CYGWIN32)../../lib/autoconf/oldnames.m4:86 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T24,27 -m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:388 +m4_location(AC_PROG_CPP)../../lib/autoconf/c.m4:417 T23,27 -m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:448 +m4_location(AC_PROG_CC)../../lib/autoconf/c.m4:496 T7,75 m4_warn_m4_warn([$1], [$2], m4_ifdef([_m4_expansion_stack], [m4_expansion_stack])) @@ -5214,9 +5214,9 @@ T16,110 AC_CHECK_MEMBERS_m4_defun_pro([$0])m4_map_args_sep([AC_CHECK_MEMBER(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) T30,31 -m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:567 +m4_location(AC_TYPE_MBSTATE_T)../../lib/autoconf/types.m4:582 T31,33 -m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1026 +m4_location(AC_OUTPUT_COMMANDS)../../lib/autoconf/status.m4:1031 T16,245 m4_cr_not_digits  !"#*%&'()$+,./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -5230,7 +5230,7 @@ AC_CACHE_VAL([ac_cv_func_setvbuf_reversed], [ac_cv_func_setvbuf_reversed=no]) T12,25 m4_set_listcm4_set_map_sep([$1], [,]) T27,36 -m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1545 +m4_location(AC_FUNC_STRTOD)../../lib/autoconf/functions.m4:1584 T21,33 m4_location(AC_ERROR)../../lib/autoconf/oldnames.m4:34 T19,584 @@ -5277,13 +5277,13 @@ if test $ac_cv_func_$1_empty_string_bug = yes; then fi T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 T21,210 AM_FUNC_ERROR_AT_LINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_FUNC_ERROR_AT_LINE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_ERROR_AT_LINE], [AC_FUNC_ERROR_AT_LINE($@)])[]_m4_defun_epi([$0]) T34,35 -m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:460 +m4_location(AC_FUNC_CLOSEDIR_VOID)../../lib/autoconf/functions.m4:479 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -5583,7 +5583,7 @@ AC_TYPE_UINTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2031 +m4_location(AC_CACHE_VAL)../../lib/autoconf/general.m4:2046 T31,443 _AC_SYS_LARGEFILE_TEST_INCLUDES@%:@include /* Check that off_t can represent 2**63 - 1 correctly. @@ -5611,7 +5611,7 @@ T26,96 AC_DISABLE_OPTION_CHECKING_m4_defun_pro([$0])m4_divert_once([DEFAULTS], [enable_option_checking=no]) []_m4_defun_epi([$0]) T23,34 -m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2395 +m4_location(_AC_DO_VAR)../../lib/autoconf/general.m4:2396 T34,0 m4_include(autoconf/autoheader.m4) T24,1 @@ -5624,7 +5624,7 @@ T10,3 m4_newline $1 T28,30 -m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:241 +m4_location(AC_LANG_PROGRAM)../../lib/autoconf/lang.m4:242 T15,77 _AC_LANG_PREFIX_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T37,125 @@ -6003,10 +6003,10 @@ fi []_m4_defun_epi([$0]) T19,40 AC_CONFIG_MACRO_DIR_m4_defun_pro([$0])[]_m4_defun_epi([$0]) -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp T31,35 -m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:557 +m4_location(_AC_LIBOBJ_FNMATCH)../../lib/autoconf/functions.m4:568 T32,0 m4_include(autoconf/specific.m4) T16,73 @@ -6046,9 +6046,9 @@ static unsigned long int ulongval () { return $2; } return ferror (f) || fclose (f) != 0; ]) T26,34 -m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:120 +m4_location(_AC_PATH_PROG)../../lib/autoconf/programs.m4:150 T29,28 -m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1396 +m4_location(AC_C_BACKSLASH_A)../../lib/autoconf/c.m4:1414 T19,2 _AC_LANG_PREFIX(Go)GO T9,184 @@ -6077,7 +6077,7 @@ __program____program__ T6,26 AS_BOX_$0(m4_expand([$1]), [$2]) T28,36 -m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1417 +m4_location(AC_FUNC_REALLOC)../../lib/autoconf/functions.m4:1426 T7,156 m4_defnm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_defn([$1])], @@ -6088,9 +6088,9 @@ fp_FUNC_FNMATCH_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `fp_FUNC_FN You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FNMATCH], [AC_FUNC_FNMATCH($@)])[]_m4_defun_epi([$0]) T28,28 -m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1101 +m4_location(_AC_PROG_CC_C89)../../lib/autoconf/c.m4:1156 T28,36 -m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1362 +m4_location(AC_FUNC_OBSTACK)../../lib/autoconf/functions.m4:1380 T11,544 _AS_PREPARE_m4_defun_pro([$0])m4_pushdef([AS_REQUIRE])m4_pushdef([AS_REQUIRE_SHELL_FN], _m4_defn([_AS_REQUIRE_SHELL_FN]) )m4_pushdef([AS_MESSAGE_LOG_FD], [-1])_AS_ERROR_PREPARE @@ -6138,9 +6138,9 @@ m4_location(AC_ST_RDEV)../../lib/autoconf/oldnames.m4:78 T33,33 m4_location(AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:999 T27,28 -m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1808 +m4_location(AC_C_STRINGIZE)../../lib/autoconf/c.m4:1821 T24,34 -m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2266 +m4_location(AC_CHECKING)../../lib/autoconf/general.m4:2267 T6,4 m4_car[$1] T21,196 @@ -6252,7 +6252,7 @@ fi])dnl T14,62 m4_set_foreachm4_pushdef([$2])m4_set_map_sep([$1], [m4_define([$2],], [)$3]) T30,33 -m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:779 +m4_location(_AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:828 T11,190 AC_SET_MAKE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_SET_MAKE' is obsolete. You should run autoupdate.])dnl @@ -6269,7 +6269,7 @@ AC_SEARCH_LIBS([strerror], [cposix])[]_m4_defun_epi([$0]) T16,101 m4_stack_foreach_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2(_m4_defn([m4_tmp-$1]))]) T26,34 -m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:164 +m4_location(AC_PATH_PROGS)../../lib/autoconf/programs.m4:171 T12,77 m4_chomp_allm4_format([[%.*s]], m4_bregexp(m4_translit([[$1]], [ /], [/ ]), [/*$]), [$1]) @@ -6278,7 +6278,7 @@ AC_LN_S_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LN_S' is obsole You should run autoupdate.])dnl m4_if($#, 0, [AC_PROG_LN_S], [AC_PROG_LN_S($@)])[]_m4_defun_epi([$0]) T19,33 -m4_location(AC_USG)../../lib/autoconf/headers.m4:840 +m4_location(AC_USG)../../lib/autoconf/headers.m4:852 T6,46 m4_cmpm4_eval((([$1]) > ([$2])) - (([$1]) < ([$2]))) T9,373 @@ -6316,9 +6316,9 @@ AC_FUNC_MBRTOWC_m4_defun_pro([$0]) T31,33 m4_location(AC_WORDS_BIGENDIAN)../../lib/autoconf/oldnames.m4:83 T28,34 -m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:662 +m4_location(AC_PROG_MKDIR_P)../../lib/autoconf/programs.m4:699 T26,36 -m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:1975 +m4_location(AC_FUNC_WAIT3)../../lib/autoconf/functions.m4:2025 T17,51 _AS_ECHO_UNQUOTEDAS_ECHO(["$1"]) >&m4_default([$2], [AS_MESSAGE_FD]) T19,120 @@ -6328,11 +6328,11 @@ _AC_FUNCS_EXPANSION m4_define([_AC_FUNCS_EXPANSION], []) T19,34 -m4_location(_AC_DO)../../lib/autoconf/general.m4:2377 +m4_location(_AC_DO)../../lib/autoconf/general.m4:2379 T30,33 m4_location(AC_YYTEXT_POINTER)../../lib/autoconf/oldnames.m4:84 T37,30 -m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:289 +m4_location(AC_LANG_BOOL_COMPILE_TRY)../../lib/autoconf/lang.m4:290 T20,96 _AS_DETECT_SUGGESTED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_SUGGESTED_BODY], [$1 || AS_EXIT])[]_m4_defun_epi([$0]) T17,57 @@ -6469,7 +6469,7 @@ AC_CHECK_HEADERS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_HEADER(], [)]) [$3], [$4])dnl]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:450 +m4_location(AC_PREFIX_DEFAULT)../../lib/autoconf/general.m4:451 F8,5 m4_indirindir T12,1 @@ -6510,7 +6510,7 @@ m4_divert_pop()dnl m4_ifdef([_m4_diverting([AC_NO_EXECUTABLES])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_NO_EXECUTABLES],], [, _m4_divert_dump)]])) T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 F12,9 m4_changecomchangecom F6,6 @@ -6526,7 +6526,7 @@ $2 T10,62 m4_noquotem4_changequote([-=<{(],[)}>=-])$1-=<{()}>=-m4_changequote([,]) T27,34 -m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:86 +m4_location(AC_CHECK_FUNCS)../../lib/autoconf/functions.m4:92 T13,42 AS_VAR_SET_IFAS_IF([AS_VAR_TEST_SET([$1])], [$2], [$3]) F8,5 @@ -6539,7 +6539,7 @@ _AS_RUNm4_ifval([$2], [{ $as_echo "$as_bourne_compatible"$1 | as_run=a $2; }], T36,33 m4_location(AC_SYS_SIGLIST_DECLARED)../../lib/autoconf/oldnames.m4:79 T27,30 -m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:224 +m4_location(AC_LANG_SOURCE)../../lib/autoconf/lang.m4:225 T19,260 _AC_FC_DIALECT_YEAR_m4_defun_pro([$0])m4_case(m4_bpatsubsts(m4_tolower([$1]), [fortran],[], [ *],[]), [77],[1977], [1977],[1977], @@ -6690,9 +6690,9 @@ AC_CHECK_HEADER_STDBOOL_m4_defun_pro([$0])AC_CACHE_CHECK([for stdbool.h that con AC_CHECK_TYPES([_Bool]) []_m4_defun_epi([$0]) T30,33 -m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:667 +m4_location(AC_HEADER_STDBOOL)../../lib/autoconf/headers.m4:672 T27,34 -m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1081 +m4_location(AC_FC_WRAPPERS)../../lib/autoconf/fortran.m4:1086 T18,98 _AC_LANG_OPENMP(C) #ifndef _OPENMP @@ -6814,7 +6814,7 @@ esac AS_LINENO_POP T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 T23,2 AC_LANG_SOURCE(Fortran)$1 T12,4700 @@ -6973,9 +6973,9 @@ T12,145 AC_LANG_CALL_m4_defun_pro([$0])m4_ifval([$2], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 T32,33 -m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:353 +m4_location(AC_INCLUDES_DEFAULT)../../lib/autoconf/headers.m4:357 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -7157,7 +7157,7 @@ case $ac_cv_c_int$1_t in #( esac []_m4_defun_epi([$0]) T44,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:268 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_DIR)../../lib/autoconf/erlang.m4:278 T19,166 _AC_CHECK_FUNC_ONCE_AH_CHECK_FUNC([$1])AC_DEFUN([_AC_Func_$1], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" $1"])]) @@ -7167,13 +7167,13 @@ AM_EXEEXT_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AM_EXEEXT' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_EXEEXT], [AC_EXEEXT($@)])[]_m4_defun_epi([$0]) T34,31 -m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:718 +m4_location(_AC_TYPE_UNSIGNED_INT)../../lib/autoconf/types.m4:738 T28,28 -m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1941 +m4_location(_AC_LANG_OPENMP)../../lib/autoconf/c.m4:1942 T35,34 -m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:193 +m4_location(AC_SYS_LONG_FILE_NAMES)../../lib/autoconf/specific.m4:225 T35,34 -m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1696 +m4_location(AC_FC_MODULE_EXTENSION)../../lib/autoconf/fortran.m4:1723 T17,1432 AC_TYPE_GETGROUPS_m4_defun_pro([$0])AC_REQUIRE([AC_TYPE_UID_T])dnl AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups, @@ -7257,11 +7257,11 @@ else fi []_m4_defun_epi([$0]) T26,34 -m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2385 +m4_location(_AC_DO_STDERR)../../lib/autoconf/general.m4:2387 T25,27 m4_location(AC_LANG_OBJC)../../lib/autoconf/c.m4:274 T38,34 -m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1678 +m4_location(AC_CONFIG_AUX_DIR_DEFAULT)../../lib/autoconf/general.m4:1679 F7,4 m4_evaleval T26,2 @@ -7289,7 +7289,7 @@ program_transform_name=`AS_ECHO(["$program_transform_name"]) | sed "$ac_script"` m4_ifdef([_m4_diverting([AC_ARG_PROGRAM])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_ARG_PROGRAM],], [, _m4_divert_dump)]])) T47,32 -m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:283 +m4_location(AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR)../../lib/autoconf/erlang.m4:295 T24,3 _m4_divert(VERSION_USER)202 T15,186 @@ -7320,9 +7320,9 @@ AC_TRY_LINK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_LINK' i You should run autoupdate.])dnl AC_LINK_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])[]_m4_defun_epi([$0]) T23,30 -m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:297 +m4_location(_AC_PATH_X)../../lib/autoconf/libs.m4:313 T35,33 -m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:634 +m4_location(_AC_FC_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:722 T15,23 AS_EXECUTABLE_Pas_fn_executable_p $1[] T15,129 @@ -7364,9 +7364,9 @@ AC_FUNC_MEMCMP_m4_defun_pro([$0])AC_CACHE_CHECK([for working memcmp], ac_cv_func test $ac_cv_func_memcmp_working = no && AC_LIBOBJ([memcmp]) []_m4_defun_epi([$0]) T31,31 -m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:148 +m4_location(_AC_CHECK_TYPE_NEW)../../lib/autoconf/types.m4:160 T27,27 -m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:567 +m4_location(AC_PROG_CC_C_O)../../lib/autoconf/c.m4:615 T13,50 AC_MSG_RESULT{ _AS_ECHO_LOG([result: $1]) _AS_ECHO([$1]); }dnl @@ -7376,7 +7376,7 @@ AC_LANG_CONFTEST(Fortran)cat > conftest.$ac_ext <<_ACEOF AC_LANG_DEFINES_PROVIDED[]$1 _ACEOF T32,34 -m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2064 +m4_location(_AC_CACHE_CHECK_INT)../../lib/autoconf/general.m4:2067 T6,598 m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4], @@ -7466,7 +7466,7 @@ AC_PREREQm4_if(m4_version_compare([2.69], [$1]), [63])])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 T14,1574 _AC_CHECK_PROG_m4_defun_pro([$0])# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=$[2] @@ -7522,7 +7522,7 @@ else fi []_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1955 +m4_location(AC_FUNC_VPRINTF)../../lib/autoconf/functions.m4:1961 T33,0 m4_include(autoconf/functions.m4) T17,185 @@ -7679,7 +7679,7 @@ test -n "$target_alias" && m4_ifdef([_m4_diverting([AC_CANONICAL_TARGET])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_TARGET],], [, _m4_divert_dump)]])) T31,35 -m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:887 +m4_location(_AC_FUNC_MALLOC_IF)../../lib/autoconf/functions.m4:904 T13,196 AC_GETLOADAVG_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_GETLOADAVG' is obsolete. You should run autoupdate.])dnl @@ -7761,7 +7761,7 @@ AC_TEST_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TEST_CPP' i You should run autoupdate.])dnl m4_if($#, 0, [AC_TRY_CPP], [AC_TRY_CPP($@)])[]_m4_defun_epi([$0]) T24,28 -m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1903 +m4_location(AC_C_TYPEOF)../../lib/autoconf/c.m4:1934 T16,265 AC_LANG(Fortran)ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&AS_MESSAGE_LOG_FD' @@ -7769,13 +7769,13 @@ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest ac_compiler_gnu=$ac_cv_fc_compiler_gnu T32,27 -m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:318 +m4_location(_AC_ARG_VAR_LDFLAGS)../../lib/autoconf/c.m4:321 T34,33 m4_location(AC_STAT_MACROS_BROKEN)../../lib/autoconf/oldnames.m4:74 T24,34 -m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:867 +m4_location(AC_PROG_SED)../../lib/autoconf/programs.m4:883 T25,27 -m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:871 +m4_location(AC_PROG_OBJC)../../lib/autoconf/c.m4:900 T25,34 m4_location(AC_ISC_POSIX)../../lib/autoconf/specific.m4:446 T16,27 @@ -7804,7 +7804,7 @@ _AC_CACHE_CHECK_INT_m4_defun_pro([$0])AC_CACHE_CHECK([$1], [$2], T15,64 AC_TYPE_UINT8_T_m4_defun_pro([$0])_AC_TYPE_UNSIGNED_INT(8)[]_m4_defun_epi([$0]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -7859,7 +7859,7 @@ _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T22,33 m4_location(AC_FD_MSG)../../lib/autoconf/general.m4:384 T33,34 -m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1675 +m4_location(AC_F77_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1679 T25,53 _m4_expansion_stack_entry_m4_defn([m4_location($1)])[: $1 is expanded from...] T19,191 @@ -7997,7 +7997,7 @@ AS_VAR_IF([ac_Lib], [yes], AS_VAR_POPDEF([ac_Lib])dnl []_m4_defun_epi([$0]) T25,30 -m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:125 +m4_location(AC_LANG_SAVE)../../lib/autoconf/lang.m4:128 T14,159 ac_cv_prog_g77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `ac_cv_prog_g77' is obsolete. You should run autoupdate.])dnl @@ -8054,9 +8054,9 @@ _AC_PROG_FC_C_O AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T29,31 -m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:344 +m4_location(AC_TYPE_INTPTR_T)../../lib/autoconf/types.m4:361 T26,33 -m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:883 +m4_location(AC_DIR_HEADER)../../lib/autoconf/headers.m4:895 T14,78 AC_TRY_COMMAND_m4_defun_pro([$0]){ ac_try='$1' _AC_EVAL([$ac_try]); }[]_m4_defun_epi([$0]) @@ -8091,11 +8091,11 @@ AC_TYPE_INTPTR_T_m4_defun_pro([$0]) done]) []_m4_defun_epi([$0]) T25,34 -m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1154 +m4_location(AC_FC_SRCEXT)../../lib/autoconf/fortran.m4:1188 T28,34 -m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1420 +m4_location(AC_FC_FIXEDFORM)../../lib/autoconf/fortran.m4:1449 T36,33 -m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:600 +m4_location(AC_CHECK_HEADER_STDBOOL)../../lib/autoconf/headers.m4:661 T9,127 _m4_splitm4_changequote([-=<{(],[)}>=-])[m4_bpatsubst(-=<{(-=<{($1)}>=-)}>=-, -=<{($2)}>=-, -=<{(]$3[)}>=-)]m4_changequote([, ]) @@ -8205,13 +8205,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T35,34 -m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1433 +m4_location(AC_PRESERVE_HELP_ORDER)../../lib/autoconf/general.m4:1442 T26,35 m4_location(AC_GETLOADAVG)../../lib/autoconf/functions.m4:808 T24,34 -m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1111 +m4_location(AC_F77_FUNC)../../lib/autoconf/fortran.m4:1116 T36,32 -m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:160 +m4_location(AC_LANG_PREPROC(Erlang))../../lib/autoconf/erlang.m4:162 T8,85 _m4_joinm4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift2($@))]) @@ -8238,13 +8238,13 @@ AC_INLINE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_INLINE' is ob You should run autoupdate.])dnl m4_if($#, 0, [AC_C_INLINE], [AC_C_INLINE($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2844 +m4_location(AC_CHECK_DECL)../../lib/autoconf/general.m4:2856 T10,24 AN_PROGRAMAN_OUTPUT([program], $@) T36,30 -m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:372 +m4_location(AC_LANG_PREPROC_REQUIRE)../../lib/autoconf/lang.m4:374 T34,31 -m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:503 +m4_location(AC_TYPE_LONG_LONG_INT)../../lib/autoconf/types.m4:542 T16,4 _m4_divert(BODY)1000 T18,1268 @@ -8294,7 +8294,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T29,34 -m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:134 +m4_location(AC_SYS_LARGEFILE)../../lib/autoconf/specific.m4:177 T35,31 m4_location(AC_STRUCT_DIRENT_D_INO)../../lib/autoconf/types.m4:964 T11,967 @@ -8330,11 +8330,11 @@ AC_C_TYPEOF_m4_defun_pro([$0]) fi []_m4_defun_epi([$0]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 T28,33 m4_location(AC_PROGRAM_PATH)../../lib/autoconf/oldnames.m4:43 T32,31 -m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:63 +m4_location(AC_ERLANG_NEED_ERLC)../../lib/autoconf/erlang.m4:68 T20,177 _AC_CHECK_HEADER_OLD_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `$0' is obsolete. You should use AC_CHECK_HEADER with a fourth argument.])_AC_CHECK_HEADER_PREPROC($@)[]_m4_defun_epi([$0]) @@ -8352,15 +8352,15 @@ else fi []_m4_defun_epi([$0]) T27,30 -m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:381 +m4_location(AC_REQUIRE_CPP)../../lib/autoconf/lang.m4:382 T24,34 -m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:709 +m4_location(AC_PROG_LEX)../../lib/autoconf/programs.m4:713 T12,10 m4_cr_digits0123456789 T31,33 -m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:158 +m4_location(_AC_FORTRAN_ASSERT)../../lib/autoconf/fortran.m4:161 T33,27 -m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:308 +m4_location(_AC_ARG_VAR_CPPFLAGS)../../lib/autoconf/c.m4:311 T17,17 m4_PACKAGE_STRINGGNU Autoconf 2.69 T30,6 @@ -8382,12 +8382,12 @@ AS_TEST_X_m4_defun_pro([$0])AS_REQUIRE([_AS_TEST_PREPARE])[]_m4_popdef([$0])m4_i T21,145 AC_LANG_FUNC_LINK_TRY_m4_defun_pro([$0])m4_ifval([$1], [], [m4_warn([syntax], [$0: no function given])])dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) -T27,35 -m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:987 +T27,36 +m4_location(AC_FUNC_MKTIME)../../lib/autoconf/functions.m4:1190 T32,34 -m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1684 +m4_location(AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1688 T25,33 -m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:82 +m4_location(AC_ARG_ARRAY)../../lib/autoconf/specific.m4:84 T28,33 m4_location(AC_HEADER_EGREP)../../lib/autoconf/oldnames.m4:37 T15,863 @@ -8414,9 +8414,9 @@ if test $ac_cv_prog_[]_AC_LANG_ABBREV[]_c_o = no; then fi []_m4_defun_epi([$0]) T23,34 -m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2764 +m4_location(AC_TRY_RUN)../../lib/autoconf/general.m4:2765 T31,32 -m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1050 +m4_location(AC_STRUCT_TIMEZONE)../../lib/autoconf/types.m4:1077 F10,6 _m4_popdefpopdef T9,68 @@ -8463,7 +8463,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 T24,2 _AC_LANG_PREFIX(Fortran)FC T15,376 @@ -8529,9 +8529,9 @@ AC_CONFIG_COMMANDS_PRE([case $FC_MODOUT in #( esac])dnl []_m4_defun_epi([$0]) T32,33 -m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:278 +m4_location(_AC_FC_DIALECT_YEAR)../../lib/autoconf/fortran.m4:285 T28,34 -m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2661 +m4_location(_AC_LINK_IFELSE)../../lib/autoconf/general.m4:2670 T29,33 m4_location(AC_PROGRAM_EGREP)../../lib/autoconf/oldnames.m4:42 T11,162 @@ -8591,7 +8591,7 @@ AC_MSG_RESULT([$cross_compiling]) T12,16 m4_wrap_lifo_m4_wrap([$1[]]) T22,34 -m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1475 +m4_location(AC_ENABLE)../../lib/autoconf/general.m4:1476 T10,103 m4_flattenm4_if(m4_index([$1], [ ]), [-1], [[$1]], @@ -8632,9 +8632,9 @@ _AC_LANG_OPENMP(Fortran 77) T31,68 AC_LANG_COMPILER(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXX])[]_m4_defun_epi([$0]) T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 T34,34 -m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:314 +m4_location(AC_CHECK_TARGET_TOOLS)../../lib/autoconf/programs.m4:332 T8,28 _AS_CASE [@%:@(] $1[)] : @@ -8675,9 +8675,9 @@ AC_ST_BLKSIZE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLKSIZ You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_BLKSIZE], [AC_STRUCT_ST_BLKSIZE($@)])[]_m4_defun_epi([$0]) T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 T29,36 -m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1665 +m4_location(AC_FUNC_STRFTIME)../../lib/autoconf/functions.m4:1671 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -8771,9 +8771,9 @@ AS_VAR_IF([ac_File], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_File])dnl []_m4_defun_epi([$0]) T37,34 -m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1812 +m4_location(AC_FC_MODULE_OUTPUT_FLAG)../../lib/autoconf/fortran.m4:1862 T24,34 -m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1481 +m4_location(AC_ARG_WITH)../../lib/autoconf/general.m4:1490 T11,322 AC_LANG_POP_m4_defun_pro([$0])m4_ifval([$1], [m4_if([$1], m4_defn([_AC_LANG]), [], @@ -8798,9 +8798,9 @@ if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then fi []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 T28,28 -m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1205 +m4_location(_AC_PROG_CC_C99)../../lib/autoconf/c.m4:1357 T20,112 _AC_MSG_LOG_CONFTESTAS_ECHO(["$as_me: failed program was:"]) >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.$ac_ext >&AS_MESSAGE_LOG_FD @@ -8839,11 +8839,11 @@ AC_CHECK_TYPE_m4_defun_pro([$0])m4_cond([$#], [3], T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 T20,294 _AC_COMPUTE_INT_BODY AS_LINENO_PUSH([$[]1]) if test "$cross_compiling" = yes; then @@ -8865,7 +8865,7 @@ AC_LANG_FORTRAN77_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_ You should run autoupdate.])dnl AC_LANG(Fortran 77)[]_m4_defun_epi([$0]) T32,34 -m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2894 +m4_location(AC_CHECK_DECLS_ONCE)../../lib/autoconf/general.m4:2895 T6,91 _AC_DO_m4_defun_pro([$0])_AC_RUN_LOG([eval "$1"], [_AC_DO_ECHO([$1])])[]_m4_defun_epi([$0]) @@ -8895,7 +8895,7 @@ fi T18,71 AC_CONFIG_COMMANDS_m4_defun_pro([$0])_AC_CONFIG_FOOS([COMMANDS], $@)[]_m4_defun_epi([$0]) T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 T15,393 AC_HAVE_LIBRARY_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HAVE_LIBRARY' is obsolete. You should run autoupdate.])dnl @@ -8910,7 +8910,7 @@ m4_popdef([AC_Lib_Name])dnl T25,98 AC_CONFIG_AUX_DIR_DEFAULT_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS("$srcdir" "$srcdir/.." "$srcdir/../..")[]_m4_defun_epi([$0]) T28,36 -m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1477 +m4_location(AC_FUNC_SETPGRP)../../lib/autoconf/functions.m4:1492 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -8930,11 +8930,11 @@ m4_set_intersectionm4_if([$1], [$2], [m4_set_listc([$1])], m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])], [m4_set_map_sep([$1], [_$0([$2],], [)])]) T27,28 -m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1362 +m4_location(AC_PROG_CC_C89)../../lib/autoconf/c.m4:1365 T27,30 -m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:719 +m4_location(AC_LANG_WERROR)../../lib/autoconf/lang.m4:721 T29,33 -m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:843 +m4_location(AC_FC_DUMMY_MAIN)../../lib/autoconf/fortran.m4:848 T19,147 AS_REQUIRE_SHELL_FNm4_provide_if([AS_SHELL_FN_$1], [], [AS_REQUIRE([AS_SHELL_FN_$1], @@ -8963,7 +8963,7 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T30,35 -m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:814 +m4_location(AC_FUNC_GETMNTENT)../../lib/autoconf/functions.m4:822 T27,155 _AC_LANG_IO_PROGRAM(Erlang)AC_LANG_PROGRAM([], [dnl ReturnValue = case file:write_file("conftest.out", "") of @@ -8992,9 +8992,9 @@ m4_ifdef([_m4_diverting([AC_PROG_LEX])], [-]), [-], [[m4_unquote(], [)]], T21,65 AC_LANG_COMPILER(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXX])[]_m4_defun_epi([$0]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 T31,154 AC_VALIDATE_CACHED_SYSTEM_TUPLE_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_VALIDATE_CACHED_SYSTEM_TUPLE' is obsolete. You should run autoupdate.])dnl @@ -9013,7 +9013,7 @@ test ac_cv_header_dirent_sys_dir_h && test ac_cv_header_dirent_ndir_h && AC_DEFINE([NDIR], 1, [Same as `HAVE_NDIR_H', don't depend on me.])[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 F8,8 __line____line__ T23,350 @@ -9033,7 +9033,7 @@ _AC_CHECK_TYPE_NEW_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T34,35 -m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:486 +m4_location(AC_FUNC_ERROR_AT_LINE)../../lib/autoconf/functions.m4:496 T13,41 _m4_set_unionm4_ifdef([_m4_set([$1],$2)], [], [,[$2]]) T15,88 @@ -9049,9 +9049,9 @@ _AC_COPYRIGHT_YEARS Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. T27,31 -m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:746 +m4_location(AC_TYPE_SIGNAL)../../lib/autoconf/types.m4:759 T28,36 -m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1589 +m4_location(AC_FUNC_STRTOLD)../../lib/autoconf/functions.m4:1614 T10,55 _m4_shift2m4_if([$#], [2], [], [, m4_shift(m4_shift($@))]) @@ -9105,7 +9105,7 @@ m4_if($#, 0, [AC_TYPE_PID_T], [AC_TYPE_PID_T($@)])[]_m4_defun_epi([$0]) T23,3 _m4_divert(VERSION_END)203 T43,27 -m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:954 +m4_location(AC_LANG_PREPROC(Objective C++))../../lib/autoconf/c.m4:955 T13,383 _AS_PATH_WALKas_save_IFS=$IFS; IFS=$PATH_SEPARATOR m4_ifvaln([$3], [as_found=false])dnl @@ -9144,11 +9144,11 @@ _AC_CHECK_DECL_BODY AS_LINENO_PUSH([$[]1]) AS_LINENO_POP T36,27 -m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:543 +m4_location(AC_PROG_GCC_TRADITIONAL)../../lib/autoconf/c.m4:562 T28,1 _m4_divert(HEADER-COPYRIGHT)3 T29,31 -m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:310 +m4_location(AC_TYPE_INTMAX_T)../../lib/autoconf/types.m4:322 T11,58 _AS_CLEANUPm4_divert_text([M4SH-SANITIZE], [_AS_DETECT_BETTER_SHELL]) T21,1512 @@ -9237,7 +9237,7 @@ m4_text_boxm4_pushdef([m4_Border], [##] $1 [##] [##] _m4_defn([m4_Border]) [##]_m4_popdef([m4_Border]) T36,36 -m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1434 +m4_location(AC_FUNC_SELECT_ARGTYPES)../../lib/autoconf/functions.m4:1472 T23,378 _AC_CHECK_HEADER_DIRENTAS_VAR_PUSHDEF([ac_Header], [ac_cv_header_dirent_$1])dnl AC_CACHE_CHECK([for $1 that defines DIR], [ac_Header], @@ -9286,9 +9286,9 @@ m4_set_containsm4_ifdef([_m4_set_cleanup($1)], F10,7 m4_esyscmdesyscmd T32,36 -m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1392 +m4_location(_AC_FUNC_REALLOC_IF)../../lib/autoconf/functions.m4:1409 T27,31 -m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:178 +m4_location(AC_CHECK_TYPES)../../lib/autoconf/types.m4:180 T31,0 m4_include(autoconf/fortran.m4) T34,23 @@ -9304,9 +9304,9 @@ m4_set_mapm4_set_map_sep([$1], [$2(], [)]) T23,36 m4_location(AC_STRCOLL)../../lib/autoconf/functions.m4:1744 T34,27 -m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:667 +m4_location(AC_LANG_COMPILER(C++))../../lib/autoconf/c.m4:668 T30,33 -m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1097 +m4_location(AC_CONFIG_SUBDIRS)../../lib/autoconf/status.m4:1106 T14,53 m4_cr_symbols1abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ T14,181 @@ -9354,7 +9354,7 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP, AC_SUBST([EGREP]) []_m4_defun_epi([$0]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 F7,4 m4_decrdecr T14,32 @@ -9399,7 +9399,7 @@ fi T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T18,316 @@ -9416,13 +9416,13 @@ $2 return 0; } T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 T28,33 m4_location(AC_TEST_PROGRAM)../../lib/autoconf/oldnames.m4:46 T27,33 m4_location(AC_SIZEOF_TYPE)../../lib/autoconf/oldnames.m4:44 T22,28 -m4_location(AC_OPENMP)../../lib/autoconf/c.m4:1986 +m4_location(AC_OPENMP)../../lib/autoconf/c.m4:2031 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -9547,20 +9547,20 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 T27,34 -m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2614 +m4_location(AC_TRY_COMPILE)../../lib/autoconf/general.m4:2615 T33,34 -m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:291 +m4_location(AC_CHECK_TARGET_TOOL)../../lib/autoconf/programs.m4:305 T26,34 -m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:100 +m4_location(AC_CHECK_PROG)../../lib/autoconf/programs.m4:103 F12,8 m4_bpatsubstpatsubst T30,36 AC_LANG_FUNC_LINK_TRY(Fortran)AC_LANG_PROGRAM([], [ call $1]) T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 T28,31 m4_location(AC_TYPE_SSIZE_T)../../lib/autoconf/types.m4:605 T7,2 @@ -9570,7 +9570,7 @@ AS_ORIGINAL_STDIN_FD7 T31,33 m4_location(AC_LONG_FILE_NAMES)../../lib/autoconf/oldnames.m4:64 T32,34 -m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1833 +m4_location(AC_CANONICAL_TARGET)../../lib/autoconf/general.m4:1854 T13,76 _AC_DO_TOKENS_m4_defun_pro([$0]){ ac_try='$1' _AC_DO([$ac_try]); }[]_m4_defun_epi([$0]) @@ -9579,7 +9579,7 @@ AC_LANG_m4_defun_pro([$0])_AC_LANG_SET(m4_ifdef([_AC_LANG], [m4_defn([_AC_LANG]) [$1])dnl m4_define([_AC_LANG], [$1])[]_m4_defun_epi([$0]) T37,36 -m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1710 +m4_location(AC_FUNC_SETVBUF_REVERSED)../../lib/autoconf/functions.m4:1714 T28,86 _AC_LANG_IO_PROGRAM(Fortran)AC_LANG_PROGRAM([], [dnl @@ -9596,13 +9596,13 @@ AC_TRY_CPP_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_TRY_CPP' is You should run autoupdate.])dnl AC_PREPROC_IFELSE([AC_LANG_SOURCE([[$1]])], [$2], [$3])[]_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 T37,33 -m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:193 +m4_location(_AC_CHECK_HEADER_PREPROC)../../lib/autoconf/headers.m4:203 T24,33 -m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:868 +m4_location(AC_MEMORY_H)../../lib/autoconf/headers.m4:875 T30,35 -m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:625 +m4_location(AC_FUNC_GETGROUPS)../../lib/autoconf/functions.m4:656 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) F7,7 @@ -9647,9 +9647,9 @@ _AC_FC_WRAPPERS AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T27,27 -m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:436 +m4_location(ac_cv_prog_gcc)../../lib/autoconf/c.m4:437 T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -9678,7 +9678,7 @@ AC_SUBST([ERLANG_ERTS_VER], [$ac_cv_erlang_erts_ver]) T29,31 m4_location(AC_TYPE_UINT32_T)../../lib/autoconf/types.m4:630 T40,34 -m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:232 +m4_location(AC_SYS_RESTARTABLE_SYSCALLS)../../lib/autoconf/specific.m4:287 T16,63 AC_CONFIG_HEADER_m4_defun_pro([$0])AC_CONFIG_HEADERS([$1])[]_m4_defun_epi([$0]) T26,34 @@ -9694,8 +9694,8 @@ You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_UTIME_NULL], [AC_FUNC_UTIME_NULL($@)])[]_m4_defun_epi([$0]) T11,55 AC_TRY_EVAL_m4_defun_pro([$0])_AC_EVAL([$$1])[]_m4_defun_epi([$0]) -T32,31 -m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:999 +T32,32 +m4_location(AC_STRUCT_ST_BLOCKS)../../lib/autoconf/types.m4:1006 T30,33 m4_location(AC_PROGRAMS_CHECK)../../lib/autoconf/oldnames.m4:39 T14,157 @@ -9723,7 +9723,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T28,33 -m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:465 +m4_location(AC_PROG_F77_C_O)../../lib/autoconf/fortran.m4:470 T15,865 _AC_PROG_OBJC_Gac_test_OBJCFLAGS=${OBJCFLAGS+set} ac_save_OBJCFLAGS=$OBJCFLAGS @@ -9813,7 +9813,7 @@ T13,41 m4_provide_ifm4_ifdef([m4_provide($1)], [$2], [$3]) T33,34 -m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1015 +m4_location(_AC_FC_NAME_MANGLING)../../lib/autoconf/fortran.m4:1021 T16,838 _AS_LN_S_PREPARE_m4_defun_pro([$0])rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -9891,11 +9891,11 @@ _ASUNAME _AS_PATH_WALK([$PATH], [AS_ECHO(["PATH: $as_dir"])]) } T46,33 -m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:297 +m4_location(_AC_INCLUDES_DEFAULT_REQUIREMENTS)../../lib/autoconf/headers.m4:341 T30,27 -m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:961 +m4_location(AC_PROG_OBJCXXCPP)../../lib/autoconf/c.m4:986 T24,34 -m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:474 +m4_location(AC_IRIX_SUN)../../lib/autoconf/specific.m4:476 T29,33 m4_location(AC_CHAR_UNSIGNED)../../lib/autoconf/oldnames.m4:54 T7,16 @@ -9917,15 +9917,15 @@ m4_location(AC_SIZE_T)../../lib/autoconf/oldnames.m4:73 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 T21,33 m4_location(AC_OFF_T)../../lib/autoconf/oldnames.m4:68 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 T26,0 m4_include(autoconf/go.m4) F12,8 @@ -9976,7 +9976,7 @@ T10,86 m4_toupperm4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ]) T25,30 -m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:272 +m4_location(AC_LANG_CALL)../../lib/autoconf/lang.m4:274 T8,19 m4_curry$1(m4_shift($@,)_$0 F4,4 @@ -9990,7 +9990,7 @@ AC_HELP_STRING_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_HELP_STR You should run autoupdate.])dnl m4_if($#, 0, [AS_HELP_STRING], [AS_HELP_STRING($@)])[]_m4_defun_epi([$0]) T33,31 -m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:973 +m4_location(AC_STRUCT_ST_BLKSIZE)../../lib/autoconf/types.m4:981 T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T23,83 @@ -10052,9 +10052,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1788 +m4_location(AC_CANONICAL_BUILD)../../lib/autoconf/general.m4:1810 T30,31 -m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:939 +m4_location(_AC_STRUCT_DIRENT)../../lib/autoconf/types.m4:960 T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) T11,3 @@ -10064,8 +10064,8 @@ AC_TYPE_SSIZE_T_m4_defun_pro([$0])AC_CHECK_TYPE(ssize_t, int)[]_m4_defun_epi([$0 T14,113 AC_CHECK_TYPES_m4_defun_pro([$0])m4_map_args_sep([_AC_CHECK_TYPE_NEW(_$0(], [)[ $2], [$3], [$4])], [], $1)[]_m4_defun_epi([$0]) -T28,29 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 +T28,30 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -10138,9 +10138,9 @@ T12,48 m4_re_escapem4_bpatsubst([$1], [[][*+.?\^$]], [\\\&]) T31,27 -m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:336 +m4_location(AC_LANG_PREPROC(C))../../lib/autoconf/c.m4:337 T25,36 -m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1786 +m4_location(AC_FUNC_FORK)../../lib/autoconf/functions.m4:1824 T12,26 m4_normalizem4_strip(m4_flatten([$1])) T6,132 @@ -10154,11 +10154,11 @@ _ACEOF T16,89 AC_CONFIG_SRCDIR_m4_defun_pro([$0])m4_divert_text([DEFAULTS], [ac_unique_file="$1"])[]_m4_defun_epi([$0]) T23,34 -m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2468 +m4_location(AC_RUN_LOG)../../lib/autoconf/general.m4:2470 F3,3 dnldnl T27,34 -m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2880 +m4_location(AC_CHECK_DECLS)../../lib/autoconf/general.m4:2881 T16,807 _AC_INIT_PACKAGE_AC_INIT_LITERAL([$1]) _AC_INIT_LITERAL([$2]) @@ -10185,7 +10185,7 @@ m4_ifndef([AC_PACKAGE_URL], [[$5]]))]) T31,33 -m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:734 +m4_location(AC_HEADER_SYS_WAIT)../../lib/autoconf/headers.m4:756 T25,3 _m4_divert(VERSION_BEGIN)200 T27,2052 @@ -10261,7 +10261,7 @@ if test $ac_cv_lib_error_at_line = no; then fi []_m4_defun_epi([$0]) T31,33 -m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:59 +m4_location(AC_SYS_INTERPRETER)../../lib/autoconf/specific.m4:73 T22,33 m4_location(AC_MODE_T)../../lib/autoconf/oldnames.m4:67 T14,116 @@ -10275,7 +10275,7 @@ T18,95 AC_PROG_CPP_WERROR_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CPP])dnl ac_c_preproc_warn_flag=yes[]_m4_defun_epi([$0]) T29,30 -m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:193 +m4_location(AC_LANG_CONFTEST)../../lib/autoconf/lang.m4:197 T10,79 _m4_shiftnm4_if([$1], 1, [m4_shift(], [$0(m4_decr([$1])]), m4_shift(m4_shift($@))) @@ -10433,7 +10433,7 @@ m4_if([$0], [m4_require], [[m4_defun]], [[AC_DEFUN]])['d macro])])m4_provide_if( [_m4_require_check([$1], _m4_defn([m4_provide($1)]), [$0])], [m4_ignore])], [_m4_require_call])([$1], [$2], _m4_divert_dump) T28,36 -m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1677 +m4_location(AC_FUNC_STRNLEN)../../lib/autoconf/functions.m4:1705 T7,119 m4_casem4_if([$#], 0, [], [$#], 1, [], @@ -10476,11 +10476,11 @@ T11,55 m4_sincludem4_include_unique([$1])dnl m4_builtin([sinclude], [$1]) T32,34 -m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:271 +m4_location(AC_PATH_TARGET_TOOL)../../lib/autoconf/programs.m4:285 T41,33 -m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:254 +m4_location(AC_LANG_COMPILER(Fortran 77))../../lib/autoconf/fortran.m4:255 T23,33 -m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:901 +m4_location(AC_FC_MAIN)../../lib/autoconf/fortran.m4:906 F6,6 definedefine T25,2 @@ -10518,7 +10518,7 @@ extern "C" #endif char $2 ();])], [return $2 ();]) T27,34 -m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:245 +m4_location(AC_CHECK_TOOLS)../../lib/autoconf/programs.m4:265 T12,197 AC_ST_BLOCKS_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_BLOCKS' is obsolete. You should run autoupdate.])dnl @@ -10551,13 +10551,13 @@ else fi []_m4_defun_epi([$0]) T31,27 -m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:422 +m4_location(AC_PROG_CPP_WERROR)../../lib/autoconf/c.m4:424 T19,62 m4_version_unletterm4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [3]) T23,34 -m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:349 +m4_location(AC_MINGW32)../../lib/autoconf/specific.m4:356 T26,31 -m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:232 +m4_location(AC_CHECK_TYPE)../../lib/autoconf/types.m4:242 T26,23 _AC_LANG_NULL_PROGRAM(C++)AC_LANG_PROGRAM([], []) T15,318 @@ -10578,7 +10578,7 @@ AC_DIVERT_POPm4_if([$1], [], [], ]m4_divert_stack)])_m4_popdef([_m4_divert_stack], [_m4_divert_diversion])m4_ifdef([_m4_divert_diversion], [], [m4_fatal([too many m4_divert_pop])])_m4_divert_raw(_m4_divert(_m4_defn([_m4_divert_diversion]), [-])) T24,33 -m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:358 +m4_location(AC_PROG_F77)../../lib/autoconf/fortran.m4:371 T17,32 m4_define_defaultm4_ifndef([$1], [m4_define($@)]) T21,696 @@ -10624,9 +10624,9 @@ m4_PACKAGE_NAMEGNU Autoconf T36,31 m4_location(AC_STRUCT_DIRENT_D_TYPE)../../lib/autoconf/types.m4:968 T27,34 -m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2678 +m4_location(AC_LINK_IFELSE)../../lib/autoconf/general.m4:2680 T29,33 -m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:481 +m4_location(AC_CONFIG_SRCDIR)../../lib/autoconf/general.m4:482 F10,7 m4_builtinbuiltin T19,2 @@ -10644,23 +10644,23 @@ _AC_CHECK_HEADER_MONGREL_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ AS_VAR_IF([ac_Header], [yes], [$2], [$3]) AS_VAR_POPDEF([ac_Header])[]_m4_defun_epi([$0]) T26,34 -m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:370 +m4_location(AC_PROG_FGREP)../../lib/autoconf/programs.m4:380 T41,27 -m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:815 +m4_location(AC_LANG_PREPROC(Objective C))../../lib/autoconf/c.m4:816 T34,0 m4_include(autoconf/autoupdate.m4) T31,33 m4_location(AC_MINUS_C_MINUS_O)../../lib/autoconf/oldnames.m4:66 T26,35 -m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:424 +m4_location(AC_FUNC_CHOWN)../../lib/autoconf/functions.m4:453 T35,33 -m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:727 +m4_location(AC_F77_LIBRARY_LDFLAGS)../../lib/autoconf/fortran.m4:732 T10,266 AS_REQUIRE_m4_defun_pro([$0])m4_define([_m4_divert_desired], [m4_default_quoted([$3], [M4SH-INIT])])m4_if(m4_eval(_m4_divert_dump - 0 <= _m4_divert(_m4_divert_desired, [-])), 1, [m4_require(], [m4_divert_require(_m4_divert_desired,]) [$1], [$2])[]_m4_defun_epi([$0]) T34,34 -m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1004 +m4_location(_AC_F77_NAME_MANGLING)../../lib/autoconf/fortran.m4:1010 T14,44 m4_divert_oncem4_expand_once([m4_divert_text([$1], [$2])]) T11,146 @@ -10698,11 +10698,11 @@ _AC_PROG_OBJC_G AC_LANG_POP(Objective C)dnl []_m4_defun_epi([$0]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 T27,33 -m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:40 +m4_location(_AC_CHECK_PROG)../../lib/autoconf/programs.m4:93 T27,29 -m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:47 +m4_location(AC_SEARCH_LIBS)../../lib/autoconf/libs.m4:71 T20,374 AC_CONFIG_LIBOBJ_DIR_m4_defun_once([AC_CONFIG_LIBOBJ_DIR], [m4_divert_text([DEFAULTS], [ac_config_libobj_dir=$1])], m4_if(_m4_divert_dump, [], [[_m4_defun_pro([AC_CONFIG_LIBOBJ_DIR])m4_unquote(], [)_m4_defun_epi([AC_CONFIG_LIBOBJ_DIR])]], @@ -10715,7 +10715,7 @@ AC_CHECK_FUNCS_m4_defun_pro([$0])m4_map_args_w([$1], [_AH_CHECK_FUNC(], [)])AS_F [$3])dnl]) []_m4_defun_epi([$0]) T19,33 -m4_location(_AC_FC)../../lib/autoconf/fortran.m4:167 +m4_location(_AC_FC)../../lib/autoconf/fortran.m4:170 T11,183 AC_IRIX_SUN_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_IRIX_SUN' is obsolete. You should run autoupdate.])dnl @@ -10760,7 +10760,7 @@ m4_include(autoconf/oldnames.m4) F6,6 regexpregexp T27,28 -m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1370 +m4_location(AC_PROG_CC_C99)../../lib/autoconf/c.m4:1373 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -10854,7 +10854,7 @@ m4_sysvalsysval T28,33 m4_location(AC_MAJOR_HEADER)../../lib/autoconf/oldnames.m4:65 T23,34 -m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1511 +m4_location(AC_ARG_VAR)../../lib/autoconf/general.m4:1522 T13,91 AS_SET_STATUS_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_set_status $1[]_m4_defun_epi([$0]) T14,127 @@ -10868,11 +10868,11 @@ ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ ac_compiler_gnu=$ac_cv_objc_compiler_gnu T25,31 -m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:671 +m4_location(_AC_TYPE_INT)../../lib/autoconf/types.m4:685 T30,31 -m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:366 +m4_location(AC_TYPE_UINTPTR_T)../../lib/autoconf/types.m4:384 T31,34 -m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1688 +m4_location(AC_CONFIG_AUX_DIRS)../../lib/autoconf/general.m4:1718 T22,527 _AS_VAR_APPEND_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_append], [VAR VALUE], [Append the text in VALUE to the end of the definition contained in @@ -10900,7 +10900,7 @@ AC_FUNC_VFORK_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_FUNC_VFOR You should run autoupdate.])dnl m4_if($#, 0, [AC_FUNC_FORK], [AC_FUNC_FORK($@)])[]_m4_defun_epi([$0]) T26,34 -m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:188 +m4_location(_AC_TOOL_WARN)../../lib/autoconf/programs.m4:193 T18,371 AC_SYS_INTERPRETER_m4_defun_pro([$0])AC_CACHE_CHECK(whether @%:@! works in shell scripts, ac_cv_sys_interpreter, [echo '#! /bin/cat @@ -10921,7 +10921,7 @@ AC_LANG_CALL(Go)AC_LANG_PROGRAM([$1 m4_if([$2], [main], , [func $2()])],[$2()]) T35,34 -m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2273 +m4_location(AC_MSG_RESULT_UNQUOTED)../../lib/autoconf/general.m4:2276 T15,77 _AC_LANG_ABBREV_m4_defun_pro([$0])_AC_LANG_DISPATCH([$0], _AC_LANG, $@)[]_m4_defun_epi([$0]) T15,550 @@ -10940,9 +10940,9 @@ if test $ac_cv_func_strcoll_works = yes; then fi []_m4_defun_epi([$0]) T33,34 -m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1638 +m4_location(_AC_FC_IMPLICIT_NONE)../../lib/autoconf/fortran.m4:1670 T24,28 -m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1621 +m4_location(AC_C_INLINE)../../lib/autoconf/c.m4:1656 T29,1130 _AC_PROG_PREPROC_WORKS_IFELSE_m4_defun_pro([$0])ac_preproc_ok=false for ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag in '' yes @@ -11098,13 +11098,13 @@ AC_DIAGNOSEm4_warn($@) T17,0 m4_pattern_forbid T24,34 -m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2298 +m4_location(_AC_RUN_LOG)../../lib/autoconf/general.m4:2303 T30,33 -m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:491 +m4_location(_AC_INIT_DIRCHECK)../../lib/autoconf/general.m4:502 T33,34 -m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:292 +m4_location(AC_SYS_POSIX_TERMIOS)../../lib/autoconf/specific.m4:302 T27,34 -m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:109 +m4_location(AC_CHECK_PROGS)../../lib/autoconf/programs.m4:115 T9,69 m4_assertm4_if(m4_eval([$1]), 0, [m4_fatal([assert failed: $1], [$2])]) @@ -11150,7 +11150,7 @@ m4_pushdefpushdef T27,32 m4_location(AC_LANG_ERLANG)../../lib/autoconf/erlang.m4:112 T22,34 -m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:335 +m4_location(AC_EMXOS2)../../lib/autoconf/specific.m4:342 T21,140 AC_FC_LIBRARY_LDFLAGS_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_FC])dnl AC_LANG_PUSH(Fortran)dnl @@ -11184,9 +11184,9 @@ _AC_CANONICAL_SPLIT(build) m4_ifdef([_m4_diverting([AC_CANONICAL_BUILD])], [-]), [-], [[m4_unquote(], [)]], [[_m4_require_call([AC_CANONICAL_BUILD],], [, _m4_divert_dump)]])) T39,31 -m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:474 +m4_location(_AC_TYPE_LONG_LONG_SNIPPET)../../lib/autoconf/types.m4:498 T28,33 -m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:509 +m4_location(AC_HEADER_MAJOR)../../lib/autoconf/headers.m4:531 T17,395 _AC_STRUCT_DIRENT_m4_defun_pro([$0]) AC_REQUIRE([AC_HEADER_DIRENT]) @@ -11217,7 +11217,7 @@ _AS_ECHO([$as_me: $1], [$2]);}], T13,127 AC_MSG_NOTICE_m4_defun_pro([$0])AS_REQUIRE([_AS_ME_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:155 +m4_location(AC_PATH_PROG)../../lib/autoconf/programs.m4:158 T20,53 m4_divert_stack_pushm4_pushdef([_m4_divert_stack], m4_location[: $1: $2]) T17,105 @@ -11234,12 +11234,12 @@ T9,75 AC_BEFOREm4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) T37,34 -m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:368 +m4_location(AC_USE_SYSTEM_EXTENSIONS)../../lib/autoconf/specific.m4:422 T15,67 AC_LANG_PREPROCAC_LANG_COMPILER_REQUIRE()dnl _AC_LANG_DISPATCH([$0], _AC_LANG, $@) T28,36 -m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1725 +m4_location(AC_FUNC_STRCOLL)../../lib/autoconf/functions.m4:1739 T23,39 m4_expansion_stack_pushm4_pushdef([_m4_expansion_stack], [$1]) T22,3 @@ -11274,7 +11274,7 @@ AC_LANG_OBJC_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_LANG_OBJC' You should run autoupdate.])dnl AC_LANG(Objective C)[]_m4_defun_epi([$0]) T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 T11,30 AC_MSG_WARNAS_MESSAGE([WARNING: $1], [2]) T13,26 @@ -11302,7 +11302,7 @@ AS_LITERAL_WORD_IF([$2], T20,36 m4_location(AC_MMAP)../../lib/autoconf/functions.m4:1354 T26,34 -m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:59 +m4_location(AC_CHECK_FUNC)../../lib/autoconf/functions.m4:68 T30,71 AC_LANG_PREPROC(Objective C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_OBJCXXCPP])[]_m4_defun_epi([$0]) T24,34 @@ -11328,7 +11328,7 @@ m4_map_argsm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [2], [$1([$2])[]], [_m4_foreach([$1(], [)], $@)]) T26,28 -m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1167 +m4_location(_AC_C_STD_TRY)../../lib/autoconf/c.m4:1192 T19,288 _m4_set_contents_1cm4_ifdef([_m4_set([$1])], [m4_set_contains([$1], _m4_defn([_m4_set([$1])]), @@ -11350,13 +11350,13 @@ AC_TYPE_INT64_T_m4_defun_pro([$0])_AC_TYPE_INT(64)[]_m4_defun_epi([$0]) F8,5 m4_shiftshift T28,33 -m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:438 +m4_location(_AC_PROG_FC_C_O)../../lib/autoconf/fortran.m4:460 T37,33 -m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:129 +m4_location(_AC_CHECK_HEADER_MONGREL)../../lib/autoconf/headers.m4:141 T27,28 -m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1010 +m4_location(AC_PROG_OBJCXX)../../lib/autoconf/c.m4:1039 T38,33 -m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:261 +m4_location(AC_LANG_COMPILER(Fortran))../../lib/autoconf/fortran.m4:262 T16,452 _m4_require_callm4_pushdef([_m4_divert_grow], m4_decr(_m4_divert_grow))m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_divert_push(_m4_divert_grow, [-])m4_if([$2], [], [$1], [$2]) m4_provide_if([$1], [m4_set_remove([_m4_provide], [$1])], @@ -11480,7 +11480,7 @@ fi T9,23 AC_DEFINE_AC_DEFINE_Q([_$0], $@) T24,33 -m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:859 +m4_location(_AC_FC_MAIN)../../lib/autoconf/fortran.m4:886 T23,27 m4_location(AC_LANG_GO)../../lib/autoconf/go.m4:44 T13,160 @@ -11516,7 +11516,7 @@ m4_location(AC_INLINE)../../lib/autoconf/oldnames.m4:61 T7,65 _m4_maxm4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2])) T28,34 -m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1071 +m4_location(AC_F77_WRAPPERS)../../lib/autoconf/fortran.m4:1076 F8,8 __file____file__ T18,2 @@ -11534,9 +11534,9 @@ m4_bregexpregexp F7,7 pushdefpushdef T32,35 -m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:582 +m4_location(AC_FUNC_FNMATCH_GNU)../../lib/autoconf/functions.m4:587 T36,32 -m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:241 +m4_location(AC_ERLANG_SUBST_LIB_DIR)../../lib/autoconf/erlang.m4:260 T15,345 _AC_COMPUTE_INT_m4_defun_pro([$0])AC_COMPUTE_INT([$2], [$1], [$3], [$4]) AC_DIAGNOSE([obsolete], @@ -11658,7 +11658,7 @@ AC_SUBST([ERLANG_LIB_VER_$1], [$ac_cv_erlang_lib_ver_$1]) AS_IF([test "$ac_cv_erlang_lib_dir_$1" = "not found"], [$3], [$2]) []_m4_defun_epi([$0]) T32,33 -m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:39 +m4_location(AC_DECL_SYS_SIGLIST)../../lib/autoconf/specific.m4:47 T14,103 _AS_TR_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])AS_REQUIRE([_AS_TR_CPP_PREPARE])[]_m4_defun_epi([$0]) T14,81 @@ -11693,7 +11693,7 @@ extern char *tzname[]; fi []_m4_defun_epi([$0]) T31,28 -m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1425 +m4_location(AC_C_CHAR_UNSIGNED)../../lib/autoconf/c.m4:1438 T24,3 _m4_divert(HELP_VAR_END)105 T10,24 @@ -11701,7 +11701,7 @@ AN_LIBRARYAN_OUTPUT([library], $@) T11,25 AN_FUNCTIONAN_OUTPUT([function], $@) T39,34 -m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1497 +m4_location(AC_DISABLE_OPTION_CHECKING)../../lib/autoconf/general.m4:1499 T12,47 AS_VAR_ARITHas_fn_arith $2 && AS_VAR_SET([$1], [$as_val])[] T12,197 @@ -11758,7 +11758,7 @@ else fi T24,27 -m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:694 +m4_location(AC_PROG_CXX)../../lib/autoconf/c.m4:730 T10,520 _AC_PATH_X_m4_defun_pro([$0])AC_CACHE_VAL(ac_cv_have_x, [# One or both of the vars are not set, and there is no cached value. @@ -11824,13 +11824,13 @@ fi AC_LANG_POP(Fortran)dnl []_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 T25,34 -m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2412 +m4_location(_AC_DO_LIMIT)../../lib/autoconf/general.m4:2414 T27,33 m4_location(AC_LONG_DOUBLE)../../lib/autoconf/oldnames.m4:63 T39,28 -m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1846 +m4_location(AC_C_FLEXIBLE_ARRAY_MEMBER)../../lib/autoconf/c.m4:1876 T23,106 _AH_CHECK_HEADER_DIRENTAH_TEMPLATE(AS_TR_CPP([HAVE_$1]), [Define to 1 if you have the <$1> header file, and it defines `DIR'.]) @@ -11845,11 +11845,11 @@ if test "$ERLC" = "not found"; then fi []_m4_defun_epi([$0]) T33,28 -m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:143 +m4_location(AC_LANG_COMPILER(Go))../../lib/autoconf/go.m4:144 T20,3 _AC_LANG_ABBREV(C++)cxx T26,34 -m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1462 +m4_location(AC_ARG_ENABLE)../../lib/autoconf/general.m4:1472 T34,122 _AC_LANG_IO_PROGRAM(Objective C++)AC_LANG_PROGRAM([@%:@include ], [FILE *f = fopen ("conftest.out", "w"); @@ -11878,10 +11878,10 @@ fi []_m4_defun_epi([$0]) T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) -T25,29 -m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:99 +T25,30 +m4_location(AC_CHECK_LIB)../../lib/autoconf/libs.m4:117 T21,34 -m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2422 +m4_location(_AC_EVAL)../../lib/autoconf/general.m4:2424 F11,11 changequotechangequote T16,118 @@ -11893,7 +11893,7 @@ AC_ST_RDEV_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_ST_RDEV' is You should run autoupdate.])dnl m4_if($#, 0, [AC_STRUCT_ST_RDEV], [AC_STRUCT_ST_RDEV($@)])[]_m4_defun_epi([$0]) T25,34 -m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:799 +m4_location(AC_PROG_LN_S)../../lib/autoconf/programs.m4:807 T9,26 m4_ifndefm4_ifdef([$1], [$3], [$2]) T18,144 @@ -11920,7 +11920,7 @@ _AC_LANG_IO_PROGRAM(Objective C)AC_LANG_PROGRAM([@%:@include ], T27,36 m4_location(AM_FUNC_STRTOD)../../lib/autoconf/functions.m4:1619 T27,35 -m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:601 +m4_location(AC_FUNC_FSEEKO)../../lib/autoconf/functions.m4:617 T24,495 _AC_CHECK_HEADER_PREPROC_m4_defun_pro([$0])AC_REQUIRE_SHELL_FN([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], [AS_FUNCTION_DESCRIBE([ac_fn_]_AC_LANG_ABBREV[_check_header_preproc], @@ -11937,7 +11937,7 @@ AC_FATALm4_fatal($@) T22,33 m4_location(AC_FIND_X)../../lib/autoconf/oldnames.m4:57 T22,34 -m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:321 +m4_location(AC_CYGWIN)../../lib/autoconf/specific.m4:328 T7,108 m4_joinm4_if([$#], [1], [], [$#], [2], [[$2]], @@ -12321,7 +12321,7 @@ DUALCASE=1; export DUALCASE # for MKS sh _$0 T30,31 -m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:327 +m4_location(AC_TYPE_UINTMAX_T)../../lib/autoconf/types.m4:339 T16,2 _m4_divert(KILL)-1 T18,211 @@ -12333,11 +12333,11 @@ m4_foreachm4_if([$2], [], [], [m4_pushdef([$1])_$0([m4_define([$1],], [)$3], [], $2)m4_popdef([$1])]) T20,34 -m4_location(AC_WITH)../../lib/autoconf/general.m4:1492 +m4_location(AC_WITH)../../lib/autoconf/general.m4:1493 T20,33 m4_location(AC_WARN)../../lib/autoconf/oldnames.m4:33 T28,34 -m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1302 +m4_location(AC_FC_PP_DEFINE)../../lib/autoconf/fortran.m4:1337 T9,265 _AS_QUOTEm4_cond([m4_index([$1], [\])], [-1], [_AS_QUOTE_MODERN], [m4_eval(m4_index(m4_translit([[$1]], [$], [\]), [\\]) >= 0)], @@ -12450,11 +12450,11 @@ m4_include(m4sugar/version.m4) T28,31 m4_location(AC_TYPE_INT32_T)../../lib/autoconf/types.m4:626 T30,32 -m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1011 +m4_location(AC_STRUCT_ST_RDEV)../../lib/autoconf/types.m4:1019 T37,32 -m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:167 +m4_location(AC_LANG_COMPILER(Erlang))../../lib/autoconf/erlang.m4:168 T32,27 -m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:429 +m4_location(AC_LANG_COMPILER(C))../../lib/autoconf/c.m4:430 T11,43 AC_OBSOLETEAC_DIAGNOSE([obsolete], [$1 is obsolete$2]) T14,181 @@ -12471,19 +12471,19 @@ if test $ac_cv_type_uid_t = no; then fi []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:497 +m4_location(_AC_PROG_FC_V_OUTPUT)../../lib/autoconf/fortran.m4:571 T23,33 -m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:378 +m4_location(AC_PROG_FC)../../lib/autoconf/fortran.m4:391 T33,27 -m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:627 +m4_location(AC_LANG_PREPROC(C++))../../lib/autoconf/c.m4:628 T44,27 -m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:992 +m4_location(AC_LANG_COMPILER(Objective C++))../../lib/autoconf/c.m4:993 T28,34 -m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2432 +m4_location(_AC_EVAL_STDERR)../../lib/autoconf/general.m4:2434 T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 T26,32 -m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:938 +m4_location(AC_LINK_FILES)../../lib/autoconf/status.m4:954 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -12499,7 +12499,7 @@ AC_CONFIG_AUX_DIR_m4_defun_pro([$0])AC_CONFIG_AUX_DIRS($1 "$srcdir"/$1)[]_m4_def F10,7 m4_traceontraceon T27,27 -m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:674 +m4_location(ac_cv_prog_gxx)../../lib/autoconf/c.m4:675 T11,1061 _AC_SRCDIRSac_builddir=. @@ -12536,7 +12536,7 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix T26,34 -m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:220 +m4_location(AC_CHECK_TOOL)../../lib/autoconf/programs.m4:236 T13,52 m4_cr_LettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ T18,457 @@ -12562,7 +12562,7 @@ _AC_FC_DUMMY_MAIN($@) AC_LANG_POP(Fortran 77)dnl []_m4_defun_epi([$0]) T28,31 -m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:888 +m4_location(AC_CHECK_MEMBER)../../lib/autoconf/types.m4:904 T24,117 _AC_LANG_OPENMP(Fortran) program main @@ -12573,7 +12573,7 @@ _AC_LANG_OPENMP(Fortran) end T32,30 -m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:265 +m4_location(_AC_LANG_IO_PROGRAM)../../lib/autoconf/lang.m4:266 T9,75 m4_beforem4_provide_if([$2], [m4_warn([syntax], [$2 was called before $1])]) @@ -12834,16 +12834,16 @@ AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS"])])dnl []_m4_defun_epi([$0]) T31,34 -m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2590 +m4_location(_AC_COMPILE_IFELSE)../../lib/autoconf/general.m4:2598 T43,31 -m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:547 +m4_location(AC_TYPE_UNSIGNED_LONG_LONG_INT)../../lib/autoconf/types.m4:562 T28,35 -m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:828 +m4_location(AC_FUNC_GETPGRP)../../lib/autoconf/functions.m4:840 T7,93 _AS_BOXm4_if(m4_index(m4_translit([[$1]], [`\"], [$$$]), [$]), [-1], [$0_LITERAL], [$0_INDIR])($@) T35,33 -m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1053 +m4_location(AC_CONFIG_COMMANDS_PRE)../../lib/autoconf/status.m4:1055 T8,189 _m4_wrapm4_ifdef([$0_text], [m4_define([$0_text], [$1]_m4_defn([$0_text])[$2])], @@ -12924,7 +12924,7 @@ AC_TYPE_MBSTATE_T_m4_defun_pro([$0])AC_CACHE_CHECK([for mbstate_t], ac_cv_type_m [Define to a type if does not define.]) fi[]_m4_defun_epi([$0]) T28,30 -m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:149 +m4_location(_AC_LANG_PREFIX)../../lib/autoconf/lang.m4:150 T28,4 _AC_LANG_ABBREV(Objective C)objc T14,87 @@ -12932,7 +12932,7 @@ AC_PROG_CC_C89_m4_defun_pro([$0]) AC_REQUIRE([AC_PROG_CC])dnl _AC_PROG_CC_C89 []_m4_defun_epi([$0]) T22,33 -m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1239 +m4_location(AC_OUTPUT)../../lib/autoconf/status.m4:1244 T14,1273 _AC_CACHE_DUMP# The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. @@ -13024,13 +13024,13 @@ _ACEOF esac []_m4_defun_epi([$0]) T33,33 -m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:215 +m4_location(_AC_CHECK_HEADER_OLD)../../lib/autoconf/headers.m4:218 T23,33 -m4_location(AC_FOREACH)../../lib/autoconf/general.m4:194 +m4_location(AC_FOREACH)../../lib/autoconf/general.m4:196 T38,31 -m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:414 +m4_location(AC_TYPE_LONG_DOUBLE_WIDER)../../lib/autoconf/types.m4:447 T50,35 -m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:849 +m4_location(AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK)../../lib/autoconf/functions.m4:881 F9,6 m4_definedefine T24,1910 @@ -13724,7 +13724,7 @@ $2]) F7,7 traceontraceon T32,31 -m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:49 +m4_location(AC_ERLANG_PATH_ERLC)../../lib/autoconf/erlang.m4:58 T22,496 AC_PRESERVE_HELP_ORDER_m4_defun_pro([$0])m4_divert_once([HELP_ENABLE], [[ Optional Features and Packages: @@ -13830,7 +13830,7 @@ _AC_FC_IMPLICIT_NONE($@) AC_LANG_POP([Fortran 77])dnl []_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -13854,9 +13854,9 @@ T10,72 m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], [$0(m4_shift($@)), [$1]]) T29,34 -m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:818 +m4_location(AC_PROG_MAKE_SET)../../lib/autoconf/programs.m4:844 T29,31 -m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:921 +m4_location(AC_CHECK_MEMBERS)../../lib/autoconf/types.m4:923 T31,53 _AC_FILE_DEPENDENCY_TRACE_COLONAC_FILE_DEPENDENCY_TRACE(m4_translit([$1], [:], [,])) T13,1 @@ -14067,9 +14067,9 @@ AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) T20,68 AC_LANG_PREPROC(C++)_m4_defun_pro([$0])AC_REQUIRE([AC_PROG_CXXCPP])[]_m4_defun_epi([$0]) T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 T27,34 -m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2052 +m4_location(AC_CACHE_CHECK)../../lib/autoconf/general.m4:2059 T19,34 AC_LANG_PROGRAM(Go)package main $1 @@ -14146,11 +14146,11 @@ dnl SVR4 -Xc -D__EXTENSIONS__ T11,54 AS_VAR_COPYAS_LITERAL_WORD_IF([$1[]$2], [$1=$$2], [eval $1=\$$2]) T29,31 -m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:452 +m4_location(AC_C_LONG_DOUBLE)../../lib/autoconf/types.m4:464 F3,3 lenlen T29,33 -m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:543 +m4_location(AC_HEADER_RESOLV)../../lib/autoconf/headers.m4:558 T17,229 m4_cr_not_letters  !"#*%&'()$+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- @@ -14200,7 +14200,7 @@ AC_DYNIX_SEQ_m4_defun_pro([$0])AC_DIAGNOSE([obsolete], [The macro `AC_DYNIX_SEQ' You should run autoupdate.])dnl AC_FUNC_GETMNTENT[]_m4_defun_epi([$0]) T28,34 -m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1240 +m4_location(AC_FC_PP_SRCEXT)../../lib/autoconf/fortran.m4:1287 T6,158 popdefm4_if([$#], [0], [[$0]], [$#], [1], [m4_ifdef([$1], [_m4_popdef([$1])], @@ -14211,7 +14211,7 @@ m4_location(AC_ALLOCA)../../lib/autoconf/functions.m4:417 T19,34 m4_location(AC_AIX)../../lib/autoconf/specific.m4:436 T42,27 -m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:853 +m4_location(AC_LANG_COMPILER(Objective C))../../lib/autoconf/c.m4:854 T17,117 m4_include_uniquem4_ifdef([m4_include($1)], [m4_warn([syntax], [file `$1' included several times])])dnl @@ -14308,9 +14308,9 @@ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5, ($[3]), rm -f conftest* []_m4_defun_epi([$0]) T25,32 -m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1026 +m4_location(AC_STRUCT_TM)../../lib/autoconf/types.m4:1041 T29,35 -m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:132 +m4_location(AC_REPLACE_FUNCS)../../lib/autoconf/functions.m4:133 T18,188 AC_ERLANG_NEED_ERL_m4_defun_pro([$0])AC_ERLANG_PATH_ERL([not found], [$1]) if test "$ERL" = "not found"; then diff --git a/externals/autotools/share/autoconf/autom4te.cfg b/externals/autotools/share/autoconf/autom4te.cfg index 36776e11f51..3b7ade5fa0e 100644 --- a/externals/autotools/share/autoconf/autom4te.cfg +++ b/externals/autotools/share/autoconf/autom4te.cfg @@ -106,7 +106,7 @@ end-language: "Autoreconf-preselections" # This intermediate language is used by aclocal to build aclocal.m4. begin-language: "Autoconf-without-aclocal-m4" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: --cache=autom4te.cache args: autoconf/autoconf.m4f args: acsite.m4? @@ -133,7 +133,7 @@ end-language: "Autoconf" ## -------- ## begin-language: "Autotest" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: autotest/autotest.m4f args: package.m4? args: local.at? @@ -147,7 +147,7 @@ end-language: "Autotest" ## ---- ## begin-language: "M4sh" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sh.m4f args: --mode 777 args: --language M4sugar @@ -159,7 +159,7 @@ end-language: "M4sh" ## ------- ## begin-language: "M4sugar" -args: --prepend-include '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/autoconf' +args: --prepend-include '/Users/economon/SU2/externals/autotools/share/autoconf' args: m4sugar/m4sugar.m4f args: --warnings syntax end-language: "M4sugar" diff --git a/externals/autotools/share/autoconf/autotest/autotest.m4f b/externals/autotools/share/autoconf/autotest/autotest.m4f index 6dd14a68441..a309ef040c0 100644 --- a/externals/autotools/share/autoconf/autotest/autotest.m4f +++ b/externals/autotools/share/autoconf/autotest/autotest.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] @@ -45,9 +45,9 @@ m4_divert_push([TEST_SCRIPT])dnl T8,46 AT_SETUPm4_fatal([AT_SETUP: missing AT_INIT detected]) T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -71,7 +71,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 T16,3 _m4_divert(HELP)300 T8,150 @@ -129,7 +129,7 @@ T7,84 _m4_for$4[$1]$5[]m4_if([$1], [$2], [], [$0(m4_eval([$1 + $3]), [$2], [$3], [$4], [$5])]) T27,34 -m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1674 +m4_location(_AT_ARG_OPTION)../../lib/autotest/general.m4:1746 T12,78 m4_foreach_wm4_pushdef([$1])m4_map_args_w([$2], [m4_define([$1],], [)$3])m4_popdef([$1]) @@ -144,7 +144,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], T20,3 _m4_divert(HELP_END)305 T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -162,7 +162,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -203,14 +203,14 @@ m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unlet T32,0 m4_include(autotest/specific.m4) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -269,7 +269,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 F6,3 m4_lenlen T14,42 @@ -282,7 +282,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 F12,9 m4_debugmodedebugmode T10,280 @@ -300,7 +300,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T22,38 @@ -343,7 +343,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -401,7 +401,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -433,9 +433,9 @@ m4_case([$1], [m4_append([AT_xfail], [ $1 && at_xfail=yes])]) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 T14,142 _AT_CHECK_EXITm4_define([AT_ingroup])AS_ECHO(_AT_LINE_ESCAPED) >"$at_check_line_file" m4_ifval([$1], [($1) \ @@ -459,7 +459,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -467,7 +467,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -479,7 +479,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -490,9 +490,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 F9,6 m4_syscmdsyscmd T28,44 @@ -532,7 +532,7 @@ __unix__ T17,77 AT_ARG_OPTION_ARG_m4_defun_pro([$0])_AT_ARG_OPTION([$1],[$2],1,[$3],[$4])[]_m4_defun_epi([$0]) T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -548,7 +548,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -582,7 +582,7 @@ AT_DIFF_STDERR(ignore-nolog) T27,3 _m4_divert(VERSION_NOTICES)351 T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -2226,8 +2226,8 @@ m4_divert([KILL]) T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -2237,7 +2237,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -2259,7 +2259,7 @@ _m4_divert(HELP_TUNING_BEGIN)302 T22,3 _m4_divert(HELP_MODES)301 T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 T22,3 _m4_divert(HELP_OTHER)304 T9,35 @@ -2277,7 +2277,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -2328,8 +2328,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp T12,93 AT_COPYRIGHTAS_COPYRIGHT([$1])[]m4_divert_text([VERSION_NOTICES], [m4_default([$2], [m4_newline])([$1])]) @@ -2517,7 +2517,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 F12,9 m4_changecomchangecom T20,40 @@ -2659,11 +2659,11 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 T22,30 AT_DIFF_STDERR(ignore)echo stderr:; cat "$at_stderr" T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -2707,7 +2707,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -2758,7 +2758,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -2834,7 +2834,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 T12,10 m4_cr_digits0123456789 T17,17 @@ -2887,7 +2887,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -2909,13 +2909,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -2938,17 +2938,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -2978,11 +2978,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 F8,8 __line____line__ T9,793 @@ -3116,7 +3116,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 F7,4 m4_decrdecr T12,93 @@ -3130,11 +3130,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -3154,11 +3154,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 T7,2 m4_echo$@ T20,1 @@ -3171,11 +3171,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -3274,17 +3274,17 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 T15,131 AT_CAPTURE_FILEm4_ifndef([AT_ingroup], [m4_fatal([AT_CAPTURE_FILE: missing AT_SETUP detected])])m4_append_uniq([AT_capture_files], ["$1"], [ \ ]) T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 F12,8 _m4_undivertundivert T7,54 @@ -3299,8 +3299,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,29 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 +T28,30 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -3494,7 +3494,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 T14,29 AT_COLOR_TESTSm4_define([AT_color], [auto]) T17,64 @@ -3561,7 +3561,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T11,140 @@ -3631,7 +3631,7 @@ AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir T23,3 _m4_divert(TEST_SCRIPT)450 T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -3759,7 +3759,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 T19,3 _m4_divert(VERSION)350 T14,73 @@ -3818,7 +3818,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -3831,7 +3831,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f index 93fbffb4fad..8033a183565 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sh.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sh.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] @@ -25,9 +25,9 @@ AS_MESSAGE_LOG_FD T8,0 _m4_warn T27,30 -m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1122 +m4_location(_AS_ME_PREPARE)../../lib/m4sugar/m4sh.m4:1125 T20,29 -m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:585 +m4_location(AS_EXIT)../../lib/m4sugar/m4sh.m4:586 T21,479 _AS_VAR_ARITH_PREPARE_m4_defun_pro([$0])AS_FUNCTION_DESCRIBE([as_fn_arith], [ARG...], [Perform arithmetic evaluation on the ARGs, and store the result in @@ -51,7 +51,7 @@ m4_map_args_sepm4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])], [$#], [4], [$1[$4]$2[]], [$1[$4]$2[]_m4_foreach([$3[]$1], [$2], m4_shift3($@))]) T22,30 -m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1090 +m4_location(AS_TEST_X)../../lib/m4sugar/m4sh.m4:1092 T8,150 m4_defunm4_define([m4_location($1)], m4_location)m4_default([$3], [m4_define])([$1], [_m4_defun_pro(]m4_dquote($[0])[)$2[]_m4_defun_epi(]m4_dquote($[0])[)]) @@ -112,7 +112,7 @@ _m4_dumpdefm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_builtin([dumpdef], [$1])], [m4_map_args_sep([m4_builtin([dumpdef],], [)], [], $@)]) T25,30 -m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1981 +m4_location(AS_VAR_ARITH)../../lib/m4sugar/m4sh.m4:1984 T14,131 m4_set_add_allm4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1]) + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@)))) @@ -130,7 +130,7 @@ AS_VAR_TEST_SETAS_LITERAL_WORD_IF([$1], T7,111 AS_EXIT_m4_defun_pro([$0])AS_REQUIRE([_AS_EXIT_PREPARE])[]as_fn_exit m4_ifval([$1], [$1], [$][?])[]_m4_defun_epi([$0]) T27,30 -m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1793 +m4_location(_AS_CR_PREPARE)../../lib/m4sugar/m4sh.m4:1800 T13,175 m4_defun_initm4_define([$1], [$3[]])m4_defun([$1], [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl @@ -169,14 +169,14 @@ _m4_divert(GROW)10000 T18,72 m4_version_compare_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unletter([$2])) T31,30 -m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1167 +m4_location(_AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1213 T25,1 _m4_divert(M4SH-SANITIZE)4 T10,120 _AS_ESCAPEm4_if(m4_index(m4_translit([[$1]], [$3], [$2$2$2$2]), [$2]), [-1], [$0_], [m4_bpatsubst])([$1], [[$2$3]], [\\\&]) T29,29 -m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:568 +m4_location(_AS_EXIT_PREPARE)../../lib/m4sugar/m4sh.m4:577 T15,165 _m4_set_add_allm4_if([$#], [2], [], [m4_ifdef([_m4_set([$1],$3)], [], @@ -221,7 +221,7 @@ _AS_IFelif $1; then : T13,15 AS_VAR_POPDEFm4_popdef([$1]) T23,29 -m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:385 +m4_location(AS_REQUIRE)../../lib/m4sugar/m4sh.m4:389 F6,3 m4_lenlen T14,42 @@ -234,7 +234,7 @@ AS_VAR_GETAS_LITERAL_WORD_IF([$1], [$$1], [`eval 'as_val=${'_AS_ESCAPE([[$1]], [`], [\])'};AS_ECHO(["$as_val"])'`]) T29,30 -m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1223 +m4_location(_AS_LN_S_PREPARE)../../lib/m4sugar/m4sh.m4:1250 F12,9 m4_debugmodedebugmode T10,280 @@ -252,7 +252,7 @@ m4_append_uniqm4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [], T15,0 _m4_divert_dump T27,30 -m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2066 +m4_location(AS_VAR_PUSHDEF)../../lib/m4sugar/m4sh.m4:2068 T20,20 m4_PACKAGE_BUGREPORTbug-autoconf@gnu.org T8,66 @@ -289,7 +289,7 @@ _m4_append_uniqm4_ifdef([$1], [m4_append([$1], [$2], [$3])$4], [$5])], [m4_define([$1], [$2])$4]) T32,30 -m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1296 +m4_location(_AS_MKDIR_P_PREPARE)../../lib/m4sugar/m4sh.m4:1309 T20,201 _AS_BASENAME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_EXPR_PREPARE])if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename @@ -345,7 +345,7 @@ m4_popdefm4_if([$#], [0], [[$0]], [m4_fatal([$0: undefined macro: $1])])], [m4_map_args([$0], $@)]) T21,29 -m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:671 +m4_location(AS_UNSET)../../lib/m4sugar/m4sh.m4:672 T12,152 _m4_set_dumpm4_ifdef([_m4_set([$1])], [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn( @@ -363,9 +363,9 @@ T12,32 m4_make_listm4_join([, ], m4_dquote_elt($@)) T31,29 -m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:807 +m4_location(_AS_ECHO_N_PREPARE)../../lib/m4sugar/m4sh.m4:820 T27,29 -m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:894 +m4_location(AS_LINENO_PUSH)../../lib/m4sugar/m4sh.m4:895 T11,498 _AS_MKDIR_Pcase $as_dir in #( -*) as_dir=./$as_dir;; @@ -385,7 +385,7 @@ _AS_MKDIR_Pcase $as_dir in #( } || test -d "$as_dir" || AS_ERROR([cannot create directory $as_dir]) T39,30 -m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1315 +m4_location(_AS_PATH_SEPARATOR_PREPARE)../../lib/m4sugar/m4sh.m4:1324 T5,73 m4_dom4_if([$#], 0, [], [$#], 1, [$1[]], @@ -393,7 +393,7 @@ m4_dom4_if([$#], 0, [], F9,6 m4_substrsubstr T33,29 -m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:167 +m4_location(_AS_DETECT_SUGGESTED)../../lib/m4sugar/m4sh.m4:168 T18,8 m4_PACKAGE_TARNAMEautoconf T13,252 @@ -405,7 +405,7 @@ m4_set_removem4_set_contains([$1], [$2], [_m4_set_size([$1], T19,109 _m4_defun_epi_outer_m4_popdef([_m4_divert_dump], [_m4_diverting([$1])], [_m4_diverting])m4_divert_pop([GROW])m4_undivert([GROW]) T27,30 -m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1878 +m4_location(_AS_TR_PREPARE)../../lib/m4sugar/m4sh.m4:1879 T15,58 m4_divert_stackm4_stack_foreach_sep_lifo([_m4_divert_stack], [], [], [ ]) @@ -416,9 +416,9 @@ AS_VAR_PUSHDEF_$0([$1], m4_expand([$2]))[] T14,130 AS_VAR_PUSHDEF_m4_defun_pro([$0])AS_REQUIRE([_AS_TR_SH_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T18,29 -m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:639 +m4_location(AS_IF)../../lib/m4sugar/m4sh.m4:643 T31,30 -m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1767 +m4_location(AS_VERSION_COMPARE)../../lib/m4sugar/m4sh.m4:1775 F9,6 m4_syscmdsyscmd T11,136 @@ -454,7 +454,7 @@ _m4_list_cmp_rawm4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)]) T8,0 __unix__ T20,30 -m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1257 +m4_location(AS_LN_S)../../lib/m4sugar/m4sh.m4:1259 T14,109 m4_file_appendm4_syscmd([cat >>$1 <<_m4eof $2 @@ -470,7 +470,7 @@ m4_pushdef([$1], [$as_[$1]])], T15,49 m4_rename_forcem4_ifdef([$2], [_m4_undefine([$2])])m4_rename($@) T28,30 -m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1098 +m4_location(AS_EXECUTABLE_P)../../lib/m4sugar/m4sh.m4:1100 T9,222 m4_bmatchm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])], @@ -500,7 +500,7 @@ _AS_DETECT_REQUIRED_m4_defun_pro([$0])m4_set_add([_AS_DETECT_REQUIRED_BODY], [$1 T10,121 m4_re_word[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]* T26,29 -m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:649 +m4_location(AS_SET_STATUS)../../lib/m4sugar/m4sh.m4:650 T14,37 m4_PACKAGE_URLhttp://www.gnu.org/software/autoconf/ T11,62 @@ -671,8 +671,8 @@ _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], T16,103 AS_IDENTIFIER_IFm4_if(_$0(m4_if(m4_index([$1], [@]), [-1], [[$1]], [m4_bpatsubst([[$1]], [@&t@])])), [-], [$2], [$3]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T17,129 _AS_DETECT_EXPAND$1="m4_bpatsubst(m4_dquote(AS_ESCAPE(_m4_expand(m4_set_contents([$2], [ ])))), [\\\$LINENO\(.*\)$], [";$1=$$1$LINENO;$1=$$1"\1])" @@ -682,7 +682,7 @@ m4_nm4_if([$1], [$1 ]) T26,29 -m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:904 +m4_location(AS_LINENO_POP)../../lib/m4sugar/m4sh.m4:905 T8,22 AS_TR_SH_$0(m4_expand([$1]))[] T8,124 @@ -700,7 +700,7 @@ m4_ignore T9,28 _m4_quotem4_if([$#], [0], [], [[$*]]) T21,30 -m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1826 +m4_location(AS_TR_SH)../../lib/m4sugar/m4sh.m4:1828 T9,35 m4_shiftnm4_assert(0 < $1 && $1 < $#)_$0($@) T7,75 @@ -714,7 +714,7 @@ m4_set_listcm4_set_map_sep([$1], [,]) F9,6 m4_divnumdivnum T30,30 -m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2121 +m4_location(AS_INIT_GENERATED)../../lib/m4sugar/m4sh.m4:2140 T21,76 _m4_set_add_all_checkm4_if([$#], [2], [], [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))]) @@ -753,8 +753,8 @@ _AS_LITERAL_IF_m4_if(m4_translit([$1], [+]), [], [$0YES], m4_translit([$1], [$]), [], [m4_default], [$0NO]) F9,6 m4_formatformat -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp F11,11 __program____program__ T6,26 @@ -880,7 +880,7 @@ m4_indirindir T12,1 _m4_divert()0 T31,30 -m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1845 +m4_location(_AS_TR_CPP_PREPARE)../../lib/m4sugar/m4sh.m4:1849 F12,9 m4_changecomchangecom T20,40 @@ -949,9 +949,9 @@ m4_divert_pop[][]_m4_defun_epi([$0]) T11,17 m4_location__file__:__line__ T24,29 -m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:942 +m4_location(AS_BASENAME)../../lib/m4sugar/m4sh.m4:946 T36,29 -m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:194 +m4_location(_AS_DETECT_BETTER_SHELL)../../lib/m4sugar/m4sh.m4:273 T11,54 m4_ifnblankm4_if(m4_translit([[$1]], [ ][ ][ ]), [], [$3], [$2]) @@ -980,7 +980,7 @@ m4_form4_pushdef([$1], m4_eval([$2]))m4_cond([m4_eval(([$3]) > ([$2]))], 1, T8,42 _AS_ECHO_AS_ECHO_UNQUOTED([_AS_QUOTE([$1])], [$2]) T25,29 -m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:790 +m4_location(_AS_ECHO_LOG)../../lib/m4sugar/m4sh.m4:792 T17,185 _AS_TR_SH_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_CR_PREPARE])# Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g'" @@ -1021,7 +1021,7 @@ _AS_CASE_DEFAULT [@%:@(] T7,30 AS_WARNAS_MESSAGE([WARNING: $1], [2]) T30,29 -m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:921 +m4_location(_AS_BASENAME_EXPR)../../lib/m4sugar/m4sh.m4:924 T17,490 _AS_TR_SH_LITERALm4_translit([[$1]], [*+[]][ @@ -1093,7 +1093,7 @@ m4_set_deletem4_ifdef([_m4_set([$1])], [_m4_set_size($1)], [_m4_popdef([_m4_set_size($1)])])]) T34,29 -m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:279 +m4_location(_AS_REEXEC_WITH_SHELL)../../lib/m4sugar/m4sh.m4:297 T12,10 m4_cr_digits0123456789 T17,17 @@ -1146,7 +1146,7 @@ m4_wrap([m4_popdef([_m4_divert_diversion])m4_ifdef( ]m4_divert_stack)])_m4_popdef([_m4_divert_stack])m4_divert_push([KILL])]) T21,29 -m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:883 +m4_location(AS_ERROR)../../lib/m4sugar/m4sh.m4:887 T11,162 m4_dumpdefsm4_if([$#], [0], [m4_fatal([$0: missing argument])], [$#], [1], [m4_stack_foreach_lifo([$1], [m4_dumpdef([$1])m4_ignore])], @@ -1168,13 +1168,13 @@ m4_n([$2])$1 () $3 } @%:@ $1[] T22,30 -m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1859 +m4_location(AS_TR_CPP)../../lib/m4sugar/m4sh.m4:1861 T8,28 _AS_CASE [@%:@(] $1[)] : $2 ;; T19,29 -m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:607 +m4_location(AS_FOR)../../lib/m4sugar/m4sh.m4:613 T9,156 m4_escapem4_if(m4_index(m4_translit([$1], [[]#,()][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789], [$$$]), [$]), @@ -1197,17 +1197,17 @@ _ASEOF test $as_write_fail = 0 && chmod +x $1[]dnl _m4_popdef([AS_MESSAGE_LOG_FD])[]_m4_defun_epi([$0]) T29,29 -m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:975 +m4_location(_AS_DIRNAME_EXPR)../../lib/m4sugar/m4sh.m4:980 T12,24 m4_rename_m4m4_rename([$1], [m4_$1]) T30,29 -m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:657 +m4_location(_AS_UNSET_PREPARE)../../lib/m4sugar/m4sh.m4:663 T20,111 m4_stack_foreach_sep_m4_stack_reverse([$1], [m4_tmp-$1])_m4_stack_reverse([m4_tmp-$1], [$1], [$2[]_m4_defn([m4_tmp-$1])$3], [$4[]]) T20,30 -m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1026 +m4_location(AS_ECHO)../../lib/m4sugar/m4sh.m4:1028 T35,30 -m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1906 +m4_location(_AS_VAR_APPEND_PREPARE)../../lib/m4sugar/m4sh.m4:1921 T19,156 _m4_defun_pro_outerm4_set_delete([_m4_provide])m4_pushdef([_m4_diverting([$1])])m4_pushdef([_m4_diverting], [$1])m4_pushdef([_m4_divert_dump], m4_divnum)m4_divert_push([GROW]) T18,49 @@ -1237,11 +1237,11 @@ m4_stack_foreach_lifo_m4_stack_reverse([$1], [m4_tmp-$1], [$2(_m4_defn([m4_tmp-$ T11,33 m4_set_listm4_set_map_sep([$1], [], [], [,]) T32,29 -m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:156 +m4_location(_AS_DETECT_REQUIRED)../../lib/m4sugar/m4sh.m4:157 T23,29 -m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:353 +m4_location(AS_PREPARE)../../lib/m4sugar/m4sh.m4:373 T29,30 -m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1384 +m4_location(_AS_TEST_PREPARE)../../lib/m4sugar/m4sh.m4:1391 F8,8 __line____line__ T13,41 @@ -1342,7 +1342,7 @@ m4_bpatsubstsm4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])], [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))], [_$0($@m4_if(m4_eval($# & 1), 0, [,]))]) T23,29 -m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:834 +m4_location(AS_MESSAGE)../../lib/m4sugar/m4sh.m4:839 F7,4 m4_decrdecr T12,93 @@ -1354,11 +1354,11 @@ m4_set_emptym4_ifdef([_m4_set_size($1)], T15,36 m4_set_contentsm4_set_map_sep([$1], [], [], [[$2]]) T32,30 -m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1011 +m4_location(_AS_DIRNAME_PREPARE)../../lib/m4sugar/m4sh.m4:1018 T15,55 _AS_TR_SH_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_sh` T20,29 -m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:550 +m4_location(AS_CASE)../../lib/m4sugar/m4sh.m4:553 T10,168 m4_combinem4_if([$2], [], [], m4_eval([$# > 3]), [1], [m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]m4_dquote(m4_dquote(m4_shift3($@)))[[)], [[$1]], $2)]) @@ -1378,11 +1378,11 @@ T18,192 m4_cr_not_symbols2  !"#*%&'()$+,./:;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ- T23,30 -m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1002 +m4_location(AS_DIRNAME)../../lib/m4sugar/m4sh.m4:1006 F12,8 m4_bpatsubstpatsubst T31,29 -m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:451 +m4_location(_AS_SHELL_SANITIZE)../../lib/m4sugar/m4sh.m4:504 T7,2 m4_echo$@ T20,1 @@ -1393,11 +1393,11 @@ T14,102 _AS_ME_PREPARE_m4_defun_pro([$0])AS_REQUIRE([_AS_BASENAME_PREPARE])as_me=`AS_BASENAME("$[0]")` []_m4_defun_epi([$0]) T26,30 -m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1339 +m4_location(_AS_PATH_WALK)../../lib/m4sugar/m4sh.m4:1356 T7,91 m4_argnm4_assert([0 < $1])m4_pushdef([_$0], [_m4_popdef([_$0])]m4_dquote([$]m4_incr([$1])))_$0($@) T29,30 -m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1044 +m4_location(_AS_ECHO_PREPARE)../../lib/m4sugar/m4sh.m4:1082 T8,27 m4_ifvalm4_if([$1], [], [$3], [$2]) T7,197 @@ -1496,13 +1496,13 @@ AS_ESCAPE_$0([$1], m4_if([$2], [], [[`], [\"$]], [m4_substr([$2], [0], [1]), [$2 T20,4 _m4_divert_diversionKILL T24,29 -m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:322 +m4_location(_AS_PREPARE)../../lib/m4sugar/m4sh.m4:345 T22,30 -m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1034 +m4_location(AS_ECHO_N)../../lib/m4sugar/m4sh.m4:1036 T30,30 -m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1805 +m4_location(_AS_TR_SH_PREPARE)../../lib/m4sugar/m4sh.m4:1809 T23,30 -m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1289 +m4_location(AS_MKDIR_P)../../lib/m4sugar/m4sh.m4:1291 F12,8 _m4_undivertundivert T7,54 @@ -1517,8 +1517,8 @@ T16,56 _AS_TR_CPP_INDIR`AS_ECHO(["_AS_ESCAPE([[$1]], [`], [\])"]) | $as_tr_cpp` T17,28 m4_default_nblankm4_ifblank([$1], [$2], [$1]) -T28,29 -m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:982 +T28,30 +m4_location(_AS_DIRNAME_SED)../../lib/m4sugar/m4sh.m4:1000 T18,540 _AS_TR_CPP_LITERALm4_translit([[$1]], [*[]][abcdefghijklmnopqrstuvwxyz @@ -1698,7 +1698,7 @@ _m4_expand_m4_if([$4], [}>=-], [m4_changequote([-=<{$2], [)}>=-])$3m4_changequote([, ])], [$0([$1], [($2], -=<{($2$1)}>=-, [}>=-])m4_ignore$2]) T29,29 -m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:926 +m4_location(_AS_BASENAME_SED)../../lib/m4sugar/m4sh.m4:940 T17,64 _m4_divert_unsafem4_fatal([$0: cannot change diversion to `$1' inside m4_expand]) T8,99 @@ -1761,7 +1761,7 @@ AS_SET_CATFILEcase $2 in @%:@(( esac;; esac[] T34,30 -m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1948 +m4_location(_AS_VAR_ARITH_PREPARE)../../lib/m4sugar/m4sh.m4:1962 T13,26 m4_cr_lettersabcdefghijklmnopqrstuvwxyz T7,13 @@ -1823,7 +1823,7 @@ _AS_DIRNAME_SED([$1])[] T10,124 AS_DIRNAME_m4_defun_pro([$0])AS_REQUIRE([_$0_PREPARE])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T33,29 -m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:954 +m4_location(_AS_BASENAME_PREPARE)../../lib/m4sugar/m4sh.m4:961 T13,42 m4_mapall_sepm4_if([$3], [], [], [_$0([$1], [$2], $3)]) T9,26 @@ -1944,7 +1944,7 @@ m4_applym4_if([$2], [], [$1], [$1($2)])[] T30,0 m4_include(m4sugar/version.m4) T26,30 -m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1939 +m4_location(AS_VAR_APPEND)../../lib/m4sugar/m4sh.m4:1941 T14,73 _m4_mapall_sepm4_apply([$1], [$3])_m4_foreach([m4_apply([$2[]$1],], [)], m4_shift2($@)) T9,132 @@ -1986,7 +1986,7 @@ AS_VAR_APPENDas_fn_append $1 $2[] T13,155 AS_VAR_APPEND_m4_defun_pro([$0])AS_REQUIRE([_AS_VAR_APPEND_PREPARE], [], [M4SH-INIT-FN])[]_m4_popdef([$0])m4_indir([$0]m4_if([$#], [0], [], [,$@]))[]_m4_defun_epi([$0]) T29,30 -m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1108 +m4_location(_AS_EXPR_PREPARE)../../lib/m4sugar/m4sh.m4:1115 T8,198 _m4_qlenm4_define([m4_qlen-$1], m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])], @@ -1999,7 +1999,7 @@ m4_reversem4_if([$#], [0], [], [$#], [1], [[$1]], T13,1 AS_MESSAGE_FD1 T40,30 -m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1697 +m4_location(_AS_VERSION_COMPARE_PREPARE)../../lib/m4sugar/m4sh.m4:1757 T30,30 m4_location(AS_LINENO_PREPARE)../../lib/m4sugar/m4sh.m4:1166 T10,294 diff --git a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f index 9d649aa1426..2d81e697bd3 100644 --- a/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f +++ b/externals/autotools/share/autoconf/m4sugar/m4sugar.m4f @@ -1,4 +1,4 @@ -# This is a frozen state file generated by GNU M4 1.4.16 +# This is a frozen state file generated by GNU M4 1.4.6 V1 Q1,1 [] @@ -305,8 +305,8 @@ m4_cr_LETTERSABCDEFGHIJKLMNOPQRSTUVWXYZ T17,94 _m4_stack_reversem4_ifdef([$1], [m4_pushdef([$2], _m4_defn([$1]))$3[]_m4_popdef([$1])$0([$1], [$2], [$4$3])]) -F11,7 -m4_maketempmkstemp +F11,8 +m4_maketempmaketemp T4,37 m4_nm4_if([$1], [], [], @@ -353,8 +353,8 @@ _m4_text_wrapm4_pushdef([m4_Indent], m4_qlen([$2]))m4_pushdef([m4_Cursor], m4_ql m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])m4_map_args_w([$1], [$0_word(], [, [$2], [$4])])_m4_popdef([m4_Separator], [m4_Cursor], [m4_Indent]) F9,6 m4_formatformat -F10,7 -m4_mkstempmkstemp +F10,8 +m4_mkstempmaketemp F11,11 __program____program__ T7,156 diff --git a/externals/autotools/share/automake-1.12/Automake/Config.pm b/externals/autotools/share/automake-1.12/Automake/Config.pm index b96d7cd861f..9756159d31e 100644 --- a/externals/autotools/share/automake-1.12/Automake/Config.pm +++ b/externals/autotools/share/automake-1.12/Automake/Config.pm @@ -32,7 +32,7 @@ our $PACKAGE = 'automake'; our $PACKAGE_BUGREPORT = 'bug-automake@gnu.org'; our $VERSION = '1.12.5'; our $RELEASE_YEAR = '2012'; -our $libdir = '/home/ruben/SU2_Develop/SU2_code/SU2/externals/autotools/share/automake-1.12'; +our $libdir = '/Users/economon/SU2/externals/autotools/share/automake-1.12'; our $perl_threads = 1; 1; diff --git a/externals/autotools/share/info/dir b/externals/autotools/share/info/dir index 73c759cfa09..e495396dfa0 100644 --- a/externals/autotools/share/info/dir +++ b/externals/autotools/share/info/dir @@ -15,25 +15,21 @@ File: dir, Node: Top This is the top of the INFO tree * Menu: Individual utilities -* aclocal-invocation: (automake)aclocal Invocation. - Generating aclocal.m4. +* aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. * autoconf-invocation: (autoconf)autoconf Invocation. - How to create configuration - scripts -* autoheader: (autoconf)autoheader Invocation. How to create configuration - templates -* autom4te: (autoconf)autom4te Invocation. The Autoconf executables - backbone -* automake-invocation: (automake)automake Invocation. - Generating Makefile.in. -* autoreconf: (autoconf)autoreconf Invocation. Remaking multiple `configure' - scripts -* autoscan: (autoconf)autoscan Invocation. Semi-automatic `configure.ac' - writing -* autoupdate: (autoconf)autoupdate Invocation. Automatic update of - `configure.ac' -* config.status: (autoconf)config.status Invocation. - Recreating configurations. + How to create configuration scripts +* autoheader: (autoconf)autoheader Invocation. + How to create configuration templates +* autom4te: (autoconf)autom4te Invocation. + The Autoconf executables backbone +* automake-invocation: (automake)automake Invocation. Generating Makefile.in. +* autoreconf: (autoconf)autoreconf Invocation. + Remaking multiple `configure' scripts +* autoscan: (autoconf)autoscan Invocation. + Semi-automatic `configure.ac' writing +* autoupdate: (autoconf)autoupdate Invocation. + Automatic update of `configure.ac' +* config.status: (autoconf)config.status Invocation. Recreating configurations. * configure: (autoconf)configure Invocation. Configuring a package. * ifnames: (autoconf)ifnames Invocation. Listing conditionals in source. * libtool-invocation: (libtool)Invoking libtool. From fa6043f9da7b5ec2bf33337e499c3ed8f5a50c59 Mon Sep 17 00:00:00 2001 From: Ruben Sanchez Date: Tue, 15 Mar 2016 21:51:13 +0000 Subject: [PATCH 240/269] Delete any changes in inv_NACA0012.cfg --- .../optimization_euler/steady_inverse_design/inv_NACA0012.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg index 361674af4be..0952bbc97b8 100644 --- a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg +++ b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg @@ -12,7 +12,7 @@ % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, -% WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, % POISSON_EQUATION) PHYSICAL_PROBLEM= EULER % @@ -355,4 +355,4 @@ OPT_BOUND_UPPER= 0.1 OPT_BOUND_LOWER= -0.1 % % Optimization design variables, separated by semicolons -DEFINITION_DV= ( 15, 1.0 | airfoil | BOX, 0, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 0, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 1, 0.0, 1.0 ) +DEFINITION_DV= ( 15, 1.0 | airfoil | BOX, 0, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 0, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 0, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 1, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 2, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 3, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 4, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 5, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 6, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 7, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 8, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 9, 1, 0.0, 1.0 ); ( 15, 1.0 | airfoil | BOX, 10, 1, 0.0, 1.0 ) \ No newline at end of file From ce8af2a82da6a9662cb6ba7ff920bc895e2fabc4 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 15 Mar 2016 17:16:16 -0700 Subject: [PATCH 241/269] Added shape_optimization.py regression test. --- TestCases/TestCase.py | 152 ++++++++++++++++++ .../steady_naca0012/inv_NACA0012_adv.cfg | 12 ++ TestCases/serial_regression.py | 12 ++ 3 files changed, 176 insertions(+) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index fcead351a6a..da255203a4c 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -252,6 +252,134 @@ def run_filediff(self): os.chdir(workdir) return passed + def run_opt(self): + + print '==================== Start Test: %s ===================='%self.tag + passed = True + exceed_tol = False + timed_out = False + iter_missing = True + start_solver = True + + # Adjust the number of iterations in the config file + self.adjust_opt_iter() + + # Assemble the shell command to run SU2 + logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] + command = "%s %s > %s" % (self.su2_exec, self.cfg_file,logfilename) + + # Run SU2 + workdir = os.getcwd() + os.chdir(self.cfg_dir) + print os.getcwd() + start = datetime.datetime.now() + process = subprocess.Popen(command, shell=True) # This line launches SU2 + + # check for timeout + while process.poll() is None: + time.sleep(0.1) + now = datetime.datetime.now() + running_time = (now - start).seconds + if running_time > self.timeout: + try: + process.kill() + os.system('killall %s' % self.su2_exec) # In case of parallel execution + except AttributeError: # popen.kill apparently fails on some versions of subprocess... the killall command should take care of things! + pass + timed_out = True + passed = False + + # Examine the output + f = open(logfilename,'r') + output = f.readlines() + delta_vals = [] + sim_vals = [] + if not timed_out: + start_solver = False + for line in output: + if not start_solver: # Don't bother parsing anything before optimizer starts + if line.find('OBJFUN') > -1: + start_solver=True + else: # Found the OBJFUN line; parse the input + raw_data = line.split() + try: + iter_number = int(raw_data[0]) + data = raw_data[len(raw_data)-4:] # Take the last 4 columns for comparison + except ValueError: + continue + except IndexError: + continue + + if iter_number == self.test_iter: # Found the iteration number we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print "Error in test_vals!" + passed = False + break + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + break + else: + iter_missing = True + + if not start_solver: + passed = False + + if iter_missing: + passed = False + + # Write the test results + #for j in output: + # print j + + if passed: + print "%s: PASSED"%self.tag + else: + print "%s: FAILED"%self.tag + print 'Output for the failed case' + subprocess.call(['cat', logfilename]) + + print 'execution command: %s'%command + + if timed_out: + print 'ERROR: Execution timed out. timeout=%d'%self.timeout + + if exceed_tol: + print 'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol + + if not start_solver: + print 'ERROR: The code was not able to get to the "OBJFUN" section.' + + if iter_missing: + print 'ERROR: The optimizer iteration number %d could not be found.'%self.test_iter + + print 'test_iter=%d \n'%self.test_iter, + + print 'test_vals (stored): ', + for j in self.test_vals: + print '%f,'%j, + print '\n', + + print 'sim_vals (computed): ', + for j in sim_vals: + print '%f,'%j, + print '\n', + + print 'delta_vals: ', + for j in delta_vals: + print '%f,'%j, + print '\n', + + print 'test duration: %.2f min'%(running_time/60.0) + print '==================== End Test: %s ====================\n'%self.tag + + os.chdir(workdir) + return passed + def adjust_iter(self): # Read the cfg file @@ -275,3 +403,27 @@ def adjust_iter(self): os.chdir(workdir) return + + def adjust_opt_iter(self): + + # Read the cfg file + workdir = os.getcwd() + os.chdir(self.cfg_dir) + file_in = open(self.cfg_file, 'r') + lines = file_in.readlines() + file_in.close() + + # Rewrite the file with a .autotest extension + self.cfg_file = "%s.autotest"%self.cfg_file + file_out = open(self.cfg_file,'w') + file_out.write('%% This file automatically generated by the regression script\n') + file_out.write('%% Number of optimizer iterations changed to %d\n'%(self.test_iter)) + for line in lines: + if not line.startswith("OPT_ITERATIONS"): + file_out.write(line) + else: + file_out.write("OPT_ITERATIONS= %d\n"%(self.test_iter)) + file_out.close() + os.chdir(workdir) + + return diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg index 318434a2d11..3c13d95783d 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg @@ -354,5 +354,17 @@ OPT_OBJECTIVE= DRAG * 0.001 % ex= (Objective = Value ) * Scale, use '>','<','=' OPT_CONSTRAINT= ( LIFT > 0.327 ) * 0.001; ( MOMENT_Z > 0.0 ) * 0.001; ( MAX_THICKNESS > 0.12 ) * 0.001 % +% Maximum number of optimizer iterations +OPT_ITERATIONS= 100 +% +% Requested accuracy +OPT_ACCURACY= 1E-6 +% +% Upper bound for each design variable +OPT_BOUND_UPPER= 0.1 +% +% Lower bound for each design variable +OPT_BOUND_LOWER= -0.1 +% % Optimization design variables, separated by semicolons DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( 1, 1.0 | airfoil | 0, 0.15 ); ( 1, 1.0 | airfoil | 0, 0.20 ); ( 1, 1.0 | airfoil | 0, 0.25 ); ( 1, 1.0 | airfoil | 0, 0.30 ); ( 1, 1.0 | airfoil | 0, 0.35 ); ( 1, 1.0 | airfoil | 0, 0.40 ); ( 1, 1.0 | airfoil | 0, 0.45 ); ( 1, 1.0 | airfoil | 0, 0.50 ); ( 1, 1.0 | airfoil | 0, 0.55 ); ( 1, 1.0 | airfoil | 0, 0.60 ); ( 1, 1.0 | airfoil | 0, 0.65 ); ( 1, 1.0 | airfoil | 0, 0.70 ); ( 1, 1.0 | airfoil | 0, 0.75 ); ( 1, 1.0 | airfoil | 0, 0.80 ); ( 1, 1.0 | airfoil | 0, 0.85 ); ( 1, 1.0 | airfoil | 0, 0.90 ); ( 1, 1.0 | airfoil | 0, 0.95 ); ( 1, 1.0 | airfoil | 1, 0.05 ); ( 1, 1.0 | airfoil | 1, 0.10 ); ( 1, 1.0 | airfoil | 1, 0.15 ); ( 1, 1.0 | airfoil | 1, 0.20 ); ( 1, 1.0 | airfoil | 1, 0.25 ); ( 1, 1.0 | airfoil | 1, 0.30 ); ( 1, 1.0 | airfoil | 1, 0.35 ); ( 1, 1.0 | airfoil | 1, 0.40 ); ( 1, 1.0 | airfoil | 1, 0.45 ); ( 1, 1.0 | airfoil | 1, 0.50 ); ( 1, 1.0 | airfoil | 1, 0.55 ); ( 1, 1.0 | airfoil | 1, 0.60 ); ( 1, 1.0 | airfoil | 1, 0.65 ); ( 1, 1.0 | airfoil | 1, 0.70 ); ( 1, 1.0 | airfoil | 1, 0.75 ); ( 1, 1.0 | airfoil | 1, 0.80 ); ( 1, 1.0 | airfoil | 1, 0.85 ); ( 1, 1.0 | airfoil | 1, 0.90 ); ( 1, 1.0 | airfoil | 1, 0.95 ) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 748f219c732..1e68a455825 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -567,6 +567,18 @@ def main(): pass_list.append(findiff_euler_py.run_filediff()) test_list.append(findiff_euler_py) + # test shape_optimization.py + shape_opt_euler_py = TestCase('shape_opt_euler_py') + shape_opt_euler_py.cfg_dir = "optimization_euler/steady_naca0012" + shape_opt_euler_py.cfg_file = "inv_NACA0012_adv.cfg" + shape_opt_euler_py.test_iter = 1 + shape_opt_euler_py.test_vals = [1, 1, 2.134974E-05, 3.829535E-03] #last 4 columns + shape_opt_euler_py.su2_exec = "shape_optimization.py -f" + shape_opt_euler_py.timeout = 1600 + shape_opt_euler_py.tol = 0.00001 + pass_list.append(shape_opt_euler_py.run_opt()) + test_list.append(shape_opt_euler_py) + # Tests summary print '==================================================================' print 'Summary of the serial tests' From 3e091201c6de1ba9ea71edced1cfeb859c867603 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 15 Mar 2016 18:13:05 -0700 Subject: [PATCH 242/269] Added SU2_GEO test for the NACA 0012 (max thickness, area, twist, chord). --- TestCases/TestCase.py | 144 ++++++++++++++++++++++++++++++++- TestCases/serial_regression.py | 16 ++++ 2 files changed, 159 insertions(+), 1 deletion(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index da255203a4c..0a6455a3d76 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -379,7 +379,149 @@ def run_opt(self): os.chdir(workdir) return passed - + + def run_geo(self): + + print '==================== Start Test: %s ===================='%self.tag + passed = True + exceed_tol = False + timed_out = False + start_solver = True + iter_missing = True + + found_thick = False + found_area = False + found_twist = False + found_chord = False + + # Assemble the shell command to run SU2 + logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] + command = "%s %s > %s" % (self.su2_exec, self.cfg_file,logfilename) + + # Run SU2 + workdir = os.getcwd() + os.chdir(self.cfg_dir) + print os.getcwd() + start = datetime.datetime.now() + process = subprocess.Popen(command, shell=True) # This line launches SU2 + + # check for timeout + while process.poll() is None: + time.sleep(0.1) + now = datetime.datetime.now() + running_time = (now - start).seconds + if running_time > self.timeout: + try: + process.kill() + os.system('killall %s' % self.su2_exec) # In case of parallel execution + except AttributeError: # popen.kill apparently fails on some versions of subprocess... the killall command should take care of things! + pass + timed_out = True + passed = False + + # Examine the output + f = open(logfilename,'r') + output = f.readlines() + delta_vals = [] + sim_vals = [] + data = [] + if not timed_out: + start_solver = False + for line in output: + if not start_solver: # Don't bother parsing anything before SU2_GEO starts + if line.find('Section 1') > -1: + start_solver=True + elif line.find('Section 2') > -1: # jump out of loop if we hit the next section + break + else: # Found the lines; parse the input + + if line.find('Maximum thickness') > -1: + raw_data = line.split() + data.append(raw_data[-1][:-1]) + found_thick = True + + elif line.find('Area') > -1: + raw_data = line.split() + data.append(raw_data[-1][:-1]) + found_area = True + + elif line.find('Twist angle') > -1: + raw_data = line.split() + data.append(raw_data[-1][:-1]) + found_twist = True + + elif line.find('Chord') > -1: + raw_data = line.split() + data.append(raw_data[-1][:-1]) + found_chord = True + + + if found_thick and found_area and found_twist and found_chord: # Found what we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print "Error in test_vals!" + passed = False + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + else: + iter_missing = True + + if not start_solver: + passed = False + + if iter_missing: + passed = False + + # Write the test results + #for j in output: + # print j + + if passed: + print "%s: PASSED"%self.tag + else: + print "%s: FAILED"%self.tag + print 'Output for the failed case' + subprocess.call(['cat', logfilename]) + + print 'execution command: %s'%command + + if timed_out: + print 'ERROR: Execution timed out. timeout=%d'%self.timeout + + if exceed_tol: + print 'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol + + if not start_solver: + print 'ERROR: The code was not able to get to the "OBJFUN" section.' + + if iter_missing: + print 'ERROR: The SU2_GEO values could not be found.' + + print 'test_vals (stored): ', + for j in self.test_vals: + print '%f,'%j, + print '\n', + + print 'sim_vals (computed): ', + for j in sim_vals: + print '%f,'%j, + print '\n', + + print 'delta_vals: ', + for j in delta_vals: + print '%f,'%j, + print '\n', + + print 'test duration: %.2f min'%(running_time/60.0) + print '==================== End Test: %s ====================\n'%self.tag + + os.chdir(workdir) + return passed + def adjust_iter(self): # Read the cfg file diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 1e68a455825..0103bd1775b 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -539,6 +539,22 @@ def main(): pass_list = [ test.run_test() for test in test_list ] + ###################################### + ### RUN SU2_GEO TESTS ### + ###################################### + + # NACA0012 + naca0012_geo = TestCase('naca0012_geo') + naca0012_geo.cfg_dir = "optimization_euler/steady_naca0012" + naca0012_geo.cfg_file = "inv_NACA0012_adv.cfg" + naca0012_geo.test_vals = [0.120011, 0.0816925, 0.0, 1.0] #max thickness, area, twist, chord + naca0012_geo.su2_exec = "SU2_GEO" + naca0012_geo.timeout = 1600 + naca0012_geo.tol = 0.00001 + pass_list.append(naca0012_geo.run_geo()) + test_list.append(naca0012_geo) + + ###################################### ### RUN PYTHON TESTS ### ###################################### From 89aa15c5e5268db094e75079535554e2c765ad38 Mon Sep 17 00:00:00 2001 From: Tim Albring Date: Fri, 18 Mar 2016 13:28:51 +0100 Subject: [PATCH 243/269] Fixed bug in discrete adjoint and SST model. --- SU2_CFD/src/iteration_structure.cpp | 2 +- TestCases/parallel_regression_AD.py | 2 +- TestCases/serial_regression_AD.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index f475c18f03e..5a124d4c215 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -1690,7 +1690,7 @@ void CDiscAdjMeanFlowIteration::SetDependencies(CSolver ****solver_container, CG /*--- Compute coupling between flow and turbulent equations ---*/ if (turbulent){ - solver_container[iZone][MESH_0][FLOW_SOL]->SetPrimitive_Variables(solver_container[iZone][MESH_0], config_container[iZone], false); + solver_container[iZone][MESH_0][FLOW_SOL]->Preprocessing(geometry_container[iZone][MESH_0],solver_container[iZone][MESH_0], config_container[iZone], MESH_0, NO_RK_ITER, RUNTIME_FLOW_SYS, true); solver_container[iZone][MESH_0][TURB_SOL]->Postprocessing(geometry_container[iZone][MESH_0],solver_container[iZone][MESH_0], config_container[iZone], MESH_0); } diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index 2bb045a1b6c..b0353ed889e 100755 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -74,7 +74,7 @@ def main(): discadj_rans_naca0012_sst.cfg_dir = "disc_adj_rans/naca0012" discadj_rans_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" discadj_rans_naca0012_sst.test_iter = 10 - discadj_rans_naca0012_sst.test_vals = [-1.655245, -0.507187, 0.129010, -0.477680] #last 4 columns + discadj_rans_naca0012_sst.test_vals = [-1.655243, -0.507187, 0.129010, -0.4776800] #last 4 columns discadj_rans_naca0012_sst.su2_exec = "parallel_computation.py -f" discadj_rans_naca0012_sst.timeout = 1600 discadj_rans_naca0012_sst.tol = 0.00001 diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index bd86b87aff0..0acdd9cf294 100755 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -74,7 +74,7 @@ def main(): discadj_rans_naca0012_sst.cfg_dir = "disc_adj_rans/naca0012" discadj_rans_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" discadj_rans_naca0012_sst.test_iter = 10 - discadj_rans_naca0012_sst.test_vals = [-1.658568,-0.487694,8.7557e-02,-5.3701e-01] #last 4 columns + discadj_rans_naca0012_sst.test_vals = [-1.658566, -0.487694, 0.087556, -0.537010] #last 4 columns discadj_rans_naca0012_sst.su2_exec = "SU2_CFD_AD" discadj_rans_naca0012_sst.timeout = 1600 discadj_rans_naca0012_sst.tol = 0.00001 From 6da823077f53299018b80a88849ee4832a0964c9 Mon Sep 17 00:00:00 2001 From: hlkline Date: Mon, 21 Mar 2016 12:10:45 -0700 Subject: [PATCH 244/269] testing fixes to heat flux continuous adjoint --- SU2_CFD/src/solver_adjoint_mean.cpp | 31 ++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 195b52e57a7..745b8ad9967 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -5219,8 +5219,11 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short #endif /*--- Norm heat flux objective test ---*/ - - pnorm = 10; + pnorm = 1.0; + if (config->GetKind_ObjFunc()==TOTAL_HEATFLUX) + pnorm = 1.0; + if (config->GetKind_ObjFunc()==MAXIMUM_HEATFLUX) + pnorm = 8.0; /*--- Set the gamma value ---*/ @@ -5359,7 +5362,7 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short if ((config->GetKind_ObjFunc() == TOTAL_HEATFLUX) || (config->GetKind_ObjFunc() == MAXIMUM_HEATFLUX) || (config->GetKind_ObjFunc() == INVERSE_DESIGN_HEATFLUX)) - PsiE_Inf = -1.0; + PsiE_Inf = 1.0; else PsiE_Inf = 0.0; Phi_Inf = new su2double [nDim]; @@ -6801,7 +6804,7 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont Sigma_xx, Sigma_yy, Sigma_zz, Sigma_xy, Sigma_xz, Sigma_yz, Sigma_xx5, Sigma_yy5, Sigma_zz5, Sigma_xy5, Sigma_xz5, Sigma_yz5, eta_xx, eta_yy, eta_zz, eta_xy, eta_xz, eta_yz; - su2double kGTdotn; + su2double kGTdotn=0.0, Area=0.0, Xi=0.0; su2double *Psi = new su2double[nVar]; su2double **Tau = new su2double* [nDim]; @@ -6904,14 +6907,24 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont q = 0.0; } else { + + Area = 0.0; + for (iDim=0; iDimnode[iPoint]->GetGradient_Primitive()[0]; - kGTdotn = 0; -// Xi = solver_container[FLOW_SOL]->GetTotal_MaxHeatFlux(); -// Xi = 1.0; + + kGTdotn = 0.0; for (iDim = 0; iDim < nDim; iDim++) kGTdotn += Thermal_Conductivity*GradT[iDim]*Normal[iDim]; - //q = - Xi * pnorm * pow(kGTdotn, pnorm-1.0); - q = -1.0; + + /*--- constant term to multiply max heat flux objective ---*/ + Xi = solver_container[FLOW_SOL]->GetTotal_HeatFlux(); // versions for max heat flux + Xi = pow(Xi, 1.0/pnorm-1.0)/pnorm; + /*--- Boundary condition value ---*/ + q = Xi * pnorm * pow(-kGTdotn, pnorm-1.0)*Area; } /*--- Strong BC enforcement of the energy equation ---*/ From f6753dcacf393b7b01aa9e493b966ac95110065c Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 23 Mar 2016 14:49:13 -0700 Subject: [PATCH 245/269] Modifications to bc_isothermal for total heat flux objective adjoint solution: work still needed for max heatflux objective --- SU2_CFD/src/solver_adjoint_mean.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 745b8ad9967..2b8acb3f438 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -5220,8 +5220,6 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Norm heat flux objective test ---*/ pnorm = 1.0; - if (config->GetKind_ObjFunc()==TOTAL_HEATFLUX) - pnorm = 1.0; if (config->GetKind_ObjFunc()==MAXIMUM_HEATFLUX) pnorm = 8.0; From 5b674fb358bb25c0a6a64a5946a4d42ca05edd03 Mon Sep 17 00:00:00 2001 From: hlkline Date: Wed, 23 Mar 2016 15:48:28 -0700 Subject: [PATCH 246/269] small clean-ups --- SU2_CFD/src/solver_adjoint_mean.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 2b8acb3f438..3ec1f750452 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -5221,7 +5221,7 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Norm heat flux objective test ---*/ pnorm = 1.0; if (config->GetKind_ObjFunc()==MAXIMUM_HEATFLUX) - pnorm = 8.0; + pnorm = 8.0; // Matches MaxNorm defined in solver_direct_mean. /*--- Set the gamma value ---*/ @@ -6907,22 +6907,21 @@ void CAdjNSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_cont else { Area = 0.0; - for (iDim=0; iDimnode[iPoint]->GetGradient_Primitive()[0]; - kGTdotn = 0.0; for (iDim = 0; iDim < nDim; iDim++) - kGTdotn += Thermal_Conductivity*GradT[iDim]*Normal[iDim]; - + kGTdotn += Cp * Laminar_Viscosity/Prandtl_Lam*GradT[iDim]*Normal[iDim]/Area; + // Cp * Viscosity/Prandtl_Lam matches term used in solver_direct_mean /*--- constant term to multiply max heat flux objective ---*/ Xi = solver_container[FLOW_SOL]->GetTotal_HeatFlux(); // versions for max heat flux Xi = pow(Xi, 1.0/pnorm-1.0)/pnorm; + /*--- Boundary condition value ---*/ - q = Xi * pnorm * pow(-kGTdotn, pnorm-1.0)*Area; + q = Xi * pnorm * pow(kGTdotn, pnorm-1.0)*Area; } /*--- Strong BC enforcement of the energy equation ---*/ From 1f163f9bc8bbdd17183bbcea5a6468e75ba953da Mon Sep 17 00:00:00 2001 From: demanosalvas Date: Fri, 25 Mar 2016 12:49:46 -0700 Subject: [PATCH 247/269] Added regression test for SU2_DEF using the RAE2822 and inviscid ONERA M6 --- TestCases/TestCase.py | 130 ++++++++++++++++++++++++++++++++- TestCases/serial_regression.py | 31 ++++++++ 2 files changed, 160 insertions(+), 1 deletion(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 0a6455a3d76..4071eeb1f73 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -521,8 +521,136 @@ def run_geo(self): os.chdir(workdir) return passed + + + def run_def(self): + + print '==================== Start Test: %s ===================='%self.tag + passed = True + exceed_tol = False + timed_out = False + iter_missing = True + start_solver = True + + # Assemble the shell command to run SU2 + logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] + command = "%s %s > %s" % (self.su2_exec, self.cfg_file,logfilename) + + # Run SU2 + workdir = os.getcwd() + os.chdir(self.cfg_dir) + print os.getcwd() + start = datetime.datetime.now() + process = subprocess.Popen(command, shell=True) # This line launches SU2 + + # check for timeout + while process.poll() is None: + time.sleep(0.1) + now = datetime.datetime.now() + running_time = (now - start).seconds + if running_time > self.timeout: + try: + process.kill() + os.system('killall %s' % self.su2_exec) # In case of parallel execution + except AttributeError: # popen.kill apparently fails on some versions of subprocess... the killall command should take care of things! + pass + timed_out = True + passed = False + + # Examine the output + f = open(logfilename,'r') + output = f.readlines() + delta_vals = [] + sim_vals = [] + if not timed_out: + start_solver = False + for line in output: + if not start_solver: # Don't bother parsing anything before -- Volumetric grid deformation --- + if line.find('Volumetric grid deformation') > -1: + start_solver=True + else: # Found the -- Volumetric grid deformation --- line; parse the input + raw_data = line.split() + try: + iter_number = int(raw_data[0]) + data = raw_data[len(raw_data)-1:] # Take the last column for comparison + except ValueError: + continue + except IndexError: + continue + + if iter_number == self.test_iter: # Found the iteration number we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print "Error in test_vals!" + passed = False + break + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + break + else: + iter_missing = True + + if not start_solver: + passed = False + + if iter_missing: + passed = False + + # Write the test results + #for j in output: + # print j + + if passed: + print "%s: PASSED"%self.tag + else: + print "%s: FAILED"%self.tag + print 'Output for the failed case' + subprocess.call(['cat', logfilename]) + + print 'execution command: %s'%command + + if timed_out: + print 'ERROR: Execution timed out. timeout=%d sec'%self.timeout + + if exceed_tol: + print 'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol + + if not start_solver: + print 'ERROR: The code was not able to get to the "Begin solver" section.' + + if iter_missing: + print 'ERROR: The iteration number %d could not be found.'%self.test_iter + + print 'test_iter=%d \n'%self.test_iter, + + print 'test_vals (stored): ', + for j in self.test_vals: + print '%e'%j, + print '\n', + + print 'sim_vals (computed): ', + for j in sim_vals: + print '%e'%j, + print '\n', + + print 'delta_vals: ', + for j in delta_vals: + print '%e'%j, + print '\n', + + print 'test duration: %.2f min'%(running_time/60.0) + print '==================== End Test: %s ====================\n'%self.tag + + os.chdir(workdir) + return passed + + - def adjust_iter(self): + def adjust_iter(self): # Read the cfg file workdir = os.getcwd() diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 0103bd1775b..16b6ef7e566 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -554,6 +554,37 @@ def main(): pass_list.append(naca0012_geo.run_geo()) test_list.append(naca0012_geo) + + ###################################### + ### RUN SU2_DEF TESTS ### + ###################################### + + # RAE2822 + rae2822_def = TestCase('rae2822_def') + rae2822_def.cfg_dir = "optimization_rans/steady_rae2822" + rae2822_def.cfg_file = "def_SA_RAE2822.cfg" + rae2822_def.test_iter = 100 + rae2822_def.test_vals = [8.06616e-14] #residual + rae2822_def.su2_exec = "SU2_DEF" + rae2822_def.timeout = 1600 + rae2822_def.tol = 1e-14 + + pass_list.append(rae2822_def.run_def()) + test_list.append(rae2822_def) + + # Inviscid ONERAM6 + oneram6_sa_def = TestCase('oneram6_sa_def') + oneram6_sa_def.cfg_dir = "optimization_euler/steady_oneram6" + oneram6_sa_def.cfg_file = "def_ONERAM6.cfg" + oneram6_sa_def.test_iter = 600 + oneram6_sa_def.test_vals = [3.46695e-13] #residual + oneram6_sa_def.su2_exec = "SU2_DEF" + oneram6_sa_def.timeout = 1600 + oneram6_sa_def.tol = 1e-13 + + pass_list.append(oneram6_sa_def.run_def()) + test_list.append(oneram6_sa_def) + ###################################### ### RUN PYTHON TESTS ### From b602e94bd11f3bef035fbeeeea8413a0b281be78 Mon Sep 17 00:00:00 2001 From: demanosalvas Date: Fri, 25 Mar 2016 13:07:23 -0700 Subject: [PATCH 248/269] FIxed an indentation error --- TestCases/TestCase.py | 301 +++++++------ .../steady_oneram6/def_ONERAM6.cfg | 411 ++++++++++++++++++ .../steady_rae2822/def_SA_RAE2822.cfg | 353 +++++++++++++++ 3 files changed, 913 insertions(+), 152 deletions(-) create mode 100644 TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg create mode 100644 TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 4071eeb1f73..27ab03a0db4 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -44,7 +44,7 @@ def __init__(self,tag_in): # Indicate if the test is unsteady self.unsteady = False - + # The test condition. These must be set after initialization self.test_iter = 1 self.test_vals = [] @@ -53,7 +53,7 @@ def __init__(self,tag_in): self.su2_exec = "SU2_CFD" self.timeout = 300 self.tol = 0.001 - + # Options for file-comparison tests self.reference_file = "of_grad.dat.ref" self.test_file = "of_grad.dat" @@ -181,21 +181,21 @@ def run_test(self): for j in delta_vals: print '%f,'%j, print '\n', - + print 'test duration: %.2f min'%(running_time/60.0) print '==================== End Test: %s ====================\n'%self.tag - + os.chdir(workdir) return passed - + def run_filediff(self): print '==================== Start Test: %s ===================='%self.tag passed = True timed_out = False - + # Adjust the number of iterations in the config file self.adjust_iter() - + # Assemble the shell command to run logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] command = "%s -f %s > %s" % (self.su2_exec, self.cfg_file, logfilename) @@ -206,7 +206,7 @@ def run_filediff(self): print os.getcwd() start = datetime.datetime.now() process = subprocess.Popen(command, shell=True) # This line launches SU2 - + # check for timeout while process.poll() is None: time.sleep(0.1) @@ -226,29 +226,29 @@ def run_filediff(self): # Compare files fromfile = self.reference_file tofile = self.test_file - + fromdate = time.ctime(os.stat(fromfile).st_mtime) todate = time.ctime(os.stat(tofile).st_mtime) fromlines = open(fromfile, 'U').readlines() tolines = open(tofile, 'U').readlines() - + diff = list(difflib.unified_diff(fromlines, tolines, fromfile, tofile, - fromdate, todate)) - - + fromdate, todate)) + + if (diff==[]): passed=True else: for line in diff: print line[:-1] passed=False - + else: passed = False - + print 'test duration: %.2f min'%(running_time/60.0) print '==================== End Test: %s ====================\n'%self.tag - + os.chdir(workdir) return passed @@ -373,10 +373,10 @@ def run_opt(self): for j in delta_vals: print '%f,'%j, print '\n', - + print 'test duration: %.2f min'%(running_time/60.0) print '==================== End Test: %s ====================\n'%self.tag - + os.chdir(workdir) return passed @@ -388,7 +388,7 @@ def run_geo(self): timed_out = False start_solver = True iter_missing = True - + found_thick = False found_area = False found_twist = False @@ -434,22 +434,22 @@ def run_geo(self): elif line.find('Section 2') > -1: # jump out of loop if we hit the next section break else: # Found the lines; parse the input - + if line.find('Maximum thickness') > -1: raw_data = line.split() data.append(raw_data[-1][:-1]) found_thick = True - + elif line.find('Area') > -1: raw_data = line.split() data.append(raw_data[-1][:-1]) found_area = True - + elif line.find('Twist angle') > -1: raw_data = line.split() data.append(raw_data[-1][:-1]) found_twist = True - + elif line.find('Chord') > -1: raw_data = line.split() data.append(raw_data[-1][:-1]) @@ -515,142 +515,139 @@ def run_geo(self): for j in delta_vals: print '%f,'%j, print '\n', - + print 'test duration: %.2f min'%(running_time/60.0) print '==================== End Test: %s ====================\n'%self.tag - + os.chdir(workdir) return passed - def run_def(self): - print '==================== Start Test: %s ===================='%self.tag - passed = True - exceed_tol = False - timed_out = False - iter_missing = True - start_solver = True - - # Assemble the shell command to run SU2 - logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] - command = "%s %s > %s" % (self.su2_exec, self.cfg_file,logfilename) - - # Run SU2 - workdir = os.getcwd() - os.chdir(self.cfg_dir) - print os.getcwd() - start = datetime.datetime.now() - process = subprocess.Popen(command, shell=True) # This line launches SU2 - - # check for timeout - while process.poll() is None: - time.sleep(0.1) - now = datetime.datetime.now() - running_time = (now - start).seconds - if running_time > self.timeout: - try: - process.kill() - os.system('killall %s' % self.su2_exec) # In case of parallel execution - except AttributeError: # popen.kill apparently fails on some versions of subprocess... the killall command should take care of things! - pass - timed_out = True - passed = False - - # Examine the output - f = open(logfilename,'r') - output = f.readlines() - delta_vals = [] - sim_vals = [] - if not timed_out: - start_solver = False - for line in output: - if not start_solver: # Don't bother parsing anything before -- Volumetric grid deformation --- - if line.find('Volumetric grid deformation') > -1: - start_solver=True - else: # Found the -- Volumetric grid deformation --- line; parse the input - raw_data = line.split() - try: - iter_number = int(raw_data[0]) - data = raw_data[len(raw_data)-1:] # Take the last column for comparison - except ValueError: - continue - except IndexError: - continue - - if iter_number == self.test_iter: # Found the iteration number we're checking for - iter_missing = False - if not len(self.test_vals)==len(data): # something went wrong... probably bad input - print "Error in test_vals!" - passed = False - break - for j in range(len(data)): - sim_vals.append( float(data[j]) ) - delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) - if delta_vals[j] > self.tol: - exceed_tol = True - passed = False - break - else: - iter_missing = True - - if not start_solver: - passed = False - - if iter_missing: - passed = False - - # Write the test results - #for j in output: - # print j - - if passed: - print "%s: PASSED"%self.tag - else: - print "%s: FAILED"%self.tag - print 'Output for the failed case' - subprocess.call(['cat', logfilename]) - - print 'execution command: %s'%command - - if timed_out: - print 'ERROR: Execution timed out. timeout=%d sec'%self.timeout - - if exceed_tol: - print 'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol - - if not start_solver: - print 'ERROR: The code was not able to get to the "Begin solver" section.' - - if iter_missing: - print 'ERROR: The iteration number %d could not be found.'%self.test_iter - - print 'test_iter=%d \n'%self.test_iter, - - print 'test_vals (stored): ', - for j in self.test_vals: - print '%e'%j, - print '\n', - - print 'sim_vals (computed): ', - for j in sim_vals: - print '%e'%j, - print '\n', - - print 'delta_vals: ', - for j in delta_vals: - print '%e'%j, - print '\n', - - print 'test duration: %.2f min'%(running_time/60.0) - print '==================== End Test: %s ====================\n'%self.tag - - os.chdir(workdir) - return passed - - - - def adjust_iter(self): + print '==================== Start Test: %s ===================='%self.tag + passed = True + exceed_tol = False + timed_out = False + iter_missing = True + start_solver = True + + # Assemble the shell command to run SU2 + logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] + command = "%s %s > %s" % (self.su2_exec, self.cfg_file,logfilename) + + # Run SU2 + workdir = os.getcwd() + os.chdir(self.cfg_dir) + print os.getcwd() + start = datetime.datetime.now() + process = subprocess.Popen(command, shell=True) # This line launches SU2 + + # check for timeout + while process.poll() is None: + time.sleep(0.1) + now = datetime.datetime.now() + running_time = (now - start).seconds + if running_time > self.timeout: + try: + process.kill() + os.system('killall %s' % self.su2_exec) # In case of parallel execution + except AttributeError: # popen.kill apparently fails on some versions of subprocess... the killall command should take care of things! + pass + timed_out = True + passed = False + + # Examine the output + f = open(logfilename,'r') + output = f.readlines() + delta_vals = [] + sim_vals = [] + if not timed_out: + start_solver = False + for line in output: + if not start_solver: # Don't bother parsing anything before -- Volumetric grid deformation --- + if line.find('Volumetric grid deformation') > -1: + start_solver=True + else: # Found the -- Volumetric grid deformation --- line; parse the input + raw_data = line.split() + try: + iter_number = int(raw_data[0]) + data = raw_data[len(raw_data)-1:] # Take the last column for comparison + except ValueError: + continue + except IndexError: + continue + + if iter_number == self.test_iter: # Found the iteration number we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print "Error in test_vals!" + passed = False + break + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + break + else: + iter_missing = True + + if not start_solver: + passed = False + + if iter_missing: + passed = False + + # Write the test results + #for j in output: + # print j + + if passed: + print "%s: PASSED"%self.tag + else: + print "%s: FAILED"%self.tag + print 'Output for the failed case' + subprocess.call(['cat', logfilename]) + + print 'execution command: %s'%command + + if timed_out: + print 'ERROR: Execution timed out. timeout=%d sec'%self.timeout + + if exceed_tol: + print 'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol + + if not start_solver: + print 'ERROR: The code was not able to get to the "Begin solver" section.' + + if iter_missing: + print 'ERROR: The iteration number %d could not be found.'%self.test_iter + + print 'test_iter=%d \n'%self.test_iter, + + print 'test_vals (stored): ', + for j in self.test_vals: + print '%e'%j, + print '\n', + + print 'sim_vals (computed): ', + for j in sim_vals: + print '%e'%j, + print '\n', + + print 'delta_vals: ', + for j in delta_vals: + print '%e'%j, + print '\n', + + print 'test duration: %.2f min'%(running_time/60.0) + print '==================== End Test: %s ====================\n'%self.tag + + os.chdir(workdir) + return passed + + def adjust_iter(self): # Read the cfg file workdir = os.getcwd() diff --git a/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg b/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg new file mode 100644 index 00000000000..d7e5d968909 --- /dev/null +++ b/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg @@ -0,0 +1,411 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Optimization case for the ONERA M6 wing in inviscid flow % +% Author: Francisco Palacios % +% Institution: Stanford University % +% Date: 06.16.2014 % +% File Version 4.1.0 "Cardinal" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% POISSON_EQUATION) +PHYSICAL_PROBLEM= EULER +% +% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) +MATH_PROBLEM= DIRECT +% +% Restart solution (NO, YES) +RESTART_SOL= YES + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.8395 +% +% Angle of attack (degrees) +AoA= 3.06 +% +% Free-stream pressure (101325.0 N/m^2 by default, only for Euler equations) +FREESTREAM_PRESSURE= 101325.0 +% +% Free-stream temperature (288.15 K by default) +FREESTREAM_TEMPERATURE= 288.15 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% + +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.2015 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference length for pitching, rolling, and yawing non-dimensional moment +REF_LENGTH_MOMENT= 0.64607 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 0 +% +% Flow non-dimensionalization (DIMENSIONAL, FREESTREAM_PRESS_EQ_ONE, +% FREESTREAM_VEL_EQ_MACH, FREESTREAM_VEL_EQ_ONE) +REF_DIMENSIONALIZATION= FREESTREAM_PRESS_EQ_ONE + +% ----------------------- BOUNDARY CONDITION DEFINITION -----------------------% +% +% Marker of the Euler boundary (0 implies no marker) +MARKER_EULER= ( UPPER_SIDE, LOWER_SIDE, TIP ) +% +% Marker of the far field (0 implies no marker) +MARKER_FAR= ( XNORMAL_FACES, ZNORMAL_FACES, YNORMAL_FACE ) +% +% Marker of symmetry boundary (0 implies no marker) +MARKER_SYM= ( SYMMETRY_FACE ) +% +% Marker of the surface which is going to be plotted or designed +MARKER_PLOTTING= ( UPPER_SIDE, LOWER_SIDE, TIP ) +% +% Marker of the surface where the functional (Cd, Cl, etc.) will be evaluated +MARKER_MONITORING= ( UPPER_SIDE, LOWER_SIDE, TIP ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +% +% Objective function in optimization problem (DRAG, LIFT, SIDEFORCE, MOMENT_X, +% MOMENT_Y, MOMENT_Z, EFFICIENCY, +% EQUIVALENT_AREA, NEARFIELD_PRESSURE, +% FORCE_X, FORCE_Y, FORCE_Z, THRUST, +% TORQUE, FREE_SURFACE, TOTAL_HEATFLUX, +% MAXIMUM_HEATFLUX, INVERSE_DESIGN_PRESSURE, +% INVERSE_DESIGN_HEATFLUX) +OBJECTIVE_FUNCTION= DRAG +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 10.0 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= NO +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, +% CFL max value ) +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +% +% Runge-Kutta alpha coefficients +RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) +% +% Number of total iterations +EXT_ITER= 2000 + +% ----------------------- SLOPE LIMITER DEFINITION ----------------------------% +% +% Reference element length for computing the slope and sharp edges limiters. +REF_ELEM_LENGTH= 0.1 +% +% Coefficient for the limiter +LIMITER_COEFF= 0.3 +% +% Coefficient for the sharp edges limiter +SHARP_EDGES_COEFF= 1.0 +% +% Reference coefficient (sensitivity) for detecting sharp edges. +REF_SHARP_EDGES= 3.0 +% +% Remove sharp edges from the sensitivity evaluation (NO, YES) +SENS_REMOVE_SHARP= YES + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +% Linear solver for the implicit formulation (BCGSTAB, FGMRES) +LINEAR_SOLVER= FGMRES +% +% Preconditioner of the Krylov linear solver (JACOBI, LINELET, LU_SGS) +LINEAR_SOLVER_PREC= LU_SGS +% +% Min error of the linear solver for the implicit formulation +LINEAR_SOLVER_ERROR= 1E-6 +% +% Max number of iterations of the linear solver for the implicit formulation +LINEAR_SOLVER_ITER= 5 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +% Multi-Grid Levels (0 = no multi-grid) +MGLEVEL= 2 +% +% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) +MGCYCLE= V_CYCLE +% +% Multi-Grid PreSmoothing Level +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +% +% Multi-Grid PostSmoothing Level +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +% +% Jacobi implicit smoothing of the correction +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +% +% Damping factor for the residual restriction +MG_DAMP_RESTRICTION= 0.9 +% +% Damping factor for the correction prolongation +MG_DAMP_PROLONGATION= 0.9 + +% --------------------- FLOW NUMERICAL METHOD DEFINITION ----------------------% +% Convective numerical method: (JST, LAX-FRIEDRICH, ROE-1ST_ORDER, +% ROE-2ND_ORDER) +CONV_NUM_METHOD_FLOW= JST +% +% Slope limiter: (VENKATAKRISHNAN) +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +% +% 1st, 2nd and 4th order artificial dissipation coefficients +AD_COEFF_FLOW= ( 0.15, 0.5, 0.04 ) +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% ----------------- ADJOINT-FLOW NUMERICAL METHOD DEFINITION ------------------% +% +% Convective numerical method: (JST, LAX-FRIEDRICH, ROE-1ST_ORDER, +% ROE-2ND_ORDER) +CONV_NUM_METHOD_ADJFLOW= JST +% +% Slope limiter: (VENKATAKRISHNAN, SHARP_EDGES) +SLOPE_LIMITER_ADJFLOW= VENKATAKRISHNAN +% +% 1st, 2nd, and 4th order artificial dissipation coefficients +AD_COEFF_ADJFLOW= ( 0.15, 0.5, 0.01 ) +% +% Reduction factor of the CFL coefficient in the adjoint problem +CFL_REDUCTION_ADJFLOW= 0.25 +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT) +TIME_DISCRE_ADJFLOW= EULER_IMPLICIT + +% ----------------------- GEOMETRY EVALUATION PARAMETERS ----------------------% +% +% Geometrical evaluation mode (FUNCTION, GRADIENT) +GEO_MODE= FUNCTION +% +% Marker(s) of the surface where geometrical based func. will be evaluated +GEO_MARKER= ( UPPER_SIDE, LOWER_SIDE, TIP ) +% +% Number of airfoil sections +GEO_NUMBER_SECTIONS= 5 +% +% Orientation of airfoil sections (X_AXIS, Y_AXIS, Z_AXIS) +GEO_ORIENTATION_SECTIONS= Y_AXIS +% +% Location (coordinate) of the airfoil sections (MinValue, MaxValue) +GEO_LOCATION_SECTIONS= (0.0806, 1.1284) +% +% Plot loads and Cp distributions on each airfoil section +GEO_PLOT_SECTIONS= NO +% +% Number of section cuts to make when calculating internal volume +GEO_VOLUME_SECTIONS= 101 + +% --------------------------- CONVERGENCE PARAMETERS --------------------------& +% +% Convergence criteria (CAUCHY, RESIDUAL) +CONV_CRITERIA= RESIDUAL +% +% Residual reduction (order of magnitude with respect to the initial value) +RESIDUAL_REDUCTION= 5 +% +% Min value of the residual (log10 of the residual) +RESIDUAL_MINVAL= -6.5 +% +% Start convergence criteria at iteration number +STARTCONV_ITER= 100 +% +% Number of elements to apply the criteria +CAUCHY_ELEMS= 100 +% +% Epsilon to control the series convergence +CAUCHY_EPS= 1E-10 +% +% Direct function to apply the convergence criteria (LIFT, DRAG, NEARFIELD_PRESS) +CAUCHY_FUNC_FLOW= DRAG +% +% Adjoint function to apply the convergence criteria (SENS_GEOMETRY, SENS_MACH) +CAUCHY_FUNC_ADJFLOW= SENS_GEOMETRY + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= mesh_ONERAM6_inv_FFD.su2 +% +% Mesh output file +MESH_OUT_FILENAME= mesh_out.su2 +% +% Restart flow input file +SOLUTION_FLOW_FILENAME= solution_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= solution_adj.dat +% +% Mesh input file format (SU2) +MESH_FORMAT= SU2 +% +% Output file format (PARAVIEW, TECPLOT) +OUTPUT_FORMAT= TECPLOT +% +% Output file convergence history +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FLOW_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FLOW_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output Objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FLOW_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Writing solution file frequency +WRT_SOL_FREQ= 500 +% +% Writing solution file frequency for physical time steps (dual time) +WRT_SOL_FREQ_DUALTIME= 1 +% +% Writing convergence history frequency +WRT_CON_FREQ= 1 +% +% Writing convergence history frequency (dual time, only written to screen) +WRT_CON_FREQ_DUALTIME= 10 +% +% Output rind layers in the solution files +WRT_HALO= NO +% -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------% +% +% Tolerance of the Free-Form Deformation point inversion +FFD_TOLERANCE= 1E-10 +% +% Maximum number of iterations in the Free-Form Deformation point inversion +FFD_ITERATIONS= 500 +% +% FFD box definition: 3D case (FFD_BoxTag, X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, X4, Y4, Z4, +% X5, Y5, Z5, X6, Y6, Z6, X7, Y7, Z7, X8, Y8, Z8) +% 2D case (FFD_BoxTag, X1, Y1, 0.0, X2, Y2, 0.0, X3, Y3, 0.0, X4, Y4, 0.0, +% 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) +FFD_DEFINITION= (WING,-0.0403, 0, -0.04836,0.8463,0, -0.04836,1.209,1.2896, -0.04836,0.6851,1.2896, -0.04836,-0.0403,0, 0.04836,0.8463,0, 0.04836,1.209,1.2896, 0.04836,0.6851,1.2896, 0.04836) +% +% FFD box degree: 3D case (x_degree, y_degree, z_degree) +% 2D case (x_degree, y_degree, 0) +FFD_DEGREE= (10, 8, 1) +% +% Surface continuity at the intersection with the FFD (1ST_DERIVATIVE, 2ND_DERIVATIVE) +FFD_CONTINUITY= 2ND_DERIVATIVE +% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% +% +% Kind of deformation (FFD_SETTING, FFD_CONTROL_POINT_2D, FFD_CAMBER_2D, FFD_THICKNESS_2D, +% HICKS_HENNE, COSINE_BUMP, PARABOLIC, +% NACA_4DIGITS, DISPLACEMENT, ROTATION, FFD_CONTROL_POINT, +% FFD_DIHEDRAL_ANGLE, FFD_TWIST_ANGLE, FFD_ROTATION, +% FFD_CAMBER, FFD_THICKNESS, FFD_CONTROL_SURFACE, SURFACE_FILE, AIRFOIL) +DV_KIND= FFD_CONTROL_POINT +% +% Marker of the surface in which we are going apply the shape deformation +DV_MARKER= ( UPPER_SIDE, LOWER_SIDE, TIP ) +% +% Parameters of the shape deformation +% - FFD_CONTROL_POINT ( FFD_BoxTag, i_Ind, j_Ind, k_Ind, x_Disp, y_Disp, z_Disp ) +% - FFD_DIHEDRAL_ANGLE ( FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_TWIST_ANGLE ( FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_ROTATION ( FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_CAMBER ( FFD_BoxTag, i_Ind, j_Ind ) +% - FFD_THICKNESS ( FFD_BoxTag, i_Ind, j_Ind ) +% - FFD_VOLUME ( FFD_BoxTag, i_Ind, j_Ind ) +DV_PARAM= ( WING, 4, 4, 1, 0.0, 0.0, 1.0 ) +% +% New value of the shape deformation +DV_VALUE= 0.01 + +% ------------------------ GRID DEFORMATION PARAMETERS ------------------------% +% +% Linear solver or smoother for implicit formulations (FGMRES, RESTARTED_FGMRES, BCGSTAB) +DEFORM_LINEAR_SOLVER= FGMRES +% +% Number of smoothing iterations for mesh deformation +DEFORM_LINEAR_ITER= 1000 +% +% Number of nonlinear deformation iterations (surface deformation increments) +DEFORM_NONLINEAR_ITER= 1 +% +% Print the residuals during mesh deformation to the console (YES, NO) +DEFORM_CONSOLE_OUTPUT= YES +% +% Factor to multiply smallest cell volume for deform tolerance (0.001 default) +DEFORM_TOL_FACTOR = 0.001 +% +% Type of element stiffness imposed for FEA mesh deformation (INVERSE_VOLUME, +% WALL_DISTANCE, CONSTANT_STIFFNESS) +DEFORM_STIFFNESS_TYPE= INVERSE_VOLUME +% +% Visualize the deformation (NO, YES) +VISUALIZE_DEFORMATION= YES + +% --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% +% Available flow based objective functions or constraint functions +% DRAG, LIFT, SIDEFORCE, EFFICIENCY, +% FORCE_X, FORCE_Y, FORCE_Z, +% MOMENT_X, MOMENT_Y, MOMENT_Z, +% THRUST, TORQUE, FIGURE_OF_MERIT, +% EQUIVALENT_AREA, NEARFIELD_PRESSURE, +% FREE_SURFACE +% +% Available geometrical based objective functions or constraint functions +% MAX_THICKNESS, 1/4_THICKNESS, 1/2_THICKNESS, 3/4_THICKNESS, AREA, AOA, CHORD, +% MAX_THICKNESS_SEC1, MAX_THICKNESS_SEC2, MAX_THICKNESS_SEC3, MAX_THICKNESS_SEC4, MAX_THICKNESS_SEC5, +% 1/4_THICKNESS_SEC1, 1/4_THICKNESS_SEC2, 1/4_THICKNESS_SEC3, 1/4_THICKNESS_SEC4, 1/4_THICKNESS_SEC5, +% 1/2_THICKNESS_SEC1, 1/2_THICKNESS_SEC2, 1/2_THICKNESS_SEC3, 1/2_THICKNESS_SEC4, 1/2_THICKNESS_SEC5, +% 3/4_THICKNESS_SEC1, 3/4_THICKNESS_SEC2, 3/4_THICKNESS_SEC3, 3/4_THICKNESS_SEC4, 3/4_THICKNESS_SEC5, +% AREA_SEC1, AREA_SEC2, AREA_SEC3, AREA_SEC4, AREA_SEC5, +% AOA_SEC1, AOA_SEC2, AOA_SEC3, AOA_SEC4, AOA_SEC5, +% CHORD_SEC1, CHORD_SEC2, CHORD_SEC3, CHORD_SEC4, CHORD_SEC5 +% +% Available design variables +% HICKS_HENNE ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) +% COSINE_BUMP ( 2, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc, x_Size ) +% SPHERICAL ( 3, Scale | Mark. List | ControlPoint_Index, Theta_Disp, R_Disp ) +% NACA_4DIGITS ( 4, Scale | Mark. List | 1st digit, 2nd digit, 3rd and 4th digit ) +% DISPLACEMENT ( 5, Scale | Mark. List | x_Disp, y_Disp, z_Disp ) +% ROTATION ( 6, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn ) +% FFD_CONTROL_POINT ( 7, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, k_Ind, x_Mov, y_Mov, z_Mov ) +% FFD_DIHEDRAL_ANGLE ( 8, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% FFD_TWIST_ANGLE ( 9, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% FFD_ROTATION ( 10, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% FFD_CAMBER ( 11, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% FFD_THICKNESS ( 12, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% FFD_VOLUME ( 13, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% FOURIER ( 14, Scale | Mark. List | Lower(0)/Upper(1) side, index, cos(0)/sin(1) ) +% +% Optimization objective function with scaling factor +% ex= Objective * Scale +OPT_OBJECTIVE= DRAG * 0.1 +% +% Optimization constraint functions with scaling factors, separated by semicolons +% ex= (Objective = Value ) * Scale, use '>','<','=' +OPT_CONSTRAINT= NONE +% +% Optimization design variables, separated by semicolons +DEFINITION_DV= ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 1, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 2, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 3, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 4, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 5, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 6, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 7, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 8, 0, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 1, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 2, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 3, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 4, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 5, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 6, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 7, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 0, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 1, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 2, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 3, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 4, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 5, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 6, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 7, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 8, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 9, 8, 1, 0.0, 0.0, 1.0 ); ( 7, 1.0 | UPPER_SIDE, LOWER_SIDE, TIP | WING, 10, 8, 1, 0.0, 0.0, 1.0 ) diff --git a/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg new file mode 100644 index 00000000000..a65f196a554 --- /dev/null +++ b/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg @@ -0,0 +1,353 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Transonic simulation RAE2822 (RANS) % +% Author: Francisco Palacios % +% Institution: Stanford University % +% Date: 5/15/2013 % +% File Version 4.1.0 "Cardinal" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +% Physical governing equations (EULER, NAVIER_STOKES, +% WAVE_EQUATION, HEAT_EQUATION, LINEAR_ELASTICITY, +% POISSON_EQUATION) +PHYSICAL_PROBLEM= NAVIER_STOKES +% +% Specify turbulent model (NONE, SA, SA_NEG, SST) +KIND_TURB_MODEL= SA +% +% Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) +MATH_PROBLEM= DIRECT +% +% Restart solution (NO, YES) +RESTART_SOL= NO + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +% Mach number (non-dimensional, based on the free-stream values) +MACH_NUMBER= 0.729 +% +% Angle of attack (degrees, only for compressible flows) +AoA= 2.31 +% +% Free-stream temperature (288.15 K by default) +FREESTREAM_TEMPERATURE= 288.15 +% +% Reynolds number (non-dimensional, based on the free-stream values) +REYNOLDS_NUMBER= 6.5E6 +% +% Reynolds length (1 m by default) +REYNOLDS_LENGTH= 1.0 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +% Reference origin for moment computation +REF_ORIGIN_MOMENT_X = 0.25 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +% +% Reference length for pitching, rolling, and yawing non-dimensional moment +REF_LENGTH_MOMENT= 1.0 +% +% Reference area for force coefficients (0 implies automatic calculation) +REF_AREA= 1.0 +% +% Reference element length for computing the slope limiter epsilon +REF_ELEM_LENGTH= 0.1 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +% Navier-Stokes wall boundary marker(s) (NONE = no marker) +MARKER_HEATFLUX= ( AIRFOIL, 0.0 ) +% +% Farfield boundary marker(s) (NONE = no marker) +MARKER_FAR= ( FARFIELD ) +% +% Marker(s) of the surface to be plotted or designed +MARKER_PLOTTING= ( AIRFOIL ) +% +% Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated +MARKER_MONITORING= ( AIRFOIL ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +% Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +% +% Courant-Friedrichs-Lewy condition of the finest grid +CFL_NUMBER= 2.5 +% +% Adaptive CFL number (NO, YES) +CFL_ADAPT= NO +% +% Parameters of the adaptive CFL number (factor down, factor up, CFL min value, +% CFL max value ) +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +% +% Number of total iterations +EXT_ITER= 99999 +% +% Linear solver for the implicit formulation (BCGSTAB, FGMRES) +LINEAR_SOLVER= BCGSTAB +% +% Min error of the linear solver for the implicit formulation +LINEAR_SOLVER_ERROR= 1E-6 +% +% Max number of iterations of the linear solver for the implicit formulation +LINEAR_SOLVER_ITER= 20 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +% Multi-Grid Levels (0 = no multi-grid) +MGLEVEL= 3 +% +% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) +MGCYCLE= W_CYCLE +% +% Multi-grid pre-smoothing level +MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) +% +% Multi-grid post-smoothing level +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +% +% Jacobi implicit smoothing of the correction +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +% +% Damping factor for the residual restriction +MG_DAMP_RESTRICTION= 0.95 +% +% Damping factor for the correction prolongation +MG_DAMP_PROLONGATION= 0.95 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, +% TURKEL_PREC, MSW) +CONV_NUM_METHOD_FLOW= JST +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% +SPATIAL_ORDER_FLOW= 2ND_ORDER_LIMITER +% +% Slope limiter (VENKATAKRISHNAN, MINMOD) +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +% +% Coefficient for the limiter (smooth regions) +LIMITER_COEFF= 0.3 +% +% 1st, 2nd and 4th order artificial dissipation coefficients +AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 ) +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +% Convective numerical method (SCALAR_UPWIND) +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% +SPATIAL_ORDER_TURB= 1ST_ORDER +% +% Time discretization (EULER_IMPLICIT) +TIME_DISCRE_TURB= EULER_IMPLICIT + +% ---------------- ADJOINT-FLOW NUMERICAL METHOD DEFINITION -------------------% +% Adjoint problem boundary condition (DRAG, LIFT, SIDEFORCE, MOMENT_X, +% MOMENT_Y, MOMENT_Z, EFFICIENCY, +% EQUIVALENT_AREA, NEARFIELD_PRESSURE, +% FORCE_X, FORCE_Y, FORCE_Z, THRUST, +% TORQUE, FREE_SURFACE, TOTAL_HEAT, +% MAXIMUM_HEATFLUX, INVERSE_DESIGN_PRESSURE, +% INVERSE_DESIGN_HEATFLUX) +OBJECTIVE_FUNCTION= DRAG +% +% Convective numerical method (JST, LAX-FRIEDRICH, ROE) +CONV_NUM_METHOD_ADJFLOW= JST +% +% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER) +% +SPATIAL_ORDER_ADJFLOW= 2ND_ORDER +% +% Slope limiter (VENKATAKRISHNAN, SHARP_EDGES) +SLOPE_LIMITER_ADJFLOW= VENKATAKRISHNAN +% +% Coefficient for the sharp edges limiter +SHARP_EDGES_COEFF= 3.0 +% +% 1st, 2nd, and 4th order artificial dissipation coefficients +AD_COEFF_ADJFLOW= ( 0.15, 0.0, 0.01 ) +% +% Reduction factor of the CFL coefficient in the adjoint problem +CFL_REDUCTION_ADJFLOW= 0.75 +% +% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT) +TIME_DISCRE_ADJFLOW= EULER_IMPLICIT +% +% Adjoint frozen viscosity (NO, YES) +FROZEN_VISC= YES + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +% Convergence criteria (CAUCHY, RESIDUAL) +% +CONV_CRITERIA= RESIDUAL +% +% Residual reduction (order of magnitude with respect to the initial value) +RESIDUAL_REDUCTION= 6 +% +% Min value of the residual (log10 of the residual) +RESIDUAL_MINVAL= -8 +% +% Start convergence criteria at iteration number +STARTCONV_ITER= 10 +% +% Number of elements to apply the criteria +CAUCHY_ELEMS= 100 +% +% Epsilon to control the series convergence +CAUCHY_EPS= 1E-6 +% +% Function to apply the criteria (LIFT, DRAG, NEARFIELD_PRESS, SENS_GEOMETRY, +% SENS_MACH, DELTA_LIFT, DELTA_DRAG) +CAUCHY_FUNC_FLOW= DRAG + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +% Mesh input file +MESH_FILENAME= mesh_RAE2822_turb.su2 +% +% Mesh input file format (SU2, CGNS, NETCDF_ASCII) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= mesh_out.su2 +% +% Restart flow input file +SOLUTION_FLOW_FILENAME= solution_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= solution_adj.dat +% +% Output file format (PARAVIEW, TECPLOT, STL) +OUTPUT_FORMAT= TECPLOT +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file restart flow +RESTART_FLOW_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FLOW_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FLOW_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Writing solution file frequency +WRT_SOL_FREQ= 250 +% +% Writing convergence history frequency +WRT_CON_FREQ= 1 + +% ------------------------ DESIGN VARIABLE PARAMETERS ------------------------% +% +% Kind of deformation (FFD_SETTING, HICKS_HENNE, PARABOLIC, NACA_4DIGITS, +% DISPLACEMENT, ROTATION, FFD_CONTROL_POINT, +% FFD_DIHEDRAL_ANGLE, FFD_TWIST_ANGLE, +% FFD_ROTATION, FFD_CAMBER, FFD_THICKNESS, FFD_VOLUME +% SURFACE_FILE) +DV_KIND= HICKS_HENNE +% +% Marker of the surface to which we are going apply the shape deformation +DV_MARKER= ( AIRFOIL ) +% +% Parameters of the shape deformation +% - HICKS_HENNE ( Lower Surface (0)/Upper Surface (1)/Only one Surface (2), x_Loc ) +% - NACA_4DIGITS ( 1st digit, 2nd digit, 3rd and 4th digit ) +% - PARABOLIC ( Center, Thickness ) +% - DISPLACEMENT ( x_Disp, y_Disp, z_Disp ) +% - ROTATION ( x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - OBSTACLE ( Center, Bump size ) +% - FFD_CONTROL_POINT ( FFD_BoxTag ID, i_Ind, j_Ind, k_Ind, x_Disp, y_Disp, z_Disp ) +% - FFD_DIHEDRAL_ANGLE ( FFD_BoxTag ID, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_TWIST_ANGLE ( FFD_BoxTag ID, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_ROTATION ( FFD_BoxTag ID, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_CAMBER ( FFD_BoxTag ID, i_Ind, j_Ind ) +% - FFD_THICKNESS ( FFD_BoxTag ID, i_Ind, j_Ind ) +% - FFD_VOLUME ( FFD_BoxTag ID, i_Ind, j_Ind ) +DV_PARAM= ( 1, 0.5 ) +% +% New value of the shape deformation +DV_VALUE= 0.05 +% +% ------------------------ GRID DEFORMATION PARAMETERS ------------------------% +% +% Linear solver or smoother for implicit formulations (FGMRES, RESTARTED_FGMRES, BCGSTAB) +DEFORM_LINEAR_SOLVER= FGMRES +% +% Number of smoothing iterations for mesh deformation +DEFORM_LINEAR_ITER= 500 +% +% Number of nonlinear deformation iterations (surface deformation increments) +DEFORM_NONLINEAR_ITER= 1 +% +% Print the residuals during mesh deformation to the console (YES, NO) +DEFORM_CONSOLE_OUTPUT= YES +% +% Factor to multiply smallest cell volume for deform tolerance (0.001 default) +DEFORM_TOL_FACTOR = 0.0001 +% +% Type of element stiffness imposed for FEA mesh deformation (INVERSE_VOLUME, +% WALL_DISTANCE, CONSTANT_STIFFNESS) +DEFORM_STIFFNESS_TYPE= INVERSE_VOLUME +% +% Visualize the deformation (NO, YES) +VISUALIZE_DEFORMATION= YES + + + +% --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% +% Available Objective functions +% DRAG, LIFT, SIDEFORCE, PRESSURE, FORCE_X, FORCE_Y, +% FORCE_Z, MOMENT_X, MOMENT_Y, MOMENT_Z, EFFICIENCY, +% EQUIVALENT_AREA, THRUST, TORQUE, FREESURFACE + +% Optimization objective function with optional scaling factor +% ex= Objective * Scale +OPT_OBJECTIVE= DRAG * 0.001 + +% Optimization constraint functions with scaling factors, separated by semicolons +% ex= (Objective = Value ) * Scale, use '>','<','=' +OPT_CONSTRAINT= NONE + +% List of design variables (Design variables are separated by semicolons) +% - HICKS_HENNE ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) +% - NACA_4DIGITS ( 4, Scale | Mark. List | 1st digit, 2nd digit, 3rd and 4th digit ) +% - DISPLACEMENT ( 5, Scale | Mark. List | x_Disp, y_Disp, z_Disp ) +% - ROTATION ( 6, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn ) +% - FFD_CONTROL_POINT ( 7, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, k_Ind, x_Mov, y_Mov, z_Mov ) +% - FFD_DIHEDRAL_ANGLE ( 8, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_TWIST_ANGLE ( 9, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_ROTATION ( 10, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_CAMBER ( 11, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% - FFD_THICKNESS ( 12, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +% - FFD_VOLUME ( 13, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) +DEFINITION_DV= ( 1, 1.0 | AIRFOIL | 0, 0.05 ); ( 1, 1.0 | AIRFOIL | 0, 0.10 ); ( 1, 1.0 | AIRFOIL | 0, 0.15 ); ( 1, 1.0 | AIRFOIL | 0, 0.20 ); ( 1, 1.0 | AIRFOIL | 0, 0.25 ); ( 1, 1.0 | AIRFOIL | 0, 0.30 ); ( 1, 1.0 | AIRFOIL | 0, 0.35 ); ( 1, 1.0 | AIRFOIL | 0, 0.40 ); ( 1, 1.0 | AIRFOIL | 0, 0.45 ); ( 1, 1.0 | AIRFOIL | 0, 0.50 ); ( 1, 1.0 | AIRFOIL | 0, 0.55 ); ( 1, 1.0 | AIRFOIL | 0, 0.60 ); ( 1, 1.0 | AIRFOIL | 0, 0.65 ); ( 1, 1.0 | AIRFOIL | 0, 0.70 ); ( 1, 1.0 | AIRFOIL | 0, 0.75 ); ( 1, 1.0 | AIRFOIL | 0, 0.80 ); ( 1, 1.0 | AIRFOIL | 0, 0.85 ); ( 1, 1.0 | AIRFOIL | 0, 0.90 ); ( 1, 1.0 | AIRFOIL | 0, 0.95 ); ( 1, 1.0 | AIRFOIL | 1, 0.05 ); ( 1, 1.0 | AIRFOIL | 1, 0.10 ); ( 1, 1.0 | AIRFOIL | 1, 0.15 ); ( 1, 1.0 | AIRFOIL | 1, 0.20 ); ( 1, 1.0 | AIRFOIL | 1, 0.25 ); ( 1, 1.0 | AIRFOIL | 1, 0.30 ); ( 1, 1.0 | AIRFOIL | 1, 0.35 ); ( 1, 1.0 | AIRFOIL | 1, 0.40 ); ( 1, 1.0 | AIRFOIL | 1, 0.45 ); ( 1, 1.0 | AIRFOIL | 1, 0.50 ); ( 1, 1.0 | AIRFOIL | 1, 0.55 ); ( 1, 1.0 | AIRFOIL | 1, 0.60 ); ( 1, 1.0 | AIRFOIL | 1, 0.65 ); ( 1, 1.0 | AIRFOIL | 1, 0.70 ); ( 1, 1.0 | AIRFOIL | 1, 0.75 ); ( 1, 1.0 | AIRFOIL | 1, 0.80 ); ( 1, 1.0 | AIRFOIL | 1, 0.85 ); ( 1, 1.0 | AIRFOIL | 1, 0.90 ); ( 1, 1.0 | AIRFOIL | 1, 0.95 ) + From e250b006e75e78c97c4fbe4e08d2a2d5f7baff50 Mon Sep 17 00:00:00 2001 From: demanosalvas Date: Mon, 28 Mar 2016 23:35:09 -0700 Subject: [PATCH 249/269] Fixed indentation --- TestCases/TestCase.py | 103 ++++++++++++------------ TestCases/euler/channel/inv_channel.cfg | 2 +- TestCases/serial_regression.py | 7 +- 3 files changed, 56 insertions(+), 56 deletions(-) diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 27ab03a0db4..f5b2e09e4c1 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -232,8 +232,7 @@ def run_filediff(self): fromlines = open(fromfile, 'U').readlines() tolines = open(tofile, 'U').readlines() - diff = list(difflib.unified_diff(fromlines, tolines, fromfile, tofile, - fromdate, todate)) + diff = list(difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate)) if (diff==[]): @@ -523,25 +522,25 @@ def run_geo(self): return passed def run_def(self): - + print '==================== Start Test: %s ===================='%self.tag passed = True exceed_tol = False timed_out = False iter_missing = True start_solver = True - + # Assemble the shell command to run SU2 logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0] command = "%s %s > %s" % (self.su2_exec, self.cfg_file,logfilename) - + # Run SU2 workdir = os.getcwd() os.chdir(self.cfg_dir) print os.getcwd() start = datetime.datetime.now() process = subprocess.Popen(command, shell=True) # This line launches SU2 - + # check for timeout while process.poll() is None: time.sleep(0.1) @@ -555,7 +554,7 @@ def run_def(self): pass timed_out = True passed = False - + # Examine the output f = open(logfilename,'r') output = f.readlines() @@ -567,85 +566,85 @@ def run_def(self): if not start_solver: # Don't bother parsing anything before -- Volumetric grid deformation --- if line.find('Volumetric grid deformation') > -1: start_solver=True - else: # Found the -- Volumetric grid deformation --- line; parse the input - raw_data = line.split() - try: - iter_number = int(raw_data[0]) - data = raw_data[len(raw_data)-1:] # Take the last column for comparison - except ValueError: - continue - except IndexError: - continue - - if iter_number == self.test_iter: # Found the iteration number we're checking for - iter_missing = False - if not len(self.test_vals)==len(data): # something went wrong... probably bad input - print "Error in test_vals!" - passed = False - break - for j in range(len(data)): - sim_vals.append( float(data[j]) ) - delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) - if delta_vals[j] > self.tol: - exceed_tol = True - passed = False - break - else: - iter_missing = True - - if not start_solver: - passed = False - - if iter_missing: - passed = False - + else: # Found the -- Volumetric grid deformation --- line; parse the input + raw_data = line.split() + try: + iter_number = int(raw_data[0]) + data = raw_data[len(raw_data)-1:] # Take the last column for comparison + except ValueError: + continue + except IndexError: + continue + + if iter_number == self.test_iter: # Found the iteration number we're checking for + iter_missing = False + if not len(self.test_vals)==len(data): # something went wrong... probably bad input + print "Error in test_vals!" + passed = False + break + for j in range(len(data)): + sim_vals.append( float(data[j]) ) + delta_vals.append( abs(float(data[j])-self.test_vals[j]) ) + if delta_vals[j] > self.tol: + exceed_tol = True + passed = False + break + else: + iter_missing = True + + if not start_solver: + passed = False + + if iter_missing: + passed = False + # Write the test results #for j in output: # print j - + if passed: print "%s: PASSED"%self.tag else: print "%s: FAILED"%self.tag print 'Output for the failed case' subprocess.call(['cat', logfilename]) - + print 'execution command: %s'%command - + if timed_out: print 'ERROR: Execution timed out. timeout=%d sec'%self.timeout - + if exceed_tol: print 'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol - + if not start_solver: print 'ERROR: The code was not able to get to the "Begin solver" section.' - + if iter_missing: print 'ERROR: The iteration number %d could not be found.'%self.test_iter - + print 'test_iter=%d \n'%self.test_iter, - + print 'test_vals (stored): ', for j in self.test_vals: print '%e'%j, print '\n', - + print 'sim_vals (computed): ', for j in sim_vals: print '%e'%j, print '\n', - + print 'delta_vals: ', for j in delta_vals: print '%e'%j, print '\n', - + print 'test duration: %.2f min'%(running_time/60.0) print '==================== End Test: %s ====================\n'%self.tag - + os.chdir(workdir) - return passed + return passed def adjust_iter(self): diff --git a/TestCases/euler/channel/inv_channel.cfg b/TestCases/euler/channel/inv_channel.cfg index c791866e4b5..f7e4d62e973 100644 --- a/TestCases/euler/channel/inv_channel.cfg +++ b/TestCases/euler/channel/inv_channel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.0.2 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 16b6ef7e566..bfd4980fcdb 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -38,7 +38,7 @@ def main(): to make sure nothing is broken. ''' test_list = [] - + ########################## ### Compressible Euler ### ########################## @@ -553,7 +553,7 @@ def main(): naca0012_geo.tol = 0.00001 pass_list.append(naca0012_geo.run_geo()) test_list.append(naca0012_geo) - + ###################################### ### RUN SU2_DEF TESTS ### @@ -585,7 +585,7 @@ def main(): pass_list.append(oneram6_sa_def.run_def()) test_list.append(oneram6_sa_def) - + ''' ###################################### ### RUN PYTHON TESTS ### ###################################### @@ -625,6 +625,7 @@ def main(): shape_opt_euler_py.tol = 0.00001 pass_list.append(shape_opt_euler_py.run_opt()) test_list.append(shape_opt_euler_py) + ''' # Tests summary print '==================================================================' From 97b2925041d4854db37f35ed93122568bb15f758 Mon Sep 17 00:00:00 2001 From: demanosalvas Date: Mon, 28 Mar 2016 23:38:35 -0700 Subject: [PATCH 250/269] Uncomment the python test section --- TestCases/serial_regression.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index bfd4980fcdb..7578a4d1ad1 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -585,7 +585,7 @@ def main(): pass_list.append(oneram6_sa_def.run_def()) test_list.append(oneram6_sa_def) - ''' + ###################################### ### RUN PYTHON TESTS ### ###################################### @@ -625,7 +625,7 @@ def main(): shape_opt_euler_py.tol = 0.00001 pass_list.append(shape_opt_euler_py.run_opt()) test_list.append(shape_opt_euler_py) - ''' + # Tests summary print '==================================================================' From a8ddba6670e7883601ad79a4736e2864dbcb2c04 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Tue, 29 Mar 2016 14:36:51 -0700 Subject: [PATCH 251/269] Disabled TLS for metis to fix build on LLVM (Mac OS X 10.11.4, Xcode 7.3). --- Common/lib/Makefile.in | 8 +-- Makefile.in | 8 +-- SU2_CFD/obj/Makefile.in | 8 +-- SU2_DEF/obj/Makefile.in | 8 +-- SU2_DEF/src/SU2_DEF.cpp | 6 +- SU2_DOT/obj/Makefile.in | 8 +-- SU2_GEO/obj/Makefile.in | 8 +-- .../Xcode/SU2_DEF.xcodeproj/project.pbxproj | 4 -- SU2_MSH/obj/Makefile.in | 8 +-- SU2_PY/Makefile.in | 8 +-- SU2_SOL/obj/Makefile.in | 8 +-- aclocal.m4 | 1 - configure | 52 +----------------- externals/Makefile.in | 8 +-- .../share/emacs/site-lisp/autoconf-mode.elc | Bin 3192 -> 3190 bytes .../share/emacs/site-lisp/autotest-mode.elc | Bin 2764 -> 2762 bytes .../autotools/share/man/man1/aclocal-1.12.1 | 2 +- .../autotools/share/man/man1/automake-1.12.1 | 2 +- externals/metis/GKlib/error.c | 1 + externals/metis/Makefile.in | 8 +-- externals/parmetis/Makefile.in | 8 +-- externals/tecio/Makefile.in | 8 +-- m4/metis.m4 | 2 +- 23 files changed, 60 insertions(+), 114 deletions(-) diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 7ee6f8ba766..55e52753015 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -91,10 +91,10 @@ subdir = Common/lib DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Makefile.in b/Makefile.in index 598d5335fde..9e2c6f9530c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -94,10 +94,10 @@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING INSTALL \ compile config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index 4c09c740c0c..b5760e57528 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -92,10 +92,10 @@ subdir = SU2_CFD/obj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index bc3a72f7c26..eba846ccaa4 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -89,10 +89,10 @@ subdir = SU2_DEF/obj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index d69482a598f..06fb06d28be 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -205,21 +205,21 @@ int main(int argc, char *argv[]) { /*--- Volumetric grid deformation/transformations ---*/ - if (config_container[ZONE_0]->GetDesign_Variable(0) == SCALE and allmoving) { + if (config_container[ZONE_0]->GetDesign_Variable(0) == SCALE && allmoving) { if (rank == MASTER_NODE) cout << "Performing a scaling of the volumetric grid." << endl; grid_movement->SetVolume_Scaling(geometry_container[ZONE_0], config_container[ZONE_0], false); - } else if (config_container[ZONE_0]->GetDesign_Variable(0) == TRANSLATION and allmoving) { + } else if (config_container[ZONE_0]->GetDesign_Variable(0) == TRANSLATION && allmoving) { if (rank == MASTER_NODE) cout << "Performing a translation of the volumetric grid." << endl; grid_movement->SetVolume_Translation(geometry_container[ZONE_0], config_container[ZONE_0], false); - } else if (config_container[ZONE_0]->GetDesign_Variable(0) == ROTATION and allmoving) { + } else if (config_container[ZONE_0]->GetDesign_Variable(0) == ROTATION && allmoving) { if (rank == MASTER_NODE) cout << "Performing a rotation of the volumetric grid." << endl; diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index 51fb80ed6f4..dc1dc5afadd 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -91,10 +91,10 @@ subdir = SU2_DOT/obj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 78e0c83ffbb..336b0abcee4 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -89,10 +89,10 @@ subdir = SU2_GEO/obj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/SU2_IDE/Xcode/SU2_DEF.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_DEF.xcodeproj/project.pbxproj index 5e89de378c8..573b867c17e 100644 --- a/SU2_IDE/Xcode/SU2_DEF.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_DEF.xcodeproj/project.pbxproj @@ -22,7 +22,6 @@ 05E6DB6317EB61D100FA1F7E /* primal_grid_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05E6DB5A17EB61D100FA1F7E /* primal_grid_structure.cpp */; }; 05E6DB6417EB61D100FA1F7E /* vector_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05E6DB5B17EB61D100FA1F7E /* vector_structure.cpp */; }; 05E6DC4E17EB635D00FA1F7E /* SU2_DEF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05E6DC4D17EB635D00FA1F7E /* SU2_DEF.cpp */; }; - E941BBAA1B71D476005C6C06 /* datatype_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBA71B71D476005C6C06 /* datatype_structure.cpp */; }; E941BBAB1B71D476005C6C06 /* linear_solvers_structure_b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBA81B71D476005C6C06 /* linear_solvers_structure_b.cpp */; }; E941BBAC1B71D476005C6C06 /* mpi_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E941BBA91B71D476005C6C06 /* mpi_structure.cpp */; }; /* End PBXBuildFile section */ @@ -77,7 +76,6 @@ 05E6DB5B17EB61D100FA1F7E /* vector_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vector_structure.cpp; path = ../../Common/src/vector_structure.cpp; sourceTree = ""; }; 05E6DC4C17EB635800FA1F7E /* SU2_DEF.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = SU2_DEF.hpp; path = ../../SU2_DEF/include/SU2_DEF.hpp; sourceTree = ""; }; 05E6DC4D17EB635D00FA1F7E /* SU2_DEF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SU2_DEF.cpp; path = ../../SU2_DEF/src/SU2_DEF.cpp; sourceTree = ""; }; - E941BBA71B71D476005C6C06 /* datatype_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = datatype_structure.cpp; path = ../../Common/src/datatype_structure.cpp; sourceTree = ""; }; E941BBA81B71D476005C6C06 /* linear_solvers_structure_b.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = linear_solvers_structure_b.cpp; path = ../../Common/src/linear_solvers_structure_b.cpp; sourceTree = ""; }; E941BBA91B71D476005C6C06 /* mpi_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mpi_structure.cpp; path = ../../Common/src/mpi_structure.cpp; sourceTree = ""; }; E941BBAF1B71D5F5005C6C06 /* datatype_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = datatype_structure.hpp; path = ../../Common/include/datatype_structure.hpp; sourceTree = ""; }; @@ -181,7 +179,6 @@ 05E6DB5917EB61D100FA1F7E /* matrix_structure.cpp */, 05E6DB5A17EB61D100FA1F7E /* primal_grid_structure.cpp */, 05E6DB5B17EB61D100FA1F7E /* vector_structure.cpp */, - E941BBA71B71D476005C6C06 /* datatype_structure.cpp */, E941BBA91B71D476005C6C06 /* mpi_structure.cpp */, ); name = Source; @@ -271,7 +268,6 @@ 05AF5D021A0D5A16004E14F6 /* output_cgns.cpp in Sources */, 05E6DB5C17EB61D100FA1F7E /* config_structure.cpp in Sources */, 05E6DB5D17EB61D100FA1F7E /* dual_grid_structure.cpp in Sources */, - E941BBAA1B71D476005C6C06 /* datatype_structure.cpp in Sources */, 05E6DB5E17EB61D100FA1F7E /* geometry_structure.cpp in Sources */, 05E6DB6017EB61D100FA1F7E /* grid_movement_structure.cpp in Sources */, 053306F51AAAD5F00049E156 /* output_fieldview.cpp in Sources */, diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index b32413418f4..cb9eabd3d24 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -89,10 +89,10 @@ subdir = SU2_MSH/obj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index 7744d44fc34..84ebd62603f 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -89,10 +89,10 @@ subdir = SU2_PY DIST_COMMON = $(nobase_dist_mypkg_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 260eeacd35d..97d257f7af2 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -89,10 +89,10 @@ subdir = SU2_SOL/obj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/aclocal.m4 b/aclocal.m4 index af0b34cc478..3e5bf3c75e1 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1034,7 +1034,6 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -m4_include([m4/ax_tls.m4]) m4_include([m4/codi.m4]) m4_include([m4/compiler.m4]) m4_include([m4/metis.m4]) diff --git a/configure b/configure index b35205935b5..7157478873e 100755 --- a/configure +++ b/configure @@ -5941,57 +5941,7 @@ $as_echo "#define HAVE_METIS 1" >>confdefs.h $as_echo "<<< Configuring library with Metis support >>>" >&6; } # look for thread-local storage - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5 -$as_echo_n "checking for thread local storage (TLS) class... " >&6; } - if ${ac_cv_tls+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ax_tls_keywords="__thread __declspec(thread) none" - for ax_tls_keyword in $ax_tls_keywords; do - case $ax_tls_keyword in - none) ac_cv_tls=none ; break ;; - *) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - static void - foo(void) { - static $ax_tls_keyword int bar; - exit(1); - } -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_tls=$ax_tls_keyword ; break -else - ac_cv_tls=none - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - esac - done - -fi - - - if test "$ac_cv_tls" != "none"; then - -cat >>confdefs.h <<_ACEOF -#define TLS $ac_cv_tls -_ACEOF - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 -$as_echo "$ac_cv_tls" >&6; } - + #AX_TLS else METIS_INCLUDE="" METIS_LIB="" diff --git a/externals/Makefile.in b/externals/Makefile.in index a38b264a183..8f369b08d61 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -89,10 +89,10 @@ target_triplet = @target@ subdir = externals DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/externals/autotools/share/emacs/site-lisp/autoconf-mode.elc b/externals/autotools/share/emacs/site-lisp/autoconf-mode.elc index a27458362790a9efbd0ea635e1bc10f908ef7c45..db67322443193557fa09fbc78a28082f2d5e22fe 100644 GIT binary patch delta 75 zcmew%@l9fain6JZX_i5fUT~;iYKcOAof}ydMv4NF|@kGxERzpK` e3*(K;95kbhw>-_0H^pC?*IS* diff --git a/externals/autotools/share/emacs/site-lisp/autotest-mode.elc b/externals/autotools/share/emacs/site-lisp/autotest-mode.elc index 0c88862be4d6f5c155b540f498b00cfd6954c425..c5f0c8886819f8e4b3ba9677f312b272f5037b01 100644 GIT binary patch delta 77 zcmX>jdP;PHin6JZX_i5fUT~;iYKcOAof}ydMv4NF|@kGxERzpK` h3*(K;f?1d>EH?jU@nmK)u-NRzk;24iI(aphA^>+m70v(v delta 79 zcmX>ldPa1DimE}Pkx{Z)N{U`^s9$P{LVlh?NNK8qTWXSmf{}uuk(H^rm5KR8_Xt)K jQ$tIWjZ1=Am@Ex8|77uGW->I`?81@4#ArTwC6^)qsiqcN diff --git a/externals/autotools/share/man/man1/aclocal-1.12.1 b/externals/autotools/share/man/man1/aclocal-1.12.1 index 65085ca3853..ded6847b123 100644 --- a/externals/autotools/share/man/man1/aclocal-1.12.1 +++ b/externals/autotools/share/man/man1/aclocal-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH ACLOCAL "1" "February 2016" "aclocal 1.12.5" "User Commands" +.TH ACLOCAL "1" "March 2016" "aclocal 1.12.5" "User Commands" .SH NAME aclocal \- manual page for aclocal 1.12.5 .SH SYNOPSIS diff --git a/externals/autotools/share/man/man1/automake-1.12.1 b/externals/autotools/share/man/man1/automake-1.12.1 index f18f28444c1..b968ab3c385 100644 --- a/externals/autotools/share/man/man1/automake-1.12.1 +++ b/externals/autotools/share/man/man1/automake-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH AUTOMAKE "1" "February 2016" "automake 1.12.5" "User Commands" +.TH AUTOMAKE "1" "March 2016" "automake 1.12.5" "User Commands" .SH NAME automake \- manual page for automake 1.12.5 .SH SYNOPSIS diff --git a/externals/metis/GKlib/error.c b/externals/metis/GKlib/error.c index c81a2d55007..a7b6ae5a90b 100644 --- a/externals/metis/GKlib/error.c +++ b/externals/metis/GKlib/error.c @@ -228,3 +228,4 @@ void PrintBackTrace() free(strings); #endif } + diff --git a/externals/metis/Makefile.in b/externals/metis/Makefile.in index 5b2e02d2273..d2e7ec4968f 100644 --- a/externals/metis/Makefile.in +++ b/externals/metis/Makefile.in @@ -55,10 +55,10 @@ subdir = externals/metis DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/externals/parmetis/Makefile.in b/externals/parmetis/Makefile.in index 1cb9561a5f4..44f2356636a 100644 --- a/externals/parmetis/Makefile.in +++ b/externals/parmetis/Makefile.in @@ -55,10 +55,10 @@ subdir = externals/parmetis DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/externals/tecio/Makefile.in b/externals/tecio/Makefile.in index 6825c36b6f6..4adddd0db09 100644 --- a/externals/tecio/Makefile.in +++ b/externals/tecio/Makefile.in @@ -55,10 +55,10 @@ subdir = externals/tecio DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_tls.m4 \ - $(top_srcdir)/m4/codi.m4 $(top_srcdir)/m4/compiler.m4 \ - $(top_srcdir)/m4/metis.m4 $(top_srcdir)/m4/parmetis.m4 \ - $(top_srcdir)/m4/tecio.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/codi.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/metis.m4 \ + $(top_srcdir)/m4/parmetis.m4 $(top_srcdir)/m4/tecio.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/m4/metis.m4 b/m4/metis.m4 index 69110c01fd1..5a16bc2f015 100644 --- a/m4/metis.m4 +++ b/m4/metis.m4 @@ -37,7 +37,7 @@ AC_DEFUN([CONFIGURE_METIS], AC_MSG_RESULT(<<< Configuring library with Metis support >>>) # look for thread-local storage - AX_TLS + #AX_TLS else METIS_INCLUDE="" METIS_LIB="" From 06d260ca7729225d6199444e51843644c1fcd2ca Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 31 Mar 2016 12:48:09 -0700 Subject: [PATCH 252/269] total pressure output, total pressure adjoint: previously had places where the incompressible form was accidentally used, now using proper compressible form and switches to incompressible when relevant --- SU2_CFD/src/output_structure.cpp | 7 +++++-- SU2_CFD/src/solver_adjoint_mean.cpp | 32 ++++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 4afda99b95a..fd0218ddc6e 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -7113,8 +7113,11 @@ void COutput::OneDimensionalOutput(CSolver *solver_container, CGeometry *geometr Temperature = solver_container->node[iPoint]->GetTemperature(); Mach = (sqrt(Velocity2))/ solver_container->node[iPoint]->GetSoundSpeed(); - //Stag_Pressure = Pressure*pow((1.0+((Gamma-1.0)/2.0)*pow(Mach, 2.0)),( Gamma/(Gamma-1.0) ) ); - Tot_Pressure = Pressure + 0.5*solver_container->node[iPoint]->GetDensity()*Velocity2; + if (incompressible) + Tot_Pressure = Pressure + 0.5*solver_container->node[iPoint]->GetDensity()*Velocity2; + else + Tot_Pressure = Pressure*pow((1.0+((Gamma-1.0)/2.0)*pow(Mach, 2.0)),( Gamma/(Gamma-1.0) ) ); + AveragePt += Tot_Pressure * Area; TotalArea += Area; diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 3ec1f750452..328470956a6 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4476,7 +4476,7 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, Riemann=0.0, Entropy=0.0, Density_Outlet = 0.0, Vn_rel=0.0; su2double Velocity[3], UnitNormal[3]; su2double *V_outlet, *V_domain, *Psi_domain, *Psi_outlet, *Normal; - su2double a1=0.0; /*Placeholder terms to simplify expressions/ repeated terms*/ + su2double a1=0.0, a2=0.0; /*Placeholder terms to simplify expressions/ repeated terms*/ /*Gradient terms for the generalized boundary */ su2double density_gradient, pressure_gradient, velocity_gradient; @@ -4569,7 +4569,7 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, Psi_outlet[iVar] = 0.0; } - if (Vn >= SoundSpeed) { + if (Vn > SoundSpeed) { /*--- Objective-dependent additions to energy term ---*/ Vn_Exit = Vn; /* Vn_Exit comes from Reiman conditions in subsonic case*/ Vn_rel = Vn_Exit-ProjGridVel; @@ -4592,7 +4592,17 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, for (iDim = 0; iDim < nDim; iDim++) { Velocity2 += Velocity[iDim]*Velocity[iDim]; } - Psi_outlet[nDim+1]+=a1*Velocity2/(2.0*Vn_Exit); + if (incompressible) + Psi_outlet[nDim+1]+=a1*Velocity2/(2.0*Vn_Exit); + else{ + a2 = Pressure*(Gamma/(Gamma-1.0))*pow((1.0+(Gamma-1.0)*Density/(2.0*Gamma*Pressure)*Velocity2),1.0/(Gamma-1.0)); + density_gradient = a2*((Gamma-1.0)*Velocity2/(2.0*Gamma*Pressure)); + velocity_gradient = 0.0; + for (iDim=0; iDim Date: Thu, 31 Mar 2016 13:05:30 -0700 Subject: [PATCH 253/269] typo fix --- SU2_CFD/src/solver_adjoint_mean.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 328470956a6..7e9f46cb78c 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4775,7 +4775,7 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, Psi_outlet[0]+=density_gradient*2.0/Vn_Exit; for (iDim=0; iDim Date: Thu, 31 Mar 2016 14:06:45 -0700 Subject: [PATCH 254/269] fix to finite difference that skips custom dv if not using outflow_generalized --- SU2_PY/SU2/eval/gradients.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index 65a1036b1d3..dbaf30d3fd8 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -117,7 +117,7 @@ def gradient( func_name, method, config, state=None ): else: raise Exception , 'unrecognized gradient method' - if ('CUSTOM' in config.DV_KIND): + if ('CUSTOM' in config.DV_KIND and 'OUTFLOW_GENERALIZED' in config.OBJECTIVE_FUNCTION ): import downstream_function chaingrad = downstream_function.downstream_gradient(config,state) n_dv = len(grads[func_name]) @@ -528,7 +528,7 @@ def findiff( config, state=None, step=1e-4 ): pull.append(files['TARGET_HEATFLUX']) # Use custom variable - if ('CUSTOM' in konfig.DV_KIND): + if ('CUSTOM' in konfig.DV_KIND and 'OUTFLOW_GENERALIZED' in config.OBJECTIVE_FUNCTION): import downstream_function chaingrad = downstream_function.downstream_gradient(config,state) custom_dv=1 From 0018477c594d31a14931a83e6a4712214f1a2e85 Mon Sep 17 00:00:00 2001 From: hlkline Date: Thu, 31 Mar 2016 14:16:00 -0700 Subject: [PATCH 255/269] sign change --- SU2_CFD/src/solver_adjoint_mean.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 7e9f46cb78c..9d94c643e4a 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4595,13 +4595,13 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, if (incompressible) Psi_outlet[nDim+1]+=a1*Velocity2/(2.0*Vn_Exit); else{ - a2 = Pressure*(Gamma/(Gamma-1.0))*pow((1.0+(Gamma-1.0)*Density/(2.0*Gamma*Pressure)*Velocity2),1.0/(Gamma-1.0)); - density_gradient = a2*((Gamma-1.0)*Velocity2/(2.0*Gamma*Pressure)); + a2 = Pressure*(Gamma/(Gamma_Minus_One))*pow((1.0+(Gamma_Minus_One)*Density/(2.0*Gamma*Pressure)*Velocity2),1.0/(Gamma_Minus_One)); + density_gradient = a2*((Gamma_Minus_One)*Velocity2/(2.0*Gamma*Pressure)); velocity_gradient = 0.0; for (iDim=0; iDim Date: Thu, 31 Mar 2016 16:26:49 -0700 Subject: [PATCH 256/269] further correction to adj bc --- SU2_CFD/src/solver_adjoint_mean.cpp | 38 +++++++++++------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 9d94c643e4a..8e6e6d054ed 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4592,17 +4592,13 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, for (iDim = 0; iDim < nDim; iDim++) { Velocity2 += Velocity[iDim]*Velocity[iDim]; } - if (incompressible) - Psi_outlet[nDim+1]+=a1*Velocity2/(2.0*Vn_Exit); - else{ - a2 = Pressure*(Gamma/(Gamma_Minus_One))*pow((1.0+(Gamma_Minus_One)*Density/(2.0*Gamma*Pressure)*Velocity2),1.0/(Gamma_Minus_One)); - density_gradient = a2*((Gamma_Minus_One)*Velocity2/(2.0*Gamma*Pressure)); - velocity_gradient = 0.0; - for (iDim=0; iDim Date: Thu, 31 Mar 2016 16:35:39 -0700 Subject: [PATCH 257/269] updated finite difference regress test file s.t. does not restart --- TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg index a41c9e2da45..a15a2b9e6d1 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg @@ -20,7 +20,7 @@ PHYSICAL_PROBLEM= EULER MATH_PROBLEM= CONTINUOUS_ADJOINT % % Restart solution (NO, YES) -RESTART_SOL= YES +RESTART_SOL= NO % ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------% % @@ -91,7 +91,7 @@ CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) % % Number of total iterations -EXT_ITER= 1 +EXT_ITER= 10 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % From 9f244de08d33d75592d91a47b22df4ab0e12388f Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Fri, 1 Apr 2016 00:23:05 -0700 Subject: [PATCH 258/269] Added scipy to the travis configuration for testing shape_optimization.py in the regressions. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0ec7c9168d4..c96ebb0b67d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ env: before_install: # install the necessary packages - sudo apt-get update -qq - - sudo apt-get install -qq python-numpy mpich2 + - sudo apt-get install -qq python-numpy python-scipy mpich2 install: - echo $TRAVIS_BUILD_DIR From 63902f0423e7332c0ae3e0f09482e3bb07196868 Mon Sep 17 00:00:00 2001 From: hlkline Date: Fri, 1 Apr 2016 11:13:19 -0700 Subject: [PATCH 259/269] corrections to Pt --- SU2_CFD/src/solver_adjoint_mean.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 8e6e6d054ed..12eaf4d6082 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4592,12 +4592,12 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, for (iDim = 0; iDim < nDim; iDim++) { Velocity2 += Velocity[iDim]*Velocity[iDim]; } - a2 = Pressure*(Gamma/(Gamma_Minus_One))*pow((1.0+(Gamma_Minus_One)*Density/(2.0*Gamma*Pressure)*Velocity2),1.0/(Gamma_Minus_One)); + a2 = Pressure*(Gamma/Gamma_Minus_One)*pow((1.0+Gamma_Minus_One*Density*Velocity2/(2.0*Gamma*Pressure)),1.0/Gamma_Minus_One); density_gradient = a2*((Gamma_Minus_One)*Velocity2/(2.0*Gamma*Pressure)); velocity_gradient = 0.0; for (iDim=0; iDim Date: Fri, 1 Apr 2016 12:39:56 -0700 Subject: [PATCH 260/269] Small change to add scipy. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f05ae5cb63c..5d0be8ab571 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ env: before_install: # install the necessary packages - sudo apt-get update -qq - - sudo apt-get install -qq python-numpy mpich2 + - sudo apt-get install -qq python-numpy python-scipy mpich2 install: - echo $TRAVIS_BUILD_DIR From c5f9d51cc0a30618c8b298844a5e7add3e4c35d1 Mon Sep 17 00:00:00 2001 From: hlkline Date: Sat, 2 Apr 2016 15:12:34 -0700 Subject: [PATCH 261/269] removing sens_bpress from output - calculation left in for research purposes, no utility for most users --- SU2_CFD/src/output_structure.cpp | 55 ++++++----------------------- SU2_CFD/src/solver_adjoint_mean.cpp | 2 +- 2 files changed, 12 insertions(+), 45 deletions(-) diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index fd0218ddc6e..86caf1d393c 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -3945,7 +3945,7 @@ void COutput::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *config) { char wave_coeff[]= ",\"CWave\""; char fea_coeff[]= ",\"CFEA\""; char fem_coeff[]= ",\"VM_Stress\""; - char adj_coeff[]= ",\"Sens_Geo\",\"Sens_Mach\",\"Sens_AoA\",\"Sens_Press\",\"Sens_Temp\",\"Sens_AoS\",\"Sens_BPress\""; + char adj_coeff[]= ",\"Sens_Geo\",\"Sens_Mach\",\"Sens_AoA\",\"Sens_Press\",\"Sens_Temp\",\"Sens_AoS\""; char oneD_outputs[]= ",\"Avg_TotalPress\",\"Avg_Mach\",\"Avg_Temperature\",\"MassFlowRate\",\"FluxAvg_Pressure\",\"FluxAvg_Density\",\"FluxAvg_Velocity\",\"FluxAvg_Enthalpy\""; char Cp_inverse_design[]= ",\"Cp_Diff\""; char Heat_inverse_design[]= ",\"HeatFlux_Diff\""; @@ -4200,7 +4200,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, /*--- Initialize variables to store information from all domains (adjoint solution) ---*/ su2double Total_Sens_Geo = 0.0, Total_Sens_Mach = 0.0, Total_Sens_AoA = 0.0; - su2double Total_Sens_Press = 0.0, Total_Sens_Temp = 0.0, Total_Sens_BPress=0.0; + su2double Total_Sens_Press = 0.0, Total_Sens_Temp = 0.0; /*--- Initialize variables to store information from all domains (direct differentiation) ---*/ su2double D_Total_CLift = 0.0, D_Total_CDrag = 0.0, D_Total_CSideForce = 0.0, D_Total_CMx = 0.0, D_Total_CMy = 0.0, D_Total_CMz = 0.0, D_Total_CEff = 0.0, D_Total_CFx = 0.0, D_Total_CFy = 0.0, D_Total_CFz = 0.0; @@ -4506,7 +4506,6 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, Total_Sens_AoA = solver_container[val_iZone][FinestMesh][ADJFLOW_SOL]->GetTotal_Sens_AoA(); Total_Sens_Press = solver_container[val_iZone][FinestMesh][ADJFLOW_SOL]->GetTotal_Sens_Press(); Total_Sens_Temp = solver_container[val_iZone][FinestMesh][ADJFLOW_SOL]->GetTotal_Sens_Temp(); - Total_Sens_BPress = solver_container[val_iZone][FinestMesh][ADJFLOW_SOL]->GetTotal_Sens_BPress(); /*--- Adjoint flow residuals ---*/ @@ -4782,7 +4781,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (adjoint) { /*--- Adjoint coefficients ---*/ - SPRINTF (adjoint_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, 0.0, %12.10f", Total_Sens_Geo, Total_Sens_Mach, Total_Sens_AoA, Total_Sens_Press, Total_Sens_Temp, Total_Sens_BPress); + SPRINTF (adjoint_coeff, ", %12.10f, %12.10f, %12.10f, %12.10f, %12.10f, 0.0", Total_Sens_Geo, Total_Sens_Mach, Total_Sens_AoA, Total_Sens_Press, Total_Sens_Temp); /*--- Adjoint flow residuals ---*/ if (nDim == 2) { @@ -5220,17 +5219,11 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (disc_adj){ cout << " Sens_Press" << " Sens_Mach" << endl; } else { - if (output_1d) - cout << " Sens_Geo" << " Sens_BPress" << endl; - else - cout << " Sens_Geo" << " Sens_Mach" << endl; + cout << " Sens_Geo" << " Sens_Mach" << endl; } if (freesurface) { cout << " Res[Psi_Press]" << " Res[Psi_Dist]" << " Sens_Geo"; - if (output_1d) - cout << " Sens_BPress" << endl; - else - cout << " Sens_Mach" << endl; + cout << " Sens_Mach" << endl; } break; @@ -5271,17 +5264,11 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, if (disc_adj){ cout << " Sens_Press" << " Sens_Mach" << endl; } else { - if (output_1d) - cout << " Sens_Geo" << " Sens_BPress" << endl; - else - cout << " Sens_Geo" << " Sens_Mach" << endl; + cout << " Sens_Geo" << " Sens_Mach" << endl; } if (freesurface) { cout << " Res[Psi_Press]" << " Res[Psi_Dist]" << " Sens_Geo"; - if (output_1d) - cout << " Sens_BPress" << endl; - else - cout << " Sens_Mach" << endl; + cout << " Sens_Mach" << endl; } break; @@ -5571,12 +5558,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout.precision(4); cout.setf(ios::scientific, ios::floatfield); cout.width(14); cout << Total_Sens_Geo; - if (output_1d){ - cout.width(14); cout << Total_Sens_BPress; - } - else{ - cout.width(14); cout << Total_Sens_Mach; - } + cout.width(14); cout << Total_Sens_Mach; } cout << endl; cout.unsetf(ios_base::floatfield); @@ -5594,12 +5576,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout.precision(3); cout.setf(ios::scientific, ios::floatfield); cout.width(12); cout << Total_Sens_Geo; - if (output_1d){ - cout.width(12); cout << Total_Sens_BPress; - } - else{ - cout.width(12); cout << Total_Sens_Mach; - } + cout.width(12); cout << Total_Sens_Mach; cout.unsetf(ios_base::floatfield); cout << endl; } @@ -5640,12 +5617,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout.precision(4); cout.setf(ios::scientific, ios::floatfield); cout.width(14); cout << Total_Sens_Geo; - if (output_1d){ - cout.width(14); cout << Total_Sens_BPress; - } - else{ - cout.width(14); cout << Total_Sens_Mach; - } + cout.width(14); cout << Total_Sens_Mach; } cout << endl; cout.unsetf(ios_base::floatfield); @@ -5664,12 +5636,7 @@ void COutput::SetConvHistory_Body(ofstream *ConvHist_file, cout.precision(4); cout.setf(ios::scientific, ios::floatfield); cout.width(12); cout << Total_Sens_Geo; - if (output_1d){ - cout.width(14); cout << Total_Sens_BPress; - } - else{ - cout.width(14); cout << Total_Sens_Mach; - } + cout.width(14); cout << Total_Sens_Mach; cout << endl; cout.unsetf(ios_base::floatfield); } diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index 12eaf4d6082..b7a4f01050a 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4593,7 +4593,7 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, Velocity2 += Velocity[iDim]*Velocity[iDim]; } a2 = Pressure*(Gamma/Gamma_Minus_One)*pow((1.0+Gamma_Minus_One*Density*Velocity2/(2.0*Gamma*Pressure)),1.0/Gamma_Minus_One); - density_gradient = a2*((Gamma_Minus_One)*Velocity2/(2.0*Gamma*Pressure)); + density_gradient = a2*(Gamma_Minus_One*Velocity2/(2.0*Gamma*Pressure)); velocity_gradient = 0.0; for (iDim=0; iDim Date: Sat, 2 Apr 2016 15:21:38 -0700 Subject: [PATCH 262/269] included checks to avoid /0.0 in adjeuler bc_outlet --- SU2_CFD/src/solver_adjoint_mean.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index b7a4f01050a..eae37e3b018 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -4655,7 +4655,9 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, } */ /*Constant-pressure version*/ - a1 = SoundSpeed*SoundSpeed/Gamma_Minus_One/Vn; + a1 = 0.0; + if (Vn!=0.0) + a1 = SoundSpeed*SoundSpeed/Gamma_Minus_One/Vn; Psi_outlet[0] += Psi_outlet[nVar-1]*(Velocity2*0.5+Vn_rel*a1); for (iDim = 0; iDim < nDim; iDim++) { Psi_outlet[iDim+1] += -Psi_outlet[nVar-1]*(a1*UnitNormal[iDim] + Velocity[iDim]); @@ -4743,9 +4745,11 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, } */ /*Pressure-fixed version*/ - Psi_outlet[0]+=density_gradient*2.0/Vn_Exit-velocity_gradient/Density/Vn_Exit; - for (iDim=0; iDimGetCoeff_ObjChainRule(iDim+1)/Density/Vn_Exit-UnitNormal[iDim]*density_gradient/Vn_Exit/Vn_Exit; + if (Vn_Exit != 0.0){ + Psi_outlet[0]+=density_gradient*2.0/Vn_Exit-velocity_gradient/Density/Vn_Exit; + for (iDim=0; iDimGetCoeff_ObjChainRule(iDim+1)/Density/Vn_Exit-UnitNormal[iDim]*density_gradient/Vn_Exit/Vn_Exit; + } } break; case AVG_TOTAL_PRESSURE: @@ -4760,13 +4764,15 @@ void CAdjEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container, Psi_outlet[iDim+1] +=a1*UnitNormal[iDim]*(-Velocity2)/(2.0*Vn_Exit)+Velocity[iDim]/Vn_Exit; */ /*Pressure-fixed version*/ - a2 = Pressure*(Gamma/Gamma_Minus_One)*pow((1.0+Gamma_Minus_One*Density*Velocity2/(2.0*Gamma*Pressure)),1.0/(Gamma_Minus_One)); - density_gradient = a2*(Gamma_Minus_One*Velocity2/(2.0*Gamma*Pressure)); - velocity_gradient=a2*Gamma_Minus_One*Density/(Gamma*Pressure); // re-using variable as the constant multiplying V[i] for dj/dvi - Psi_outlet[0]+=density_gradient*2.0/Vn_Exit; - for (iDim=0; iDim Date: Mon, 4 Apr 2016 14:33:48 -0700 Subject: [PATCH 263/269] Small changes and warning fixes. --- SU2_CFD/include/numerics_structure.hpp | 4 +-- SU2_CFD/include/transfer_structure.inl | 2 +- .../Xcode/SU2_CFD.xcodeproj/project.pbxproj | 28 ++++++------------- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index c0123674484..d0ec9202510 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -2007,7 +2007,7 @@ class CUpwHLLC_Flow : public CNumerics { su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i; su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j; - su2double sq_velRoe, ProjVelocity, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeSoundSpeed2, RoeProjVelocity, ProjInterfaceVel; + su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; @@ -2058,7 +2058,7 @@ class CUpwGeneralHLLC_Flow : public CNumerics { su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i, StaticEnthalpy_i, StaticEnergy_i; su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j, StaticEnthalpy_j, StaticEnergy_j; - su2double sq_velRoe, ProjVelocity, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeSoundSpeed2, RoeProjVelocity, ProjInterfaceVel; + su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel; su2double Kappa_i, Kappa_j, Chi_i, Chi_j, RoeKappa, RoeChi, RoeKappaStaticEnthalpy; su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa; diff --git a/SU2_CFD/include/transfer_structure.inl b/SU2_CFD/include/transfer_structure.inl index 0bff5405add..cf674b28dee 100644 --- a/SU2_CFD/include/transfer_structure.inl +++ b/SU2_CFD/include/transfer_structure.inl @@ -39,4 +39,4 @@ inline void CTransfer::GetDonor_Variable(CSolver *donor_solution, CGeometry *don inline void CTransfer::SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, CConfig *target_config, unsigned long Marker_Target, - unsigned long Vertex_Target, unsigned long Point_Target) { } \ No newline at end of file + unsigned long Vertex_Target, unsigned long Point_Target) { } diff --git a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj index b92bf0993f2..3a64ff6498f 100644 --- a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj @@ -80,11 +80,8 @@ E9D9CE861C62A1A7004119E9 /* interpolation_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE851C62A1A7004119E9 /* interpolation_structure.cpp */; }; E9D9CE891C62A1C8004119E9 /* transfer_physics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE871C62A1C8004119E9 /* transfer_physics.cpp */; }; E9D9CE8A1C62A1C8004119E9 /* transfer_structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE881C62A1C8004119E9 /* transfer_structure.cpp */; }; - E9D9CE8C1C62A1FF004119E9 /* solver_fem_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8B1C62A1FF004119E9 /* solver_fem_elasticity.cpp */; }; - E9D9CE901C62A224004119E9 /* numerics_fem_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8D1C62A224004119E9 /* numerics_fem_elasticity.cpp */; }; - E9D9CE911C62A224004119E9 /* numerics_fem_linear_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8E1C62A224004119E9 /* numerics_fem_linear_elasticity.cpp */; }; - E9D9CE921C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE8F1C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp */; }; - E9D9CE941C62A24F004119E9 /* variable_fem_elasticity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9D9CE931C62A24F004119E9 /* variable_fem_elasticity.cpp */; }; + E9F512C81CB2FD6B004D5089 /* numerics_direct_elasticity_linear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9F512C61CB2FD6B004D5089 /* numerics_direct_elasticity_linear.cpp */; }; + E9F512C91CB2FD6B004D5089 /* numerics_direct_elasticity_nonlinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E9F512C71CB2FD6B004D5089 /* numerics_direct_elasticity_nonlinear.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -318,16 +315,13 @@ E9D9CE851C62A1A7004119E9 /* interpolation_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = interpolation_structure.cpp; path = ../../Common/src/interpolation_structure.cpp; sourceTree = ""; }; E9D9CE871C62A1C8004119E9 /* transfer_physics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = transfer_physics.cpp; path = ../../SU2_CFD/src/transfer_physics.cpp; sourceTree = ""; }; E9D9CE881C62A1C8004119E9 /* transfer_structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = transfer_structure.cpp; path = ../../SU2_CFD/src/transfer_structure.cpp; sourceTree = ""; }; - E9D9CE8B1C62A1FF004119E9 /* solver_fem_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = solver_fem_elasticity.cpp; path = ../../SU2_CFD/src/solver_fem_elasticity.cpp; sourceTree = ""; }; - E9D9CE8D1C62A224004119E9 /* numerics_fem_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_fem_elasticity.cpp; path = ../../SU2_CFD/src/numerics_fem_elasticity.cpp; sourceTree = ""; }; - E9D9CE8E1C62A224004119E9 /* numerics_fem_linear_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_fem_linear_elasticity.cpp; path = ../../SU2_CFD/src/numerics_fem_linear_elasticity.cpp; sourceTree = ""; }; - E9D9CE8F1C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_fem_nonlinear_elasticity.cpp; path = ../../SU2_CFD/src/numerics_fem_nonlinear_elasticity.cpp; sourceTree = ""; }; - E9D9CE931C62A24F004119E9 /* variable_fem_elasticity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = variable_fem_elasticity.cpp; path = ../../SU2_CFD/src/variable_fem_elasticity.cpp; sourceTree = ""; }; E9D9CE951C62A272004119E9 /* transfer_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = transfer_structure.hpp; path = ../../SU2_CFD/include/transfer_structure.hpp; sourceTree = ""; }; E9D9CE961C62A272004119E9 /* transfer_structure.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = transfer_structure.inl; path = ../../SU2_CFD/include/transfer_structure.inl; sourceTree = ""; }; E9D9CE971C62A2A7004119E9 /* interpolation_structure.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = interpolation_structure.hpp; path = ../../Common/include/interpolation_structure.hpp; sourceTree = ""; }; E9D9CE981C6563B3004119E9 /* parallel_regression_AD.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = parallel_regression_AD.py; sourceTree = ""; }; E9D9CE991C6563B3004119E9 /* serial_regression_AD.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = serial_regression_AD.py; sourceTree = ""; }; + E9F512C61CB2FD6B004D5089 /* numerics_direct_elasticity_linear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_direct_elasticity_linear.cpp; path = ../../SU2_CFD/src/numerics_direct_elasticity_linear.cpp; sourceTree = ""; }; + E9F512C71CB2FD6B004D5089 /* numerics_direct_elasticity_nonlinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = numerics_direct_elasticity_nonlinear.cpp; path = ../../SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -349,7 +343,6 @@ 05E6DBFB17EB62A100FA1F7E /* variable_direct_turbulent.cpp */, 0530E56B17FDF7BD00733CE8 /* variable_direct_poisson.cpp */, 0530E56D17FDF7C600733CE8 /* variable_direct_elasticity.cpp */, - E9D9CE931C62A24F004119E9 /* variable_fem_elasticity.cpp */, 05E6DBF517EB62A100FA1F7E /* variable_direct_heat.cpp */, 05E6DBFA17EB62A100FA1F7E /* variable_direct_transition.cpp */, 05E6DBFC17EB62A100FA1F7E /* variable_direct_wave.cpp */, @@ -370,7 +363,6 @@ 05E6DBE617EB62A100FA1F7E /* solver_direct_turbulent.cpp */, 0530E56717FDF79500733CE8 /* solver_direct_poisson.cpp */, 0530E56917FDF7AC00733CE8 /* solver_direct_elasticity.cpp */, - E9D9CE8B1C62A1FF004119E9 /* solver_fem_elasticity.cpp */, 05E6DBE017EB62A100FA1F7E /* solver_direct_heat.cpp */, 05E6DBE517EB62A100FA1F7E /* solver_direct_transition.cpp */, 05E6DBE717EB62A100FA1F7E /* solver_direct_wave.cpp */, @@ -510,9 +502,8 @@ 05E6DBCF17EB62A100FA1F7E /* numerics_direct_turbulent.cpp */, 0530E57117FDF7D800733CE8 /* numerics_direct_poisson.cpp */, 0530E56F17FDF7D300733CE8 /* numerics_direct_elasticity.cpp */, - E9D9CE8D1C62A224004119E9 /* numerics_fem_elasticity.cpp */, - E9D9CE8E1C62A224004119E9 /* numerics_fem_linear_elasticity.cpp */, - E9D9CE8F1C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp */, + E9F512C61CB2FD6B004D5089 /* numerics_direct_elasticity_linear.cpp */, + E9F512C71CB2FD6B004D5089 /* numerics_direct_elasticity_nonlinear.cpp */, 05E6DBC917EB62A100FA1F7E /* numerics_direct_heat.cpp */, 05E6DBCE17EB62A100FA1F7E /* numerics_direct_transition.cpp */, 05E6DBD017EB62A100FA1F7E /* numerics_direct_wave.cpp */, @@ -1434,7 +1425,7 @@ 05E6DC0117EB62A100FA1F7E /* definition_structure.cpp in Sources */, 05E6DC0317EB62A100FA1F7E /* integration_structure.cpp in Sources */, E941BBAE1B71D564005C6C06 /* variable_adjoint_discrete.cpp in Sources */, - E9D9CE8C1C62A1FF004119E9 /* solver_fem_elasticity.cpp in Sources */, + E9F512C81CB2FD6B004D5089 /* numerics_direct_elasticity_linear.cpp in Sources */, 05E6DC0417EB62A100FA1F7E /* integration_time.cpp in Sources */, 05F1089B1978D2AE00F2F288 /* fluid_model_ppr.cpp in Sources */, 0530E57217FDF7D800733CE8 /* numerics_direct_poisson.cpp in Sources */, @@ -1452,7 +1443,6 @@ 05E6DC1017EB62A100FA1F7E /* numerics_direct_mean.cpp in Sources */, E9D85B4C1C3F1B9E0077122F /* ad_structure.cpp in Sources */, 0530E56E17FDF7C600733CE8 /* variable_direct_elasticity.cpp in Sources */, - E9D9CE901C62A224004119E9 /* numerics_fem_elasticity.cpp in Sources */, 05F1089D1978D2AE00F2F288 /* fluid_model.cpp in Sources */, 05E6DC1317EB62A100FA1F7E /* numerics_direct_transition.cpp in Sources */, 0506980A1AA6179100FF4F07 /* output_fieldview.cpp in Sources */, @@ -1468,12 +1458,11 @@ E9D9CE861C62A1A7004119E9 /* interpolation_structure.cpp in Sources */, 05E6DC1E17EB62A100FA1F7E /* solver_adjoint_levelset.cpp in Sources */, 05F1089C1978D2AE00F2F288 /* fluid_model_pvdw.cpp in Sources */, - E9D9CE911C62A224004119E9 /* numerics_fem_linear_elasticity.cpp in Sources */, - E9D9CE941C62A24F004119E9 /* variable_fem_elasticity.cpp in Sources */, 05E6DC1F17EB62A100FA1F7E /* solver_adjoint_mean.cpp in Sources */, 05E6DC2217EB62A100FA1F7E /* solver_adjoint_turbulent.cpp in Sources */, 05E6DC2517EB62A100FA1F7E /* solver_direct_heat.cpp in Sources */, 05E6DC2717EB62A100FA1F7E /* solver_direct_mean.cpp in Sources */, + E9F512C91CB2FD6B004D5089 /* numerics_direct_elasticity_nonlinear.cpp in Sources */, 05E6DC2A17EB62A100FA1F7E /* solver_direct_transition.cpp in Sources */, 05E6DC2B17EB62A100FA1F7E /* solver_direct_turbulent.cpp in Sources */, 05E6DC2C17EB62A100FA1F7E /* solver_direct_wave.cpp in Sources */, @@ -1493,7 +1482,6 @@ E941BB931B71D124005C6C06 /* linear_solvers_structure_b.cpp in Sources */, 05E6DC4417EB62A100FA1F7E /* variable_structure.cpp in Sources */, 05E6DC4517EB62A100FA1F7E /* variable_template.cpp in Sources */, - E9D9CE921C62A224004119E9 /* numerics_fem_nonlinear_elasticity.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; From cdd53429e83683e07b10f1258af31a8dd4a8e808 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 4 Apr 2016 17:22:51 -0700 Subject: [PATCH 264/269] Fixed serial warnings on Apple LLVM. --- Common/src/geometry_structure.cpp | 2 +- Common/src/grid_movement_structure.cpp | 4 +- Common/src/interpolation_structure.cpp | 20 +- SU2_CFD/src/driver_structure.cpp | 3 +- SU2_CFD/src/integration_structure.cpp | 642 +- .../numerics_direct_elasticity_nonlinear.cpp | 2 +- SU2_CFD/src/solver_direct_elasticity.cpp | 7047 ++++++++--------- SU2_CFD/src/transfer_physics.cpp | 2 +- SU2_CFD/src/transfer_structure.cpp | 2360 +++--- .../Xcode/SU2_CFD.xcodeproj/project.pbxproj | 29 +- 10 files changed, 5046 insertions(+), 5065 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 4c5a2a2aaad..70dba90a1ad 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -5947,7 +5947,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes unsigned long vnodes_edge[2], vnodes_triangle[3], vnodes_quad[4]; unsigned long vnodes_tetra[4], vnodes_hexa[8], vnodes_prism[6], vnodes_pyramid[5], dummyLong, GlobalIndex; - unsigned long i, j; + unsigned long i; long local_index; char cstr[200]; su2double Coord_2D[2], Coord_3D[3]; diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 540f3feb925..4ef8e643a80 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -4423,7 +4423,9 @@ void CSurfaceMovement::SetHicksHenne(CGeometry *boundary, CConfig *config, unsig #endif - //AoA = atan((LPCoord[1] - TPCoord[1]) / (TPCoord[0] - LPCoord[0]))*180/PI_NUMBER; + AoA = atan((LPCoord[1] - TPCoord[1]) / (TPCoord[0] - LPCoord[0]))*180/PI_NUMBER; + + /*--- WARNING: AoA currently overwritten to zero. ---*/ AoA = 0.0; /*--- Perform multiple airfoil deformation ---*/ diff --git a/Common/src/interpolation_structure.cpp b/Common/src/interpolation_structure.cpp index dd39d2fc3b9..7ec9ba0b8d1 100644 --- a/Common/src/interpolation_structure.cpp +++ b/Common/src/interpolation_structure.cpp @@ -104,9 +104,10 @@ void CInterpolator::Determine_ArraySize(bool faces, int markDonor, int markTarge unsigned short iDonor; unsigned int nFaces=0, iFace, nNodes=0; bool face_on_marker = true; + +#ifdef HAVE_MPI int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; -#ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); #endif @@ -198,9 +199,10 @@ void CInterpolator::Collect_VertexInfo(bool faces, int markDonor, int markTarget unsigned short iDim; /* Only needed if face data is also collected */ su2double *Normal; + +#ifdef HAVE_MPI int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; -#ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); #endif @@ -296,10 +298,10 @@ void CNearestNeighbor::Set_TransferCoeff(CConfig **config){ su2double *Coord_i, Coord_j[3], dist = 0.0, mindist, maxdist; - int rank = MASTER_NODE; int nProcessor = SINGLE_NODE; #ifdef HAVE_MPI + int rank = MASTER_NODE; MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nProcessor); #endif @@ -682,13 +684,13 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ /*---Loop over the faces previously communicated/stored ---*/ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - nFaces = Buffer_Receive_nFace_Donor[iProcessor]; + nFaces = (unsigned int)Buffer_Receive_nFace_Donor[iProcessor]; for (iFace = 0; iFace< nFaces; iFace++){ /*--- ---*/ - nNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1] - - Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; + nNodes = (unsigned int)Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1] - + (unsigned int)Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; su2double *X = new su2double[nNodes*nDim]; faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; // first index of this face @@ -748,7 +750,7 @@ void CIsoparametric::Set_TransferCoeff(CConfig **config){ storeCoeff[iDonor] = myCoeff[iDonor]; jVertex = Buffer_Receive_FaceNodes[faceindex+iDonor]; storeGlobal[iDonor] =Buffer_Receive_GlobalPoint[jVertex]; - storeProc[iDonor] = Buffer_Receive_FaceProc[faceindex+iDonor]; + storeProc[iDonor] = (int)Buffer_Receive_FaceProc[faceindex+iDonor]; } } @@ -1184,7 +1186,7 @@ void CMirror::Set_TransferCoeff(CConfig **config){ for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ for (iFace = 0; iFace < Buffer_Receive_nFace_Donor[iProcessor]; iFace++) { faceindex = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace]; // first index of this face - iNodes = Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1]- faceindex; + iNodes = (unsigned int)Buffer_Receive_FaceIndex[iProcessor*MaxFace_Donor+iFace+1]- (unsigned int)faceindex; for (iTarget=0; iTargetSetFSIIter(FSIIter); unsigned long nFSIIter = config_container[ZONE_FLOW]->GetnIterFSI(); - - int rank = MASTER_NODE; #ifdef HAVE_MPI + int rank = MASTER_NODE; MPI_Comm_rank(MPI_COMM_WORLD, &rank); #endif diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index 0c278361755..c106059001a 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -650,342 +650,340 @@ void CIntegration::SetDualTime_Solver(CGeometry *geometry, CSolver *solver, CCon } void CIntegration::SetStructural_Solver(CGeometry *geometry, CSolver *solver, CConfig *config, unsigned short iMesh) { - - unsigned long iPoint; - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - solver->node[iPoint]->SetSolution_time_n(); - solver->node[iPoint]->SetSolution_Vel_time_n(); - solver->node[iPoint]->SetSolution_Accel_time_n(); - - } - - bool fsi = config->GetFSI_Simulation(); - - /*--- If FSI problem, save the last Aitken relaxation parameter of the previous time step ---*/ - - if (fsi){ - - su2double WAitk=0.0; - - WAitk = solver->GetWAitken_Dyn(); - solver->SetWAitken_Dyn_tn1(WAitk); - - } - - + + unsigned long iPoint; + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + solver->node[iPoint]->SetSolution_time_n(); + solver->node[iPoint]->SetSolution_Vel_time_n(); + solver->node[iPoint]->SetSolution_Accel_time_n(); + + } + + bool fsi = config->GetFSI_Simulation(); + + /*--- If FSI problem, save the last Aitken relaxation parameter of the previous time step ---*/ + + if (fsi){ + + su2double WAitk=0.0; + + WAitk = solver->GetWAitken_Dyn(); + solver->SetWAitken_Dyn_tn1(WAitk); + + } + + } void CIntegration::SetFEM_StructuralSolver(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { - - unsigned long iPoint; - bool fsi = config->GetFSI_Simulation(); - - /*--- Update the solution according to the integration scheme used ---*/ - - switch (config->GetKind_TimeIntScheme_FEA()) { - case (CD_EXPLICIT): - break; - case (NEWMARK_IMPLICIT): - if (fsi) solver_container[FEA_SOL]->ImplicitNewmark_Relaxation(geometry, solver_container, config); - break; - case (GENERALIZED_ALPHA): - //if (fsi) solver_container[FEA_SOL]->Update_StructSolution(geometry, solver_container, config); - solver_container[FEA_SOL]->GeneralizedAlpha_UpdateSolution(geometry, solver_container, config); - solver_container[FEA_SOL]->GeneralizedAlpha_UpdateLoads(geometry, solver_container, config); - break; - } - - /*--- Store the solution at t+1 as solution at t, both for the local points and for the halo points ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - - solver_container[FEA_SOL]->node[iPoint]->SetSolution_time_n(); - solver_container[FEA_SOL]->node[iPoint]->SetSolution_Vel_time_n(); - solver_container[FEA_SOL]->node[iPoint]->SetSolution_Accel_time_n(); - - } - - /*--- If FSI problem, save the last Aitken relaxation parameter of the previous time step ---*/ - - if (fsi){ - - su2double WAitk=0.0; - - WAitk = solver_container[FEA_SOL]->GetWAitken_Dyn(); - solver_container[FEA_SOL]->SetWAitken_Dyn_tn1(WAitk); - - } - + + unsigned long iPoint; + bool fsi = config->GetFSI_Simulation(); + + /*--- Update the solution according to the integration scheme used ---*/ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + break; + case (NEWMARK_IMPLICIT): + if (fsi) solver_container[FEA_SOL]->ImplicitNewmark_Relaxation(geometry, solver_container, config); + break; + case (GENERALIZED_ALPHA): + //if (fsi) solver_container[FEA_SOL]->Update_StructSolution(geometry, solver_container, config); + solver_container[FEA_SOL]->GeneralizedAlpha_UpdateSolution(geometry, solver_container, config); + solver_container[FEA_SOL]->GeneralizedAlpha_UpdateLoads(geometry, solver_container, config); + break; + } + + /*--- Store the solution at t+1 as solution at t, both for the local points and for the halo points ---*/ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + + solver_container[FEA_SOL]->node[iPoint]->SetSolution_time_n(); + solver_container[FEA_SOL]->node[iPoint]->SetSolution_Vel_time_n(); + solver_container[FEA_SOL]->node[iPoint]->SetSolution_Accel_time_n(); + + } + + /*--- If FSI problem, save the last Aitken relaxation parameter of the previous time step ---*/ + + if (fsi){ + + su2double WAitk=0.0; + + WAitk = solver_container[FEA_SOL]->GetWAitken_Dyn(); + solver_container[FEA_SOL]->SetWAitken_Dyn_tn1(WAitk); + + } + } void CIntegration::Convergence_Monitoring_FEM(CGeometry *geometry, CConfig *config, CSolver *solver, unsigned long iFSIIter) { - - su2double Reference_UTOL, Reference_RTOL, Reference_ETOL; - su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - int size; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); - #endif - - bool Already_Converged = Convergence; - - Reference_UTOL = config->GetResidual_FEM_UTOL(); - Reference_RTOL = config->GetResidual_FEM_RTOL(); - Reference_ETOL = config->GetResidual_FEM_ETOL(); - - Residual_UTOL = log10(solver->GetRes_FEM(0)); - Residual_RTOL = log10(solver->GetRes_FEM(1)); - Residual_ETOL = log10(solver->GetRes_FEM(2)); - -// cout << "Reference - UTOL: " << Reference_UTOL << " ETOL: " << Reference_ETOL << " RTOL: " << Reference_RTOL << endl; -// cout << "Residual - UTOL: " << Residual_UTOL << " ETOL: " << Residual_ETOL << " RTOL: " << Residual_RTOL << endl; - - if ((Residual_UTOL <= Reference_UTOL) && - (Residual_ETOL <= Reference_ETOL) && - (Residual_RTOL <= Reference_RTOL)){ - Convergence = true; - } - - if (Already_Converged) Convergence = true; - - - /*--- Apply the same convergence criteria to all the processors ---*/ - + + su2double Reference_UTOL, Reference_RTOL, Reference_ETOL; + su2double Residual_UTOL, Residual_RTOL, Residual_ETOL; + #ifdef HAVE_MPI - - unsigned short *sbuf_conv = NULL, *rbuf_conv = NULL; - sbuf_conv = new unsigned short[1]; sbuf_conv[0] = 0; - rbuf_conv = new unsigned short[1]; rbuf_conv[0] = 0; - - /*--- Convergence criteria ---*/ - - sbuf_conv[0] = Convergence; - SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); - - /*-- Compute global convergence criteria in the master node --*/ - - sbuf_conv[0] = 0; - if (rank == MASTER_NODE) { - if (rbuf_conv[0] == size) sbuf_conv[0] = 1; - else sbuf_conv[0] = 0; - } - - SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); - - if (sbuf_conv[0] == 1) { Convergence = true; } - else { Convergence = false; } - - delete [] sbuf_conv; - delete [] rbuf_conv; - + int rank = MASTER_NODE; + int size = SINGLE_NODE; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); #endif - + + bool Already_Converged = Convergence; + + Reference_UTOL = config->GetResidual_FEM_UTOL(); + Reference_RTOL = config->GetResidual_FEM_RTOL(); + Reference_ETOL = config->GetResidual_FEM_ETOL(); + + Residual_UTOL = log10(solver->GetRes_FEM(0)); + Residual_RTOL = log10(solver->GetRes_FEM(1)); + Residual_ETOL = log10(solver->GetRes_FEM(2)); + + // cout << "Reference - UTOL: " << Reference_UTOL << " ETOL: " << Reference_ETOL << " RTOL: " << Reference_RTOL << endl; + // cout << "Residual - UTOL: " << Residual_UTOL << " ETOL: " << Residual_ETOL << " RTOL: " << Residual_RTOL << endl; + + if ((Residual_UTOL <= Reference_UTOL) && + (Residual_ETOL <= Reference_ETOL) && + (Residual_RTOL <= Reference_RTOL)){ + Convergence = true; + } + + if (Already_Converged) Convergence = true; + + + /*--- Apply the same convergence criteria to all the processors ---*/ + +#ifdef HAVE_MPI + + unsigned short *sbuf_conv = NULL, *rbuf_conv = NULL; + sbuf_conv = new unsigned short[1]; sbuf_conv[0] = 0; + rbuf_conv = new unsigned short[1]; rbuf_conv[0] = 0; + + /*--- Convergence criteria ---*/ + + sbuf_conv[0] = Convergence; + SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + + /*-- Compute global convergence criteria in the master node --*/ + + sbuf_conv[0] = 0; + if (rank == MASTER_NODE) { + if (rbuf_conv[0] == size) sbuf_conv[0] = 1; + else sbuf_conv[0] = 0; + } + + SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + + if (sbuf_conv[0] == 1) { Convergence = true; } + else { Convergence = false; } + + delete [] sbuf_conv; + delete [] rbuf_conv; + +#endif + } void CIntegration::Convergence_Monitoring_FSI(CGeometry *fea_geometry, CConfig *fea_config, CSolver *fea_solver, unsigned long iFSIIter) { - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - int size; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); - #endif - - su2double FEA_check[2] = {0.0, 0.0}; - su2double magResidualFSI, logResidualFSI_initial, logResidualFSI; - su2double magResidualFSI_criteria, logResidualFSI_criteria; - - unsigned long iExtIter = fea_config->GetExtIter(); - - unsigned long iPoint, iDim; - unsigned long nPointDomain, nDim; - su2double *dispPred, *dispPred_Old; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); - su2double deltaU, deltaURad, deltaURes, deltaURes_recv = 0.0; - - bool stat_time = (CurrentTime <= Static_Time); - - magResidualFSI_criteria = -1*fea_config->GetOrderMagResidualFSI(); - logResidualFSI_criteria = fea_config->GetMinLogResidualFSI(); - - deltaURes = 0.0; - - ofstream historyFile_FSI; - bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); - if (writeHistFSI && (rank == MASTER_NODE)){ - char cstrFSI[200]; - string filenameHistFSI = fea_config->GetConv_FileName_FSI(); - strcpy (cstrFSI, filenameHistFSI.data()); - historyFile_FSI.open (cstrFSI, std::ios_base::app); - } - - /*--- Only when there is movement it makes sense to check convergence (otherwise, it is always converged...) ---*/ - /*--- The same with the first iteration, if we are doing strongly coupled we need at least two. ---*/ - - if ((CurrentTime > Static_Time) && (iFSIIter == 0)) { - /*--- Set the convergence values to 0.0 --*/ - fea_solver->SetFSI_ConvValue(0,0.0); - fea_solver->SetFSI_ConvValue(1,0.0); - - if (writeHistFSI && (rank == MASTER_NODE)){ - historyFile_FSI << endl; - } - - } - else if ((CurrentTime > Static_Time) && (iFSIIter > 0)) { - - // We loop only over the points that belong to the processor - nPointDomain = fea_geometry->GetnPointDomain(); - nDim = fea_geometry->GetnDim(); - - for (iPoint=0; iPoint < nPointDomain; iPoint++){ - - deltaURad = 0.0; - - dispPred = fea_solver->node[iPoint]->GetSolution_Pred(); - dispPred_Old = fea_solver->node[iPoint]->GetSolution_Pred_Old(); - - for (iDim = 0; iDim < nDim; iDim++){ - - /*--- Compute the deltaU, and add deltaU2 to deltaURad ---*/ - deltaU = dispPred[iDim] - dispPred_Old[iDim]; - deltaURad += deltaU * deltaU; - - } - - /*--- The residual is the maximum of the values of sqrt(deltaURad) computed ---*/ - deltaURad = sqrt(deltaURad); - deltaURes = max(deltaURes, deltaURad); - - } - - // We need to communicate the maximum residual throughout the different processors - - #ifdef HAVE_MPI - /*--- We sum the squares of the norms across the different processors ---*/ - SU2_MPI::Allreduce(&deltaURes, &deltaURes_recv, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - #else - deltaURes_recv = deltaURes; - #endif - - if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << deltaURes_recv << "," ;} - - if (iFSIIter == 1){ - fea_solver->SetFSI_ConvValue(0,deltaURes_recv); - logResidualFSI_initial = log10(deltaURes_recv); - - if (logResidualFSI_initial < logResidualFSI_criteria) Convergence_FSI = true; - - if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI_initial;} - - } - else { - fea_solver->SetFSI_ConvValue(1,deltaURes_recv); - FEA_check[0] = fea_solver->GetFSI_ConvValue(0); - logResidualFSI_initial = log10(FEA_check[0]); - logResidualFSI = log10(deltaURes_recv); - - magResidualFSI=logResidualFSI-logResidualFSI_initial; - - if (writeHistFSI && (rank == MASTER_NODE)){ - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << magResidualFSI ; - } - - if ((logResidualFSI < logResidualFSI_criteria) || (magResidualFSI < magResidualFSI_criteria)) Convergence_FSI = true; - } - - if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << endl;} - - } - - if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI.close();} - - /*--- Apply the same convergence criteria to all the processors ---*/ - + + int rank = MASTER_NODE; #ifdef HAVE_MPI - - unsigned short *sbuf_conv = NULL, *rbuf_conv = NULL; - sbuf_conv = new unsigned short[1]; sbuf_conv[0] = 0; - rbuf_conv = new unsigned short[1]; rbuf_conv[0] = 0; - - /*--- Convergence criteria ---*/ - - sbuf_conv[0] = Convergence_FSI; - SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); - - /*-- Compute global convergence criteria in the master node --*/ - - sbuf_conv[0] = 0; - if (rank == MASTER_NODE) { - if (rbuf_conv[0] == size) sbuf_conv[0] = 1; - else sbuf_conv[0] = 0; + int size; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); +#endif + + su2double FEA_check[2] = {0.0, 0.0}; + su2double magResidualFSI = 0.0, logResidualFSI_initial = 0.0, logResidualFSI = 0.0; + su2double magResidualFSI_criteria, logResidualFSI_criteria; + + unsigned long iExtIter = fea_config->GetExtIter(); + + unsigned long iPoint, iDim; + unsigned long nPointDomain, nDim; + su2double *dispPred, *dispPred_Old; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); + su2double deltaU, deltaURad, deltaURes, deltaURes_recv = 0.0; + + bool stat_time = (CurrentTime <= Static_Time); + + magResidualFSI_criteria = -1*fea_config->GetOrderMagResidualFSI(); + logResidualFSI_criteria = fea_config->GetMinLogResidualFSI(); + + deltaURes = 0.0; + + ofstream historyFile_FSI; + bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); + if (writeHistFSI && (rank == MASTER_NODE)){ + char cstrFSI[200]; + string filenameHistFSI = fea_config->GetConv_FileName_FSI(); + strcpy (cstrFSI, filenameHistFSI.data()); + historyFile_FSI.open (cstrFSI, std::ios_base::app); + } + + /*--- Only when there is movement it makes sense to check convergence (otherwise, it is always converged...) ---*/ + /*--- The same with the first iteration, if we are doing strongly coupled we need at least two. ---*/ + + if ((CurrentTime > Static_Time) && (iFSIIter == 0)) { + /*--- Set the convergence values to 0.0 --*/ + fea_solver->SetFSI_ConvValue(0,0.0); + fea_solver->SetFSI_ConvValue(1,0.0); + + if (writeHistFSI && (rank == MASTER_NODE)){ + historyFile_FSI << endl; } - - SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); - - if (sbuf_conv[0] == 1) { Convergence_FSI = true; } - else { Convergence_FSI = false; } - - delete [] sbuf_conv; - delete [] rbuf_conv; - + + } + else if ((CurrentTime > Static_Time) && (iFSIIter > 0)) { + + // We loop only over the points that belong to the processor + nPointDomain = fea_geometry->GetnPointDomain(); + nDim = fea_geometry->GetnDim(); + + for (iPoint=0; iPoint < nPointDomain; iPoint++){ + + deltaURad = 0.0; + + dispPred = fea_solver->node[iPoint]->GetSolution_Pred(); + dispPred_Old = fea_solver->node[iPoint]->GetSolution_Pred_Old(); + + for (iDim = 0; iDim < nDim; iDim++){ + + /*--- Compute the deltaU, and add deltaU2 to deltaURad ---*/ + deltaU = dispPred[iDim] - dispPred_Old[iDim]; + deltaURad += deltaU * deltaU; + + } + + /*--- The residual is the maximum of the values of sqrt(deltaURad) computed ---*/ + deltaURad = sqrt(deltaURad); + deltaURes = max(deltaURes, deltaURad); + + } + + // We need to communicate the maximum residual throughout the different processors + +#ifdef HAVE_MPI + /*--- We sum the squares of the norms across the different processors ---*/ + SU2_MPI::Allreduce(&deltaURes, &deltaURes_recv, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); +#else + deltaURes_recv = deltaURes; #endif - - if (rank == MASTER_NODE){ - - su2double WAitken; - unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); - - if (RelaxMethod_FSI == NO_RELAXATION){ - WAitken = 1.0; - } - else if (RelaxMethod_FSI == FIXED_PARAMETER){ - WAitken = fea_config->GetAitkenStatRelax(); - } - else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ - WAitken = fea_solver->GetWAitken_Dyn(); - } - else { - WAitken = 1.0; - cout << "No relaxation parameter used. " << endl; - } - - cout << endl; - cout.setf(ios::fixed, ios::floatfield); - cout << endl << "Simulation time: " << fea_config->GetCurrent_DynTime() << ". Time step: " << fea_config->GetDelta_DynTime() << "."; - cout.precision(6); - cout << endl <<"---------------------- FSI Convergence Summary -------------------------- "; - if (stat_time){ - cout << endl <<" The structure is being held static. No convergence is checked."; - } - else{ - if (iFSIIter == 0) cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << endl; - else if (iFSIIter == 1) cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << endl; - else cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << " Res[OMAG]"<< endl; - - cout.width(8); cout << iFSIIter; - cout.width(8); cout << iExtIter; - cout.width(15); cout << WAitken; - cout.width(15); - if (iFSIIter == 0) cout << " "; - else if (iFSIIter == 1) cout << logResidualFSI_initial; - else cout << logResidualFSI; - cout.width(15); - if (iFSIIter < 2) cout << " "; - else cout << magResidualFSI; - } - - cout << endl << "------------------------------------------------------------------------- "; - cout << endl; + + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << deltaURes_recv << "," ;} + + if (iFSIIter == 1){ + fea_solver->SetFSI_ConvValue(0,deltaURes_recv); + logResidualFSI_initial = log10(deltaURes_recv); + + if (logResidualFSI_initial < logResidualFSI_criteria) Convergence_FSI = true; + + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI_initial;} + } - + else { + fea_solver->SetFSI_ConvValue(1,deltaURes_recv); + FEA_check[0] = fea_solver->GetFSI_ConvValue(0); + logResidualFSI_initial = log10(FEA_check[0]); + logResidualFSI = log10(deltaURes_recv); + + magResidualFSI=logResidualFSI-logResidualFSI_initial; + + if (writeHistFSI && (rank == MASTER_NODE)){ + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << logResidualFSI << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << magResidualFSI ; + } + + if ((logResidualFSI < logResidualFSI_criteria) || (magResidualFSI < magResidualFSI_criteria)) Convergence_FSI = true; + } + + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI << endl;} + + } + + if (writeHistFSI && (rank == MASTER_NODE)){ historyFile_FSI.close();} + + /*--- Apply the same convergence criteria to all the processors ---*/ + +#ifdef HAVE_MPI + + unsigned short *sbuf_conv = NULL, *rbuf_conv = NULL; + sbuf_conv = new unsigned short[1]; sbuf_conv[0] = 0; + rbuf_conv = new unsigned short[1]; rbuf_conv[0] = 0; + + /*--- Convergence criteria ---*/ + + sbuf_conv[0] = Convergence_FSI; + SU2_MPI::Reduce(sbuf_conv, rbuf_conv, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + + /*-- Compute global convergence criteria in the master node --*/ + + sbuf_conv[0] = 0; + if (rank == MASTER_NODE) { + if (rbuf_conv[0] == size) sbuf_conv[0] = 1; + else sbuf_conv[0] = 0; + } + + SU2_MPI::Bcast(sbuf_conv, 1, MPI_UNSIGNED_SHORT, MASTER_NODE, MPI_COMM_WORLD); + + if (sbuf_conv[0] == 1) { Convergence_FSI = true; } + else { Convergence_FSI = false; } + + delete [] sbuf_conv; + delete [] rbuf_conv; + +#endif + + if (rank == MASTER_NODE){ + + su2double WAitken; + unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); + + if (RelaxMethod_FSI == NO_RELAXATION){ + WAitken = 1.0; + } + else if (RelaxMethod_FSI == FIXED_PARAMETER){ + WAitken = fea_config->GetAitkenStatRelax(); + } + else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ + WAitken = fea_solver->GetWAitken_Dyn(); + } + else { + WAitken = 1.0; + cout << "No relaxation parameter used. " << endl; + } + + cout << endl; + cout.setf(ios::fixed, ios::floatfield); + cout << endl << "Simulation time: " << fea_config->GetCurrent_DynTime() << ". Time step: " << fea_config->GetDelta_DynTime() << "."; + cout.precision(6); + cout << endl <<"---------------------- FSI Convergence Summary -------------------------- "; + if (stat_time){ + cout << endl <<" The structure is being held static. No convergence is checked."; + } + else{ + if (iFSIIter == 0) cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << endl; + else if (iFSIIter == 1) cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << endl; + else cout << endl <<" BGSIter" << " ExtIter" << " Relaxation" << " Res[ATOL]" << " Res[OMAG]"<< endl; + + cout.width(8); cout << iFSIIter; + cout.width(8); cout << iExtIter; + cout.width(15); cout << WAitken; + cout.width(15); + if (iFSIIter == 0) cout << " "; + else if (iFSIIter == 1) cout << logResidualFSI_initial; + else cout << logResidualFSI; + cout.width(15); + if (iFSIIter < 2) cout << " "; + else cout << magResidualFSI; + } + + cout << endl << "------------------------------------------------------------------------- "; + cout << endl; + } + } - - diff --git a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp index f0caaf9ccca..001a47ac82a 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp @@ -896,7 +896,7 @@ void CFEM_NeoHookean_Incomp::Compute_Constitutive_Matrix(CElement *element, CCon void CFEM_NeoHookean_Incomp::Compute_Stress_Tensor(CElement *element, CConfig *config) { unsigned short iDim,jDim; - su2double dij, el_P; + su2double dij = 0.0, el_P; su2double Ib = 0.0, Jft; /*--- First invariant of b -> Ib = tr(b) ---*/ diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 2e0630814c9..83595689468 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -32,3601 +32,3594 @@ #include "../include/solver_structure.hpp" CFEM_ElasticitySolver::CFEM_ElasticitySolver(void) : CSolver() { - - nElement = 0; - nDim = 0; - nMarker = 0; - - nPoint = 0; - nPointDomain = 0; - - Total_CFEA = 0.0; - WAitken_Dyn = 0.0; - WAitken_Dyn_tn1 = 0.0; - loadIncrement = 1.0; - - element_container = NULL; - node = NULL; - - GradN_X = NULL; - GradN_x = NULL; - - Jacobian_c_ij = NULL; - Jacobian_s_ij = NULL; - Jacobian_k_ij = NULL; - - MassMatrix_ij = NULL; - - mZeros_Aux = NULL; - mId_Aux = NULL; - - Res_Stress_i = NULL; - Res_Ext_Surf = NULL; - Res_Time_Cont = NULL; - Res_FSI_Cont = NULL; - - Res_Dead_Load = NULL; - - nodeReactions = NULL; - - solutionPredictor = NULL; - - SolRest = NULL; - - normalVertex = NULL; - stressTensor = NULL; - - Solution_Interm = NULL; - + + nElement = 0; + nDim = 0; + nMarker = 0; + + nPoint = 0; + nPointDomain = 0; + + Total_CFEA = 0.0; + WAitken_Dyn = 0.0; + WAitken_Dyn_tn1 = 0.0; + loadIncrement = 1.0; + + element_container = NULL; + node = NULL; + + GradN_X = NULL; + GradN_x = NULL; + + Jacobian_c_ij = NULL; + Jacobian_s_ij = NULL; + Jacobian_k_ij = NULL; + + MassMatrix_ij = NULL; + + mZeros_Aux = NULL; + mId_Aux = NULL; + + Res_Stress_i = NULL; + Res_Ext_Surf = NULL; + Res_Time_Cont = NULL; + Res_FSI_Cont = NULL; + + Res_Dead_Load = NULL; + + nodeReactions = NULL; + + solutionPredictor = NULL; + + SolRest = NULL; + + normalVertex = NULL; + stressTensor = NULL; + + Solution_Interm = NULL; + } CFEM_ElasticitySolver::CFEM_ElasticitySolver(CGeometry *geometry, CConfig *config) : CSolver() { - - unsigned long iPoint; - unsigned short iVar, jVar, iDim, jDim; - unsigned short iTerm; - - unsigned short iZone = config->GetiZone(); - unsigned short nZone = geometry->GetnZone(); - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - bool fsi = config->GetFSI_Simulation(); // FSI simulation - bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. - - bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). - bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - su2double E = config->GetElasticyMod(); - - nElement = geometry->GetnElem(); - nDim = geometry->GetnDim(); - nMarker = geometry->GetnMarker(); - - nPoint = geometry->GetnPoint(); - nPointDomain = geometry->GetnPointDomain(); - - - /*--- Here is where we assign the kind of each element ---*/ - - /*--- First level: different possible terms of the equations ---*/ - element_container = new CElement** [MAX_TERMS]; - for (iTerm = 0; iTerm < MAX_TERMS; iTerm++) - element_container[iTerm] = new CElement* [MAX_FE_KINDS]; - - if (nDim == 2){ - if (incompressible){ - element_container[FEA_TERM][EL_TRIA] = new CTRIA1(nDim, config); - element_container[FEA_TERM][EL_QUAD] = new CQUAD4P1(nDim, config); - } - else{ - element_container[FEA_TERM][EL_TRIA] = new CTRIA1(nDim, config); - element_container[FEA_TERM][EL_QUAD] = new CQUAD4(nDim, config); - } - } - else if (nDim == 3){ - if (incompressible){ - element_container[FEA_TERM][EL_TETRA] = new CTETRA1(nDim, config); - element_container[FEA_TERM][EL_HEXA] = new CHEXA8P1(nDim, config); - } - else{ - element_container[FEA_TERM][EL_TETRA] = new CTETRA1(nDim, config); - element_container[FEA_TERM][EL_HEXA] = new CHEXA8(nDim, config); - } - } - - node = new CVariable*[nPoint]; - - GradN_X = new su2double [nDim]; - GradN_x = new su2double [nDim]; - - Total_CFEA = 0.0; - WAitken_Dyn = 0.0; - WAitken_Dyn_tn1 = 0.0; - loadIncrement = 0.0; - - SetFSI_ConvValue(0,0.0); - SetFSI_ConvValue(1,0.0); - - nVar = nDim; - - /*--- Define some auxiliary vectors related to the residual ---*/ - - Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; - Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; - Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; - Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; - Point_Max_Coord = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Point_Max_Coord[iVar] = new su2double[nDim]; - for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; - } - - /*--- Define some auxiliary vectors related to the solution ---*/ - - Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; - - if (gen_alpha) { - Solution_Interm = new su2double[nVar]; - for (iVar = 0; iVar < nVar; iVar++) Solution_Interm[iVar] = 0.0; - } - else{ - Solution_Interm = NULL; - } - - nodeReactions = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; - - /*--- The length of the solution vector depends on whether the problem is static or dynamic ---*/ - - - unsigned short nSolVar; - unsigned long index; - string text_line, filename; - ifstream restart_file; - su2double dull_val; - long Dyn_RestartIter; - - if (dynamic) nSolVar = 3 * nVar; - else nSolVar = nVar; - - SolRest = new su2double[nSolVar]; - - bool restart = (config->GetRestart() || config->GetRestart_Flow()); - - /*--- Check for a restart, initialize from zero otherwise ---*/ - - if (!restart) { - for (iVar = 0; iVar < nSolVar; iVar++) SolRest[iVar] = 0.0; - for (iPoint = 0; iPoint < nPoint; iPoint++) { - node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); - } - } - else { - - /*--- Restart the solution from file information ---*/ - - filename = config->GetSolution_FEMFileName(); - - /*--- If multizone, append zone name ---*/ - if (nZone > 1) - filename = config->GetMultizone_FileName(filename, iZone); - - if (dynamic) { - - Dyn_RestartIter = SU2_TYPE::Int(config->GetDyn_RestartIter())-1; - - filename = config->GetUnsteady_FileName(filename, Dyn_RestartIter); - } - - restart_file.open(filename.data(), ios::in); - - /*--- In case there is no file ---*/ - - if (restart_file.fail()) { - if (rank == MASTER_NODE) - cout << "There is no FEM restart file!!" << endl; - exit(EXIT_FAILURE); - } - - /*--- In case this is a parallel simulation, we need to perform the - Global2Local index transformation first. ---*/ - - long *Global2Local = new long[geometry->GetGlobal_nPointDomain()]; - - /*--- First, set all indices to a negative value by default ---*/ - - for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) - Global2Local[iPoint] = -1; - - /*--- Now fill array with the transform values only for local points ---*/ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++) - Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; - - /*--- Read all lines in the restart file ---*/ - - long iPoint_Local; - unsigned long iPoint_Global_Local = 0, iPoint_Global = 0; string text_line; - unsigned short rbuf_NotMatching = 0, sbuf_NotMatching = 0; - - /*--- The first line is the header ---*/ - - getline (restart_file, text_line); - - while (getline (restart_file, text_line)) { - istringstream point_line(text_line); - - /*--- Retrieve local index. If this node from the restart file lives - on a different processor, the value of iPoint_Local will be -1. - Otherwise, the local index for this node on the current processor - will be returned and used to instantiate the vars. ---*/ - - iPoint_Local = Global2Local[iPoint_Global]; - - if (iPoint_Local >= 0) { - if (dynamic){ - if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5]; - if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5] >> SolRest[6] >> SolRest[7] >> SolRest[8]; - } - else { - if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1]; - if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2]; - } - - node[iPoint_Local] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); - iPoint_Global_Local++; - } - iPoint_Global++; - } - - /*--- Detect a wrong solution file ---*/ - - if (iPoint_Global_Local < nPointDomain) { sbuf_NotMatching = 1; } - - #ifndef HAVE_MPI - rbuf_NotMatching = sbuf_NotMatching; - #else - SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); - #endif - - if (rbuf_NotMatching != 0) { - if (rank == MASTER_NODE) { - cout << endl << "The solution file " << filename.data() << " doesn't match with the mesh file!" << endl; - cout << "It could be empty lines at the end of the file." << endl << endl; - } - #ifndef HAVE_MPI - exit(EXIT_FAILURE); - #else - MPI_Barrier(MPI_COMM_WORLD); - MPI_Abort(MPI_COMM_WORLD,1); - MPI_Finalize(); - #endif - } - - /*--- Instantiate the variable class with an arbitrary solution - at any halo/periodic nodes. The initial solution can be arbitrary, - because a send/recv is performed immediately in the solver (Set_MPI_Solution()). ---*/ - - for (iPoint = nPointDomain; iPoint < nPoint; iPoint++) { - node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); - } - - - /*--- Close the restart file ---*/ - - restart_file.close(); - - /*--- Free memory needed for the transformation ---*/ - - delete [] Global2Local; - - } - - /*--- Term ij of the Jacobian ---*/ - - Jacobian_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_ij[iVar][jVar] = 0.0; - } - } - - /*--- Term ij of the Mass Matrix (only if dynamic analysis) ---*/ - - if (dynamic){ - MassMatrix_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - MassMatrix_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - MassMatrix_ij[iVar][jVar] = 0.0; - } - } - } - else { - MassMatrix_ij = NULL; - } - - - if (nonlinear_analysis){ - - /*--- Term ij of the Jacobian (constitutive contribution) ---*/ - - Jacobian_c_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_c_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_c_ij[iVar][jVar] = 0.0; - } - } - - /*--- Term ij of the Jacobian (stress contribution) ---*/ - - Jacobian_s_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_s_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_s_ij[iVar][jVar] = 0.0; - } - } - - } - else{ - Jacobian_c_ij = NULL; - Jacobian_s_ij = NULL; - } - - /*--- Term ij of the Jacobian (incompressibility term) ---*/ - - if (incompressible){ - Jacobian_k_ij = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - Jacobian_k_ij[iVar] = new su2double [nVar]; - for (jVar = 0; jVar < nVar; jVar++) { - Jacobian_k_ij[iVar][jVar] = 0.0; - } - } - } - else { - Jacobian_k_ij = NULL; - } - - /*--- Stress contribution to the node i ---*/ - Res_Stress_i = new su2double[nVar]; - - /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ - Res_Ext_Surf = new su2double[nVar]; - - /*--- Contribution of the body forces to the residual (auxiliary vector) ---*/ - if (body_forces){ - Res_Dead_Load = new su2double[nVar]; - } - else { - Res_Dead_Load = NULL; - } - - /*--- Contribution of the fluid tractions to the residual (auxiliary vector) ---*/ - if (fsi){ - Res_FSI_Cont = new su2double[nVar]; - } - else { - Res_FSI_Cont = NULL; - } - - /*--- Time integration contribution to the residual ---*/ - if (dynamic) { - Res_Time_Cont = new su2double [nVar]; - } - else { - Res_Time_Cont = NULL; - } - - /*--- Matrices to impose clamped boundary conditions ---*/ - - mZeros_Aux = new su2double *[nDim]; - for(iDim = 0; iDim < nDim; iDim++) - mZeros_Aux[iDim] = new su2double[nDim]; - - mId_Aux = new su2double *[nDim]; - for(iDim = 0; iDim < nDim; iDim++) - mId_Aux[iDim] = new su2double[nDim]; - - for(iDim = 0; iDim < nDim; iDim++){ - for (jDim = 0; jDim < nDim; jDim++){ - mZeros_Aux[iDim][jDim] = 0.0; - mId_Aux[iDim][jDim] = 0.0; - } - mId_Aux[iDim][iDim] = E; - } - - - /*--- Initialization of matrix structures ---*/ - if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; - - Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - - if (dynamic) { - MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); - TimeRes_Aux.Initialize(nPoint, nPointDomain, nVar, 0.0); - TimeRes.Initialize(nPoint, nPointDomain, nVar, 0.0); - } - - - /*--- Initialization of linear solver structures ---*/ - LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); - LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); - - LinSysAux.Initialize(nPoint, nPointDomain, nVar, 0.0); - - LinSysReact.Initialize(nPoint, nPointDomain, nVar, 0.0); - - /*--- Initialize the auxiliary vector and matrix for the computation of the nodal Reactions ---*/ - - normalVertex = new su2double [nDim]; - - stressTensor = new su2double* [nDim]; - for (iVar = 0; iVar < nVar; iVar++){ - stressTensor[iVar] = new su2double [nDim]; - } - - /*---- Initialize the auxiliary vector for the solution predictor ---*/ - - solutionPredictor = new su2double [nVar]; - - /*--- Perform the MPI communication of the solution ---*/ - - Set_MPI_Solution(geometry, config); - - /*--- If dynamic, we also need to communicate the old solution ---*/ - - if(dynamic) Set_MPI_Solution_Old(geometry, config); - + + unsigned long iPoint; + unsigned short iVar, jVar, iDim, jDim; + unsigned short iTerm; + + unsigned short iZone = config->GetiZone(); + unsigned short nZone = geometry->GetnZone(); + + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool fsi = config->GetFSI_Simulation(); // FSI simulation + bool gen_alpha = (config->GetKind_TimeIntScheme_FEA() == GENERALIZED_ALPHA); // Generalized alpha method requires residual at previous time step. + + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + su2double E = config->GetElasticyMod(); + + nElement = geometry->GetnElem(); + nDim = geometry->GetnDim(); + nMarker = geometry->GetnMarker(); + + nPoint = geometry->GetnPoint(); + nPointDomain = geometry->GetnPointDomain(); + + + /*--- Here is where we assign the kind of each element ---*/ + + /*--- First level: different possible terms of the equations ---*/ + element_container = new CElement** [MAX_TERMS]; + for (iTerm = 0; iTerm < MAX_TERMS; iTerm++) + element_container[iTerm] = new CElement* [MAX_FE_KINDS]; + + if (nDim == 2){ + if (incompressible){ + element_container[FEA_TERM][EL_TRIA] = new CTRIA1(nDim, config); + element_container[FEA_TERM][EL_QUAD] = new CQUAD4P1(nDim, config); + } + else{ + element_container[FEA_TERM][EL_TRIA] = new CTRIA1(nDim, config); + element_container[FEA_TERM][EL_QUAD] = new CQUAD4(nDim, config); + } + } + else if (nDim == 3){ + if (incompressible){ + element_container[FEA_TERM][EL_TETRA] = new CTETRA1(nDim, config); + element_container[FEA_TERM][EL_HEXA] = new CHEXA8P1(nDim, config); + } + else{ + element_container[FEA_TERM][EL_TETRA] = new CTETRA1(nDim, config); + element_container[FEA_TERM][EL_HEXA] = new CHEXA8(nDim, config); + } + } + + node = new CVariable*[nPoint]; + + GradN_X = new su2double [nDim]; + GradN_x = new su2double [nDim]; + + Total_CFEA = 0.0; + WAitken_Dyn = 0.0; + WAitken_Dyn_tn1 = 0.0; + loadIncrement = 0.0; + + SetFSI_ConvValue(0,0.0); + SetFSI_ConvValue(1,0.0); + + nVar = nDim; + + /*--- Define some auxiliary vectors related to the residual ---*/ + + Residual = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual[iVar] = 0.0; + Residual_RMS = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_RMS[iVar] = 0.0; + Residual_Max = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Residual_Max[iVar] = 0.0; + Point_Max = new unsigned long[nVar]; for (iVar = 0; iVar < nVar; iVar++) Point_Max[iVar] = 0; + Point_Max_Coord = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Point_Max_Coord[iVar] = new su2double[nDim]; + for (iDim = 0; iDim < nDim; iDim++) Point_Max_Coord[iVar][iDim] = 0.0; + } + + /*--- Define some auxiliary vectors related to the solution ---*/ + + Solution = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = 0.0; + + if (gen_alpha) { + Solution_Interm = new su2double[nVar]; + for (iVar = 0; iVar < nVar; iVar++) Solution_Interm[iVar] = 0.0; + } + else{ + Solution_Interm = NULL; + } + + nodeReactions = new su2double[nVar]; for (iVar = 0; iVar < nVar; iVar++) nodeReactions[iVar] = 0.0; + + /*--- The length of the solution vector depends on whether the problem is static or dynamic ---*/ + + + unsigned short nSolVar; + unsigned long index; + string text_line, filename; + ifstream restart_file; + su2double dull_val; + long Dyn_RestartIter; + + if (dynamic) nSolVar = 3 * nVar; + else nSolVar = nVar; + + SolRest = new su2double[nSolVar]; + + bool restart = (config->GetRestart() || config->GetRestart_Flow()); + + /*--- Check for a restart, initialize from zero otherwise ---*/ + + if (!restart) { + for (iVar = 0; iVar < nSolVar; iVar++) SolRest[iVar] = 0.0; + for (iPoint = 0; iPoint < nPoint; iPoint++) { + node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); + } + } + else { + + /*--- Restart the solution from file information ---*/ + + filename = config->GetSolution_FEMFileName(); + + /*--- If multizone, append zone name ---*/ + if (nZone > 1) + filename = config->GetMultizone_FileName(filename, iZone); + + if (dynamic) { + + Dyn_RestartIter = SU2_TYPE::Int(config->GetDyn_RestartIter())-1; + + filename = config->GetUnsteady_FileName(filename, (int)Dyn_RestartIter); + } + + restart_file.open(filename.data(), ios::in); + + /*--- In case there is no file ---*/ + + if (restart_file.fail()) { + if (rank == MASTER_NODE) + cout << "There is no FEM restart file!!" << endl; + exit(EXIT_FAILURE); + } + + /*--- In case this is a parallel simulation, we need to perform the + Global2Local index transformation first. ---*/ + + long *Global2Local = new long[geometry->GetGlobal_nPointDomain()]; + + /*--- First, set all indices to a negative value by default ---*/ + + for (iPoint = 0; iPoint < geometry->GetGlobal_nPointDomain(); iPoint++) + Global2Local[iPoint] = -1; + + /*--- Now fill array with the transform values only for local points ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) + Global2Local[geometry->node[iPoint]->GetGlobalIndex()] = iPoint; + + /*--- Read all lines in the restart file ---*/ + + long iPoint_Local; + unsigned long iPoint_Global_Local = 0, iPoint_Global = 0; string text_line; + unsigned short rbuf_NotMatching = 0, sbuf_NotMatching = 0; + + /*--- The first line is the header ---*/ + + getline (restart_file, text_line); + + while (getline (restart_file, text_line)) { + istringstream point_line(text_line); + + /*--- Retrieve local index. If this node from the restart file lives + on a different processor, the value of iPoint_Local will be -1. + Otherwise, the local index for this node on the current processor + will be returned and used to instantiate the vars. ---*/ + + iPoint_Local = Global2Local[iPoint_Global]; + + if (iPoint_Local >= 0) { + if (dynamic){ + if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5]; + if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2] >> SolRest[3] >> SolRest[4] >> SolRest[5] >> SolRest[6] >> SolRest[7] >> SolRest[8]; + } + else { + if (nDim == 2) point_line >> index >> dull_val >> dull_val >> SolRest[0] >> SolRest[1]; + if (nDim == 3) point_line >> index >> dull_val >> dull_val >> dull_val >> SolRest[0] >> SolRest[1] >> SolRest[2]; + } + + node[iPoint_Local] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); + iPoint_Global_Local++; + } + iPoint_Global++; + } + + /*--- Detect a wrong solution file ---*/ + + if (iPoint_Global_Local < nPointDomain) { sbuf_NotMatching = 1; } + +#ifndef HAVE_MPI + rbuf_NotMatching = sbuf_NotMatching; +#else + SU2_MPI::Allreduce(&sbuf_NotMatching, &rbuf_NotMatching, 1, MPI_UNSIGNED_SHORT, MPI_SUM, MPI_COMM_WORLD); +#endif + + if (rbuf_NotMatching != 0) { + if (rank == MASTER_NODE) { + cout << endl << "The solution file " << filename.data() << " doesn't match with the mesh file!" << endl; + cout << "It could be empty lines at the end of the file." << endl << endl; + } +#ifndef HAVE_MPI + exit(EXIT_FAILURE); +#else + MPI_Barrier(MPI_COMM_WORLD); + MPI_Abort(MPI_COMM_WORLD,1); + MPI_Finalize(); +#endif + } + + /*--- Instantiate the variable class with an arbitrary solution + at any halo/periodic nodes. The initial solution can be arbitrary, + because a send/recv is performed immediately in the solver (Set_MPI_Solution()). ---*/ + + for (iPoint = nPointDomain; iPoint < nPoint; iPoint++) { + node[iPoint] = new CFEM_ElasVariable(SolRest, nDim, nVar, config); + } + + + /*--- Close the restart file ---*/ + + restart_file.close(); + + /*--- Free memory needed for the transformation ---*/ + + delete [] Global2Local; + + } + + /*--- Term ij of the Jacobian ---*/ + + Jacobian_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_ij[iVar][jVar] = 0.0; + } + } + + /*--- Term ij of the Mass Matrix (only if dynamic analysis) ---*/ + + if (dynamic){ + MassMatrix_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + MassMatrix_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + MassMatrix_ij[iVar][jVar] = 0.0; + } + } + } + else { + MassMatrix_ij = NULL; + } + + + if (nonlinear_analysis){ + + /*--- Term ij of the Jacobian (constitutive contribution) ---*/ + + Jacobian_c_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_c_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_c_ij[iVar][jVar] = 0.0; + } + } + + /*--- Term ij of the Jacobian (stress contribution) ---*/ + + Jacobian_s_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_s_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_s_ij[iVar][jVar] = 0.0; + } + } + + } + else{ + Jacobian_c_ij = NULL; + Jacobian_s_ij = NULL; + } + + /*--- Term ij of the Jacobian (incompressibility term) ---*/ + + if (incompressible){ + Jacobian_k_ij = new su2double*[nVar]; + for (iVar = 0; iVar < nVar; iVar++) { + Jacobian_k_ij[iVar] = new su2double [nVar]; + for (jVar = 0; jVar < nVar; jVar++) { + Jacobian_k_ij[iVar][jVar] = 0.0; + } + } + } + else { + Jacobian_k_ij = NULL; + } + + /*--- Stress contribution to the node i ---*/ + Res_Stress_i = new su2double[nVar]; + + /*--- Contribution of the external surface forces to the residual (auxiliary vector) ---*/ + Res_Ext_Surf = new su2double[nVar]; + + /*--- Contribution of the body forces to the residual (auxiliary vector) ---*/ + if (body_forces){ + Res_Dead_Load = new su2double[nVar]; + } + else { + Res_Dead_Load = NULL; + } + + /*--- Contribution of the fluid tractions to the residual (auxiliary vector) ---*/ + if (fsi){ + Res_FSI_Cont = new su2double[nVar]; + } + else { + Res_FSI_Cont = NULL; + } + + /*--- Time integration contribution to the residual ---*/ + if (dynamic) { + Res_Time_Cont = new su2double [nVar]; + } + else { + Res_Time_Cont = NULL; + } + + /*--- Matrices to impose clamped boundary conditions ---*/ + + mZeros_Aux = new su2double *[nDim]; + for(iDim = 0; iDim < nDim; iDim++) + mZeros_Aux[iDim] = new su2double[nDim]; + + mId_Aux = new su2double *[nDim]; + for(iDim = 0; iDim < nDim; iDim++) + mId_Aux[iDim] = new su2double[nDim]; + + for(iDim = 0; iDim < nDim; iDim++){ + for (jDim = 0; jDim < nDim; jDim++){ + mZeros_Aux[iDim][jDim] = 0.0; + mId_Aux[iDim][jDim] = 0.0; + } + mId_Aux[iDim][iDim] = E; + } + + + /*--- Initialization of matrix structures ---*/ + if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (Non-Linear Elasticity)." << endl; + + Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + + if (dynamic) { + MassMatrix.Initialize(nPoint, nPointDomain, nVar, nVar, false, geometry, config); + TimeRes_Aux.Initialize(nPoint, nPointDomain, nVar, 0.0); + TimeRes.Initialize(nPoint, nPointDomain, nVar, 0.0); + } + + + /*--- Initialization of linear solver structures ---*/ + LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0); + LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0); + + LinSysAux.Initialize(nPoint, nPointDomain, nVar, 0.0); + + LinSysReact.Initialize(nPoint, nPointDomain, nVar, 0.0); + + /*--- Initialize the auxiliary vector and matrix for the computation of the nodal Reactions ---*/ + + normalVertex = new su2double [nDim]; + + stressTensor = new su2double* [nDim]; + for (iVar = 0; iVar < nVar; iVar++){ + stressTensor[iVar] = new su2double [nDim]; + } + + /*---- Initialize the auxiliary vector for the solution predictor ---*/ + + solutionPredictor = new su2double [nVar]; + + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + + /*--- If dynamic, we also need to communicate the old solution ---*/ + + if(dynamic) Set_MPI_Solution_Old(geometry, config); + } CFEM_ElasticitySolver::~CFEM_ElasticitySolver(void) { - - unsigned short iVar, jVar; - unsigned long iPoint; - - for (iPoint = 0; iPoint < nPoint; iPoint++){ - delete [] node[iPoint]; - } - - for (iVar = 0; iVar < MAX_TERMS; iVar++){ - for (jVar = 0; jVar < MAX_FE_KINDS; iVar++) - if (element_container[iVar][jVar] != NULL) delete [] element_container[iVar][jVar]; - } - - for (iVar = 0; iVar < nVar; iVar++){ - delete [] Jacobian_ij[iVar]; - if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij[iVar]; - if (Jacobian_c_ij != NULL) delete [] Jacobian_c_ij[iVar]; - if (Jacobian_k_ij != NULL) delete[] Jacobian_k_ij[iVar]; - delete [] Point_Max_Coord[iVar]; - delete [] mZeros_Aux[iVar]; - delete [] mId_Aux[iVar]; - delete [] stressTensor[iVar]; - } - - if (element_container != NULL) delete [] element_container; - delete [] node; - delete [] Jacobian_ij; - if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij; - if (Jacobian_c_ij != NULL) delete [] Jacobian_c_ij; - if (Jacobian_k_ij != NULL) delete [] Jacobian_k_ij; - delete [] Res_Stress_i; - delete [] Res_Ext_Surf; - if (Res_Time_Cont != NULL) delete[] Res_Time_Cont; - if (Res_Dead_Load != NULL) delete[] Res_Dead_Load; - delete [] Solution; - delete [] SolRest; - delete [] GradN_X; - delete [] GradN_x; - - delete [] Residual; - delete [] Residual_RMS; - delete [] Residual_Max; - delete [] Point_Max; - delete [] Point_Max_Coord; - - delete [] mZeros_Aux; - delete [] mId_Aux; - - delete [] nodeReactions; - - delete [] normalVertex; - delete [] stressTensor; - + + unsigned short iVar, jVar; + unsigned long iPoint; + + for (iPoint = 0; iPoint < nPoint; iPoint++){ + delete [] node[iPoint]; + } + + for (iVar = 0; iVar < MAX_TERMS; iVar++){ + for (jVar = 0; jVar < MAX_FE_KINDS; iVar++) + if (element_container[iVar][jVar] != NULL) delete [] element_container[iVar][jVar]; + } + + for (iVar = 0; iVar < nVar; iVar++){ + delete [] Jacobian_ij[iVar]; + if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij[iVar]; + if (Jacobian_c_ij != NULL) delete [] Jacobian_c_ij[iVar]; + if (Jacobian_k_ij != NULL) delete[] Jacobian_k_ij[iVar]; + delete [] Point_Max_Coord[iVar]; + delete [] mZeros_Aux[iVar]; + delete [] mId_Aux[iVar]; + delete [] stressTensor[iVar]; + } + + if (element_container != NULL) delete [] element_container; + delete [] node; + delete [] Jacobian_ij; + if (Jacobian_s_ij != NULL) delete [] Jacobian_s_ij; + if (Jacobian_c_ij != NULL) delete [] Jacobian_c_ij; + if (Jacobian_k_ij != NULL) delete [] Jacobian_k_ij; + delete [] Res_Stress_i; + delete [] Res_Ext_Surf; + if (Res_Time_Cont != NULL) delete[] Res_Time_Cont; + if (Res_Dead_Load != NULL) delete[] Res_Dead_Load; + delete [] Solution; + delete [] SolRest; + delete [] GradN_X; + delete [] GradN_x; + + delete [] Residual; + delete [] Residual_RMS; + delete [] Residual_Max; + delete [] Point_Max; + delete [] Point_Max_Coord; + + delete [] mZeros_Aux; + delete [] mId_Aux; + + delete [] nodeReactions; + + delete [] normalVertex; + delete [] stressTensor; + } void CFEM_ElasticitySolver::Set_MPI_Solution(CGeometry *geometry, CConfig *config) { - - - unsigned short iVar, iMarker, MarkerS, MarkerR; - unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - - unsigned short nSolVar; - - if (dynamic) nSolVar = 3 * nVar; - else nSolVar = nVar; - - #ifdef HAVE_MPI - int send_to, receive_from; - MPI_Status status; - #endif - - for (iMarker = 0; iMarker < nMarker; iMarker++) { - - if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && - (config->GetMarker_All_SendRecv(iMarker) > 0)) { - - MarkerS = iMarker; MarkerR = iMarker+1; - - #ifdef HAVE_MPI - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - #endif - - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; - nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; - - /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new su2double [nBufferR_Vector]; - Buffer_Send_U = new su2double[nBufferS_Vector]; - - /*--- Copy the solution that should be sent ---*/ - for (iVertex = 0; iVertex < nVertexS; iVertex++) { - iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); - if (dynamic){ - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Vel(iVar); - Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Accel(iVar); - } - } - } - - #ifdef HAVE_MPI - - /*--- Send/Receive information using Sendrecv ---*/ - SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, - Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - - #else - - /*--- Receive information without MPI ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - if (dynamic){ - for (iVar = nVar; iVar < 3*nVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - } - } - - #endif - - /*--- Deallocate send buffer ---*/ - delete [] Buffer_Send_U; - - /*--- Do the coordinate transformation ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - - /*--- Find point and its type of transformation ---*/ - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); - - /*--- Copy solution variables. ---*/ - for (iVar = 0; iVar < nSolVar; iVar++) - SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; - - /*--- Store received values back into the variable. ---*/ - for (iVar = 0; iVar < nVar; iVar++) - node[iPoint]->SetSolution(iVar, SolRest[iVar]); - - if (dynamic){ - - for (iVar = 0; iVar < nVar; iVar++){ - node[iPoint]->SetSolution_Vel(iVar, SolRest[iVar+nVar]); - node[iPoint]->SetSolution_Accel(iVar, SolRest[iVar+2*nVar]); - } - - } - - } - - /*--- Deallocate receive buffer ---*/ - delete [] Buffer_Receive_U; - - } - - } - + + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + + unsigned short nSolVar; + + if (dynamic) nSolVar = 3 * nVar; + else nSolVar = nVar; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); + if (dynamic){ + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Vel(iVar); + Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Accel(iVar); + } + } + } + +#ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + if (dynamic){ + for (iVar = nVar; iVar < 3*nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + } + +#endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy solution variables. ---*/ + for (iVar = 0; iVar < nSolVar; iVar++) + SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution(iVar, SolRest[iVar]); + + if (dynamic){ + + for (iVar = 0; iVar < nVar; iVar++){ + node[iPoint]->SetSolution_Vel(iVar, SolRest[iVar+nVar]); + node[iPoint]->SetSolution_Accel(iVar, SolRest[iVar+2*nVar]); + } + + } + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + } void CFEM_ElasticitySolver::Set_MPI_Solution_Old(CGeometry *geometry, CConfig *config) { - - - unsigned short iVar, iMarker, MarkerS, MarkerR; - unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - - unsigned short nSolVar; - - nSolVar = 3 * nVar; - - #ifdef HAVE_MPI - int send_to, receive_from; - MPI_Status status; - #endif - - for (iMarker = 0; iMarker < nMarker; iMarker++) { - - if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && - (config->GetMarker_All_SendRecv(iMarker) > 0)) { - - MarkerS = iMarker; MarkerR = iMarker+1; - - #ifdef HAVE_MPI - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - #endif - - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; - nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; - - /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new su2double [nBufferR_Vector]; - Buffer_Send_U = new su2double[nBufferS_Vector]; - - /*--- Copy the solution that should be sent ---*/ - for (iVertex = 0; iVertex < nVertexS; iVertex++) { - iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_time_n(iVar); - Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Vel_time_n(iVar); - Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Accel_time_n(iVar); - } - } - - #ifdef HAVE_MPI - - /*--- Send/Receive information using Sendrecv ---*/ - SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, - Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - - #else - - /*--- Receive information without MPI ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - for (iVar = 0; iVar < nSolVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - } - - #endif - - /*--- Deallocate send buffer ---*/ - delete [] Buffer_Send_U; - - /*--- Do the coordinate transformation ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - - /*--- Find point and its type of transformation ---*/ - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); - - /*--- Copy solution variables. ---*/ - for (iVar = 0; iVar < nSolVar; iVar++) - SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; - - /*--- Store received values back into the variable. ---*/ - for (iVar = 0; iVar < nVar; iVar++){ - node[iPoint]->SetSolution_time_n(iVar, SolRest[iVar]); - node[iPoint]->SetSolution_Vel_time_n(iVar, SolRest[iVar+nVar]); - node[iPoint]->SetSolution_Accel_time_n(iVar, SolRest[iVar+2*nVar]); - } - - } - - /*--- Deallocate receive buffer ---*/ - delete [] Buffer_Receive_U; - - } - - } - + + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + unsigned short nSolVar; + + nSolVar = 3 * nVar; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_time_n(iVar); + Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Vel_time_n(iVar); + Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Accel_time_n(iVar); + } + } + +#ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nSolVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + +#endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy solution variables. ---*/ + for (iVar = 0; iVar < nSolVar; iVar++) + SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++){ + node[iPoint]->SetSolution_time_n(iVar, SolRest[iVar]); + node[iPoint]->SetSolution_Vel_time_n(iVar, SolRest[iVar+nVar]); + node[iPoint]->SetSolution_Accel_time_n(iVar, SolRest[iVar+2*nVar]); + } + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + } void CFEM_ElasticitySolver::Set_MPI_Solution_DispOnly(CGeometry *geometry, CConfig *config) { + + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); + } + +#ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + +#endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy solution variables. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution(iVar, SolRest[iVar]); + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + +} - - unsigned short iVar, iMarker, MarkerS, MarkerR; - unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - - #ifdef HAVE_MPI - int send_to, receive_from; - MPI_Status status; - #endif - - for (iMarker = 0; iMarker < nMarker; iMarker++) { - - if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && - (config->GetMarker_All_SendRecv(iMarker) > 0)) { - - MarkerS = iMarker; MarkerR = iMarker+1; - - #ifdef HAVE_MPI - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - #endif - - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; - nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; - - /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new su2double [nBufferR_Vector]; - Buffer_Send_U = new su2double[nBufferS_Vector]; - - /*--- Copy the solution that should be sent ---*/ - for (iVertex = 0; iVertex < nVertexS; iVertex++) { - iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution(iVar); - } - - #ifdef HAVE_MPI - - /*--- Send/Receive information using Sendrecv ---*/ - SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, - Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - - #else - - /*--- Receive information without MPI ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - } - - #endif - - /*--- Deallocate send buffer ---*/ - delete [] Buffer_Send_U; - - /*--- Do the coordinate transformation ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - - /*--- Find point and its type of transformation ---*/ - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); - - /*--- Copy solution variables. ---*/ - for (iVar = 0; iVar < nVar; iVar++) - SolRest[iVar] = Buffer_Receive_U[iVar*nVertexR+iVertex]; - - /*--- Store received values back into the variable. ---*/ - for (iVar = 0; iVar < nVar; iVar++) - node[iPoint]->SetSolution(iVar, SolRest[iVar]); - - } - - /*--- Deallocate receive buffer ---*/ - delete [] Buffer_Receive_U; - - } - - } - -} - -void CFEM_ElasticitySolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) { - - - unsigned short iVar, iMarker, MarkerS, MarkerR; - unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - - #ifdef HAVE_MPI - int send_to, receive_from; - MPI_Status status; - #endif - - for (iMarker = 0; iMarker < nMarker; iMarker++) { - - if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && - (config->GetMarker_All_SendRecv(iMarker) > 0)) { - - MarkerS = iMarker; MarkerR = iMarker+1; - - #ifdef HAVE_MPI - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - #endif - - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; - nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; - - /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new su2double [nBufferR_Vector]; - Buffer_Send_U = new su2double[nBufferS_Vector]; - - /*--- Copy the solution that should be sent ---*/ - for (iVertex = 0; iVertex < nVertexS; iVertex++) { - iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred(iVar); - } - - #ifdef HAVE_MPI - - /*--- Send/Receive information using Sendrecv ---*/ - SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, - Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - - #else - - /*--- Receive information without MPI ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - } - - #endif - - /*--- Deallocate send buffer ---*/ - delete [] Buffer_Send_U; - - /*--- Do the coordinate transformation ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - - /*--- Find point and its type of transformation ---*/ - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); - - /*--- Copy predicted solution variables back into the variables. ---*/ - for (iVar = 0; iVar < nVar; iVar++) - node[iPoint]->SetSolution_Pred(iVar, Buffer_Receive_U[iVar*nVertexR+iVertex]); - - } - - /*--- Deallocate receive buffer ---*/ - delete [] Buffer_Receive_U; - - } - - } - -} - -void CFEM_ElasticitySolver::Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config) { - - /*--- We are communicating the solution predicted, current and old, and the old solution ---*/ - /*--- necessary for the Aitken relaxation ---*/ - - unsigned short iVar, iMarker, MarkerS, MarkerR; - unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; - su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; - - /*--- Analogous to the dynamic solution, in this case we need 3 * nVar variables per node ---*/ - unsigned short nSolVar; - nSolVar = 3 * nVar; - - #ifdef HAVE_MPI - int send_to, receive_from; - MPI_Status status; - #endif - - for (iMarker = 0; iMarker < nMarker; iMarker++) { - - if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && - (config->GetMarker_All_SendRecv(iMarker) > 0)) { - - MarkerS = iMarker; MarkerR = iMarker+1; - - #ifdef HAVE_MPI - send_to = config->GetMarker_All_SendRecv(MarkerS)-1; - receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; - #endif - - nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; - nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; - - /*--- Allocate Receive and send buffers ---*/ - Buffer_Receive_U = new su2double [nBufferR_Vector]; - Buffer_Send_U = new su2double[nBufferS_Vector]; - - /*--- Copy the solution that should be sent ---*/ - for (iVertex = 0; iVertex < nVertexS; iVertex++) { - iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_Old(iVar); - Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred(iVar); - Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred_Old(iVar); - } - } - - #ifdef HAVE_MPI - - /*--- Send/Receive information using Sendrecv ---*/ - SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, - Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); - - #else - - /*--- Receive information without MPI ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - for (iVar = 0; iVar < nSolVar; iVar++) - Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; - } - - #endif - - /*--- Deallocate send buffer ---*/ - delete [] Buffer_Send_U; - - /*--- Do the coordinate transformation ---*/ - for (iVertex = 0; iVertex < nVertexR; iVertex++) { - - /*--- Find point and its type of transformation ---*/ - iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); - - /*--- Store received values back into the variable. ---*/ - for (iVar = 0; iVar < nVar; iVar++){ - node[iPoint]->SetSolution_Old(iVar, Buffer_Receive_U[iVar*nVertexR+iVertex]); - node[iPoint]->SetSolution_Pred(iVar, Buffer_Receive_U[(iVar+nVar)*nVertexR+iVertex]); - node[iPoint]->SetSolution_Pred_Old(iVar, Buffer_Receive_U[(iVar+2*nVar)*nVertexR+iVertex]); - } - - } - - /*--- Deallocate receive buffer ---*/ - delete [] Buffer_Receive_U; - - } - - } - -} - - -void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { - - - unsigned long iPoint; - bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method - bool restart = config->GetRestart(); // Restart analysis - bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Initial calculation for restart - - bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied - - bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). - - /*--- Set vector entries to zero ---*/ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { - LinSysAux.SetBlock_Zero(iPoint); - LinSysRes.SetBlock_Zero(iPoint); - LinSysSol.SetBlock_Zero(iPoint); - } - - /*--- Set matrix entries to zero ---*/ - - /* - * If the problem is linear, we only need one Jacobian matrix in the problem, because - * it is going to be constant along the calculations. Therefore, we only initialize - * the Jacobian matrix once, at the beginning of the simulation. - * - * We don't need first_iter, because there is only one iteration per time step in linear analysis. - */ - if ((initial_calc && linear_analysis)|| - (restart && initial_calc_restart && linear_analysis)){ - Jacobian.SetValZero(); - } - - /* - * If the problem is dynamic, we need a mass matrix, which will be constant along the calculation - * both for linear and nonlinear analysis. Only initialized once, at the first time step. - * - * The same with the integration constants, as for now we consider the time step to be constant. - * - * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. - */ - if ((dynamic && initial_calc && first_iter) || - (dynamic && restart && initial_calc_restart && first_iter)) { - MassMatrix.SetValZero(); - Compute_IntegrationConstants(config); - Compute_MassMatrix(geometry, solver_container, numerics, config); - } - - /* - * If body forces are taken into account, we need to compute the term that goes into the residual, - * which will be constant along the calculation both for linear and nonlinear analysis. - * - * Only initialized once, at the first iteration or the beginning of the calculation after a restart. - * - * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. - */ - - if ((body_forces && initial_calc && first_iter) || - (body_forces && restart && initial_calc_restart && first_iter)) { - // If the load is incremental, we have to reset the variable to avoid adding up over the increments - if (incremental_load){ - for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_BodyForces_Res(); - } - // Compute the dead load term - Compute_DeadLoad(geometry, solver_container, numerics, config); - } - - /* - * If the problem is nonlinear, we need to initialize the Jacobian and the stiffness matrix at least at the beginning - * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each - * iteration. - */ - - if ((nonlinear_analysis) && ((newton_raphson) || (first_iter))) { - Jacobian.SetValZero(); -// StiffMatrix.SetValZero(); - } - - /* - * Some external forces may be considered constant over the time step. - */ - if (first_iter) { - for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_SurfaceLoad_Res(); - } - - -} - -void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } - -void CFEM_ElasticitySolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { - - unsigned long iPoint, nPoint; - bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied - - nPoint = geometry[MESH_0]->GetnPoint(); - - /*--- We store the current solution as "Solution Old", for the case that we need to retrieve it ---*/ - - if (incremental_load){ - for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_OldSolution(); - } - - -} - -void CFEM_ElasticitySolver::ResetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { - - unsigned long iPoint, nPoint; - bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied - - nPoint = geometry[MESH_0]->GetnPoint(); - - /*--- We store the current solution as "Solution Old", for the case that we need to retrieve it ---*/ - - if (incremental_load){ - for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_Solution(); - } - -} - -void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned long iElem, iVar, jVar; - unsigned short iNode, iDim, nNodes; - unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord; - int EL_KIND; - - su2double *Kab = NULL; - unsigned short NelNodes, jNode; - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} - - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNode = 0; iNode < nNodes; iNode++) { - - indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); - - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - } - } - - numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND], config); - - NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); - - for (iNode = 0; iNode < NelNodes; iNode++){ - - for (jNode = 0; jNode < NelNodes; jNode++){ - - Kab = element_container[FEA_TERM][EL_KIND]->Get_Kab(iNode, jNode); - - for (iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; - } - } - - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); - - } - - } - - } - - -} - -void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned long iElem, iVar, jVar; - unsigned short iNode, iDim, nNodes; - unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord, val_Sol; - int EL_KIND; - - su2double Ks_ab; - su2double *Kab = NULL; - su2double *Kk_ab = NULL; - su2double *Ta = NULL; - unsigned short NelNodes, jNode; - - bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} - - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNode = 0; iNode < nNodes; iNode++) { - indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); - } - } - - /*--- If incompressible, we compute the Mean Dilatation term first so the volume is already computed ---*/ - - if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[FEA_TERM][EL_KIND], config); - - numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND], config); - - NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); - - for (iNode = 0; iNode < NelNodes; iNode++){ - - Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); - for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; - - /*--- Check if this is my node or not ---*/ - LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); - - for (jNode = 0; jNode < NelNodes; jNode++){ - - Kab = element_container[FEA_TERM][EL_KIND]->Get_Kab(iNode, jNode); - Ks_ab = element_container[FEA_TERM][EL_KIND]->Get_Ks_ab(iNode,jNode); - if (incompressible) Kk_ab = element_container[FEA_TERM][EL_KIND]->Get_Kk_ab(iNode,jNode); - - for (iVar = 0; iVar < nVar; iVar++){ - Jacobian_s_ij[iVar][iVar] = Ks_ab; - for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_c_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; - if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; - } - } - - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); - Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); - if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); - - } - - } - - } - -} - -void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned long iElem, iVar; - unsigned short iNode, iDim, nNodes; - unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord; - int EL_KIND; - - su2double Mab; - unsigned short NelNodes, jNode; - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} - - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNode = 0; iNode < nNodes; iNode++) { - indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - } - } - - numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[FEA_TERM][EL_KIND], config); - - NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); - - for (iNode = 0; iNode < NelNodes; iNode++){ - - for (jNode = 0; jNode < NelNodes; jNode++){ - - Mab = element_container[FEA_TERM][EL_KIND]->Get_Mab(iNode, jNode); - - for (iVar = 0; iVar < nVar; iVar++){ - MassMatrix_ij[iVar][iVar] = Mab; - } - - MassMatrix.AddBlock(indexNode[iNode], indexNode[jNode], MassMatrix_ij); - - } - - } - - } - -} - -void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - - unsigned long iElem, iVar; - unsigned short iNode, iDim, nNodes; - unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord, val_Sol; - int EL_KIND; - - su2double *Ta = NULL; - unsigned short NelNodes; - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} - - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNode = 0; iNode < nNodes; iNode++) { - indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); - } - } - - numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[FEA_TERM][EL_KIND], config); - - NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); - - for (iNode = 0; iNode < NelNodes; iNode++){ - - Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); - for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; - - LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); - - } - - } - - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[0]->GetCoord(iDim); - val_Sol = node[0]->GetSolution(iDim) + val_Coord; - } - -} - -void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned long iPoint, iElem, iVar; - unsigned short iNode, iDim, iStress; - unsigned short nNodes, nStress; - unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord, val_Sol; - int EL_KIND; - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - if (nDim == 2) nStress = 3; - else nStress = 6; - - su2double *Ta = NULL; - - unsigned short NelNodes; - - /*--- Restart stress to avoid adding results from previous time steps ---*/ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ - for (iStress = 0; iStress < nStress; iStress++){ - node[iPoint]->SetStress_FEM(iStress, 0.0); - } - } - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} - - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNode = 0; iNode < nNodes; iNode++) { - indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; - element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); - } - } - - numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[FEA_TERM][EL_KIND], config); - - NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); - - for (iNode = 0; iNode < NelNodes; iNode++){ - - /*--- This only works if the problem is nonlinear ---*/ - Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); - for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; - - LinSysReact.AddBlock(indexNode[iNode], Res_Stress_i); - - for (iStress = 0; iStress < nStress; iStress++){ - node[indexNode[iNode]]->AddStress_FEM(iStress, - (element_container[FEA_TERM][EL_KIND]->Get_NodalStress(iNode, iStress) / - geometry->node[indexNode[iNode]]->GetnElem()) ); - } - - } - - } - - su2double *Stress; - su2double VonMises_Stress, MaxVonMises_Stress = 0.0; - su2double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; - - /* --- For the number of nodes in the mesh ---*/ - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - - /* --- Get the stresses, added up from all the elements that connect to the node ---*/ - - Stress = node[iPoint]->GetStress_FEM(); - - /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ - - if (nDim == 2) { - - Sxx=Stress[0]; - Syy=Stress[1]; - Sxy=Stress[2]; - - S1=(Sxx+Syy)/2+sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); - S2=(Sxx+Syy)/2-sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); - - VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); - - } - else { - - Sxx = Stress[0]; - Syy = Stress[1]; - Szz = Stress[3]; - - Sxy = Stress[2]; - Sxz = Stress[4]; - Syz = Stress[5]; - - VonMises_Stress = sqrt(0.5*( pow(Sxx - Syy, 2.0) - + pow(Syy - Szz, 2.0) - + pow(Szz - Sxx, 2.0) - + 6.0*(Sxy*Sxy+Sxz*Sxz+Syz*Syz) - )); - - } - - node[iPoint]->SetVonMises_Stress(VonMises_Stress); - - /*--- Compute the maximum value of the Von Mises Stress ---*/ - - MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); - - } - -#ifdef HAVE_MPI - - /*--- Compute MaxVonMises_Stress using all the nodes ---*/ - - su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; - SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); - -#endif - - /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ - - Total_CFEA = MaxVonMises_Stress; - - - bool outputReactions = false; - - if (outputReactions) { - - ofstream myfile; - myfile.open ("Reactions.txt"); - - unsigned short iMarker; - unsigned long iVertex; - su2double val_Reaction; - - bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - - if (!dynamic){ - /*--- Loop over all the markers ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) - switch (config->GetMarker_All_KindBC(iMarker)) { - - /*--- If it corresponds to a clamped boundary ---*/ - - case CLAMPED_BOUNDARY: - - myfile << "MARKER " << iMarker << ":" << endl; - - /*--- Loop over all the vertices ---*/ - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - - /*--- Get node index ---*/ - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - myfile << "Node " << iPoint << "." << " \t "; - - for (iDim = 0; iDim < nDim; iDim++){ - /*--- Retrieve coordinate ---*/ - val_Coord = geometry->node[iPoint]->GetCoord(iDim); - myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; - } - - for (iVar = 0; iVar < nVar; iVar++){ - /*--- Retrieve reaction ---*/ - val_Reaction = LinSysReact.GetBlock(iPoint, iVar); - myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; - } - - myfile << endl; - } - myfile << endl; - break; - } - } - else if (dynamic){ - - switch (config->GetKind_TimeIntScheme_FEA()) { - case (CD_EXPLICIT): - cout << "NOT IMPLEMENTED YET" << endl; - break; - case (NEWMARK_IMPLICIT): - - /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ - if (linear_analysis){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) - a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) - a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - } - TimeRes_Aux.SetBlock(iPoint, Residual); - } - } - else if (nonlinear_analysis){ - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) - + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) - + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - } - TimeRes_Aux.SetBlock(iPoint, Residual); - } - } - /*--- Once computed, compute M*TimeRes_Aux ---*/ - MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); - - /*--- Loop over all the markers ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) - switch (config->GetMarker_All_KindBC(iMarker)) { - - /*--- If it corresponds to a clamped boundary ---*/ - - case CLAMPED_BOUNDARY: - - myfile << "MARKER " << iMarker << ":" << endl; - - /*--- Loop over all the vertices ---*/ - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - - /*--- Get node index ---*/ - iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); - - myfile << "Node " << iPoint << "." << " \t "; - - for (iDim = 0; iDim < nDim; iDim++){ - /*--- Retrieve coordinate ---*/ - val_Coord = geometry->node[iPoint]->GetCoord(iDim); - myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; - } - - /*--- Retrieve the time contribution ---*/ - Res_Time_Cont = TimeRes.GetBlock(iPoint); - - for (iVar = 0; iVar < nVar; iVar++){ - /*--- Retrieve reaction ---*/ - val_Reaction = LinSysReact.GetBlock(iPoint, iVar) + Res_Time_Cont[iVar]; - myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; - } - - myfile << endl; - } - myfile << endl; - break; - } - - - break; - case (GENERALIZED_ALPHA): - cout << "NOT IMPLEMENTED YET" << endl; - break; - } - - } - - - - myfile.close(); - - } - -} - -void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { - - unsigned long iElem, iVar; - unsigned short iNode, iDim, nNodes; - unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; - su2double val_Coord; - int EL_KIND; - - su2double *Dead_Load = NULL; - unsigned short NelNodes; - - /*--- Loops over all the elements ---*/ - - for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { - - if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} - - if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} - if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} - if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} - - /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ - - for (iNode = 0; iNode < nNodes; iNode++) { - indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); - for (iDim = 0; iDim < nDim; iDim++) { - val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); - element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); - } - } - - numerics[FEA_TERM]->Compute_Dead_Load(element_container[FEA_TERM][EL_KIND], config); - - NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); - - for (iNode = 0; iNode < NelNodes; iNode++){ - - Dead_Load = element_container[FEA_TERM][EL_KIND]->Get_FDL_a(iNode); - for (iVar = 0; iVar < nVar; iVar++) Res_Dead_Load[iVar] = Dead_Load[iVar]; - - node[indexNode[iNode]]->Add_BodyForces_Res(Res_Dead_Load); - - } - - } - - -} - -void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - -} - -void CFEM_ElasticitySolver::Compute_IntegrationConstants(CConfig *config) { - - su2double Delta_t= config->GetDelta_DynTime(); - - su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); - - su2double beta = config->Get_Int_Coeffs(0); -// su2double gamma = config->Get_Int_Coeffs(1); - su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); - - switch (config->GetKind_TimeIntScheme_FEA()) { - case (CD_EXPLICIT): - cout << "NOT IMPLEMENTED YET" << endl; - break; - case (NEWMARK_IMPLICIT): - - /*--- Integration constants for Newmark scheme ---*/ - - a_dt[0]= 1 / (alpha*pow(Delta_t,2.0)); - a_dt[1]= delta / (alpha*Delta_t); - a_dt[2]= 1 / (alpha*Delta_t); - a_dt[3]= 1 /(2*alpha) - 1; - a_dt[4]= delta/alpha - 1; - a_dt[5]= (Delta_t/2) * (delta/alpha - 2); - a_dt[6]= Delta_t * (1-delta); - a_dt[7]= delta * Delta_t; - a_dt[8]= 0.0; - - break; - - case (GENERALIZED_ALPHA): - - /*--- Integration constants for Generalized Alpha ---*/ - /*--- Needs to be updated if accounting for structural damping ---*/ - - a_dt[0]= (1 / (beta*pow(Delta_t,2.0))) * ((1 - alpha_m) / (1 - alpha_f)) ; - a_dt[1]= 0.0 ; - a_dt[2]= (1 - alpha_m) / (beta*Delta_t); - a_dt[3]= ((1 - 2*beta)*(1-alpha_m) / (2*beta)) - alpha_m; - a_dt[4]= 0.0; - a_dt[5]= 0.0; - a_dt[6]= Delta_t * (1-delta); - a_dt[7]= delta * Delta_t; - a_dt[8]= (1 - alpha_m) / (beta*pow(Delta_t,2.0)); - - break; - } - - -} - - -void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - unsigned long iPoint, iVertex; - unsigned short iVar, jVar; - - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { - - /*--- Get node index ---*/ - - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - - if (geometry->node[iPoint]->GetDomain()) { - - if (nDim == 2) { - Solution[0] = 0.0; Solution[1] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; - } - else { - Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; - Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; - } - - node[iPoint]->SetSolution(Solution); - - if (dynamic){ - node[iPoint]->SetSolution_Vel(Solution); - node[iPoint]->SetSolution_Accel(Solution); - } - - - /*--- Initialize the reaction vector ---*/ - LinSysReact.SetBlock(iPoint, Residual); - - LinSysRes.SetBlock(iPoint, Residual); - - /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ - - /*--- Delete the columns for a particular node ---*/ - - for (iVar = 0; iVar < nPoint; iVar++){ - if (iVar==iPoint) { - Jacobian.SetBlock(iVar,iPoint,mId_Aux); - } - else { - Jacobian.SetBlock(iVar,iPoint,mZeros_Aux); - } - } - - /*--- Delete the rows for a particular node ---*/ - for (jVar = 0; jVar < nPoint; jVar++){ - if (iPoint!=jVar) { - Jacobian.SetBlock(iPoint,jVar,mZeros_Aux); - } - } - - /*--- If the problem is dynamic ---*/ - /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ - - if(dynamic){ - - node[iPoint]->SetSolution_time_n(Solution); - node[iPoint]->SetSolution_Vel_time_n(Solution); - node[iPoint]->SetSolution_Accel_time_n(Solution); - - } - - } - - } - -} - -void CFEM_ElasticitySolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - unsigned long iPoint, iVertex; - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); - - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { - - /*--- Get node index ---*/ - - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - - if (nDim == 2) { - Solution[0] = 0.0; Solution[1] = 0.0; - } - else { - Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; - } - - node[iPoint]->SetSolution(Solution); - - if (dynamic){ - node[iPoint]->SetSolution_Vel(Solution); - node[iPoint]->SetSolution_Accel(Solution); - } - - } - -} - -void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, - unsigned short iMesh) { - - unsigned short iVar; - unsigned long iPoint, total_index; - - bool first_iter = (config->GetIntIter() == 0); - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - - su2double solNorm = 0.0, solNorm_recv = 0.0; - - int rank = MASTER_NODE; - -#ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); -#endif - - if (nonlinear_analysis){ - - /*--- If the problem is nonlinear, we have 3 convergence criteria ---*/ - - /*--- UTOL = norm(Delta_U(k)) / norm(U(k)) --------------------------*/ - /*--- RTOL = norm(Residual(k)) / norm(Residual(0)) ------------------*/ - /*--- ETOL = Delta_U(k) * Residual(k) / Delta_U(0) * Residual(0) ----*/ - - if (first_iter){ - Conv_Ref[0] = 1.0; // Position for the norm of the solution - Conv_Ref[1] = max(LinSysRes.norm(), EPS); // Position for the norm of the residual - Conv_Ref[2] = max(dotProd(LinSysSol, LinSysRes), EPS); // Position for the energy tolerance - - /*--- Make sure the computation runs at least 2 iterations ---*/ - Conv_Check[0] = 1.0; - Conv_Check[1] = 1.0; - Conv_Check[2] = 1.0; - } - else { - /*--- Compute the norm of the solution vector Uk ---*/ - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ - for (iVar = 0; iVar < nVar; iVar++){ - solNorm += node[iPoint]->GetSolution(iVar) * node[iPoint]->GetSolution(iVar); - } - } - - // We need to communicate the norm of the solution and compute the RMS throughout the different processors - - #ifdef HAVE_MPI - /*--- We sum the squares of the norms across the different processors ---*/ - SU2_MPI::Allreduce(&solNorm, &solNorm_recv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - #else - solNorm_recv = solNorm; - #endif - - Conv_Ref[0] = max(sqrt(solNorm_recv), EPS); // Norm of the solution vector - - Conv_Check[0] = LinSysSol.norm() / Conv_Ref[0]; // Norm of the delta-solution vector - Conv_Check[1] = LinSysRes.norm() / Conv_Ref[1]; // Norm of the residual - Conv_Check[2] = dotProd(LinSysSol, LinSysRes) / Conv_Ref[2]; // Position for the energy tolerance - - } - - /*--- MPI solution ---*/ - - Set_MPI_Solution(geometry, config); - - } - else{ - - /*--- If the problem is linear, the only check we do is the RMS of the displacements ---*/ - - /*--- Compute the residual Ax-f ---*/ - - Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); - - /*--- Set maximum residual to zero ---*/ - - for (iVar = 0; iVar < nVar; iVar++) { - SetRes_RMS(iVar, 0.0); - SetRes_Max(iVar, 0.0, 0); - } - - /*--- Compute the residual ---*/ - - for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar+iVar; - AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); - AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); - } - } - - - /*--- MPI solution ---*/ - - Set_MPI_Solution(geometry, config); - - /*--- Compute the root mean square residual ---*/ - - SetResidual_RMS(geometry, config); - } - -} - -void CFEM_ElasticitySolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } - -void CFEM_ElasticitySolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } - -void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { - - su2double a[3], b[3], AC[3], BD[3]; - unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; - su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; - su2double Length_Elem = 0.0, Area_Elem = 0.0; - unsigned short iDim; - - su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); - su2double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); - su2double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); - - su2double TotalLoad; - - bool Sigmoid_Load = config->GetSigmoid_Load(); - su2double Sigmoid_Time = config->GetSigmoid_Time(); - su2double Sigmoid_K = config->GetSigmoid_K(); - su2double SigAux = 0.0; - - su2double CurrentTime=config->GetCurrent_DynTime(); - su2double ModAmpl, NonModAmpl; - - bool Ramp_Load = config->GetRamp_Load(); - su2double Ramp_Time = config->GetRamp_Time(); - - if (Ramp_Load){ - ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; - NonModAmpl=LoadDirVal*LoadDirMult; - TotalLoad=min(ModAmpl,NonModAmpl); - } - else if (Sigmoid_Load){ - SigAux = CurrentTime/ Sigmoid_Time; - ModAmpl = (1 / (1+exp(-1*Sigmoid_K*(SigAux - 0.5)) ) ); - ModAmpl = max(ModAmpl,0.0); - ModAmpl = min(ModAmpl,1.0); - TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; - } - else{ - TotalLoad=LoadDirVal*LoadDirMult; - } - - /*--- Compute the norm of the vector that was passed in the config file ---*/ - su2double Norm = 1.0; - if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); - if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); - - for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { - - Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); - Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); - if (nDim == 3) { - - Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); - } - - } - - /*--- Compute area (3D), and length of the surfaces (2D) ---*/ - - if (nDim == 2) { - - for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; - - Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); -// Normal_Elem[0] = a[1]; -// Normal_Elem[1] = -(a[0]); - - } - - if (nDim == 3) { - - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - for (iDim = 0; iDim < nDim; iDim++) { - a[iDim] = Coord_1[iDim]-Coord_0[iDim]; - b[iDim] = Coord_2[iDim]-Coord_0[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=a[1]*b[2]-a[2]*b[1]; - Nj=-a[0]*b[2]+a[2]*b[0]; - Nk=a[0]*b[1]-a[1]*b[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - } - - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - for (iDim = 0; iDim < nDim; iDim++) { - AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; - BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; - } - - su2double Ni=0 , Nj=0, Nk=0; - - Ni=AC[1]*BD[2]-AC[2]*BD[1]; - Nj=-AC[0]*BD[2]+AC[2]*BD[0]; - Nk=AC[0]*BD[1]-AC[1]*BD[0]; - - Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); - - } - } - - if (nDim == 2) { - - Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - - node[Point_0]->Add_SurfaceLoad_Res(Residual); - node[Point_1]->Add_SurfaceLoad_Res(Residual); - - } - - else { - if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ - - Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - node[Point_0]->Add_SurfaceLoad_Res(Residual); - node[Point_1]->Add_SurfaceLoad_Res(Residual); - node[Point_2]->Add_SurfaceLoad_Res(Residual); - - } - else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ - - Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; - Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; - Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; - - node[Point_0]->Add_SurfaceLoad_Res(Residual); - node[Point_1]->Add_SurfaceLoad_Res(Residual); - node[Point_2]->Add_SurfaceLoad_Res(Residual); - node[Point_3]->Add_SurfaceLoad_Res(Residual); - - } - - } - - } - -} - -void CFEM_ElasticitySolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } - -void CFEM_ElasticitySolver::BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, - unsigned short val_marker) { } - -void CFEM_ElasticitySolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } - -void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned long iPoint, jPoint; - unsigned short iVar, jVar; - - bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (config->GetIntIter() == 0); - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method - bool fsi = config->GetFSI_Simulation(); // FSI simulation. - - bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). - - bool restart = config->GetRestart(); // Restart solution - bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration - - bool incremental_load = config->GetIncrementalLoad(); - - if (!dynamic){ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ - /*--- Add the external contribution to the residual ---*/ - /*--- (the terms that are constant over the time step) ---*/ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); - } - } - else { - Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); - } - - LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - - /*--- Add the contribution to the residual due to body forces ---*/ - - if (body_forces){ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); - } - } - else{ - Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); - } - - LinSysRes.AddBlock(iPoint, Res_Dead_Load); - } - } - - } - - if (dynamic) { - - /*--- Add the mass matrix contribution to the Jacobian ---*/ - - /* - * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning - * of each time step. If the solution method is Newton Rapshon, we repeat this step at the beginning of each - * iteration, as the Jacobian is recomputed - * - * If the problem is linear, we add the Mass Matrix contribution to the Jacobian at the first calculation. - * From then on, the Jacobian is always the same matrix. - * - */ - - if ((nonlinear_analysis && (newton_raphson || first_iter)) || - (linear_analysis && initial_calc) || - (linear_analysis && restart && initial_calc_restart)) { - for (iPoint = 0; iPoint < nPoint; iPoint++){ - for (jPoint = 0; jPoint < nPoint; jPoint++){ - for(iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); - } - } - Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); - } - } - } - - - /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ - if (linear_analysis){ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) - a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) - a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - } - TimeRes_Aux.SetBlock(iPoint, Residual); - } - } - else if (nonlinear_analysis){ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) - + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) - + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - } - TimeRes_Aux.SetBlock(iPoint, Residual); - } - - } - - /*--- Once computed, compute M*TimeRes_Aux ---*/ - MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); - /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - /*--- Dynamic contribution ---*/ - Res_Time_Cont = TimeRes.GetBlock(iPoint); - LinSysRes.AddBlock(iPoint, Res_Time_Cont); - - /*--- External surface load contribution ---*/ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); - - } - } - else { - Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); - } - LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - - - /*--- Body forces contribution (dead load) ---*/ - - if (body_forces){ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); - } - } - else{ - Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); - } - - LinSysRes.AddBlock(iPoint, Res_Dead_Load); - } - - /*--- FSI contribution (flow loads) ---*/ - if (fsi) { - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_FSI_Cont[iVar] = loadIncrement * node[iPoint]->Get_FlowTraction(iVar); - } - } - else { - Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); - } - LinSysRes.AddBlock(iPoint, Res_FSI_Cont); - } - } - } - - -} - -void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned short iVar; - unsigned long iPoint; - - bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems - bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - - /*--- Update solution ---*/ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Displacements component of the solution ---*/ - - /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ - - if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - } - - } - - if (dynamic){ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Acceleration component of the solution ---*/ - /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ - - Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - - node[iPoint]->GetSolution_time_n(iVar)) - - a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - - a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); - } - - /*--- Set the acceleration in the node structure ---*/ - - node[iPoint]->SetSolution_Accel(Solution); - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Velocity component of the solution ---*/ - /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ - - Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ - a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + - a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); - - } - - /*--- Set the velocity in the node structure ---*/ - - node[iPoint]->SetSolution_Vel(Solution); - - } - - } - - /*--- Perform the MPI communication of the solution ---*/ - - Set_MPI_Solution(geometry, config); - - -} - -void CFEM_ElasticitySolver::ImplicitNewmark_Relaxation(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned short iVar; - unsigned long iPoint; - su2double *valSolutionPred; - - /*--- Update solution and set it to be the solution after applying relaxation---*/ - - for (iPoint=0; iPoint < nPointDomain; iPoint++){ - - valSolutionPred = node[iPoint]->GetSolution_Pred(); - - node[iPoint]->SetSolution(valSolutionPred); - } - - /*--- Compute velocities and accelerations ---*/ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Acceleration component of the solution ---*/ - /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ - - Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - - node[iPoint]->GetSolution_time_n(iVar)) - - a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - - a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); - } - - /*--- Set the acceleration in the node structure ---*/ - - node[iPoint]->SetSolution_Accel(Solution); - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Velocity component of the solution ---*/ - /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ - - Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ - a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + - a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); - - } - - /*--- Set the velocity in the node structure ---*/ - - node[iPoint]->SetSolution_Vel(Solution); - - } - - - /*--- Perform the MPI communication of the solution ---*/ - - Set_MPI_Solution(geometry, config); - - /*--- After the solution has been communicated, set the 'old' predicted solution as the solution ---*/ - /*--- Loop over n points (as we have already communicated everything ---*/ - - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++) { - node[iPoint]->SetSolution_Pred_Old(iVar,node[iPoint]->GetSolution(iVar)); - } - } - - -} - - -void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned long iPoint, jPoint; - unsigned short iVar, jVar; - - bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. - bool first_iter = (config->GetIntIter() == 0); - bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. - bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. - bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. - bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method - bool fsi = config->GetFSI_Simulation(); // FSI simulation. - - bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). - - bool restart = config->GetRestart(); // Restart solution - bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration - - su2double alpha_f = config->Get_Int_Coeffs(2); - - bool incremental_load = config->GetIncrementalLoad(); - - if (!dynamic){ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ - /*--- Add the external contribution to the residual ---*/ - /*--- (the terms that are constant over the time step) ---*/ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); - } - } - else { - Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); - } - - LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - - /*--- Add the contribution to the residual due to body forces ---*/ - - if (body_forces){ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); - } - } - else{ - Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); - } - - LinSysRes.AddBlock(iPoint, Res_Dead_Load); - } - - } - - } - - if (dynamic) { - - /*--- Add the mass matrix contribution to the Jacobian ---*/ - - /* - * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning - * of each time step. If the solution method is Newton Rapshon, we repeat this step at the beginning of each - * iteration, as the Jacobian is recomputed - * - * If the problem is linear, we add the Mass Matrix contribution to the Jacobian at the first calculation. - * From then on, the Jacobian is always the same matrix. - * - */ - - if ((nonlinear_analysis && (newton_raphson || first_iter)) || - (linear_analysis && initial_calc) || - (linear_analysis && restart && initial_calc_restart)) { - for (iPoint = 0; iPoint < nPoint; iPoint++){ - for (jPoint = 0; jPoint < nPoint; jPoint++){ - for(iVar = 0; iVar < nVar; iVar++){ - for (jVar = 0; jVar < nVar; jVar++){ - Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); - } - } - Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); - } - } - } - - - /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ - if (linear_analysis){ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) - a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) - a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - } - TimeRes_Aux.SetBlock(iPoint, Residual); - } - } - else if (nonlinear_analysis){ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - for (iVar = 0; iVar < nVar; iVar++){ - Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) - - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) - + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) - + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) - } - TimeRes_Aux.SetBlock(iPoint, Residual); - } - } - /*--- Once computed, compute M*TimeRes_Aux ---*/ - MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); - /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ - for (iPoint = 0; iPoint < nPoint; iPoint++) { - /*--- Dynamic contribution ---*/ - Res_Time_Cont = TimeRes.GetBlock(iPoint); - LinSysRes.AddBlock(iPoint, Res_Time_Cont); - /*--- External surface load contribution ---*/ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Ext_Surf[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_SurfaceLoad_Res(iVar) + - alpha_f * node[iPoint]->Get_SurfaceLoad_Res_n(iVar) ); - } - } - else { - for (iVar = 0; iVar < nVar; iVar++){ - Res_Ext_Surf[iVar] = (1 - alpha_f) * node[iPoint]->Get_SurfaceLoad_Res(iVar) + - alpha_f * node[iPoint]->Get_SurfaceLoad_Res_n(iVar); - } - } - LinSysRes.AddBlock(iPoint, Res_Ext_Surf); - - /*--- Add the contribution to the residual due to body forces. - *--- It is constant over time, so it's not necessary to distribute it. ---*/ - - if (body_forces){ - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); - } - } - else{ - Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); - } - - LinSysRes.AddBlock(iPoint, Res_Dead_Load); - } - - /*--- Add FSI contribution ---*/ - if (fsi) { - if (incremental_load){ - for (iVar = 0; iVar < nVar; iVar++){ - Res_FSI_Cont[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + - alpha_f * node[iPoint]->Get_FlowTraction_n(iVar) ); - } - } - else { - for (iVar = 0; iVar < nVar; iVar++){ - Res_FSI_Cont[iVar] = (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + - alpha_f * node[iPoint]->Get_FlowTraction_n(iVar); - } - } - LinSysRes.AddBlock(iPoint, Res_FSI_Cont); - } - } - } - -} - -void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned short iVar; - unsigned long iPoint; - - bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems - bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems - - /*--- Update solution ---*/ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Displacements component of the solution ---*/ - - /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ - - if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); - - } - - } - - /*--- Perform the MPI communication of the solution, displacements only ---*/ - - Set_MPI_Solution_DispOnly(geometry, config); - -} - -void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateSolution(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned short iVar; - unsigned long iPoint; - - su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); - - /*--- Compute solution at t_n+1, and update velocities and accelerations ---*/ - - for (iPoint = 0; iPoint < nPointDomain; iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Compute the solution from the previous time step and the solution computed at t+1-alpha_f ---*/ - /*--- U(t+dt) = 1/alpha_f*(U(t+1-alpha_f)-alpha_f*U(t)) ---*/ - - Solution[iVar]=(1 / (1 - alpha_f))*(node[iPoint]->GetSolution(iVar) - - alpha_f * node[iPoint]->GetSolution_time_n(iVar)); - - } - - /*--- Set the solution in the node structure ---*/ - - node[iPoint]->SetSolution(Solution); - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Acceleration component of the solution ---*/ - /*--- U''(t+dt-alpha_m) = a8*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ - - Solution_Interm[iVar]=a_dt[8]*( node[iPoint]->GetSolution(iVar) - - node[iPoint]->GetSolution_time_n(iVar)) - - a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - - a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); - - /*--- Compute the solution from the previous time step and the solution computed at t+1-alpha_f ---*/ - /*--- U''(t+dt) = 1/alpha_m*(U''(t+1-alpha_m)-alpha_m*U''(t)) ---*/ - - Solution[iVar]=(1 / (1 - alpha_m))*(Solution_Interm[iVar] - alpha_m * node[iPoint]->GetSolution_Accel_time_n(iVar)); - } - - /*--- Set the acceleration in the node structure ---*/ - - node[iPoint]->SetSolution_Accel(Solution); - - for (iVar = 0; iVar < nVar; iVar++) { - - /*--- Velocity component of the solution ---*/ - /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ - - Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ - a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + - a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); - - } - - /*--- Set the velocity in the node structure ---*/ - - node[iPoint]->SetSolution_Vel(Solution); - - } - - /*--- Perform the MPI communication of the solution ---*/ - - Set_MPI_Solution(geometry, config); - -} - -void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CSolver **solver_container, CConfig *config) { - - unsigned long iPoint; - bool fsi = config->GetFSI_Simulation(); - - /*--- Set the load conditions of the time step n+1 as the load conditions for time step n ---*/ - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ - node[iPoint]->Set_SurfaceLoad_Res_n(); - if (fsi) node[iPoint]->Set_FlowTraction_n(); - } - -} - -void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ - - unsigned long IterLinSol = 0, iPoint, total_index; - unsigned short iVar; - - /*--- Initialize residual and solution at the ghost points ---*/ - - for (iPoint = nPointDomain; iPoint < nPoint; iPoint++) { - - for (iVar = 0; iVar < nVar; iVar++) { - total_index = iPoint*nVar + iVar; - LinSysRes[total_index] = 0.0; - LinSysSol[total_index] = 0.0; - } - - } - - CSysSolve femSystem; - IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); - - /*--- The the number of iterations of the linear solver ---*/ - - SetIterLinSolver(IterLinSol); - -} - - - -void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, - CGeometry **flow_geometry, CConfig *fea_config, - CConfig *flow_config, CNumerics *fea_numerics) { - - unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side - unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers - int Marker_Flow = -1, Marker_Struct = -1; - - unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes - - unsigned short iDim, jDim; - - // Check the kind of fluid problem - bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); - bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); - bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || - (flow_config->GetKind_Solver() == RANS) ); - - /*--- Redimensionalize the pressure ---*/ - - su2double *Velocity_ND, *Velocity_Real; - su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; - su2double factorForces; - - Velocity_Real = flow_config->GetVelocity_FreeStream(); - Density_Real = flow_config->GetDensity_FreeStream(); - - Velocity_ND = flow_config->GetVelocity_FreeStreamND(); - Density_ND = flow_config->GetDensity_FreeStreamND(); - - Velocity2_Real = 0.0; - Velocity2_ND = 0.0; - for (iDim = 0; iDim < nDim; iDim++){ - Velocity2_Real += Velocity_Real[iDim]*Velocity_Real[iDim]; - Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; - } - - factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); - - /*--- Apply a ramp to the transfer of the fluid loads ---*/ - - su2double ModAmpl; - su2double CurrentTime = fea_config->GetCurrent_DynTime(); - su2double Static_Time = fea_config->GetStatic_Time(); - - bool Ramp_Load = fea_config->GetRamp_Load(); - su2double Ramp_Time = fea_config->GetRamp_Time(); - - if (CurrentTime <= Static_Time){ ModAmpl=0.0; } - else if((CurrentTime > Static_Time) && - (CurrentTime <= (Static_Time + Ramp_Time)) && - (Ramp_Load)){ - ModAmpl = (CurrentTime-Static_Time) / Ramp_Time; - ModAmpl = max(ModAmpl,0.0); - ModAmpl = min(ModAmpl,1.0); - } - else{ ModAmpl = 1.0; } - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerFSI = (fea_config->GetMarker_n_FSIinterface())/2; - - nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side - nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side - - // Parameters for the calculations - // Pn: Pressure - // Pinf: Pressure_infinite - // div_vel: Velocity divergence - // Dij: Dirac delta - su2double Pn = 0.0, Pinf = 0.0, div_vel = 0.0, Dij = 0.0; - su2double Viscosity = 0.0; - su2double **Grad_PrimVar; - su2double Tau[3][3]; - - unsigned long Point_Flow, Point_Struct; - su2double *Normal_Flow; - - su2double *tn_f; - tn_f = new su2double [nVar]; // Fluid traction - -#ifndef HAVE_MPI - - unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side - - for (iPoint = 0; iPoint < nPoint; iPoint++){ - node[iPoint]->Clear_FlowTraction(); - } - - /*--- Loop over all the markers on the interface ---*/ - - for (iMarkerFSI = 0; iMarkerFSI < nMarkerFSI; iMarkerFSI++){ - - /*--- Identification of the markers ---*/ - - /*--- Current structural marker ---*/ - for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ - if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == (iMarkerFSI+1)){ - Marker_Struct = iMarkerStruct; - } - } - - /*--- Current fluid marker ---*/ - for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSI+1)){ - Marker_Flow = iMarkerFlow; - } - } - - nVertexFEA = fea_geometry[MESH_0]->GetnVertex(Marker_Struct); // Retrieve total number of vertices on FEA marker - nVertexFlow = flow_geometry[MESH_0]->GetnVertex(Marker_Flow); // Retrieve total number of vertices on Fluid marker - - /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ - /*--- Here, we are looping over the fluid, and we find the pointer to the structure (Point_Struct) ---*/ - for (iVertex = 0; iVertex < nVertexFlow; iVertex++){ - - // Node from the flow mesh - Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); - - // Normals at the vertex: these normals go inside the fluid domain. - Normal_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNormal(); - - // Corresponding node on the structural mesh - Point_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorPoint(); - - // Retrieve the values of pressure, viscosity and density - if (incompressible){ - - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); - } - } - else if (compressible){ - - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); - } - } - - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; - } - - // Calculate tn in the fluid nodes for the viscous term - - if (viscous_flow){ - - // Divergence of the velocity - div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; - if (incompressible) div_vel = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - - for (jDim = 0 ; jDim < nDim; jDim++) { - // Dirac delta - Dij = 0.0; if (iDim == jDim) Dij = 1.0; - - // Viscous stress - Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - - TWO3*Viscosity*div_vel*Dij; - - // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; - } - } - } - - // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) - - for (iDim = 0; iDim < nDim; iDim++) { - Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; - } - - /*--- Set the Flow traction ---*/ - //node[Point_Struct]->Set_FlowTraction(Residual); - /*--- Add to the Flow traction (to add values to corners...) ---*/ - node[Point_Struct]->Add_FlowTraction(Residual); - } - - } - +void CFEM_ElasticitySolver::Set_MPI_Solution_Pred(CGeometry *geometry, CConfig *config) { + + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nVar; nBufferR_Vector = nVertexR*nVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred(iVar); + } + +#ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + #else - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); - - unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; - - unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; - - unsigned long nBuffer_FlowTraction = 0, nBuffer_StructTraction = 0; - unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; - - unsigned long Processor_Struct; - - int iProcessor, nProcessor = 0; - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2; - nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); - nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); - - nProcessor = size; - - for (iPoint = 0; iPoint < nPoint; iPoint++){ - node[iPoint]->Clear_FlowTraction(); - } - - /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ - /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - - for (iMarkerFSI = 1; iMarkerFSI <= nMarkerFSI; iMarkerFSI++){ - - Marker_Struct = -1; - Marker_Flow = -1; - - /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ - unsigned long Buffer_Send_nVertexStruct[1], *Buffer_Recv_nVertexStruct = NULL; - unsigned long Buffer_Send_nVertexFlow[1], *Buffer_Recv_nVertexFlow = NULL; - - /*--- The markers on the fluid and structural side are tagged with the same index. - *--- This is independent of the MPI domain decomposition. - *--- We need to loop over all markers on both sides and get the number of nodes - *--- that belong to each FSI marker for each processor ---*/ - - /*--- On the structural side ---*/ - - for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerStruct) equals the index we are looping at ---*/ - if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == iMarkerFSI ){ - /*--- We have identified the local index of the FEA marker ---*/ - /*--- Store the number of local points that belong to Marker_Struct on each processor ---*/ - /*--- This includes the halo nodes ---*/ - nLocalVertexStruct = fea_geometry[MESH_0]->GetnVertex(iMarkerStruct); - /*--- Store the identifier for the structural marker ---*/ - Marker_Struct = iMarkerStruct; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the FEA markers ---*/ - nLocalVertexStruct = 0; - Marker_Struct = -1; - } - } - - /*--- On the fluid side ---*/ - - for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ - if ( flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == iMarkerFSI ){ - /*--- We have identified the local index of the Flow marker ---*/ - /*--- Store the number of local points that belong to Marker_Flow on each processor ---*/ - /*--- This includes the halo nodes ---*/ - nLocalVertexFlow = flow_geometry[MESH_0]->GetnVertex(iMarkerFlow); - /*--- Store the identifier for the fluid marker ---*/ - Marker_Flow = iMarkerFlow; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - nLocalVertexFlow = 0; - Marker_Flow = -1; - } - } - - Buffer_Send_nVertexStruct[0] = nLocalVertexStruct; // Retrieve total number of vertices on FEA marker - Buffer_Send_nVertexFlow[0] = nLocalVertexFlow; // Retrieve total number of vertices on Flow marker - if (rank == MASTER_NODE) Buffer_Recv_nVertexStruct = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - if (rank == MASTER_NODE) Buffer_Recv_nVertexFlow = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side - - /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ - SU2_MPI::Allreduce(&nLocalVertexStruct, &MaxLocalVertexStruct, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ - SU2_MPI::Allreduce(&nLocalVertexFlow, &MaxLocalVertexFlow, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexStruct, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexStruct, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexFlow, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexFlow, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - - /*--- We will be gathering the structural coordinates into the master node ---*/ - /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ - nBuffer_FlowTraction = MaxLocalVertexFlow * nDim; - nBuffer_StructTraction = MaxLocalVertexStruct * nDim; - - /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ - /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ - nBuffer_DonorIndices = 2 * MaxLocalVertexFlow; - nBuffer_SetIndex = MaxLocalVertexStruct; - - /*--- Send and Recv buffers ---*/ - - /*--- Buffers to send and receive the structural coordinates ---*/ - su2double *Buffer_Send_FlowTraction = new su2double[nBuffer_FlowTraction]; - su2double *Buffer_Recv_FlowTraction = NULL; - - /*--- Buffers to send and receive the donor index and processor ---*/ - long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; - long *Buffer_Recv_DonorIndices = NULL; - - /*--- Buffers to send and receive the new fluid coordinates ---*/ - su2double *Buffer_Send_StructTraction = NULL; - su2double *Buffer_Recv_StructTraction = new su2double[nBuffer_StructTraction]; - - /*--- Buffers to send and receive the fluid index ---*/ - long *Buffer_Send_SetIndex = NULL; - long *Buffer_Recv_SetIndex = new long[nBuffer_SetIndex]; - - /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ - - if (rank == MASTER_NODE) { - Buffer_Recv_FlowTraction = new su2double[size*nBuffer_FlowTraction]; - Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - Buffer_Send_StructTraction = new su2double[size*nBuffer_StructTraction]; - Buffer_Send_SetIndex = new long[size*nBuffer_SetIndex]; - } - - /*--- On the fluid side ---*/ - - /*--- If this processor owns the marker we are looping at on the structural side ---*/ - - /*--- First we initialize all of the indices and processors to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) - Buffer_Send_DonorIndices[iVertex] = -1; - - if (Marker_Flow >= 0){ - - /*--- We have identified the local index of the FEA marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < nLocalVertexFlow; iVertex++){ - - Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); - - Point_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorPoint(); - - Processor_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorProcessor(); - - // Get the normal at the vertex: this normal goes inside the fluid domain. - Normal_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNormal(); - - // Retrieve the values of pressure, viscosity and density - if (incompressible){ - - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); - } - } - else if (compressible){ - - Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); - Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); - - if (viscous_flow){ - - Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); - Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); - } - } - - // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). - for (iDim = 0; iDim < nDim; iDim++) { - tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; - } - - // Calculate tn in the fluid nodes for the viscous term - - if ((incompressible || compressible) && viscous_flow){ - - // Divergence of the velocity - div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; - if (incompressible) div_vel = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - - for (jDim = 0 ; jDim < nDim; jDim++) { - // Dirac delta - Dij = 0.0; if (iDim == jDim) Dij = 1.0; - - // Viscous stress - Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - - TWO3*Viscosity*div_vel*Dij; - - // Viscous component in the tn vector --> Units of force (non-dimensional). - tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; - } - } - } - - for (iDim = 0; iDim < nDim; iDim++){ - Buffer_Send_FlowTraction[iVertex*nDim+iDim] = tn_f[iDim]*factorForces*ModAmpl; - } - /*--- If this processor owns the node ---*/ - if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()){ - Buffer_Send_DonorIndices[2*iVertex] = Point_Struct; - Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Struct; - } - else{ - /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[2*iVertex] = -1; - Buffer_Send_DonorIndices[2*iVertex + 1] = -1; - } - - } - } - - /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ - SU2_MPI::Gather(Buffer_Send_FlowTraction, nBuffer_FlowTraction, MPI_DOUBLE, Buffer_Recv_FlowTraction, nBuffer_FlowTraction, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - -// if (rank == MASTER_NODE){ -// cout << endl << "-----------------------------------------------------------" << endl; -// cout << "For tag " << iMarkerFSI << ":" << endl; -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// cout << "The processor " << iProcessor << " has " << Buffer_Recv_nVertexStruct[iProcessor] << " nodes on the structural side and "; -// cout << Buffer_Recv_nVertexFlow[iProcessor] << " nodes on the fluid side " << endl; -// } -// cout << "The max number of vertices is " << MaxLocalVertexStruct << " on the structural side and "; -// cout << MaxLocalVertexFlow << " on the fluid side." << endl; -// -// cout << "---------------- Check received buffers ---------------------" << endl; -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// long initialIndex, initialIndex2; -// initialIndex = iProcessor*nBuffer_FlowTraction; -// initialIndex2 = iProcessor*nBuffer_DonorIndices; -// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexStruct[iProcessor]; iCheck++){ -// cout << "From processor " << iProcessor << " we get coordinates ("; -// for (iDim = 0; iDim < nDim; iDim++) -// cout << Buffer_Recv_FlowTraction[initialIndex+iCheck*nDim+iDim] << ","; -// cout << "), the donor index for the flow " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2] ; -// cout << " and the donor processor " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2+1] << endl; -// -// } -// } -// -// } - - /*--- Counter to determine where in the array we have to set the information ---*/ - long *Counter_Processor_Struct = NULL; - long iProcessor_Flow = 0, iIndex_Flow = 0; - long iProcessor_Struct = 0, iPoint_Struct = 0, iIndex_Struct = 0; - long Point_Struct_Send, Processor_Struct_Send; - - /*--- Now we pack the information to send it over to the different processors ---*/ - - if (rank == MASTER_NODE){ - - /*--- We set the counter to 0 ---*/ - Counter_Processor_Struct = new long[nProcessor]; - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - Counter_Processor_Struct[iProcessor] = 0; - } - - /*--- First we initialize the index vector to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nProcessor*nBuffer_SetIndex; iVertex++) - Buffer_Send_SetIndex[iVertex] = -2; - - /*--- As of now we do the loop over the flow points ---*/ - /*--- The number of points for flow and structure does not necessarily have to match ---*/ - /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ - /*--- nFlow < nStruct available; this is due to halo nodes ---*/ - - /*--- For every processor from which we have received information ---*/ - /*--- (This is, for every processor on the structural side) ---*/ - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - - /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ - iProcessor_Flow = iProcessor*nBuffer_FlowTraction; - /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ - iIndex_Flow = iProcessor*nBuffer_DonorIndices; - - /*--- For every vertex in the information retreived from iProcessor ---*/ - for (iVertex = 0; iVertex < Buffer_Recv_nVertexFlow[iProcessor]; iVertex++) { - - /*--- The processor and index for the flow are: ---*/ - Processor_Struct_Send = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2+1]; - Point_Struct_Send = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2]; - - /*--- Load the buffer at the appropriate position ---*/ - /*--- This is determined on the fluid side by: - *--- Processor_Flow*nBuffer_StructTraction -> Initial position of the processor array (fluid side) - *--- + - *--- Counter_Processor_Struct*nDim -> Initial position of the nDim array for the particular point on the fluid side - *--- + - *--- iDim -> Position within the nDim array that corresponds to a point - *--- - *--- While on the structural side is: - *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) - *--- + - *--- iVertex*nDim -> Initial position of the nDim array for the particular point on the structural side - */ - - /*--- We check that we are not setting the value for a halo node ---*/ - if (Point_Struct_Send != -1){ - iProcessor_Struct = Processor_Struct_Send*nBuffer_StructTraction; - iIndex_Struct = Processor_Struct_Send*nBuffer_SetIndex; - iPoint_Struct = Counter_Processor_Struct[Processor_Struct_Send]*nDim; - - for (iDim = 0; iDim < nDim; iDim++) - Buffer_Send_StructTraction[iProcessor_Struct + iPoint_Struct + iDim] = Buffer_Recv_FlowTraction[iProcessor_Flow + iVertex*nDim + iDim]; - - /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ - Buffer_Send_SetIndex[iIndex_Struct + Counter_Processor_Struct[Processor_Struct_Send]] = Point_Struct_Send; - - Counter_Processor_Struct[Processor_Struct_Send]++; - } - - } - - } - -// cout << "---------------- Check send buffers ---------------------" << endl; -// -// for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ -// long initialIndex, initialIndex2; -// initialIndex = iProcessor*nBuffer_StructTraction; -// initialIndex2 = iProcessor*nBuffer_SetIndex; -// for (long iCheck = 0; iCheck < Buffer_Recv_nVertexFlow[iProcessor]; iCheck++){ -// cout << "Processor " << iProcessor << " will receive the node " ; -// cout << Buffer_Send_SetIndex[initialIndex2+iCheck] << " which corresponds to the coordinates "; -// for (iDim = 0; iDim < nDim; iDim++) -// cout << "x" << iDim << "=" << Buffer_Send_StructTraction[initialIndex + iCheck*nDim + iDim] << ", "; -// cout << endl; -// } -// -// } - - } - - /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ - SU2_MPI::Scatter(Buffer_Send_StructTraction, nBuffer_StructTraction, MPI_DOUBLE, Buffer_Recv_StructTraction, nBuffer_StructTraction, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - - long indexPoint_iVertex, Point_Struct_Check; - long Point_Struct_Recv; - - /*--- For the flow marker we are studying ---*/ - if (Marker_Struct >= 0){ - - /*--- We have identified the local index of the Structural marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ - - Point_Struct_Recv = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); - - if (fea_geometry[MESH_0]->node[Point_Struct_Recv]->GetDomain()){ - /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ - indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexStruct, Point_Struct_Recv)); - - Point_Struct_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; - - if (Point_Struct_Check < 0) { - cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; - exit(EXIT_FAILURE); - } - - for (iDim = 0; iDim < nDim; iDim++) - Residual[iDim] = Buffer_Recv_StructTraction[indexPoint_iVertex*nDim+iDim]; - - /*--- Add to the Flow traction ---*/ - node[Point_Struct_Recv]->Add_FlowTraction(Residual); - - } - - } - - } - - delete [] Buffer_Send_FlowTraction; - delete [] Buffer_Send_DonorIndices; - delete [] Buffer_Recv_StructTraction; - delete [] Buffer_Recv_SetIndex; - - if (rank == MASTER_NODE) { - delete [] Buffer_Recv_nVertexStruct; - delete [] Buffer_Recv_nVertexFlow; - delete [] Buffer_Recv_FlowTraction; - delete [] Buffer_Recv_DonorIndices; - delete [] Buffer_Send_StructTraction; - delete [] Buffer_Send_SetIndex; - delete [] Counter_Processor_Struct; - } - - } - + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + #endif - - delete[] tn_f; - - + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Copy predicted solution variables back into the variables. ---*/ + for (iVar = 0; iVar < nVar; iVar++) + node[iPoint]->SetSolution_Pred(iVar, Buffer_Receive_U[iVar*nVertexR+iVertex]); + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + + } + + } + } -void CFEM_ElasticitySolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, - CGeometry **flow_geometry, CConfig *fea_config, - CConfig *flow_config, CNumerics *fea_numerics){ } - -void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, - CConfig *fea_config, CSolver ***fea_solution){ - - unsigned short predOrder = fea_config->GetPredictorOrder(); - su2double Delta_t = fea_config->GetDelta_DynTime(); - unsigned long iPoint, iDim; - su2double *solDisp, *solVel, *solVel_tn, *valPred; - - //To nPointDomain: we need to communicate the predicted solution after setting it - for (iPoint=0; iPoint < nPointDomain; iPoint++){ - if (predOrder==0) fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); - else if (predOrder==1) { - - solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); - valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - for (iDim=0; iDim < nDim; iDim++){ - valPred[iDim] = solDisp[iDim] + Delta_t*solVel[iDim]; - } - - } - else if (predOrder==2) { - - solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); - solVel_tn = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel_time_n(); - valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - for (iDim=0; iDim < nDim; iDim++){ - valPred[iDim] = solDisp[iDim] + 0.5*Delta_t*(3*solVel[iDim]-solVel_tn[iDim]); - } - - } - else { - cout<< "Higher order predictor not implemented. Solving with order 0." << endl; - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); - } +void CFEM_ElasticitySolver::Set_MPI_Solution_Pred_Old(CGeometry *geometry, CConfig *config) { + + /*--- We are communicating the solution predicted, current and old, and the old solution ---*/ + /*--- necessary for the Aitken relaxation ---*/ + + unsigned short iVar, iMarker, MarkerS, MarkerR; + unsigned long iVertex, iPoint, nVertexS, nVertexR, nBufferS_Vector, nBufferR_Vector; + su2double *Buffer_Receive_U = NULL, *Buffer_Send_U = NULL; + + /*--- Analogous to the dynamic solution, in this case we need 3 * nVar variables per node ---*/ + unsigned short nSolVar; + nSolVar = 3 * nVar; + +#ifdef HAVE_MPI + int send_to, receive_from; + MPI_Status status; +#endif + + for (iMarker = 0; iMarker < nMarker; iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == SEND_RECEIVE) && + (config->GetMarker_All_SendRecv(iMarker) > 0)) { + + MarkerS = iMarker; MarkerR = iMarker+1; + +#ifdef HAVE_MPI + send_to = config->GetMarker_All_SendRecv(MarkerS)-1; + receive_from = abs(config->GetMarker_All_SendRecv(MarkerR))-1; +#endif + + nVertexS = geometry->nVertex[MarkerS]; nVertexR = geometry->nVertex[MarkerR]; + nBufferS_Vector = nVertexS*nSolVar; nBufferR_Vector = nVertexR*nSolVar; + + /*--- Allocate Receive and send buffers ---*/ + Buffer_Receive_U = new su2double [nBufferR_Vector]; + Buffer_Send_U = new su2double[nBufferS_Vector]; + + /*--- Copy the solution that should be sent ---*/ + for (iVertex = 0; iVertex < nVertexS; iVertex++) { + iPoint = geometry->vertex[MarkerS][iVertex]->GetNode(); + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_U[iVar*nVertexS+iVertex] = node[iPoint]->GetSolution_Old(iVar); + Buffer_Send_U[(iVar+nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred(iVar); + Buffer_Send_U[(iVar+2*nVar)*nVertexS+iVertex] = node[iPoint]->GetSolution_Pred_Old(iVar); + } + } + +#ifdef HAVE_MPI + + /*--- Send/Receive information using Sendrecv ---*/ + SU2_MPI::Sendrecv(Buffer_Send_U, nBufferS_Vector, MPI_DOUBLE, send_to, 0, + Buffer_Receive_U, nBufferR_Vector, MPI_DOUBLE, receive_from, 0, MPI_COMM_WORLD, &status); + +#else + + /*--- Receive information without MPI ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + for (iVar = 0; iVar < nSolVar; iVar++) + Buffer_Receive_U[iVar*nVertexR+iVertex] = Buffer_Send_U[iVar*nVertexR+iVertex]; + } + +#endif + + /*--- Deallocate send buffer ---*/ + delete [] Buffer_Send_U; + + /*--- Do the coordinate transformation ---*/ + for (iVertex = 0; iVertex < nVertexR; iVertex++) { + + /*--- Find point and its type of transformation ---*/ + iPoint = geometry->vertex[MarkerR][iVertex]->GetNode(); + + /*--- Store received values back into the variable. ---*/ + for (iVar = 0; iVar < nVar; iVar++){ + node[iPoint]->SetSolution_Old(iVar, Buffer_Receive_U[iVar*nVertexR+iVertex]); + node[iPoint]->SetSolution_Pred(iVar, Buffer_Receive_U[(iVar+nVar)*nVertexR+iVertex]); + node[iPoint]->SetSolution_Pred_Old(iVar, Buffer_Receive_U[(iVar+2*nVar)*nVertexR+iVertex]); + } + + } + + /*--- Deallocate receive buffer ---*/ + delete [] Buffer_Receive_U; + } - + + } + } -void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fea_config, - CSolver ***fea_solution, unsigned long iFSIIter){ - - unsigned long iPoint, iDim; - su2double rbuf_numAitk = 0, sbuf_numAitk = 0; - su2double rbuf_denAitk = 0, sbuf_denAitk = 0; - - su2double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; - su2double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; - su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); - su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn_Min, WAitkDyn; - - unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); - - int rank = MASTER_NODE; - #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - #endif - - ofstream historyFile_FSI; - bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); - if (writeHistFSI && (rank == MASTER_NODE)){ - char cstrFSI[200]; - string filenameHistFSI = fea_config->GetConv_FileName_FSI(); - strcpy (cstrFSI, filenameHistFSI.data()); - historyFile_FSI.open (cstrFSI, std::ios_base::app); - } - - - /*--- Only when there is movement, and a dynamic coefficient is requested, it makes sense to compute the Aitken's coefficient ---*/ - - if (CurrentTime > Static_Time) { - - if (RelaxMethod_FSI == NO_RELAXATION){ - - if (writeHistFSI && (rank == MASTER_NODE)){ - - SetWAitken_Dyn(1.0); - if (iFSIIter == 0) historyFile_FSI << " " << endl ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 ; - else historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 << "," ; - } - - } - else if (RelaxMethod_FSI == FIXED_PARAMETER){ - - if (writeHistFSI && (rank == MASTER_NODE)){ - - SetWAitken_Dyn(fea_config->GetAitkenStatRelax()); +void CFEM_ElasticitySolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output) { + + + unsigned long iPoint; + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); // Checks if it is the first iteration + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + bool restart = config->GetRestart(); // Restart analysis + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Initial calculation for restart + + bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied + + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + + /*--- Set vector entries to zero ---*/ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint ++) { + LinSysAux.SetBlock_Zero(iPoint); + LinSysRes.SetBlock_Zero(iPoint); + LinSysSol.SetBlock_Zero(iPoint); + } + + /*--- Set matrix entries to zero ---*/ + + /* + * If the problem is linear, we only need one Jacobian matrix in the problem, because + * it is going to be constant along the calculations. Therefore, we only initialize + * the Jacobian matrix once, at the beginning of the simulation. + * + * We don't need first_iter, because there is only one iteration per time step in linear analysis. + */ + if ((initial_calc && linear_analysis)|| + (restart && initial_calc_restart && linear_analysis)){ + Jacobian.SetValZero(); + } + + /* + * If the problem is dynamic, we need a mass matrix, which will be constant along the calculation + * both for linear and nonlinear analysis. Only initialized once, at the first time step. + * + * The same with the integration constants, as for now we consider the time step to be constant. + * + * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. + */ + if ((dynamic && initial_calc && first_iter) || + (dynamic && restart && initial_calc_restart && first_iter)) { + MassMatrix.SetValZero(); + Compute_IntegrationConstants(config); + Compute_MassMatrix(geometry, solver_container, numerics, config); + } + + /* + * If body forces are taken into account, we need to compute the term that goes into the residual, + * which will be constant along the calculation both for linear and nonlinear analysis. + * + * Only initialized once, at the first iteration or the beginning of the calculation after a restart. + * + * We need first_iter, because in nonlinear problems there are more than one subiterations in the first time step. + */ + + if ((body_forces && initial_calc && first_iter) || + (body_forces && restart && initial_calc_restart && first_iter)) { + // If the load is incremental, we have to reset the variable to avoid adding up over the increments + if (incremental_load){ + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_BodyForces_Res(); + } + // Compute the dead load term + Compute_DeadLoad(geometry, solver_container, numerics, config); + } + + /* + * If the problem is nonlinear, we need to initialize the Jacobian and the stiffness matrix at least at the beginning + * of each time step. If the solution method is Newton Rapshon, we initialize it also at the beginning of each + * iteration. + */ + + if ((nonlinear_analysis) && ((newton_raphson) || (first_iter))) { + Jacobian.SetValZero(); + // StiffMatrix.SetValZero(); + } + + /* + * Some external forces may be considered constant over the time step. + */ + if (first_iter) { + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Clear_SurfaceLoad_Res(); + } + + +} - if (iFSIIter == 0) historyFile_FSI << " " << endl ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() ; - else historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() << "," ; - } +void CFEM_ElasticitySolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) { } - } - else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ +void CFEM_ElasticitySolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { + + unsigned long iPoint, nPoint; + bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied + + nPoint = geometry[MESH_0]->GetnPoint(); + + /*--- We store the current solution as "Solution Old", for the case that we need to retrieve it ---*/ + + if (incremental_load){ + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_OldSolution(); + } + + +} - if (iFSIIter == 0){ +void CFEM_ElasticitySolver::ResetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long ExtIter) { + + unsigned long iPoint, nPoint; + bool incremental_load = config->GetIncrementalLoad(); // If an incremental load is applied + + nPoint = geometry[MESH_0]->GetnPoint(); + + /*--- We store the current solution as "Solution Old", for the case that we need to retrieve it ---*/ + + if (incremental_load){ + for (iPoint = 0; iPoint < nPoint; iPoint++) node[iPoint]->Set_Solution(); + } + +} - WAitkDyn_tn1 = GetWAitken_Dyn_tn1(); - WAitkDyn_Max = fea_config->GetAitkenDynMaxInit(); - WAitkDyn_Min = fea_config->GetAitkenDynMinInit(); +void CFEM_ElasticitySolver::Compute_StiffMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { + + unsigned long iElem, iVar, jVar; + unsigned short iNode, iDim, nNodes = 0; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord; + int EL_KIND = 0; + + su2double *Kab = NULL; + unsigned short NelNodes, jNode; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + } + } + + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND], config); + + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + for (jNode = 0; jNode < NelNodes; jNode++){ + + Kab = element_container[FEA_TERM][EL_KIND]->Get_Kab(iNode, jNode); + + for (iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + } + } + + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_ij); + + } + + } + + } + + +} - WAitkDyn = min(WAitkDyn_tn1, WAitkDyn_Max); - WAitkDyn = max(WAitkDyn, WAitkDyn_Min); +void CFEM_ElasticitySolver::Compute_StiffMatrix_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { + + unsigned long iElem, iVar, jVar; + unsigned short iNode, iDim, nNodes = 0; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord, val_Sol; + int EL_KIND = 0; + + su2double Ks_ab; + su2double *Kab = NULL; + su2double *Kk_ab = NULL; + su2double *Ta = NULL; + unsigned short NelNodes, jNode; + + bool incompressible = (config->GetMaterialCompressibility() == INCOMPRESSIBLE_MAT); + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + } + } + + /*--- If incompressible, we compute the Mean Dilatation term first so the volume is already computed ---*/ + + if (incompressible) numerics[FEA_TERM]->Compute_MeanDilatation_Term(element_container[FEA_TERM][EL_KIND], config); + + numerics[FEA_TERM]->Compute_Tangent_Matrix(element_container[FEA_TERM][EL_KIND], config); + + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + /*--- Check if this is my node or not ---*/ + LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); + + for (jNode = 0; jNode < NelNodes; jNode++){ + + Kab = element_container[FEA_TERM][EL_KIND]->Get_Kab(iNode, jNode); + Ks_ab = element_container[FEA_TERM][EL_KIND]->Get_Ks_ab(iNode,jNode); + if (incompressible) Kk_ab = element_container[FEA_TERM][EL_KIND]->Get_Kk_ab(iNode,jNode); + + for (iVar = 0; iVar < nVar; iVar++){ + Jacobian_s_ij[iVar][iVar] = Ks_ab; + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_c_ij[iVar][jVar] = Kab[iVar*nVar+jVar]; + if (incompressible) Jacobian_k_ij[iVar][jVar] = Kk_ab[iVar*nVar+jVar]; + } + } + + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_c_ij); + Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_s_ij); + if (incompressible) Jacobian.AddBlock(indexNode[iNode], indexNode[jNode], Jacobian_k_ij); + + } + + } + + } + +} - SetWAitken_Dyn(WAitkDyn); - if (writeHistFSI && (rank == MASTER_NODE)){ - if (iFSIIter == 0) historyFile_FSI << " " << endl ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; - } +void CFEM_ElasticitySolver::Compute_MassMatrix(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { + + unsigned long iElem, iVar; + unsigned short iNode, iDim, nNodes = 0; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord; + int EL_KIND = 0; + + su2double Mab; + unsigned short NelNodes, jNode; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL) {nNodes = 4; EL_KIND = EL_QUAD;} + + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + } + } + + numerics[FEA_TERM]->Compute_Mass_Matrix(element_container[FEA_TERM][EL_KIND], config); + + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + for (jNode = 0; jNode < NelNodes; jNode++){ + + Mab = element_container[FEA_TERM][EL_KIND]->Get_Mab(iNode, jNode); + + for (iVar = 0; iVar < nVar; iVar++){ + MassMatrix_ij[iVar][iVar] = Mab; + } + + MassMatrix.AddBlock(indexNode[iNode], indexNode[jNode], MassMatrix_ij); + + } + + } + + } + +} - } - else{ - // To nPointDomain; we need to communicate the values - for (iPoint = 0; iPoint < nPointDomain; iPoint++){ +void CFEM_ElasticitySolver::Compute_NodalStressRes(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { + + + unsigned long iElem, iVar; + unsigned short iNode, iDim, nNodes = 0; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord, val_Sol; + int EL_KIND = 0; + + su2double *Ta = NULL; + unsigned short NelNodes; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL){nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + } + } + + numerics[FEA_TERM]->Compute_NodalStress_Term(element_container[FEA_TERM][EL_KIND], config); + + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + LinSysRes.SubtractBlock(indexNode[iNode], Res_Stress_i); + + } + + } + + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[0]->GetCoord(iDim); + val_Sol = node[0]->GetSolution(iDim) + val_Coord; + } + +} - dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); - dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); - dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); +void CFEM_ElasticitySolver::Compute_NodalStress(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { + + unsigned long iPoint, iElem, iVar; + unsigned short iNode, iDim, iStress; + unsigned short nNodes = 0, nStress; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord, val_Sol; + int EL_KIND = 0; + + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + + if (nDim == 2) nStress = 3; + else nStress = 6; + + su2double *Ta = NULL; + + unsigned short NelNodes; + + /*--- Restart stress to avoid adding results from previous time steps ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + for (iStress = 0; iStress < nStress; iStress++){ + node[iPoint]->SetStress_FEM(iStress, 0.0); + } + } + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL){nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + val_Sol = node[indexNode[iNode]]->GetSolution(iDim) + val_Coord; + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + element_container[FEA_TERM][EL_KIND]->SetCurr_Coord(val_Sol, iNode, iDim); + } + } + + numerics[FEA_TERM]->Compute_Averaged_NodalStress(element_container[FEA_TERM][EL_KIND], config); + + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + /*--- This only works if the problem is nonlinear ---*/ + Ta = element_container[FEA_TERM][EL_KIND]->Get_Kt_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Stress_i[iVar] = Ta[iVar]; + + LinSysReact.AddBlock(indexNode[iNode], Res_Stress_i); + + for (iStress = 0; iStress < nStress; iStress++){ + node[indexNode[iNode]]->AddStress_FEM(iStress, + (element_container[FEA_TERM][EL_KIND]->Get_NodalStress(iNode, iStress) / + geometry->node[indexNode[iNode]]->GetnElem()) ); + } + + } + + } + + su2double *Stress; + su2double VonMises_Stress, MaxVonMises_Stress = 0.0; + su2double Sxx,Syy,Szz,Sxy,Sxz,Syz,S1,S2; + + /* --- For the number of nodes in the mesh ---*/ + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + /* --- Get the stresses, added up from all the elements that connect to the node ---*/ + + Stress = node[iPoint]->GetStress_FEM(); + + /* --- Compute the stress averaged from all the elements connecting to the node and the Von Mises stress ---*/ + + if (nDim == 2) { + + Sxx=Stress[0]; + Syy=Stress[1]; + Sxy=Stress[2]; + + S1=(Sxx+Syy)/2+sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); + S2=(Sxx+Syy)/2-sqrt(((Sxx-Syy)/2)*((Sxx-Syy)/2)+Sxy*Sxy); + + VonMises_Stress = sqrt(S1*S1+S2*S2-2*S1*S2); + + } + else { + + Sxx = Stress[0]; + Syy = Stress[1]; + Szz = Stress[3]; + + Sxy = Stress[2]; + Sxz = Stress[4]; + Syz = Stress[5]; + + VonMises_Stress = sqrt(0.5*( pow(Sxx - Syy, 2.0) + + pow(Syy - Szz, 2.0) + + pow(Szz - Sxx, 2.0) + + 6.0*(Sxy*Sxy+Sxz*Sxz+Syz*Syz) + )); + + } + + node[iPoint]->SetVonMises_Stress(VonMises_Stress); + + /*--- Compute the maximum value of the Von Mises Stress ---*/ + + MaxVonMises_Stress = max(MaxVonMises_Stress, VonMises_Stress); + + } + +#ifdef HAVE_MPI + + /*--- Compute MaxVonMises_Stress using all the nodes ---*/ + + su2double MyMaxVonMises_Stress = MaxVonMises_Stress; MaxVonMises_Stress = 0.0; + SU2_MPI::Allreduce(&MyMaxVonMises_Stress, &MaxVonMises_Stress, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + +#endif + + /*--- Set the value of the MaxVonMises_Stress as the CFEA coeffient ---*/ + + Total_CFEA = MaxVonMises_Stress; + + + bool outputReactions = false; + + if (outputReactions) { + + ofstream myfile; + myfile.open ("Reactions.txt"); + + unsigned short iMarker; + unsigned long iVertex; + su2double val_Reaction; + + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + + if (!dynamic){ + /*--- Loop over all the markers ---*/ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { + + /*--- If it corresponds to a clamped boundary ---*/ + + case CLAMPED_BOUNDARY: + + myfile << "MARKER " << iMarker << ":" << endl; + + /*--- Loop over all the vertices ---*/ + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + + /*--- Get node index ---*/ + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + myfile << "Node " << iPoint << "." << " \t "; + + for (iDim = 0; iDim < nDim; iDim++){ + /*--- Retrieve coordinate ---*/ + val_Coord = geometry->node[iPoint]->GetCoord(iDim); + myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + } + + for (iVar = 0; iVar < nVar; iVar++){ + /*--- Retrieve reaction ---*/ + val_Reaction = LinSysReact.GetBlock(iPoint, iVar); + myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + } + + myfile << endl; + } + myfile << endl; + break; + } + } + else if (dynamic){ + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + case (NEWMARK_IMPLICIT): + + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); + + /*--- Loop over all the markers ---*/ + for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) + switch (config->GetMarker_All_KindBC(iMarker)) { + + /*--- If it corresponds to a clamped boundary ---*/ + + case CLAMPED_BOUNDARY: + + myfile << "MARKER " << iMarker << ":" << endl; + + /*--- Loop over all the vertices ---*/ + for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + + /*--- Get node index ---*/ + iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + myfile << "Node " << iPoint << "." << " \t "; + + for (iDim = 0; iDim < nDim; iDim++){ + /*--- Retrieve coordinate ---*/ + val_Coord = geometry->node[iPoint]->GetCoord(iDim); + myfile << "X" << iDim + 1 << ": " << val_Coord << " \t " ; + } + + /*--- Retrieve the time contribution ---*/ + Res_Time_Cont = TimeRes.GetBlock(iPoint); + + for (iVar = 0; iVar < nVar; iVar++){ + /*--- Retrieve reaction ---*/ + val_Reaction = LinSysReact.GetBlock(iPoint, iVar) + Res_Time_Cont[iVar]; + myfile << "F" << iVar + 1 << ": " << val_Reaction << " \t " ; + } + + myfile << endl; + } + myfile << endl; + break; + } + + + break; + case (GENERALIZED_ALPHA): + cout << "NOT IMPLEMENTED YET" << endl; + break; + } + + } + + + + myfile.close(); + + } + +} - for (iDim = 0; iDim < nDim; iDim++){ +void CFEM_ElasticitySolver::Compute_DeadLoad(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config) { + + unsigned long iElem, iVar; + unsigned short iNode, iDim, nNodes = 0; + unsigned long indexNode[8]={0,0,0,0,0,0,0,0}; + su2double val_Coord; + int EL_KIND = 0; + + su2double *Dead_Load = NULL; + unsigned short NelNodes; + + /*--- Loops over all the elements ---*/ + + for (iElem = 0; iElem < geometry->GetnElem(); iElem++) { + + if (geometry->elem[iElem]->GetVTK_Type() == TRIANGLE) {nNodes = 3; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == QUADRILATERAL){nNodes = 4; EL_KIND = EL_QUAD;} + if (geometry->elem[iElem]->GetVTK_Type() == TETRAHEDRON) {nNodes = 4; EL_KIND = EL_TETRA;} + if (geometry->elem[iElem]->GetVTK_Type() == PYRAMID) {nNodes = 5; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == PRISM) {nNodes = 6; EL_KIND = EL_TRIA;} + if (geometry->elem[iElem]->GetVTK_Type() == HEXAHEDRON) {nNodes = 8; EL_KIND = EL_HEXA;} + + /*--- For the number of nodes, we get the coordinates from the connectivity matrix ---*/ + + for (iNode = 0; iNode < nNodes; iNode++) { + indexNode[iNode] = geometry->elem[iElem]->GetNode(iNode); + for (iDim = 0; iDim < nDim; iDim++) { + val_Coord = geometry->node[indexNode[iNode]]->GetCoord(iDim); + element_container[FEA_TERM][EL_KIND]->SetRef_Coord(val_Coord, iNode, iDim); + } + } + + numerics[FEA_TERM]->Compute_Dead_Load(element_container[FEA_TERM][EL_KIND], config); + + NelNodes = element_container[FEA_TERM][EL_KIND]->GetnNodes(); + + for (iNode = 0; iNode < NelNodes; iNode++){ + + Dead_Load = element_container[FEA_TERM][EL_KIND]->Get_FDL_a(iNode); + for (iVar = 0; iVar < nVar; iVar++) Res_Dead_Load[iVar] = Dead_Load[iVar]; + + node[indexNode[iNode]]->Add_BodyForces_Res(Res_Dead_Load); + + } + + } + + +} - /*--- Compute the deltaU and deltaU_n+1 ---*/ - deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; - deltaU_p1[iDim] = dispCalc[iDim] - dispPred[iDim]; +void CFEM_ElasticitySolver::Initialize_SystemMatrix(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + +} - /*--- Compute the difference ---*/ - delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; +void CFEM_ElasticitySolver::Compute_IntegrationConstants(CConfig *config) { + + su2double Delta_t= config->GetDelta_DynTime(); + + su2double delta = config->GetNewmark_delta(), alpha = config->GetNewmark_alpha(); + + su2double beta = config->Get_Int_Coeffs(0); + // su2double gamma = config->Get_Int_Coeffs(1); + su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); + + switch (config->GetKind_TimeIntScheme_FEA()) { + case (CD_EXPLICIT): + cout << "NOT IMPLEMENTED YET" << endl; + break; + case (NEWMARK_IMPLICIT): + + /*--- Integration constants for Newmark scheme ---*/ + + a_dt[0]= 1 / (alpha*pow(Delta_t,2.0)); + a_dt[1]= delta / (alpha*Delta_t); + a_dt[2]= 1 / (alpha*Delta_t); + a_dt[3]= 1 /(2*alpha) - 1; + a_dt[4]= delta/alpha - 1; + a_dt[5]= (Delta_t/2) * (delta/alpha - 2); + a_dt[6]= Delta_t * (1-delta); + a_dt[7]= delta * Delta_t; + a_dt[8]= 0.0; + + break; + + case (GENERALIZED_ALPHA): + + /*--- Integration constants for Generalized Alpha ---*/ + /*--- Needs to be updated if accounting for structural damping ---*/ + + a_dt[0]= (1 / (beta*pow(Delta_t,2.0))) * ((1 - alpha_m) / (1 - alpha_f)) ; + a_dt[1]= 0.0 ; + a_dt[2]= (1 - alpha_m) / (beta*Delta_t); + a_dt[3]= ((1 - 2*beta)*(1-alpha_m) / (2*beta)) - alpha_m; + a_dt[4]= 0.0; + a_dt[5]= 0.0; + a_dt[6]= Delta_t * (1-delta); + a_dt[7]= delta * Delta_t; + a_dt[8]= (1 - alpha_m) / (beta*pow(Delta_t,2.0)); + + break; + } + + +} - /*--- Add numerator and denominator ---*/ - sbuf_numAitk += deltaU[iDim] * delta_deltaU[iDim]; - sbuf_denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; - } +void CFEM_ElasticitySolver::BC_Clamped(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { + + unsigned long iPoint, iVertex; + unsigned short iVar, jVar; + + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + + for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { + + /*--- Get node index ---*/ + + iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + + if (geometry->node[iPoint]->GetDomain()) { + + if (nDim == 2) { + Solution[0] = 0.0; Solution[1] = 0.0; + Residual[0] = 0.0; Residual[1] = 0.0; + } + else { + Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; + Residual[0] = 0.0; Residual[1] = 0.0; Residual[2] = 0.0; + } + + node[iPoint]->SetSolution(Solution); + + if (dynamic){ + node[iPoint]->SetSolution_Vel(Solution); + node[iPoint]->SetSolution_Accel(Solution); + } + + + /*--- Initialize the reaction vector ---*/ + LinSysReact.SetBlock(iPoint, Residual); + + LinSysRes.SetBlock(iPoint, Residual); + + /*--- STRONG ENFORCEMENT OF THE DISPLACEMENT BOUNDARY CONDITION ---*/ + + /*--- Delete the columns for a particular node ---*/ + + for (iVar = 0; iVar < nPoint; iVar++){ + if (iVar==iPoint) { + Jacobian.SetBlock(iVar,iPoint,mId_Aux); + } + else { + Jacobian.SetBlock(iVar,iPoint,mZeros_Aux); + } + } + + /*--- Delete the rows for a particular node ---*/ + for (jVar = 0; jVar < nPoint; jVar++){ + if (iPoint!=jVar) { + Jacobian.SetBlock(iPoint,jVar,mZeros_Aux); + } + } + + /*--- If the problem is dynamic ---*/ + /*--- Enforce that in the previous time step all nodes had 0 U, U', U'' ---*/ + + if(dynamic){ + + node[iPoint]->SetSolution_time_n(Solution); + node[iPoint]->SetSolution_Vel_time_n(Solution); + node[iPoint]->SetSolution_Accel_time_n(Solution); + + } + + } + + } + +} - } +void CFEM_ElasticitySolver::BC_Clamped_Post(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { + + unsigned long iPoint, iVertex; + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); + + for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { + + /*--- Get node index ---*/ + + iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + + if (nDim == 2) { + Solution[0] = 0.0; Solution[1] = 0.0; + } + else { + Solution[0] = 0.0; Solution[1] = 0.0; Solution[2] = 0.0; + } + + node[iPoint]->SetSolution(Solution); + + if (dynamic){ + node[iPoint]->SetSolution_Vel(Solution); + node[iPoint]->SetSolution_Accel(Solution); + } + + } + +} +void CFEM_ElasticitySolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, + unsigned short iMesh) { + + unsigned short iVar; + unsigned long iPoint, total_index; + + bool first_iter = (config->GetIntIter() == 0); + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + + su2double solNorm = 0.0, solNorm_recv = 0.0; + +#ifdef HAVE_MPI + int rank = MASTER_NODE; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + if (nonlinear_analysis){ + + /*--- If the problem is nonlinear, we have 3 convergence criteria ---*/ + + /*--- UTOL = norm(Delta_U(k)) / norm(U(k)) --------------------------*/ + /*--- RTOL = norm(Residual(k)) / norm(Residual(0)) ------------------*/ + /*--- ETOL = Delta_U(k) * Residual(k) / Delta_U(0) * Residual(0) ----*/ + + if (first_iter){ + Conv_Ref[0] = 1.0; // Position for the norm of the solution + Conv_Ref[1] = max(LinSysRes.norm(), EPS); // Position for the norm of the residual + Conv_Ref[2] = max(dotProd(LinSysSol, LinSysRes), EPS); // Position for the energy tolerance + + /*--- Make sure the computation runs at least 2 iterations ---*/ + Conv_Check[0] = 1.0; + Conv_Check[1] = 1.0; + Conv_Check[2] = 1.0; + } + else { + /*--- Compute the norm of the solution vector Uk ---*/ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + for (iVar = 0; iVar < nVar; iVar++){ + solNorm += node[iPoint]->GetSolution(iVar) * node[iPoint]->GetSolution(iVar); + } + } + + // We need to communicate the norm of the solution and compute the RMS throughout the different processors + #ifdef HAVE_MPI - SU2_MPI::Allreduce(&sbuf_numAitk, &rbuf_numAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); - SU2_MPI::Allreduce(&sbuf_denAitk, &rbuf_denAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + /*--- We sum the squares of the norms across the different processors ---*/ + SU2_MPI::Allreduce(&solNorm, &solNorm_recv, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); #else - rbuf_numAitk = sbuf_numAitk; - rbuf_denAitk = sbuf_denAitk; + solNorm_recv = solNorm; #endif + + Conv_Ref[0] = max(sqrt(solNorm_recv), EPS); // Norm of the solution vector + + Conv_Check[0] = LinSysSol.norm() / Conv_Ref[0]; // Norm of the delta-solution vector + Conv_Check[1] = LinSysRes.norm() / Conv_Ref[1]; // Norm of the residual + Conv_Check[2] = dotProd(LinSysSol, LinSysRes) / Conv_Ref[2]; // Position for the energy tolerance + + } + + /*--- MPI solution ---*/ + + Set_MPI_Solution(geometry, config); + + } else{ + + /*--- If the problem is linear, the only check we do is the RMS of the displacements ---*/ + + /*--- Compute the residual Ax-f ---*/ + + Jacobian.ComputeResidual(LinSysSol, LinSysRes, LinSysAux); + + /*--- Set maximum residual to zero ---*/ + + for (iVar = 0; iVar < nVar; iVar++) { + SetRes_RMS(iVar, 0.0); + SetRes_Max(iVar, 0.0, 0); + } + + /*--- Compute the residual ---*/ + + for (iPoint = 0; iPoint < geometry->GetnPoint(); iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar+iVar; + AddRes_RMS(iVar, LinSysAux[total_index]*LinSysAux[total_index]); + AddRes_Max(iVar, fabs(LinSysAux[total_index]), geometry->node[iPoint]->GetGlobalIndex(), geometry->node[iPoint]->GetCoord()); + } + } + + + /*--- MPI solution ---*/ + + Set_MPI_Solution(geometry, config); + + /*--- Compute the root mean square residual ---*/ + + SetResidual_RMS(geometry, config); + } + +} - WAitkDyn = GetWAitken_Dyn(); - - if (rbuf_denAitk > 1E-15){ - WAitkDyn = - 1.0 * WAitkDyn * rbuf_numAitk / rbuf_denAitk ; - } - - WAitkDyn = max(WAitkDyn, 0.1); - WAitkDyn = min(WAitkDyn, 1.0); - - SetWAitken_Dyn(WAitkDyn); +void CFEM_ElasticitySolver::BC_Normal_Displacement(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } - if (writeHistFSI && (rank == MASTER_NODE)){ - historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; - historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; - historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn << "," ; - } +void CFEM_ElasticitySolver::BC_Normal_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } - } +void CFEM_ElasticitySolver::BC_Dir_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { + + su2double a[3], b[3], AC[3], BD[3]; + unsigned long iElem, Point_0 = 0, Point_1 = 0, Point_2 = 0, Point_3=0; + su2double *Coord_0 = NULL, *Coord_1= NULL, *Coord_2= NULL, *Coord_3= NULL; + su2double Length_Elem = 0.0, Area_Elem = 0.0; + unsigned short iDim; + + su2double LoadDirVal = config->GetLoad_Dir_Value(config->GetMarker_All_TagBound(val_marker)); + su2double LoadDirMult = config->GetLoad_Dir_Multiplier(config->GetMarker_All_TagBound(val_marker)); + su2double *Load_Dir_Local= config->GetLoad_Dir(config->GetMarker_All_TagBound(val_marker)); + + su2double TotalLoad; + + bool Sigmoid_Load = config->GetSigmoid_Load(); + su2double Sigmoid_Time = config->GetSigmoid_Time(); + su2double Sigmoid_K = config->GetSigmoid_K(); + su2double SigAux = 0.0; + + su2double CurrentTime=config->GetCurrent_DynTime(); + su2double ModAmpl, NonModAmpl; + + bool Ramp_Load = config->GetRamp_Load(); + su2double Ramp_Time = config->GetRamp_Time(); + + if (Ramp_Load){ + ModAmpl=LoadDirVal*LoadDirMult*CurrentTime/Ramp_Time; + NonModAmpl=LoadDirVal*LoadDirMult; + TotalLoad=min(ModAmpl,NonModAmpl); + } + else if (Sigmoid_Load){ + SigAux = CurrentTime/ Sigmoid_Time; + ModAmpl = (1 / (1+exp(-1*Sigmoid_K*(SigAux - 0.5)) ) ); + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); + TotalLoad=ModAmpl*LoadDirVal*LoadDirMult; + } + else{ + TotalLoad=LoadDirVal*LoadDirMult; + } + + /*--- Compute the norm of the vector that was passed in the config file ---*/ + su2double Norm = 1.0; + if (nDim==2) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]); + if (nDim==3) Norm=sqrt(Load_Dir_Local[0]*Load_Dir_Local[0]+Load_Dir_Local[1]*Load_Dir_Local[1]+Load_Dir_Local[2]*Load_Dir_Local[2]); + + for (iElem = 0; iElem < geometry->GetnElem_Bound(val_marker); iElem++) { + + Point_0 = geometry->bound[val_marker][iElem]->GetNode(0); Coord_0 = geometry->node[Point_0]->GetCoord(); + Point_1 = geometry->bound[val_marker][iElem]->GetNode(1); Coord_1 = geometry->node[Point_1]->GetCoord(); + if (nDim == 3) { + + Point_2 = geometry->bound[val_marker][iElem]->GetNode(2); Coord_2 = geometry->node[Point_2]->GetCoord(); + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ + Point_3 = geometry->bound[val_marker][iElem]->GetNode(3); Coord_3 = geometry->node[Point_3]->GetCoord(); + } + + } + + /*--- Compute area (3D), and length of the surfaces (2D) ---*/ + + if (nDim == 2) { + + for (iDim = 0; iDim < nDim; iDim++) a[iDim] = Coord_0[iDim]-Coord_1[iDim]; + + Length_Elem = sqrt(a[0]*a[0]+a[1]*a[1]); + // Normal_Elem[0] = a[1]; + // Normal_Elem[1] = -(a[0]); + + } + + if (nDim == 3) { + + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + for (iDim = 0; iDim < nDim; iDim++) { + a[iDim] = Coord_1[iDim]-Coord_0[iDim]; + b[iDim] = Coord_2[iDim]-Coord_0[iDim]; + } + + su2double Ni=0 , Nj=0, Nk=0; + + Ni=a[1]*b[2]-a[2]*b[1]; + Nj=-a[0]*b[2]+a[2]*b[0]; + Nk=a[0]*b[1]-a[1]*b[0]; + + Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); + + } + + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ + + for (iDim = 0; iDim < nDim; iDim++) { + AC[iDim] = Coord_2[iDim]-Coord_0[iDim]; + BD[iDim] = Coord_3[iDim]-Coord_1[iDim]; + } + + su2double Ni=0 , Nj=0, Nk=0; + + Ni=AC[1]*BD[2]-AC[2]*BD[1]; + Nj=-AC[0]*BD[2]+AC[2]*BD[0]; + Nk=AC[0]*BD[1]-AC[1]*BD[0]; + + Area_Elem = 0.5*sqrt(Ni*Ni+Nj*Nj+Nk*Nk); + + } + } + + if (nDim == 2) { + + Residual[0] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/2.0)*Length_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + + node[Point_0]->Add_SurfaceLoad_Res(Residual); + node[Point_1]->Add_SurfaceLoad_Res(Residual); + + } + + else { + if (geometry->bound[val_marker][iElem]->GetVTK_Type() == TRIANGLE){ + + Residual[0] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/3.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + node[Point_0]->Add_SurfaceLoad_Res(Residual); + node[Point_1]->Add_SurfaceLoad_Res(Residual); + node[Point_2]->Add_SurfaceLoad_Res(Residual); + + } + else if (geometry->bound[val_marker][iElem]->GetVTK_Type() == QUADRILATERAL){ + + Residual[0] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[0]/Norm; + Residual[1] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[1]/Norm; + Residual[2] = (1.0/4.0)*Area_Elem*TotalLoad*Load_Dir_Local[2]/Norm; + + node[Point_0]->Add_SurfaceLoad_Res(Residual); + node[Point_1]->Add_SurfaceLoad_Res(Residual); + node[Point_2]->Add_SurfaceLoad_Res(Residual); + node[Point_3]->Add_SurfaceLoad_Res(Residual); + + } + + } + + } + +} - } - else { - if (rank == MASTER_NODE) cout << "No relaxation method used. " << endl; - } +void CFEM_ElasticitySolver::BC_Sine_Load(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } - } +void CFEM_ElasticitySolver::BC_Pressure(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, + unsigned short val_marker) { } - if (writeHistFSI && (rank == MASTER_NODE)){historyFile_FSI.close();} +void CFEM_ElasticitySolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { } +void CFEM_ElasticitySolver::ImplicitNewmark_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned long iPoint, jPoint; + unsigned short iVar, jVar; + + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + bool fsi = config->GetFSI_Simulation(); // FSI simulation. + + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + + bool restart = config->GetRestart(); // Restart solution + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration + + bool incremental_load = config->GetIncrementalLoad(); + + if (!dynamic){ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + /*--- Add the external contribution to the residual ---*/ + /*--- (the terms that are constant over the time step) ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + } + } + else { + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add the contribution to the residual due to body forces ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + } + + } + + if (dynamic) { + + /*--- Add the mass matrix contribution to the Jacobian ---*/ + + /* + * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning + * of each time step. If the solution method is Newton Rapshon, we repeat this step at the beginning of each + * iteration, as the Jacobian is recomputed + * + * If the problem is linear, we add the Mass Matrix contribution to the Jacobian at the first calculation. + * From then on, the Jacobian is always the same matrix. + * + */ + + if ((nonlinear_analysis && (newton_raphson || first_iter)) || + (linear_analysis && initial_calc) || + (linear_analysis && restart && initial_calc_restart)) { + for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (jPoint = 0; jPoint < nPoint; jPoint++){ + for(iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); + } + } + Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); + } + } + } + + + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + + } + + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); + /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + /*--- Dynamic contribution ---*/ + Res_Time_Cont = TimeRes.GetBlock(iPoint); + LinSysRes.AddBlock(iPoint, Res_Time_Cont); + + /*--- External surface load contribution ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + + } + } + else { + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + } + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + + /*--- Body forces contribution (dead load) ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + + /*--- FSI contribution (flow loads) ---*/ + if (fsi) { + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_FSI_Cont[iVar] = loadIncrement * node[iPoint]->Get_FlowTraction(iVar); + } + } + else { + Res_FSI_Cont = node[iPoint]->Get_FlowTraction(); + } + LinSysRes.AddBlock(iPoint, Res_FSI_Cont); + } + } + } + + } -void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, - CConfig *fea_config, CSolver ***fea_solution){ - - unsigned long iPoint, iDim; - unsigned short RelaxMethod_FSI; - su2double *dispPred, *dispCalc; - su2double WAitken; - su2double CurrentTime=fea_config->GetCurrent_DynTime(); - su2double Static_Time=fea_config->GetStatic_Time(); +void CFEM_ElasticitySolver::ImplicitNewmark_Update(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + + /*--- Update solution ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ + + if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + + if (dynamic){ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Acceleration component of the solution ---*/ + /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ + + Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - + node[iPoint]->GetSolution_time_n(iVar)) - + a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - + a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); + } + + /*--- Set the acceleration in the node structure ---*/ + + node[iPoint]->SetSolution_Accel(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Velocity component of the solution ---*/ + /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ + + Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ + a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + + a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); + + } + + /*--- Set the velocity in the node structure ---*/ + + node[iPoint]->SetSolution_Vel(Solution); + + } + + } + + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + + +} - RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); +void CFEM_ElasticitySolver::ImplicitNewmark_Relaxation(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + su2double *valSolutionPred; + + /*--- Update solution and set it to be the solution after applying relaxation---*/ + + for (iPoint=0; iPoint < nPointDomain; iPoint++){ + + valSolutionPred = node[iPoint]->GetSolution_Pred(); + + node[iPoint]->SetSolution(valSolutionPred); + } + + /*--- Compute velocities and accelerations ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Acceleration component of the solution ---*/ + /*--- U''(t+dt) = a0*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ + + Solution[iVar]=a_dt[0]*(node[iPoint]->GetSolution(iVar) - + node[iPoint]->GetSolution_time_n(iVar)) - + a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - + a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); + } + + /*--- Set the acceleration in the node structure ---*/ + + node[iPoint]->SetSolution_Accel(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Velocity component of the solution ---*/ + /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ + + Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ + a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + + a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); + + } + + /*--- Set the velocity in the node structure ---*/ + + node[iPoint]->SetSolution_Vel(Solution); + + } + + + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + + /*--- After the solution has been communicated, set the 'old' predicted solution as the solution ---*/ + /*--- Loop over n points (as we have already communicated everything ---*/ + + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++) { + node[iPoint]->SetSolution_Pred_Old(iVar,node[iPoint]->GetSolution(iVar)); + } + } + + +} - /*--- Only when there is movement it makes sense to update the solutions... ---*/ - if (CurrentTime > Static_Time) { +void CFEM_ElasticitySolver::GeneralizedAlpha_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned long iPoint, jPoint; + unsigned short iVar, jVar; + + bool initial_calc = (config->GetExtIter() == 0); // Checks if it is the first calculation. + bool first_iter = (config->GetIntIter() == 0); + bool dynamic = (config->GetDynamic_Analysis() == DYNAMIC); // Dynamic simulations. + bool linear_analysis = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Linear analysis. + bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Nonlinear analysis. + bool newton_raphson = (config->GetKind_SpaceIteScheme_FEA() == NEWTON_RAPHSON); // Newton-Raphson method + bool fsi = config->GetFSI_Simulation(); // FSI simulation. + + bool body_forces = config->GetDeadLoad(); // Body forces (dead loads). + + bool restart = config->GetRestart(); // Restart solution + bool initial_calc_restart = (SU2_TYPE::Int(config->GetExtIter()) == config->GetDyn_RestartIter()); // Restart iteration + + su2double alpha_f = config->Get_Int_Coeffs(2); + + bool incremental_load = config->GetIncrementalLoad(); + + if (!dynamic){ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + /*--- Add the external contribution to the residual ---*/ + /*--- (the terms that are constant over the time step) ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * node[iPoint]->Get_SurfaceLoad_Res(iVar); + } + } + else { + Res_Ext_Surf = node[iPoint]->Get_SurfaceLoad_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add the contribution to the residual due to body forces ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + + } + + } + + if (dynamic) { + + /*--- Add the mass matrix contribution to the Jacobian ---*/ + + /* + * If the problem is nonlinear, we need to add the Mass Matrix contribution to the Jacobian at the beginning + * of each time step. If the solution method is Newton Rapshon, we repeat this step at the beginning of each + * iteration, as the Jacobian is recomputed + * + * If the problem is linear, we add the Mass Matrix contribution to the Jacobian at the first calculation. + * From then on, the Jacobian is always the same matrix. + * + */ + + if ((nonlinear_analysis && (newton_raphson || first_iter)) || + (linear_analysis && initial_calc) || + (linear_analysis && restart && initial_calc_restart)) { + for (iPoint = 0; iPoint < nPoint; iPoint++){ + for (jPoint = 0; jPoint < nPoint; jPoint++){ + for(iVar = 0; iVar < nVar; iVar++){ + for (jVar = 0; jVar < nVar; jVar++){ + Jacobian_ij[iVar][jVar] = a_dt[0] * MassMatrix.GetBlock(iPoint, jPoint, iVar, jVar); + } + } + Jacobian.AddBlock(iPoint, jPoint, Jacobian_ij); + } + } + } + + + /*--- Loop over all points, and set aux vector TimeRes_Aux = a0*U+a2*U'+a3*U'' ---*/ + if (linear_analysis){ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar)+ //a0*U(t) + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar)+ //a2*U'(t) + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + else if (nonlinear_analysis){ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (iVar = 0; iVar < nVar; iVar++){ + Residual[iVar] = a_dt[0]*node[iPoint]->GetSolution_time_n(iVar) //a0*U(t) + - a_dt[0]*node[iPoint]->GetSolution(iVar) //a0*U(t+dt)(k-1) + + a_dt[2]*node[iPoint]->GetSolution_Vel_time_n(iVar) //a2*U'(t) + + a_dt[3]*node[iPoint]->GetSolution_Accel_time_n(iVar); //a3*U''(t) + } + TimeRes_Aux.SetBlock(iPoint, Residual); + } + } + /*--- Once computed, compute M*TimeRes_Aux ---*/ + MassMatrix.MatrixVectorProduct(TimeRes_Aux,TimeRes,geometry,config); + /*--- Add the components of M*TimeRes_Aux to the residual R(t+dt) ---*/ + for (iPoint = 0; iPoint < nPoint; iPoint++) { + /*--- Dynamic contribution ---*/ + Res_Time_Cont = TimeRes.GetBlock(iPoint); + LinSysRes.AddBlock(iPoint, Res_Time_Cont); + /*--- External surface load contribution ---*/ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_SurfaceLoad_Res(iVar) + + alpha_f * node[iPoint]->Get_SurfaceLoad_Res_n(iVar) ); + } + } + else { + for (iVar = 0; iVar < nVar; iVar++){ + Res_Ext_Surf[iVar] = (1 - alpha_f) * node[iPoint]->Get_SurfaceLoad_Res(iVar) + + alpha_f * node[iPoint]->Get_SurfaceLoad_Res_n(iVar); + } + } + LinSysRes.AddBlock(iPoint, Res_Ext_Surf); + + /*--- Add the contribution to the residual due to body forces. + *--- It is constant over time, so it's not necessary to distribute it. ---*/ + + if (body_forces){ + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_Dead_Load[iVar] = loadIncrement * node[iPoint]->Get_BodyForces_Res(iVar); + } + } + else{ + Res_Dead_Load = node[iPoint]->Get_BodyForces_Res(); + } + + LinSysRes.AddBlock(iPoint, Res_Dead_Load); + } + + /*--- Add FSI contribution ---*/ + if (fsi) { + if (incremental_load){ + for (iVar = 0; iVar < nVar; iVar++){ + Res_FSI_Cont[iVar] = loadIncrement * ( (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + + alpha_f * node[iPoint]->Get_FlowTraction_n(iVar) ); + } + } + else { + for (iVar = 0; iVar < nVar; iVar++){ + Res_FSI_Cont[iVar] = (1 - alpha_f) * node[iPoint]->Get_FlowTraction(iVar) + + alpha_f * node[iPoint]->Get_FlowTraction_n(iVar); + } + } + LinSysRes.AddBlock(iPoint, Res_FSI_Cont); + } + } + } + +} - if (RelaxMethod_FSI == NO_RELAXATION){ - WAitken = 1.0; - } - else if (RelaxMethod_FSI == FIXED_PARAMETER){ - WAitken = fea_config->GetAitkenStatRelax(); - } - else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ - WAitken = GetWAitken_Dyn(); - } - else { - WAitken = 1.0; - } +void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateDisp(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + + bool linear = (config->GetGeometricConditions() == SMALL_DEFORMATIONS); // Geometrically linear problems + bool nonlinear = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); // Geometrically non-linear problems + + /*--- Update solution ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Displacements component of the solution ---*/ + + /*--- If it's a non-linear problem, the result is the DELTA_U, not U itself ---*/ + + if (linear) node[iPoint]->SetSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + if (nonlinear) node[iPoint]->Add_DeltaSolution(iVar, LinSysSol[iPoint*nVar+iVar]); + + } + + } + + /*--- Perform the MPI communication of the solution, displacements only ---*/ + + Set_MPI_Solution_DispOnly(geometry, config); + +} - // To nPointDomain; we need to communicate the solutions (predicted, old and old predicted) after this routine - for (iPoint=0; iPoint < nPointDomain; iPoint++){ +void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateSolution(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned short iVar; + unsigned long iPoint; + + su2double alpha_f = config->Get_Int_Coeffs(2), alpha_m = config->Get_Int_Coeffs(3); + + /*--- Compute solution at t_n+1, and update velocities and accelerations ---*/ + + for (iPoint = 0; iPoint < nPointDomain; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Compute the solution from the previous time step and the solution computed at t+1-alpha_f ---*/ + /*--- U(t+dt) = 1/alpha_f*(U(t+1-alpha_f)-alpha_f*U(t)) ---*/ + + Solution[iVar]=(1 / (1 - alpha_f))*(node[iPoint]->GetSolution(iVar) - + alpha_f * node[iPoint]->GetSolution_time_n(iVar)); + + } + + /*--- Set the solution in the node structure ---*/ + + node[iPoint]->SetSolution(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Acceleration component of the solution ---*/ + /*--- U''(t+dt-alpha_m) = a8*(U(t+dt)-U(t))+a2*(U'(t))+a3*(U''(t)) ---*/ + + Solution_Interm[iVar]=a_dt[8]*( node[iPoint]->GetSolution(iVar) - + node[iPoint]->GetSolution_time_n(iVar)) - + a_dt[2]* node[iPoint]->GetSolution_Vel_time_n(iVar) - + a_dt[3]* node[iPoint]->GetSolution_Accel_time_n(iVar); + + /*--- Compute the solution from the previous time step and the solution computed at t+1-alpha_f ---*/ + /*--- U''(t+dt) = 1/alpha_m*(U''(t+1-alpha_m)-alpha_m*U''(t)) ---*/ + + Solution[iVar]=(1 / (1 - alpha_m))*(Solution_Interm[iVar] - alpha_m * node[iPoint]->GetSolution_Accel_time_n(iVar)); + } + + /*--- Set the acceleration in the node structure ---*/ + + node[iPoint]->SetSolution_Accel(Solution); + + for (iVar = 0; iVar < nVar; iVar++) { + + /*--- Velocity component of the solution ---*/ + /*--- U'(t+dt) = U'(t)+ a6*(U''(t)) + a7*(U''(t+dt)) ---*/ + + Solution[iVar]=node[iPoint]->GetSolution_Vel_time_n(iVar)+ + a_dt[6]* node[iPoint]->GetSolution_Accel_time_n(iVar) + + a_dt[7]* node[iPoint]->GetSolution_Accel(iVar); + + } + + /*--- Set the velocity in the node structure ---*/ + + node[iPoint]->SetSolution_Vel(Solution); + + } + + /*--- Perform the MPI communication of the solution ---*/ + + Set_MPI_Solution(geometry, config); + +} - /*--- Retrieve pointers to the predicted and calculated solutions ---*/ - dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); +void CFEM_ElasticitySolver::GeneralizedAlpha_UpdateLoads(CGeometry *geometry, CSolver **solver_container, CConfig *config) { + + unsigned long iPoint; + bool fsi = config->GetFSI_Simulation(); + + /*--- Set the load conditions of the time step n+1 as the load conditions for time step n ---*/ + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + node[iPoint]->Set_SurfaceLoad_Res_n(); + if (fsi) node[iPoint]->Set_FlowTraction_n(); + } + +} - /*--- Set predicted solution as the old predicted solution ---*/ - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred_Old(); +void CFEM_ElasticitySolver::Solve_System(CGeometry *geometry, CSolver **solver_container, CConfig *config){ + + unsigned long IterLinSol = 0, iPoint, total_index; + unsigned short iVar; + + /*--- Initialize residual and solution at the ghost points ---*/ + + for (iPoint = nPointDomain; iPoint < nPoint; iPoint++) { + + for (iVar = 0; iVar < nVar; iVar++) { + total_index = iPoint*nVar + iVar; + LinSysRes[total_index] = 0.0; + LinSysSol[total_index] = 0.0; + } + + } + + CSysSolve femSystem; + IterLinSol = femSystem.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config); + + /*--- The the number of iterations of the linear solver ---*/ + + SetIterLinSolver(IterLinSol); + +} - /*--- Set calculated solution as the old solution (needed for dynamic Aitken relaxation) ---*/ - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Old(dispCalc); - /*--- Apply the Aitken relaxation ---*/ - for (iDim=0; iDim < nDim; iDim++){ - dispPred[iDim] = (1.0 - WAitken)*dispPred[iDim] + WAitken*dispCalc[iDim]; - } - } +void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fea_geometry, + CGeometry **flow_geometry, CConfig *fea_config, + CConfig *flow_config, CNumerics *fea_numerics) { + + unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side + unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers + int Marker_Flow = -1, Marker_Struct = -1; + + unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes + + unsigned short iDim, jDim; + + // Check the kind of fluid problem + bool compressible = (flow_config->GetKind_Regime() == COMPRESSIBLE); + bool incompressible = (flow_config->GetKind_Regime() == INCOMPRESSIBLE); + bool viscous_flow = ((flow_config->GetKind_Solver() == NAVIER_STOKES) || + (flow_config->GetKind_Solver() == RANS) ); + + /*--- Redimensionalize the pressure ---*/ + + su2double *Velocity_ND, *Velocity_Real; + su2double Density_ND, Density_Real, Velocity2_Real, Velocity2_ND; + su2double factorForces; + + Velocity_Real = flow_config->GetVelocity_FreeStream(); + Density_Real = flow_config->GetDensity_FreeStream(); + + Velocity_ND = flow_config->GetVelocity_FreeStreamND(); + Density_ND = flow_config->GetDensity_FreeStreamND(); + + Velocity2_Real = 0.0; + Velocity2_ND = 0.0; + for (iDim = 0; iDim < nDim; iDim++){ + Velocity2_Real += Velocity_Real[iDim]*Velocity_Real[iDim]; + Velocity2_ND += Velocity_ND[iDim]*Velocity_ND[iDim]; + } + + factorForces = Density_Real*Velocity2_Real/(Density_ND*Velocity2_ND); + + /*--- Apply a ramp to the transfer of the fluid loads ---*/ + + su2double ModAmpl; + su2double CurrentTime = fea_config->GetCurrent_DynTime(); + su2double Static_Time = fea_config->GetStatic_Time(); + + bool Ramp_Load = fea_config->GetRamp_Load(); + su2double Ramp_Time = fea_config->GetRamp_Time(); + + if (CurrentTime <= Static_Time){ ModAmpl=0.0; } + else if((CurrentTime > Static_Time) && + (CurrentTime <= (Static_Time + Ramp_Time)) && + (Ramp_Load)){ + ModAmpl = (CurrentTime-Static_Time) / Ramp_Time; + ModAmpl = max(ModAmpl,0.0); + ModAmpl = min(ModAmpl,1.0); + } + else{ ModAmpl = 1.0; } + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerFSI = (fea_config->GetMarker_n_FSIinterface())/2; + + nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side + + // Parameters for the calculations + // Pn: Pressure + // Pinf: Pressure_infinite + // div_vel: Velocity divergence + // Dij: Dirac delta + su2double Pn = 0.0, Pinf = 0.0, div_vel = 0.0, Dij = 0.0; + su2double Viscosity = 0.0; + su2double **Grad_PrimVar = NULL; + su2double Tau[3][3]; + + unsigned long Point_Flow, Point_Struct; + su2double *Normal_Flow; + + su2double *tn_f; + tn_f = new su2double [nVar]; // Fluid traction + +#ifndef HAVE_MPI + + unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side + + for (iPoint = 0; iPoint < nPoint; iPoint++){ + node[iPoint]->Clear_FlowTraction(); + } + + /*--- Loop over all the markers on the interface ---*/ + + for (iMarkerFSI = 0; iMarkerFSI < nMarkerFSI; iMarkerFSI++){ + + /*--- Identification of the markers ---*/ + + /*--- Current structural marker ---*/ + for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == (iMarkerFSI+1)){ + Marker_Struct = iMarkerStruct; + } + } + + /*--- Current fluid marker ---*/ + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSI+1)){ + Marker_Flow = iMarkerFlow; + } + } + + nVertexFEA = fea_geometry[MESH_0]->GetnVertex(Marker_Struct); // Retrieve total number of vertices on FEA marker + nVertexFlow = flow_geometry[MESH_0]->GetnVertex(Marker_Flow); // Retrieve total number of vertices on Fluid marker + + /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ + /*--- Here, we are looping over the fluid, and we find the pointer to the structure (Point_Struct) ---*/ + for (iVertex = 0; iVertex < nVertexFlow; iVertex++){ + + // Node from the flow mesh + Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); + + // Normals at the vertex: these normals go inside the fluid domain. + Normal_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNormal(); + + // Corresponding node on the structural mesh + Point_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorPoint(); + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); + } + } + else if (compressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if (viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Dij = 0.0; if (iDim == jDim) Dij = 1.0; + + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; + } + } + } + + // Rescale tn to SI units and apply time-dependent coefficient (static structure, ramp load, full load) + + for (iDim = 0; iDim < nDim; iDim++) { + Residual[iDim] = tn_f[iDim]*factorForces*ModAmpl; + } + + /*--- Set the Flow traction ---*/ + //node[Point_Struct]->Set_FlowTraction(Residual); + /*--- Add to the Flow traction (to add values to corners...) ---*/ + node[Point_Struct]->Add_FlowTraction(Residual); + } + + } + +#else + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + unsigned long nLocalVertexStruct = 0, nLocalVertexFlow = 0; + + unsigned long MaxLocalVertexStruct = 0, MaxLocalVertexFlow = 0; + + unsigned long nBuffer_FlowTraction = 0, nBuffer_StructTraction = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_SetIndex = 0; + + unsigned long Processor_Struct; + + int iProcessor, nProcessor = 0; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2; + nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); + nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); + + nProcessor = size; + + for (iPoint = 0; iPoint < nPoint; iPoint++){ + node[iPoint]->Clear_FlowTraction(); + } + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerFSI = 1; iMarkerFSI <= nMarkerFSI; iMarkerFSI++){ + + Marker_Struct = -1; + Marker_Flow = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexStruct[1], *Buffer_Recv_nVertexStruct = NULL; + unsigned long Buffer_Send_nVertexFlow[1], *Buffer_Recv_nVertexFlow = NULL; + + /*--- The markers on the fluid and structural side are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the structural side ---*/ + + for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerStruct) equals the index we are looping at ---*/ + if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == iMarkerFSI ){ + /*--- We have identified the local index of the FEA marker ---*/ + /*--- Store the number of local points that belong to Marker_Struct on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexStruct = fea_geometry[MESH_0]->GetnVertex(iMarkerStruct); + /*--- Store the identifier for the structural marker ---*/ + Marker_Struct = iMarkerStruct; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the FEA markers ---*/ + nLocalVertexStruct = 0; + Marker_Struct = -1; + } + } + + /*--- On the fluid side ---*/ + + for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == iMarkerFSI ){ + /*--- We have identified the local index of the Flow marker ---*/ + /*--- Store the number of local points that belong to Marker_Flow on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexFlow = flow_geometry[MESH_0]->GetnVertex(iMarkerFlow); + /*--- Store the identifier for the fluid marker ---*/ + Marker_Flow = iMarkerFlow; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexFlow = 0; + Marker_Flow = -1; + } + } + + Buffer_Send_nVertexStruct[0] = nLocalVertexStruct; // Retrieve total number of vertices on FEA marker + Buffer_Send_nVertexFlow[0] = nLocalVertexFlow; // Retrieve total number of vertices on Flow marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexStruct = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexFlow = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side + + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexStruct, &MaxLocalVertexStruct, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexFlow, &MaxLocalVertexFlow, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexStruct, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexStruct, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexFlow, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexFlow, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_FlowTraction = MaxLocalVertexFlow * nDim; + nBuffer_StructTraction = MaxLocalVertexStruct * nDim; + + /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ + /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexFlow; + nBuffer_SetIndex = MaxLocalVertexStruct; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the structural coordinates ---*/ + su2double *Buffer_Send_FlowTraction = new su2double[nBuffer_FlowTraction]; + su2double *Buffer_Recv_FlowTraction = NULL; + + /*--- Buffers to send and receive the donor index and processor ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the new fluid coordinates ---*/ + su2double *Buffer_Send_StructTraction = NULL; + su2double *Buffer_Recv_StructTraction = new su2double[nBuffer_StructTraction]; + + /*--- Buffers to send and receive the fluid index ---*/ + long *Buffer_Send_SetIndex = NULL; + long *Buffer_Recv_SetIndex = new long[nBuffer_SetIndex]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_FlowTraction = new su2double[size*nBuffer_FlowTraction]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_StructTraction = new su2double[size*nBuffer_StructTraction]; + Buffer_Send_SetIndex = new long[size*nBuffer_SetIndex]; + } + + /*--- On the fluid side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Flow >= 0){ + + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexFlow; iVertex++){ + + Point_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNode(); + + Point_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorPoint(); + + Processor_Struct = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetDonorProcessor(); + + // Get the normal at the vertex: this normal goes inside the fluid domain. + Normal_Flow = flow_geometry[MESH_0]->vertex[Marker_Flow][iVertex]->GetNormal(); + + // Retrieve the values of pressure, viscosity and density + if (incompressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressureInc(); + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosityInc(); + } + } + else if (compressible){ + + Pn = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetPressure(); + Pinf = flow_solution[MESH_0][FLOW_SOL]->GetPressure_Inf(); + + if (viscous_flow){ + + Grad_PrimVar = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetGradient_Primitive(); + Viscosity = flow_solution[MESH_0][FLOW_SOL]->node[Point_Flow]->GetLaminarViscosity(); + } + } + + // Calculate tn in the fluid nodes for the inviscid term --> Units of force (non-dimensional). + for (iDim = 0; iDim < nDim; iDim++) { + tn_f[iDim] = -(Pn-Pinf)*Normal_Flow[iDim]; + } + + // Calculate tn in the fluid nodes for the viscous term + + if ((incompressible || compressible) && viscous_flow){ + + // Divergence of the velocity + div_vel = 0.0; for (iDim = 0; iDim < nDim; iDim++) div_vel += Grad_PrimVar[iDim+1][iDim]; + if (incompressible) div_vel = 0.0; + + for (iDim = 0; iDim < nDim; iDim++) { + + for (jDim = 0 ; jDim < nDim; jDim++) { + // Dirac delta + Dij = 0.0; if (iDim == jDim) Dij = 1.0; + + // Viscous stress + Tau[iDim][jDim] = Viscosity*(Grad_PrimVar[jDim+1][iDim] + Grad_PrimVar[iDim+1][jDim]) - + TWO3*Viscosity*div_vel*Dij; + + // Viscous component in the tn vector --> Units of force (non-dimensional). + tn_f[iDim] += Tau[iDim][jDim]*Normal_Flow[jDim]; + } + } + } + + for (iDim = 0; iDim < nDim; iDim++){ + Buffer_Send_FlowTraction[iVertex*nDim+iDim] = tn_f[iDim]*factorForces*ModAmpl; + } + /*--- If this processor owns the node ---*/ + if (flow_geometry[MESH_0]->node[Point_Flow]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Struct; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Struct; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + } + + } + } + + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_FlowTraction, nBuffer_FlowTraction, MPI_DOUBLE, Buffer_Recv_FlowTraction, nBuffer_FlowTraction, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + + // if (rank == MASTER_NODE){ + // cout << endl << "-----------------------------------------------------------" << endl; + // cout << "For tag " << iMarkerFSI << ":" << endl; + // for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + // cout << "The processor " << iProcessor << " has " << Buffer_Recv_nVertexStruct[iProcessor] << " nodes on the structural side and "; + // cout << Buffer_Recv_nVertexFlow[iProcessor] << " nodes on the fluid side " << endl; + // } + // cout << "The max number of vertices is " << MaxLocalVertexStruct << " on the structural side and "; + // cout << MaxLocalVertexFlow << " on the fluid side." << endl; + // + // cout << "---------------- Check received buffers ---------------------" << endl; + // for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + // long initialIndex, initialIndex2; + // initialIndex = iProcessor*nBuffer_FlowTraction; + // initialIndex2 = iProcessor*nBuffer_DonorIndices; + // for (long iCheck = 0; iCheck < Buffer_Recv_nVertexStruct[iProcessor]; iCheck++){ + // cout << "From processor " << iProcessor << " we get coordinates ("; + // for (iDim = 0; iDim < nDim; iDim++) + // cout << Buffer_Recv_FlowTraction[initialIndex+iCheck*nDim+iDim] << ","; + // cout << "), the donor index for the flow " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2] ; + // cout << " and the donor processor " << Buffer_Recv_DonorIndices[initialIndex2+iCheck*2+1] << endl; + // + // } + // } + // + // } + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Struct = NULL; + long iProcessor_Flow = 0, iIndex_Flow = 0; + long iProcessor_Struct = 0, iPoint_Struct = 0, iIndex_Struct = 0; + long Point_Struct_Send, Processor_Struct_Send; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- We set the counter to 0 ---*/ + Counter_Processor_Struct = new long[nProcessor]; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + Counter_Processor_Struct[iProcessor] = 0; + } + + /*--- First we initialize the index vector to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nProcessor*nBuffer_SetIndex; iVertex++) + Buffer_Send_SetIndex[iVertex] = -2; + + /*--- As of now we do the loop over the flow points ---*/ + /*--- The number of points for flow and structure does not necessarily have to match ---*/ + /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ + /*--- nFlow < nStruct available; this is due to halo nodes ---*/ + + /*--- For every processor from which we have received information ---*/ + /*--- (This is, for every processor on the structural side) ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + + /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ + iProcessor_Flow = iProcessor*nBuffer_FlowTraction; + /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ + iIndex_Flow = iProcessor*nBuffer_DonorIndices; + + /*--- For every vertex in the information retreived from iProcessor ---*/ + for (iVertex = 0; iVertex < Buffer_Recv_nVertexFlow[iProcessor]; iVertex++) { + + /*--- The processor and index for the flow are: ---*/ + Processor_Struct_Send = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2+1]; + Point_Struct_Send = Buffer_Recv_DonorIndices[iIndex_Flow+iVertex*2]; + + /*--- Load the buffer at the appropriate position ---*/ + /*--- This is determined on the fluid side by: + *--- Processor_Flow*nBuffer_StructTraction -> Initial position of the processor array (fluid side) + *--- + + *--- Counter_Processor_Struct*nDim -> Initial position of the nDim array for the particular point on the fluid side + *--- + + *--- iDim -> Position within the nDim array that corresponds to a point + *--- + *--- While on the structural side is: + *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) + *--- + + *--- iVertex*nDim -> Initial position of the nDim array for the particular point on the structural side + */ + + /*--- We check that we are not setting the value for a halo node ---*/ + if (Point_Struct_Send != -1){ + iProcessor_Struct = Processor_Struct_Send*nBuffer_StructTraction; + iIndex_Struct = Processor_Struct_Send*nBuffer_SetIndex; + iPoint_Struct = Counter_Processor_Struct[Processor_Struct_Send]*nDim; + + for (iDim = 0; iDim < nDim; iDim++) + Buffer_Send_StructTraction[iProcessor_Struct + iPoint_Struct + iDim] = Buffer_Recv_FlowTraction[iProcessor_Flow + iVertex*nDim + iDim]; + + /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ + Buffer_Send_SetIndex[iIndex_Struct + Counter_Processor_Struct[Processor_Struct_Send]] = Point_Struct_Send; + + Counter_Processor_Struct[Processor_Struct_Send]++; + } + + } + + } + + // cout << "---------------- Check send buffers ---------------------" << endl; + // + // for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + // long initialIndex, initialIndex2; + // initialIndex = iProcessor*nBuffer_StructTraction; + // initialIndex2 = iProcessor*nBuffer_SetIndex; + // for (long iCheck = 0; iCheck < Buffer_Recv_nVertexFlow[iProcessor]; iCheck++){ + // cout << "Processor " << iProcessor << " will receive the node " ; + // cout << Buffer_Send_SetIndex[initialIndex2+iCheck] << " which corresponds to the coordinates "; + // for (iDim = 0; iDim < nDim; iDim++) + // cout << "x" << iDim << "=" << Buffer_Send_StructTraction[initialIndex + iCheck*nDim + iDim] << ", "; + // cout << endl; + // } + // + // } + + } + + /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ + SU2_MPI::Scatter(Buffer_Send_StructTraction, nBuffer_StructTraction, MPI_DOUBLE, Buffer_Recv_StructTraction, nBuffer_StructTraction, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Scatter(Buffer_Send_SetIndex, nBuffer_SetIndex, MPI_LONG, Buffer_Recv_SetIndex, nBuffer_SetIndex, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + + long indexPoint_iVertex, Point_Struct_Check; + long Point_Struct_Recv; + + /*--- For the flow marker we are studying ---*/ + if (Marker_Struct >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexStruct; iVertex++){ + + Point_Struct_Recv = fea_geometry[MESH_0]->vertex[Marker_Struct][iVertex]->GetNode(); + + if (fea_geometry[MESH_0]->node[Point_Struct_Recv]->GetDomain()){ + /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_SetIndex, std::find(Buffer_Recv_SetIndex, Buffer_Recv_SetIndex + MaxLocalVertexStruct, Point_Struct_Recv)); + + Point_Struct_Check = Buffer_Recv_SetIndex[indexPoint_iVertex]; + + if (Point_Struct_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iDim = 0; iDim < nDim; iDim++) + Residual[iDim] = Buffer_Recv_StructTraction[indexPoint_iVertex*nDim+iDim]; + + /*--- Add to the Flow traction ---*/ + node[Point_Struct_Recv]->Add_FlowTraction(Residual); + + } + + } + + } + + delete [] Buffer_Send_FlowTraction; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_StructTraction; + delete [] Buffer_Recv_SetIndex; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexStruct; + delete [] Buffer_Recv_nVertexFlow; + delete [] Buffer_Recv_FlowTraction; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_StructTraction; + delete [] Buffer_Send_SetIndex; + delete [] Counter_Processor_Struct; + } + + } + +#endif + + delete[] tn_f; + + +} - } +void CFEM_ElasticitySolver::SetFEA_Load_Int(CSolver ***flow_solution, CGeometry **fea_geometry, + CGeometry **flow_geometry, CConfig *fea_config, + CConfig *flow_config, CNumerics *fea_numerics){ } +void CFEM_ElasticitySolver::PredictStruct_Displacement(CGeometry **fea_geometry, + CConfig *fea_config, CSolver ***fea_solution){ + + unsigned short predOrder = fea_config->GetPredictorOrder(); + su2double Delta_t = fea_config->GetDelta_DynTime(); + unsigned long iPoint, iDim; + su2double *solDisp, *solVel, *solVel_tn, *valPred; + + //To nPointDomain: we need to communicate the predicted solution after setting it + for (iPoint=0; iPoint < nPointDomain; iPoint++){ + if (predOrder==0) fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); + else if (predOrder==1) { + + solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); + valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + + for (iDim=0; iDim < nDim; iDim++){ + valPred[iDim] = solDisp[iDim] + Delta_t*solVel[iDim]; + } + + } + else if (predOrder==2) { + + solDisp = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + solVel = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel(); + solVel_tn = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Vel_time_n(); + valPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + + for (iDim=0; iDim < nDim; iDim++){ + valPred[iDim] = solDisp[iDim] + 0.5*Delta_t*(3*solVel[iDim]-solVel_tn[iDim]); + } + + } + else { + cout<< "Higher order predictor not implemented. Solving with order 0." << endl; + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred(); + } + } + } -void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, - CConfig *fea_config, CSolver ***fea_solution){ - - unsigned long iPoint; - su2double *valSolutionPred; +void CFEM_ElasticitySolver::ComputeAitken_Coefficient(CGeometry **fea_geometry, CConfig *fea_config, + CSolver ***fea_solution, unsigned long iFSIIter){ + + unsigned long iPoint, iDim; + su2double rbuf_numAitk = 0, sbuf_numAitk = 0; + su2double rbuf_denAitk = 0, sbuf_denAitk = 0; + + su2double *dispPred, *dispCalc, *dispPred_Old, *dispCalc_Old; + su2double deltaU[3] = {0.0, 0.0, 0.0}, deltaU_p1[3] = {0.0, 0.0, 0.0}; + su2double delta_deltaU[3] = {0.0, 0.0, 0.0}; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); + su2double WAitkDyn_tn1, WAitkDyn_Max, WAitkDyn_Min, WAitkDyn; + + unsigned short RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); + + int rank = MASTER_NODE; +#ifdef HAVE_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &rank); +#endif + + ofstream historyFile_FSI; + bool writeHistFSI = fea_config->GetWrite_Conv_FSI(); + if (writeHistFSI && (rank == MASTER_NODE)){ + char cstrFSI[200]; + string filenameHistFSI = fea_config->GetConv_FileName_FSI(); + strcpy (cstrFSI, filenameHistFSI.data()); + historyFile_FSI.open (cstrFSI, std::ios_base::app); + } + + + /*--- Only when there is movement, and a dynamic coefficient is requested, it makes sense to compute the Aitken's coefficient ---*/ + + if (CurrentTime > Static_Time) { + + if (RelaxMethod_FSI == NO_RELAXATION){ + + if (writeHistFSI && (rank == MASTER_NODE)){ + + SetWAitken_Dyn(1.0); + + if (iFSIIter == 0) historyFile_FSI << " " << endl ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 ; + else historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << 1.0 << "," ; + } + + } + else if (RelaxMethod_FSI == FIXED_PARAMETER){ + + if (writeHistFSI && (rank == MASTER_NODE)){ + + SetWAitken_Dyn(fea_config->GetAitkenStatRelax()); + + if (iFSIIter == 0) historyFile_FSI << " " << endl ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + if (iFSIIter == 0) historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() ; + else historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << fea_config->GetAitkenStatRelax() << "," ; + } + + } + else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ + + if (iFSIIter == 0){ + + WAitkDyn_tn1 = GetWAitken_Dyn_tn1(); + WAitkDyn_Max = fea_config->GetAitkenDynMaxInit(); + WAitkDyn_Min = fea_config->GetAitkenDynMinInit(); + + WAitkDyn = min(WAitkDyn_tn1, WAitkDyn_Max); + WAitkDyn = max(WAitkDyn, WAitkDyn_Min); + + SetWAitken_Dyn(WAitkDyn); + if (writeHistFSI && (rank == MASTER_NODE)){ + if (iFSIIter == 0) historyFile_FSI << " " << endl ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn ; + } + + } + else{ + // To nPointDomain; we need to communicate the values + for (iPoint = 0; iPoint < nPointDomain; iPoint++){ + + dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + dispPred_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred_Old(); + dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + dispCalc_Old = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Old(); + + for (iDim = 0; iDim < nDim; iDim++){ + + /*--- Compute the deltaU and deltaU_n+1 ---*/ + deltaU[iDim] = dispCalc_Old[iDim] - dispPred_Old[iDim]; + deltaU_p1[iDim] = dispCalc[iDim] - dispPred[iDim]; + + /*--- Compute the difference ---*/ + delta_deltaU[iDim] = deltaU_p1[iDim] - deltaU[iDim]; + + /*--- Add numerator and denominator ---*/ + sbuf_numAitk += deltaU[iDim] * delta_deltaU[iDim]; + sbuf_denAitk += delta_deltaU[iDim] * delta_deltaU[iDim]; + + } + + } + +#ifdef HAVE_MPI + SU2_MPI::Allreduce(&sbuf_numAitk, &rbuf_numAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + SU2_MPI::Allreduce(&sbuf_denAitk, &rbuf_denAitk, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +#else + rbuf_numAitk = sbuf_numAitk; + rbuf_denAitk = sbuf_denAitk; +#endif + + WAitkDyn = GetWAitken_Dyn(); + + if (rbuf_denAitk > 1E-15){ + WAitkDyn = - 1.0 * WAitkDyn * rbuf_numAitk / rbuf_denAitk ; + } + + WAitkDyn = max(WAitkDyn, 0.1); + WAitkDyn = min(WAitkDyn, 1.0); + + SetWAitken_Dyn(WAitkDyn); + + if (writeHistFSI && (rank == MASTER_NODE)){ + historyFile_FSI << setiosflags(ios::fixed) << setprecision(4) << CurrentTime << "," ; + historyFile_FSI << setiosflags(ios::fixed) << setprecision(1) << iFSIIter << "," ; + historyFile_FSI << setiosflags(ios::scientific) << setprecision(4) << WAitkDyn << "," ; + } + + } + + } + else { + if (rank == MASTER_NODE) cout << "No relaxation method used. " << endl; + } + + } + + if (writeHistFSI && (rank == MASTER_NODE)){historyFile_FSI.close();} + +} +void CFEM_ElasticitySolver::SetAitken_Relaxation(CGeometry **fea_geometry, + CConfig *fea_config, CSolver ***fea_solution){ + + unsigned long iPoint, iDim; + unsigned short RelaxMethod_FSI; + su2double *dispPred, *dispCalc; + su2double WAitken; + su2double CurrentTime=fea_config->GetCurrent_DynTime(); + su2double Static_Time=fea_config->GetStatic_Time(); + + RelaxMethod_FSI = fea_config->GetRelaxation_Method_FSI(); + + /*--- Only when there is movement it makes sense to update the solutions... ---*/ + + if (CurrentTime > Static_Time) { + + if (RelaxMethod_FSI == NO_RELAXATION){ + WAitken = 1.0; + } + else if (RelaxMethod_FSI == FIXED_PARAMETER){ + WAitken = fea_config->GetAitkenStatRelax(); + } + else if (RelaxMethod_FSI == AITKEN_DYNAMIC){ + WAitken = GetWAitken_Dyn(); + } + else { + WAitken = 1.0; + } + + // To nPointDomain; we need to communicate the solutions (predicted, old and old predicted) after this routine for (iPoint=0; iPoint < nPointDomain; iPoint++){ - - valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); - - fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution(valSolutionPred); - + + /*--- Retrieve pointers to the predicted and calculated solutions ---*/ + dispPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + dispCalc = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution(); + + /*--- Set predicted solution as the old predicted solution ---*/ + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Pred_Old(); + + /*--- Set calculated solution as the old solution (needed for dynamic Aitken relaxation) ---*/ + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution_Old(dispCalc); + + /*--- Apply the Aitken relaxation ---*/ + for (iDim=0; iDim < nDim; iDim++){ + dispPred[iDim] = (1.0 - WAitken)*dispPred[iDim] + WAitken*dispCalc[iDim]; + } + } + + } + +} - /*--- Perform the MPI communication of the solution, displacements only ---*/ - - Set_MPI_Solution_DispOnly(fea_geometry[MESH_0], fea_config); - +void CFEM_ElasticitySolver::Update_StructSolution(CGeometry **fea_geometry, + CConfig *fea_config, CSolver ***fea_solution){ + + unsigned long iPoint; + su2double *valSolutionPred; + + for (iPoint=0; iPoint < nPointDomain; iPoint++){ + + valSolutionPred = fea_solution[MESH_0][FEA_SOL]->node[iPoint]->GetSolution_Pred(); + + fea_solution[MESH_0][FEA_SOL]->node[iPoint]->SetSolution(valSolutionPred); + + } + + /*--- Perform the MPI communication of the solution, displacements only ---*/ + + Set_MPI_Solution_DispOnly(fea_geometry[MESH_0], fea_config); + } diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index 8791c058703..dff329f115b 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -132,7 +132,7 @@ void CTransfer_FlowTraction::GetDonor_Variable(CSolver *flow_solution, CGeometry // Dij: Dirac delta su2double Pn = 0.0, div_vel = 0.0, Dij = 0.0; su2double Viscosity = 0.0; - su2double **Grad_PrimVar; + su2double **Grad_PrimVar = NULL; su2double Tau[3][3] = { {0.0, 0.0, 0.0} , {0.0, 0.0, 0.0} , {0.0, 0.0, 0.0} } ; diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index 136f806e975..eb6d21c6e2f 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -32,1241 +32,1241 @@ #include "../include/transfer_structure.hpp" CTransfer::CTransfer(void) { - - Physical_Constants = NULL; - Donor_Variable = NULL; - Target_Variable = NULL; - - nVar = 0; - + + Physical_Constants = NULL; + Donor_Variable = NULL; + Target_Variable = NULL; + + nVar = 0; + } CTransfer::CTransfer(unsigned short val_nVar, unsigned short val_nConst, CConfig *config){ - - unsigned short iVar; - - Physical_Constants = new su2double[val_nConst]; - Donor_Variable = new su2double[val_nVar]; - Target_Variable = new su2double[val_nVar]; - - nVar = val_nVar; - - for (iVar = 0; iVar < nVar; iVar++){ - Donor_Variable[iVar] = 0.0; - Target_Variable[iVar] = 0.0; - } - - for (iVar = 0; iVar < val_nConst; iVar++){ - Physical_Constants[iVar] = 0.0; - } - + + unsigned short iVar; + + Physical_Constants = new su2double[val_nConst]; + Donor_Variable = new su2double[val_nVar]; + Target_Variable = new su2double[val_nVar]; + + nVar = val_nVar; + + for (iVar = 0; iVar < nVar; iVar++){ + Donor_Variable[iVar] = 0.0; + Target_Variable[iVar] = 0.0; + } + + for (iVar = 0; iVar < val_nConst; iVar++){ + Physical_Constants[iVar] = 0.0; + } + } CTransfer::~CTransfer(void) { - - if (Physical_Constants != NULL) delete [] Physical_Constants; - if (Donor_Variable != NULL) delete [] Donor_Variable; - if (Target_Variable != NULL) delete [] Target_Variable; - + + if (Physical_Constants != NULL) delete [] Physical_Constants; + if (Donor_Variable != NULL) delete [] Donor_Variable; + if (Target_Variable != NULL) delete [] Target_Variable; + } void CTransfer::Scatter_InterfaceData(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ - - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side - unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers - int Marker_Donor = -1, Marker_Target = -1; - - unsigned long iVertex; // Variables for iteration over vertices and nodes - - unsigned short iVar; - - GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, - donor_config, target_config); - - unsigned long Point_Donor, Point_Target; - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long iVertex; // Variables for iteration over vertices and nodes + + unsigned short iVar; + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + unsigned long Point_Donor, Point_Target; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); #endif - - unsigned long nLocalVertexDonor = 0, nLocalVertexTarget= 0; - unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; - - unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; - unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; - - unsigned long Processor_Target; - - int iProcessor, nProcessor = 0; - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; - nMarkerTarget = target_geometry->GetnMarker(); - nMarkerDonor = donor_geometry->GetnMarker(); - - nProcessor = size; - - /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ - /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - - for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ - - Marker_Donor = -1; - Marker_Target = -1; - - /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ - unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; - unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; - - /*--- The donor and target markers are tagged with the same index. - *--- This is independent of the MPI domain decomposition. - *--- We need to loop over all markers on both sides and get the number of nodes - *--- that belong to each FSI marker for each processor ---*/ - - /*--- On the donor side ---*/ - - for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ - if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ - /*--- We have identified the local index of the Donor marker ---*/ - /*--- Store the number of local points that belong to Marker_Donor on each processor ---*/ - /*--- This are the number of points that will be sent from this particular processor ---*/ - /*--- This includes the halo nodes ---*/ - nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); - /*--- Store the identifier for the structural marker ---*/ - Marker_Donor = iMarkerDonor; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the donor markers ---*/ - nLocalVertexDonor = 0; - Marker_Donor = -1; - } - } - - /*--- On the target side ---*/ - - for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ - if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ - /*--- We have identified the local index of the Flow marker ---*/ - /*--- Store the number of local points that belong to Marker_Flow on each processor ---*/ - /*--- This includes the halo nodes ---*/ - nLocalVertexTarget = target_geometry->GetnVertex(iMarkerTarget); - /*--- Store the identifier for the fluid marker ---*/ - Marker_Target = iMarkerTarget; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - nLocalVertexTarget = 0; - Marker_Target = -1; - } - } - - Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker - Buffer_Send_nVertexTarget[0] = nLocalVertexTarget; // Retrieve total number of vertices on Target marker - if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - if (rank == MASTER_NODE) Buffer_Recv_nVertexTarget = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side + + unsigned long nLocalVertexDonor = 0, nLocalVertexTarget= 0; + unsigned long MaxLocalVertexDonor = 0, MaxLocalVertexTarget = 0; + + unsigned long nBuffer_DonorVariables = 0, nBuffer_TargetVariables = 0; + unsigned long nBuffer_DonorIndices = 0, nBuffer_TargetIndices = 0; + + unsigned long Processor_Target; + + int iProcessor, nProcessor = 0; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + unsigned long Buffer_Send_nVertexTarget[1], *Buffer_Recv_nVertexTarget = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- We have identified the local index of the Flow marker ---*/ + /*--- Store the number of local points that belong to Marker_Flow on each processor ---*/ + /*--- This includes the halo nodes ---*/ + nLocalVertexTarget = target_geometry->GetnVertex(iMarkerTarget); + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + nLocalVertexTarget = 0; + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + Buffer_Send_nVertexTarget[0] = nLocalVertexTarget; // Retrieve total number of vertices on Target marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + if (rank == MASTER_NODE) Buffer_Recv_nVertexTarget = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the fluid side #ifdef HAVE_MPI - /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ - SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ - SU2_MPI::Allreduce(&nLocalVertexTarget, &MaxLocalVertexTarget, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexTarget, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexTarget, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFEA as the maximum number of vertices in one single processor on the structural side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexFlow as the maximum number of vertices in one single processor on the fluid side ---*/ + SU2_MPI::Allreduce(&nLocalVertexTarget, &MaxLocalVertexTarget, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the fluid side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexTarget, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexTarget, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - MaxLocalVertexDonor = nLocalVertexDonor; - MaxLocalVertexTarget = nLocalVertexTarget; - - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; - Buffer_Recv_nVertexTarget[0] = nLocalVertexTarget; - + MaxLocalVertexDonor = nLocalVertexDonor; + MaxLocalVertexTarget = nLocalVertexTarget; + + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + Buffer_Recv_nVertexTarget[0] = nLocalVertexTarget; + #endif - - /*--- We will be gathering the structural coordinates into the master node ---*/ - /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ - nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; - nBuffer_TargetVariables = MaxLocalVertexTarget * nVar; - - /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ - /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ - nBuffer_DonorIndices = 2 * MaxLocalVertexDonor; - nBuffer_TargetIndices = MaxLocalVertexTarget; - - /*--- Send and Recv buffers ---*/ - - /*--- Buffers to send and receive the variables in the donor mesh ---*/ - su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; - su2double *Buffer_Recv_DonorVariables = NULL; - - /*--- Buffers to send and receive the indices in the donor mesh ---*/ - long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; - long *Buffer_Recv_DonorIndices = NULL; - - /*--- Buffers to send and receive the variables in the target mesh---*/ - su2double *Buffer_Send_TargetVariables = NULL; - su2double *Buffer_Recv_TargetVariables = new su2double[nBuffer_TargetVariables]; - - /*--- Buffers to send and receive the target indices ---*/ - long *Buffer_Send_TargetIndices = NULL; - long *Buffer_Recv_TargetIndices = new long[nBuffer_TargetIndices]; - - /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ - - if (rank == MASTER_NODE) { - Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; - Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - Buffer_Send_TargetVariables = new su2double[size*nBuffer_TargetVariables]; - Buffer_Send_TargetIndices = new long[size*nBuffer_TargetIndices]; - } - - /*--- On the fluid side ---*/ - - /*--- If this processor owns the marker we are looping at on the structural side ---*/ - - /*--- First we initialize all of the indices and processors to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) - Buffer_Send_DonorIndices[iVertex] = -1; - - if (Marker_Donor >= 0){ - - /*--- We have identified the local index of the FEA marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ - - Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); - - Point_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorPoint(); - - Processor_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorProcessor(); - - GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); - - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; - } - /*--- If this processor owns the node ---*/ - if (donor_geometry->node[Point_Donor]->GetDomain()){ - Buffer_Send_DonorIndices[2*iVertex] = Point_Target; - Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Target; - } - else{ - /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[2*iVertex] = -1; - Buffer_Send_DonorIndices[2*iVertex + 1] = -1; - } - - } - } - + + /*--- We will be gathering the structural coordinates into the master node ---*/ + /*--- Then we will distribute them using a scatter operation into the appropriate fluid processor ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_TargetVariables = MaxLocalVertexTarget * nVar; + + /*--- We will be gathering donor index and donor processor (for flow -> donor = structure) ---*/ + /*--- Then we will pass on to the structural side the index (fea point) to the appropriate processor ---*/ + nBuffer_DonorIndices = 2 * MaxLocalVertexDonor; + nBuffer_TargetIndices = MaxLocalVertexTarget; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = NULL; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to send and receive the variables in the target mesh---*/ + su2double *Buffer_Send_TargetVariables = NULL; + su2double *Buffer_Recv_TargetVariables = new su2double[nBuffer_TargetVariables]; + + /*--- Buffers to send and receive the target indices ---*/ + long *Buffer_Send_TargetIndices = NULL; + long *Buffer_Recv_TargetIndices = new long[nBuffer_TargetIndices]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + Buffer_Send_TargetVariables = new su2double[size*nBuffer_TargetVariables]; + Buffer_Send_TargetIndices = new long[size*nBuffer_TargetIndices]; + } + + /*--- On the fluid side ---*/ + + /*--- If this processor owns the marker we are looping at on the structural side ---*/ + + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Donor >= 0){ + + /*--- We have identified the local index of the FEA marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + Point_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorPoint(); + + Processor_Target = donor_geometry->vertex[Marker_Donor][iVertex]->GetDonorProcessor(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Buffer_Send_DonorIndices[2*iVertex] = Point_Target; + Buffer_Send_DonorIndices[2*iVertex + 1] = Processor_Target; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[2*iVertex] = -1; + Buffer_Send_DonorIndices[2*iVertex + 1] = -1; + } + + } + } + #ifdef HAVE_MPI - /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ - SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - + /*--- Once all the messages have been sent, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + #else - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) - Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) - Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif - - /*--- Counter to determine where in the array we have to set the information ---*/ - long *Counter_Processor_Target = NULL; - long iProcessor_Donor = 0, iIndex_Donor = 0; - long iProcessor_Target = 0, iPoint_Target = 0, iIndex_Target = 0; - long Point_Target_Send = 0, Processor_Target_Send = 0; - - /*--- Now we pack the information to send it over to the different processors ---*/ - - if (rank == MASTER_NODE){ - - /*--- We set the counter to 0 ---*/ - Counter_Processor_Target = new long[nProcessor]; - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - Counter_Processor_Target[iProcessor] = 0; - } - - /*--- First we initialize the index vector to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nProcessor*nBuffer_TargetIndices; iVertex++) - Buffer_Send_TargetIndices[iVertex] = -2; - - /*--- As of now we do the loop over the flow points ---*/ - /*--- The number of points for flow and structure does not necessarily have to match ---*/ - /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ - /*--- nFlow < nStruct available; this is due to halo nodes ---*/ - - /*--- For every processor from which we have received information ---*/ - /*--- (This is, for every processor on the structural side) ---*/ - for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ - - /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ - iProcessor_Donor = iProcessor*nBuffer_DonorVariables; - /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ - iIndex_Donor = iProcessor*nBuffer_DonorIndices; - - /*--- For every vertex in the information retreived from iProcessor ---*/ - for (iVertex = 0; iVertex < Buffer_Recv_nVertexDonor[iProcessor]; iVertex++) { - - /*--- The processor and index for the flow are: ---*/ - Processor_Target_Send = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; - Point_Target_Send = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; - - /*--- Load the buffer at the appropriate position ---*/ - /*--- This is determined on the fluid side by: - *--- Processor_Target*nBuffer_StructTraction -> Initial position of the processor array (fluid side) - *--- + - *--- Counter_Processor_Struct*nVar -> Initial position of the nVar array for the particular point on the fluid side - *--- + - *--- iVar -> Position within the nVar array that corresponds to a point - *--- - *--- While on the structural side is: - *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) - *--- + - *--- iVertex*nVar -> Initial position of the nVar array for the particular point on the structural side - */ - - /*--- We check that we are not setting the value for a halo node ---*/ - if (Point_Target_Send != -1){ - iProcessor_Target = Processor_Target_Send*nBuffer_TargetVariables; - iIndex_Target = Processor_Target_Send*nBuffer_TargetIndices; - iPoint_Target = Counter_Processor_Target[Processor_Target_Send]*nVar; - - for (iVar = 0; iVar < nVar; iVar++) - Buffer_Send_TargetVariables[iProcessor_Target + iPoint_Target + iVar] = Buffer_Recv_DonorVariables[iProcessor_Donor + iVertex*nVar + iVar]; - - /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ - Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target_Send]] = Point_Target_Send; - - Counter_Processor_Target[Processor_Target_Send]++; - } - - } - - } - - } - + + /*--- Counter to determine where in the array we have to set the information ---*/ + long *Counter_Processor_Target = NULL; + long iProcessor_Donor = 0, iIndex_Donor = 0; + long iProcessor_Target = 0, iPoint_Target = 0, iIndex_Target = 0; + long Point_Target_Send = 0, Processor_Target_Send = 0; + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- We set the counter to 0 ---*/ + Counter_Processor_Target = new long[nProcessor]; + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + Counter_Processor_Target[iProcessor] = 0; + } + + /*--- First we initialize the index vector to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nProcessor*nBuffer_TargetIndices; iVertex++) + Buffer_Send_TargetIndices[iVertex] = -2; + + /*--- As of now we do the loop over the flow points ---*/ + /*--- The number of points for flow and structure does not necessarily have to match ---*/ + /*--- In fact, it's possible that a processor asks for nStruct nodes and there are only ---*/ + /*--- nFlow < nStruct available; this is due to halo nodes ---*/ + + /*--- For every processor from which we have received information ---*/ + /*--- (This is, for every processor on the structural side) ---*/ + for (iProcessor = 0; iProcessor < nProcessor; iProcessor++){ + + /*--- This is the initial index on the coordinates buffer for that particular processor on the structural side ---*/ + iProcessor_Donor = iProcessor*nBuffer_DonorVariables; + /*--- This is the initial index on the donor index/processor buffer for that particular processor on the structural side ---*/ + iIndex_Donor = iProcessor*nBuffer_DonorIndices; + + /*--- For every vertex in the information retreived from iProcessor ---*/ + for (iVertex = 0; iVertex < Buffer_Recv_nVertexDonor[iProcessor]; iVertex++) { + + /*--- The processor and index for the flow are: ---*/ + Processor_Target_Send = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2+1]; + Point_Target_Send = Buffer_Recv_DonorIndices[iIndex_Donor+iVertex*2]; + + /*--- Load the buffer at the appropriate position ---*/ + /*--- This is determined on the fluid side by: + *--- Processor_Target*nBuffer_StructTraction -> Initial position of the processor array (fluid side) + *--- + + *--- Counter_Processor_Struct*nVar -> Initial position of the nVar array for the particular point on the fluid side + *--- + + *--- iVar -> Position within the nVar array that corresponds to a point + *--- + *--- While on the structural side is: + *--- iProcessor*nBuffer_FlowTraction -> Initial position on the processor array (structural side) + *--- + + *--- iVertex*nVar -> Initial position of the nVar array for the particular point on the structural side + */ + + /*--- We check that we are not setting the value for a halo node ---*/ + if (Point_Target_Send != -1){ + iProcessor_Target = Processor_Target_Send*nBuffer_TargetVariables; + iIndex_Target = Processor_Target_Send*nBuffer_TargetIndices; + iPoint_Target = Counter_Processor_Target[Processor_Target_Send]*nVar; + + for (iVar = 0; iVar < nVar; iVar++) + Buffer_Send_TargetVariables[iProcessor_Target + iPoint_Target + iVar] = Buffer_Recv_DonorVariables[iProcessor_Donor + iVertex*nVar + iVar]; + + /*--- We set the fluid index at an appropriate position matching the coordinates ---*/ + Buffer_Send_TargetIndices[iIndex_Target + Counter_Processor_Target[Processor_Target_Send]] = Point_Target_Send; + + Counter_Processor_Target[Processor_Target_Send]++; + } + + } + + } + + } + #ifdef HAVE_MPI - /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ - SU2_MPI::Scatter(Buffer_Send_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, Buffer_Recv_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Scatter(Buffer_Send_TargetIndices, nBuffer_TargetIndices, MPI_LONG, Buffer_Recv_TargetIndices, nBuffer_TargetIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- Once all the messages have been prepared, we scatter them all from the MASTER_NODE ---*/ + SU2_MPI::Scatter(Buffer_Send_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, Buffer_Recv_TargetVariables, nBuffer_TargetVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Scatter(Buffer_Send_TargetIndices, nBuffer_TargetIndices, MPI_LONG, Buffer_Recv_TargetIndices, nBuffer_TargetIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - for (unsigned long iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) - Buffer_Recv_TargetVariables[iVariable] = Buffer_Send_TargetVariables[iVariable]; - for (unsigned long iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) - Buffer_Recv_TargetIndices[iVariable] = Buffer_Send_TargetIndices[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_TargetVariables; iVariable++) + Buffer_Recv_TargetVariables[iVariable] = Buffer_Send_TargetVariables[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_TargetIndices; iVariable++) + Buffer_Recv_TargetIndices[iVariable] = Buffer_Send_TargetIndices[iVariable]; #endif - - long indexPoint_iVertex, Point_Target_Check; - - /*--- For the target marker we are studying ---*/ - if (Marker_Target >= 0){ - - /*--- We have identified the local index of the Structural marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < nLocalVertexTarget; iVertex++){ - - Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - - if (target_geometry->node[Point_Target]->GetDomain()){ - /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ - indexPoint_iVertex = std::distance(Buffer_Recv_TargetIndices, std::find(Buffer_Recv_TargetIndices, Buffer_Recv_TargetIndices + MaxLocalVertexTarget, Point_Target)); - - Point_Target_Check = Buffer_Recv_TargetIndices[indexPoint_iVertex]; - - if (Point_Target_Check < 0) { - cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; - exit(EXIT_FAILURE); - } - - for (iVar = 0; iVar < nVar; iVar++) - Target_Variable[iVar] = Buffer_Recv_TargetVariables[indexPoint_iVertex*nVar+iVar]; - - SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); - - } - - } - - } - - delete [] Buffer_Send_DonorVariables; - delete [] Buffer_Send_DonorIndices; - delete [] Buffer_Recv_TargetVariables; - delete [] Buffer_Recv_TargetIndices; - - if (rank == MASTER_NODE) { - delete [] Buffer_Recv_nVertexDonor; - delete [] Buffer_Recv_nVertexTarget; - delete [] Buffer_Recv_DonorVariables; - delete [] Buffer_Recv_DonorIndices; - delete [] Buffer_Send_TargetVariables; - delete [] Buffer_Send_TargetIndices; - delete [] Counter_Processor_Target; - } - - } - - + + long indexPoint_iVertex, Point_Target_Check; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < nLocalVertexTarget; iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + if (target_geometry->node[Point_Target]->GetDomain()){ + /*--- Find the index of the point Point_Struct in the buffer Buffer_Recv_SetIndex ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_TargetIndices, std::find(Buffer_Recv_TargetIndices, Buffer_Recv_TargetIndices + MaxLocalVertexTarget, Point_Target)); + + Point_Target_Check = Buffer_Recv_TargetIndices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] = Buffer_Recv_TargetVariables[indexPoint_iVertex*nVar+iVar]; + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Recv_TargetVariables; + delete [] Buffer_Recv_TargetIndices; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexDonor; + delete [] Buffer_Recv_nVertexTarget; + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + delete [] Buffer_Send_TargetVariables; + delete [] Buffer_Send_TargetIndices; + delete [] Counter_Processor_Target; + } + + } + + } void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ - - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side - unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers - int Marker_Donor = -1, Marker_Target = -1; - - unsigned long iVertex; // Variables for iteration over vertices and nodes - - unsigned short iVar; - - GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, - donor_config, target_config); - - unsigned long Point_Donor_Global, Donor_Global_Index; - unsigned long Point_Donor, Point_Target; - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long iVertex; // Variables for iteration over vertices and nodes + + unsigned short iVar; + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + unsigned long Point_Donor_Global, Donor_Global_Index; + unsigned long Point_Donor, Point_Target; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); #endif - - unsigned long iLocalVertex = 0; - unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; - - unsigned long MaxLocalVertexDonor = 0; - unsigned long TotalVertexDonor = 0; - - unsigned long nBuffer_DonorVariables = 0; - unsigned long nBuffer_DonorIndices = 0; - - unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; - - int nProcessor = 0; - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; - nMarkerTarget = target_geometry->GetnMarker(); - nMarkerDonor = donor_geometry->GetnMarker(); - - nProcessor = size; - - /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ - /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - - for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ - - Marker_Donor = -1; - Marker_Target = -1; - - /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ - unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; - - /*--- The donor and target markers are tagged with the same index. - *--- This is independent of the MPI domain decomposition. - *--- We need to loop over all markers on both sides and get the number of nodes - *--- that belong to each FSI marker for each processor ---*/ - - /*--- On the donor side ---*/ - - for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ - if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ - /*--- We have identified the local index of the Donor marker ---*/ - /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ - /*--- This are the number of points that will be sent from this particular processor ---*/ - /*--- nLocalVertexDonorOwned WILL NOT include halo nodes ---*/ - /*--- nLocalVertexDonor WILL include halo nodes ---*/ - nLocalVertexDonorOwned = 0; - for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ - Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); - if (donor_geometry->node[Point_Donor]->GetDomain()){ - nLocalVertexDonorOwned++; - } - } - nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); - /*--- Store the identifier for the structural marker ---*/ - Marker_Donor = iMarkerDonor; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the donor markers ---*/ - nLocalVertexDonor = 0; - nLocalVertexDonorOwned = 0; - Marker_Donor = -1; - } - } - - /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the fluid points ---*/ - - for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ - if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ - /*--- Store the identifier for the fluid marker ---*/ - Marker_Target = iMarkerTarget; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - Marker_Target = -1; - } - } - - Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker - if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - + + unsigned long iLocalVertex = 0; + unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; + + unsigned long MaxLocalVertexDonor = 0; + unsigned long TotalVertexDonor = 0; + + unsigned long nBuffer_DonorVariables = 0; + unsigned long nBuffer_DonorIndices = 0; + + unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; + + int nProcessor = 0; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- nLocalVertexDonorOwned WILL NOT include halo nodes ---*/ + /*--- nLocalVertexDonor WILL include halo nodes ---*/ + nLocalVertexDonorOwned = 0; + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); + if (donor_geometry->node[Point_Donor]->GetDomain()){ + nLocalVertexDonorOwned++; + } + } + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + nLocalVertexDonorOwned = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the fluid points ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + #ifdef HAVE_MPI - /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ - SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We receive TotalVertexDonorOwned as the total (real) number of vertices in one single interface marker on the donor side ---*/ - SU2_MPI::Allreduce(&nLocalVertexDonorOwned, &TotalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive TotalVertexDonorOwned as the total (real) number of vertices in one single interface marker on the donor side ---*/ + SU2_MPI::Allreduce(&nLocalVertexDonorOwned, &TotalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - MaxLocalVertexDonor = nLocalVertexDonor; - TotalVertexDonor = nLocalVertexDonorOwned; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + MaxLocalVertexDonor = nLocalVertexDonor; + TotalVertexDonor = nLocalVertexDonorOwned; + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; #endif - - /*--- We will be gathering the donor information into the master node ---*/ - nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; - nBuffer_DonorIndices = MaxLocalVertexDonor; - - /*--- Then we will broadcasting it to all the processors so they can retrieve the info they need ---*/ - /*--- We only broadcast those nodes that we need ---*/ - nBuffer_BcastVariables = TotalVertexDonor * nVar; - nBuffer_BcastIndices = TotalVertexDonor; - - /*--- Send and Recv buffers ---*/ - - /*--- Buffers to send and receive the variables in the donor mesh ---*/ - su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; - su2double *Buffer_Recv_DonorVariables = NULL; - - /*--- Buffers to send and receive the indices in the donor mesh ---*/ - long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; - long *Buffer_Recv_DonorIndices = NULL; - - /*--- Buffers to broadcast the variables and the indices ---*/ - su2double *Buffer_Bcast_Variables = new su2double[nBuffer_BcastVariables]; - long *Buffer_Bcast_Indices = new long[nBuffer_BcastIndices]; - - /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ - - if (rank == MASTER_NODE) { - Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; - Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - } - - /*--- On the donor side ---*/ - /*--- First we initialize all of the indices and processors to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) - Buffer_Send_DonorIndices[iVertex] = -1; - - if (Marker_Donor >= 0){ - - for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ - - Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); - - GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); - - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; - } - - /*--- If this processor owns the node ---*/ - if (donor_geometry->node[Point_Donor]->GetDomain()){ - Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); - Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; - } - else{ - /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[iVertex] = -1; - } - - } - - } - + + /*--- We will be gathering the donor information into the master node ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_DonorIndices = MaxLocalVertexDonor; + + /*--- Then we will broadcasting it to all the processors so they can retrieve the info they need ---*/ + /*--- We only broadcast those nodes that we need ---*/ + nBuffer_BcastVariables = TotalVertexDonor * nVar; + nBuffer_BcastIndices = TotalVertexDonor; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = NULL; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to broadcast the variables and the indices ---*/ + su2double *Buffer_Bcast_Variables = new su2double[nBuffer_BcastVariables]; + long *Buffer_Bcast_Indices = new long[nBuffer_BcastIndices]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + } + + /*--- On the donor side ---*/ + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Donor >= 0){ + + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); + Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[iVertex] = -1; + } + + } + + } + #ifdef HAVE_MPI - /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ - SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - + /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + #else - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) - Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) - Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif - - /*--- Now we pack the information to send it over to the different processors ---*/ - - if (rank == MASTER_NODE){ - - /*--- For all the data we have received ---*/ - /*--- We initialize a counter to determine the position in the broadcast vector ---*/ - iLocalVertex = 0; - - for (iVertex = 0; iVertex < nProcessor*nBuffer_DonorIndices; iVertex++){ - - /*--- If the donor index is not -1 (this is, if the node is not originally a halo node) ---*/ - if (Buffer_Recv_DonorIndices[iVertex] != -1){ - - /*--- We set the donor index ---*/ - Buffer_Bcast_Indices[iLocalVertex] = Buffer_Recv_DonorIndices[iVertex]; - - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Bcast_Variables[iLocalVertex*nVar+iVar] = Buffer_Recv_DonorVariables[iVertex*nVar + iVar]; - } - - iLocalVertex++; - - } - - if (iLocalVertex == TotalVertexDonor) break; - - } - - } - + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- For all the data we have received ---*/ + /*--- We initialize a counter to determine the position in the broadcast vector ---*/ + iLocalVertex = 0; + + for (iVertex = 0; iVertex < nProcessor*nBuffer_DonorIndices; iVertex++){ + + /*--- If the donor index is not -1 (this is, if the node is not originally a halo node) ---*/ + if (Buffer_Recv_DonorIndices[iVertex] != -1){ + + /*--- We set the donor index ---*/ + Buffer_Bcast_Indices[iLocalVertex] = Buffer_Recv_DonorIndices[iVertex]; + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Bcast_Variables[iLocalVertex*nVar+iVar] = Buffer_Recv_DonorVariables[iVertex*nVar + iVar]; + } + + iLocalVertex++; + + } + + if (iLocalVertex == TotalVertexDonor) break; + + } + + } + #ifdef HAVE_MPI - SU2_MPI::Bcast(Buffer_Bcast_Variables, nBuffer_BcastVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Bcast(Buffer_Bcast_Indices, nBuffer_BcastIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(Buffer_Bcast_Variables, nBuffer_BcastVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(Buffer_Bcast_Indices, nBuffer_BcastIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #endif - - long indexPoint_iVertex, Point_Target_Check; - - /*--- For the target marker we are studying ---*/ - if (Marker_Target >= 0){ - - /*--- We have identified the local index of the Structural marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ - - Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - - /*--- If this processor owns the node ---*/ - if (target_geometry->node[Point_Target]->GetDomain()){ - - /*--- Find the global index of the donor point for Point_Target ---*/ - Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); - - /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ - indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); - - Point_Target_Check = Buffer_Bcast_Indices[indexPoint_iVertex]; - - if (Point_Target_Check < 0) { - cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; - exit(EXIT_FAILURE); - } - - for (iVar = 0; iVar < nVar; iVar++) - Target_Variable[iVar] = Buffer_Bcast_Variables[indexPoint_iVertex*nVar+iVar]; - - SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); - - } - - } - - } - - delete [] Buffer_Send_DonorVariables; - delete [] Buffer_Send_DonorIndices; - delete [] Buffer_Bcast_Variables; - delete [] Buffer_Bcast_Indices; - - if (rank == MASTER_NODE) { - delete [] Buffer_Recv_nVertexDonor; - delete [] Buffer_Recv_DonorVariables; - delete [] Buffer_Recv_DonorIndices; - } - - - } - + + long indexPoint_iVertex, Point_Target_Check; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + /*--- If this processor owns the node ---*/ + if (target_geometry->node[Point_Target]->GetDomain()){ + + /*--- Find the global index of the donor point for Point_Target ---*/ + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetGlobalDonorPoint(); + + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ + indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); + + Point_Target_Check = Buffer_Bcast_Indices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] = Buffer_Bcast_Variables[indexPoint_iVertex*nVar+iVar]; + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Bcast_Variables; + delete [] Buffer_Bcast_Indices; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexDonor; + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + } + + + } + } void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ - - - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side - unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers - int Marker_Donor = -1, Marker_Target = -1; - - unsigned long iVertex; // Variables for iteration over vertices and nodes - - unsigned short iVar; - - GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, - donor_config, target_config); - - unsigned long Point_Donor_Global, Donor_Global_Index; - unsigned long Point_Donor, Point_Target; - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long iVertex; // Variables for iteration over vertices and nodes + + unsigned short iVar; + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + unsigned long Point_Donor_Global, Donor_Global_Index; + unsigned long Point_Donor, Point_Target; + + int rank = MASTER_NODE; + int size = SINGLE_NODE; + #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); #endif - - unsigned long iLocalVertex = 0; - unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; - - unsigned long MaxLocalVertexDonor = 0, TotalVertexDonor = 0; - - unsigned long nBuffer_DonorVariables = 0; - unsigned long nBuffer_DonorIndices = 0; - - unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; - - int nProcessor = 0; - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; - nMarkerTarget = target_geometry->GetnMarker(); - nMarkerDonor = donor_geometry->GetnMarker(); - - nProcessor = size; - - /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ - /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - - for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ - - - Marker_Donor = -1; - Marker_Target = -1; - - /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ - unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; - - /*--- The donor and target markers are tagged with the same index. - *--- This is independent of the MPI domain decomposition. - *--- We need to loop over all markers on both sides and get the number of nodes - *--- that belong to each FSI marker for each processor ---*/ - - /*--- On the donor side ---*/ - - for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ - if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ - /*--- We have identified the local index of the Donor marker ---*/ - /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ - /*--- This are the number of points that will be sent from this particular processor ---*/ - /*--- nLocalVertexDonorOwned WILL NOT include halo nodes ---*/ - /*--- nLocalVertexDonor WILL include halo nodes ---*/ - nLocalVertexDonorOwned = 0; - for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ - Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); - if (donor_geometry->node[Point_Donor]->GetDomain()){ - nLocalVertexDonorOwned++; - } - } - nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); - /*--- Store the identifier for the structural marker ---*/ - Marker_Donor = iMarkerDonor; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the donor markers ---*/ - nLocalVertexDonor = 0; - nLocalVertexDonorOwned = 0; - Marker_Donor = -1; - } - } - - /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the donor points ---*/ - - for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ - if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ - /*--- Store the identifier for the fluid marker ---*/ - Marker_Target = iMarkerTarget; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - Marker_Target = -1; - } - } - - Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker - if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - + + unsigned long iLocalVertex = 0; + unsigned long nLocalVertexDonor = 0, nLocalVertexDonorOwned = 0; + + unsigned long MaxLocalVertexDonor = 0, TotalVertexDonor = 0; + + unsigned long nBuffer_DonorVariables = 0; + unsigned long nBuffer_DonorIndices = 0; + + unsigned long nBuffer_BcastVariables = 0, nBuffer_BcastIndices = 0; + + int nProcessor = 0; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- nLocalVertexDonorOwned WILL NOT include halo nodes ---*/ + /*--- nLocalVertexDonor WILL include halo nodes ---*/ + nLocalVertexDonorOwned = 0; + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); + if (donor_geometry->node[Point_Donor]->GetDomain()){ + nLocalVertexDonorOwned++; + } + } + nLocalVertexDonor = donor_geometry->GetnVertex(iMarkerDonor); + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + nLocalVertexDonorOwned = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the donor points ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + if (rank == MASTER_NODE) Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + #ifdef HAVE_MPI - /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ - SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We receive TotalVertexDonorOwned as the total (real) number of vertices in one single interface marker on the donor side ---*/ - SU2_MPI::Allreduce(&nLocalVertexDonorOwned, &TotalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); - /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ - SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We receive TotalVertexDonorOwned as the total (real) number of vertices in one single interface marker on the donor side ---*/ + SU2_MPI::Allreduce(&nLocalVertexDonorOwned, &TotalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD); + /*--- We gather a vector in MASTER_NODE that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Gather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MASTER_NODE, MPI_COMM_WORLD); #else - MaxLocalVertexDonor = nLocalVertexDonor; - TotalVertexDonor = nLocalVertexDonorOwned; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + MaxLocalVertexDonor = nLocalVertexDonor; + TotalVertexDonor = nLocalVertexDonorOwned; + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; #endif - - /*--- We will be gathering the donor information into the master node ---*/ - nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; - nBuffer_DonorIndices = MaxLocalVertexDonor; - - /*--- Then we will broadcasting it to all the processors so they can retrieve the info they need ---*/ - /*--- We only broadcast those nodes that we need ---*/ - nBuffer_BcastVariables = TotalVertexDonor * nVar; - nBuffer_BcastIndices = TotalVertexDonor; - - /*--- Send and Recv buffers ---*/ - - /*--- Buffers to send and receive the variables in the donor mesh ---*/ - su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; - su2double *Buffer_Recv_DonorVariables = NULL; - - /*--- Buffers to send and receive the indices in the donor mesh ---*/ - long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; - long *Buffer_Recv_DonorIndices = NULL; - - /*--- Buffers to broadcast the variables and the indices ---*/ - su2double *Buffer_Bcast_Variables = new su2double[nBuffer_BcastVariables]; - long *Buffer_Bcast_Indices = new long[nBuffer_BcastIndices]; - - /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ - - if (rank == MASTER_NODE) { - Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; - Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - } - - /*--- On the donor side ---*/ - /*--- First we initialize all of the indices and processors to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) - Buffer_Send_DonorIndices[iVertex] = -1; - - if (Marker_Donor >= 0){ - - for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ - - Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); - - GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); - - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; - } - - /*--- If this processor owns the node ---*/ - if (donor_geometry->node[Point_Donor]->GetDomain()){ - Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); - Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; - } - else{ - /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ - Buffer_Send_DonorIndices[iVertex] = -1; - } - - } - - } - + + /*--- We will be gathering the donor information into the master node ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_DonorIndices = MaxLocalVertexDonor; + + /*--- Then we will broadcasting it to all the processors so they can retrieve the info they need ---*/ + /*--- We only broadcast those nodes that we need ---*/ + nBuffer_BcastVariables = TotalVertexDonor * nVar; + nBuffer_BcastIndices = TotalVertexDonor; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = NULL; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = NULL; + + /*--- Buffers to broadcast the variables and the indices ---*/ + su2double *Buffer_Bcast_Variables = new su2double[nBuffer_BcastVariables]; + long *Buffer_Bcast_Indices = new long[nBuffer_BcastIndices]; + + /*--- Prepare the receive buffers (1st step) and send buffers (2nd step) on the master node only. ---*/ + + if (rank == MASTER_NODE) { + Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + } + + /*--- On the donor side ---*/ + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + if (Marker_Donor >= 0){ + + for (iVertex = 0; iVertex < nLocalVertexDonor; iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar+iVar] = Donor_Variable[iVar]; + } + + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); + Buffer_Send_DonorIndices[iVertex] = Point_Donor_Global; + } + else{ + /*--- We set the values to be -1 to be able to identify them later as halo nodes ---*/ + Buffer_Send_DonorIndices[iVertex] = -1; + } + + } + + } + #ifdef HAVE_MPI - /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ - SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); - + /*--- Once all the messages have been prepared, we gather them all into the MASTER_NODE ---*/ + SU2_MPI::Gather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Gather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + #else - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) - Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) - Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif - - /*--- Now we pack the information to send it over to the different processors ---*/ - - if (rank == MASTER_NODE){ - - /*--- For all the data we have received ---*/ - /*--- We initialize a counter to determine the position in the broadcast vector ---*/ - iLocalVertex = 0; - - for (iVertex = 0; iVertex < nProcessor*nBuffer_DonorIndices; iVertex++){ - - /*--- If the donor index is not -1 (this is, if the node is not originally a halo node) ---*/ - if (Buffer_Recv_DonorIndices[iVertex] != -1){ - - /*--- We set the donor index ---*/ - Buffer_Bcast_Indices[iLocalVertex] = Buffer_Recv_DonorIndices[iVertex]; - - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Bcast_Variables[iLocalVertex*nVar+iVar] = Buffer_Recv_DonorVariables[iVertex*nVar + iVar]; - } - - iLocalVertex++; - - } - - if (iLocalVertex == TotalVertexDonor) break; - - } - - } - + + /*--- Now we pack the information to send it over to the different processors ---*/ + + if (rank == MASTER_NODE){ + + /*--- For all the data we have received ---*/ + /*--- We initialize a counter to determine the position in the broadcast vector ---*/ + iLocalVertex = 0; + + for (iVertex = 0; iVertex < nProcessor*nBuffer_DonorIndices; iVertex++){ + + /*--- If the donor index is not -1 (this is, if the node is not originally a halo node) ---*/ + if (Buffer_Recv_DonorIndices[iVertex] != -1){ + + /*--- We set the donor index ---*/ + Buffer_Bcast_Indices[iLocalVertex] = Buffer_Recv_DonorIndices[iVertex]; + + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Bcast_Variables[iLocalVertex*nVar+iVar] = Buffer_Recv_DonorVariables[iVertex*nVar + iVar]; + } + + iLocalVertex++; + + } + + if (iLocalVertex == TotalVertexDonor) break; + + } + + } + #ifdef HAVE_MPI - SU2_MPI::Bcast(Buffer_Bcast_Variables, nBuffer_BcastVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); - SU2_MPI::Bcast(Buffer_Bcast_Indices, nBuffer_BcastIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(Buffer_Bcast_Variables, nBuffer_BcastVariables, MPI_DOUBLE, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Bcast(Buffer_Bcast_Indices, nBuffer_BcastIndices, MPI_LONG, MASTER_NODE, MPI_COMM_WORLD); #endif - - long indexPoint_iVertex, Point_Target_Check; - unsigned short iDonorPoint, nDonorPoints; - su2double donorCoeff; - - /*--- For the target marker we are studying ---*/ - if (Marker_Target >= 0){ - - /*--- We have identified the local index of the Structural marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ - - Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - - /*--- If this processor owns the node ---*/ - if (target_geometry->node[Point_Target]->GetDomain()){ - - nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); - - /*--- As we will be adding data, we need to set the variable to 0 ---*/ - for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; - - /*--- For the number of donor points ---*/ - for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ - - /*--- Find the global index of the donor points for Point_Target ---*/ - Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); - - /*--- We need to get the donor coefficient in a way like this: ---*/ - donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); - - /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ - indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); - - Point_Target_Check = Buffer_Bcast_Indices[indexPoint_iVertex]; - - if (Point_Target_Check < 0) { - cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; - exit(EXIT_FAILURE); - } - - for (iVar = 0; iVar < nVar; iVar++) - Target_Variable[iVar] += donorCoeff * Buffer_Bcast_Variables[indexPoint_iVertex*nVar+iVar]; - } - - SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); - - } - - } - - } - - delete [] Buffer_Send_DonorVariables; - delete [] Buffer_Send_DonorIndices; - delete [] Buffer_Bcast_Variables; - delete [] Buffer_Bcast_Indices; - - if (rank == MASTER_NODE) { - delete [] Buffer_Recv_nVertexDonor; - delete [] Buffer_Recv_DonorVariables; - delete [] Buffer_Recv_DonorIndices; - } - - - } - + + long indexPoint_iVertex, Point_Target_Check; + unsigned short iDonorPoint, nDonorPoints; + su2double donorCoeff; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + /*--- If this processor owns the node ---*/ + if (target_geometry->node[Point_Target]->GetDomain()){ + + nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); + + /*--- As we will be adding data, we need to set the variable to 0 ---*/ + for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; + + /*--- For the number of donor points ---*/ + for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ + + /*--- Find the global index of the donor points for Point_Target ---*/ + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); + + /*--- We need to get the donor coefficient in a way like this: ---*/ + donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); + + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ + indexPoint_iVertex = std::distance(Buffer_Bcast_Indices, std::find(Buffer_Bcast_Indices, Buffer_Bcast_Indices + nBuffer_BcastIndices, Donor_Global_Index)); + + Point_Target_Check = Buffer_Bcast_Indices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] += donorCoeff * Buffer_Bcast_Variables[indexPoint_iVertex*nVar+iVar]; + } + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + delete [] Buffer_Bcast_Variables; + delete [] Buffer_Bcast_Indices; + + if (rank == MASTER_NODE) { + delete [] Buffer_Recv_nVertexDonor; + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + } + + + } + } void CTransfer::Allgather_InterfaceData(CSolver *donor_solution, CSolver *target_solution, - CGeometry *donor_geometry, CGeometry *target_geometry, - CConfig *donor_config, CConfig *target_config){ - - - unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side - unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers - int Marker_Donor = -1, Marker_Target = -1; - - unsigned long iVertex; // Variables for iteration over vertices and nodes - unsigned short iVar; - - GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, - donor_config, target_config); - - unsigned long Point_Donor_Global, Donor_Global_Index; - unsigned long Point_Donor, Point_Target; - - int rank = MASTER_NODE; - int size = SINGLE_NODE; - + CGeometry *donor_geometry, CGeometry *target_geometry, + CConfig *donor_config, CConfig *target_config){ + + + unsigned short nMarkerInt, nMarkerDonor, nMarkerTarget; // Number of markers on the interface, donor and target side + unsigned short iMarkerInt, iMarkerDonor, iMarkerTarget; // Variables for iteration over markers + int Marker_Donor = -1, Marker_Target = -1; + + unsigned long iVertex; // Variables for iteration over vertices and nodes + unsigned short iVar; + + GetPhysical_Constants(donor_solution, target_solution, donor_geometry, target_geometry, + donor_config, target_config); + + unsigned long Point_Donor_Global, Donor_Global_Index; + unsigned long Point_Donor, Point_Target; + + int size = SINGLE_NODE; + #ifdef HAVE_MPI - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); + int rank = MASTER_NODE; + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); #endif - - unsigned long iLocalVertex = 0; - unsigned long nLocalVertexDonor = 0; - - unsigned long MaxLocalVertexDonor = 0; - - unsigned long nBuffer_DonorVariables = 0; - unsigned long nBuffer_DonorIndices = 0; - - int nProcessor = 0; - - /*--- Number of markers on the FSI interface ---*/ - - nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; - nMarkerTarget = target_geometry->GetnMarker(); - nMarkerDonor = donor_geometry->GetnMarker(); - - nProcessor = size; - - /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ - /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ - - for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ - - Marker_Donor = -1; - Marker_Target = -1; - - /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ - /*--- We are only sending the values the processor owns ---*/ - unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; - - /*--- The donor and target markers are tagged with the same index. - *--- This is independent of the MPI domain decomposition. - *--- We need to loop over all markers on both sides and get the number of nodes - *--- that belong to each FSI marker for each processor ---*/ - - /*--- On the donor side ---*/ - - for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ - if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ - /*--- We have identified the local index of the Donor marker ---*/ - /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ - /*--- This are the number of points that will be sent from this particular processor ---*/ - /*--- nLocalVertexDonor WILL NOT include halo nodes ---*/ - nLocalVertexDonor = 0; - for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ - Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); - if (donor_geometry->node[Point_Donor]->GetDomain()){ - nLocalVertexDonor++; - } - } - /*--- Store the identifier for the structural marker ---*/ - Marker_Donor = iMarkerDonor; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the donor markers ---*/ - nLocalVertexDonor = 0; - Marker_Donor = -1; - } - } - - /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the donor points ---*/ - - for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ - /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ - if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ - /*--- Store the identifier for the fluid marker ---*/ - Marker_Target = iMarkerTarget; - /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ - break; - } - else { - /*--- If the tag hasn't matched any tag within the Flow markers ---*/ - Marker_Target = -1; - } - } - - Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker - Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side - + + unsigned long iLocalVertex = 0; + unsigned long nLocalVertexDonor = 0; + + unsigned long MaxLocalVertexDonor = 0; + + unsigned long nBuffer_DonorVariables = 0; + unsigned long nBuffer_DonorIndices = 0; + + int nProcessor = 0; + + /*--- Number of markers on the FSI interface ---*/ + + nMarkerInt = (donor_config->GetMarker_n_FSIinterface())/2; + nMarkerTarget = target_geometry->GetnMarker(); + nMarkerDonor = donor_geometry->GetnMarker(); + + nProcessor = size; + + /*--- Outer loop over the markers on the FSI interface: compute one by one ---*/ + /*--- The tags are always an integer greater than 1: loop from 1 to nMarkerFSI ---*/ + + for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ + + Marker_Donor = -1; + Marker_Target = -1; + + /*--- Initialize pointer buffers inside the loop, so we can delete for each marker. ---*/ + /*--- We are only sending the values the processor owns ---*/ + unsigned long Buffer_Send_nVertexDonor[1], *Buffer_Recv_nVertexDonor = NULL; + + /*--- The donor and target markers are tagged with the same index. + *--- This is independent of the MPI domain decomposition. + *--- We need to loop over all markers on both sides and get the number of nodes + *--- that belong to each FSI marker for each processor ---*/ + + /*--- On the donor side ---*/ + + for (iMarkerDonor = 0; iMarkerDonor < nMarkerDonor; iMarkerDonor++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerDonor) equals the index we are looping at ---*/ + if ( donor_config->GetMarker_All_FSIinterface(iMarkerDonor) == iMarkerInt ){ + /*--- We have identified the local index of the Donor marker ---*/ + /*--- Now we are going to store the number of local points that belong to Marker_Donor on each processor ---*/ + /*--- This are the number of points that will be sent from this particular processor ---*/ + /*--- nLocalVertexDonor WILL NOT include halo nodes ---*/ + nLocalVertexDonor = 0; + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(iMarkerDonor); iVertex++){ + Point_Donor = donor_geometry->vertex[iMarkerDonor][iVertex]->GetNode(); + if (donor_geometry->node[Point_Donor]->GetDomain()){ + nLocalVertexDonor++; + } + } + /*--- Store the identifier for the structural marker ---*/ + Marker_Donor = iMarkerDonor; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the donor markers ---*/ + nLocalVertexDonor = 0; + Marker_Donor = -1; + } + } + + /*--- On the target side we only have to identify the marker; then we'll loop over it and retrieve from the donor points ---*/ + + for (iMarkerTarget = 0; iMarkerTarget < nMarkerTarget; iMarkerTarget++){ + /*--- If the tag GetMarker_All_FSIinterface(iMarkerFlow) equals the index we are looping at ---*/ + if ( target_config->GetMarker_All_FSIinterface(iMarkerTarget) == iMarkerInt ){ + /*--- Store the identifier for the fluid marker ---*/ + Marker_Target = iMarkerTarget; + /*--- Exit the for loop: we have found the local index for iMarkerFSI on the FEA side ---*/ + break; + } + else { + /*--- If the tag hasn't matched any tag within the Flow markers ---*/ + Marker_Target = -1; + } + } + + Buffer_Send_nVertexDonor[0] = nLocalVertexDonor; // Retrieve total number of vertices on Donor marker + Buffer_Recv_nVertexDonor = new unsigned long[size]; // Allocate memory to receive how many vertices are on each rank on the structural side + #ifdef HAVE_MPI - /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ - SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); - /*--- We gather a vector in all processors that determines how many elements are there on each processor on the structural side ---*/ - SU2_MPI::Allgather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); + /*--- We receive MaxLocalVertexDonor as the maximum number of vertices in one single processor on the donor side---*/ + SU2_MPI::Allreduce(&nLocalVertexDonor, &MaxLocalVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_MAX, MPI_COMM_WORLD); + /*--- We gather a vector in all processors that determines how many elements are there on each processor on the structural side ---*/ + SU2_MPI::Allgather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else - MaxLocalVertexDonor = nLocalVertexDonor; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + MaxLocalVertexDonor = nLocalVertexDonor; + Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; #endif - - /*--- We will be gathering the donor information into the master node ---*/ - nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; - nBuffer_DonorIndices = MaxLocalVertexDonor; - - /*--- Send and Recv buffers ---*/ - - /*--- Buffers to send and receive the variables in the donor mesh ---*/ - su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; - su2double *Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; - - /*--- Buffers to send and receive the indices in the donor mesh ---*/ - long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; - long *Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; - - /*--- On the donor side ---*/ - /*--- First we initialize all of the indices and processors to -1 ---*/ - /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) - Buffer_Send_DonorIndices[iVertex] = -1; - - /*--- Also to avoid having random values in the variables vector ---*/ - for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++){ - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_DonorVariables[iVertex*nVar + iVar] = 0.0; - } - } - - if (Marker_Donor >= 0){ - - iLocalVertex = 0; - - for (iVertex = 0; iVertex < donor_geometry->GetnVertex(Marker_Donor); iVertex++){ - - Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); - - GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); - - /*--- If this processor owns the node ---*/ - if (donor_geometry->node[Point_Donor]->GetDomain()){ - for (iVar = 0; iVar < nVar; iVar++){ - Buffer_Send_DonorVariables[iLocalVertex*nVar+iVar] = Donor_Variable[iVar]; - } - - Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); - Buffer_Send_DonorIndices[iLocalVertex] = Point_Donor_Global; - - iLocalVertex++; - } - - } - - } - + + /*--- We will be gathering the donor information into the master node ---*/ + nBuffer_DonorVariables = MaxLocalVertexDonor * nVar; + nBuffer_DonorIndices = MaxLocalVertexDonor; + + /*--- Send and Recv buffers ---*/ + + /*--- Buffers to send and receive the variables in the donor mesh ---*/ + su2double *Buffer_Send_DonorVariables = new su2double[nBuffer_DonorVariables]; + su2double *Buffer_Recv_DonorVariables = new su2double[size*nBuffer_DonorVariables]; + + /*--- Buffers to send and receive the indices in the donor mesh ---*/ + long *Buffer_Send_DonorIndices = new long[nBuffer_DonorIndices]; + long *Buffer_Recv_DonorIndices = new long[size*nBuffer_DonorIndices]; + + /*--- On the donor side ---*/ + /*--- First we initialize all of the indices and processors to -1 ---*/ + /*--- This helps on identifying halo nodes and avoids setting wrong values ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++) + Buffer_Send_DonorIndices[iVertex] = -1; + + /*--- Also to avoid having random values in the variables vector ---*/ + for (iVertex = 0; iVertex < nBuffer_DonorIndices; iVertex++){ + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iVertex*nVar + iVar] = 0.0; + } + } + + if (Marker_Donor >= 0){ + + iLocalVertex = 0; + + for (iVertex = 0; iVertex < donor_geometry->GetnVertex(Marker_Donor); iVertex++){ + + Point_Donor = donor_geometry->vertex[Marker_Donor][iVertex]->GetNode(); + + GetDonor_Variable(donor_solution, donor_geometry, donor_config, Marker_Donor, iVertex, Point_Donor); + + /*--- If this processor owns the node ---*/ + if (donor_geometry->node[Point_Donor]->GetDomain()){ + for (iVar = 0; iVar < nVar; iVar++){ + Buffer_Send_DonorVariables[iLocalVertex*nVar+iVar] = Donor_Variable[iVar]; + } + + Point_Donor_Global = donor_geometry->node[Point_Donor]->GetGlobalIndex(); + Buffer_Send_DonorIndices[iLocalVertex] = Point_Donor_Global; + + iLocalVertex++; + } + + } + + } + #ifdef HAVE_MPI - /*--- Once all the messages have been prepared, we gather them all into all the processors ---*/ - SU2_MPI::Allgather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MPI_COMM_WORLD); - SU2_MPI::Allgather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MPI_COMM_WORLD); + /*--- Once all the messages have been prepared, we gather them all into all the processors ---*/ + SU2_MPI::Allgather(Buffer_Send_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, Buffer_Recv_DonorVariables, nBuffer_DonorVariables, MPI_DOUBLE, MPI_COMM_WORLD); + SU2_MPI::Allgather(Buffer_Send_DonorIndices, nBuffer_DonorIndices, MPI_LONG, Buffer_Recv_DonorIndices, nBuffer_DonorIndices, MPI_LONG, MPI_COMM_WORLD); #else - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) - Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; - for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) - Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorVariables; iVariable++) + Buffer_Recv_DonorVariables[iVariable] = Buffer_Send_DonorVariables[iVariable]; + for (unsigned long iVariable = 0; iVariable < nBuffer_DonorIndices; iVariable++) + Buffer_Recv_DonorIndices[iVariable] = Buffer_Send_DonorIndices[iVariable]; #endif - - long indexPoint_iVertex, Point_Target_Check; - unsigned short iDonorPoint, nDonorPoints; - su2double donorCoeff; - - /*--- For the target marker we are studying ---*/ - if (Marker_Target >= 0){ - - /*--- We have identified the local index of the Structural marker ---*/ - /*--- We loop over all the vertices in that marker and in that particular processor ---*/ - - for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ - - Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); - - /*--- If this processor owns the node ---*/ - if (target_geometry->node[Point_Target]->GetDomain()){ - - nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); - - /*--- As we will be adding data, we need to set the variable to 0 ---*/ - for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; - - /*--- For the number of donor points ---*/ - for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ - - /*--- Find the global index of the donor points for Point_Target ---*/ - Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); - - /*--- We need to get the donor coefficient in a way like this: ---*/ - donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); - - /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ - indexPoint_iVertex = std::distance(Buffer_Recv_DonorIndices, std::find(Buffer_Recv_DonorIndices, Buffer_Recv_DonorIndices + nProcessor*nBuffer_DonorIndices, Donor_Global_Index)); - - Point_Target_Check = Buffer_Recv_DonorIndices[indexPoint_iVertex]; - - if (Point_Target_Check < 0) { - cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; - exit(EXIT_FAILURE); - } - - for (iVar = 0; iVar < nVar; iVar++) - Target_Variable[iVar] += donorCoeff * Buffer_Recv_DonorVariables[indexPoint_iVertex*nVar+iVar]; - } - - SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); - - } - - } - - } - - delete [] Buffer_Send_DonorVariables; - delete [] Buffer_Send_DonorIndices; - - delete [] Buffer_Recv_DonorVariables; - delete [] Buffer_Recv_DonorIndices; - - delete [] Buffer_Recv_nVertexDonor; - - } - - + + long indexPoint_iVertex, Point_Target_Check; + unsigned short iDonorPoint, nDonorPoints; + su2double donorCoeff; + + /*--- For the target marker we are studying ---*/ + if (Marker_Target >= 0){ + + /*--- We have identified the local index of the Structural marker ---*/ + /*--- We loop over all the vertices in that marker and in that particular processor ---*/ + + for (iVertex = 0; iVertex < target_geometry->GetnVertex(Marker_Target); iVertex++){ + + Point_Target = target_geometry->vertex[Marker_Target][iVertex]->GetNode(); + + /*--- If this processor owns the node ---*/ + if (target_geometry->node[Point_Target]->GetDomain()){ + + nDonorPoints = target_geometry->vertex[Marker_Target][iVertex]->GetnDonorPoints(); + + /*--- As we will be adding data, we need to set the variable to 0 ---*/ + for (iVar = 0; iVar < nVar; iVar++) Target_Variable[iVar] = 0.0; + + /*--- For the number of donor points ---*/ + for (iDonorPoint = 0; iDonorPoint < nDonorPoints; iDonorPoint++){ + + /*--- Find the global index of the donor points for Point_Target ---*/ + Donor_Global_Index = target_geometry->vertex[Marker_Target][iVertex]->GetInterpDonorPoint(iDonorPoint); + + /*--- We need to get the donor coefficient in a way like this: ---*/ + donorCoeff = target_geometry->vertex[Marker_Target][iVertex]->GetDonorCoeff(iDonorPoint); + + /*--- Find the index of the global donor point in the buffer Buffer_Bcast_Indices ---*/ + indexPoint_iVertex = std::distance(Buffer_Recv_DonorIndices, std::find(Buffer_Recv_DonorIndices, Buffer_Recv_DonorIndices + nProcessor*nBuffer_DonorIndices, Donor_Global_Index)); + + Point_Target_Check = Buffer_Recv_DonorIndices[indexPoint_iVertex]; + + if (Point_Target_Check < 0) { + cout << "WARNING: A nonphysical point is being considered for traction transfer." << endl; + exit(EXIT_FAILURE); + } + + for (iVar = 0; iVar < nVar; iVar++) + Target_Variable[iVar] += donorCoeff * Buffer_Recv_DonorVariables[indexPoint_iVertex*nVar+iVar]; + } + + SetTarget_Variable(target_solution, target_geometry, target_config, Marker_Target, iVertex, Point_Target); + + } + + } + + } + + delete [] Buffer_Send_DonorVariables; + delete [] Buffer_Send_DonorIndices; + + delete [] Buffer_Recv_DonorVariables; + delete [] Buffer_Recv_DonorIndices; + + delete [] Buffer_Recv_nVertexDonor; + + } + + } diff --git a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj index 3a64ff6498f..4b9f2b65aa0 100644 --- a/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj +++ b/SU2_IDE/Xcode/SU2_CFD.xcodeproj/project.pbxproj @@ -1506,27 +1506,12 @@ CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 4.0.2; + CURRENT_PROJECT_VERSION = 4.1.1; GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; - GCC_PREPROCESSOR_DEFINITIONS = ( - NO_OMP, - NO_METIS, - NO_MPI, - NO_CGNS, - NO_MUTATIONPP, - NO_JSONCPP, - ); - "GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = ( - NO_TECIO, - NO_OMP, - NO_METIS, - NO_MPI, - NO_CGNS, - NO_MUTATIONPP, - NO_JSONCPP, - ); + GCC_PREPROCESSOR_DEFINITIONS = ""; + "GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = ""; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO; GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = NO; @@ -1548,11 +1533,12 @@ GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INSTALL_PATH = /usr/local/bin; - MACOSX_DEPLOYMENT_TARGET = 10.8; + MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = SU2_CFD; WARNING_CFLAGS = ( "-Wall", "-Wextra", + "-Wunused", "-Wno-unused-parameter", ); }; @@ -1575,7 +1561,7 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 4.0.2; + CURRENT_PROJECT_VERSION = 4.1.1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; @@ -1599,11 +1585,12 @@ GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INSTALL_PATH = /usr/local/bin; - MACOSX_DEPLOYMENT_TARGET = 10.8; + MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = SU2_CFD; WARNING_CFLAGS = ( "-Wall", "-Wextra", + "-Wunused", "-Wno-unused-parameter", ); }; From 224d98288f4326a2bd0d4317659b47610bb82b6d Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 4 Apr 2016 17:33:55 -0700 Subject: [PATCH 265/269] Updated version numbers. Bootstrap. --- Common/doc/docmain.hpp | 2 +- Common/include/config_structure.hpp | 4 +- Common/include/config_structure.inl | 2 +- Common/include/datatype_structure.hpp | 4 +- Common/include/datatype_structure.inl | 2 +- .../datatypes/codi_forward_structure.hpp | 2 +- .../datatypes/codi_forward_structure.inl | 2 +- .../datatypes/codi_reverse_structure.hpp | 2 +- .../datatypes/codi_reverse_structure.inl | 2 +- .../include/datatypes/complex_structure.hpp | 4 +- .../include/datatypes/complex_structure.inl | 2 +- .../include/datatypes/primitive_structure.hpp | 2 +- .../include/datatypes/primitive_structure.inl | 2 +- Common/include/dual_grid_structure.hpp | 10 +- Common/include/dual_grid_structure.inl | 2 +- Common/include/element_structure.hpp | 16 +- Common/include/element_structure.inl | 2 +- Common/include/gauss_structure.hpp | 4 +- Common/include/gauss_structure.inl | 2 +- Common/include/geometry_structure.hpp | 12 +- Common/include/geometry_structure.inl | 2 +- Common/include/grid_adaptation_structure.hpp | 2 +- Common/include/grid_adaptation_structure.inl | 2 +- Common/include/grid_movement_structure.hpp | 10 +- Common/include/grid_movement_structure.inl | 2 +- Common/include/linear_solvers_structure.hpp | 4 +- Common/include/linear_solvers_structure.inl | 2 +- Common/include/linear_solvers_structure_b.hpp | 2 +- Common/include/matrix_structure.hpp | 4 +- Common/include/matrix_structure.inl | 2 +- Common/include/mpi_structure.hpp | 8 +- Common/include/mpi_structure.inl | 2 +- Common/include/option_structure.hpp | 2 +- Common/include/primal_grid_structure.hpp | 20 +-- Common/include/primal_grid_structure.inl | 2 +- Common/include/vector_structure.hpp | 8 +- Common/include/vector_structure.inl | 2 +- Common/lib/Makefile.am | 2 +- Common/lib/Makefile.in | 2 +- Common/src/ad_structure.cpp | 2 +- Common/src/config_structure.cpp | 4 +- Common/src/dual_grid_structure.cpp | 2 +- Common/src/element_linear.cpp | 2 +- Common/src/element_structure.cpp | 2 +- Common/src/gauss_structure.cpp | 2 +- Common/src/geometry_structure.cpp | 2 +- Common/src/grid_adaptation_structure.cpp | 2 +- Common/src/grid_movement_structure.cpp | 2 +- Common/src/linear_solvers_structure.cpp | 2 +- Common/src/linear_solvers_structure_b.cpp | 2 +- Common/src/matrix_structure.cpp | 2 +- Common/src/mpi_structure.cpp | 2 +- Common/src/primal_grid_structure.cpp | 2 +- Common/src/vector_structure.cpp | 2 +- Makefile.am | 2 +- Makefile.in | 2 +- QuickStart/inv_NACA0012.cfg | 2 +- README.md | 2 +- SU2_CFD/include/SU2_CFD.hpp | 2 +- SU2_CFD/include/definition_structure.hpp | 2 +- SU2_CFD/include/driver_structure.hpp | 12 +- SU2_CFD/include/fluid_model.hpp | 10 +- SU2_CFD/include/fluid_model.inl | 2 +- SU2_CFD/include/integration_structure.hpp | 10 +- SU2_CFD/include/integration_structure.inl | 2 +- SU2_CFD/include/iteration_structure.hpp | 16 +- SU2_CFD/include/numerics_structure.hpp | 138 +++++++++--------- SU2_CFD/include/numerics_structure.inl | 2 +- SU2_CFD/include/output_structure.hpp | 4 +- SU2_CFD/include/solver_structure.hpp | 36 ++--- SU2_CFD/include/solver_structure.inl | 2 +- SU2_CFD/include/transport_model.hpp | 2 +- SU2_CFD/include/transport_model.inl | 2 +- SU2_CFD/include/variable_structure.hpp | 38 ++--- SU2_CFD/include/variable_structure.inl | 2 +- SU2_CFD/obj/Makefile.am | 2 +- SU2_CFD/obj/Makefile.in | 2 +- SU2_CFD/src/SU2_CFD.cpp | 2 +- SU2_CFD/src/definition_structure.cpp | 2 +- SU2_CFD/src/driver_structure.cpp | 2 +- SU2_CFD/src/fluid_model.cpp | 2 +- SU2_CFD/src/fluid_model_pig.cpp | 2 +- SU2_CFD/src/fluid_model_ppr.cpp | 2 +- SU2_CFD/src/fluid_model_pvdw.cpp | 2 +- SU2_CFD/src/integration_structure.cpp | 2 +- SU2_CFD/src/integration_time.cpp | 2 +- SU2_CFD/src/iteration_structure.cpp | 2 +- SU2_CFD/src/numerics_adjoint_levelset.cpp | 2 +- SU2_CFD/src/numerics_adjoint_mean.cpp | 2 +- SU2_CFD/src/numerics_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/numerics_direct_elasticity.cpp | 2 +- .../src/numerics_direct_elasticity_linear.cpp | 2 +- .../numerics_direct_elasticity_nonlinear.cpp | 2 +- SU2_CFD/src/numerics_direct_heat.cpp | 2 +- SU2_CFD/src/numerics_direct_mean.cpp | 2 +- SU2_CFD/src/numerics_direct_poisson.cpp | 2 +- SU2_CFD/src/numerics_direct_transition.cpp | 2 +- SU2_CFD/src/numerics_direct_turbulent.cpp | 2 +- SU2_CFD/src/numerics_direct_wave.cpp | 2 +- SU2_CFD/src/numerics_structure.cpp | 2 +- SU2_CFD/src/numerics_template.cpp | 2 +- SU2_CFD/src/output_cgns.cpp | 2 +- SU2_CFD/src/output_fieldview.cpp | 2 +- SU2_CFD/src/output_paraview.cpp | 2 +- SU2_CFD/src/output_structure.cpp | 4 +- SU2_CFD/src/output_su2.cpp | 2 +- SU2_CFD/src/output_tecplot.cpp | 2 +- SU2_CFD/src/solver_adjoint_discrete.cpp | 2 +- SU2_CFD/src/solver_adjoint_levelset.cpp | 2 +- SU2_CFD/src/solver_adjoint_mean.cpp | 2 +- SU2_CFD/src/solver_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/solver_direct_elasticity.cpp | 2 +- SU2_CFD/src/solver_direct_heat.cpp | 2 +- SU2_CFD/src/solver_direct_mean.cpp | 2 +- SU2_CFD/src/solver_direct_poisson.cpp | 2 +- SU2_CFD/src/solver_direct_transition.cpp | 2 +- SU2_CFD/src/solver_direct_turbulent.cpp | 2 +- SU2_CFD/src/solver_direct_wave.cpp | 2 +- SU2_CFD/src/solver_structure.cpp | 2 +- SU2_CFD/src/solver_template.cpp | 2 +- SU2_CFD/src/transfer_physics.cpp | 2 +- SU2_CFD/src/transfer_structure.cpp | 2 +- SU2_CFD/src/transport_model.cpp | 2 +- SU2_CFD/src/variable_adjoint_discrete.cpp | 2 +- SU2_CFD/src/variable_adjoint_levelset.cpp | 2 +- SU2_CFD/src/variable_adjoint_mean.cpp | 2 +- SU2_CFD/src/variable_adjoint_turbulent.cpp | 2 +- SU2_CFD/src/variable_direct_elasticity.cpp | 2 +- SU2_CFD/src/variable_direct_heat.cpp | 2 +- SU2_CFD/src/variable_direct_mean.cpp | 2 +- SU2_CFD/src/variable_direct_poisson.cpp | 2 +- SU2_CFD/src/variable_direct_transition.cpp | 2 +- SU2_CFD/src/variable_direct_turbulent.cpp | 2 +- SU2_CFD/src/variable_direct_wave.cpp | 2 +- SU2_CFD/src/variable_structure.cpp | 2 +- SU2_CFD/src/variable_template.cpp | 2 +- SU2_DEF/include/SU2_DEF.hpp | 2 +- SU2_DEF/obj/Makefile.am | 2 +- SU2_DEF/obj/Makefile.in | 2 +- SU2_DEF/src/SU2_DEF.cpp | 2 +- SU2_DOT/include/SU2_DOT.hpp | 2 +- SU2_DOT/obj/Makefile.am | 2 +- SU2_DOT/obj/Makefile.in | 2 +- SU2_DOT/src/SU2_DOT.cpp | 2 +- SU2_GEO/include/SU2_GEO.hpp | 2 +- SU2_GEO/obj/Makefile.am | 2 +- SU2_GEO/obj/Makefile.in | 2 +- SU2_GEO/src/SU2_GEO.cpp | 2 +- SU2_MSH/include/SU2_MSH.hpp | 2 +- SU2_MSH/obj/Makefile.am | 2 +- SU2_MSH/obj/Makefile.in | 2 +- SU2_MSH/src/SU2_MSH.cpp | 2 +- SU2_PY/Makefile.am | 2 +- SU2_PY/Makefile.in | 2 +- SU2_PY/SU2/eval/design.py | 2 +- SU2_PY/SU2/eval/functions.py | 2 +- SU2_PY/SU2/eval/gradients.py | 2 +- SU2_PY/SU2/io/config.py | 2 +- SU2_PY/SU2/io/config_options.py | 2 +- SU2_PY/SU2/io/data.py | 2 +- SU2_PY/SU2/io/filelock.py | 2 +- SU2_PY/SU2/io/redirect.py | 2 +- SU2_PY/SU2/io/state.py | 2 +- SU2_PY/SU2/io/tools.py | 2 +- SU2_PY/SU2/mesh/adapt.py | 2 +- SU2_PY/SU2/mesh/tools.py | 2 +- SU2_PY/SU2/opt/project.py | 2 +- SU2_PY/SU2/opt/scipy_tools.py | 2 +- SU2_PY/SU2/opt/server.py | 2 +- SU2_PY/SU2/run/adaptation.py | 2 +- SU2_PY/SU2/run/adjoint.py | 2 +- SU2_PY/SU2/run/deform.py | 2 +- SU2_PY/SU2/run/direct.py | 2 +- SU2_PY/SU2/run/geometry.py | 2 +- SU2_PY/SU2/run/interface.py | 2 +- SU2_PY/SU2/run/merge.py | 2 +- SU2_PY/SU2/run/projection.py | 2 +- SU2_PY/SU2/util/filter_adjoint.py | 2 +- SU2_PY/SU2/util/plot.py | 2 +- SU2_PY/SU2/util/which.py | 2 +- SU2_PY/change_version_number.py | 6 +- SU2_PY/compute_polar.py | 2 +- SU2_PY/compute_stability.py | 2 +- SU2_PY/config_gui.py | 2 +- SU2_PY/continuous_adjoint.py | 2 +- SU2_PY/direct_differentiation.py | 2 +- SU2_PY/discrete_adjoint.py | 2 +- SU2_PY/finite_differences.py | 2 +- SU2_PY/merge_solution.py | 2 +- SU2_PY/mesh_adaptation.py | 2 +- SU2_PY/mesh_deformation.py | 2 +- SU2_PY/parallel_computation.py | 2 +- SU2_PY/parallel_computation_fsi.py | 2 +- SU2_PY/parse_config.py | 2 +- SU2_PY/patient_designspace.py | 2 +- SU2_PY/set_ffd_design_var.py | 2 +- SU2_PY/shape_optimization.py | 4 +- SU2_SOL/include/SU2_SOL.hpp | 2 +- SU2_SOL/obj/Makefile.am | 2 +- SU2_SOL/obj/Makefile.in | 2 +- SU2_SOL/src/SU2_SOL.cpp | 2 +- TestCases/TestCase.py | 2 +- TestCases/actuator_disk/ActDisk_Euler.cfg | 2 +- .../aeroelastic/aeroelastic_NACA64A010.cfg | 2 +- .../cont_adj_euler/naca0012/inv_NACA0012.cfg | 2 +- .../naca0012/inv_NACA0012_FD.cfg | 2 +- .../cont_adj_euler/oneram6/inv_ONERAM6.cfg | 2 +- .../naca0012/incomp_NACA0012.cfg | 2 +- .../cylinder/lam_incomp_cylinder.cfg | 2 +- .../cylinder/lam_cylinder.cfg | 2 +- .../naca0012_sub/lam_NACA0012.cfg | 2 +- .../naca0012_trans/lam_NACA0012.cfg | 2 +- .../cont_adj_rans/naca0012/turb_nasa.cfg | 2 +- .../cont_adj_rans/oneram6/turb_ONERAM6.cfg | 2 +- .../cont_adj_rans/rae2822/turb_SA_RAE2822.cfg | 2 +- .../control_surface/inv_ONERAM6_moving.cfg | 2 +- .../control_surface/inv_ONERAM6_setting.cfg | 2 +- TestCases/euler/CRM/inv_CRM_JST.cfg | 2 +- TestCases/euler/biparabolic/BIPARABOLIC.cfg | 2 +- TestCases/euler/channel/inv_channel_RK.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012.cfg | 2 +- TestCases/euler/naca0012/inv_NACA0012_Roe.cfg | 2 +- TestCases/euler/oneram6/inv_ONERAM6.cfg | 2 +- TestCases/euler/wedge/inv_wedge_HLLC.cfg | 2 +- .../fea_fsi/DynBeam_2d/configBeam_2d.cfg | 2 +- .../fea_fsi/StatBeam_3d/configBeam_3d.cfg | 2 +- TestCases/gust/inv_gust_NACA0012.cfg | 2 +- .../incomp_euler/naca0012/incomp_NACA0012.cfg | 2 +- .../cylinder/incomp_cylinder.cfg | 2 +- TestCases/incomp_rans/naca0012/naca0012.cfg | 2 +- TestCases/linear_elasticity/beam.cfg | 2 +- TestCases/moving_wall/cavity/lam_cavity.cfg | 2 +- .../spinning_cylinder/spinning_cylinder.cfg | 2 +- .../navierstokes/cylinder/lam_cylinder.cfg | 2 +- .../navierstokes/flatplate/lam_flatplate.cfg | 2 +- .../navierstokes/naca0012/lam_NACA0012.cfg | 2 +- TestCases/nicf/edge/edge_PPR.cfg | 2 +- TestCases/nicf/edge/edge_VW.cfg | 2 +- .../pitching_NACA64A010.cfg | 2 +- .../pitching_oneram6/pitching_ONERAM6.cfg | 2 +- .../rotating_naca0012/rotating_NACA0012.cfg | 2 +- .../steady_naca0012/inv_NACA0012_adv.cfg | 2 +- .../steady_naca0012/inv_NACA0012_basic.cfg | 2 +- .../steady_oneram6/def_ONERAM6.cfg | 2 +- .../steady_oneram6/inv_ONERAM6_adv.cfg | 2 +- .../steady_oneram6/inv_ONERAM6_basic.cfg | 2 +- .../pitching_naca64a010/turb_NACA64A010.cfg | 2 +- .../pitching_oneram6/turb_ONERAM6.cfg | 2 +- .../steady_oneram6/turb_ONERAM6.cfg | 2 +- .../steady_rae2822/def_SA_RAE2822.cfg | 2 +- .../steady_rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/parallel_regression.py | 2 +- TestCases/parallel_regression_AD.py | 2 +- .../rans/flatplate/turb_SA_flatplate.cfg | 2 +- .../rans/flatplate/turb_SST_flatplate.cfg | 2 +- TestCases/rans/oneram6/turb_ONERAM6.cfg | 2 +- TestCases/rans/rae2822/turb_SA_RAE2822.cfg | 2 +- TestCases/rans/rae2822/turb_SST_RAE2822.cfg | 2 +- TestCases/rans/s809/trans_s809.cfg | 2 +- TestCases/rans/s809/turb_S809.cfg | 2 +- TestCases/rans/vki_turbine/turb_vki.cfg | 2 +- .../caradonna_tung/rot_caradonna_tung.cfg | 2 +- TestCases/rotating/naca0012/rot_NACA0012.cfg | 2 +- TestCases/serial_regression.py | 2 +- TestCases/serial_regression_AD.py | 2 +- TestCases/spectral_method/spectral.cfg | 2 +- .../pitching_NACA64A010.cfg | 2 +- .../turb_NACA64A010.cfg | 2 +- .../plunging_naca0012/plunging_NACA0012.cfg | 2 +- .../unsteady/square_cylinder/turb_square.cfg | 2 +- config_template.cfg | 2 +- config_template_basic.cfg | 2 +- configure | 24 +-- configure.ac | 6 +- externals/Makefile.am | 2 +- externals/Makefile.in | 2 +- .../share/emacs/site-lisp/autoconf-mode.elc | Bin 3190 -> 3189 bytes .../share/emacs/site-lisp/autotest-mode.elc | Bin 2762 -> 2761 bytes .../autotools/share/man/man1/aclocal-1.12.1 | 2 +- .../autotools/share/man/man1/automake-1.12.1 | 2 +- preconfigure.py | 4 +- 281 files changed, 463 insertions(+), 463 deletions(-) diff --git a/Common/doc/docmain.hpp b/Common/doc/docmain.hpp index 16b4fbe50e6..48c917f4dc4 100644 --- a/Common/doc/docmain.hpp +++ b/Common/doc/docmain.hpp @@ -2,7 +2,7 @@ * \file docmain.hpp * \brief This file contains documentation for Doxygen and does not have any significance with respect to C++. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/config_structure.hpp b/Common/include/config_structure.hpp index 8799f5215f1..29d38cdf24b 100644 --- a/Common/include/config_structure.hpp +++ b/Common/include/config_structure.hpp @@ -3,7 +3,7 @@ * \brief All the information about the definition of the physical problem. * The subroutines and functions are in the config_structure.cpp file. * \author F. Palacios, T. Economon, B. Tracey - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -55,7 +55,7 @@ using namespace std; * \brief Main class for defining the problem; basically this class reads the configuration file, and * stores all the information. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CConfig { diff --git a/Common/include/config_structure.inl b/Common/include/config_structure.inl index 8b43e351000..839caa1b9f9 100644 --- a/Common/include/config_structure.inl +++ b/Common/include/config_structure.inl @@ -2,7 +2,7 @@ * \file config_structure.inl * \brief In-Line subroutines of the config_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatype_structure.hpp b/Common/include/datatype_structure.hpp index 824bb777a80..136cb271efb 100644 --- a/Common/include/datatype_structure.hpp +++ b/Common/include/datatype_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers for generalized datatypes. * The subroutines and functions are in the datatype_structure.cpp file. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -64,7 +64,7 @@ typedef double passivedouble; * \brief Namespace for defining the datatype wrapper routines; this class features as a base class for * type interfaces for non-primitive dataypes e.g. used by AD, complex etc. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ namespace SU2_TYPE{ /*! diff --git a/Common/include/datatype_structure.inl b/Common/include/datatype_structure.inl index a3732a3f198..8ad857d4e1a 100644 --- a/Common/include/datatype_structure.inl +++ b/Common/include/datatype_structure.inl @@ -2,7 +2,7 @@ * \file datatype_structure.inl * \brief In-Line subroutines of the datatype_structure.hpp file. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_forward_structure.hpp b/Common/include/datatypes/codi_forward_structure.hpp index c1feb5f400f..5ad659dc5a9 100644 --- a/Common/include/datatypes/codi_forward_structure.hpp +++ b/Common/include/datatypes/codi_forward_structure.hpp @@ -2,7 +2,7 @@ * \file codi_forward_structure.hpp * \brief Header for codi forward type definition. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_forward_structure.inl b/Common/include/datatypes/codi_forward_structure.inl index c0bc0e53fec..543e34e66b1 100644 --- a/Common/include/datatypes/codi_forward_structure.inl +++ b/Common/include/datatypes/codi_forward_structure.inl @@ -2,7 +2,7 @@ * \file codi_forward_structure.inl * \brief Inline subroutines for codi_forward_structure.hpp. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_reverse_structure.hpp b/Common/include/datatypes/codi_reverse_structure.hpp index f3ad3613987..403973c58a6 100644 --- a/Common/include/datatypes/codi_reverse_structure.hpp +++ b/Common/include/datatypes/codi_reverse_structure.hpp @@ -2,7 +2,7 @@ * \file codi_reverse_structure.hpp * \brief Header for codi reverse type definition. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/codi_reverse_structure.inl b/Common/include/datatypes/codi_reverse_structure.inl index 447ab00fbf4..ae2c189fa1c 100644 --- a/Common/include/datatypes/codi_reverse_structure.inl +++ b/Common/include/datatypes/codi_reverse_structure.inl @@ -2,7 +2,7 @@ * \file codi_reverse_structure.inl * \brief Inline subroutines for datatype_structure.hpp. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/complex_structure.hpp b/Common/include/datatypes/complex_structure.hpp index 8efaa7b2233..2d61227ecea 100644 --- a/Common/include/datatypes/complex_structure.hpp +++ b/Common/include/datatypes/complex_structure.hpp @@ -2,7 +2,7 @@ * \file complex_structure.hpp * \brief Headers for complex datatype definition. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -43,7 +43,7 @@ inline double real(const double& r); * \brief Class for defining the complex datatype for complex step gradient computation. * Based on complexify.h by Peter Sturdza. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CComplexType : public std::complex { diff --git a/Common/include/datatypes/complex_structure.inl b/Common/include/datatypes/complex_structure.inl index f74572d7400..6fb8df6a373 100644 --- a/Common/include/datatypes/complex_structure.inl +++ b/Common/include/datatypes/complex_structure.inl @@ -2,7 +2,7 @@ * \file complex_structure.inl * \brief In-Line subroutines of the datatype_structure.hpp file. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/primitive_structure.hpp b/Common/include/datatypes/primitive_structure.hpp index 2daf9df3721..fed57fc277e 100644 --- a/Common/include/datatypes/primitive_structure.hpp +++ b/Common/include/datatypes/primitive_structure.hpp @@ -2,7 +2,7 @@ * \file primitive_structure.hpp * \brief Header for the primitive datatype. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/datatypes/primitive_structure.inl b/Common/include/datatypes/primitive_structure.inl index aef27934a9d..61ba06eba9a 100644 --- a/Common/include/datatypes/primitive_structure.inl +++ b/Common/include/datatypes/primitive_structure.inl @@ -2,7 +2,7 @@ * \file primitive_structure.inl * \brief Inline subroutines for datatype_structure.hpp. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/dual_grid_structure.hpp b/Common/include/dual_grid_structure.hpp index f72bb5f7ce4..65015167cb9 100644 --- a/Common/include/dual_grid_structure.hpp +++ b/Common/include/dual_grid_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the dual_grid_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -48,7 +48,7 @@ using namespace std; * \brief Class for controlling the dual volume definition. The dual volume is compose by * three main elements: points, edges, and vertices. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CDualGrid{ protected: @@ -133,7 +133,7 @@ class CDualGrid{ * \class CPoint * \brief Class for point definition (including control volume definition). * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPoint : public CDualGrid { private: @@ -740,7 +740,7 @@ class CPoint : public CDualGrid { * \class CEdge * \brief Class for defining an edge. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CEdge : public CDualGrid { private: @@ -877,7 +877,7 @@ class CEdge : public CDualGrid { * \class CVertex * \brief Class for vertex definition (equivalent to edges, but for the boundaries). * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CVertex : public CDualGrid { private: diff --git a/Common/include/dual_grid_structure.inl b/Common/include/dual_grid_structure.inl index 3a0f456e3d1..941da3c389e 100644 --- a/Common/include/dual_grid_structure.inl +++ b/Common/include/dual_grid_structure.inl @@ -2,7 +2,7 @@ * \file dual_grid_structure.inl * \brief In-Line subroutines of the dual_grid_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/element_structure.hpp b/Common/include/element_structure.hpp index acaaee27871..56a07bad144 100644 --- a/Common/include/element_structure.hpp +++ b/Common/include/element_structure.hpp @@ -4,7 +4,7 @@ * The subroutines and functions are in the element_structure.cpp * and element_linear.cpp files. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -49,7 +49,7 @@ using namespace std; * \class CElement * \brief Main class for defining the element structure. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CElement { @@ -393,7 +393,7 @@ class CElement { * \class CTRIA1 * \brief Tria element with 1 Gauss Points * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTRIA1 : public CElement { @@ -441,7 +441,7 @@ class CTRIA1 : public CElement { * \class CQUAD4 * \brief Quadrilateral element with 4 Gauss Points * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CQUAD4 : public CElement { @@ -494,7 +494,7 @@ class CQUAD4 : public CElement { * \class CQUAD4P1 * \brief Quadrilateral element with 4 Gauss Points and 1 Gauss Point for pressure subintegration * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CQUAD4P1 : public CQUAD4 { @@ -535,7 +535,7 @@ class CQUAD4P1 : public CQUAD4 { * \class CTETRA1 * \brief Tetrahedral element with 1 Gauss Point * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTETRA1 : public CElement { @@ -582,7 +582,7 @@ class CTETRA1 : public CElement { * \class CHEXA8 * \brief Hexahedral element with 8 Gauss Points * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CHEXA8 : public CElement { @@ -635,7 +635,7 @@ class CHEXA8 : public CElement { * \class CHEXA8P1 * \brief Hexahedral element with 8 Gauss Points and 1 Gauss Point for pressure subintegration * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CHEXA8P1 : public CHEXA8 { diff --git a/Common/include/element_structure.inl b/Common/include/element_structure.inl index 741cf8a1b6b..432e3c0eb27 100644 --- a/Common/include/element_structure.inl +++ b/Common/include/element_structure.inl @@ -2,7 +2,7 @@ * \file element_structure.inl * \brief In-Line subroutines of the element_structure.hpp file. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/gauss_structure.hpp b/Common/include/gauss_structure.hpp index 5a40fcd9d54..5f30976e350 100644 --- a/Common/include/gauss_structure.hpp +++ b/Common/include/gauss_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the Finite Element structure (gaussian points) * The subroutines and functions are in the gauss_structure.cpp file. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -48,7 +48,7 @@ using namespace std; * \class CGaussVariable * \brief Main class for defining the gaussian points. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CGaussVariable { protected: diff --git a/Common/include/gauss_structure.inl b/Common/include/gauss_structure.inl index 1be9b5f9f4a..0029b21772f 100644 --- a/Common/include/gauss_structure.inl +++ b/Common/include/gauss_structure.inl @@ -2,7 +2,7 @@ * \file gauss_structure.inl * \brief In-Line subroutines of the gauss_structure.hpp file. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/geometry_structure.hpp b/Common/include/geometry_structure.hpp index 7ab8d2a9092..f90ecbbf922 100644 --- a/Common/include/geometry_structure.hpp +++ b/Common/include/geometry_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for creating the geometrical structure. * The subroutines and functions are in the geometry_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -65,7 +65,7 @@ using namespace std; * \brief Parent class for defining the geometry of the problem (complete geometry, * multigrid agglomerated geometry, only boundary geometry, etc..) * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CGeometry { protected: @@ -912,7 +912,7 @@ class CGeometry { * \brief Class for reading a defining the primal grid which is read from the * grid file in .su2 format. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPhysicalGeometry : public CGeometry { @@ -1470,7 +1470,7 @@ class CPhysicalGeometry : public CGeometry { * \brief Class for defining the multigrid geometry, the main delicated part is the * agglomeration stage, which is done in the declaration. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CMultiGridGeometry : public CGeometry { @@ -1646,7 +1646,7 @@ class CMultiGridGeometry : public CGeometry { * \class CPeriodicGeometry * \brief Class for defining a periodic boundary condition. * \author T. Economon, F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPeriodicGeometry : public CGeometry { CPrimalGrid*** newBoundPer; /*!< \brief Boundary vector for new periodic elements (primal grid information). */ @@ -1692,7 +1692,7 @@ class CPeriodicGeometry : public CGeometry { * \struct CMultiGridQueue * \brief Class for a multigrid queue system * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * \date Aug 12, 2012 */ class CMultiGridQueue { diff --git a/Common/include/geometry_structure.inl b/Common/include/geometry_structure.inl index e61458919c6..300ddf66512 100644 --- a/Common/include/geometry_structure.inl +++ b/Common/include/geometry_structure.inl @@ -2,7 +2,7 @@ * \file geometry_structure.inl * \brief In-Line subroutines of the geometry_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/grid_adaptation_structure.hpp b/Common/include/grid_adaptation_structure.hpp index 3a01d47b825..b6c05b67ddb 100644 --- a/Common/include/grid_adaptation_structure.hpp +++ b/Common/include/grid_adaptation_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for doing the numerical grid * adaptation. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/grid_adaptation_structure.inl b/Common/include/grid_adaptation_structure.inl index 4c2ab24255b..db3c475a4b5 100644 --- a/Common/include/grid_adaptation_structure.inl +++ b/Common/include/grid_adaptation_structure.inl @@ -2,7 +2,7 @@ * \file grid_adaptation_structure.inl * \brief In-Line subroutines of the grid_adaptation_structure.hpp file. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/grid_movement_structure.hpp b/Common/include/grid_movement_structure.hpp index 0d4ded5faff..97d0fa08a02 100644 --- a/Common/include/grid_movement_structure.hpp +++ b/Common/include/grid_movement_structure.hpp @@ -5,7 +5,7 @@ * technique definition). The subroutines and functions are in * the grid_movement_structure.cpp file. * \author F. Palacios, T. Economon, S. Padron - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -56,7 +56,7 @@ using namespace std; * \brief Class for moving the surface and volumetric * numerical grid (2D and 3D problems). * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CGridMovement { public: @@ -84,7 +84,7 @@ class CGridMovement { * \class CFreeFormDefBox * \brief Class for defining the free form FFDBox structure. * \author F. Palacios & A. Galdran. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CFreeFormDefBox : public CGridMovement { public: @@ -738,7 +738,7 @@ class CFreeFormDefBox : public CGridMovement { * \class CVolumetricMovement * \brief Class for moving the volumetric numerical grid. * \author F. Palacios, A. Bueno, T. Economon, S. Padron. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CVolumetricMovement : public CGridMovement { protected: @@ -1067,7 +1067,7 @@ class CVolumetricMovement : public CGridMovement { * \class CSurfaceMovement * \brief Class for moving the surface numerical grid. * \author F. Palacios, T. Economon. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSurfaceMovement : public CGridMovement { protected: diff --git a/Common/include/grid_movement_structure.inl b/Common/include/grid_movement_structure.inl index 242d3345f85..b605e6b089e 100644 --- a/Common/include/grid_movement_structure.inl +++ b/Common/include/grid_movement_structure.inl @@ -2,7 +2,7 @@ * \file grid_movement_structure.inl * \brief In-Line subroutines of the grid_movement_structure.hpp file. * \author F. Palacios, T. Economon, S. Padron - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/linear_solvers_structure.hpp b/Common/include/linear_solvers_structure.hpp index 24b8f4dc981..f1d06949ade 100644 --- a/Common/include/linear_solvers_structure.hpp +++ b/Common/include/linear_solvers_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers for the classes related to linear solvers (CG, FGMRES, etc) * The subroutines and functions are in the linear_solvers_structure.cpp file. * \author J. Hicken, F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -55,7 +55,7 @@ using namespace std; * \class CSysSolve * \brief Class for solving linear systems using classical and Krylov-subspace iterative methods * \author J. Hicken. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * The individual solvers could be stand-alone subroutines, but by * creating CSysSolve objects we can more easily assign different diff --git a/Common/include/linear_solvers_structure.inl b/Common/include/linear_solvers_structure.inl index e756c5f9c1f..255d31f26c1 100644 --- a/Common/include/linear_solvers_structure.inl +++ b/Common/include/linear_solvers_structure.inl @@ -2,7 +2,7 @@ * \file linear_solvers_structure.inl * \brief inline subroutines of the linear_solvers_structure.hpp file. * \author J. Hicken, F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/linear_solvers_structure_b.hpp b/Common/include/linear_solvers_structure_b.hpp index 0b0ea1d72a4..babaeeb6602 100644 --- a/Common/include/linear_solvers_structure_b.hpp +++ b/Common/include/linear_solvers_structure_b.hpp @@ -2,7 +2,7 @@ * \file linear_solvers_structure_b.hpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/matrix_structure.hpp b/Common/include/matrix_structure.hpp index 1323b5fd757..284d5a71a26 100644 --- a/Common/include/matrix_structure.hpp +++ b/Common/include/matrix_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for creating the sparse matrices-by-blocks. * The subroutines and functions are in the matrix_structure.cpp file. * \author F. Palacios, A. Bueno, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -52,7 +52,7 @@ const su2double eps = numeric_limits::epsilon(); /*!< \brief machine * \brief Main class for defining sparse matrices-by-blocks with compressed row format. * \author A. Bueno, F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSysMatrix { private: diff --git a/Common/include/matrix_structure.inl b/Common/include/matrix_structure.inl index 8e504516be7..e70a9eda0e8 100644 --- a/Common/include/matrix_structure.inl +++ b/Common/include/matrix_structure.inl @@ -2,7 +2,7 @@ * \file matrix_structure.inl * \brief In-Line subroutines of the matrix_structure.hpp file. * \author F. Palacios, A. Bueno, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/mpi_structure.hpp b/Common/include/mpi_structure.hpp index c819f3e1e95..69ccb025e0a 100644 --- a/Common/include/mpi_structure.hpp +++ b/Common/include/mpi_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the mpi interface for generalized datatypes. * The subroutines and functions are in the mpi_structure.cpp file. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -62,7 +62,7 @@ typedef CMPIWrapper SU2_MPI; * \brief Class for defining the MPI wrapper routines; this class features as a base class for * MPI interfaces for non-primitive dataypes e.g. used by AD, complex etc. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CMPIWrapper { @@ -123,7 +123,7 @@ class CMPIWrapper { * \brief Class for defining the MPI wrapper routines for the simplest non-primitive data where a * auxiliary variable is attached to each primary value. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ #if defined COMPLEX_TYPE || \ defined ADOLC_FORWARD_TYPE || \ @@ -212,7 +212,7 @@ class CAuxMPIWrapper : public CMPIWrapper{ * \class CAdjointMPIWrapper * \brief Adjoint MPI wrapper functions. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjointMPIWrapper: public CMPIWrapper { diff --git a/Common/include/mpi_structure.inl b/Common/include/mpi_structure.inl index 1f66bb04dbf..09a1f675bd7 100644 --- a/Common/include/mpi_structure.inl +++ b/Common/include/mpi_structure.inl @@ -2,7 +2,7 @@ * \file mpi_structure.hpp * \brief In-Line subroutines of the mpi_structure.hpp file. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 261402fa832..0dd41e36610 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -2,7 +2,7 @@ * \file option_structure.hpp * \brief Defines classes for referencing options for easy input in CConfig * \author J. Hicken, B. Tracey - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * Many of the classes in this file are templated, and therefore must * be declared and defined here; to keep all elements together, there diff --git a/Common/include/primal_grid_structure.hpp b/Common/include/primal_grid_structure.hpp index 53d953bf8eb..241bb254074 100644 --- a/Common/include/primal_grid_structure.hpp +++ b/Common/include/primal_grid_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the primal_grid_structure.cpp file. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -47,7 +47,7 @@ using namespace std; * \class CPrimalGrid * \brief Class to define the numerical primal grid. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPrimalGrid { protected: @@ -247,7 +247,7 @@ class CPrimalGrid { * \brief Class for vertex element definition. This kind * of element is used in the parallelization stuff. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CVertexMPI : public CPrimalGrid { private: @@ -364,7 +364,7 @@ class CVertexMPI : public CPrimalGrid { * \class CLine * \brief Class for line element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CLine : public CPrimalGrid { private: @@ -490,7 +490,7 @@ class CLine : public CPrimalGrid { * \class CTriangle * \brief Class for triangle element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTriangle : public CPrimalGrid { private: @@ -618,7 +618,7 @@ class CTriangle : public CPrimalGrid { * \class CQuadrilateral * \brief Class for quadrilateral element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CQuadrilateral : public CPrimalGrid { private: @@ -746,7 +746,7 @@ class CQuadrilateral : public CPrimalGrid { * \class CTetrahedron * \brief Class for tetrahedron element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTetrahedron : public CPrimalGrid { private: @@ -861,7 +861,7 @@ class CTetrahedron : public CPrimalGrid { * \class CHexahedron * \brief Class for hexahedron element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CHexahedron : public CPrimalGrid { private: @@ -983,7 +983,7 @@ class CHexahedron : public CPrimalGrid { * \class CPrism * \brief Class for prism element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPrism : public CPrimalGrid { private: @@ -1101,7 +1101,7 @@ class CPrism : public CPrimalGrid { * \class CPyramid * \brief Class for pyramid element definition. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPyramid : public CPrimalGrid { private: diff --git a/Common/include/primal_grid_structure.inl b/Common/include/primal_grid_structure.inl index d33caa6c9f0..fd88f4ab3c5 100644 --- a/Common/include/primal_grid_structure.inl +++ b/Common/include/primal_grid_structure.inl @@ -2,7 +2,7 @@ * \file primal_grid_structure.inl * \brief In-Line subroutines of the primal_grid_structure.hpp file. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/include/vector_structure.hpp b/Common/include/vector_structure.hpp index a1a110f8247..ef567a141ba 100644 --- a/Common/include/vector_structure.hpp +++ b/Common/include/vector_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers for the classes related to linear solvers (CG, FGMRES, etc) * The subroutines and functions are in the linear_solvers_structure.cpp file. * \author F. Palacios, J. Hicken, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -48,7 +48,7 @@ using namespace std; * \class CSysVector * \brief Class for holding and manipulating vectors needed by linear solvers * \author J. Hicken. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * We could use the STL vector as a base class here, but this gives us * more flexibility with the underlying data (e.g. we may decide to @@ -345,7 +345,7 @@ class CSysVector { * \class CMatrixVectorProduct * \brief abstract base class for defining matrix-vector products * \author J. Hicken. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * The Krylov-subspace solvers require only matrix-vector products and * not the actual matrix/Jacobian. We need some way to indicate which @@ -370,7 +370,7 @@ inline CMatrixVectorProduct::~CMatrixVectorProduct() {} * \class CPreconditioner * \brief abstract base class for defining preconditioning operation * \author J. Hicken. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * See the remarks regarding the CMatrixVectorProduct class. The same * idea applies here to the preconditioning operation. diff --git a/Common/include/vector_structure.inl b/Common/include/vector_structure.inl index bc8bc7c5411..0390adf876a 100644 --- a/Common/include/vector_structure.inl +++ b/Common/include/vector_structure.inl @@ -2,7 +2,7 @@ * \file vector_structure.inl * \brief inline subroutines of the vector_structure.hpp file. * \author F. Palacios, J. Hicken - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am index 19e47e8a963..1ee955aacf7 100644 --- a/Common/lib/Makefile.am +++ b/Common/lib/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for the SU2 common library # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/lib/Makefile.in b/Common/lib/Makefile.in index 55e52753015..76141a6dc36 100644 --- a/Common/lib/Makefile.in +++ b/Common/lib/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for the SU2 common library # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/ad_structure.cpp b/Common/src/ad_structure.cpp index 1d35762fe87..c9a3d4a5b63 100644 --- a/Common/src/ad_structure.cpp +++ b/Common/src/ad_structure.cpp @@ -2,7 +2,7 @@ * \file dataype_structure.cpp * \brief Main subroutines for the datatype structures. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/config_structure.cpp b/Common/src/config_structure.cpp index 435148257b4..7d602628c70 100644 --- a/Common/src/config_structure.cpp +++ b/Common/src/config_structure.cpp @@ -2,7 +2,7 @@ * \file config_structure.cpp * \brief Main file for managing the config file * \author F. Palacios, T. Economon, B. Tracey - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -2948,7 +2948,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) { cout << endl << "-------------------------------------------------------------------------" << endl; cout << "| ___ _ _ ___ |" << endl; - cout << "| / __| | | |_ ) Release 4.1.0 \"Cardinal\" |" << endl; + cout << "| / __| | | |_ ) Release 4.1.1 \"Cardinal\" |" << endl; cout << "| \\__ \\ |_| |/ / |" << endl; switch (val_software) { case SU2_CFD: cout << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |" << endl; break; diff --git a/Common/src/dual_grid_structure.cpp b/Common/src/dual_grid_structure.cpp index 8bd9fdd7ca8..c429eb2df23 100644 --- a/Common/src/dual_grid_structure.cpp +++ b/Common/src/dual_grid_structure.cpp @@ -2,7 +2,7 @@ * \file dual_grid_structure.cpp * \brief Main classes for defining the dual grid * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/element_linear.cpp b/Common/src/element_linear.cpp index 645c8e34c30..085a9ea3708 100644 --- a/Common/src/element_linear.cpp +++ b/Common/src/element_linear.cpp @@ -2,7 +2,7 @@ * \file element_linear.cpp * \brief Definition of the linear element structure for structural applications * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/element_structure.cpp b/Common/src/element_structure.cpp index de72c4ea0fc..ea4da9e5ba8 100644 --- a/Common/src/element_structure.cpp +++ b/Common/src/element_structure.cpp @@ -2,7 +2,7 @@ * \file element_structure.cpp * \brief Definition of the Finite Element structure (elements) * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/gauss_structure.cpp b/Common/src/gauss_structure.cpp index 6914b5a1f51..6908bbb8539 100644 --- a/Common/src/gauss_structure.cpp +++ b/Common/src/gauss_structure.cpp @@ -2,7 +2,7 @@ * \file gauss_structure.cpp * \brief Definition of the Gaussian Points structure for Finite Element applications * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 70dba90a1ad..5c30bef6121 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -2,7 +2,7 @@ * \file geometry_structure.cpp * \brief Main subroutines for creating the primal grid and multigrid structure. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/grid_adaptation_structure.cpp b/Common/src/grid_adaptation_structure.cpp index 0bec801642a..86c91a6c5b4 100644 --- a/Common/src/grid_adaptation_structure.cpp +++ b/Common/src/grid_adaptation_structure.cpp @@ -2,7 +2,7 @@ * \file grid_adaptation_structure.cpp * \brief Main subroutines for grid adaptation * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/grid_movement_structure.cpp b/Common/src/grid_movement_structure.cpp index 4ef8e643a80..2de1554c20e 100644 --- a/Common/src/grid_movement_structure.cpp +++ b/Common/src/grid_movement_structure.cpp @@ -2,7 +2,7 @@ * \file grid_movement_structure.cpp * \brief Subroutines for doing the grid movement using different strategies * \author F. Palacios, T. Economon, S. Padron - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/linear_solvers_structure.cpp b/Common/src/linear_solvers_structure.cpp index 9d0fcab7f80..6f1cd948fbd 100644 --- a/Common/src/linear_solvers_structure.cpp +++ b/Common/src/linear_solvers_structure.cpp @@ -2,7 +2,7 @@ * \file linear_solvers_structure.cpp * \brief Main classes required for solving linear systems of equations * \author J. Hicken, F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/linear_solvers_structure_b.cpp b/Common/src/linear_solvers_structure_b.cpp index 4d359c1dc63..8c4911598ee 100644 --- a/Common/src/linear_solvers_structure_b.cpp +++ b/Common/src/linear_solvers_structure_b.cpp @@ -2,7 +2,7 @@ * \file linear_solvers_structure_b.cpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/matrix_structure.cpp b/Common/src/matrix_structure.cpp index 5a48cd8dd42..39664764c44 100644 --- a/Common/src/matrix_structure.cpp +++ b/Common/src/matrix_structure.cpp @@ -2,7 +2,7 @@ * \file matrix_structure.cpp * \brief Main subroutines for doing the sparse structures * \author F. Palacios, A. Bueno, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/mpi_structure.cpp b/Common/src/mpi_structure.cpp index d5d22e86cf3..eacc85530a3 100644 --- a/Common/src/mpi_structure.cpp +++ b/Common/src/mpi_structure.cpp @@ -2,7 +2,7 @@ * \file mpi_structure.cpp * \brief Main subroutines for the mpi structures. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/primal_grid_structure.cpp b/Common/src/primal_grid_structure.cpp index 6c68af3eff0..8112cc4da24 100644 --- a/Common/src/primal_grid_structure.cpp +++ b/Common/src/primal_grid_structure.cpp @@ -2,7 +2,7 @@ * \file primal_grid_structure.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Common/src/vector_structure.cpp b/Common/src/vector_structure.cpp index 16c2c5ca4d0..4496554e704 100644 --- a/Common/src/vector_structure.cpp +++ b/Common/src/vector_structure.cpp @@ -2,7 +2,7 @@ * \file vector_structure.cpp * \brief Main classes required for solving linear systems of equations * \author F. Palacios, J. Hicken - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Makefile.am b/Makefile.am index c1056cae6b8..087dd3fd54b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Global makefile for the SU2 project # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/Makefile.in b/Makefile.in index 9e2c6f9530c..2265a1e2b86 100644 --- a/Makefile.in +++ b/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Global makefile for the SU2 project # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/QuickStart/inv_NACA0012.cfg b/QuickStart/inv_NACA0012.cfg index b3249f5e75f..3268c21d9a9 100644 --- a/QuickStart/inv_NACA0012.cfg +++ b/QuickStart/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/README.md b/README.md index a202eddda71..343bd7fe7a6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ----------------------------------------------------------- - SU2 (ver. 4.1.0 "Cardinal"): The Open-Source CFD Code + SU2 (ver. 4.1.1 "Cardinal"): The Open-Source CFD Code ----------------------------------------------------------- Computational analysis tools have revolutionized the way we design aerospace systems, but most established codes are proprietary, unavailable, or prohibitively expensive for many users. The SU2 team is changing this, making computational analysis and design freely available as open-source software and involving everyone in its creation and development. diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index b5d861caf4e..dbd4c140ca6 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_CFD. * The subroutines and functions are in the SU2_CFD.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index 9192667094c..1e27ef76d47 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines used by SU2_CFD. * The subroutines and functions are in the definition_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/driver_structure.hpp b/SU2_CFD/include/driver_structure.hpp index fac17c1b1c8..5746b86cb3b 100644 --- a/SU2_CFD/include/driver_structure.hpp +++ b/SU2_CFD/include/driver_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -50,7 +50,7 @@ using namespace std; * \class CDriver * \brief Parent class for driving an iteration of a single or multi-zone problem. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CDriver { protected: @@ -232,7 +232,7 @@ class CDriver { * \class CSingleZoneDriver * \brief Class for driving an iteration of the physics within a single zone. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSingleZoneDriver : public CDriver { public: @@ -298,7 +298,7 @@ class CSingleZoneDriver : public CDriver { * \class CMultiZoneDriver * \brief Class for driving an iteration of the physics within multiple zones. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CMultiZoneDriver : public CDriver { public: @@ -363,7 +363,7 @@ class CMultiZoneDriver : public CDriver { * \class CSpectralDriver * \brief Class for driving an iteration of a spectral method problem using multiple zones. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSpectralDriver : public CDriver { public: @@ -458,7 +458,7 @@ class CSpectralDriver : public CDriver { * \class CFSIDriver * \brief Class for driving a BGS iteration for a fluid-structure interaction problem in multiple zones. * \author R. Sanchez. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CFSIDriver : public CDriver { public: diff --git a/SU2_CFD/include/fluid_model.hpp b/SU2_CFD/include/fluid_model.hpp index 288359c716d..495cf72f61a 100644 --- a/SU2_CFD/include/fluid_model.hpp +++ b/SU2_CFD/include/fluid_model.hpp @@ -2,7 +2,7 @@ * \file fluid_model.hpp * \brief Headers of the main thermodynamic subroutines of the SU2 solvers. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -55,7 +55,7 @@ using namespace std; * \brief Main class for defining the Thermo-Physical Model * a child class for each particular Model (Ideal-Gas, Van der Waals, etc.) * \author: S.Vitale, G.Gori, M.Pini - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CFluidModel { protected: @@ -267,7 +267,7 @@ CConductivityModel *ThermalConductivity; /*!< \brief Thermal Conductivity Mode * \class CIdealGas * \brief Child class for defining ideal gas model. * \author: S.Vitale, M.Pini. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CIdealGas : public CFluidModel { @@ -358,7 +358,7 @@ class CIdealGas : public CFluidModel { * derived class CVanDerWaalsGas * \brief Child class for defining the Van der Waals model. * \author: S.Vitale, M.Pini - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CVanDerWaalsGas : public CIdealGas { @@ -444,7 +444,7 @@ class CVanDerWaalsGas : public CIdealGas { * \derived class CPengRobinson * \brief Child class for defining the Peng-Robinson model. * \author: S.Vitale, G. Gori - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPengRobinson : public CIdealGas { diff --git a/SU2_CFD/include/fluid_model.inl b/SU2_CFD/include/fluid_model.inl index 6ceb7c16ae0..3955e23fa48 100644 --- a/SU2_CFD/include/fluid_model.inl +++ b/SU2_CFD/include/fluid_model.inl @@ -2,7 +2,7 @@ * \file fluid_model.inl * \brief In-Line subroutines of the solver_structure.hpp file. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/integration_structure.hpp b/SU2_CFD/include/integration_structure.hpp index 52b3eab14f1..10d8452ee1d 100644 --- a/SU2_CFD/include/integration_structure.hpp +++ b/SU2_CFD/include/integration_structure.hpp @@ -4,7 +4,7 @@ * The subroutines and functions are in the integration_structure.cpp, * integration_time.cpp, and integration_notime.cpp files. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -50,7 +50,7 @@ using namespace std; * \brief Main class for doing the space integration, time integration, and monitoring * of a system of Partial Differential Equations (PDE). * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CIntegration { protected: @@ -419,7 +419,7 @@ class CIntegration { * \class CMultiGridIntegration * \brief Class for doing the numerical integration using a multigrid method. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CMultiGridIntegration : public CIntegration { protected: @@ -591,7 +591,7 @@ class CMultiGridIntegration : public CIntegration { * \class CSingleGridIntegration * \brief Class for doing the numerical integration of the turbulence model. * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSingleGridIntegration : public CIntegration { public: @@ -652,7 +652,7 @@ class CSingleGridIntegration : public CIntegration { * \class CStructuralIntegration * \brief Class for doing the numerical integration of the structural model. * \author R. Sanchez. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CStructuralIntegration : public CIntegration { public: diff --git a/SU2_CFD/include/integration_structure.inl b/SU2_CFD/include/integration_structure.inl index 6fc104229b8..b36441f8cb8 100644 --- a/SU2_CFD/include/integration_structure.inl +++ b/SU2_CFD/include/integration_structure.inl @@ -2,7 +2,7 @@ * \file integration_structure.inl * \brief In-Line subroutines of the integration_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/iteration_structure.hpp b/SU2_CFD/include/iteration_structure.hpp index a0ba255ffef..7de2d3ee667 100644 --- a/SU2_CFD/include/iteration_structure.hpp +++ b/SU2_CFD/include/iteration_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines used by SU2_CFD. * The subroutines and functions are in the definition_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -51,7 +51,7 @@ using namespace std; * \class CIteration * \brief Parent class for defining a single iteration of a physics problem. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CIteration { protected: @@ -147,7 +147,7 @@ class CIteration { * \class CMeanFlowIteration * \brief Class for driving an iteration of the mean flow system. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CMeanFlowIteration : public CIteration { public: @@ -282,7 +282,7 @@ class CMeanFlowIteration : public CIteration { * \class CWaveIteration * \brief Class for driving an iteration of the wave system. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CWaveIteration : public CIteration { public: @@ -391,7 +391,7 @@ class CWaveIteration : public CIteration { * \class CHeatIteration * \brief Class for driving an iteration of the heat system. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CHeatIteration : public CIteration { public: @@ -484,7 +484,7 @@ class CHeatIteration : public CIteration { * \class CPoissonIteration * \brief Class for driving an iteration of the poisson system. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPoissonIteration : public CIteration { public: @@ -664,7 +664,7 @@ class CFEM_StructuralAnalysis : public CIteration { * \class CAdjMeanFlowIteration * \brief Class for driving an iteration of the adjoint mean flow system. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjMeanFlowIteration : public CIteration { public: @@ -757,7 +757,7 @@ class CAdjMeanFlowIteration : public CIteration { * \class CDiscAdjMeanFlowIteration * \brief Class for driving an iteration of the discrete adjoint mean flow system. * \author T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CDiscAdjMeanFlowIteration : public CIteration { diff --git a/SU2_CFD/include/numerics_structure.hpp b/SU2_CFD/include/numerics_structure.hpp index d0ec9202510..a4843737af2 100644 --- a/SU2_CFD/include/numerics_structure.hpp +++ b/SU2_CFD/include/numerics_structure.hpp @@ -5,7 +5,7 @@ * numerics_convective.cpp, numerics_viscous.cpp, and * numerics_source.cpp files. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -52,7 +52,7 @@ using namespace std; * \class CNumerics * \brief Class for defining the numerical methods. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CNumerics { protected: @@ -1499,7 +1499,7 @@ class CNumerics { * \brief Class for centered scheme - CUSP. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwCUSP_Flow : public CNumerics { @@ -1549,7 +1549,7 @@ class CUpwCUSP_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the flow equations. * \ingroup ConvDiscr * \author A. Bueno, F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwRoe_Flow : public CNumerics { private: @@ -1596,7 +1596,7 @@ class CUpwRoe_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the flow equations for a general fluid model. * \ingroup ConvDiscr * \author S.Vitale, G.Gori, M.Pini - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwGeneralRoe_Flow : public CNumerics { private: @@ -1657,7 +1657,7 @@ class CUpwGeneralRoe_Flow : public CNumerics { * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author S. Copeland - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwMSW_Flow : public CNumerics { private: @@ -1702,7 +1702,7 @@ class CUpwMSW_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe with Turkel Preconditioning for the flow equations. * \ingroup ConvDiscr * \author A. K. Lonkar - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwTurkel_Flow : public CNumerics { private: @@ -1757,7 +1757,7 @@ class CUpwTurkel_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the incompressible flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwArtComp_Flow : public CNumerics { private: @@ -1804,7 +1804,7 @@ class CUpwArtComp_Flow : public CNumerics { * \brief Class for solving an approximate Riemann solver of Roe for the incompressible flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwArtComp_FreeSurf_Flow : public CNumerics { private: @@ -1852,7 +1852,7 @@ class CUpwArtComp_FreeSurf_Flow : public CNumerics { * for the adjoint flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwRoe_AdjFlow : public CNumerics { private: @@ -1903,7 +1903,7 @@ class CUpwRoe_AdjFlow : public CNumerics { * for the adjoint flow equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwRoeArtComp_AdjFlow : public CNumerics { private: @@ -1947,7 +1947,7 @@ class CUpwRoeArtComp_AdjFlow : public CNumerics { * \brief Class for solving an approximate Riemann AUSM. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwAUSM_Flow : public CNumerics { private: @@ -2104,7 +2104,7 @@ class CUpwGeneralHLLC_Flow : public CNumerics { * \brief Class for performing a linear upwind solver for the Spalart-Allmaras turbulence model equations with transition * \ingroup ConvDiscr * \author A. Aranake - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwLin_TransLM : public CNumerics { private: @@ -2144,7 +2144,7 @@ class CUpwLin_TransLM : public CNumerics { * \brief Class for performing a linear upwind solver for the adjoint Level Set equations. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwLin_AdjLevelSet : public CNumerics { private: @@ -2186,7 +2186,7 @@ class CUpwLin_AdjLevelSet : public CNumerics { * \brief Class for performing a linear upwind solver for the adjoint turbulence equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwLin_AdjTurb : public CNumerics { private: @@ -2222,7 +2222,7 @@ class CUpwLin_AdjTurb : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwSca_TurbSA : public CNumerics { private: @@ -2261,7 +2261,7 @@ class CUpwSca_TurbSA : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwSca_TurbML : public CNumerics { private: @@ -2300,7 +2300,7 @@ class CUpwSca_TurbML : public CNumerics { * \brief Class for doing a scalar upwind solver for the Menter SST turbulence model equations. * \ingroup ConvDiscr * \author A. Campos. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwSca_TurbSST : public CNumerics { private: @@ -2341,7 +2341,7 @@ class CUpwSca_TurbSST : public CNumerics { * \brief Class for doing a scalar upwind solver for the Spalart-Allmaras turbulence model equations with transition. * \ingroup ConvDiscr * \author A. Aranake. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwSca_TransLM : public CNumerics { private: @@ -2380,7 +2380,7 @@ class CUpwSca_TransLM : public CNumerics { * \brief Class for doing a scalar upwind solver for the adjoint turbulence equations. * \ingroup ConvDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CUpwSca_AdjTurb : public CNumerics { private: @@ -2420,7 +2420,7 @@ class CUpwSca_AdjTurb : public CNumerics { * \brief Class for centered shceme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentJST_KE_Flow : public CNumerics { @@ -2474,7 +2474,7 @@ class CCentJST_KE_Flow : public CNumerics { * \brief Class for centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentJST_Flow : public CNumerics { @@ -2528,7 +2528,7 @@ class CCentJST_Flow : public CNumerics { * \brief Class for centered scheme - JST (artificial compressibility). * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentJSTArtComp_Flow : public CNumerics { @@ -2581,7 +2581,7 @@ class CCentJSTArtComp_Flow : public CNumerics { * \brief Class for and adjoint centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentJST_AdjFlow : public CNumerics { private: @@ -2631,7 +2631,7 @@ class CCentJST_AdjFlow : public CNumerics { * \brief Class for and adjoint centered scheme - JST. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentJSTArtComp_AdjFlow : public CNumerics { private: @@ -2681,7 +2681,7 @@ class CCentJSTArtComp_AdjFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentLax_Flow : public CNumerics { private: @@ -2733,7 +2733,7 @@ class CCentLax_Flow : public CNumerics { * \brief Class for computing the Lax-Friedrich centered scheme (artificial compressibility). * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentLaxArtComp_Flow : public CNumerics { private: @@ -2785,7 +2785,7 @@ class CCentLaxArtComp_Flow : public CNumerics { * \brief Class for computing the Lax-Friedrich adjoint centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentLax_AdjFlow : public CNumerics { private: @@ -2835,7 +2835,7 @@ class CCentLax_AdjFlow : public CNumerics { * \brief Class for computing the Lax-Friedrich adjoint centered scheme. * \ingroup ConvDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CCentLaxArtComp_AdjFlow : public CNumerics { private: @@ -2885,7 +2885,7 @@ class CCentLaxArtComp_AdjFlow : public CNumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_Flow : public CNumerics { private: @@ -2977,7 +2977,7 @@ class CGeneralAvgGrad_Flow : public CNumerics { * \brief Class for computing viscous term using an average of gradients. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradArtComp_Flow : public CNumerics { private: @@ -3016,7 +3016,7 @@ class CAvgGradArtComp_Flow : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_TurbSA : public CNumerics { private: @@ -3061,7 +3061,7 @@ class CAvgGrad_TurbSA : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_TurbSA_Neg : public CNumerics { private: @@ -3107,7 +3107,7 @@ class CAvgGrad_TurbSA_Neg : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_TurbML : public CNumerics { private: @@ -3151,7 +3151,7 @@ class CAvgGrad_TurbML : public CNumerics { * \brief Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_TransLM : public CNumerics { private: @@ -3194,7 +3194,7 @@ class CAvgGrad_TransLM : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_AdjFlow : public CNumerics { private: @@ -3236,7 +3236,7 @@ class CAvgGrad_AdjFlow : public CNumerics { * \brief Class for computing the adjoint viscous terms. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradArtComp_AdjFlow : public CNumerics { private: @@ -3276,7 +3276,7 @@ class CAvgGradArtComp_AdjFlow : public CNumerics { * \brief Class for computing viscous term using the average of gradients with a correction. * \ingroup ViscDiscr * \author A. Bueno, and F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_Flow : public CNumerics { private: @@ -3371,7 +3371,7 @@ class CGeneralAvgGradCorrected_Flow : public CNumerics { * \brief Class for computing viscous term using an average of gradients with correction (artificial compresibility). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrectedArtComp_Flow : public CNumerics { private: @@ -3413,7 +3413,7 @@ class CAvgGradCorrectedArtComp_Flow : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_TurbSA : public CNumerics { private: @@ -3454,7 +3454,7 @@ class CAvgGradCorrected_TurbSA : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { private: @@ -3499,7 +3499,7 @@ class CAvgGradCorrected_TurbSA_Neg : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_TurbML : public CNumerics { private: @@ -3540,7 +3540,7 @@ class CAvgGradCorrected_TurbML : public CNumerics { * \brief Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_TransLM : public CNumerics { private: @@ -3580,7 +3580,7 @@ class CAvgGradCorrected_TransLM : public CNumerics { * \brief Class for computing viscous term using average of gradient with correction (Menter SST turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_TurbSST : public CNumerics { private: @@ -3642,7 +3642,7 @@ class CAvgGrad_TurbSST : public CNumerics { * \brief Class for computing viscous term using average of gradient with correction (Menter SST turbulence model). * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_TurbSST : public CNumerics { private: @@ -3704,7 +3704,7 @@ class CAvgGradCorrected_TurbSST : public CNumerics { * \brief Class for computing the adjoint viscous terms, including correction. * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_AdjFlow : public CNumerics { private: @@ -3752,7 +3752,7 @@ class CAvgGradCorrected_AdjFlow : public CNumerics { * \brief Class for computing the adjoint viscous terms, including correction. * \ingroup ViscDiscr * \author F.Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { private: @@ -3798,7 +3798,7 @@ class CAvgGradCorrectedArtComp_AdjFlow : public CNumerics { * \brief Class for adjoint turbulent using average of gradients with a correction. * \ingroup ViscDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGradCorrected_AdjTurb : public CNumerics { private: @@ -3850,7 +3850,7 @@ class CAvgGradCorrected_AdjTurb : public CNumerics { * \brief Class for adjoint turbulent using average of gradients with a correction. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAvgGrad_AdjTurb : public CNumerics { private: @@ -3902,7 +3902,7 @@ class CAvgGrad_AdjTurb : public CNumerics { * \brief Class for computing the stiffness matrix of the Galerkin method. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CGalerkin_Flow : public CNumerics { public: @@ -4161,7 +4161,7 @@ class CFEM_NeoHookean_Incomp : public CFEM_NonlinearElasticity { * \brief Dummy class. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceNothing : public CNumerics { public: @@ -4185,7 +4185,7 @@ class CSourceNothing : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourcePieceWise_TurbSA : public CNumerics { private: @@ -4280,7 +4280,7 @@ class CSourcePieceWise_TurbSA : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourcePieceWise_TurbSA_Neg : public CNumerics { private: @@ -4375,7 +4375,7 @@ class CSourcePieceWise_TurbSA_Neg : public CNumerics { * \brief Class for integrating the source terms of the Spalart-Allmaras turbulence model equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourcePieceWise_TransLM : public CNumerics { private: @@ -4440,7 +4440,7 @@ class CSourcePieceWise_TransLM : public CNumerics { * \brief Class for integrating the source terms of the Menter SST turbulence model equations. * \ingroup SourceDiscr * \author A. Campos. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourcePieceWise_TurbSST : public CNumerics { private: @@ -4514,7 +4514,7 @@ class CSourcePieceWise_TurbSST : public CNumerics { * \brief Class for the source term integration of the gravity force. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceGravity : public CNumerics { su2double Froude; @@ -4547,7 +4547,7 @@ class CSourceGravity : public CNumerics { * \brief Class for source term integration in adjoint problem. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceViscous_AdjFlow : public CNumerics { private: @@ -4583,7 +4583,7 @@ class CSourceViscous_AdjFlow : public CNumerics { * \brief Class for source term integration of the adjoint turbulent equation. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourcePieceWise_AdjTurb : public CNumerics { private: @@ -4619,7 +4619,7 @@ class CSourcePieceWise_AdjTurb : public CNumerics { * \brief Class for source term integration of the adjoint level set equation. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourcePieceWise_AdjLevelSet : public CNumerics { public: @@ -4650,7 +4650,7 @@ class CSourcePieceWise_AdjLevelSet : public CNumerics { * \brief Class for source term integration in adjoint problem using a conservative scheme. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceConservative_AdjFlow : public CNumerics { private: @@ -4685,7 +4685,7 @@ class CSourceConservative_AdjFlow : public CNumerics { * \brief Class for source term integration in adjoint turbulent problem using a conservative scheme. * \ingroup SourceDiscr * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceConservative_AdjTurb : public CNumerics { public: @@ -4718,7 +4718,7 @@ class CSourceConservative_AdjTurb : public CNumerics { * \brief Class for a rotating frame source term. * \ingroup SourceDiscr * \author F. Palacios, T. Economon. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceRotatingFrame_Flow : public CNumerics { public: @@ -4750,7 +4750,7 @@ class CSourceRotatingFrame_Flow : public CNumerics { * \brief Source term class for rotating frame adjoint. * \ingroup SourceDiscr * \author T. Economon. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceRotatingFrame_AdjFlow : public CNumerics { public: @@ -4782,7 +4782,7 @@ class CSourceRotatingFrame_AdjFlow : public CNumerics { * \brief Class for source term for solving axisymmetric problems. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceAxisymmetric_Flow : public CNumerics { public: @@ -4814,7 +4814,7 @@ class CSourceAxisymmetric_Flow : public CNumerics { * \brief Class for source term for solving axisymmetric problems. * \ingroup SourceDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceAxisymmetric_AdjFlow : public CNumerics { public: @@ -4845,7 +4845,7 @@ class CSourceAxisymmetric_AdjFlow : public CNumerics { * \brief Class for a source term due to a wind gust. * \ingroup SourceDiscr * \author S. Padrón - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSourceWindGust : public CNumerics { public: @@ -4877,7 +4877,7 @@ class CSourceWindGust : public CNumerics { * \brief Dummy class. * \ingroup SourceDiscr * \author A. Lonkar. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSource_Template : public CNumerics { public: @@ -4911,7 +4911,7 @@ class CSource_Template : public CNumerics { * \brief Class for setting up new method for spatial discretization of convective terms in flow Equations * \ingroup ConvDiscr * \author A. Lonkar - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CConvective_Template : public CNumerics { private: @@ -4959,7 +4959,7 @@ class CConvective_Template : public CNumerics { * \brief Class for computing viscous term using average of gradients. * \ingroup ViscDiscr * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CViscous_Template : public CNumerics { private: diff --git a/SU2_CFD/include/numerics_structure.inl b/SU2_CFD/include/numerics_structure.inl index 8ec01488900..9f2ff38bb64 100644 --- a/SU2_CFD/include/numerics_structure.inl +++ b/SU2_CFD/include/numerics_structure.inl @@ -2,7 +2,7 @@ * \file numerics_structure.inl * \brief In-Line subroutines of the numerics_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/output_structure.hpp b/SU2_CFD/include/output_structure.hpp index 4ac76c75265..b20989555a8 100644 --- a/SU2_CFD/include/output_structure.hpp +++ b/SU2_CFD/include/output_structure.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines for generating the file outputs. * The subroutines and functions are in the output_structure.cpp file. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -57,7 +57,7 @@ using namespace std; * \brief Class for writing the flow, adjoint and linearized solver * solution (including the history solution, and parallel stuff). * \author F. Palacios, T. Economon, M. Colonno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class COutput { diff --git a/SU2_CFD/include/solver_structure.hpp b/SU2_CFD/include/solver_structure.hpp index 8e2217ead08..6d832360ed2 100644 --- a/SU2_CFD/include/solver_structure.hpp +++ b/SU2_CFD/include/solver_structure.hpp @@ -5,7 +5,7 @@ * solution_direct.cpp, solution_adjoint.cpp, and * solution_linearized.cpp files. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -65,7 +65,7 @@ using namespace std; * \brief Main class for defining the PDE solution, it requires * a child class for each particular solver (Euler, Navier-Stokes, etc.) * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CSolver { protected: @@ -2828,7 +2828,7 @@ class CSolver { * \class CBaselineSolver * \brief Main class for defining a baseline solution from a restart file (for output). * \author F. Palacios, T. Economon. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CBaselineSolver : public CSolver { public: @@ -2882,7 +2882,7 @@ class CBaselineSolver : public CSolver { * \brief Main class for defining the Euler's flow solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CEulerSolver : public CSolver { protected: @@ -4619,7 +4619,7 @@ class CEulerSolver : public CSolver { * \brief Main class for defining the Navier-Stokes flow solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CNSSolver : public CEulerSolver { private: @@ -4893,7 +4893,7 @@ class CNSSolver : public CEulerSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbSolver : public CSolver { protected: @@ -5022,7 +5022,7 @@ class CTurbSolver : public CSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbSASolver: public CTurbSolver { @@ -5227,7 +5227,7 @@ class CTurbSASolver: public CTurbSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Aranake. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTransLMSolver: public CTurbSolver { @@ -5403,7 +5403,7 @@ class CTransLMSolver: public CTurbSolver { * \brief Main class for defining the turbulence model solver. * \ingroup Turbulence_Model * \author A. Campos, F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbSSTSolver: public CTurbSolver { @@ -5549,7 +5549,7 @@ class CTurbSSTSolver: public CTurbSolver { * \brief Main class for defining the Euler's adjoint flow solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjEulerSolver : public CSolver { protected: @@ -6041,7 +6041,7 @@ class CAdjEulerSolver : public CSolver { * \brief Main class for defining the Navier-Stokes' adjoint flow solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjNSSolver : public CAdjEulerSolver { public: @@ -6150,7 +6150,7 @@ class CAdjNSSolver : public CAdjEulerSolver { * \brief Main class for defining the adjoint turbulence model solver. * \ingroup Turbulence_Model * \author F. Palacios, A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjTurbSolver : public CSolver { private: @@ -6296,7 +6296,7 @@ class CAdjTurbSolver : public CSolver { /*! \class CPoissonSolver * \brief Main class for defining the poisson potential solver. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * \date May 3, 2010. */ class CPoissonSolver : public CSolver { @@ -6428,7 +6428,7 @@ class CPoissonSolver : public CSolver { /*! \class CWaveSolver * \brief Main class for defining the wave solver. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * \date May 3, 2010. */ class CWaveSolver : public CSolver { @@ -6587,7 +6587,7 @@ class CWaveSolver : public CSolver { /*! \class CHeatSolver * \brief Main class for defining the heat solver. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * \date May 3, 2010. */ class CHeatSolver : public CSolver { @@ -7219,7 +7219,7 @@ class CFEM_ElasticitySolver : public CSolver { * \brief Main class for defining the level set solver. * \ingroup LevelSet_Model * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjLevelSetSolver : public CSolver { protected: @@ -7405,7 +7405,7 @@ class CAdjLevelSetSolver : public CSolver { * \brief Main class for defining the template model solver. * \ingroup Template_Flow_Equation * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTemplateSolver : public CSolver { private: @@ -7613,7 +7613,7 @@ class CTemplateSolver : public CSolver { * \brief Main class for defining the discrete adjoint solver. * \ingroup Discrete_Adjoint * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CDiscAdjSolver : public CSolver { private: diff --git a/SU2_CFD/include/solver_structure.inl b/SU2_CFD/include/solver_structure.inl index ad8943cefed..ae1f7f7925a 100644 --- a/SU2_CFD/include/solver_structure.inl +++ b/SU2_CFD/include/solver_structure.inl @@ -2,7 +2,7 @@ * \file solver_structure.inl * \brief In-Line subroutines of the solver_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/transport_model.hpp b/SU2_CFD/include/transport_model.hpp index 0622930ed38..5d2ece1d945 100644 --- a/SU2_CFD/include/transport_model.hpp +++ b/SU2_CFD/include/transport_model.hpp @@ -2,7 +2,7 @@ * \file transport_model.hpp * \brief Headers of the main transport properties subroutines of the SU2 solvers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/transport_model.inl b/SU2_CFD/include/transport_model.inl index 8ea8ca7c0d9..5b6ce09984a 100644 --- a/SU2_CFD/include/transport_model.inl +++ b/SU2_CFD/include/transport_model.inl @@ -2,7 +2,7 @@ * \file transport_model.inl * \brief In-Line subroutines of the solver_structure.hpp file. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/include/variable_structure.hpp b/SU2_CFD/include/variable_structure.hpp index 641e9458e1a..bcb404ce898 100644 --- a/SU2_CFD/include/variable_structure.hpp +++ b/SU2_CFD/include/variable_structure.hpp @@ -4,7 +4,7 @@ * each kind of governing equation (direct, adjoint and linearized). * The subroutines and functions are in the variable_structure.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -49,7 +49,7 @@ using namespace std; * \class CVariable * \brief Main class for defining the variables. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CVariable { protected: @@ -2094,7 +2094,7 @@ class CVariable { * \class CBaselineVariable * \brief Main class for defining the variables of a baseline solution from a restart file (for output). * \author F. Palacios, T. Economon. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CBaselineVariable : public CVariable { public: @@ -2124,7 +2124,7 @@ class CBaselineVariable : public CVariable { * \brief Main class for defining the variables of the potential solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CPotentialVariable : public CVariable { su2double *Charge_Density; @@ -2168,7 +2168,7 @@ class CPotentialVariable : public CVariable { * \brief Main class for defining the variables of the wave equation solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CWaveVariable : public CVariable { protected: @@ -2214,7 +2214,7 @@ class CWaveVariable : public CVariable { * \brief Main class for defining the variables of the Heat equation solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CHeatVariable : public CVariable { protected: @@ -2698,7 +2698,7 @@ class CFEABoundVariable : public CVariable { * \brief Main class for defining the variables of the Euler's solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CEulerVariable : public CVariable { protected: @@ -3182,7 +3182,7 @@ class CEulerVariable : public CVariable { * \brief Main class for defining the variables of the Navier-Stokes' solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CNSVariable : public CEulerVariable { private: @@ -3383,7 +3383,7 @@ class CNSVariable : public CEulerVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbVariable : public CVariable { protected: @@ -3427,7 +3427,7 @@ class CTurbVariable : public CVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbSAVariable : public CTurbVariable { @@ -3474,7 +3474,7 @@ class CTurbSAVariable : public CTurbVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbMLVariable : public CTurbVariable { @@ -3520,7 +3520,7 @@ class CTurbMLVariable : public CTurbVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTransLMVariable : public CTurbVariable { @@ -3573,7 +3573,7 @@ class CTransLMVariable : public CTurbVariable { * \brief Main class for defining the variables of the turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTurbSSTVariable : public CTurbVariable { @@ -3638,7 +3638,7 @@ class CTurbSSTVariable : public CTurbVariable { * \brief Main class for defining the variables of the adjoint Euler solver. * \ingroup Euler_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjEulerVariable : public CVariable { protected: @@ -3760,7 +3760,7 @@ class CAdjEulerVariable : public CVariable { * \brief Main class for defining the variables of the adjoint Navier-Stokes solver. * \ingroup Navier_Stokes_Equations * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjNSVariable : public CAdjEulerVariable { private: @@ -3832,7 +3832,7 @@ class CAdjNSVariable : public CAdjEulerVariable { * \brief Main class for defining the variables of the adjoint turbulence model. * \ingroup Turbulence_Model * \author A. Bueno. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjTurbVariable : public CVariable { protected: @@ -3882,7 +3882,7 @@ class CAdjTurbVariable : public CVariable { * \brief Main class for defining the variables of the Level Set. * \ingroup LevelSet_Model * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CAdjLevelSetVariable : public CVariable { public: @@ -3920,7 +3920,7 @@ class CAdjLevelSetVariable : public CVariable { * \brief Main class for defining the variables of the potential solver. * \ingroup Potential_Flow_Equation * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CTemplateVariable : public CVariable { public: @@ -3950,7 +3950,7 @@ class CTemplateVariable : public CVariable { * \brief Main class for defining the variables of the adjoint solver. * \ingroup Discrete_Adjoint * \author T. Albring. - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" */ class CDiscAdjVariable : public CVariable { private: diff --git a/SU2_CFD/include/variable_structure.inl b/SU2_CFD/include/variable_structure.inl index d61003af961..7603b606235 100644 --- a/SU2_CFD/include/variable_structure.inl +++ b/SU2_CFD/include/variable_structure.inl @@ -2,7 +2,7 @@ * \file variable_structure.inl * \brief In-Line subroutines of the variable_structure.hpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am index 26cd1b5cfde..8e20053056a 100644 --- a/SU2_CFD/obj/Makefile.am +++ b/SU2_CFD/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_CFD # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/obj/Makefile.in b/SU2_CFD/obj/Makefile.in index f368fb97035..8c7909d4302 100644 --- a/SU2_CFD/obj/Makefile.in +++ b/SU2_CFD/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_CFD # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 40d5e975ecf..ddcbcbf7466 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -2,7 +2,7 @@ * \file SU2_CFD.cpp * \brief Main file of the Computational Fluid Dynamics code * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index 62d1d7681e6..12485e94213 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -2,7 +2,7 @@ * \file definition_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/driver_structure.cpp b/SU2_CFD/src/driver_structure.cpp index 9848f6505b7..5a428d94bcd 100644 --- a/SU2_CFD/src/driver_structure.cpp +++ b/SU2_CFD/src/driver_structure.cpp @@ -2,7 +2,7 @@ * \file driver_structure.cpp * \brief The main subroutines for driving single or multi-zone problems. * \author T. Economon, H. Kline, R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model.cpp b/SU2_CFD/src/fluid_model.cpp index f0b72f1916d..2fcf1f4292d 100644 --- a/SU2_CFD/src/fluid_model.cpp +++ b/SU2_CFD/src/fluid_model.cpp @@ -2,7 +2,7 @@ * fluid_model.cpp * \brief Source of the main thermo-physical subroutines of the SU2 solvers. * \author S.Vitale, M.Pini, G.Gori, A.Guardone, P.Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model_pig.cpp b/SU2_CFD/src/fluid_model_pig.cpp index 82fc38a9f2f..4d96e80e184 100644 --- a/SU2_CFD/src/fluid_model_pig.cpp +++ b/SU2_CFD/src/fluid_model_pig.cpp @@ -2,7 +2,7 @@ * fluid_model_pig.cpp * \brief Source of the ideal gas model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model_ppr.cpp b/SU2_CFD/src/fluid_model_ppr.cpp index 2d0c781d2ac..97541a48621 100644 --- a/SU2_CFD/src/fluid_model_ppr.cpp +++ b/SU2_CFD/src/fluid_model_ppr.cpp @@ -2,7 +2,7 @@ * fluid_model_ppr.cpp * \brief Source of the Peng-Robinson model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/fluid_model_pvdw.cpp b/SU2_CFD/src/fluid_model_pvdw.cpp index 3a3d6c4f903..f92c786bf94 100644 --- a/SU2_CFD/src/fluid_model_pvdw.cpp +++ b/SU2_CFD/src/fluid_model_pvdw.cpp @@ -2,7 +2,7 @@ * fluid_model_pvdw.cpp * \brief Source of the Polytropic Van der Waals model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/integration_structure.cpp b/SU2_CFD/src/integration_structure.cpp index c106059001a..09dc783d296 100644 --- a/SU2_CFD/src/integration_structure.cpp +++ b/SU2_CFD/src/integration_structure.cpp @@ -2,7 +2,7 @@ * \file integration_structure.cpp * \brief This subroutine includes the space and time integration structure * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/integration_time.cpp b/SU2_CFD/src/integration_time.cpp index e47009327e6..3a0b4064138 100644 --- a/SU2_CFD/src/integration_time.cpp +++ b/SU2_CFD/src/integration_time.cpp @@ -2,7 +2,7 @@ * \file integration_time.cpp * \brief Time dependent numerical methods * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/iteration_structure.cpp b/SU2_CFD/src/iteration_structure.cpp index 9336ebeacba..f4c96c199bb 100644 --- a/SU2_CFD/src/iteration_structure.cpp +++ b/SU2_CFD/src/iteration_structure.cpp @@ -2,7 +2,7 @@ * \file iteration_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_adjoint_levelset.cpp b/SU2_CFD/src/numerics_adjoint_levelset.cpp index 7fd3def9416..3f6fa0a0b2e 100644 --- a/SU2_CFD/src/numerics_adjoint_levelset.cpp +++ b/SU2_CFD/src/numerics_adjoint_levelset.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_levelset.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_adjoint_mean.cpp b/SU2_CFD/src/numerics_adjoint_mean.cpp index 03a18c36be5..7f773e0e8a8 100644 --- a/SU2_CFD/src/numerics_adjoint_mean.cpp +++ b/SU2_CFD/src/numerics_adjoint_mean.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_mean.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_adjoint_turbulent.cpp b/SU2_CFD/src/numerics_adjoint_turbulent.cpp index 5406d0c5884..465dba5982a 100644 --- a/SU2_CFD/src/numerics_adjoint_turbulent.cpp +++ b/SU2_CFD/src/numerics_adjoint_turbulent.cpp @@ -2,7 +2,7 @@ * \file numerics_adjoint_turbulent.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, A. Bueno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_elasticity.cpp b/SU2_CFD/src/numerics_direct_elasticity.cpp index 2b568ba84ca..86379742dee 100644 --- a/SU2_CFD/src/numerics_direct_elasticity.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_elasticity.cpp * \brief This file contains the routines for setting the tangent matrix and residual of a FEM linear elastic structural problem. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_elasticity_linear.cpp b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp index 2aff24332aa..4afc231d0c9 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_linear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_linear.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_elasticity_linear.cpp * \brief This file contains the routines for setting the FEM elastic structural problem. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp index 001a47ac82a..b9d2a248c55 100644 --- a/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp +++ b/SU2_CFD/src/numerics_direct_elasticity_nonlinear.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_elasticity_nonlinear.cpp * \brief This file contains the routines for setting the tangent matrix and residual of a FEM nonlinear elastic structural problem. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_heat.cpp b/SU2_CFD/src/numerics_direct_heat.cpp index 31147d41b7f..74d2550b98d 100644 --- a/SU2_CFD/src/numerics_direct_heat.cpp +++ b/SU2_CFD/src/numerics_direct_heat.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_heat.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_mean.cpp b/SU2_CFD/src/numerics_direct_mean.cpp index f4b8698eeec..eb29730045c 100644 --- a/SU2_CFD/src/numerics_direct_mean.cpp +++ b/SU2_CFD/src/numerics_direct_mean.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_mean.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_poisson.cpp b/SU2_CFD/src/numerics_direct_poisson.cpp index b41414426fc..1b911220b32 100644 --- a/SU2_CFD/src/numerics_direct_poisson.cpp +++ b/SU2_CFD/src/numerics_direct_poisson.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_poisson.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_transition.cpp b/SU2_CFD/src/numerics_direct_transition.cpp index dcf333582cb..02b4468c046 100644 --- a/SU2_CFD/src/numerics_direct_transition.cpp +++ b/SU2_CFD/src/numerics_direct_transition.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_transition.cpp * \brief This file contains all the convective term discretization. * \author A. Aranake - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_turbulent.cpp b/SU2_CFD/src/numerics_direct_turbulent.cpp index 0b84e957716..108875f4a77 100644 --- a/SU2_CFD/src/numerics_direct_turbulent.cpp +++ b/SU2_CFD/src/numerics_direct_turbulent.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_turbulent.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios, A. Bueno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_direct_wave.cpp b/SU2_CFD/src/numerics_direct_wave.cpp index 48d5f68bec2..b99ac54f98a 100644 --- a/SU2_CFD/src/numerics_direct_wave.cpp +++ b/SU2_CFD/src/numerics_direct_wave.cpp @@ -2,7 +2,7 @@ * \file numerics_direct_wave.cpp * \brief This file contains all the convective term discretization. * \author T. Economon, F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_structure.cpp b/SU2_CFD/src/numerics_structure.cpp index 49393307346..42994064e83 100644 --- a/SU2_CFD/src/numerics_structure.cpp +++ b/SU2_CFD/src/numerics_structure.cpp @@ -2,7 +2,7 @@ * \file numerics_structure.cpp * \brief This file contains all the numerical methods. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/numerics_template.cpp b/SU2_CFD/src/numerics_template.cpp index ce6fb0e2a24..6eb1ee8378f 100644 --- a/SU2_CFD/src/numerics_template.cpp +++ b/SU2_CFD/src/numerics_template.cpp @@ -2,7 +2,7 @@ * \file numerics_template.cpp * \brief This file contains all the convective term discretization. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_cgns.cpp b/SU2_CFD/src/output_cgns.cpp index cbabe6046f7..eecbef5c982 100644 --- a/SU2_CFD/src/output_cgns.cpp +++ b/SU2_CFD/src/output_cgns.cpp @@ -2,7 +2,7 @@ * \file output_cgns.cpp * \brief Main subroutines for output solver information * \author T. Economon, M. Colonno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_fieldview.cpp b/SU2_CFD/src/output_fieldview.cpp index f612a319e19..cc972eeac46 100644 --- a/SU2_CFD/src/output_fieldview.cpp +++ b/SU2_CFD/src/output_fieldview.cpp @@ -2,7 +2,7 @@ * \file output_fieldview.cpp * \brief Main subroutines for output solver information. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_paraview.cpp b/SU2_CFD/src/output_paraview.cpp index 0c756c70cb4..77f37320dcb 100644 --- a/SU2_CFD/src/output_paraview.cpp +++ b/SU2_CFD/src/output_paraview.cpp @@ -2,7 +2,7 @@ * \file output_paraview.cpp * \brief Main subroutines for output solver information * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_structure.cpp b/SU2_CFD/src/output_structure.cpp index 9fba9cda92f..9e49be87a0e 100644 --- a/SU2_CFD/src/output_structure.cpp +++ b/SU2_CFD/src/output_structure.cpp @@ -2,7 +2,7 @@ * \file output_structure.cpp * \brief Main subroutines for output solver information * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). @@ -5700,7 +5700,7 @@ void COutput::SetForces_Breakdown(CGeometry ***geometry, Breakdown_file << endl <<"-------------------------------------------------------------------------" << endl; Breakdown_file <<"| ___ _ _ ___ |" << endl; - Breakdown_file <<"| / __| | | |_ ) Release 4.1.0 \"Cardinal\" |" << endl; + Breakdown_file <<"| / __| | | |_ ) Release 4.1.1 \"Cardinal\" |" << endl; Breakdown_file <<"| \\__ \\ |_| |/ / |" << endl; Breakdown_file <<"| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |" << endl; Breakdown_file << "| |" << endl; diff --git a/SU2_CFD/src/output_su2.cpp b/SU2_CFD/src/output_su2.cpp index 1e477e73753..a087c187843 100644 --- a/SU2_CFD/src/output_su2.cpp +++ b/SU2_CFD/src/output_su2.cpp @@ -2,7 +2,7 @@ * \file output_su2.cpp * \brief Main subroutines for output solver information. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/output_tecplot.cpp b/SU2_CFD/src/output_tecplot.cpp index 6f93fa9bdac..924ce8cc0f7 100644 --- a/SU2_CFD/src/output_tecplot.cpp +++ b/SU2_CFD/src/output_tecplot.cpp @@ -2,7 +2,7 @@ * \file output_tecplot.cpp * \brief Main subroutines for output solver information. * \author F. Palacios, T. Economon, M. Colonno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_adjoint_discrete.cpp b/SU2_CFD/src/solver_adjoint_discrete.cpp index 9232e47f084..06b979a291d 100644 --- a/SU2_CFD/src/solver_adjoint_discrete.cpp +++ b/SU2_CFD/src/solver_adjoint_discrete.cpp @@ -2,7 +2,7 @@ * \file solver_adjoint_discrete.cpp * \brief Main subroutines for solving the discrete adjoint problem. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_adjoint_levelset.cpp b/SU2_CFD/src/solver_adjoint_levelset.cpp index 2bd33a23097..8a9676c3d70 100644 --- a/SU2_CFD/src/solver_adjoint_levelset.cpp +++ b/SU2_CFD/src/solver_adjoint_levelset.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_levelset.cpp * \brief Main subrotuines for solving the level set problem. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_adjoint_mean.cpp b/SU2_CFD/src/solver_adjoint_mean.cpp index eae37e3b018..7da76a1d491 100644 --- a/SU2_CFD/src/solver_adjoint_mean.cpp +++ b/SU2_CFD/src/solver_adjoint_mean.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_mean.cpp * \brief Main subrotuines for solving adjoint problems (Euler, Navier-Stokes, etc.). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_adjoint_turbulent.cpp b/SU2_CFD/src/solver_adjoint_turbulent.cpp index e2a4265b024..9fc17605d0f 100644 --- a/SU2_CFD/src/solver_adjoint_turbulent.cpp +++ b/SU2_CFD/src/solver_adjoint_turbulent.cpp @@ -2,7 +2,7 @@ * \file solution_adjoint_turbulent.cpp * \brief Main subrotuines for solving adjoint problems (Euler, Navier-Stokes, etc.). * \author F. Palacios, A. Bueno, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 83595689468..96578d754f4 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file solver_direct_elasticity.cpp * \brief Main subroutines for solving direct FEM elasticity problems. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_heat.cpp b/SU2_CFD/src/solver_direct_heat.cpp index a3337ebfc26..09cfec1de41 100644 --- a/SU2_CFD/src/solver_direct_heat.cpp +++ b/SU2_CFD/src/solver_direct_heat.cpp @@ -2,7 +2,7 @@ * \file solution_direct_heat.cpp * \brief Main subrotuines for solving the heat equation * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 5f8b90fe80e..1e99dc94cea 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -2,7 +2,7 @@ * \file solution_direct_mean.cpp * \brief Main subrotuines for solving direct problems (Euler, Navier-Stokes, etc.). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_poisson.cpp b/SU2_CFD/src/solver_direct_poisson.cpp index 70f60f00040..1e563765957 100644 --- a/SU2_CFD/src/solver_direct_poisson.cpp +++ b/SU2_CFD/src/solver_direct_poisson.cpp @@ -2,7 +2,7 @@ * \file solution_direct_poisson.cpp * \brief Main subrotuines for solving direct problems * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_transition.cpp b/SU2_CFD/src/solver_direct_transition.cpp index 9bbbb48cd69..caf51f6106b 100644 --- a/SU2_CFD/src/solver_direct_transition.cpp +++ b/SU2_CFD/src/solver_direct_transition.cpp @@ -2,7 +2,7 @@ * \file solution_direct_transition.cpp * \brief Main subrotuines for solving direct problems (Euler, Navier-Stokes, etc.). * \author A. Aranake - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_turbulent.cpp b/SU2_CFD/src/solver_direct_turbulent.cpp index fd423abe8f3..6a1db33e194 100644 --- a/SU2_CFD/src/solver_direct_turbulent.cpp +++ b/SU2_CFD/src/solver_direct_turbulent.cpp @@ -2,7 +2,7 @@ * \file solution_direct_turbulent.cpp * \brief Main subrotuines for solving direct problems * \author F. Palacios, A. Bueno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_direct_wave.cpp b/SU2_CFD/src/solver_direct_wave.cpp index d150e3283ce..6a6b34f3adf 100644 --- a/SU2_CFD/src/solver_direct_wave.cpp +++ b/SU2_CFD/src/solver_direct_wave.cpp @@ -2,7 +2,7 @@ * \file solution_direct_wave.cpp * \brief Main subrotuines for solving the wave equation. * \author T. Economon, F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_structure.cpp b/SU2_CFD/src/solver_structure.cpp index bad199a14c0..98246259663 100644 --- a/SU2_CFD/src/solver_structure.cpp +++ b/SU2_CFD/src/solver_structure.cpp @@ -2,7 +2,7 @@ * \file solver_structure.cpp * \brief Main subrotuines for solving direct, adjoint and linearized problems. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/solver_template.cpp b/SU2_CFD/src/solver_template.cpp index 86d4a56823a..db313557ff0 100644 --- a/SU2_CFD/src/solver_template.cpp +++ b/SU2_CFD/src/solver_template.cpp @@ -2,7 +2,7 @@ * \file solution_template.cpp * \brief Main subrotuines for solving direct problems (Euler, Navier-Stokes, etc.). * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/transfer_physics.cpp b/SU2_CFD/src/transfer_physics.cpp index dff329f115b..c06bfa162ef 100644 --- a/SU2_CFD/src/transfer_physics.cpp +++ b/SU2_CFD/src/transfer_physics.cpp @@ -2,7 +2,7 @@ * \file transfer_structure.cpp * \brief Main subroutines for physics of the information transfer between zones * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index eb6d21c6e2f..b08650e825b 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -2,7 +2,7 @@ * \file transfer_structure.cpp * \brief Main subroutines for MPI transfer of information between zones * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/transport_model.cpp b/SU2_CFD/src/transport_model.cpp index 72385b25625..fe482e3ef2e 100644 --- a/SU2_CFD/src/transport_model.cpp +++ b/SU2_CFD/src/transport_model.cpp @@ -2,7 +2,7 @@ * transport_model.cpp * \brief Source of the main transport properties subroutines of the SU2 solvers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_discrete.cpp b/SU2_CFD/src/variable_adjoint_discrete.cpp index 3c897c7440e..98d4aa9f57d 100644 --- a/SU2_CFD/src/variable_adjoint_discrete.cpp +++ b/SU2_CFD/src/variable_adjoint_discrete.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_discrete.cpp * \brief Main subroutines for the discrete adjoint variable structure. * \author T. Albring - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_levelset.cpp b/SU2_CFD/src/variable_adjoint_levelset.cpp index 68c360d24c8..aa69aa4a5b4 100644 --- a/SU2_CFD/src/variable_adjoint_levelset.cpp +++ b/SU2_CFD/src/variable_adjoint_levelset.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_levelset.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_mean.cpp b/SU2_CFD/src/variable_adjoint_mean.cpp index 69c16aeacb7..1b7cae910c3 100644 --- a/SU2_CFD/src/variable_adjoint_mean.cpp +++ b/SU2_CFD/src/variable_adjoint_mean.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_mean.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_adjoint_turbulent.cpp b/SU2_CFD/src/variable_adjoint_turbulent.cpp index ad023f8f1ad..13e95014be7 100644 --- a/SU2_CFD/src/variable_adjoint_turbulent.cpp +++ b/SU2_CFD/src/variable_adjoint_turbulent.cpp @@ -2,7 +2,7 @@ * \file variable_adjoint_turbulent.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_elasticity.cpp b/SU2_CFD/src/variable_direct_elasticity.cpp index 096df859c4d..24e87b5d245 100644 --- a/SU2_CFD/src/variable_direct_elasticity.cpp +++ b/SU2_CFD/src/variable_direct_elasticity.cpp @@ -2,7 +2,7 @@ * \file variable_direct_elasticity.cpp * \brief Definition of the variables for FEM elastic structural problems. * \author R. Sanchez - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_heat.cpp b/SU2_CFD/src/variable_direct_heat.cpp index 8e175faff77..88d64da4a07 100644 --- a/SU2_CFD/src/variable_direct_heat.cpp +++ b/SU2_CFD/src/variable_direct_heat.cpp @@ -2,7 +2,7 @@ * \file variable_direct_heat.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_mean.cpp b/SU2_CFD/src/variable_direct_mean.cpp index 7704d4c3332..538668b5329 100644 --- a/SU2_CFD/src/variable_direct_mean.cpp +++ b/SU2_CFD/src/variable_direct_mean.cpp @@ -2,7 +2,7 @@ * \file variable_direct_mean.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_poisson.cpp b/SU2_CFD/src/variable_direct_poisson.cpp index 05221b702e4..b2ab672590a 100644 --- a/SU2_CFD/src/variable_direct_poisson.cpp +++ b/SU2_CFD/src/variable_direct_poisson.cpp @@ -2,7 +2,7 @@ * \file variable_direct_poisson.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_transition.cpp b/SU2_CFD/src/variable_direct_transition.cpp index ac9a8252f6d..506b0243072 100644 --- a/SU2_CFD/src/variable_direct_transition.cpp +++ b/SU2_CFD/src/variable_direct_transition.cpp @@ -2,7 +2,7 @@ * \file variable_direct_transition.cpp * \brief Definition of the solution fields. * \author A. Aranake - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_turbulent.cpp b/SU2_CFD/src/variable_direct_turbulent.cpp index f6c57ec5f7d..7172b420805 100644 --- a/SU2_CFD/src/variable_direct_turbulent.cpp +++ b/SU2_CFD/src/variable_direct_turbulent.cpp @@ -2,7 +2,7 @@ * \file variable_direct_turbulent.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_direct_wave.cpp b/SU2_CFD/src/variable_direct_wave.cpp index 6898536c7f8..823c5297620 100644 --- a/SU2_CFD/src/variable_direct_wave.cpp +++ b/SU2_CFD/src/variable_direct_wave.cpp @@ -2,7 +2,7 @@ * \file variable_direct_wave.cpp * \brief Definition of the solution fields. * \author T. Economon, F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_structure.cpp b/SU2_CFD/src/variable_structure.cpp index bacf589c26f..7cd04aa9249 100644 --- a/SU2_CFD/src/variable_structure.cpp +++ b/SU2_CFD/src/variable_structure.cpp @@ -2,7 +2,7 @@ * \file variable_structure.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_CFD/src/variable_template.cpp b/SU2_CFD/src/variable_template.cpp index 5b3c0596b25..7f0c237ca06 100644 --- a/SU2_CFD/src/variable_template.cpp +++ b/SU2_CFD/src/variable_template.cpp @@ -2,7 +2,7 @@ * \file variable_template.cpp * \brief Definition of the solution fields. * \author F. Palacios - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/include/SU2_DEF.hpp b/SU2_DEF/include/SU2_DEF.hpp index 9ccb16b15ce..642f37b8ad6 100644 --- a/SU2_DEF/include/SU2_DEF.hpp +++ b/SU2_DEF/include/SU2_DEF.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_DEF. * The subroutines and functions are in the SU2_DEF.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/obj/Makefile.am b/SU2_DEF/obj/Makefile.am index 0c09c69eca5..d1e254da171 100644 --- a/SU2_DEF/obj/Makefile.am +++ b/SU2_DEF/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_DEF # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/obj/Makefile.in b/SU2_DEF/obj/Makefile.in index eba846ccaa4..e77d1db8fce 100644 --- a/SU2_DEF/obj/Makefile.in +++ b/SU2_DEF/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_DEF # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index 06fb06d28be..58d8a860e9f 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -2,7 +2,7 @@ * \file SU2_DEF.cpp * \brief Main file of Mesh Deformation Code (SU2_DEF). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/include/SU2_DOT.hpp b/SU2_DOT/include/SU2_DOT.hpp index 14fc71b833e..bf96dee43a5 100644 --- a/SU2_DOT/include/SU2_DOT.hpp +++ b/SU2_DOT/include/SU2_DOT.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_DOT. * The subroutines and functions are in the SU2_DOT.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/obj/Makefile.am b/SU2_DOT/obj/Makefile.am index 72cc70f5a2a..578666e37c5 100644 --- a/SU2_DOT/obj/Makefile.am +++ b/SU2_DOT/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_DOT # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/obj/Makefile.in b/SU2_DOT/obj/Makefile.in index dc1dc5afadd..0accb36295c 100644 --- a/SU2_DOT/obj/Makefile.in +++ b/SU2_DOT/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_DOT # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 59b480f578a..e0e322de118 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -2,7 +2,7 @@ * \file SU2_DOT.cpp * \brief Main file of the Gradient Projection Code (SU2_DOT). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/include/SU2_GEO.hpp b/SU2_GEO/include/SU2_GEO.hpp index 07307011a9c..d19863ea9c2 100644 --- a/SU2_GEO/include/SU2_GEO.hpp +++ b/SU2_GEO/include/SU2_GEO.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_GEO. * The subroutines and functions are in the SU2_GEO.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/obj/Makefile.am b/SU2_GEO/obj/Makefile.am index 0306fb81e15..639f8aa83ac 100644 --- a/SU2_GEO/obj/Makefile.am +++ b/SU2_GEO/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_GEO # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/obj/Makefile.in b/SU2_GEO/obj/Makefile.in index 336b0abcee4..d8e91962c70 100644 --- a/SU2_GEO/obj/Makefile.in +++ b/SU2_GEO/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_GEO # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index aa5bafdf07d..48013813b45 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -2,7 +2,7 @@ * \file SU2_GEO.cpp * \brief Main file of the Geometry Definition Code (SU2_GEO). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/include/SU2_MSH.hpp b/SU2_MSH/include/SU2_MSH.hpp index 1ab5d64e97a..0b12c20d9c6 100644 --- a/SU2_MSH/include/SU2_MSH.hpp +++ b/SU2_MSH/include/SU2_MSH.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_MSH. * The subroutines and functions are in the SU2_MSH.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/obj/Makefile.am b/SU2_MSH/obj/Makefile.am index fda98d3e5ae..a0a6ff97528 100644 --- a/SU2_MSH/obj/Makefile.am +++ b/SU2_MSH/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_MSH # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/obj/Makefile.in b/SU2_MSH/obj/Makefile.in index cb9eabd3d24..4e44cc769c6 100644 --- a/SU2_MSH/obj/Makefile.in +++ b/SU2_MSH/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_MSH # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_MSH/src/SU2_MSH.cpp b/SU2_MSH/src/SU2_MSH.cpp index 30865e9e9f2..1dbf216a8a7 100644 --- a/SU2_MSH/src/SU2_MSH.cpp +++ b/SU2_MSH/src/SU2_MSH.cpp @@ -2,7 +2,7 @@ * \file SU2_MSH.cpp * \brief Main file of Mesh Adaptation Code (SU2_MSH). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/Makefile.am b/SU2_PY/Makefile.am index 025562d1d5a..1cd5e85fd5a 100644 --- a/SU2_PY/Makefile.am +++ b/SU2_PY/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for the SU2 Python framework # \author M. Colonno, T. Economon, F. Palacios, T. Lukaczyk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/Makefile.in b/SU2_PY/Makefile.in index 84ebd62603f..fc82edd58de 100644 --- a/SU2_PY/Makefile.in +++ b/SU2_PY/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for the SU2 Python framework # \author M. Colonno, T. Economon, F. Palacios, T. Lukaczyk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py index bfe848d1c26..f5032f5e33e 100644 --- a/SU2_PY/SU2/eval/design.py +++ b/SU2_PY/SU2/eval/design.py @@ -3,7 +3,7 @@ ## \file design.py # \brief python package for designs # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/eval/functions.py b/SU2_PY/SU2/eval/functions.py index 184dca34f46..8505de1e1a6 100644 --- a/SU2_PY/SU2/eval/functions.py +++ b/SU2_PY/SU2/eval/functions.py @@ -3,7 +3,7 @@ ## \file functions.py # \brief python package for functions # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index dbaf30d3fd8..1353e135e2a 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -3,7 +3,7 @@ ## \file gradients.py # \brief python package for gradients # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index d5ca6bfe1d2..4252865cec2 100644 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -3,7 +3,7 @@ ## \file config.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/config_options.py b/SU2_PY/SU2/io/config_options.py index 09c4feaf7fd..b00ef445852 100644 --- a/SU2_PY/SU2/io/config_options.py +++ b/SU2_PY/SU2/io/config_options.py @@ -1,7 +1,7 @@ ## \file config_options.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/data.py b/SU2_PY/SU2/io/data.py index a9d40e3e1ff..f4ad9787b3c 100644 --- a/SU2_PY/SU2/io/data.py +++ b/SU2_PY/SU2/io/data.py @@ -3,7 +3,7 @@ ## \file data.py # \brief python package for data utility functions # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/filelock.py b/SU2_PY/SU2/io/filelock.py index 05988d4a626..33654ce85d5 100644 --- a/SU2_PY/SU2/io/filelock.py +++ b/SU2_PY/SU2/io/filelock.py @@ -3,7 +3,7 @@ ## \file filelock.py # \brief python package for filelocking # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/redirect.py b/SU2_PY/SU2/io/redirect.py index bc631dee8ea..22d6031ceab 100644 --- a/SU2_PY/SU2/io/redirect.py +++ b/SU2_PY/SU2/io/redirect.py @@ -3,7 +3,7 @@ ## \file redirect.py # \brief python package for file redirection # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/state.py b/SU2_PY/SU2/io/state.py index 5577473b71d..ae3e0d0f6ed 100644 --- a/SU2_PY/SU2/io/state.py +++ b/SU2_PY/SU2/io/state.py @@ -3,7 +3,7 @@ ## \file state.py # \brief python package for state # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py index bf9e8e9dd78..020178c464b 100644 --- a/SU2_PY/SU2/io/tools.py +++ b/SU2_PY/SU2/io/tools.py @@ -3,7 +3,7 @@ ## \file tools.py # \brief file i/o functions # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/mesh/adapt.py b/SU2_PY/SU2/mesh/adapt.py index 830cef24870..3b18c10ee91 100644 --- a/SU2_PY/SU2/mesh/adapt.py +++ b/SU2_PY/SU2/mesh/adapt.py @@ -3,7 +3,7 @@ ## \file adapt.py # \brief mesh functions # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/mesh/tools.py b/SU2_PY/SU2/mesh/tools.py index dc11a140dee..7de02b9e264 100644 --- a/SU2_PY/SU2/mesh/tools.py +++ b/SU2_PY/SU2/mesh/tools.py @@ -3,7 +3,7 @@ ## \file tools.py # \brief mesh functions # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/opt/project.py b/SU2_PY/SU2/opt/project.py index 0a7add6b88b..f5db72b3ac3 100644 --- a/SU2_PY/SU2/opt/project.py +++ b/SU2_PY/SU2/opt/project.py @@ -3,7 +3,7 @@ ## \file project.py # \brief package for optimization projects # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py index 1113e3e8c8e..451e5ac30a9 100644 --- a/SU2_PY/SU2/opt/scipy_tools.py +++ b/SU2_PY/SU2/opt/scipy_tools.py @@ -3,7 +3,7 @@ ## \file scipy_tools.py # \brief tools for interfacing with scipy # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/opt/server.py b/SU2_PY/SU2/opt/server.py index 75d93c77566..d85acdb826e 100644 --- a/SU2_PY/SU2/opt/server.py +++ b/SU2_PY/SU2/opt/server.py @@ -3,7 +3,7 @@ ## \file server.py # \brief tools for interfacing with scipy # \author T. Lukaczyk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/adaptation.py b/SU2_PY/SU2/run/adaptation.py index 51b041f181b..d51e9479aa9 100644 --- a/SU2_PY/SU2/run/adaptation.py +++ b/SU2_PY/SU2/run/adaptation.py @@ -3,7 +3,7 @@ ## \file adjoint.py # \brief python package for running adjoint problems # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/adjoint.py b/SU2_PY/SU2/run/adjoint.py index c39c3907b47..10069ba000d 100644 --- a/SU2_PY/SU2/run/adjoint.py +++ b/SU2_PY/SU2/run/adjoint.py @@ -3,7 +3,7 @@ ## \file adjoint.py # \brief python package for running adjoint problems # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/deform.py b/SU2_PY/SU2/run/deform.py index 6414d542f90..c1fefc31fc2 100644 --- a/SU2_PY/SU2/run/deform.py +++ b/SU2_PY/SU2/run/deform.py @@ -3,7 +3,7 @@ ## \file deform.py # \brief python package for deforming meshes # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py index d63705f0833..967b75a9656 100644 --- a/SU2_PY/SU2/run/direct.py +++ b/SU2_PY/SU2/run/direct.py @@ -3,7 +3,7 @@ ## \file direct.py # \brief python package for running direct solutions # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index 60e3903d0d4..9edc936779c 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -3,7 +3,7 @@ ## \file geometry.py # \brief python package for running geometry analyses # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index 0b8aa30e897..5a59d49a06f 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -3,7 +3,7 @@ ## \file interface.py # \brief python package interfacing with the SU2 suite # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py index 1a75f6584d2..6c6ce4a4430 100644 --- a/SU2_PY/SU2/run/merge.py +++ b/SU2_PY/SU2/run/merge.py @@ -1,7 +1,7 @@ ## \file merge.py # \brief python package for merging meshes # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # Copyright (C) 2012-2016 SU2 Developers. # diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py index 7237cc934bc..1459a8775bb 100644 --- a/SU2_PY/SU2/run/projection.py +++ b/SU2_PY/SU2/run/projection.py @@ -3,7 +3,7 @@ ## \file projection.py # \brief python package for running gradient projection # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/util/filter_adjoint.py b/SU2_PY/SU2/util/filter_adjoint.py index 2e1081a1739..a3fdd3c98ee 100644 --- a/SU2_PY/SU2/util/filter_adjoint.py +++ b/SU2_PY/SU2/util/filter_adjoint.py @@ -3,7 +3,7 @@ ## \file filter_adjoint.py # \brief Applies various filters to the adjoint surface sensitivities of an airfoil # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/util/plot.py b/SU2_PY/SU2/util/plot.py index 6c730f10d0b..379f265a78b 100644 --- a/SU2_PY/SU2/util/plot.py +++ b/SU2_PY/SU2/util/plot.py @@ -3,7 +3,7 @@ ## \file plot.py # \brief python package for plotting # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/SU2/util/which.py b/SU2_PY/SU2/util/which.py index dda0142db75..e623ddd86d3 100644 --- a/SU2_PY/SU2/util/which.py +++ b/SU2_PY/SU2/util/which.py @@ -3,7 +3,7 @@ ## \file which.py # \brief looks for where a program is # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/change_version_number.py b/SU2_PY/change_version_number.py index 7c812348fdf..5a7d7d6fdac 100755 --- a/SU2_PY/change_version_number.py +++ b/SU2_PY/change_version_number.py @@ -3,7 +3,7 @@ ## \file change_version_number.py # \brief Python script for updating the version number of the SU2 suite. # \author A. Aranake -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -32,8 +32,8 @@ # Run the script from the base directory (ie $SU2HOME). Grep will search directories recursively for matches in version number import os,sys -oldvers = '4.0.2 "Cardinal"' -newvers = '4.1.0 "Cardinal"' +oldvers = '4.1.0 "Cardinal"' +newvers = '4.1.1 "Cardinal"' os.system('rm -rf version.txt') diff --git a/SU2_PY/compute_polar.py b/SU2_PY/compute_polar.py index 845053e4f01..16a1029af59 100755 --- a/SU2_PY/compute_polar.py +++ b/SU2_PY/compute_polar.py @@ -3,7 +3,7 @@ ## \file shape_optimization.py # \brief Python script for performing the shape optimization. # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/compute_stability.py b/SU2_PY/compute_stability.py index b878ee7fa58..cf63c70b018 100755 --- a/SU2_PY/compute_stability.py +++ b/SU2_PY/compute_stability.py @@ -3,7 +3,7 @@ ## \file compute_stability.py # \brief Python script for performing the shape optimization. # \author T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/config_gui.py b/SU2_PY/config_gui.py index bf478729957..4ca454ab687 100755 --- a/SU2_PY/config_gui.py +++ b/SU2_PY/config_gui.py @@ -3,7 +3,7 @@ ## \file config_gui.py # \brief _____________. # \author A. Aranake -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/continuous_adjoint.py b/SU2_PY/continuous_adjoint.py index 10101583c75..4840a6730ef 100755 --- a/SU2_PY/continuous_adjoint.py +++ b/SU2_PY/continuous_adjoint.py @@ -3,7 +3,7 @@ ## \file continuous_adjoint.py # \brief Python script for continuous adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/direct_differentiation.py b/SU2_PY/direct_differentiation.py index 22149a0e6fa..cfc91931ae4 100755 --- a/SU2_PY/direct_differentiation.py +++ b/SU2_PY/direct_differentiation.py @@ -3,7 +3,7 @@ ## \file direct_differentiation.py # \brief Python script for doing the direct differentiation computation using the SU2 suite. # \author F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/discrete_adjoint.py b/SU2_PY/discrete_adjoint.py index 77b0b0d44a8..582d2d092c8 100755 --- a/SU2_PY/discrete_adjoint.py +++ b/SU2_PY/discrete_adjoint.py @@ -3,7 +3,7 @@ ## \file discrete_adjoint.py # \brief Python script for doing the discrete adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/finite_differences.py b/SU2_PY/finite_differences.py index 11b54874bd5..04603563640 100755 --- a/SU2_PY/finite_differences.py +++ b/SU2_PY/finite_differences.py @@ -3,7 +3,7 @@ ## \file finite_differences.py # \brief Python script for doing the finite differences computation using the SU2 suite. # \author F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/merge_solution.py b/SU2_PY/merge_solution.py index 483fdb41696..068b7a137ed 100755 --- a/SU2_PY/merge_solution.py +++ b/SU2_PY/merge_solution.py @@ -3,7 +3,7 @@ ## \file merge_solution.py # \brief Python script for merging of the solution files. # \author F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/mesh_adaptation.py b/SU2_PY/mesh_adaptation.py index 4a12c2a2626..665fb3fcce3 100755 --- a/SU2_PY/mesh_adaptation.py +++ b/SU2_PY/mesh_adaptation.py @@ -3,7 +3,7 @@ ## \file mesh_adaptation.py # \brief Python script for doing the grid adaptation using the SU2 suite. # \author F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/mesh_deformation.py b/SU2_PY/mesh_deformation.py index 5a0b0f7fe3c..de9768d97c3 100755 --- a/SU2_PY/mesh_deformation.py +++ b/SU2_PY/mesh_deformation.py @@ -3,7 +3,7 @@ ## \file mesh_deformation.py # \brief Python script for doing the parallel deformation using SU2_DEF. # \author F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/parallel_computation.py b/SU2_PY/parallel_computation.py index 05be0bbd5c5..62c680c22e5 100755 --- a/SU2_PY/parallel_computation.py +++ b/SU2_PY/parallel_computation.py @@ -3,7 +3,7 @@ ## \file parallel_computation.py # \brief Python script for doing the continuous adjoint computation using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py index a0a5d718252..cd980edcee5 100644 --- a/SU2_PY/parallel_computation_fsi.py +++ b/SU2_PY/parallel_computation_fsi.py @@ -3,7 +3,7 @@ ## \file parallel_computation_fsi.py # \brief Python script for running FSI simulations using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios, H. Kline, R. Sanchez -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/parse_config.py b/SU2_PY/parse_config.py index 6a322e880b0..bae0b5e8230 100755 --- a/SU2_PY/parse_config.py +++ b/SU2_PY/parse_config.py @@ -3,7 +3,7 @@ ## \file parse_config.py # \brief Builds a worksheet of all SU2.cpp options # \author A. Aranake, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/patient_designspace.py b/SU2_PY/patient_designspace.py index e692da8c466..ca98129c4dd 100755 --- a/SU2_PY/patient_designspace.py +++ b/SU2_PY/patient_designspace.py @@ -3,7 +3,7 @@ ## \file patient_designspace.py # \brief Python script for running multiple design configurations in multiple sessions # \author T. Lukaczyk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index 8cceba2beb6..f3164bd9c76 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -3,7 +3,7 @@ ## \file set_ffd_design_var.py.py # \brief Python script for automatically generating a list of FFD variables. # \author T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py index be876c9e073..c4ae71fbb57 100755 --- a/SU2_PY/shape_optimization.py +++ b/SU2_PY/shape_optimization.py @@ -3,7 +3,7 @@ ## \file shape_optimization.py # \brief Python script for performing the shape optimization. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -61,7 +61,7 @@ def main(): sys.stdout.write('\n-------------------------------------------------------------------------\n') sys.stdout.write('| ___ _ _ ___ |\n') - sys.stdout.write('| / __| | | |_ ) Release 4.1.0 \"Cardinal\" |\n') + sys.stdout.write('| / __| | | |_ ) Release 4.1.1 \"Cardinal\" |\n') sys.stdout.write('| \\__ \\ |_| |/ / |\n') sys.stdout.write('| |___/\\___//___| Aerodynamic Shape Optimization Script |\n') sys.stdout.write('| |\n') diff --git a/SU2_SOL/include/SU2_SOL.hpp b/SU2_SOL/include/SU2_SOL.hpp index cc2ba407df1..b408b1b5705 100644 --- a/SU2_SOL/include/SU2_SOL.hpp +++ b/SU2_SOL/include/SU2_SOL.hpp @@ -3,7 +3,7 @@ * \brief Headers of the main subroutines of the code SU2_SOL. * The subroutines and functions are in the SU2_SOL.cpp file. * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Project Leaders: Dr. Palacios (Francisco.D.Palacios@boeing.com) * Dr. Economon (economon@stanford.edu) diff --git a/SU2_SOL/obj/Makefile.am b/SU2_SOL/obj/Makefile.am index 140d0a6f53f..d50b9da1573 100644 --- a/SU2_SOL/obj/Makefile.am +++ b/SU2_SOL/obj/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for SU2_SOL # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_SOL/obj/Makefile.in b/SU2_SOL/obj/Makefile.in index 97d257f7af2..fa2e507a21e 100644 --- a/SU2_SOL/obj/Makefile.in +++ b/SU2_SOL/obj/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for SU2_SOL # \author M. Colonno, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 18143fcdc97..8b181393d52 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -2,7 +2,7 @@ * \file SU2_SOL.cpp * \brief Main file for the solution export/conversion code (SU2_SOL). * \author F. Palacios, T. Economon - * \version 4.1.0 "Cardinal" + * \version 4.1.1 "Cardinal" * * SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). * Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index f5b2e09e4c1..81008b3ede0 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -3,7 +3,7 @@ ## \file TestCase.py # \brief Python class for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/actuator_disk/ActDisk_Euler.cfg b/TestCases/actuator_disk/ActDisk_Euler.cfg index a8bc1a78305..aa109b0159c 100644 --- a/TestCases/actuator_disk/ActDisk_Euler.cfg +++ b/TestCases/actuator_disk/ActDisk_Euler.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2014.06.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg index 97cbd2fd55d..e143bd7ba20 100644 --- a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg +++ b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 07-09-15 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg index ed2217be4a8..9d695a47a70 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg index a15a2b9e6d1..40edae7089e 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg index 7f2362dc232..2d1649d7e0c 100644 --- a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg index 07346248ebe..643d88459da 100644 --- a/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/cont_adj_incomp_euler/naca0012/incomp_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.04.09 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg b/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg index ed2dd9f208c..32741aaa8e0 100644 --- a/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg +++ b/TestCases/cont_adj_incomp_navierstokes/cylinder/lam_incomp_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.03.14 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg index f5a236f78b4..aefbc3fd095 100644 --- a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg index a027848a9ef..39a330b52bf 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg index 5baed5e53c6..09a653104fa 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg index 766cf903187..48274c20727 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg index 40223661781..90a63759a01 100644 --- a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg index c4e912ade3e..ea5be7bcb92 100644 --- a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_moving.cfg b/TestCases/control_surface/inv_ONERAM6_moving.cfg index db4904651c7..0f2bd8677a3 100644 --- a/TestCases/control_surface/inv_ONERAM6_moving.cfg +++ b/TestCases/control_surface/inv_ONERAM6_moving.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_setting.cfg b/TestCases/control_surface/inv_ONERAM6_setting.cfg index e68f417279e..6f2e4a28ad9 100644 --- a/TestCases/control_surface/inv_ONERAM6_setting.cfg +++ b/TestCases/control_surface/inv_ONERAM6_setting.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/CRM/inv_CRM_JST.cfg b/TestCases/euler/CRM/inv_CRM_JST.cfg index c2c47cf3ce2..7df3acd0637 100644 --- a/TestCases/euler/CRM/inv_CRM_JST.cfg +++ b/TestCases/euler/CRM/inv_CRM_JST.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/biparabolic/BIPARABOLIC.cfg b/TestCases/euler/biparabolic/BIPARABOLIC.cfg index 5d5da645416..ea44558ff7a 100644 --- a/TestCases/euler/biparabolic/BIPARABOLIC.cfg +++ b/TestCases/euler/biparabolic/BIPARABOLIC.cfg @@ -5,7 +5,7 @@ % Author: Trent W. Lukaczyk % % Institution: Stanford University % % Date: 2012.08.16 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index dc873745d35..1bc7ad46ee6 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012.cfg b/TestCases/euler/naca0012/inv_NACA0012.cfg index b3a39e7edb0..0d37533254d 100644 --- a/TestCases/euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index 4da4bc4fb97..0f5751036e4 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/oneram6/inv_ONERAM6.cfg b/TestCases/euler/oneram6/inv_ONERAM6.cfg index 1ee8d703745..273e33c09f9 100644 --- a/TestCases/euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index cc4cee5e451..293b5d539a5 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg index 329032887a8..2ed2a142e24 100644 --- a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg +++ b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg @@ -4,7 +4,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.02.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PHYSICAL_PROBLEM= FEM_ELASTICITY diff --git a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg index c3d19b32d4d..34e6158466c 100644 --- a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg +++ b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg @@ -4,7 +4,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.02.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PHYSICAL_PROBLEM= FEM_ELASTICITY diff --git a/TestCases/gust/inv_gust_NACA0012.cfg b/TestCases/gust/inv_gust_NACA0012.cfg index 43241c527c4..dcaeae002d6 100644 --- a/TestCases/gust/inv_gust_NACA0012.cfg +++ b/TestCases/gust/inv_gust_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 06-26-2015 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index ab93c2e36fc..ae0d2d7acc4 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 09/18/2011 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg index fb2245a9376..4f0e17b941f 100644 --- a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.03.14 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/naca0012/naca0012.cfg b/TestCases/incomp_rans/naca0012/naca0012.cfg index 40b144ddab0..9e6c00cf8eb 100644 --- a/TestCases/incomp_rans/naca0012/naca0012.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/linear_elasticity/beam.cfg b/TestCases/linear_elasticity/beam.cfg index 0ac16873e70..d4b23b1c3f6 100644 --- a/TestCases/linear_elasticity/beam.cfg +++ b/TestCases/linear_elasticity/beam.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.07.05 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/cavity/lam_cavity.cfg b/TestCases/moving_wall/cavity/lam_cavity.cfg index d6873409285..7bca320c29f 100644 --- a/TestCases/moving_wall/cavity/lam_cavity.cfg +++ b/TestCases/moving_wall/cavity/lam_cavity.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.10.01 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg index 73bb1f4956f..de52f2a85b4 100644 --- a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg +++ b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.08.21 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index da4e5007b05..e862b7f25ee 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 7391e6d2b6f..c6d3ed81848 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg index e036805f04d..5a8177dfcfe 100644 --- a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg +++ b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Sep 28, 2012 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index 9db44c09f71..fc5f7a8a45a 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index 2e2a0db2396..db6a09f87d7 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg index df243bf4b11..bca5c7daee8 100644 --- a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg +++ b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg index ad0221d533f..dbe924ac294 100644 --- a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg +++ b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg index ec914198767..d876c983a99 100644 --- a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg +++ b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.06 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg index 5bdbfde4701..adebc496bcc 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg index dfc35392676..d722cf47018 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg b/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg index d7e5d968909..105269f3a69 100644 --- a/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg +++ b/TestCases/optimization_euler/steady_oneram6/def_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 06.16.2014 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index 2f4b6b57b81..dc35c59d8f9 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 06.16.2014 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg index fe9bfc8c92c..623a205cf77 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 06.16.2014 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg index f4db774e4a3..f90d60eb18b 100644 --- a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg +++ b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg index beb163bfc24..acb20a59740 100644 --- a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg index 51dc7516198..f4468201814 100644 --- a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg index a65f196a554..2bc68b677dc 100644 --- a/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg +++ b/TestCases/optimization_rans/steady_rae2822/def_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg index 9d7c69662b3..9741fc135cc 100644 --- a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index dbb99243ba3..09e6d3f9b54 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -3,7 +3,7 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index b0353ed889e..d0d0d2f83c1 100755 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -3,7 +3,7 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/rans/flatplate/turb_SA_flatplate.cfg b/TestCases/rans/flatplate/turb_SA_flatplate.cfg index e50ce6a5659..829d26ec21a 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SST_flatplate.cfg b/TestCases/rans/flatplate/turb_SST_flatplate.cfg index 47929b881f0..363394e4d94 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6.cfg b/TestCases/rans/oneram6/turb_ONERAM6.cfg index 46212f6b4c2..13bc615d7e2 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.14 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg index d822dc1365c..94aefd9ae5e 100644 --- a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg index 18e68d7c69c..6e8e7ac4716 100644 --- a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/trans_s809.cfg b/TestCases/rans/s809/trans_s809.cfg index a8a6b13cf34..35bfd284df9 100644 --- a/TestCases/rans/s809/trans_s809.cfg +++ b/TestCases/rans/s809/trans_s809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/turb_S809.cfg b/TestCases/rans/s809/turb_S809.cfg index 76473b9bb21..b7a4fcfc3e5 100644 --- a/TestCases/rans/s809/turb_S809.cfg +++ b/TestCases/rans/s809/turb_S809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/vki_turbine/turb_vki.cfg b/TestCases/rans/vki_turbine/turb_vki.cfg index 6c9fb093277..3da2195d63a 100644 --- a/TestCases/rans/vki_turbine/turb_vki.cfg +++ b/TestCases/rans/vki_turbine/turb_vki.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg index e0c579b6371..4f41378686e 100644 --- a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg +++ b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index d2c15b65038..7398e65d817 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 7578a4d1ad1..856c7cc8c63 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -3,7 +3,7 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index 03cda7f73ef..6ad432f6cb2 100755 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -3,7 +3,7 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/TestCases/spectral_method/spectral.cfg b/TestCases/spectral_method/spectral.cfg index 9ed108fb502..fc98d3c5ee0 100644 --- a/TestCases/spectral_method/spectral.cfg +++ b/TestCases/spectral_method/spectral.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg index 240cbeedeed..0dd32e49c37 100644 --- a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg index 4e86d1e5270..7c9cc3f171e 100644 --- a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg index 2f6d858fd5b..abc26a51a35 100644 --- a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg +++ b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Jun 12, 2014 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/square_cylinder/turb_square.cfg b/TestCases/unsteady/square_cylinder/turb_square.cfg index c1ba8a83d91..ce6d6abc0bd 100644 --- a/TestCases/unsteady/square_cylinder/turb_square.cfg +++ b/TestCases/unsteady/square_cylinder/turb_square.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.02.25 % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/config_template.cfg b/config_template.cfg index bd57a80295b..f44c0e01108 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/config_template_basic.cfg b/config_template_basic.cfg index aa8c1a02395..6f28b957855 100644 --- a/config_template_basic.cfg +++ b/config_template_basic.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 4.1.0 "Cardinal" % +% File Version 4.1.1 "Cardinal" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/configure b/configure index 7157478873e..5c8be1bdafe 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for SU2 4.1.0. +# Generated by GNU Autoconf 2.69 for SU2 4.1.1. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='SU2' PACKAGE_TARNAME='SU2' -PACKAGE_VERSION='4.1.0' -PACKAGE_STRING='SU2 4.1.0' +PACKAGE_VERSION='4.1.1' +PACKAGE_STRING='SU2 4.1.1' PACKAGE_BUGREPORT='su2code-dev@lists.stanford.edu' PACKAGE_URL='https://github.com/su2code' @@ -1386,7 +1386,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures SU2 4.1.0 to adapt to many kinds of systems. +\`configure' configures SU2 4.1.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1457,7 +1457,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of SU2 4.1.0:";; + short | recursive ) echo "Configuration of SU2 4.1.1:";; esac cat <<\_ACEOF @@ -1602,7 +1602,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -SU2 configure 4.1.0 +SU2 configure 4.1.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2079,7 +2079,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by SU2 $as_me 4.1.0, which was +It was created by SU2 $as_me 4.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3015,7 +3015,7 @@ fi # Define the identity of the package. PACKAGE='SU2' - VERSION='4.1.0' + VERSION='4.1.1' cat >>confdefs.h <<_ACEOF @@ -7681,7 +7681,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by SU2 $as_me 4.1.0, which was +This file was extended by SU2 $as_me 4.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7739,7 +7739,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -SU2 config.status 4.1.0 +SU2 config.status 4.1.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -8440,7 +8440,7 @@ abs_prefix=$prefix #`(cd $prefix && pwd)` ------------------------------------------------------------------------- | ___ _ _ ___ | -| / __| | | |_ ) Release 4.1.0 'Cardinal' | +| / __| | | |_ ) Release 4.1.1 'Cardinal' | | \\__ \\ |_| |/ / | | |___/\\___//___| Suite | | | @@ -8523,7 +8523,7 @@ $as_echo " ------------------------------------------------------------------------- | ___ _ _ ___ | -| / __| | | |_ ) Release 4.1.0 'Cardinal' | +| / __| | | |_ ) Release 4.1.1 'Cardinal' | | \\__ \\ |_| |/ / | | |___/\\___//___| Suite | | | diff --git a/configure.ac b/configure.ac index e8fc354e873..c66ba328c16 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ # \file configure.ac # \brief Main file for configuring the autoconf/automake build process # \author M. Colonno, T. Economon, F. Palacios, B. Kirk -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -37,7 +37,7 @@ # ParMETIS integration added by Ben Kirk & Thomas D. Economon, 2/3/2015 ########################## -AC_INIT([SU2], [4.1.0], [su2code-dev@lists.stanford.edu], +AC_INIT([SU2], [4.1.1], [su2code-dev@lists.stanford.edu], [SU2], [https://github.com/su2code]) AC_PREREQ([2.59]) AC_CONFIG_MACRO_DIR([m4]) @@ -573,7 +573,7 @@ AC_MSG_RESULT([ ------------------------------------------------------------------------- | ___ _ _ ___ | -| / __| | | |_ ) Release 4.1.0 'Cardinal' | +| / __| | | |_ ) Release 4.1.1 'Cardinal' | | \\__ \\ |_| |/ / | | |___/\\___//___| Suite | | | diff --git a/externals/Makefile.am b/externals/Makefile.am index 2ba033ab63b..98059ede2ea 100644 --- a/externals/Makefile.am +++ b/externals/Makefile.am @@ -3,7 +3,7 @@ # \file Makefile.am # \brief Makefile for external libraries # \author B. Kirk, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/externals/Makefile.in b/externals/Makefile.in index 8f369b08d61..62b760f8856 100644 --- a/externals/Makefile.in +++ b/externals/Makefile.in @@ -19,7 +19,7 @@ # \file Makefile.am # \brief Makefile for external libraries # \author B. Kirk, T. Economon, F. Palacios -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). diff --git a/externals/autotools/share/emacs/site-lisp/autoconf-mode.elc b/externals/autotools/share/emacs/site-lisp/autoconf-mode.elc index db67322443193557fa09fbc78a28082f2d5e22fe..4afcaf3bf058c42b0825f4f552c256f254a327ac 100644 GIT binary patch delta 70 zcmew+@l|4ihJ040UT~;iYKcOAo`NqBI~EivD3~Z1np+tgTA3J4bdO*$F*PySxa0vV Xqw(fewk&2K^?@^miP30sD32ll9lsSb delta 71 zcmew=@l9fahP*+NUT~;iYKcOAof}ydMv4NF|@kI9sRzpK`3*(K8 aAFwi-Y;Ix8Vg^$0Ia8PzjVFijC;|W@u@yN0 diff --git a/externals/autotools/share/emacs/site-lisp/autotest-mode.elc b/externals/autotools/share/emacs/site-lisp/autotest-mode.elc index c5f0c8886819f8e4b3ba9677f312b272f5037b01..ab4fe283e65416db365edb12b677000e773e3657 100644 GIT binary patch delta 70 zcmX>ldQxpdP;PHhP*+NUT~;iYKcOAof}ydMv4NF|@kI9sRzpK`3*(K8 aLs%FsHveGpVg^#q94SnUrju82DFOigNEA;1 diff --git a/externals/autotools/share/man/man1/aclocal-1.12.1 b/externals/autotools/share/man/man1/aclocal-1.12.1 index ded6847b123..55c4e6936c9 100644 --- a/externals/autotools/share/man/man1/aclocal-1.12.1 +++ b/externals/autotools/share/man/man1/aclocal-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH ACLOCAL "1" "March 2016" "aclocal 1.12.5" "User Commands" +.TH ACLOCAL "1" "April 2016" "aclocal 1.12.5" "User Commands" .SH NAME aclocal \- manual page for aclocal 1.12.5 .SH SYNOPSIS diff --git a/externals/autotools/share/man/man1/automake-1.12.1 b/externals/autotools/share/man/man1/automake-1.12.1 index b968ab3c385..843cee89a95 100644 --- a/externals/autotools/share/man/man1/automake-1.12.1 +++ b/externals/autotools/share/man/man1/automake-1.12.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.8. -.TH AUTOMAKE "1" "March 2016" "automake 1.12.5" "User Commands" +.TH AUTOMAKE "1" "April 2016" "automake 1.12.5" "User Commands" .SH NAME automake \- manual page for automake 1.12.5 .SH SYNOPSIS diff --git a/preconfigure.py b/preconfigure.py index 5c32a7fea58..7cf78c7bfaf 100755 --- a/preconfigure.py +++ b/preconfigure.py @@ -3,7 +3,7 @@ ## \file configure.py # \brief An extended configuration script. # \author T. Albring -# \version 4.1.0 "Cardinal" +# \version 4.1.1 "Cardinal" # # SU2 Lead Developers: Dr. Francisco Palacios (Francisco.D.Palacios@boeing.com). # Dr. Thomas D. Economon (economon@stanford.edu). @@ -560,7 +560,7 @@ def header(): print '-------------------------------------------------------------------------\n'\ '| ___ _ _ ___ | \n'\ - '| / __| | | |_ ) Release 4.1.0 \'Cardinal\' | \n'\ + '| / __| | | |_ ) Release 4.1.1 \'Cardinal\' | \n'\ '| \__ \ |_| |/ / | \n'\ '| |___/\___//___| Pre-configuration Script | \n'\ '| | \n'\ From f9d444f7a34020f9078044ee13a45290ff26d0b7 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 4 Apr 2016 17:40:43 -0700 Subject: [PATCH 266/269] Fixed some small issues for preconfigure with AD. --- Common/src/geometry_structure.cpp | 4 ++-- SU2_CFD/src/solver_direct_mean.cpp | 2 +- SU2_DOT/src/SU2_DOT.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 5c30bef6121..18e24337a68 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -6626,10 +6626,10 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes vector temp_adjacency; unsigned long local_count=0; - /*--- Here, we transfer the adjacency information from a double vector + /*--- Here, we transfer the adjacency information from a multi-dim vector on a node-by-node basis into a single vector container. First, we sort the entries and remove the duplicates we find for each node, then we - copy it into the single vect and clear the memory from the double vec. ---*/ + copy it into the single vect and clear memory from the multi-dim vec. ---*/ for (unsigned long i = 0; i < local_node; i++) { diff --git a/SU2_CFD/src/solver_direct_mean.cpp b/SU2_CFD/src/solver_direct_mean.cpp index 1e99dc94cea..278d05ffa9e 100644 --- a/SU2_CFD/src/solver_direct_mean.cpp +++ b/SU2_CFD/src/solver_direct_mean.cpp @@ -3782,7 +3782,7 @@ void CEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_contain if (config->GetConsole_Output_Verb() == VERB_HIGH) { #ifdef HAVE_MPI - MPI_Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); + SU2_MPI::Reduce(&counter_local, &counter_global, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, MPI_COMM_WORLD); #else counter_global = counter_local; #endif diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index e0e322de118..8eaa4f3bcfe 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -493,7 +493,7 @@ void SetProjection_AD(CGeometry *geometry, CConfig *config, CSurfaceMovement *su for (iDV_Value = 0; iDV_Value < nDV_Value; iDV_Value++){ - /*--- Initilization with double resets the index ---*/ + /*--- Initilization with su2double resets the index ---*/ DV_Value = 0.0; From b5d705e814a9fba17668c40e806982e828745492 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 4 Apr 2016 18:09:29 -0700 Subject: [PATCH 267/269] Small fix. --- Common/src/geometry_structure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/geometry_structure.cpp b/Common/src/geometry_structure.cpp index 18e24337a68..357b8355238 100644 --- a/Common/src/geometry_structure.cpp +++ b/Common/src/geometry_structure.cpp @@ -5972,7 +5972,7 @@ void CPhysicalGeometry::Read_SU2_Format_Parallel(CConfig *config, string val_mes #ifdef HAVE_MPI MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); - unsigned long LocalIndex; + unsigned long LocalIndex, j; #endif Global_nPoint = 0; Global_nPointDomain = 0; Global_nElem = 0; nelem_edge = 0; Global_nelem_edge = 0; From cb9ffac3e87050ad75ac39b4b637b4acb6144065 Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 4 Apr 2016 18:43:42 -0700 Subject: [PATCH 268/269] Warning fixes for GCC. --- SU2_CFD/src/solver_direct_elasticity.cpp | 5 +++-- SU2_CFD/src/transfer_structure.cpp | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index 96578d754f4..b86f4a02610 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2823,7 +2823,8 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe #ifndef HAVE_MPI - unsigned long nVertexFEA, nVertexFlow; // Number of vertices on FEA and Flow side + unsigned long nVertexFlow; // Number of vertices on FEA and Flow side + //unsigned long nVertexFEA; for (iPoint = 0; iPoint < nPoint; iPoint++){ node[iPoint]->Clear_FlowTraction(); @@ -2849,7 +2850,7 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe } } - nVertexFEA = fea_geometry[MESH_0]->GetnVertex(Marker_Struct); // Retrieve total number of vertices on FEA marker + //nVertexFEA = fea_geometry[MESH_0]->GetnVertex(Marker_Struct); // Retrieve total number of vertices on FEA marker nVertexFlow = flow_geometry[MESH_0]->GetnVertex(Marker_Flow); // Retrieve total number of vertices on Fluid marker /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ diff --git a/SU2_CFD/src/transfer_structure.cpp b/SU2_CFD/src/transfer_structure.cpp index b08650e825b..8add2c775f0 100644 --- a/SU2_CFD/src/transfer_structure.cpp +++ b/SU2_CFD/src/transfer_structure.cpp @@ -191,8 +191,8 @@ void CTransfer::Scatter_InterfaceData(CSolver *donor_solution, CSolver *target_s MaxLocalVertexDonor = nLocalVertexDonor; MaxLocalVertexTarget = nLocalVertexTarget; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; - Buffer_Recv_nVertexTarget[0] = nLocalVertexTarget; + Buffer_Recv_nVertexDonor[0] = Buffer_Send_nVertexDonor[0]; + Buffer_Recv_nVertexTarget[0] = Buffer_Send_nVertexTarget[0]; #endif @@ -551,7 +551,7 @@ void CTransfer::Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolve #else MaxLocalVertexDonor = nLocalVertexDonor; TotalVertexDonor = nLocalVertexDonorOwned; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + Buffer_Recv_nVertexDonor[0] = Buffer_Send_nVertexDonor[0]; #endif /*--- We will be gathering the donor information into the master node ---*/ @@ -842,7 +842,7 @@ void CTransfer::Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSo #else MaxLocalVertexDonor = nLocalVertexDonor; TotalVertexDonor = nLocalVertexDonorOwned; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + Buffer_Recv_nVertexDonor[0] = Buffer_Send_nVertexDonor[0]; #endif /*--- We will be gathering the donor information into the master node ---*/ @@ -1138,7 +1138,7 @@ void CTransfer::Allgather_InterfaceData(CSolver *donor_solution, CSolver *target SU2_MPI::Allgather(&Buffer_Send_nVertexDonor, 1, MPI_UNSIGNED_LONG, Buffer_Recv_nVertexDonor, 1, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); #else MaxLocalVertexDonor = nLocalVertexDonor; - Buffer_Recv_nVertexDonor[0] = nLocalVertexDonor; + Buffer_Recv_nVertexDonor[0] = Buffer_Send_nVertexDonor[0]; #endif /*--- We will be gathering the donor information into the master node ---*/ From 334d2be456bd5a0c8cfd418230e08d72471ced8d Mon Sep 17 00:00:00 2001 From: "Thomas D. Economon" Date: Mon, 4 Apr 2016 19:06:42 -0700 Subject: [PATCH 269/269] One more warning on GCC. --- SU2_CFD/src/solver_direct_elasticity.cpp | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/SU2_CFD/src/solver_direct_elasticity.cpp b/SU2_CFD/src/solver_direct_elasticity.cpp index b86f4a02610..5464f0762e4 100644 --- a/SU2_CFD/src/solver_direct_elasticity.cpp +++ b/SU2_CFD/src/solver_direct_elasticity.cpp @@ -2744,9 +2744,9 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe CGeometry **flow_geometry, CConfig *fea_config, CConfig *flow_config, CNumerics *fea_numerics) { - unsigned short nMarkerFSI, nMarkerStruct, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side - unsigned short iMarkerFSI, iMarkerStruct, iMarkerFlow; // Variables for iteration over markers - int Marker_Flow = -1, Marker_Struct = -1; + unsigned short nMarkerFSI, nMarkerFlow; // Number of markers on FSI problem, FEA and Flow side + unsigned short iMarkerFSI, iMarkerFlow; // Variables for iteration over markers + int Marker_Flow = -1; unsigned long iVertex, iPoint; // Variables for iteration over vertices and nodes @@ -2801,8 +2801,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe /*--- Number of markers on the FSI interface ---*/ nMarkerFSI = (fea_config->GetMarker_n_FSIinterface())/2; - - nMarkerStruct = fea_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on FEA side nMarkerFlow = flow_geometry[MESH_0]->GetnMarker(); // Retrieve total number of markers on Fluid side // Parameters for the calculations @@ -2824,7 +2822,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe #ifndef HAVE_MPI unsigned long nVertexFlow; // Number of vertices on FEA and Flow side - //unsigned long nVertexFEA; for (iPoint = 0; iPoint < nPoint; iPoint++){ node[iPoint]->Clear_FlowTraction(); @@ -2836,13 +2833,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe /*--- Identification of the markers ---*/ - /*--- Current structural marker ---*/ - for (iMarkerStruct = 0; iMarkerStruct < nMarkerStruct; iMarkerStruct++){ - if ( fea_config->GetMarker_All_FSIinterface(iMarkerStruct) == (iMarkerFSI+1)){ - Marker_Struct = iMarkerStruct; - } - } - /*--- Current fluid marker ---*/ for (iMarkerFlow = 0; iMarkerFlow < nMarkerFlow; iMarkerFlow++){ if (flow_config->GetMarker_All_FSIinterface(iMarkerFlow) == (iMarkerFSI+1)){ @@ -2850,7 +2840,6 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe } } - //nVertexFEA = fea_geometry[MESH_0]->GetnVertex(Marker_Struct); // Retrieve total number of vertices on FEA marker nVertexFlow = flow_geometry[MESH_0]->GetnVertex(Marker_Flow); // Retrieve total number of vertices on Fluid marker /*--- Loop over the nodes in the fluid mesh, calculate the tf vector (unitary) ---*/ @@ -2952,6 +2941,9 @@ void CFEM_ElasticitySolver::SetFEA_Load(CSolver ***flow_solution, CGeometry **fe int iProcessor, nProcessor = 0; + unsigned short nMarkerStruct, iMarkerStruct; // Variables for iteration over markers + int Marker_Struct = -1; + /*--- Number of markers on the FSI interface ---*/ nMarkerFSI = (flow_config->GetMarker_n_FSIinterface())/2;